在过去几年间,无人驾驶汽车
[1]
、无人机
[2]
和自主移动机器人
[3]
等技术在世界范围内高
速发展和应用。同步定位与建图(simultaneous localization and mapping,简称 SLAM)作为一
项核心技术在学术界进行了广泛的研究。与此同时,视觉 SLAM 技术具有信息量丰富、成
本低和易携带等
[4]
特点,因此潜力巨大。视觉 SLAM 技术包括视觉里程计
[5]
、后端优化、
回环检测和建图。主流的 SLAM 算法在视觉里程计中分别采用特征点法和光流追踪算法,
而后端优化主要以卡尔曼滤波算法
[6]
和光束平差优化算法为主。2014 年,Engle 等
[7]
提出了
LSD-SLAM 算法,该算法的前端里程计抛弃了传统的特征点法,采用直接法进行位姿估
计。2015 年,苏黎世大学的 Leutenegge 等
[8]
提出一种基于视觉惯性导航 OKVIS 的 SLAM
系统,该系统基于视觉传感器与惯性器件紧耦合方案,视觉里程计前端采用特征点法,后
端优化采用 BA 法。同年,由 Mur-Artal 等
[9]
提出的 ORB-SLAM 算法最为完善,该算法框
架完备易用,而且精度也较高。次年,该团队又提出 ORB-SLAM2
[10]
算法,在前人基础上
进一步完善。该算法支持单目、双目和 RGB-D 相机 3 种模式,同时还具备词袋模型的回
环检测,可以通过系统的回环检测进一步提高定位精度。2017 年,香港科技大学的 Qin 等
[11]
提出一种基于非线性优化的 VINS-Mono。该算法是基于单目相机与 IMU 紧耦合的
SLAM 系统,前端采用 LK 光流跟踪和 IMU 预积分。LK 光流法相较于特征点匹配法具有
速度更快的特点,但鲁棒性相较于特征点法较差。后端是基于滑窗的非线性优化方案,对
目标函数中的 3 个残差项进行优化,即 IMU 残差、视觉重投影误差和边缘化先验信息。该
算法具有高性能的优势,并逐渐成为主流的研究方案。该算法相较于 ORB-SLAM 更具鲁
棒性,但缺少建图。
与纯视觉 SLAM
[12]
相比,视觉惯性组合的 SLAM 定位精度更高、鲁棒性更好。在一些
特定环境下,例如光照强度低、特征点较少和动态环境等,视觉传感器会出现暂时性失
灵,可以使用惯性元件(IMU)进行位姿的测量
[13]
。传统 SLAM 的后端算法中,只将边缘化
的先验信息、IMU 测量残差、视觉的重投影误差进行约束。鉴于此,引入全局位姿信息,
对 SLAM 系统进一步约束,并利用 EuRoC 数据集对算法进一步验证。实验结果表明,本
算法相较于传统算法的定位精度得到提升。
1. 紧耦合里程计
前端里程计主要由 2 个立体相机传感器与一个惯性器件组成
[14]
。相机传感器对视觉环
境中的图像进行特征点的提取、匹配与跟踪
[15]
,而惯性器件主要输出三维加速度和三维转
动量。将这些传感器的数据进行紧耦合处理,完成对位置和姿态的估计。
1.1 立体视觉
视觉算法根据图像来估计相机的运动,首先从图像中选取特征点,再比较关键帧之间
相同特征点的像素坐标移动距离,从而通过 PnP(perspective-n-point)法得出相机移动后的旋
转矩阵和向量坐标。特征点通常被定义为 2 条边的交点,更严格的说,特征点的局部邻域