双目相机标定¶
1、事前准备¶
-
一个棋盘格标定板,本例为6x9的标定板,每个方格的尺寸为0.02m
-
光线充足的5m x 5m区域,无障碍物和其他棋盘格标定盘
-
双目立体摄像机,通过ROS发布左右图像(如果要将两个独立的摄像机用作双目立体摄像机,则必须确保两个摄像机的图像具有相同的时间戳)
2、编译¶
获取依赖并编译驱动
rosdep install camera_calibration
rosmake camera_calibration
3、发布相机数据¶
执行
rosrun my_stereo_camera stereo.py
确保我们的双目立体相机通过ROS发布相机左右目的图像,我们可以通过以下命令确保图片数据已经被发布:
rostopic list
4、开始标定¶
在开启标定前,请确保/stereo/right/image_raw
和/stereo/left/image_raw
发布图片的话题已开启。
rosrun camera_calibration cameracalibrator.py --approximate 0.1 --size 9x6 --square 0.02 --no-service-check right:=/stereo/right/image_raw left:=/stereo/left/image_raw right_camera:=/stereo/right left_camera:=/stereo/left
--approximate 0.1
的值表示,左右两张图片的时间戳差值只要小于0.1秒,就认为是同时拍照的,继而进行标定操作。此命令会开启一个下面这样的窗口,窗口会彩色高亮显示棋盘格,棋盘格以外的内容将会是黑白色的。
我们不断变换标定板方向,建议多一些横向摆放的,软件自动采集40个之后,右边的CALIBRATE将会亮起,此时可以进行标定计算了,计算完毕后,可以通过SAVE对结果进行保存,输出文件在/tmp/calibrationdata.tar.gz
参考:ROS-3D相机标定