大家好,我是jack。前段时间购买了一台3D视觉工坊的手持扫描仪HandBot-S1

图1 在办公室实拍手持扫描仪HandBot-S1
图1 在办公室实拍手持扫描仪HandBot-S1

之前在老师的指导下,使用Kalibr标定算法完成了单目相机内参的标定,近期由于学习开发和发论文的需要,需要进行标定双目相机的内外参。

在技术老师的指导下,总结内外参标定流程。

一、使用Kalibr标定相机内参

1.1 准备标定板

根据技术老师推荐的标定板图纸,我打印了一份雪弗板,平面度肉眼看着还行。

图2 标定板
图2 标定板
图3 标定板参数
图3 标定板参数

1.2 录制bag

手持扫描仪HandBot-S1默认使用的是右目,在技术的指导下进行相关修改,使其可以录制符合要求的bag包,从而进行标定。

图4 录制bag包
图4 录制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)!

图5 标定产生的文件
图5 标定产生的文件

1.4 标定结果

本次标定结果如下:

图6 标定双目相机内参结果
图6 标定双目相机内参结果
图7 cam0重投影误差直方图
图7 cam0重投影误差直方图
图8 cam2重投影误差直方图
图8 cam2重投影误差直方图

重投影误差直方图,用于展示标定板角点在图像中X方向(横向)和Y方向(纵向)的投影误差分布。

二、标定相机与激光雷达外参

2.1 录制bag

录制所需的bag包如下所示:

图9 录制bag包
图9 录制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所示。

图10:调整前
图11:调整后

2.3 标定结果

等我们调整完毕后,终端会输出相应的矩阵,如图所示:

图12 标定结果
图12 标定结果

经过上面的步骤,我已经得到了标定好的内外参,最后将其写入到设备中的params下的camera_equal.yaml参数文件就可以了。

写在最后

感谢3D视觉工坊技术老师的指导,该设备对我的学习和发论文起到了非常大的作用。采购方式如下:

扫码查看手持扫描仪HandBot-S1产品详情
扫码添加客服微信:cv3d001  或者 13451707958   咨询更多
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