rc_visard 3D Stereo Senso

1 简介

rc_visard 3D立体视觉传感器
在这里插入图片描述

支持的接口标准

  • GenICam Generic Interface for Cameras
  • GigE Gigabit Ethernet

词汇表

SGM semi-global matching 半全局匹配
SLAM Simultaneous Localization and Mapping 即时定位与地图构建

2 安全

3 硬件规格

坐标系

rc_visard的坐标帧原点被定义为左相机镜头的出口瞳孔。帧称为传感器坐标帧或相机坐标帧。

传感器/相机框架和机器人坐标系之间的正确偏移量可以通过手眼校准程序进行校准

4 安装

设备发现

rcdiscover-gui
在这里插入图片描述

5 测量原理

5.1 立体视觉

视差越大,物体距离相机越近。

计算三维信息需要的模块

  • Camera
    该模块负责捕获同步图像对,并将其转换为接近理想相机拍摄的图像(校正)。
  • Stereo matching
    该模块使用半全局匹配计算校正后的立体图像对的视差。
  • Camera calibration
    该模块使用户能够重新校准rc_visard的立体相机。

6 软件模块

rc_visard的几个机载软件模块

  • 3D相机模块
    获取图像对并计算3D深度信息,如视差,误差和置信度图像,也可以通过rc_visard的GigE Vision/GenICam接口访问。
  • 导航模块
  • 检测模块
    提供多种检测功能,如抓点计算和目标检测。
  • 配置模块
    用户能够执行校准和为特定的应用程序配置rc_visard。
  • 数据库模块
    使用户能够配置所有其他模块可用的全局数据,例如负载载体,感兴趣的区域和夹具。

6.1 3D相机模块

6.1.1 相机

6.1.1.3 参数

6.1.2 立体匹配

6.1.2.1 计算视差图像

校正后,保证一个对象点投影到左右图像的同一像素行上。右侧图像中该点的像素列始终小于或等于左侧图像中同一点的像素列。术语“视差”表示左右图像像素列之间的差异,表示物体点离相机的深度或距离。视差图像存储左侧相机图像中所有像素的视差值。

视差越大,物体点越近。视差为0表示物体的投影点在同一图像列,目标点在无限远。通常,有些像素的视差无法确定。这种情况出现在物体左侧被遮挡,因为从右边的相机看不到这些区域。此外,差没有纹理的区域无法确定视差。无法确定视差的像素被标记为无效视差值0。区分无效视差测量值和视差测量值为0(对于无限远的物体),后者的视差值被设置为大于0的尽可能小的视差值。

为了计算视差值,立体匹配算法必须在左右相机图像中找到相应的目标点。这些点代表场景中相同的物体点。对于立体匹配,rc_visard使用SGM(半全局匹配),它提供了快速的运行时间和很高的精度,特别是在物体边界,精细结构和弱纹理区域。

任何立体匹配方法的一个关键要求是图像中纹理的存在,即由于场景中的图案或表面结构而导致的图像强度变化。在完全没有纹理的区域,例如没有任何结构的白墙,视差值要么无法计算,要么结果错误或置信度低(参见置信度和误差图像,第6.1.2.3节)。场景中的纹理不应该是人为的、重复的图案,因为这些结构可能会导致模糊,从而导致错误的视差测量。

当处理纹理较差的对象或在无纹理的环境中工作时,可以使用外部模式投影仪将静态人工纹理投影到场景中。这种模式应该是随机的,不包含重复的结构。rc_visard提供IOControl模块(参见IO和投影仪控制,章节6.4.4)作为可选的软件模块,可以控制连接到传感器的图案投影仪。

6.1.2.2
6.1.2.3 置信和误差图像

对于每个视差图像,还提供了一个误差图像和一个置信图像,给出了每个视差值的不确定性度量。这些图像与视差图像具有相同的分辨率和相同的帧速率。误差图像包含视差误差 d e p s {d}_{eps} deps,其像素与视差图像中相同图像坐标处的视差值相对应。置信度图像中对应的置信度值𝑐在0 ~ 1之间。

置信度定义为真实视差值在测量视差𝑑周围误差的三倍区间内的概率,即[𝑑− 3 d e p s {3d}_{eps} 3deps,𝑑+ 3 d e p s {3d}_{eps} 3deps]。因此,具有误差和置信值的视差图像可用于需要概率推理的应用。与无效视差测量相对应的置信度和误差值将为0。

6.4 配置模块

6.4.1 手眼标定

6.4.2 碰撞检测

6.4.3 相机标定

6.4.4 IO和投影仪控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript 中 interface 和 type 的使用#记录

