让一台机器人在从没去过的屋子里自己溜达、还知道自己"在哪、屋里有啥",靠的就是 SLAM——同步定位与地图构建(Simultaneous Localization And Mapping)。这期把它讲明白。
一、先解决一个根本问题:误差

SLAM 之所以难,是因为所有测量都不完美、都有误差。传感器有噪音,电机有打滑,编码器数出来的"走了3米"其实可能只有2.9米。误差是躲不掉的——光刻机、机械臂、飞机、火箭,哪个不是带着误差造出来的?
关键在于:如果我们知道误差的上限,就能做出接近完美的机器。定位建图也一样,不是消灭误差,而是用算法把误差的影响压到最小。
二、开环 vs 闭环:为什么"没反馈就不智能"
这里要引入两个概念。
开环控制:只管发指令,不回头看结果。比如让电机转10秒,它真转了多少,系统不知道。误差只会越攒越大。
闭环控制:发完指令后用传感器"回头"检查结果,发现偏了立刻修正。这就是"反馈"——系统的输出被送回来和期望值对比,不断修正偏差。
前面文章讲过小车靠编码器能做到"前进20厘米99%精度",本质就是闭环:期望走20厘米,编码器回传实际走了多少,差多少补多少,反复校正。自动化的简单小车是开环,真正的智能车一定是闭环——这是"认路"的地基。
三、SLAM:一边定位,一边建图
SLAM 是"鸡生蛋、蛋生鸡"的难题:要精确定位,得有地图;要建准地图,又得知道自己精确在哪。解法是交替进行:这刻用传感器和已有地图猜"我在哪"(定位),同时用新观察到的环境把地图更新一点(建图),反复迭代,两边一起变准。
它分几步:特征提取(找到墙、边、角等可辨识点)→ 数据关联(判断这次看到的和上次是不是同一个点)→ 状态估计(推算真实位置)→ 更新(修正地图和位姿)。
四、主流算法:从 EKF 到粒子滤波
算法百花齐放,入门最常听说的是这两类:
① 扩展卡尔曼滤波(EKF):用数学模型把"传感器读数"和"运动预测"融合起来,得到比单独任何一项都准的位置估计。适合线性问题,是经典入门算法。
② 粒子滤波 + GMapping / Cartographer:用一大把"粒子"撒在地图上,每个粒子代表一个可能的位置,哪里的粒子和传感器观测最吻合,就说明机器人更可能在哪。配合回环检测(走回原点时把首尾对齐,消除累积误差),能建出精确的栅格地图。Cartographer 现在配合激光雷达用得非常普遍。
五、结论:SLAM 是无人驾驶和扫地机的共同底子
SLAM 不是遥不可及的黑科技——你家的扫地机器人、物流无人车、自动导引小车(AGV),都是它的应用。想学,最接地气的方式就是拿一台智能小车,从编码器闭环、到 IMU、再到上激光雷达跑一遍 SLAM,边玩边懂。
跑跑啦智能小车自带编码器闭环(精准控距)和全套传感器扩展接口,从"认距离"到"认房间"一步步进阶,正是入门 SLAM 的绝佳练手平台。
想深入了解,欢迎看我们的智能小车产品。淘宝店:paopaola.taobao.com。


微信联系
淘宝联系