双目立体视觉(3)- ZED2 ROS Melodic 发布RGB图像及深度信息
国际惯例:Src https://github.com/stereolabs/zed-examples
查看本人系列文章了解ZED2 SDK in Linux build(CUDA 10.0 used): https://blog.csdn.net/hhaowang/article/details/115401380?spm=1001.2014.3001.5501
ZED2官方文档:https://www.stereolabs.com/docs/
目录
1. 安装zed-ros-wrapper依赖
Build the program
编译zed_ros_wrapper包
简单测试:
2 ZED2 wrapper 话题列表
查看节点信息
查看话题信息
左相机发布话题列表
右相机话题
双目及深度话题
SLAM相关
传感器数据发布话题
3. ZED参数服务器
Parameters with prefix general
VIDEO PARAMETERS
DEPTH PARAMETERS
POSITION PARAMETERS
MAPPING PARAMETERS
SENSORS PARAMETERS (ONLY ZED-M AND ZED 2)
OBJECT DETECTION PARAMETERS (ONLY ZED 2)
Dynamic parameters
4. ZED TF
1. 安装zed-ros-wrapper依赖
项目地址 https://github.com/stereolabs/zed-ros-wrapper#build-the-program
Build the program
The zed_ros_wrapper is a catkin package. It depends on the following ROS packages:
- nav_msgs
- tf2_geometry_msgs
- message_runtime
- catkin
- roscpp
- stereo_msgs
- rosconsole
- robot_state_publisher
- urdf
- sensor_msgs
- image_transport
- roslint
- diagnostic_updater
- dynamic_reconfigure
- tf2_ros
- message_generation
- nodelet
编译zed_ros_wrapper包
$ cd ~/catkin_ws/src
$ git clone https://github.com/stereolabs/zed-ros-wrapper.git
$ cd ../
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin_make -DCMAKE_BUILD_TYPE=Release
$ source ./devel/setup.bash
简单测试:
ZED2 camera:
$ roslaunch zed_wrapper zed2.launch
2 ZED2 wrapper 话题列表
查看节点信息
查看话题信息
左相机发布话题列表
rgb_image相关话题默认以左相机数据帧发布
右相机话题
双目及深度话题
SLAM相关
(暂不考虑)
传感器数据发布话题
3. ZED参数服务器
# params/zed2.yaml
# Parameters for Stereolabs ZED2 camera
---general:camera_model: 'zed2'depth:min_depth: 0.7 # Min: 0.2, Max: 3.0 - Default 0.7 - Note: reducing this value wil require more computational power and GPU memorymax_depth: 20.0 # Max: 40.0pos_tracking:imu_fusion: true # enable/disable IMU fusion. When set to false, only the optical odometry will be used.sensors:sensors_timestamp_sync: false # Synchronize Sensors messages timestamp with latest received framepublish_imu_tf: true # publish `IMU -> <cam_name>_left_camera_frame` TFobject_detection:od_enabled: false # True to enable Object Detection [only ZED 2]model: 0 # '0': MULTI_CLASS_BOX - '1': MULTI_CLASS_BOX_ACCURATE - '2': HUMAN_BODY_FAST - '3': HUMAN_BODY_ACCURATEconfidence_threshold: 50 # Minimum value of the detection confidence of an object [0,100]max_range: 15. # Maximum detection rangeobject_tracking_enabled: true # Enable/disable the tracking of the detected objectsbody_fitting: false # Enable/disable body fitting for 'HUMAN_BODY_FAST' and 'HUMAN_BODY_ACCURATE' modelsmc_people: true # Enable/disable the detection of persons for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' modelsmc_vehicle: true # Enable/disable the detection of vehicles for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' modelsmc_bag: true # Enable/disable the detection of bags for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' modelsmc_animal: true # Enable/disable the detection of animals for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' modelsmc_electronics: true # Enable/disable the detection of electronic devices for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' modelsmc_fruit_vegetable: true # Enable/disable the detection of fruits and vegetables for 'MULTI_CLASS_BOX' and 'MULTI_CLASS_BOX_ACCURATE' models
Parameters with prefix general
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
camera_name | A custom name for the ZED camera. Used as namespace and prefix for camera TF frames |
string, default=zed
|
camera_model | Type of Stereolabs camera |
zed : ZED, zedm : ZED-M, zed2 : ZED 2
|
camera_flip | Flip the camera data if it is mounted upsidedown | true, false |
zed_id | Select a ZED camera by its ID. Useful when multiple cameras are connected. ID is ignored if an SVO path is specified |
int, default 0
|
serial_number | Select a ZED camera by its serial number |
int, default 0
|
resolution | Set ZED camera resolution |
0 : HD2K, 1 : HD1080, 2 : HD720, 3 : VGA
|
grab_frame_rate | Set ZED camera grabbing framerate | int |
gpu_id | Select a GPU device for depth computation |
int, default -1 (best device found)
|
base_frame | Frame_id of the frame that indicates the reference base of the robot |
string, default=base_link
|
verbose | Enable/disable the verbosity of the SDK | true, false |
svo_compression | Set SVO compression mode |
0 : LOSSLESS (PNG/ZSTD), 1 : H264 (AVCHD) ,2 : H265 (HEVC)
|
self_calib | Enable/disable self calibration at starting | true, false |
VIDEO PARAMETERS
Parameters with prefix video
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
img_downsample_factor | Resample factor for images [0.01,1.0]. The SDK works with native image sizes, but publishes rescaled image. |
double, default=1.0
|
extrinsic_in_camera_frame |
If false extrinsic parameter in camera_info will use ROS native frame (X FORWARD, Z UP) instead of the camera frame (Z FORWARD, Y DOWN) [true use old behavior as for version < v3.1]
|
true, false |
DEPTH PARAMETERS
Parameters with prefix depth
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
quality | Select depth map quality |
0 : NONE, 1 : PERFORMANCE, 2 : MEDIUM, 3 : QUALITY, 4 : ULTRA
|
sensing_mode | Select depth sensing mode (change only for VR/AR applications) |
0 : STANDARD, 1 : FILL
|
depth_stabilization | Enable depth stabilization. Stabilizing the depth requires an additional computation load as it enables tracking |
0 : disabled, 1 : enabled
|
openni_depth_mode | Convert 32bit depth in meters to 16bit in millimeters |
0 : 32bit float meters, 1 : 16bit uchar millimeters
|
depth/depth_downsample_factor | Resample factor for depth data matrices [0.01,1.0]. The SDK works with native data sizes, but publishes rescaled matrices (depth map, point cloud, …) |
double, default=1.0
|
min_depth | Minimum value allowed for depth measures | Min: 0.3 (ZED) or 0.1 (ZED-M), Max: 3.0 - Note: reducing this value will require more computational power and GPU memory. In cases of limited compute power, increasing this value can provide better performance |
max_depth | Maximum value allowed for depth measures | Min: 1.0, Max: 30.0 - Values beyond this limit will be reported as TOO_FAR |
POSITION PARAMETERS
Parameters with prefix pos_tracking
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
publish_tf | Enable/disable publish TF frames | true, false |
publish_map_tf | Enable/disable publish map TF frame | true, false |
map_frame |
Frame_id of the pose message
|
string, default=map
|
odometry_frame |
Frame_id of the odom message
|
string, default=odom
|
area_memory_db_path | Path of the database file for loop closure and relocalization that contains learnt visual information about the environment | string, default=`` |
pose_smoothing | Enable smooth pose correction for small drift correction |
0 : disabled, 1 : enabled
|
area_memory | Enable Loop Closing | true, false |
floor_alignment | Indicates if the floor must be used as origin for height measures | true, false |
initial_base_pose | Initial reference pose |
vector, default=[0.0,0.0,0.0, 0.0,0.0,0.0] -> [X, Y, Z, R, P, Y]
|
init_odom_with_first_valid_pose | Indicates if the odometry must be initialized with the first valid pose received by the tracking algorithm | true, false |
path_pub_rate | Frequency (Hz) of publishing of the trajectory messages |
float, default=2.0
|
path_max_count | Maximum number of poses kept in the pose arrays (-1 for infinite) |
int, default=-1
|
MAPPING PARAMETERS
Parameters with prefix mapping
Note: the mapping module requires SDK v2.8 or higher
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
mapping_enabled | Enable/disable the mapping module | true, false |
resolution | Resolution of the fused point cloud [0.01, 0.2] |
double, default=0.1
|
max_mapping_range | Maximum depth range while mapping in meters (-1 for automatic calculation) [2.0, 20.0] |
double, default=-1
|
fused_pointcloud_freq | Publishing frequency (Hz) of the 3D map as fused point cloud |
double, default=1.0
|
SENSORS PARAMETERS (ONLY ZED-M AND ZED 2)
Parameters with prefix sensors
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
sensors_timestamp_sync | Synchronize Sensors message timestamp with latest received frame | true, false |
OBJECT DETECTION PARAMETERS (ONLY ZED 2)
Parameters with prefix object_detection
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
od_enabled | Enable/disable the Object Detection module | true, false |
confidence_threshold | Minimum value of the detection confidence of an object | int [0,100] |
object_tracking_enabled | Enable/disable the tracking of the detected objects | true, false |
people_detection | Enable/disable the detection of persons | true, false |
vehicle_detection | Enable/disable the detection of vehicles | true, false |
Dynamic parameters
The ZED node lets you reconfigure these parameters dynamically:
PARAMETER | DESCRIPTION | VALUE |
---|---|---|
general/pub_frame_rate | Frequency of the publishing of Video and Depth images (equal or minor to grab_frame_rate value) | float [0.1,100.0] |
depth/depth_confidence | Threshold to reject depth values based on their confidence. Each depth pixel has a corresponding confidence. A lower value means more confidence and precision (but less density). An upper value reduces filtering (more density, less certainty). A value of 100 will allow values from 0 to 100. (no filtering). A value of 90 will allow values from 10 to 100. (filtering lowest confidence values). A value of 30 will allow values from 70 to 100. (keeping highest confidence values and lowering the density of the depth map). The value should be in [1,100]. By default, the confidence threshold is set at 100, meaning that no depth pixel will be rejected. | int [0,100] |
depth/depth_texture_conf | Threshold to reject depth values based on their textureness confidence. A lower value means more confidence and precision (but less density). An upper value reduces filtering (more density, less certainty). The value should be in [1,100]. By default, the confidence threshold is set at 100, meaning that no depth pixel will be rejected. | int [0,100] |
depth/point_cloud_freq |
Frequency of the pointcloud publishing (equal or minor to frame_rate value)
|
float [0.1,100.0] |
video/brightness | Defines the brightness control | int [0,8] |
video/contrast | Defines the contrast control | int [0,8] |
video/hue | Defines the hue control | int [0,11] |
video/saturation | Defines the saturation control | int [0,8] |
video/sharpness | Defines the sharpness control | int [0,8] |
video/gamma | Defines the gamma control | int [1,9] |
video/auto_exposure_gain | Defines if the Gain and Exposure are in automatic mode or not | true, false |
video/gain |
Defines the gain control [only if auto_exposure_gain is false]
|
int [0,100] |
video/exposure |
Defines the exposure control [only if auto_exposure_gain is false]
|
int [0,100] |
video/auto_whitebalance | Defines if the White balance is in automatic mode or not | true, false |
video/whitebalance_temperature | Defines the color temperature value (x100) | int [42,65] |
To modify a dynamic parameter, you can use the GUI provided by the rqt
stack:
$ rosrun rqt_reconfigure rqt_reconfigure
4. ZED TF
双目立体视觉(3)- ZED2 ROS Melodic 发布RGB图像及深度信息相关推荐
- Ubuntu平台下ROS系统查看RGB摄像头和深度摄像头的连接
cd /dev ls 检查是否出现video 0和video 1 确保可移动设备选项下面的camera选项已经连接到虚拟机(这里为ASTRA Pro和Astra Pro FHD Camera) 虚拟机 ...
- 基于基于全局差错能量函数的双目图像立体匹配算法matlab仿真,并提取图像的深度信息
目录 1.算法概述 2.仿真效果预览 3.核心MATLAB代码预览 4.完整MATLAB程序 1.算法概述 全局的能量函数公式如下: E(f)=Edata(f)+Esmooth(f) 其中,Edata ...
- 双目立体视觉“新生”
视觉感知正在经历一轮新的市场变革. 特斯拉"抛弃"传统毫米波雷达,原因是目前的视觉(摄像头)与雷达的前融合,还无法经受复杂道路场景的考验,尤其是非4D成像雷达无法在感知能力上与摄像 ...
- 在Ubuntu 18.04 LTS安装ROS Melodic版机器人操作系统(2019年10月更新MoveIt! 1.0 ROS 2.0 Dashing)
ROS Melodic版本在2018年5月23日推出正式版,这是ROS第三款长期支持版本,前2版LTS分别为:indigo(14.04):kinetic(16.04).此版本有windows版已经推出 ...
- 双目立体视觉测量零件的高度
高度测量步骤: 1.执行双目标定; binocular_calibration( : : NX, NY, NZ, NRow1, NCol1, NRow2, NCol2, StartCamParam1, ...
- 双目立体视觉摄像头模块开发搭建,含源代码、电路图
作品摘要 本作品为基于ATLYS FPGA开发平台.VmodCAM双目摄像头模块开发设计的双目立体视觉系统.VmodCAM用于采集双路的视觉信息,FPGA开发平台负责完成视觉信息的处理及图像的高速分析 ...
- 双目立体视觉技术的内容
双目立体视觉技术(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的 ...
- 【深度学习】RGB图像的内存排列方式及HWC和CHW格式解析
目录 摘要 一.RGB图像的内存排列方式 二.HWC格式和CHW格式 HWC格式 CHW格式 三.HWC和CHW格式的关系 总结 摘要 RGB图像是计算机视觉和图像处理领域中最为常见的图像格式之一,而 ...
- realsense系列(一):快速查看realsense相机深度图像和RGB图像
realsense系列[一]:快速查看realsense相机深度图像和RGB图像 0.本次任务 1.环境准备 2.查看相机内容 0.本次任务 使用realsenseviewer快速查看相机内容 1.环 ...
最新文章
- 【Redis学习笔记】2018-05-30 Redis源码学习之Ziplist、Server
- 对spring 中IOC 的理解
- Windows 下直接运行 Linux的Live CD版的方法
- 用xml配置文件加载资源时(XML和XMLList的转换)
- 我们的系统检测到您的计算机网络中存在异常流量_如何建立我们的网络防线?入侵检测,确保我们的网络安全...
- linux spinlock/rwlock/seqlock原理剖析(基于ARM64)
- django-路由进阶-01
- 使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)
- package.json 入门
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- MacBook Pro macOS 安装 Linux 双系统教程(一)
- 矩阵分析与应用(二)——内积与范数
- UG12.0基础绘图3D建模造型 工程图视频教程
- Paper Download Artifact
- iTop-4412 裸机教程(一)- 从启动方式开始
- C++ 万年历 查找年、月、日、星期数以及节日等信息
- euclidean loss
- 计算机windows怎么开启,Win10怎么打开我的电脑_Win10正式版怎么打开我的电脑?-192路由网...
- HYSBZ 2565 Manacher算法
- python汉罗塔用递归函数实现
热门文章
- 集效率之大成的EfficientNet
- 响铃:互金信贷的明天,或是一场一站式金融服务的盛宴
- 【渝粤题库】广东开放大学 计算机应用基础(专科) 形成性考核
- 我的世界java1.16.3村庄种子,我的世界2020年最新版村庄种子
- 互融云贷款中介平台搭建,助力企业实现数字化智能办公
- 文本修饰标签(text-decoration)
- vue 高德地图标记_vue-element-admin 引入高德地图并做海量点标记
- 已有多项研究表明手机致癌,这12张图告诉你,如何摆脱手机上瘾!
- 企业发布重要通知短信收不到该怎么办
- 职场 | 联发科MTK手机通信协议软件开发工程师面试总结