一句话定义
SLAM(Simultaneous Localization and Mapping,同步定位与建图)是指移动机器人在完全陌生的环境里,一边推断"我此刻在哪里",一边把"周围长什么样"画成地图的技术。
为什么要"同时"做两件事
想象你蒙着眼睛被带进一栋陌生大楼,只能靠摸墙、数步子来判断方位。这时候问题来了:想画地图,得先知道自己站在哪,否则画出来的图没有参照;想知道自己在哪,又得先有地图,否则没法比对。
这就是鸡生蛋、蛋生鸡。SLAM 的解法是:不追求一步到位,而是边走边猜、边猜边改。机器人靠激光雷达(LiDAR)、摄像头、惯性测量单元(IMU)、轮速计等传感器感知环境,先算出相邻两帧之间"我大约挪了多少"——这叫里程计(Odometry)。再把一段段相对位移拼起来,同时把探测到的障碍物按位置写进地图。
核心难题:误差会像滚雪球一样累积
里程计每步都有小误差,走几百米后地图就可能歪得不成样子,这叫漂移(Drift)。对抗漂移的关键一步是回环检测(Loop Closure):当机器人绕一圈回到起点附近,算法认出"这地方我来过",于是把之前漂出去的轨迹和地图整体拉回来对齐。
典型流程是:前端里程计估相对运动 → 回环检测找"故地重游" → 后端优化做全局调整 → 输出地图(常见形式有栅格地图、点云地图、语义地图)。传感器配置和具体算法以各家官方文档为准。
和相邻概念的区别
| 概念 | 已知条件 | 求解目标 |
|---|---|---|
| 定位(Localization) | 已有地图 | 我在哪 |
| 建图(Mapping) | 已知位置 | 环境长什么样 |
| 里程计(Odometry) | 无(只用传感器) | 相对挪动了多少,会漂移 |
| SLAM | 两者都未知 | 位置和地图一起求 |
一句话:定位是"拿着地图找自己",SLAM 是"地图还没画,先自己找自己"。
对从业者和普通人意味着什么
普通人其实天天在用它的下游成果:扫地机器人自己摸清户型并记住充电座位置;商场里的 AR 导航;自动泊车;无人机的室内飞行;VR/AR 头显判断你转头幅度。没有 SLAM,这些设备在没见过的环境里就是"睁眼瞎"。
对从业者来说,SLAM 长期是几何加概率的方法论,靠滤波(如卡尔曼滤波、粒子滤波)和图优化打底;近年深度学习的加入主要体现在特征提取、语义分割、端到端位姿估计等环节,但工程落地仍然是"多传感器融合 + 后端优化"的骨架。实际选型时最该盯的指标是定位精度、漂移大小、算力占用,以及在弱纹理、人流遮挡、光照突变下的鲁棒性。
