前言:
1.使用Tartancalib标定双目或多目相机前,先对单个相机标定获得内参,再获得外参
一.环境准备
参考我之前的文章:
Kalibr&TartanCalib开源项目进行单目相机标定_kalibr 标定单目相机-CSDN博客
二.数据集准备
略-推荐使用ROSbag工具录制数据集,录制方式参考视频:
OmniNxt 四目标定包录制流程_哔哩哔哩_bilibili
1.推荐使用ROSbag工具
2. 过程中用到的标定板
三.执行过程
1.单目标定
rosrun kalibr tartan_calibrate --bag bag/oak_ffc_2.bag --target yaml/checkerboard_v3_11_8.yaml --topics /camd/image_raw --models omni-radtan --save_dir res/ --debug_image_dir res/debug/
2.执行结果
出现了一个segmentation的错误,我这里使用的是棋盘格!
但是在另外一组实验中,我使用Aprilgrid标定板的实验成功执行了。因为这组实验采用的标定板太小导致相机得到的图像质量低,身边大的标定板只有棋盘格,故换用棋盘格标定。
于是,我再次验证。我使用了非OAK_FFC的普通相机(之前使用Aprilgrid标定板验证成功过)和棋盘格标定板,使用同样的方法验证,结果:
现在有理由怀疑是标定板的原因,导致出现了不好寻找的报错。接下来更换标定板再做尝试。
四.问题排查和验证
我这里不再采用显示屏做标定板(因为屏幕反光对OAK相机成像质量有影响),打印出一张A3纸张大小的AprilGrid(9*6)的标定板做测试。
标定板生成网址:
1.验证过程
第一次验证:
apri,普通双目相机,手动录制数据集
rosrun kalibr tartan_calibrate --target yaml/ApirGird_9_6.yaml --models pinhole-equi pinhole-equi --topics /cam0/image_raw /cam1/image_raw --bag bag/nomal_apri_2.bags
结果:执行成功
第二次验证:
apri,oak_ffc_4p相机组中的两个相机,ROSBAG录制数据集。
rosrun kalibr tartan_calibrate --target yaml/ApirGird_9_6.yaml --models omni-radtan omni-radtan --topics /rgb/image_raw /left/image_raw --bag bag/oak_apri_9_6.bag
结果:执行成功
2.验证结论
经过上述验证后,再次查阅官方文档后发现。
tartancalib衍生与于Kalibr算法,它理论上支持kacalib的三种标定板进行标定,我这里对他的理解是标定的yaml文件要做调整。但是tartancalib推荐使用AprilTags标定板,这更稳重!
我的结论:不要用棋盘格,用AprilTags!