什么是 SLAM?
SLAM 全面解析:从同步定位与建图原理到三维重建应用
一、引言:为什么要了解 SLAM?
随着机器人、自主导航、增强现实(AR)、虚拟现实(VR)、自动驾驶、无人机、数字孪生以及三维重建等技术的快速发展,SLAM(Simultaneous Localization and Mapping,同步定位与建图) 已经成为空间智能系统中的核心技术之一。
SLAM 最重要的能力可以概括为:
让设备在一个完全陌生、甚至没有 GPS 的环境中,一边运动,一边构建环境地图,同时实时估计自己在地图中的位置。
换句话说,SLAM 解决的是两个彼此耦合的问题:
- Localization:我在哪里?
- Mapping:周围环境是什么样?
因此,SLAM 不仅是机器人“看清环境、知道自己在哪、规划怎么走”的基础,也逐渐成为连接真实世界与数字空间的重要桥梁。
本文将从 SLAM 的基本概念、工作原理、系统结构、输入输出、坐标系、定位与建图关系、地图类型、应用场景以及与 NeRF、3DGS 等三维重建技术的结合等方面,对 SLAM 进行系统梳理。
二、SLAM 是什么?
2.1 一句话定义
SLAM 是一种让设备在未知环境中,一边构建地图,一边实时估计自身位置和姿态的技术。
它的核心可以概括为:
自定位 + 自建图
SLAM 系统通常通过摄像头、激光雷达、IMU 等传感器持续感知环境,并在不断接收新数据的过程中完成两个核心任务。
2.2 Localization:定位
定位是指估计当前设备相对于某个参考坐标系的位置和姿态。
通常使用 6 自由度位姿(6-DoF Pose) 表示:
-
位置:
- (x)
- (y)
- (z)
-
姿态:
- Roll
- Pitch
- Yaw
因此,一个完整的相机或机器人位姿可以理解为:
位置 + 朝向
2.3 Mapping:建图
建图是指根据传感器观测到的环境信息,逐步建立环境的空间表达。
例如视觉 SLAM 可以:
- 从图像中提取特征点;
- 在不同图像之间进行特征匹配;
- 根据不同视角进行三角测量;
- 估计特征点的三维位置;
- 将这些三维点统一放入世界坐标系;
- 最终形成一张环境地图。
地图可以是:
- 稀疏特征点地图;
- 稠密三维地图;
- 点云地图;
- 占据栅格地图;
- 拓扑地图;
- 语义地图。
2.4 一个简单例子
假设一个机器人第一次进入陌生办公楼。
此时:
- 没有建筑地图;
- 室内没有可靠 GPS;
- 机器人只拥有摄像头、IMU 或激光雷达等传感器。
机器人向前移动时不断获取环境信息。
SLAM 系统会同时完成:
传感器数据
↓
观察周围环境
↓
估计机器人移动了多少
↓
更新机器人当前位置
↓
重建看到的环境结构
↓
不断扩展地图
最终机器人可以知道:
“我现在位于自己刚刚构建出来的地图中的什么位置。”
这正是 SLAM 的核心思想。
三、SLAM 的基本工作原理
3.1 同时进行定位与建图
SLAM 的关键在于:
定位和建图不是两个独立过程,而是相互依赖、同时进行的。
定位
确定当前时刻相机或机器人在世界坐标系中的:
- 位置;
- 朝向。
也就是求当前的 6DoF 位姿。
建图
利用连续观测获得的环境信息,例如:
- 图像特征;
- 深度信息;
- 激光点云;
估计环境中物体或特征点的空间位置,并形成地图。
二者之间存在天然的循环依赖:
已有地图
↓
帮助定位
↓
得到更准确的相机位姿
↓
帮助建立更准确的地图
↓
新的地图继续帮助定位
因此:
定位依赖地图,地图又依赖定位。
这也是“Simultaneous Localization and Mapping”中 Simultaneous(同步) 的真正含义。
四、SLAM 的典型系统流程
一个经典视觉 SLAM 系统可以抽象成下面的流程:
相机 / IMU / LiDAR
↓
传感器输入
↓
特征提取 / 数据处理
↓
数据关联与匹配
↓
位姿估计
↓
┌───────────────┐
│ │
↓ ↓
局部建图 跟踪定位
│ │
└───────┬───────┘
↓
回环检测
↓
全局地图优化
↓
┌───────────────┐
↓ ↓
相机轨迹 环境地图
不同 SLAM 算法的具体实现方式不同,但整体思想基本类似。
4.1 前端:传感器数据处理
SLAM 前端主要负责从原始传感器数据中提取有用信息。
对于视觉 SLAM,通常包括:
- 特征点提取;
- 特征描述;
- 帧间匹配;
- 光流跟踪;
- 深度估计。
常见视觉特征包括:
- ORB;
- SIFT;
- FAST;
- SURF 等。
例如:
Frame 1 Frame 2
● A ● A
● B → ● B
● C ● C
通过找到两帧图像中的同一个物理特征,就可以估计相机发生了怎样的运动。
4.2 位姿估计
根据帧间或帧与地图之间的对应关系,SLAM 系统可以计算相机运动。
常见问题包括:
- 2D-2D 位姿估计;
- 3D-2D PnP;
- 3D-3D 配准;
- ICP;
- Visual Odometry。
最终得到相机的:
- 旋转 (R)
- 平移 (t)
通常写成齐次变换矩阵:
其中:
- (R):描述相机朝向;
- (t):描述相机位置变化。
4.3 地图构建
当系统已经知道不同相机帧之间的相对位置后,就可以根据多视角信息恢复环境三维结构。
例如双目或多帧视觉 SLAM 中:
Camera 1 Camera 2
\ /
\ /
\ /
\ /
● Map Point
同一个环境特征在不同相机视角中的观测,可以通过三角测量恢复其三维坐标。
随着设备不断运动:
第 1 帧 → 少量地图点
第 10 帧 → 更多地图点
第 100 帧 → 大范围地图
最终逐渐建立完整环境模型。
4.4 后端优化
由于传感器存在噪声,连续位姿估计一定会积累误差。
因此 SLAM 通常需要通过优化算法提高整体一致性。
常见方法包括:
- Bundle Adjustment;
- Pose Graph Optimization;
- Factor Graph Optimization;
- 非线性最小二乘优化。
目标可以简单理解为:
找到一组更合理的相机位姿和地图点,使所有传感器观测之间的整体误差最小。
4.5 回环检测
假设机器人沿着走廊移动:
A → B → C → D → E
↑ ↓
└───────────────┘
当机器人再次回到 A 附近时,SLAM 系统如果能够识别:
“这里我以前来过。”
就可以产生一个 Loop Closure(回环约束)。
通过回环优化,可以修正长时间运行产生的累计漂移。
五、SLAM 的核心模块
| 模块 | 主要功能 |
|---|---|
| 特征提取与匹配 | 从图像中提取 ORB、SIFT 等关键特征,并进行帧间匹配 |
| 数据关联 | 判断当前观测对应地图中的哪些已有特征 |
| 位姿估计 | 计算当前相机或机器人相对于世界坐标系的位置和姿态 |
| 局部建图 | 生成新的地图点、关键帧并优化局部地图 |
| 回环检测 | 判断当前场景是否曾经访问过 |
| 后端优化 | 利用 BA、因子图等降低累计误差 |
| 地图管理 | 维护地图点、关键帧、拓扑关系等信息 |
六、SLAM 的输入与输出
6.1 输入
SLAM 系统通常需要以下数据。
| 输入类型 | 内容 |
|---|---|
| 图像流 | 单目、双目或 RGB-D 图像序列 |
| 激光点云 | 2D 或 3D LiDAR 扫描数据 |
| IMU | 加速度计和陀螺仪数据 |
| GPS / GNSS | 可作为室外全局定位辅助 |
| 相机内参 | 焦距、主点、畸变参数等 |
| 外参 | 不同传感器之间的坐标变换关系 |
| 时间戳 | 多传感器系统中的数据同步依据 |
6.2 输出
| 输出内容 | 作用 |
|---|---|
| 相机/机器人位姿 | 表示设备每一时刻的位置与朝向 |
| 运动轨迹 | 描述设备在空间中的运动路径 |
| 稀疏地图 | 用于视觉定位和重定位 |
| 稠密地图 | 用于三维重建、空间理解 |
| 占据地图 | 用于路径规划和避障 |
| 回环约束 | 用于校正长期累计漂移 |
| 关键帧 | 保存具有代表性的历史观测 |
因此,可以把 SLAM 简化理解为:
输入:
Sensor Data
↓
SLAM
↓
输出:
Camera Poses
+
Trajectory
+
Map
七、SLAM 中的“定位”
7.1 什么是定位?
SLAM 中的定位指:
实时估计设备自身在空间中的位置与朝向。
这个过程一般称为:
Pose Estimation(位姿估计)
一个完整的位姿包括:
也就是 6 个自由度:
平移自由度
├── X
├── Y
└── Z
旋转自由度
├── Roll
├── Pitch
└── Yaw
7.2 定位是相对于什么进行的?
SLAM 中的定位通常是:
相对于 SLAM 系统建立的世界坐标系进行定位。
系统初始化时会建立一个参考坐标系,例如:
第一帧相机:
Position = (0, 0, 0)
Orientation = 初始方向
之后所有相机位姿都相对于这个坐标系表示。
例如第 10 帧可能得到:
x = 2.3 m
y = 0.1 m
z = 1.5 m
同时还包括相机的旋转姿态。
它表示:
相机现在位于 SLAM 世界坐标系中的某个位置。
7.3 Tcw 和 Twc
SLAM 中经常会看到:
(T_{cw}) (T_{wc})
二者表示方向相反的坐标变换。
(T_{cw})
World → Camera:
世界坐标
↓
相机坐标
(T_)
Camera → World:
相机坐标
↓
世界坐标
因此:
阅读不同 SLAM 项目源码时,一定需要首先确认它使用的是哪一种位姿定义。
7.4 定位是在“建好的地图”中定位吗?
SLAM 初始阶段并不存在完整地图。
因此更准确地说:
SLAM 是在不断构建和更新的地图中进行定位。
地图与定位之间形成持续循环:
当前地图
↓
匹配当前观测
↓
估计相机位姿
↓
添加新地图点
↓
优化地图
↓
下一帧继续定位
如果地图不准确:
地图误差
↓
定位误差
如果定位不准确:
位姿误差
↓
地图点放置错误
↓
地图变形
因此二者必须同时优化。
八、世界坐标系、地图与相机位姿
理解下面三者之间的关系,是理解 SLAM 的关键:
- 世界坐标系;
- 地图;
- 相机位姿。
8.1 世界坐标系
世界坐标系是整个 SLAM 系统的统一参考系。
可以抽象表示为:
Z
↑
|
|
O ─────→ X
/
/
Y
地图中的所有点、所有相机位置、所有轨迹,都统一表示在这个坐标系中。
8.2 地图点
视觉 SLAM 中,大量三维特征点共同组成稀疏地图:
● ●
● ●
●
Camera → ●
●
●
每一个地图点都拥有世界坐标:
例如:
MapPoint 001 = (1.20, 3.51, 0.87)
MapPoint 002 = (0.92, 4.31, 1.22)
这些地图点可能对应真实环境中的:
- 墙角;
- 桌子边缘;
- 门框;
- 纹理明显的位置;
- 其他稳定视觉特征。
8.3 相机位姿
机器人运动过程中,每一个时刻都有一个相机位姿:
Camera 1 → Camera 2 → Camera 3 → Camera 4
每一个位姿描述:
相机在哪里?
+
相机朝向哪里?
也可以写成:
8.4 相机轨迹
连续的相机位姿连接起来,就是 SLAM 轨迹:
World Frame
Camera 4
↑
/
Camera 3
↑
/
Camera 1 → Camera 2
所以:
Trajectory 本质上就是按照时间排列的一系列 Camera Pose。
8.5 三者的关系
| 元素 | 含义 | 表达方式 |
|---|---|---|
| 世界坐标系 | SLAM 的统一空间参考 | (O_w,X_w,Y_w,Z_w) |
| 地图点 | 环境中的三维特征 | ((x,y,z)) |
| 相机位姿 | 相机的位置与朝向 | (R,t) 或变换矩阵 |
| 运动轨迹 | 连续相机位姿组成的路径 | Pose Sequence |
可以总结成:
世界坐标系
│
┌──────────┴──────────┐
↓ ↓
地图点 相机位姿
│ │
│ ↓
│ 相机轨迹
│
└────────共同描述────────┘
三维环境
九、SLAM 中的“建图”
9.1 什么是建图?
SLAM 中的 Mapping 是指:
机器人在运动过程中,根据传感器观测逐步建立环境的空间表达。
这个地图并不一定是传统意义上的地图。
它更多是:
机器能够理解、计算和使用的环境模型。
9.2 常见地图形式
| 地图类型 | 描述 | 常见用途 |
|---|---|---|
| 稀疏地图 | 由少量稳定三维特征点组成 | 视觉定位、重定位 |
| 稠密地图 | 大量点或表面描述完整环境 | 三维重建 |
| 点云地图 | 使用三维点表示环境 | LiDAR SLAM |
| 占据栅格地图 | 表示空间是否被障碍物占据 | 导航、路径规划 |
| 拓扑地图 | 用图结构表达地点连接关系 | 大规模导航 |
| 语义地图 | 地图同时包含物体语义 | 空间理解、机器人任务规划 |
9.3 稀疏地图
ORB-SLAM 等经典特征点 SLAM 主要建立稀疏地图。
例如:
● ●
●
● ●
●
●
●
这些点通常足以支持:
- 相机跟踪;
- 重定位;
- 回环检测;
- 位姿优化。
但它并不适合直接生成高质量三维模型。
9.4 稠密地图
稠密地图会尽可能恢复大量像素对应的三维结构。
例如:
稀疏地图:
● ●
●
●
稠密地图:
██████████
██████████
██████████
常见应用包括:
- 三维扫描;
- 数字孪生;
- AR;
- VR;
- 场景重建。
典型系统包括:
- KinectFusion;
- ElasticFusion。
9.5 占据栅格地图
机器人导航中常见的地图是 Occupancy Grid Map。
例如二维地图:
████████████
█ █
█ ■ █
█ █
█ R █
████████████
其中:
█:墙壁;■:障碍物;R:机器人;- 空白:可通行区域。
这种地图非常适合:
- A*;
- Dijkstra;
- DWA;
- MPC;
等路径规划与导航算法。
十、视觉 SLAM 的典型建图流程
视觉 SLAM 的建图过程通常可以概括为:
图像输入
↓
特征提取
↓
特征匹配
↓
相机运动估计
↓
三角测量
↓
生成 3D 地图点
↓
添加关键帧
↓
局部 BA
↓
地图扩展
10.1 特征提取
首先从图像中寻找稳定特征。
例如:
墙角
桌子边缘
窗户边缘
纹理明显区域
这些位置在多帧图像中更容易被重复识别。
10.2 特征匹配
找到不同帧中的同一个真实空间点:
Frame A Frame B
● P1 ● P1
● P2 → ● P2
● P3 ● P3
通过匹配结果就可以建立几何约束。
10.3 三角测量
当同一个三维点在两个不同相机位置被观测时,可以计算其空间位置:
Camera A Camera B
\ /
\ /
\ /
\ /
● P
这就是三角测量。
10.4 转换到世界坐标系
得到一个三维地图点之后,需要统一表示到 World Frame。
最终:
P1 = (x1, y1, z1)
P2 = (x2, y2, z2)
P3 = (x3, y3, z3)
...
不断积累后形成完整地图。
十一、建图是以什么为基准?
SLAM 地图通常是相对于初始化阶段定义的世界坐标系建立的。
不同系统的初始化方式略有不同。
| SLAM 类型 | 常见世界坐标系定义 |
|---|---|
| 单目视觉 SLAM | 通常使用初始化相机帧作为参考 |
| 双目 SLAM | 通常使用左相机初始坐标系 |
| RGB-D SLAM | 通常使用初始相机坐标系 |
| Visual-Inertial SLAM | 通常结合 IMU 重力方向定义 |
| LiDAR SLAM | 通常使用初始雷达坐标系或导航坐标系 |
地图中的所有点和相机轨迹,最终都需要转换到同一个参考坐标系。
十二、定位和建图到底是什么关系?
这是理解 SLAM 最重要的问题之一。
12.1 建图依赖定位
假设相机观察到一个桌角。
如果不知道相机当前在哪里,就无法准确判断桌角在世界坐标系中的位置。
因此:
准确相机位姿
↓
准确三维地图点
12.2 定位依赖地图
下一帧到来时,系统又可以把当前图像中的特征与已有地图点匹配:
当前图像特征
↓
匹配已有地图点
↓
PnP / 优化
↓
当前相机位姿
因此:
Map → Localization → Better Map
↑ ↓
└─────────────────────┘
这就是 SLAM 的本质闭环。
十三、SLAM 的分类
SLAM 可以根据使用的传感器进行分类。
13.1 视觉 SLAM
输入主要是摄像头图像。
常见形式:
- Monocular SLAM;
- Stereo SLAM;
- RGB-D SLAM。
代表系统包括:
- ORB-SLAM 系列;
- DSO;
- LSD-SLAM;
- SVO。
优点
- 成本低;
- 信息丰富;
- 可同时获得纹理和语义信息。
缺点
容易受到以下因素影响:
- 光照变化;
- 运动模糊;
- 弱纹理环境;
- 动态物体。
13.2 视觉惯性 SLAM
Visual-Inertial SLAM 将:
Camera
+
IMU
结合起来。
IMU 可以提供:
- 角速度;
- 线加速度;
有助于改善纯视觉系统在快速运动、模糊或短暂视觉失效情况下的鲁棒性。
代表系统包括:
- VINS-Mono;
- VINS-Fusion;
- ORB-SLAM3。
13.3 激光 SLAM
LiDAR SLAM 主要依赖激光雷达点云。
代表系统包括:
- LOAM;
- Cartographer;
- LeGO-LOAM;
- LIO-SAM。
优势包括:
- 几何测距准确;
- 对光照变化不敏感;
- 适合大规模机器人导航。
13.4 多模态 SLAM
现代 SLAM 越来越倾向于多传感器融合:
Camera
+
LiDAR
+
IMU
+
GNSS
代表系统包括:
- LVI-SAM;
- FAST-LIO;
- 多种 LiDAR-Inertial-Visual 系统。
其核心目的就是:
利用不同传感器的优势互补,提高定位和建图的稳定性。
十四、SLAM 的主要应用
| 应用领域 | SLAM 的具体作用 |
|---|---|
| 🤖 机器人导航 | 定位、建图、路径规划、避障、自主移动 |
| 🚗 自动驾驶 | 与 LiDAR、GNSS、HD Map 联合进行高精度定位 |
| 🥽 AR / VR / MR | 实时跟踪头部或设备位置,使虚拟内容稳定绑定现实空间 |
| 🏗 建筑测绘 | 在室内无 GPS 环境完成空间扫描和三维重建 |
| 🚁 无人机 | GPS 盲区中的自主飞行、定位与降落 |
| 🏭 工业机器人 | 工厂环境定位、巡检和自主作业 |
| 🏠 服务机器人 | 家庭地图构建、扫地、配送 |
| 🌐 数字孪生 | 建立真实环境对应的数字空间模型 |
十五、SLAM 的核心挑战
尽管 SLAM 已经发展多年,但真实环境依然非常复杂。
15.1 动态场景
传统 SLAM 往往假设:
环境大部分是静态的。
但真实场景可能出现:
- 行人;
- 车辆;
- 动物;
- 移动物体。
如果系统错误地将动态物体当成静态地图的一部分,就会干扰位姿估计。
15.2 弱纹理环境
例如:
- 白墙;
- 玻璃;
- 长走廊;
- 黑暗空间。
这些环境缺乏稳定视觉特征,导致视觉 SLAM 难以匹配。
15.3 尺度问题
单目相机无法直接从单张图像恢复真实尺度。
因此单目 SLAM 通常存在:
Scale Ambiguity(尺度不确定性)
长时间运行还可能出现尺度漂移。
加入:
- Stereo;
- RGB-D;
- IMU;
可以缓解尺度问题。
15.4 累计漂移
假设每次估计相机移动都有微小误差:
Frame 1 → 误差 0.1%
Frame 2 → 再增加一点
Frame 3 → 再增加一点
...
运行足够长时间后,误差就会不断累积。
因此必须依靠:
- 回环检测;
- Bundle Adjustment;
- Pose Graph Optimization;
保持全局一致性。
15.5 多传感器同步
视觉惯性或多模态 SLAM 经常需要同时处理:
Camera
IMU
LiDAR
GNSS
这些传感器:
- 采样频率不同;
- 时间戳不同;
- 延迟不同;
- 坐标系不同。
因此:
- 时间同步;
- 内参标定;
- 外参标定;
都会直接影响最终 SLAM 精度。
十六、SLAM 的本质
从工程角度看,SLAM 是:
一个实时定位与地图维护系统。
从数学角度看,SLAM 可以理解为:
一个根据连续传感器观测,同时估计机器人状态和环境状态的概率估计与非线性优化问题。
从更高层次来看:
Sensor Measurements
↓
SLAM
↓
Estimate:
Robot State
+
Environment State
也就是说,SLAM 实际上是在寻找:
最合理的机器人轨迹
+
最合理的环境结构
使它们能够最大程度解释所有观测数据。
十七、SLAM 与三维重建
传统 SLAM 最主要的目标是:
准确定位。
因此地图通常只需要“足够支持定位”,不一定追求高质量视觉效果。
例如 ORB-SLAM 的稀疏地图:
● ●
●
●
●
对定位很好用,但并不能直接作为逼真的三维模型。
三维重建则更加关注:
- 几何完整性;
- 表面结构;
- 纹理;
- 光照;
- 可视化效果。
因此现代系统开始越来越多地将二者结合。
十八、SLAM 与 NeRF / 3DGS
近年来,一个非常重要的发展趋势是:
SLAM 与神经三维重建技术深度融合。
18.1 SLAM 为 NeRF / 3DGS 提供什么?
NeRF 和 3D Gaussian Splatting 通常需要知道:
Image 1 + Camera Pose 1
Image 2 + Camera Pose 2
Image 3 + Camera Pose 3
...
SLAM 恰好可以实时估计 Camera Pose。
因此可以形成:
Camera / Video
↓
SLAM
↓
Camera Poses
↓
┌────────────┐
│ NeRF / 3DGS│
└────────────┘
↓
高质量三维场景
18.2 NeRF / 3DGS 反过来优化 SLAM
另外一个方向是:
SLAM
↓
初始 Camera Pose
↓
NeRF / 3DGS
↓
场景重建
↓
Photometric Error
↓
反向优化 Camera Pose
也就是说:
三维重建模型不仅使用 SLAM 位姿,还可以反过来提高 SLAM 位姿精度。
类似思想已经广泛出现在 Neural SLAM 研究中,例如:
- iMAP;
- NICE-SLAM;
- Neural RGB-D SLAM;
- Gaussian-SLAM;
- SplaTAM 等方向。
十九、SLAM、NeRF 与 3DGS 的关系
可以将三者理解成:
真实世界
↓
Camera / LiDAR / IMU
↓
SLAM
↓
Camera Trajectory
+
Initial Geometry
↓
NeRF / 3DGS
↓
高保真三维模型
↓
数字孪生 / AR / VR / Robot
SLAM 更关注:
我在哪里?
三维重建更关注:
这个世界长什么样?
未来系统则希望进一步回答:
这个世界里有什么?它们是什么?机器人能够如何与它们交互?
二十、从 SLAM 到空间智能
SLAM 技术正在从传统的:
Localization
+
Mapping
逐渐扩展为:
Localization
+
Mapping
+
Reconstruction
+
Semantic Understanding
+
Scene Interaction
也就是从单纯的几何空间感知,进一步发展到:
Spatial Intelligence(空间智能)
未来机器人不仅需要知道:
这里有一个点
还需要知道:
这里是一张桌子
桌子上有一个杯子
杯子可以被抓取
机器人当前距离杯子 1.2 米
前方路径没有障碍
因此 SLAM 将逐渐与:
- 3D Vision;
- NeRF;
- 3D Gaussian Splatting;
- Semantic Segmentation;
- Object Detection;
- Vision-Language Model;
- Embodied AI;
进一步融合。
二十一、SLAM 知识结构总结
如果从系统层面理解 SLAM,可以记住下面这张关系图:
SLAM
│
┌──────────┴──────────┐
│ │
Localization Mapping
│ │
↓ ↓
Camera Pose Map Points
│ │
└──────────┬──────────┘
↓
World Frame
│
┌────────┴────────┐
↓ ↓
Trajectory Environment
│ │
└────────┬────────┘
↓
Global Optimization
│
↓
Loop Closure
从数据流角度,则可以记成:
Sensors
↓
Frontend
↓
Data Association
↓
Pose Estimation
↓
Mapping
↓
Backend Optimization
↓
Loop Closure
↓
Trajectory + Map
二十二、核心问题总结
| 问题 | 回答 |
|---|---|
| SLAM 是什么? | 在未知环境中同步完成定位与建图 |
| 定位是什么? | 估计设备当前的位置和朝向 |
| 相对于什么定位? | 相对于 SLAM 建立的世界坐标系 |
| 建图是什么? | 根据传感器数据建立机器可使用的环境空间模型 |
| 地图以什么为基准? | 世界坐标系 |
| 定位和建图是什么关系? | 相互依赖、相互促进 |
| SLAM 输出什么? | 位姿、轨迹、地图、关键帧以及回环等信息 |
| 为什么需要回环? | 修正长期累计漂移 |
| SLAM 可以做什么? | 导航、AR/VR、无人机、自动驾驶、三维重建等 |
| SLAM 和 NeRF / 3DGS 有什么关系? | SLAM 提供位姿,NeRF / 3DGS 提供高质量三维表达,并可反向优化位姿 |
二十三、结语
SLAM 是连接现实世界与数字空间的重要基础技术。
它解决的核心问题看起来非常简单:
我在哪里?
以及:
周围的世界是什么样?
但真正实现这一目标,需要同时解决:
- 多传感器感知;
- 数据关联;
- 位姿估计;
- 三维几何;
- 地图管理;
- 回环检测;
- 非线性优化;
- 概率估计;
- 多传感器融合;
等一系列复杂问题。
对于机器人来说,SLAM 让机器具备了理解空间和自主移动的基础能力;对于 AR、VR 和三维视觉来说,SLAM 又提供了现实空间与虚拟世界之间的重要坐标桥梁。
随着 NeRF、3D Gaussian Splatting、语义地图、视觉语言模型以及具身智能不断发展,SLAM 的角色也正在发生变化。
它正在从传统意义上的:
同步定位与建图
逐步演变为:
机器理解、重建并最终与三维世界交互的基础空间感知系统。
因此,无论研究方向是机器人导航、自动驾驶、视觉定位、AR/VR、数字孪生、NeRF 还是 3DGS,系统理解 SLAM 都是一项非常重要的基础能力。