一、interface:接口 interface A{label: string; }const aa ((aObj: A) > {console.log(aObj.label);//123return aObj.label; })aa({label: 123}) 1、可选属性 interface A{label: string;age?: number; } 2、只读属性 interface A{label: string;age?:…

231 基于matlab的北斗信号数据解析

基于matlab的北斗信号数据解析,多通道和单通道接收到的北斗信号数据,利用接收到的北斗数据(.dat .txt文件),进行解析,得到初始伪距,平滑伪距,载波相位,并计算其标准差&am…

代码随想录训练营23day-贪心算法

一、贪心算法 贪心算法核心思想是局部最优,以确定全局最优。当然需要使用数学归纳去总结,但是实际应用过程,可以举反例来验证是不是可以使用贪心算法。参考代码随想录 贪心算法一般分为如下四步: 将问题分解为若干个子问题找出…

翱途开发平台新手上路-体验APP移动手机办公

O2OA(翱途)开发平台拥有配套的移动办公APP,支持IOS和安卓端,用户可在连接O2云之后,使用APP使用移动办公。移动办公APP开放源代码,不会产生任何费用。本篇主要简单讲述初如何完成服务器连接O2云,实现移动办公。 一、先决…

Barnes-Hut t-SNE:大规模数据的高效降维算法

在数据科学和分析中,理解高维数据集中的底层模式是至关重要的。t-SNE已成为高维数据可视化的有力工具。它通过将数据投射到一个较低维度的空间,提供了对数据结构的详细洞察。但是随着数据集的增长,标准的t-SNE算法在计算有些困难,…

什么是IoT?

什么是IoT? IoT,即物联网(Internet of Things),是通过信息传感设备和互联网将各种物品连接起来,实现智能化的识别、定位、跟踪、监控和管理的网络系统。 以下是关于IOT的一些详细解释: 基本概…

JVM之本地方法栈和程序计数器和堆

本地方法栈 本地方法栈是为虚拟机执行本地方法时提供服务的 JNI:Java Native Interface,通过使用 Java 本地接口程序,可以确保代码在不同的平台上方便移植 不需要进行 GC,与虚拟机栈类似,也是线程私有的,…

OCP Java17 SE Developers 复习题13

答案 D, F. There is no such class within the Java API called ParallelStream, so options A and E are incorrect. The method defined in the Stream class to create a parallel stream from an existing stream is parallel(); therefore, option F is correct, and o…

Spring源码中的抽象工厂模式

Spring 框架中广泛运用了抽象工厂模式来实现其核心组件的创建与管理。以下是源码分析: 源码分析: 1. BeanFactory 与其实现 org.springframework.beans.factory.BeanFactory 是 Spring 中最基础的工厂接口,它代表了抽象工厂模式中的“抽象…

Spring Boot分段处理List集合多线程批量插入数据

项目场景: 大数据量的List集合,需要把List集合中的数据批量插入数据库中。 解决方案: 拆分list集合后,然后使用多线程批量插入数据库 1.实体类 package com.test.entity;import lombok.Data;Data public class TestEntity {priv…

Python入门:使用Python实现简单的猜数字游戏

Python是一种解释型、交互式、面向对象的编程语言,其设计哲学强调代码的可读性,并允许开发者用少量代码表达想法。在本文中,我们将通过编写一个简单的猜数字游戏来展示Python的基础知识和编程逻辑。 游戏描述 游戏开始时,程序会…

数字化转型过程中所面临的挑战以及应对这些挑战的策略

随着信息技术的快速发展,企业为了提升运营效率、优化资源配置,往往会在不同部门建立各自的信息系统。然而,这些系统的孤立性、功能重叠以及数据不一致性等问题逐渐凸显,导致企业业务流程受阻,难以形成高效的协同作战能…

Spring源码中的简单工厂模式

Spring 源码中广泛运用了各种设计模式,其中包括简单工厂模式。简单工厂模式在 Spring 中主要用于简化对象的创建过程,将对象的创建逻辑集中管理,从而使得客户端代码无需关心具体的对象创建细节,只需与工厂交互就能获取所需的对象实例。这种设计有助于提高代码的可读性、可维…

高斯溅射融合之路(一)- webgl渲染3d gaussian splatting

大家好,我是山海鲸的技术负责人。之前已经写了一个GIS融合系列。其实CesiumJS的整合有相当的难度,同时也有很多方面的工作,很难在几篇文章内写完,整个山海鲸团队也是投入了接近两年的时间,才把周边整套工具链进行了完善…

prometheus服务端部署

prometheus 安装 下载 # https://prometheus.io/download/wget https://github.com/prometheus/prometheus/releases/download/v2.34.0/prometheus-2.34.0.linux-amd64.tar.gztar -zxf prometheus-2.34.0.linux-amd64.tar.gz -C /data0/prometheus-2.34.0sudo adduser prome…

Linux中inode号与日志分析

一.inode号 1.inode表结构 元信息:每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data 元信息 ) 元数据是存放在inode(index node)表中…

Spring Kafka—— KafkaListenerEndpointRegistry 隐式注册分析

由于我想在项目中实现基于 Spring kafka 动态连接 Kafka 服务,指定监听 Topic 并控制消费程序的启动和停止这样一个功能,所以就大概的了解了一下 Spring Kafka 的几个重要的类的概念,内容如下: ConsumerFactory 作用:…

Opencv_2_ 图像色彩空间转换

ColorInvert.h 内容如下&#xff1a; #pragma once #include <opencv.hpp> using namespace std; #include <opencv.hpp> using namespace cv; using namespace std; class ColorInvert{ public : void colorSpaceInvert(Mat&image); }; ColorInvert.cpp…

使用了Python语言和Flask框架。创建一个区块链网络,允许用户通过HTTP请求进行交互,如包括创建区块链、挖矿、验证区块链等功能。

目录 大概来说&#xff1a; 二、代码注释 1.添加交易方法&#xff08;add_transaction函数&#xff09; 2.添加新的节点&#xff08;add_node 函数&#xff09; 3、替换链的方法&#xff08;replace_chain函数&#xff09; 总结 大概来说&#xff1a; 定义了一个名为Blo…

1、初识Linux系统 shell 脚本

shell脚本组成介绍 1、shell脚本命名规则 必须以.sh文件结尾&#xff0c;类似.txt文件&#xff1b;例如创建一个test.sh文件 2、linux系统中shell脚本开头&#xff0c;必须以如下代码开头 test.sh内容如下&#xff1a; #!/bin/bash# 这是一个注释echo "Hello, World!&…