1. 课程导入
激光SLAM(Simultaneous Localization and Mapping,同步定位与建图)是移动机器人在未知环境中,利用激光雷达(LiDAR)传感器实时估计自身位姿并同步构建环境地图的技术。它解决了机器人领域经典的"先有鸡还是先有蛋"问题——定位需要地图,建图需要精确位姿,二者必须在一个统一的概率框架内联合求解。与视觉SLAM相比,激光SLAM凭借其测距精度高、不受光照影响、点云数据几何信息丰富等优势,在工业AGV、服务机器人、自动驾驶和室内测绘等领域占据主导地位。本章作为全课程的导论,将系统梳理激光SLAM的核心概念、技术演进脉络、典型应用场景,并给出本课程30章内容的学习地图与目标定位。
一、激光SLAM的核心原理与数学本质
激光SLAM的数学本质是一个状态估计问题。设机器人在时刻 \(t\) 的位姿为 \(x_t = (x, y, \theta)\),环境地图为 \(m\),激光雷达观测为 \(z_t\),控制输入为 \(u_t\)。SLAM的目标是求解联合后验概率 \(P(x_{1:T}, m \mid z_{1:T}, u_{1:T})\)。由于该联合分布维度极高且非线性,实际工程中通常将其分解为两个相互耦合的子问题:前端(Front-end)负责根据相邻帧点云配准估计相对位姿增量,后端(Back-end)负责通过图优化或滤波方法对历史位姿和地图进行全局一致性修正。
激光雷达的测距原理主要分为两类:TOF(Time of Flight)和相位式测距。TOF雷达通过发射激光脉冲并测量反射光的时间差计算距离,典型代表为Velodyne VLP-16、禾赛Pandar系列;相位式雷达通过测量发射与反射信号的相位差间接计算距离,典型代表为SICK TiM系列。TOF雷达精度高、测距远,但成本较高;相位式雷达成本低、适合室内中短距离场景,但存在距离模糊问题。在Cartographer的实际应用中,2D激光雷达通常选用TOF或相位式雷达,扫描频率一般在10Hz~40Hz之间,角分辨率需优于0.5°以保证点云密度满足配准需求。
二、激光SLAM的发展历程与技术演进
激光SLAM的发展可以划分为四个主要阶段,每个阶段都有标志性的算法突破和工程实践推动。
| 阶段 | 时间跨度 | 代表算法/系统 | 核心贡献 | 局限性 |
|---|---|---|---|---|
| 萌芽期 | 1990s | EKF-SLAM (Smith et al.) | 首次将SLAM建模为概率估计问题,用扩展卡尔曼滤波维护位姿与路标 | 计算量O(n²),仅适用于小规模环境 |
| 发展期 | 2000s | FastSLAM (Montemerlo) | Rao-Blackwellized粒子滤波,将SLAM分解为位姿采样+地图条件估计 | 粒子数需求大,粒子退化问题 |
| 成熟期 | 2010s | LOAM (Zhang & Singh)、图优化框架 | 3D激光SLAM的里程碑,提出特征点提取与scan-to-map配准 | 无回环检测,长轨迹漂移累积 |
| 工程化期 | 2016-至今 | Cartographer (Google)、LIO-SAM、FAST-LIO | 子图+回环的图优化框架,激光-惯性紧耦合,实时性大幅提升 | 计算资源需求较高,退化场景仍需多传感器融合 |
从技术路线来看,激光SLAM经历了从滤波方法到图优化方法的范式转移。早期EKF-SLAM和FastSLAM受限于计算能力和线性化误差,难以处理大规模环境。2016年Google开源的Cartographer采用基于子图(Submap)的图优化框架:将连续帧点云配准到当前子图,当子图不再变化时将其作为图优化节点,通过回环检测建立跨子图的约束,最终用SPA(Sparse Pose Adjustment)进行全局优化。这一设计使得Cartographer在2D室内场景中能达到5cm以内的建图精度,且支持实时运行。
三、激光SLAM的典型应用领域
激光SLAM技术已经深度渗透到多个行业,不同场景对SLAM系统的需求侧重点差异显著。
- 工业AGV/AMR:这是激光SLAM商业化最成熟的领域。在工厂、仓储环境中,AGV需要±2cm以内的重复定位精度,且要求7×24小时稳定运行。Cartographer配合反光板或自然特征导航已成为主流方案。关键挑战在于动态叉车、货架变动等环境变化对地图稳定性的影响。
- 服务机器人:包括商用清洁机器人、配送机器人、酒店送物机器人等。这类场景对成本敏感,通常采用单线激光雷达(如思岚RPLIDAR、镭神N10),要求SLAM系统在CPU资源受限的嵌入式平台上实时运行。Cartographer的2D版本在树莓派级别的硬件上即可达到10Hz的处理速度。
- 自动驾驶与园区物流:乘用车和园区无人车通常采用3D激光雷达(Velodyne、速腾聚创),需要SLAM系统提供高精度定位用于后续规划控制。LIO-SAM、FAST-LIO等紧耦合激光-惯性方案在此类场景中表现优异,但Cartographer的3D版本在室外大场景中仍有一定应用。
- 三维测绘与建筑信息模型(BIM):手持式或背包式三维激光扫描仪利用SLAM技术实现无GPS环境下的室内外一体化测绘。此类应用对建图精度和点云密度要求极高,通常需要融合IMU和视觉信息进行辅助约束。
四、课程学习目标与整体框架
本课程共30章,分为四个递进模块,目标是让学习者从零基础成长为能够独立部署、调优和二次开发激光SLAM系统的工程师。
基础篇(第1-8章):涵盖激光雷达选型与点云处理、坐标系变换、里程计标定、占据栅格地图原理、贝叶斯滤波与粒子滤波基础。学完此模块,学习者应能理解SLAM问题的数学建模,并具备阅读相关的基础能力。
核心算法篇(第9-18章):深入讲解点云配准(ICP、NDT、GICP)、前端里程计实现、后端图优化(g2o、GTSAM)、回环检测策略、子图划分与拼接。此模块会配合大量代码实践,要求学习者能够从零实现一个简化版2D激光SLAM系统。
Cartographer实战篇(第19-26章):这是本课程的核心实战部分。从源码架构解析开始,逐步讲解配置参数调优、多传感器融合(IMU、里程计)、2D与3D建图切换、纯定位模式、跨平台部署(ROS1/ROS2、嵌入式)。每章都会提供真实场景的调试案例和性能对比数据。
工程与进阶篇(第27-30章):涵盖SLAM系统评测方法(EVO、rpg_trajectory_evaluation)、退化场景处理策略、多机器人协同建图、基于深度学习的激光SLAM前沿方向。此模块旨在帮助学习者建立工程化思维,理解SLAM系统在真实产品中的落地挑战。
五、常见误区与学习复盘
在多年教学和工程实践中,我们发现初学者在入门激光SLAM时经常陷入以下误区,这里提前指出以帮助大家规避。
- 误区一:认为SLAM是一个开箱即用的工具。实际上,Cartographer等开源框架只是提供了基础能力,实际部署时需要对传感器标定、参数配置、场景适配进行大量调优。没有"万能参数"可以适配所有环境。
- 误区二:忽视传感器标定。激光雷达与IMU、轮式里程计之间的外参标定精度直接影响SLAM系统的整体性能。外参误差1cm或1°,在长距离运行后会导致明显的建图漂移。
- 误区三:混淆"定位"与"建图"的优先级。在纯定位模式下(如AGV导航),地图是预先构建的,SLAM系统只负责实时定位;而在建图模式下,需要保证机器人运动速度适中、场景特征充分,否则容易导致建图失败。
- 误区四:忽略计算资源约束。Cartographer的默认配置在性能强劲的台式机上运行流畅,但部署到嵌入式平台(如Jetson Nano、RK3399)时,必须降低点云分辨率、减少子图数量、调整优化频率,否则会出现明显的延迟。