最近阅读了VIO中的一些论文,在这里做个汇总方便以后查阅,如有问题欢迎指正。
一、背景
VIO(Visual Inertial Odometry)视觉惯导里程计,VINS(Visual Inertial Navigation System)的一个分支。用Visual+IMU的方法估计6DOF位姿,同时解决由于单目相机不能估计feature的实际尺度问题。在无人车,无人机定位导航,AR等方面都有着重要应用。
纯相机的SLAM具有一下问题,这里只列出与IMU相比的缺点:
- 单目相机只能得到feature的相对尺度,不能得到绝对尺度,因此不能用于导航。
- 当物体移动过快,Camera会出现运动模糊,尤其是卷帘快门相机(rolling shutter)。本领域大佬加州大学河滨分校Mourikis(MSCKF的作者,其导师是明尼苏达大学的大佬)专门针对rolling shutter提出了一个VIO系统,“Vision-aided inertial navigation with line features and a rolling-shutter camera”(IROS. 2015)
- 对于V-SLAM一般只使用30Hz,但是IMU的频率可达几百Hz,手机上的IMU可以达到200Hz。
但是IMU也具有如下缺点:
- 对于民用级别IMU,如手机上使用的IMU,或者车载千元级别的IMU,都会出现drift,随着时间的累计误差会越来越大,手机上的IMU可能几秒误差就变得非常离谱。
- IMU没有Camera可以充分利用环境信息的优点
由以上信息可以看出,Camera和IMU的优点和缺点具有互补性,因此进行融合会使系统具有更强的稳定性和鲁棒性。
二、Camera+IMU的一些问题
由于Camera和IMU的频率不同,因此也带来很多问题。
1.最好的情况。Camera和IMU各自的频率一致,而且时间戳能够对齐。
2.可以接受的情况。Camera和IMU各自的频率一致,但是时间戳有一定偏差。现在很多论文提出在线标定可以解决这种问题。
3.最糟糕的情况。Camera和IMU各自的频率不一致,不能进行融合。
而且,二者要进行融合随之带来的就是初始化变量的增加,VSLAM初始化的变量为相机初始状态的旋转和平移,即R和t。但是VIO系统要初始化变量就多出Camera和IMU之间的外参(R和t),系统的初始速度和IMU的bias,初始化重力方向。
三、IMU测量模型
IMU内部包含陀螺仪和加速度计,可以测量移动物体的加速度和角速度。
b是IMU的bias,是IMU误差来源的一部分,满足随机游走模型(b的导数是高斯分布)。在知道加速度和加速度信息之后可以通过运动学公式积分的到旋转,位姿和速度信息(P,v,q)。
但是在以上积分过程中q是t时刻到世界坐标系的旋转,这样随着线性化点的变化,所有的状态都需要重新进行积分,运算量大大增加,因此在2012年提出了预积分模型,现在的VIO系统都在使用这个理论,同时在《On-Manifold Preintegration for Real-Time Visual-Inertial Odometry》文章介绍了流行预积分模型,详细介绍了预积分的数学理论。
i和j是Camera相邻的两个关键帧,在两个关键帧对IMU进行预积分,然后和相机信息进行融合。
基于关键帧思想的VIO首先是ETH在2015年IJRR上的OKVIS这篇文章提出,《Keyframe-based visual-inertial odometry using nonlinear optimization》,代码也开源了。https://github.com/ethz-asl/okvis
四、紧耦合和松耦合(Tightly-coupled vs. Loosely-coupled)
1.松耦合
所谓松耦合就是Camera和IMU自己玩自己的,互相不干预,在得到各自的信息之后再进行融合,这块研究不多,具体可参考ETH这篇文章。《Inertial Aided Dense & Semi-Dense Methods for Robust Direct Visual Odometry》
2.紧耦合
现在用的最多的就是紧耦合
左图是纯视觉SLAM的示意图,右图是加了IMU之后的示意图,IMU和Camera之间的信息互相约束,在进行误差传递时,需要计算相机误差相对于IMU各个状态的雅克比矩阵。
五、基于滤波和优化的VIO
1.滤波
在视觉SLAM中,现在大家几乎都在用基于优化的思想,很少有用滤波方法了。但是在VIO中,基于滤波和优化的思想还没有分出胜负。基于滤波的VIO最先提出的就是Mourikis在2007年提出的MSCKF(传说用在Google Tango上的方法),《A multi-state constraint Kalman filter for vision-aided inertial navigation》,这是在EKF-SLAM基础上进行改进的,同时这篇文章首次提出了滑动窗口的概念,只不过当时叫做FIFO。
左图是EKF-SALM的基本思想,只要相机来一帧图像,就把相机观测到的feature加入到状态向量中,这样带来问题就是随着系统时间的增加,计算复杂度变得越来越大。
中间的图像时基于关键帧的思想,不像EKF-SLAM一样使用相机的所有帧信息,而是根据一些规则挑选出相机关键帧,只考虑相机关键帧的信息,以降低复杂度。
右图是MSCKF的思想,不在使用相机帧所观测到的feature作为系统信息,而是提出了滑动窗口概念,系统维护一个固定数量帧信息的窗口,同时使用窗口帧共同观测到的feature作为运动约束来估计物体的位姿,相比前两种情况大大减少了系统的复杂度。
Mourikis的学生李明阳在2012年对MSCKF进行了改进,提出了MSCKF2.0,《High-Precision, Consistent EKF-based Visual-Inertial Odometry》,主要对MSCKF的可观测性问题进行了改进。
在2018年宾夕法尼亚大学的Kumar(香港科技大学沈绍劼的老师,不要问我沈绍劼是谁,我是不会告诉你他的学生秦通在读博期间提出了VIns-mono,不要问我秦通是谁,华为200W年薪的那个人)提出了双目版本的MSCKF,《Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight》,代码也开源了,https://github.com/KumarRobotics/msckf_vio
2.优化
基于滤波的VIO与现在VSLAM用的优化方法大同小异,都是优化一个cost fuction。
然后用ceres,g2o,因子图等方法进行优化。
代表作现在最火热的就是沈绍劼老师团队在2017年开源的Vins-mono,https://github.com/HKUST-Aerial-Robotics/VINS-Mono为咱们国人感到骄傲!论文也发表在2018的IEEE Transactions on Robotics(TRO)上《VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator》。
Vins-mono的总体框架
最后,这些论文真的值得一看。
特拉华大学的黄国全老师在ICRA2019发表的VINS综述总结的真的太棒了,本文中很多也是出自这篇文章。
《Visual-Inertial Navigation: A Concise Review》
https://github.com/PaoPaoRobot/ICRA2019-paper-list ICRA2019的所有论文这里都有,感谢泡泡机器人做的工作。
Optimization
- S. Leutenegger, S. Lynen, M. Bosse, R. Siegwart, and P. Furgale. “Keyframe-based visual-inertial odometry using nonlinear optimization”(IJRR, 2015)
- S. Shen, N. Michael, and V. Kumar. “Tightly-coupled monocular visual-inertial fusion for autonomous flight of rotorcraft MAVs”.(ICRA, 2015)
- T. Qin, P. Li, and S. Shen. “VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator”. (TRO, 2018)
Filter
- N. Trawny and S. I. Roumeliotis. Indirect Kalman Filter for 3D Attitude Estimation.(介绍基础知识的一本好资料)
- A. I. Mourikis and S. I. Roumeliotis. “A multi-state constraint Kalman filter for vision-aided inertial navigation.(ICRA, 2007)
- M. Li and A. I. Mourikis. “Improving the Accuracy of EKF-based Visual-Inertial Odometry”.(ICRA 2012)
- M. Li and A. Mourikis. “High-Precision, Consistent EKF-based Visual-Inertial Odometry”(IJRR 2013)
- Ke Sun, Vijay Kuma. “Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight”.(RAL, 2018)
- P. Geneva, K. Eckenhoff, and G. Huang. “A Linear-Complexity EKF for Visual-Inertial Navigation with Loop Closures”(ICRA, 2019)
文章出现的图片来自于网上和论文,如有侵权联系我会及时修改。原创文章,写作不易,转载标明出处。
转载自原文链接, 如需删除请联系管理员。
原文链接:视觉惯导里程计VIO综述,转载请注明来源!