一、SLAM技术概述:从理论到量产的全景图

大家好,我是你们这门课的主讲。在机器人或自动驾驶领域摸爬滚打了十几年,我越来越觉得,SLAM 是真正意义上的「卡脖子」技术之一。今天咱们先不急着写代码,而是把 SLAM 的来龙去脉、技术流派、以及量产时那些让人头疼的坑,一次性讲清楚。

1.1 什么是SLAM?

SLAM,全称 Simultaneous Localization and Mapping,中文叫「同步定位与地图构建」。说白了,就是让一个移动的机器人,在完全陌生的环境里,一边走路一边画地图,同时还得知道自己在地图上的哪个位置。

你想想看,这其实是个「先有鸡还是先有蛋」的问题:要定位,你得先有地图;要建图,你得先知道自己在哪。SLAM 的核心,就是通过概率和优化,把这个死循环给解开了。

核心公式(简化版):

P(x, m | z, u)  —— 给定观测z和控制u,估计状态x和地图m

嗯,这里要注意,实际工程中我们很少直接算这个全概率,而是用图优化或者滤波器来近似。

我在项目中遇到过最典型的场景:一台 AGV 小车在仓库里跑,突然 WiFi 断了,GPS 也没有。这时候如果 SLAM 做不好,小车直接就「失忆」了,撞货架是小事,伤到人就麻烦了。

1.2 视觉SLAM的发展历程

视觉 SLAM 的发展,我把它分成三个阶段,每个阶段都有标志性的工作。

阶段 时间 代表工作 核心特点
古典时代 2007-2012 MonoSLAM, PTAM 基于滤波器,稀疏特征,实时性差
黄金时代 2013-2018 ORB-SLAM, LSD-SLAM, DSO 基于图优化,特征法/直接法分庭抗礼
量产时代 2019-至今 ORB-SLAM3, VINS-Fusion, DroidSLAM 多传感器融合,深度学习加持,嵌入式优化

我记得 2015 年刚接触 ORB-SLAM 时,被它的回环检测效果震撼到了。一个单目摄像头,绕着办公室走一圈,居然能自动修正累积误差,把地图闭合得严丝合缝。那时候我就知道,视觉 SLAM 要爆发了。

1.3 主流视觉SLAM框架对比

现在市面上框架很多,但真正经过量产检验的,其实就那么几个。我挑三个最有代表性的,给大家做个横向对比。

ORB-SLAM3

这是目前最完整的特征点法 SLAM 系统。支持单目、双目、RGB-D,甚至支持 IMU 紧耦合。它的三大线程(跟踪、局部建图、回环检测)设计得非常清晰,代码质量也高。

  • 优点: 精度高,回环检测强,支持纯视觉和视觉惯性
  • 缺点: 特征提取耗时,弱纹理场景容易丢
  • 我的经验: 在室内白墙场景,ORB 特征经常提取不到足够的点。我后来加了边缘特征,才勉强稳住。

VINS-Mono

港科大沈劭劼团队的作品,视觉惯性紧耦合的标杆。它的初始化非常鲁棒,能在运动激励不足的情况下快速收敛。

  • 优点: IMU 预积分做得好,初始化快,代码工程化程度高
  • 缺点: 纯视觉模式下精度不如 ORB-SLAM3
  • 避坑指南: 我曾经在无人机上跑 VINS,发现 IMU 的零偏估计在剧烈振动时会发散。后来加了加速度计饱和检测,才解决这个问题。

LSD-SLAM

直接法的开山之作,由慕尼黑工大的 Cremers 团队提出。它不提取特征点,而是直接对图像像素做半稠密深度估计。

  • 优点: 能建半稠密地图,在纹理丰富场景表现好
  • 缺点: 对光照变化敏感,计算量大,不适合低算力平台
  • 我的看法: 直接法在学术上很有价值,但量产时我很少用。因为嵌入式芯片跑直接法,帧率很难保证。

个人建议: 如果你刚开始学 SLAM,先从 ORB-SLAM3 入手。它的代码结构最清晰,文档也最全。等你把特征法吃透了,再去看直接法和深度学习 SLAM,会事半功倍。

1.4 应用场景与量产挑战

SLAM 的应用场景,现在已经非常广泛了。我简单列几个我实际参与过的:

  • 扫地机器人: 这是 SLAM 量产最成熟的领域。科沃斯、石头、iRobot 都在用。核心挑战是低成本传感器(单目+陀螺仪)下的鲁棒性。
  • 自动驾驶: L4 级以上的自动驾驶,SLAM 是冗余定位的关键一环。但量产时最大的问题是「长尾场景」——比如隧道、雨雪天、高架桥下。
  • AR/VR: HoloLens、Apple Vision Pro 都依赖视觉惯性 SLAM。这里对延迟要求极高,必须做到 10ms 以内。
  • 无人机: 大疆的无人机在无 GPS 环境下,全靠 VIO 做定位。我参与过一款农业无人机,在麦田里飞,纹理重复度极高,SLAM 经常丢。

量产挑战(我踩过的坑):

  1. 算力限制: 你以为的 2TOPS 算力,实际能用的可能只有 0.5TOPS。因为 NPU 的利用率很难做到 100%。
  2. 传感器标定: 相机和 IMU 的外参,出厂时标好了,但运输振动后可能就偏了。我曾经遇到过一台设备,外参偏了 0.5 度,导致定位误差在 10 米外累积到 1 米。
  3. 动态物体: 行人、车辆、飘动的窗帘,都会破坏 SLAM 的静态世界假设。我见过一个方案,在商场里跑,因为人太多,地图直接被「撑爆」了。
  4. 光照变化: 从室内到室外,光照变化 100 倍,特征点匹配率直接掉到 10% 以下。

1.5 本章知识体系总览

为了让大家对本章内容有个整体印象,我画了一张图。这张图把 SLAM 的核心问题、发展脉络、主流框架、以及量产挑战串在了一起。你可以把它当作后续学习的「导航图」。

SLAM技术概述 - 知识体系 SLAM核心问题 什么是SLAM 发展历程 主流框架对比 应用场景与量产挑战 定位 vs 建图 概率与优化 古典时代 黄金时代 量产时代 ORB-SLAM3 VINS-Mono LSD-SLAM 扫地机器人 自动驾驶 AR/VR 无人机 算力/标定/动态/光照 图1:SLAM技术概述知识体系图

这张图里,我把 SLAM 的核心问题放在中心,四个方向分别对应定义、发展、框架和应用。你会发现,所有技术最终都要落到「量产挑战」上。这也是我们这门课的核心主线——从理论到量产,中间隔着一道巨大的鸿沟。

一个小建议: 学 SLAM 不要只盯着算法。多想想你的算法最终要跑在什么芯片上,要面对什么样的环境。我见过太多优秀的论文算法,到了嵌入式平台上直接「躺平」——跑不动,或者跑不稳。

好了,第一章的内容就到这里。下一章我们会深入 SLAM 的数学基础,从坐标系变换开始,一步步搭建你的 SLAM 知识体系。


专注资料整理