一文梳理相机与激光雷达外参标定系统教程!
大家好,我是jack。前段时间购买了一台3D视觉工坊的手持扫描仪HandBot-S1。
之前在老师的指导下,使用Kalibr标定算法完成了单目相机内参的标定,近期由于学习开发和发论文的需要,需要进行标定双目相机的内外参。
在技术老师的指导下,总结内外参标定流程。
一、使用Kalibr标定相机内参
1.1 准备标定板
根据技术老师推荐的标定板图纸,我打印了一份雪弗板,平面度肉眼看着还行。
1.2 录制bag
手持扫描仪HandBot-S1默认使用的是右目,在技术的指导下进行相关修改,使其可以录制符合要求的bag包,从而进行标定。
1.3 标定相机内参
将录制的包放在相应的文件夹下,便于后续使用。在catkin_ws_kalibr文件夹下打开终端,输入:
source devel/setup.bash
rosrun kalibr kalibr_calibrate_cameras --models pinhole-equi pinhole-equi --target april_4x6_7cm.yaml --bag ${data} --topics /image_left /image_right --verbose --show-extraction
注意:之前标定单目时:--models pinhole-equi 双目则为:--models pinhole-equi pinhole-equi
上述的${data}录制bag包路径,运行完毕,会在相应的文件夹下产生一个pdf文件件,里面有标定的结果和重投影误差(reprojection errors)!
1.4 标定结果
本次标定结果如下:
重投影误差直方图,用于展示标定板角点在图像中X方向(横向)和Y方向(纵向)的投影误差分布。
二、标定相机与激光雷达外参
2.1 录制bag
录制所需的bag包如下所示:
2.2 标定相机与激光雷达外参
将录制的包放在相应的文件夹下,便于后续使用。在catkin_ws_grcalib文件夹下打开终端,输入:
source devel/setup.bash
roslaunch grcalib grcalib.launch
接下来rosbag play录制的bag。运行之后会出现如图10所示,同时终端也会输出相应的外参矩阵。此时要使用E(左)、D(右)、S(上)、W(下)、Q(顺时针)、A(逆时针)进行调整,使点云与原物大致贴合,调整之后如图11所示。
2.3 标定结果
等我们调整完毕后,终端会输出相应的矩阵,如图所示:
经过上面的步骤,我已经得到了标定好的内外参,最后将其写入到设备中的params下的camera_equal.yaml参数文件就可以了。
写在最后
感谢3D视觉工坊技术老师的指导,该设备对我的学习和发论文起到了非常大的作用。采购方式如下:
更多推荐
所有评论(0)