1.IMU
IMU指的是惯性测量单元。IMU大多用在需要进行运动控制的设备,如汽车和机器人上。也被用在需要用姿态进行精密位移推算的场合,如潜艇、飞机、导弹和航天器的惯性导航设备等。
惯性测量单元是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
1.1 IMU的优点
IMU 有输出频率高、能输出6DoF测量信息等优点 。视觉 SLAM 存在输出频率低、旋转运动时、或运动速率加快时定位易失败等问题,
1.2 IMU的不足
imu的数据必须经过标定,至少要将零偏等数据计算出来;
imu的零偏包括固定零偏(受到应力和其他因素的影响)和启动零偏(每次启动不一样,启动之后就固定不变);
标定一般标定的是固定零偏和部分启动零偏,算法估计的是启动零偏的残差值和温飘。
1.3 如何使用?【原文:https://blog.youkuaiyun.com/wheelfjl/article/details/78425109 】
a. 坐标系
惯性导航中常用的坐标系有地心惯性坐标系、导航坐标系以及载体坐标系。坐标轴一般指向载体正前、正右及正下方。
b. 状态模型
惯导系统的状态量包括 IMU 的位置、姿态、速度以及加速度计和陀螺仪的两个零偏,其中姿态采用四元数表示,状态量可表示为 16 维的列向量。具体可参考以下链接:
https://fzheng.me/2016/11/20/imu_model_eq/
2. 如何实现基于IMU的slam方案?
slam实时建图,所以必须要知道环境的信息,而IMU只能获取自己的位置。所以IMU是slam辅助设备。
那么IMU如何与摄像头配合的呢?(暂时不提雷达)
二. 融合方式概述[ 原文:https://blog.youkuaiyun.com/wheelfjl/article/details/78425109 ]
同SLAM发展过程类似,视觉融合IMU问题也可以分成基于滤波和基于优化两大类。
同时按照是否把图像特征信息加入状态向量来进行分类,可以分为松耦合和紧耦合两大类。
1. 基于滤波的融合方法
1.1 松耦合
松耦合将视觉传感器和 IMU 作为两个单独的模块,两个模块均可以计算得到位姿信息,然后一般通过 EKF 进行融合。
可参考的算法有ethz的Stephen Weiss的ssf和msf
1.2 紧耦合
紧耦合则是指将视觉和 IMU 得到的中间数据通过一个优化滤波器进行处理,紧耦合需要把图像特征加入到特征向量中,最终得到位姿信息的过程。由于这个原因,系统状态向量最终的维度也会非常高,同时计算量也很大。
可参考的算法有MSCKF,ROVIO
2. 基于优化的融合算法
2.1 松耦合
基于松耦合优化的工作不多,这里只给出一篇文章作为参考:
Inertial Aided Dense & Semi-Dense Methods for Robust Direct Visual Odometry
2.2 紧耦合
提到基于优化的紧耦合,就不得不提okvis了,主体思想是建立一个统一的损失函数同时优化视觉与IMU的位姿,用到了sliding window的思想。(这方面博主也需要再深入研究一下)
可参考okvis的github主页:
okvis
以及港科大今年上半年刚刚开源的VINS:
VINS
3. 总结
总体来看,松耦合算法相对简单,且扩展性很强,可以加入多种传感器信息进行融合,但融合得到的位姿估计精度相对较差;紧耦合算法实现起来相对复杂,可扩展性差,但融合得到的位姿估计精度较高。