SLAM 与空间认知
一句话定义
SLAM(Simultaneous Localization and Mapping,同步定位与建图)回答"我在哪、周围什么样"两个互为前提的问题,是移动机器人空间认知的核心引擎。
为什么重要
- 一切移动行为(导航、巡逻、配送)的前提是知道自己在地图中的位置——GPS 室内失效,SLAM 是唯一通用解。
- 语义地图 + 大模型正在把"几何地图"升级为"可查询的空间记忆",是具身智能体长期驻留环境(家庭、仓库)的基础设施。
前置知识
kp-102(深度/点云);概率基础(贝叶斯滤波)。
核心概念
- 定位(Localization):给定地图估计自身位姿。纯定位问题叫 AMCL(蒙特卡洛定位)。
- 建图(Mapping):给定位姿构建地图。两者互为依赖——"先有鸡还是先有蛋"正是 SLAM 要同时解的原因。
- 里程计(Odometry):轮速/IMU 积分得到的相对运动估计,短期准、长期漂移。
- 回环检测(Loop Closure):识别"回到老地方",用图优化把累积漂移拉平——SLAM 精度的命脉。
- 地图类型:占据栅格(导航用)、稀疏特征点(定位用)、稠密点云/网格(重建)、语义地图(物体级)、神经场地图(NeRF/3DGS SLAM)。
原理与机制
前端 + 后端架构:
- 前端:逐帧提取并匹配特征,给出相邻帧间的相对运动。视觉 SLAM 特征法(ORB-SLAM:ORB 特征 + 光束法平差)与直接法(LSD-SLAM:直接用像素灰度);LiDAR SLAM 扫描匹配(LOAM、FAST-LIO2 系)。
- 后端:把所有相对约束构成位姿图,回环检测到时整体优化(图优化/因子图),数学上是稀疏非线性最小二乘。
- 视觉惯性(VIO/VI-SLAM):融合 IMU(高频、快速但漂移)与视觉(准确但慢、易丢),互补成为主流(VINS-Mono、ORB-SLAM3)。
导航栈(以 ROS 2 Nav2 为例):全局代价地图 + 全局规划器(A*/Dijkstra)→ 局部规划器(DWA/TEB,实时避障)→ 速度命令;代价地图由静态地图 + 实时传感器 inflation 融合而成。
公式与图示
SLAM 后验的贝叶斯形式:
$$p(\mathbf{x}_{1:t}, \mathbf{m} \mid \mathbf{z}_{1:t}, \mathbf{u}_{1:t})$$
同时估计轨迹 $\mathbf{x}_{1:t}$ 与地图 $\mathbf{m}$,观测 $\mathbf{z}$ 与控制 $\mathbf{u}$ 都已给出。图优化把它化为最小二乘:
$$\mathbf{x}^* = \arg\min_{\mathbf{x}} \sum_{(i,j)\in\mathcal{E}} \|\mathbf{e}_{ij}(\mathbf{x}_i, \mathbf{x}_j)\|^2_{\Sigma_{ij}}$$
漂移的里程计轨迹 ──┐
▼ 回环检测发现"回到起点"
o──o──o──o──o──o──o │
里程计位姿(累积误差) │ 图优化整体调整
o──o──o──o──o──o──o ◄────────┘ → 轨迹闭合、地图一致
直观类比
- 在陌生商场找路:边走边记商铺(建图),靠橱窗认路(定位);绕一圈回到中庭发现"原来这是同一层"(回环),脑子里的地图瞬间对齐。
- 蒙眼走房间:只靠步数估计位置会越走越偏(里程计漂移),摸到桌角(特征观测)才能校正。
实例与案例
- 扫地机器人:消费级 SLAM 最大市场。激光雷达方案( LDS)与视觉 VSLAM 方案并存,建出户型图支持分区清扫。
- 仓库 AMR:先人工示教或建图,之后 AMCL 持续定位 + Nav2 导航;FAST-LIO 类 LiDAR 惯性方案在长走廊等退化场景更稳。
- UMI 的启示(kp-403):手持采集设备用 ORB-SLAM3 恢复相机轨迹,说明 SLAM 已成为数据基础设施的一部分,不只是导航专利。
常见误区
- 误区一:SLAM 是"一个问题"。它是定位+建图+回环+图优化的一族方法;不同传感器(单目/双目/RGB-D/LiDAR+IMU)方案差异巨大。
- 误区二:有了 SLAM 就不用管标定与传感器质量。时间同步、IMU 零偏标定不好,VIO 直接发散。
- 误区三:语义理解等于语义地图。把检测框贴到地图上只是开始;物体级、可更新的"空间记忆"仍是开放问题(kp-601)。
自测题
- 为什么定位与建图互为前提?SLAM 如何同时解?
- 回环检测在图优化中起什么作用?没有回环会发生什么?
- 对比视觉 SLAM 与 LiDAR SLAM 在长走廊、强日照、夜间三种场景的可靠性。
与其他知识点的关系
- kp-105 状态估计:SLAM 是状态估计在"地图+位姿"空间的特例,共享卡尔曼/图优化工具。
- kp-601 具身导航:SLAM 之上加语言理解与任务规划。
- kp-504 ROS 2:Nav2 是 SLAM/导航的标准工程载体。
延伸阅读
- Thrun, Burgard & Fox, Probabilistic Robotics, 2005(该领域圣经)。
- 高翔等,《视觉 SLAM 十四讲》(第二版)——中文世界最佳入门,代码齐备。
- Cadena et al., Past, Present, and Future of SLAM: Toward the Robust-Perception Age, T-RO 2016。
本节引用来源
- Thrun, Burgard & Fox, Probabilistic Robotics, 2005
- Mur-Artal et al., ORB-SLAM, 2015