文献综述(或调研报告):
本课题主要涉及SLAM/IMU算法的研究和优化以及其对嵌入式平台的移植,本节将针对SLAM/IMU算法的研究现状、算法的嵌入式实现的研究现状以及组合算法的前端与后端进行陈述。
(1) SLAM/IMU算法研究现状
由于视觉SLAM算法对快速运动的跟踪性能较差、难以处理动态障碍物,为了克服这些缺陷,将视觉SLAM算法与惯性传感器(IMU)结合,是视觉SLAM的重要发展方向之一。惯性传感器能够测量传感器本体的角速度与角加速度,弥补了视觉里程计难以对快速旋转运动进行追踪的不足;同时,视觉里程计的数据几乎没有漂移,弥补了惯性传感器低频特性差的缺点。由此可见,视觉里程计与惯性传感器具有很明显的互补性,将两者的数据进行结合的里程计称为视觉—惯性里程计(VIO),为SLAM的嵌入式实现与低成本化提供了一个非常有前景的研究方向。
在视觉和惯导组合导航方面,根据不同需求有不同的研究方法,一方面是研究视觉惯导融合SLAM,另一方面研究视觉惯导融合里程计,前者注重定位和建图,后者注重导航。在这两种传感器数据的融合中,根据耦合程度不同,可以分为松耦合和紧耦合。松耦合是现将两种传感器单独计算出导航信息,再将导航信息融合。紧耦合是将两种传感器的数据同时放在一起做优化,最后得出导航信息。在数据的融合方法中,可以分为基于滤波和基于非线性优化两大类方法。基于滤波的方法以EKF(扩展卡尔曼滤波)为代表,基于非线性的方法估计状态比基于滤波的方法更准确,但是计算量也更大。在很长一段时间内,滤波方法都一直是数据融合的主要方法,直到后来计算资源允许,非线性方法被广泛应用。在此期间,MSCKF (Multi State Constraint Kalman Filter,多状态限制卡尔曼滤波)算法被提出来,并且这种方法后来与传统的EKF-SLAM相结合,系统性能得到很大提升,适合应用在计算资源有限的移动设备中。在视觉惯性里程计(Visual-Inertial Odometry, VIO)研究领域,很多研究者提出了各自的框架,但总体而言都是针对以上框架各个部分的改进。
1)ROVIO基于稀疏图像块的EKF滤波实现的VIO
ROVIO将路标点包含到状态向量中。又因为将路标点表征在当前帧坐标系下,有一定范围的限制,因此对其进行归一化得到无约束的状态量——方向向量Bearing vector。ROVIO的创新点在于路标点用当前帧下的归一化相机坐标系下的坐标Pc和逆深度表示,并作为状态向量进行预测和更新。参数化不同导致预测和更新的系统不尽相同,但总体还是以EKF的五大公式为主。又因Pc有边界约束,因此引入了bearing vector来是Pc变得平滑可导。但ROVIO只适用于视觉特征点非常多的环境,一旦视觉特征点稀缺,ROVIO的性能将大打折扣。2)MSCKF多状态限制卡尔曼滤波
MSCKF的目标是解决EKF-SLAM的维数过高的问题。MSCKF是将不同时刻的相机位姿加入到状态向量,其中某些特征点会被多个相机看到,被定义为成熟的路标点。MSCKF用成熟的路标点与IMU预测的误差作为视觉更新,输出误差的均值和协方差作为优化变量。从性能上看,MSCKF在计算复杂度较低的情况下能保持一定的精度,但后端使用的卡尔曼滤波无法使用全局信息进行优化,并且缺少回环检测。因此,精确的系统外参标定对系统的精确度和鲁棒性有很大的影响。
3) 使用预积分IMU因子的基于非线性优化的VINS-MONO
系统主要包含数据预处理、系统初始化、后端集束调整(Bundle Adjustment,简称BA)、回环检测和回环优化五个功能模块,代码以多线程运行,主要包含图像光流跟踪、后端非线性优化、回环检测和回环优化四个线程。数据预处理主要包含图像的特征点提取、光流跟踪以及去噪和IMU的预积分。初始化利用SFM(Struct From Motion)估计图像参数并与IMU数据对齐求解初始化参数。后端基于集束调整优化将视觉误差、IMU偏差和闭环约束放在一起进行优化,求解PVQ和偏差值。回环检测和回环优化利用DBoW进行检测和重定位。
