上一节介绍了,用kalibr工具对camera进行标定的操作流程,在camera标定之好之后,进行camera与IMU进行联合标定的操作的学习,即求取相机和IMU 之间的转换关系(坐标系之间的相对位姿矩阵);需要先知道相机的内外参数(单目的内外参数和双目的内外参数),用kalibr工具进行 单目标定或者双目标定上一节已介绍。
这里以双目+IMU为例进行介绍相机和IMU 的联合标定,也叫多传感器融合;
一、camera - IMU相机标定介绍
参考链接:https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration
- (一)标定的输出文件包括:
1.包含图像和IMU数据的 bag包; ( cam_imu.bag文件):采集数相机图片和IMU数据
2.相机参数文件; ( camchain.yaml文件):包含相机的内参和畸变参数的YAML文件(该文件包含相机内在和外在参数的校准以及IMU相对于相机的空间和时间校准参数。)
3.IMU参数文件; ( imu.yaml文件):包含IMU的基本参数,噪音等
4.标定板参数; ( target.yaml文件):标定板标准 - (二)当上述文件都准备好的时候,执行命令行:
kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml –imu xx/IMU.yaml –bag xx/xx.bag –bag-from-to 5 45
由于数据在采集过程中,在开始和结束处存在躁动和激励,所以仅使用 5到45秒之间的数据;
- (三)输出结果:
report-imucam-%BAGNAME%.pdf: Report in PDF format. Contains all plots for documentation.
results-imucam-%BAGNAME%.txt: Result summary as a text file.
camchain-imucam-%BAGNAME%.yaml: 这个文件是在输入文件camchain.yaml基础上增加了标定后的cam-imu信息的结果文件。我们想要的T_cam_imu矩阵就在这里。
二、标定数据制作过程
1.数据采集: 数据采集的过程是手持需要标定的设备,同时激活camera和imu器件分别采集图像和imu数据,对着预先制作好的标定板,在激励充分(从不同的角度,旋转和平移,对标定板拍照,并且使得IMU的accel和gyro两个器件的三个轴都被激活)的情况下,同时保存图像和IMU的数据。采集到的数据应该如下所示(双目+IMU):(假如是单目的话,只需要保留cam0和imu0.csv即可。)
+-- dataset-dir
+-- cam0
│ +-- 1385030208726607500.png
│ +-- ...
│ -- 1385030212176607500.png
+-- cam1