使用kalibr标定双目相机zed2i时遇到的bug

本文讲述了作者在使用kalibr标定ZED2i双目相机过程中遇到的调试技巧、标定指令、常见错误如包导入错误和时间同步问题,以及查看topics和录制rosbag的方法,为遇到类似问题的读者提供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,我先告诫自己一下,debug要有控制变量的思想:也就是说如果你按某个帖子操作后,你的bug没有消失或变化,就先把刚操作的那一步复原,再尝试其他方法,不然很可能改了个不需要改的地方,把对的改错,后面再找到真正解决的办法后,修改后依然报错,误认为后面的方法也无效。

好了,言归正传,以下是笔者在使用kalibr标定ZED2i的双目是遇到的问题,自己写下来做个笔记,也给找不到解决方法的同行们指一条路。

1.kalibr标定指令:
1.1每次使用kalibr时在工作区间执行:source devel/setup.bash
1.2运行指令:
1.2.1棋盘格:rosrun kalibr kalibr_calibrate_cameras --bag camera_calibra_checker.bag --target /home/zql/kalibr_ws/checkerboard.yaml --topics /right/image_raw /left/image_raw --models pinhole-radtan pinhole-radtan --show-extraction --approx-sync 0.1
(使用棋盘格时,yaml文件里的棋盘格行列数要比实际各减1)
1.2.2apriltag:rosrun kalibr kalibr_calibrate_cameras --bag camera_calibra.bag --target /home/zql/kalibr_ws/apriltag.yaml --topics /right/image_raw /left/image_raw --models pinhole-radtan pinhole-radtan --show-extraction --approx-sync 0.1
(棋盘格的yaml怎么写怎么设置,可以去kalibr的github找)

2.一些难以解决的报错:
2.1
File "/opt/ros/noetic/lib/python3/dist-packages/rosbag/bag.py", line 53, in <module>
    from Cryptodome.Cipher import AES
ImportError: No module named Cryptodome.Cipher
解决方法:卸载ubuntu20.04自带的python2.7

2.2
from sm import PlotCollection
ImportError: cannot import name 'PlotCollection' from 'sm' (/home/zql/.local/lib/python3.8/site-packages/sm/__init__.py)

每次使用kalibr时在工作区间执行:source devel/setup.bash

3.如何查看rosbag里的topics:
(1)roscore
rqt_bag XXX.bag
(2)rosbag info xxx.bag


4.录制rosbag操作:

4.1相机录制时的可视化:
roslaunch zed_display_rviz display_zed2i.launch


4.2更改频率:
rosrun topic_tools throttle messages /zed2i/zed_node/right_raw/image_raw_color 4.0 /right/image_raw
rosrun topic_tools throttle messages /zed2i/zed_node/left_raw/image_raw_color 4.0 /left/image_raw
4.3录制rosbag:
4.3.1rosbag record -O camera_calibra_checker.bag /right/image_raw /left/image_raw
4.3.2rosbag record -O camera_calibra.bag /right/image_raw /left/image_raw

5.标定报错:
Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance.
解决方法:
应该是两个相机时间不同步导致的,需要调整参数:--approx-sync
例如:cd ~/kalibr_
source devel/setup.bash
rosrun kalibr kalibr_calibrate_cameras --bag '/home/cjn/stereo_calibra.bag' --topics /left /right --models pinhole-radtan pinhole-radtan --target '/home/cjn/下载/april_6x6_80x80cm.yaml' --show-extraction --approx-sync 0.1

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值