【学习总结】Kalibr标定相机与IMU

本文仅用于记录自己学习过程。

使用方法

Kalibr包括:相机内参,多相机外参, (已知IMU和相机内参的)相机与IMU标定,以及扩展Kalibr支持IMU内参标定。

当已知IMU内参和相机内参后,使用按照指定方式录制的rosbag,用如下指令进行标定:

rosrun kalibr kalibr_calibrate_imu_camera \
	--bag /home/larrydong/imu_ws/data/imu_cam.bag \
	--cam /home/larrydong/imu_ws/data/imu_cam-camchain.yaml \
	--imu /home/larrydong/imu_ws/data/imu.yaml \
	--target /home/larrydong/imu_ws/data/aprilgrid.yaml

可以看到,输入参数包括:rosbag,相机内参,imu内参,和棋盘格配置文件。

内参获取

相机内参获取

个人实际使用时,首先将相机内参单独标定,以获得xxx-camchain.yaml配置文件,可以采用kalibr的代码,但它这个代码初始化时总有些问题,无法收敛。因此我采用matlab先进行标定,再将matlab标定的参数修改camchain.yaml配置文件。

IMU内参标定

IMU内参标定理论上可以用Kalibr-extend进行,但这里采用另一个工具,imu_utils进行标定。详见:【学习记录】IMU内参标定:Allan方差与代码。同样,标定后修改imu.yaml配置文件。

运行过程与结果

可以看到进行了一个优化,
在这里插入图片描述最后优化得到了最终结果,误差还是蛮大的(毕竟相机和IMU都比较差),得到了IMU到camera的坐标系变换:旋转矩阵基本是 [ 1 , 0 , 0 ; 0 , 0 , − 1 ; 0 , 1 , 0 ] [1,0,0; 0,0,-1; 0,1,0] [1,0,0;0,0,1;0,1,0],即绕x轴正向转了90°:
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tfb760/article/details/129262725