SLAM 知识图谱

同步定位与建图(Simultaneous Localization and Mapping, SLAM)是移动机器人和自动驾驶中的核心技术。本文以思维导图的形式,系统性地梳理了 SLAM 的完整知识体系,涵盖前端、后端、回环检测等核心模块。

知识图谱

下图展示了 SLAM 的完整技术栈,包括传感器类型、前端里程计、后端优化、地图表示等核心知识点及其相互关系。

SLAM 知识图谱

1. SLAM 到底在解什么问题

SLAM 的全称是 Simultaneous Localization and Mapping,也就是“同步定位与建图”。这个名字容易让人误以为它是两个独立任务的简单相加:一边定位,一边建图。实际上,SLAM 的难点恰恰在于二者互相依赖:

没有地图,就很难知道自己在哪;
不知道自己在哪,又很难把观测拼成地图。

所以 SLAM 的核心不是“画地图”,而是在不完全知道自身位姿的情况下,持续估计:

$$ p(x_{1:t}, m \mid z_{1:t}, u_{1:t}) $$

其中 $x_{1:t}$ 是机器人从过去到现在的轨迹,$m$ 是地图,$z_{1:t}$ 是传感器观测,$u_{1:t}$ 是运动控制或里程计输入。

这篇知识图谱可以按一句话理解:SLAM 是一个把传感器观测、运动模型、几何约束和概率优化放在一起的状态估计系统。

2. 一条主线:从观测到地图

SLAM 最容易让人迷路,是因为名词太多:VO、VIO、LiDAR SLAM、BA、Pose Graph、Loop Closure、ICP、Bundle Adjustment、Factor Graph。把它们放到系统流水线里,会清楚很多:

传感器输入

前端:提取可匹配的几何 / 视觉约束

后端:把约束放进优化问题

回环:发现走回旧地方,修正累计漂移

建图:输出稀疏点、稠密点云、栅格或语义地图

每一层解决的问题不同:

模块 主要问题 常见方法
传感器 世界怎么被观测 Camera、IMU、LiDAR、Wheel Odometry
前端里程计 相邻帧之间怎么对齐 Feature matching、Optical Flow、ICP、Scan Matching
后端优化 多个观测约束如何一致 Bundle Adjustment、Pose Graph、Factor Graph
回环检测 如何发现累计漂移 Bag-of-Words、Place Recognition、Scan Context
地图表示 建出的地图服务什么任务 Sparse Map、Point Cloud、Occupancy Grid、Semantic Map

这条线索比背术语更重要:每个 SLAM 方法都可以问,它主要改的是前端、后端、回环,还是地图表示。

3. 前端:把观测变成约束

前端的任务是从原始传感器数据里提取“可用于估计位姿的约束”。不同传感器决定了不同前端风格:

前端类型 输入 输出约束 典型难点
Visual Odometry 图像 特征匹配、重投影误差 光照变化、低纹理、动态物体
Visual-Inertial Odometry 图像 + IMU 视觉重投影 + 惯性预积分 时间同步、尺度、IMU bias
LiDAR Odometry 点云 点到点 / 点到面约束 稀疏、运动畸变、退化场景
RGB-D SLAM RGB + 深度 像素/点云几何约束 深度噪声、范围限制

前端不是最终答案,它只是产生约束。真正决定系统全局一致性的,是后端如何把这些约束组织起来。

4. 后端:把局部约束变成全局一致

SLAM 后端通常被写成一个优化问题。最常见的形式是最小化所有观测误差:

$$ \min_{\mathbf{x}, \mathbf{m}} \sum_i \left\| r_i(\mathbf{x}, \mathbf{m}, \mathbf{z}_i) \right\|_{\Sigma_i}^{2} $$

其中 $r_i$ 是第 $i$ 个残差项,$\Sigma_i$ 表示该观测的不确定性。不同 SLAM 系统的差别,往往体现在残差怎么设计、变量怎么选、优化图怎么维护。

后端形式 优化变量 更适合
Bundle Adjustment 相机位姿 + 3D 点 视觉 SLAM / SfM
Pose Graph Optimization 位姿节点 + 相对位姿边 大规模轨迹与回环修正
Factor Graph 多类变量 + 多类因子 VIO、多传感器融合
Sliding Window Optimization 最近一段窗口内变量 实时 VIO / 在线系统

直观地说,前端回答“这两帧怎么对上”,后端回答“所有帧一起看,怎样最一致”。

5. 回环:为什么系统需要记得来过哪里

只靠相邻帧估计位姿,误差会持续累积。机器人走一圈回到原地时,如果系统没有意识到“这里来过”,地图就会出现错位或扭曲。回环检测的作用就是发现这种闭环约束:

当前观测 ≈ 历史某一地点

添加一条长距离约束

全局优化修正累计漂移

回环的难点有两个:

  • 感知别名:不同地方看起来很像,容易误回环;
  • 外观变化:同一地方在光照、季节、动态物体变化后不再相似。

因此,回环检测既是视觉识别问题,也是几何验证问题。只靠图像相似度不够,通常还需要位姿一致性或几何约束确认。

6. 地图表示:地图不是越密越好

SLAM 输出的地图服务不同任务,因此表示形式也不同:

地图类型 表达内容 适合任务
Sparse Landmark Map 少量稳定特征点 定位、BA、轻量地图
Dense Point Cloud 稠密几何结构 重建、测绘、可视化
Occupancy Grid 空间是否可通行 导航、避障、规划
TSDF / SDF 表面距离场 稠密重建、机器人操作
Semantic Map 几何 + 类别语义 自动驾驶、场景理解

地图不是越密越好,而是要服务下游任务。自动驾驶更关心可通行空间、道路结构和动态目标;AR/重建更关心表面细节;机器人导航更关心障碍物和拓扑连通性。

7. SLAM 与自动驾驶感知的关系

SLAM 和现代自动驾驶感知看似分属不同路线,但底层问题是相通的:

SLAM 问题 自动驾驶对应问题
位姿估计 ego pose / ego motion
地图构建 在线 HD map、BEV map、occupancy
回环一致性 长时序记忆、跨帧对齐
多传感器融合 Camera-LiDAR BEV fusion
动态物体处理 tracking、motion prediction、world model

区别在于,传统 SLAM 更强调几何一致性和定位精度;自动驾驶感知更强调语义、动态交互和规划可用性。近年来的 BEV 感知4D Geometry / World Model 其实是在把 SLAM 的几何思想和深度学习的表示能力重新连接起来。

8. SLAM 的知识依赖链

  1. 几何基础:先理解相机模型、对极几何、PnP、三角化,可参考 《多视图几何中的矩阵估计与位姿求解》
  2. 视觉里程计:理解两帧/多帧之间如何通过特征或直接法估计运动。
  3. 后端优化:理解 BA、Pose Graph、Factor Graph 和滑窗优化。
  4. 回环检测:理解 place recognition 如何把局部轨迹拉回全局一致。
  5. 地图表示:比较稀疏地图、稠密点云、occupancy 和语义地图。
  6. 多传感器融合:再看 VIO、LiDAR-Inertial、Camera-LiDAR fusion。
  7. 与自动驾驶连接:最后回到 BEV、occupancy、world model,看深度学习如何重新组织空间表示。

这张 SLAM 知识图谱目前承担主题入口的角色。后续如果继续扩展,ORB-SLAM、VINS、LOAM、LIO-SAM、Cartographer 等代表系统可以各自形成论文笔记,再接入前端、后端、回环和多传感器融合这几条分支。