slam 相机-IMU外参标定
标定工具
kalibr
标定设备
1个摄像头 + IMU
IMU 频率100Hz
问题描述
室内标定时,IMU和摄像头是粘贴在一起的,标定结果比较好,两者的时间偏移较小
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-0.031169477373890628
但在装车后( imu放在的了仪表盘上面,摄像头安装在了车辆前进气口位置),再次联合标定,数据不太理想。
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-56.115199706814096
另外,转移矩阵中,平移量的计算也有偏差,纵向偏差大约120cm左右。
实车标定结果
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-56.115199706814096
可能的解决方案
相机的yaml配置文件中,添加 T_cam_imu 项,添加实际的相对位置的平移量。
(注意:单位为米),正负号参考实际imu与摄像头的相对位置。
T_cam_imu:
- [ 0.9998201, 0.01889671, -0.00163931, 0.0]
- [ -0.0025176, 0.0465491, -0.99891283, -0.2]
- [ -0.01879985, 0.99873725, 0.0465883, -1.2]
- [0.0, 0.0, 0.0, 1.0]
添加后时间偏移明显减小:
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-0.17616964586615763
但是结果中,平移量依然有偏移,大约50cm左右。
还需要继续寻找其他解决方案。