ZED2双目相机运行VINS-FUSION初试

10 篇文章 5 订阅

基于ZED2运行VINS-MONO的经验,在运行VINS-FUSION前有几点tips想跟大家分享,应该能在运行的过程中避免一些踩坑吧。

TIPs

1)关于zed2标定
开始使用Kalibr进行相机单目/双目及联合标定,虽然重投影误差最高也就5个像素,但实际使用效果却并不好,故建议大家相机内参还是从ZED2相机发布出的topic获取或可尝试/usr/local/zed/settings文件下的参数文档
另,启动ZED2.launch的时候,会有一个相机(一般是左目)和IMU的轴系转换关系Camera-IMU Transform,这个是系统值,最好还是自行标定。

2)关于运行频率
这个基于自己电脑(实验设备)性能可进行实际调试,可适当降低分辨率和帧率进行测试,尤其运行双目时,否则系统可能会卡掉
降帧命令:

rosrun topic_tools throttle messages old_topic hz new_topic//hz替换成测试帧率

3)关于实验
实验过程中尽量保持相机平稳,否则很容易造成位置较大漂移

运行VINS-Fusion

1)按照标定结果更改配置文件中的参数,包括cam0.yaml、cam1.yaml、zed2_stereo_config.yaml

%YAML:1.0

#common parameters
#support: 1 imu 1 cam; 1 imu 2 cam: 2 cam; 
imu: 1         
num_of_cam: 2  

imu_topic: "/zed2/zed_node/imu/data2"
image0_topic: "/zed2/zed_node/left/image_rect_gray"
image1_topic: "/zed2/zed_node/right/image_rect_gray"
output_path: "~"

cam0_calib: "cam0.yaml"
cam1_calib: "cam1.yaml"
image_width: 672
image_height: 376
   

# Extrinsic parameter between IMU and Camera.
estimate_extrinsic: 1   # 0  Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.
                        # 1  Have an initial guess about extrinsic parameters. We will optimize around your initial guess.

body_T_cam0: !!opencv-matrix
   rows: 4
   cols: 4
   dt: d
   data: 填写自己的旋转矩阵参数
   
body_T_cam1: !!opencv-matrix
   rows: 4
   cols: 4
   dt: d
   data: 填写自己的旋转矩阵参数
   
#Multiple thread support
multiple_thread: 1

#feature traker paprameters
max_cnt: 150            # max feature number in feature tracking
min_dist: 30            # min distance between two features 
freq: 10                # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image 
F_threshold: 1.0        # ransac threshold (pixel)
show_track: 1           # publish tracking image as topic
flow_back: 1            # perform forward and backward optical flow to improve feature tracking accuracy

#optimization parameters
max_solver_time: 0.04  # max solver itration time (ms), to guarantee real time
max_num_iterations: 8   # max solver itrations, to guarantee real time
keyframe_parallax: 10.0 # keyframe selection threshold (pixel)

#imu parameters       The more accurate parameters you provide, the better performance
acc_n: 0.1          # accelerometer measurement noise standard deviation. 
gyr_n: 0.01         # gyroscope measurement noise standard deviation.     
acc_w: 0.001        # accelerometer bias random work noise standard deviation.  
gyr_w: 0.0001       # gyroscope bias random work noise standard deviation.     
g_norm: 9.81007     # gravity magnitude

#unsynchronization parameters
estimate_td: 0                      # online estimate time offset between camera and imu
td: 0.0                             # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)

#loop closure parameters
load_previous_pose_graph: 0        # load and reuse previous pose graph; load from 'pose_graph_save_path'
pose_graph_save_path: "~/output/pose_graph/" # save and load path
save_image: 1                   # save image in pose graph for visualization prupose; you can close this function by setting 0 

