Kalibr IMU和相机联合标定出现优化失败的问题
相机和IMU联合标定的过程中出现如下的问题:
这里引用的是github上的图片,自己的图片没有保存
这个问题最后就是Fail to Optim……,也就是优化失败,出现这样的问题首先需要去检查的一些关键点是:
-
采集的数据本身有没有出现问题,包括IMU和图像数据
-
相机参数.yaml文件中的参数是否出现问题
-
标定板aprilTag.yaml文件中的参数是否存在问题
在本次的测试中犯的最大错误就是第三点,问题出现在标定板的行和列参数,如下图所示:
AprilTag的配置文件正确的写法如下:
target_type: 'aprilgrid' #gridtype tagCols: 4 #number of apriltags tagRows: 6 #number of apriltags tagSize: 0.04 #size of apriltag, edge to edge [m] tagSpacing: 0.2 #ratio of space between tags to tagSize #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]
那么假设标定的时候标定板是横着放置的,也就是图像旋转90度后放置,这个配置文件该如何写?tagCols是不是应该写成6呢?如果你的回答是“yes”,那么恭喜你,你已经踩进深坑了。这里可以看一下在生成标定板的时候的代码时如何表示的:
看见没有?实际上在生成标定板的时候就已经明确的说明了行和列,对应的就是x和y方向上二维码的个数。这个参数是不管你的标定板是如何放置的。这种难以引起足够充分注意的问题往往会导致致命的错误,而且很难排查出来,所以一定要注意。