1.概述
VIO(Visual-Inertial Odometry视觉惯性里程计)即结合相机与惯性测量单元IMU实现局部状态如位置、姿态、速度、路标点的最优状态估计。完整的SLAM系统还包括闭环检测(位置识别和相对状态求解)、全局地图构建(位姿图或者全局BA)等,理论上说这些模块可以在不同的VIO算法中进行复用。VIO为整个SLAM系统提供持续的局部状态,是整个SLAM系统能够保持实时、稳定运行的基础。
2.算法分类
把是否将数据放在一起进行联合优化可将VIO算法分类成松耦合和紧耦合,业界已证明紧耦合VIO从精度和鲁棒性上要好于松耦合,本文只对紧耦合VIO算法进行相关分析。
3.开源SOTA算法介绍
3.1 OpenVINS [1]
(1)介绍
基于特征点+EKF。通过多状态约束卡尔曼滤波(MSCKF),利用特征点在多个相机状态之 间构建几何约束,构建观测模型对状态进行更新。
(2)特点
FEJ实现、零空间投影Nullspace Projection、观测压缩Measurement Compression、多种路标点的表示形式等。
(3)开源地址
https://github.com/rpng/open_vins
3.2 ORBSLAM3 [2]
(1)介绍
基于特征点法+最小二乘(G2O库)。通过提取 ORB 特征,维护特征地图,构建局部 BA 和全局 BA,利用最小二乘进行最优估计。
(2)特点
共视图、多地图数据关联、最大后验