3.2 视觉 SLAM 与激光 SLAM:主流流派对比 数学框架统一,但传感器不同,工程实现天差地别。视觉 SLAM 和激光 SLAM 是两条平行发展的技术树,各自有顶尖代表作品。 3.2.1 视觉 SLAM 与激光 SLAM 的根本差异 维度 | 视觉 SLAM | 激光 SLAM 传感器 | 相机(单目/双目/RGB-D) | 激光雷达(2D/3D LiDAR) 观测类型 | 2D 像素特征(点、线、面) | 3D 距离点云 优势场景 | 纹理丰富、有语义信息 | 几何结构清晰、长距离精准 弱点 | 弱纹理(白墙)失败、对光照敏感 | 缺乏语义、镜面/玻璃失效 典型精度 | 1-3% 路程漂移 | 0.
数学框架统一,但传感器不同,工程实现天差地别。视觉 SLAM 和激光 SLAM 是两条平行发展的技术树,各自有顶尖代表作品。
| 维度 | 视觉 SLAM | 激光 SLAM |
|---|---|---|
| 传感器 | 相机(单目/双目/RGB-D) | 激光雷达(2D/3D LiDAR) |
| 观测类型 | 2D 像素特征(点、线、面) | 3D 距离点云 |
| 优势场景 | 纹理丰富、有语义信息 | 几何结构清晰、长距离精准 |
| 弱点 | 弱纹理(白墙)失败、对光照敏感 | 缺乏语义、镜面/玻璃失效 |
| 典型精度 | 1-3% 路程漂移 | 0.5-1% 路程漂移 |
| 典型成本 | 相机便宜(百元级) | LiDAR 贵(万元级起) |
| 代表方法 | ORB-SLAM、VINS-Fusion、DROID-SLAM | LOAM、LIO-SAM、Cartographer |
💡 选型直觉:室内机器人(家庭服务、仓储)倾向激光 SLAM + 视觉辅助;室外大场景(自动驾驶、巡检)倾向 LiDAR 主导 + 视觉补语义;消费级 AR/VR 受成本约束倾向纯视觉。当前融合 SLAM(视觉 + LiDAR + IMU)是高端方案。
视觉 SLAM 内部又分两大流派,按是否直接用像素灰度划分:
| 流派 | 思路 | 优势 | 劣势 | 代表 |
|---|---|---|---|---|
| 特征法(间接法) | 提取特征点(ORB、SIFT),匹配特征做优化 | 鲁棒、对光照变化容忍度高 | 丢失纹理外的信息 | ORB-SLAM 系列 |
| 直接法 | 直接用像素灰度做光度误差优化 | 信息完整、能建稠密地图 | 对光照敏感、需要光度标定 | DSO、LSD-SLAM |
| 混合法 | 特征 + 直接结合 | 折中 | 复杂 | SVO、VINS |
ORB-SLAM(2015-2017)是特征法视觉 SLAM 的集大成之作,支持单目、双目、RGB-D 三种相机。它的系统架构完美对应上一节的三段式:
ORB(Oriented FAST and Rotated BRIEF)是 ORB-SLAM 选用的特征点。它具备:
ORB-SLAM 的回环检测用 DBoW2(Bag of Words,词袋模型):把所有 ORB 描述子聚类成「视觉词典」,每帧图像编码为「视觉单词直方图」。新帧的直方图与历史关键帧比对,相似度高就触发回环候选。这一思路后来被无数 SLAM 系统继承。
| 版本 | 增加能力 | 年代 |
|---|---|---|
| ORB-SLAM | 单目 | 2015 |
| ORB-SLAM2 | 单目 + 双目 + RGB-D | 2017 |
| ORB-SLAM3 | + IMU 紧耦合 + 多地图 | 2020 |
⚠️ ORB-SLAM 的局限:稀疏点云地图只能用于定位,不能直接用于导航避障或操作。后期的稠密建图模块(如 ORB-SLAM with Dense Mapping)补救了这点,但稠密地图依然不如 LiDAR 精确。
VINS-Fusion(港科大,2018)是视觉-惯性(VI)紧耦合 SLAM 的代表。它把单目/双目相机 + IMU 的数据在因子图层面融合,而不是松耦合(视觉和 IMU 各算各的最后拼)。
IMU 采样率 200-1000Hz,相机 30Hz。如果每来一个 IMU 读数都加一个因子,因子图会爆炸。IMU 预积分(Pre-integration)的思路是:把两帧相机之间的所有 IMU 读数积分成一个「虚拟测量」,作为一个因子加入因子图:
Δp, Δv, Δq = ∫_{t_k}^{t_{k+1}} (a, ω) dt # 预积分位置、速度、姿态变化
预积分的巧妙在于:它与位姿无关(不依赖绝对坐标系),所以即使位姿在优化中更新,预积分量也无需重算(除了 bias 修正)。
VINS-Fusion 已成为无人机、AR/VR 头显、移动机器人视觉惯性 SLAM 的事实标准之一。
DSO(Direct Sparse Odometry) 是直接法的代表:不提特征,直接用像素灰度做光度误差优化。它的优势是信息利用完整,劣势是对光度标定(曝光、增益、几何畸变)极敏感。
最近两年的趋势是端到端深度学习 SLAM:
💡 趋势判断:传统 SLAM(ORB-SLAM、VINS)在精度、效率、可解释性上仍占优势,但端到端深度 SLAM 在泛化性、退化场景鲁棒性上有独特价值。长期看两者会融合——传统 SLAM 提供先验结构,深度学习补足退化场景。
激光 SLAM 以 LiDAR 为主要传感器。LOAM(2014)是开山之作,奠定了「边缘点 + 平面点」特征分离 + 高低频分离优化的范式。
LiDAR 一帧点云包含几万个点,全用太慢。LOAM 把点云分成两类:
然后做两类匹配:边缘点对齐到线,平面点对齐到面。这种「点-线、点-面」匹配比纯点-点匹配更鲁棒,因为利用了几何结构。
LOAM 还分离了两个频率:
LIO-SAM(MIT,2020)是 LOAM 思想 + IMU 紧耦合 + 因子图优化的集大成:
Cartographer(Google,2016)是另一个广泛使用的激光 SLAM,特点是:
高端机器人普遍用多传感器融合 SLAM:
| 传感器组合 | 用途 | 代表 |
|---|---|---|
| 相机 + IMU | 视觉惯性(VIO) | VINS-Fusion、OKVIS |
| LiDAR + IMU | 激光惯性(LIO) | LIO-SAM、FAST-LIO |
| 相机 + LiDAR | 视觉激光融合 | R3LIVE、LVI-SAM |
| 相机 + IMU + GPS | 户外大场景 | VINS-Fusion + GPS |
| 相机 + IMU + LiDAR + GPS | 全套 | LIO-SAM + 视觉 |
融合原则(呼应第 2.4 节):每个传感器作为一个因子源,全部塞进因子图统一优化。这是因子图框架的最大威力——一个框架处理任意传感器组合。
⚠️ 常见误区:「SLAM 越准越好」是错的。SLAM 的精度只要满足下游任务即可——一个送货机器人 5cm 精度足够,没必要追求毫米级。精度越高通常意味着计算成本、传感器成本、调参成本指数级上升。
尽管 SLAM 算法日趋成熟,工程落地仍面临几大挑战:
| 难题 | 描述 | 当前应对 |
|---|---|---|
| 动态环境 | 人、车、移动物体干扰建图 | 动态点剔除、语义 SLAM |
| 退化场景 | 长走廊、空旷大厅、白墙 | 多传感器冗余、结构约束 |
| 长时间漂移 | 几小时连续运行的累积误差 | 回环 + 全局优化 + 子图管理 |
| 重定位 | 关机重启后怎么找回自己在哪 | 位置识别、多地图融合 |
| 大场景扩展 | 园区、城市级地图 | 分层地图、子图划分、云端 SLAM |
| 算力约束 | 边缘设备算力有限 | 算法优化、神经网络加速 |
第 3.4 节会专门讨论长程自主的工程难题。
下一节《3.3 语义 SLAM 与开放词汇场景理解》将讨论如何让地图不仅有几何,还有「含义」——这是机器人理解世界的关键跃迁。