另外,需修改IMU参数
imu_tils官网给的IMU单位:
在这里插入图片描述根据IMU的单位,这里需要相应的乘以或除以根号频率
acc_n=acc_n/(sqrt(1/imu frequency (hz)))
gyr_n=gyr_n/(sqrt(1/imu frequency (hz)))
acc_w=acc_w*(sqrt(1/imu frequency (hz)))
gyr_w=gyr_w*(sqrt(1/imu frequency (hz)))

终端运行命令:

roscore
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins-fusion/src/VINS-Fusion/config/zed/zed2_stereo_config.yaml

启动ZED2的ROS节点:

roscore
roslaunch zed_wrapper zed2.launch

加上回环检测部分:

rosrun loop_fusion loop_fusion_node ~/vins-fusion/src/VINS-Fusion/config/zed/zed2_stereo_config.yaml

在这里插入图片描述

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: Zed2双目相机C开发是一种基于NVIDIA Jetson TX2平台的深度感知解决方案。该相机是一个小型、轻便的设备,可以实现实时的深度感知以及三维重构功能。 Zed2双目相机C开发可以被应用于机器人技术、虚拟现实技术、自动驾驶技术等领域。对于机器人技术而言,该相机可以帮助机器人实现立体视觉和深度感知,从而更好地理解环境和完成任务。对于虚拟现实技术来说,该相机可以实现更高精度的位置追踪,提升用户体验。 此外,Zed2双目相机C开发还具有并行计算能力,可以实现实时深度感知和三维重构。同时,该相机还可以进行AI加速,加速数据处理速度,提升系统的实时性和响应速度。 总的来说,Zed2双目相机C开发为深度感知领域提供了一个全新的解决方案,具有多种优势,可以为众多应用领域提供更高的精度和效率。 ### 回答2: zed2双目相机是一款先进的双目立体成像设备,其采用高质量的成像技术,可以对物体进行全面、精准的测量和观察。在人工智能、机器人、自动驾驶等领域,具有重要的应用前景。 zed2双目相机c开发是一项非常复杂的任务,需要丰富的硬件和软件支持。在硬件方面,开发人员需要了解相机的基本结构、工作原理、信号传输等关键要素,以确保相机的高质量工作。在软件方面,开发人员需要开发相应的算法和程序,以实现数据采集、图像处理、测量分析等功能。 在开发zed2双目相机c时,需要注意以下几个方面: 1. 硬件设计。开发人员需要根据应用场景需求进行相应的硬件设计,如制作机械结构支持、电源管理模块等。 2. 软件编程。开发人员需要使用各种编程语言,如C、C++等,编写相应的程序,实现数据采集、图像处理、测量分析等功能。 3. 算法优化。开发人员需要使用各种算法来实现图像处理、测量分析等功能,并对其进行优化,以提高算法的效率和精度。 总之,zed2双目相机c开发是一项非常复杂的任务,需要开发人员具备深厚的硬件和软件技术知识,并进行深入研究和不断实践,以完善该设备的功能和性能,应对不断变化的市场需求。 ### 回答3: zed2是一种双目相机,可以将两个摄像头的影像数据融合,得到更精准的景深信息,在3D场景中应用广泛。zed2双目相机c开发,则是对于zed2相机的C语言开发。使用zed2相机进行3D影像采集需要一定的程序开发,通过C语言开发zed2相机的应用程序可以更加高效地处理图像数据,并且实现不同的应用功能。zed2双目相机c开发可以用于机器人、自动驾驶、医疗等领域。在机器人领域,zed2双目相机c开发可以用于3D地图的构建与导航,同时也可以用于机器人的实时定位与姿态估计。在自动驾驶领域,zed2双目相机c开发可以用于视觉辅助驾驶、交通标志识别等场景。在医疗领域,zed2双目相机c开发可以用于立体纹理重建、手术导航等场景。双目相机c开发使用C语言对zed2相机程序进行设计开发,需要了解相机硬件的具体参数和相关的开发工具,同时也需要对于图像处理算法、计算机视觉有较深的基础。越来越多的应用场景需要zed2双目相机c开发,对于开发人员来说也提供了更多的发展机会。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值