SLAM建图与路径规划协同实战 - 第1节

一、SLAM概述:SLAM的定义与发展历程

说到SLAM,很多刚入行的朋友会问我:「这玩意儿到底是个啥?」

我一般会这么回答:SLAM就是让机器人在未知环境中,一边走路一边给自己画地图,同时还得知道自己在地图上的哪个位置。说白了,就是「我在哪?周围长啥样?我该怎么走?」这三个问题的实时求解。

全称是 Simultaneous Localization and Mapping,同步定位与建图。嗯,这个名字挺拗口的,但核心就两件事:定位和建图。这两件事是互相依赖的——你要定位,得先有地图;你要建图,得先知道自己的位置。这就像「先有鸡还是先有蛋」的问题,SLAM就是把这个死循环给解开了。

1.1 发展历程:从理论到落地

SLAM这个概念最早可以追溯到1986年的ICRA会议。那时候大家还在用概率论的方法做机器人定位,后来Smith、Self和Cheeseman提出了用扩展卡尔曼滤波(EKF)来做SLAM的框架。说实话,那时候的算法跑在当时的计算机上,慢得让人抓狂。

我个人印象最深的是2007年,那年出现了两个里程碑式的工作:一个是MonoSLAM,第一个实时的单目视觉SLAM系统;另一个是GMapping,基于粒子滤波的激光SLAM方案。我那时候刚入行,在实验室里跑GMapping,看着机器人在走廊里一圈圈转,地图一点点拼出来,那种感觉真的很奇妙。

到了2010年以后,图优化理论开始普及,g2o、Ceres这些优化库的出现,让SLAM的精度和效率都上了一个台阶。再后来就是ORB-SLAM系列、Cartographer、LOAM这些经典框架的诞生。

关键时间节点:

  • 1986年:SLAM概念提出,概率框架确立
  • 2007年:MonoSLAM(单目视觉)、GMapping(激光)问世
  • 2010年:图优化成为主流,RGB-D SLAM兴起
  • 2015年:ORB-SLAM、LOAM、Cartographer等现代框架出现
  • 2020年至今:语义SLAM、多传感器融合、端到端学习成为热点

二、SLAM在机器人领域的核心地位

你想想看,一个机器人如果没有SLAM,它能干什么?

它只能做「盲人摸象」式的工作——沿着固定轨迹走,或者靠外部信标(比如磁条、二维码)来导航。这在工厂里还行,但一旦到了未知环境,比如搜救现场、家庭服务、野外勘探,没有SLAM的机器人基本就是废的。

SLAM是机器人自主导航的「眼睛」和「记忆」。没有它,路径规划、避障、决策这些上层模块都无从谈起。

我在做仓储机器人项目时遇到过一件事:客户要求机器人在没有二维码、没有反光板的环境下自主运行。当时我们试过纯里程计,跑了不到10米就偏了半米。最后还是上了激光SLAM,配合IMU做紧耦合,才把定位精度控制在5厘米以内。嗯,那次之后我深刻理解了——SLAM不是可选项,而是刚需。

我的经验:在机器人系统中,SLAM通常处于「中间层」的位置。底层是传感器驱动和里程计,上层是路径规划和决策。SLAM负责把传感器数据变成可用的地图和位姿信息。这个位置决定了它的性能直接影响整个系统的天花板。

三、主流SLAM框架对比:激光 vs 视觉

目前主流的SLAM方案,按传感器分就两大类:激光SLAM和视觉SLAM。各有各的脾气,我分别说说。

3.1 激光SLAM

激光SLAM用的是激光雷达(LiDAR)的数据。它的核心优势是:精度高、稳定性好、对光照不敏感。

常见的框架有:

  • GMapping:基于粒子滤波,适合小场景,计算量随粒子数增长
  • Cartographer:Google出品,支持2D和3D,用图优化+子图匹配,回环检测很稳
  • LOAM系列(A-LOAM、F-LOAM、LIO-SAM):3D激光SLAM的标杆,特征提取+帧到地图匹配

我个人的习惯是:2D场景首选Cartographer,3D场景用LIO-SAM。为什么?Cartographer的闭环检测做得扎实,LIO-SAM融合了IMU,在快速运动时不会丢。

避坑指南:我曾经在玻璃墙面的仓库里用激光SLAM,结果激光直接穿透玻璃,地图上全是空洞。后来加了反光柱作为辅助特征才解决。所以,纯激光SLAM在反射、吸收性强的环境中会翻车,这点要心里有数。

3.2 视觉SLAM

视觉SLAM用摄像头作为传感器。它的优势是:成本低、信息丰富、能识别语义。

常见框架:

  • ORB-SLAM3:支持单目、双目、RGB-D,视觉SLAM的标杆,回环检测和重定位很强
  • VINS-Mono:视觉+IMU紧耦合,适合无人机等动态场景
  • DVO-SLAM:基于直接法,不依赖特征点,在纹理弱的环境下表现好

视觉SLAM有个老毛病:对光照和纹理敏感。大白墙、黑暗环境、快速运动,都容易让视觉SLAM「失明」。所以我现在做项目,只要预算允许,都会上视觉+IMU的融合方案。

3.3 核心对比

维度 激光SLAM 视觉SLAM
传感器成本 高(单线激光千元起,多线数万) 低(普通摄像头百元级)
定位精度 高(厘米级) 中(分米级,有尺度漂移)
环境适应性 不受光照影响,怕玻璃/镜面 受光照影响大,纹理丰富时表现好
地图形式 栅格地图、点云地图 稀疏/半稠密点云、语义地图
回环检测 依赖扫描匹配 依赖词袋模型,鲁棒性更强
典型应用 扫地机、AGV、自动驾驶 AR/VR、无人机、服务机器人

说白了,激光SLAM是「稳」字当头,视觉SLAM是「省」字当先。选哪个,看你的场景和预算。

四、知识体系总览

下面这张图是我自己整理的SLAM知识体系框架,涵盖了本章的核心内容。你可以把它当作后续学习的「导航图」。

SLAM知识体系总览 SLAM 系统 传感器输入 核心算法模块 输出与应用 激光雷达 摄像头 IMU/里程计 前端里程计 后端优化 回环检测 位姿估计 地图构建 路径规划输入 激光SLAM:稳 · 视觉SLAM:省 · 融合方案:未来趋势 Cartographer LOAM / LIO-SAM ORB-SLAM3 VINS-Mono

一点建议:如果你是初学者,我建议先从激光SLAM入手。为什么?因为激光数据直观,调试起来容易看到效果。等你把GMapping或Cartographer跑通了,再去看视觉SLAM,理解特征提取、图优化这些概念会轻松很多。我自己就是这么过来的。

好了,这一章的内容就到这里。SLAM的定义、发展历程、核心地位,以及激光和视觉两大主流框架的对比,我都尽量用实际经验给你讲清楚了。下一章我们会深入前端里程计,聊聊「机器人是怎么一步步推算自己位置的」。


可可精品资料库