跳到主要内容

SLAM 与 VIO

为什么重要​

SLAM 是最经典的"边感知边建模"系统:机器人一边建世界模型(地图),一边在其中定位自己。它是空间智能第一个完整闭环,也是检验前面所有模块(几何、估计、表示)的综合考场。

直观理解​

SLAM 系统

SLAM 的经典分工:前端做实时里程计(特征跟踪/光流 → 帧间运动),后端做全局一致性优化(因子图),回环检测识别"回到老地方"以消除累积漂移。三个子系统对应前面三个模块的知识汇合。

核心思想​

SLAM 问题的形式化:同时估计轨迹 x1:tx_{1:t} 与地图 MM,给定观测 z1:tz_{1:t} 与控制 u1:tu_{1:t}。两条技术路线沿用模块 06 的分野:滤波派(EKF-SLAM、MSCKF——把路标塞进状态向量,边际化历史)与优化派(因子图 + 关键帧 BA,iSAM2 增量求解)。现代系统(ORB-SLAM3、VINS、Kimera)全部是优化派主导 + 滤波思想的局部保留。

VIO(视觉惯性里程计) 是高频低延迟的状态估计骨干:IMU 提供帧间高频约束(预积分技术把两关键帧间的数百个 IMU 读数压缩成单个因子),视觉提供长期无漂移锚定与尺度。MSCKF(滤波派代表)用多状态约束避免维护地图;VINS-Mono/Kimera-VIO(优化派代表)在滑窗内联合优化位姿、速度与 IMU bias。可观测性分析(尺度、重力方向何时可恢复)是 VIO 特有的理论深度。

回环检测是对抗漂移的终极机制:VIO/里程计的误差随路径长度无限累积,唯有识别"我来过这里"才能把误差闭环清零——位置识别(place recognition,模块 08)因此是 SLAM 的记忆子系统。评估文化同样重要:EuRoC 数据集 + evo 工具 + ATE/RPE 指标是定量比较的系统标准。

关键概念​

  • 前端 / 后端:实时里程计 vs 全局优化。
  • IMU 预积分:把高频惯性读数压成关键帧间的一个因子。
  • 滤波 vs 优化:MSCKF vs 滑窗 BA 的路线之争。
  • 回环检测:位置识别驱动的漂移清零机制。
  • ATE / RPE:轨迹精度与相对运动误差的评估标准。

核心公式​

VIO 滑窗优化目标:

min⁡X∑k∥rI(k)∥Σ2+∑(i,j)∥rV(i,j)∥Σ2\min_X \sum_{k} \big\| r_{\mathcal{I}}^{(k)} \big\|_{\Sigma}^2 + \sum_{(i,j)} \big\| r_{\mathcal{V}}^{(i,j)} \big\|_{\Sigma}^2

其中 rIr_{\mathcal{I}} 为 IMU 预积分残差,rVr_{\mathcal{V}} 为视觉重投影残差。

大学课程​

课程Lecture链接
MIT 16.485 VNAVL20 Visual-Inertial Odometry、L23–L24 SLAM(factor graphs、marginalization)、Lab 9/9.5(ORB-SLAM3 vs Kimera-VIO 对比)课程主页
ETH/UZH VAMRL13 Visual-Inertial Fusion、L14 SLAM + mini-project(完整 VO)课程主页

论文​

  • Must Read:Mur-Artal, Montiel & Tardós (2015), ORB-SLAM: A Versatile and Accurate Monocular SLAM System(arXiv:1502.00956)。
  • Recommended:Cadena et al. (2016), Past, Present, and Future of SLAM(arXiv:1606.05830);Qin, Li & Shen (2018), VINS-Mono(arXiv:1708.03852)。
  • Optional:Mourikis & Roumeliotis (2007), MSCKF(ICRA,搜索论文名);Teed & Deng (2021), DROID-SLAM(arXiv:2108.10869)——学习化 SLAM 的代表。

动手实践​

暂无专属 Lab。建议路径:先完成 Lab 1 建立滤波直觉,然后按 MIT VNAV Lab 9 的思路在 EuRoC 序列上跑 ORB-SLAM3 与 Kimera-VIO 的开源镜像并用 evo 评估。

自测​

  1. 为什么 SLAM 必须做回环检测,而 VIO 可以不做?
  2. IMU 预积分解决了什么计算问题?
  3. ATE 与 RPE 分别度量什么?
显示答案
  1. 里程计类方法(含 VIO)只维护局部窗口,误差随路径无限累积;SLAM 的目标是全局一致的地图,必须靠回环约束把"首尾相接"的信息注入优化,一次性摊销累积漂移。短时任务的纯里程计可以容忍无回环。
  2. 关键帧之间(如 100ms)有数百个 IMU 采样,若每个都建约束优化不可行。预积分把两段关键帧间所有 IMU 读数压成一个相对运动约束(位置/速度/旋转增量 + 协方差),且当 bias 估计更新时可高效修正,避免重复积分。
  3. ATE(绝对轨迹误差)度量估计轨迹与真值全局对齐后的位置偏差——全局一致性;RPE(相对位姿误差)度量固定时间窗内的局部位姿漂移——局部精度。一个系统可以 ATE 差而 RPE 好(无回环漂移)或反之(回环强行对齐但局部抖动)。

要点回顾​

  • SLAM = 前端里程计 + 后端因子图 + 回环检测,是几何/估计/表示的系统集成。
  • VIO 用 IMU 预积分与视觉重投影残差在滑窗内融合两种互补传感器。
  • 回环是漂移的解药;ATE/RPE + EuRoC 是定量评估的标准文化。

下一模块​

模块 08:空间记忆——SLAM 记住几何,智能体还需要记住"我到过哪里"。