步骤:
1:如何标定
2:标定的结果
3:如何验证标定结果的正确性
相机IMU标定的准备工作
【1】环境配置:需要安装ROS,可根据http://wiki.ros.org/ROS/Installation 选择安装版本(我安装的ubuntu版,http://wiki.ros.org/cn/jade/Installation/Ubuntu).ROS安装成功的标志为,任意打开一个终端,运行:roscore,无报错
【2】标定工具箱:
The following two sources for the toolbox are available:
(1)building from source(我选择的这个,参考http://www.cnblogs.com/Jessica-jie/p/6536272.html)
Depends on a working installation of ROS indigo and a catkin workspace.
(2)CDE package
1.如何标定https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration
标定所需文件:
【1】 XX.bag:包含有图片信息和IMU数据的ROS包
- 将采集的数据制成.bag文件,.bag文件制作参考: https://github.com/ethz-asl/kalibr/wiki/bag-format
- .bag文件的生成需要:采集图片和Imu数据
- Kalibr的所有应用程序使用ROS包作为图像和IMU数据的源。
- .bag文件生成命令: (创建ROS包)
kalibr_bagcreater –folder dataset-dir –output-bag awsome.bag
- 需要注意的是:在包含图片的文件夹的同一目录下需要一个:output空白文件夹,否则 .bag 文件无法生成
- 生成的.bag文件使用:rosbag info XX.bag 判定是否生成成功,如果只有4kb,则生成失败,而一般情况都是路径问题
提示:
- 标定工具中需要目标标定板:使用的目标标定板为April类型中的 7*5
- 图像数据的采集,采集的图像是为了制成可被接下来使用的bag包,其中相机的采集频率建议为20Hz,IMU的采集频率建议为200Hz
- 图像采集时,尽量激活所有的IMU轴,包括旋转和平移
- 避免震动,特别是在开始和结束时
- 不可移动过快,否则会出现移动模糊
【2】camchain.yaml:包含相机的内参和畸变参数的文件YAML formats(该文件包含相机内在和外在参数的校准以及IMU相对于相机的空间和时间校准参数。)
【3】IMU.yaml:包含IMU的基本参数,噪音等 YAML formats
【4】target.yaml:标定目标板的参数。(标定工具中需要目标标定板:使用的目标标定板为April类型中的 7*5)
当上述的文件都有时,使用命令,完成标定.
kalibr_calibrate_imu_camera --bag [filename.bag] --cam [camchain.yaml] --imu [imu.yaml] --target [target.yaml]
默认情况下,时间校准关闭,可以使用--time-calibration参数启用。
有关选项的详细信息,请使用help参数:
kalibr_calibrate_imu_camera --h
2.标定结果(由以下示例跑出的结果)
3.标定结果的评定标准:
校准将生成以下输出文件
- report-imucam-%BAGNAME%.pdf :以PDF格式报告。 包含所有图表的文档。
- results-imucam-%BAGNAME%.txt :将结果摘要作为文本文件。
- camchain-imucam-%BAGNAME%.yaml :YAML格式的结果。 此文件基于输入camchain.yaml ,所有摄像机相对于IMU添加了转换(以及可选的时间移位)。
使用示例数据集的示例:
从Downloads页面下载数据集IMU-camera calibration并解压(需要FQ下载)。
The archive will contain the bag, calibration target and IMU configuration file.
使用命令,完成标定.
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秒之间的数据。