学习Kalibr工具--Camera标定过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010368556/article/details/86183374

这里介绍用kalibr工具对相机进行单目和双目的标定;
在kalibr中不仅提供了IMU与camera的联合标定工具,也包含了camera的标定工具箱;


- 准备:
安装好kalibr之后,开始准备标定板,在kalibr中适用于三种标定板,分别是:Aprilgrid,Checkerboard和Circlegrid。其中checkboard最常用,但是aprilgird精度最好,因为它可以提供序号信息,能够防止姿态计算时出现跳跃的情况。
- 制作标定板:
这里使用aprilgrid标定板,可以使用kalibr自带工具自定义生成不同大小的标定板,命令行如下:

 kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]

将以上命令生成的标定板PDF格式,直接无缩放比例打印出来,就可以直接使用。
- 数据采集:
制作好标定板之后,就可以使用相机对标定板进行拍摄,进行数据采集,相机要从多个角度对标定进行拍摄,这样相机pose要足够多。命令行如下:(若是单目标定,则执行一行)

 rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
 rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right

命令行中 topic_tools throttle 为ROS中改变topic发布频率的命令,通常设备采集频率为30左右,这会使得标定的图像太多,急剧增加计算量,最好将ros topic降到 4hz左右进行数据采集。要确保图像不要模糊,运动不要太快!
- 制作 rosbag:
数据采集好了之后就可以进行 bag 的制作了,命令行如下:(若是单目标定,则执行一行)

rosbag record -O stereo_calibra.bag /left /right

上述的stereo_calibra.bag就是生成的bag.
- 标定:
使用前边的 bag 与 采集的图像进行标定,命令行如下:

source /home/kalibr/devel/setup.bash

kalibr_calibrate_cameras --bag /home/stereoCamData/stereo_calibra.bag --topics /left /right --models pinhole-radtan pinhole-radtan --target /home/stereoCamData/april_6x6_80x80cm_A0.yaml

- 标定验证:
可以使用calibration validator进行标定结果的验证,原理是对重投影误差进行量化分析。命令行如下:

kalibr_camera_validator --cam camchain.yaml --target target.yaml

命令行中 camchain.yaml 与 target.yaml 分别为上述中camera标定的结果以及 标定板的yaml文件。

相机标定之后就可以进行 camera 与IMU 的联合标定。

参考博客:
https://blog.csdn.net/wwchen61/article/details/78013962
https://blog.csdn.net/heyijia0327/article/details/83583360
https://www.jianshu.com/p/34c301cdc312

猜你喜欢

转载自blog.csdn.net/u010368556/article/details/86183374