1. 简介
双目相机:小觅mynteye-d D1000-50
操作系统:Ubuntu 16.04 + ROS kinect
目标:用mynteye运行msckf_vio模型
刚开始先是把msckf_vio模型运行起来,但是发现相机不动的时候已经在非常快速的向某一个方向漂移,所以决定先做相机标定。
2. 相关链接
msckf_vio模型。其中提到Kalibr标定的参数可以直接用于msckf_vio模型。
https://github.com/KumarRobotics/msckf_vio
如何用 kalibr 标定 MYNTEYE(小觅相机官方文档)。虽然是mynteye-s的文档,但是对D系列同样适用。
https://mynt-eye-s-sdk.readthedocs.io/zh_CN/2.3.6/src/slam/how_to_use_kalibr.html
Kalibr: 相机标定工具
https://github.com/ethz-asl/kalibr
imu_tk:内参标定工具
https://github.com/Kyle-ak/imu_tk
imu_tk的ROS wrapper:imu_tk里面要求mat格式数据,没有找到录制方式,用这个wrapper可以直接在ROS上面运行。
https://github.com/Neil-Oyoung/imu_tk
imu_utils
https://github.com/gaowenliang/imu_utils
3. 标定过程
根据《如何用 kalibr 标定 MYNTEYE》,标定过程分为以下步骤:
1. 用imu-tk标定imu内参;
文档里面只是提到了要标定imu内参,并没有说明标定后要做什么。通过与技术支持沟通,需要把imu内参信息写入相机。
(这里吐槽一下,小觅技术支持只能通过邮件交流,效率太低。)
标定得到两个文件,imu_acc.calib和imu_gyro.calib,文件中的数据格式:
其中,第一个矩阵对应下面相机内参数据格式中的assembly,第2个矩阵对应scale,最后3列对应drift。
通过MYNT_EYE-D-SDK/tools/_output/bin/writer/save_all_infos获取的相机内参数据格式:
2. 用imu_utils得到统计数据参数
先安装ceres
https://blog.csdn.net/weixin_39373577/article/details/81285420
用imu_utils标定:安装时需要避免的坑
https://blog.csdn.net/fang794735225/article/details/92804030
得到数据格式:
根据这篇博客https://blog.csdn.net/u011178262/article/details/83316968,把结果改成这种格式,a把Gyr和Acc下的a:
其中,Gyr对应Gyroscopes,Acc对应Accelerometers,都取其中的平均数据avg-axis.
n对应noise density,w对应random walk.
n,w也分别对应相机内参数据格式中的nosie和bias。