kalibr标定IMU:
必须明确的是
1:如何标定
2:标定的结果
3:如何验证标定结果的正确性
如何标定
标定所需文件:
* XX.bag:包含有图片信息和IMU数据的ROS包
* camchain.yaml:包含相机的内参和畸变参数的文件
* IMU.yaml:包含IMU的基本参数,噪音等
* target.yaml:标定目标板的参数
相机IMU标定的准备工作
- 环境配置:需要安装ROS,可根据http://wiki.ros.org/ROS/Installation 选择安装版本.ROS安装成功的标志为,任意打开一个终端,运行:roscore,无报错
下载标定工具: https://github.com/ethz-asl/kalibr/wiki/downloads
- 标定工具中需要目标标定板:使用的目标标定板为April类型中的 7*5
图像数据的采集,采集的图像是为了制成可被接下来使用的bag包,其中相机的采集频率建议为20Hz,IMU的采集频率建议为200Hz
- 图像采集时,尽量激活所有的IMU轴,包括旋转和平移
- 避免震动,特别是在开始和结束时
- 不可移动过快,出现移动模糊
相机标定
将采集的数据制成.bag文件,便于下一步操作,.bag文件制作参考: https://github.com/ethz-asl/kalibr/wiki/bag-format
- .bag文件的生成需要,采集图片,和Imu数据,
- .bag文件生成命令:
kalibr_bagcreater –folder dataset-dir –output-bag awsome.bag - 需要注意的是:在包含图片的文件夹的同一目录下需要一个:output空白文件夹,否则 .bag 文件无法生成
- 生成的.bag文件使用:rosbag info XX.bag 判定是否生成成功,如果只有4kb,则生成失败,而一般情况都是路径问题
kalibr自带的内参标定工具 kalibr_calibrate_cameras : https://github.com/ethz-asl/kalibr/wiki/multiple-camera-calibration, 生成的 xx.bag 文件可以用于标定内参和畸变参数.
IMU数据根据不同的IMU信息,结果不同.(使用Allan standard deviation 可以获得较为准确的IMU参数)
目标标定板参数可以参考给定格式
当上述的文件都有时,使用命令:
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
即可完成标定.
标定结果的评定标准
标定完成后一般会生成三个文件,其中一个,
因为可能存在的人为的安装问题,真实的IMU到相机的的转移矩阵可能不确定.由于没有准确的判定准则,故当前标定的结果,主要基于以下两个方面:
* 真实的IMU坐标系和相机坐标系的转换,即相机和IMU的物理距离
* 标定结果的稳定性上
标定的结果一直无法令人满意:
- 可能的原因
- 选择的内参数值
- 畸变系数的选择
- 采集过程中出现的晃动
- 坐标系混乱