[具身智能-815]:SLAM :第一阶段,利用实时激光雷达环境数据(类似图片)进行建图,类似机器机器学习训练;第二阶段,根据新的实时激光雷达环境数据(类似图片)进行在先前构建的图中的位置,类似推理。
SLAM 分两个阶段:
第一阶段,利用实时激光雷达环境数据(类似计算机视觉中的图片)进行建图,类似计算机视觉中的学习训练过程;
第二阶段,根据新的实时激光雷达环境数据(类似计算机视觉中的图片)进行在先前构建的图中的位置定位,类似计算机视觉中的分类预测或推理过程。
SLAM 两个阶段:建图阶段(训练) & 定位阶段(推理)
类比 CV 计算机视觉:
- 建图 = 模型训练:拿着原始数据,构建环境 “模型(地图)”
- 定位 = 模型推理 / 预测:输入新的传感器数据,在已经建好的模型里面算出自身位置
SLAM 完整分为两大阶段:建图阶段(SLAM 建图)、导航定位阶段(Localization,只定位,不再修改地图)。
注意:真正的 SLAM 算法(Cartographer/Gmapping)运行时是一边建图一边定位;
工程机器人实际使用会拆成两步:先离线建图,再在线定位导航,就如同深度学习先训练,后推理。
第一阶段:建图阶段 —— 相当于 CV 的训练过程
输入
源源不断的实时激光雷达扫描数据(一帧一帧 scan,每一帧相当于 CV 的一张图片),加上里程计、IMU。 每一帧激光:就是机器人当前视角看到的环境轮廓,就像相机拍下一张照片。
在做什么(类比训练)
- 机器人在未知环境里移动,每拿到一帧激光 “环境快照”;
- 算法把一帧帧快照做匹配对齐,推算机器人每一时刻的位置姿态;
- 将障碍物、墙体、空闲区域一点点拼接融合,生成一张全局栅格地图(相当于训练完成的模型权重文件);
- 输出产物:
map.pgm + map.yaml,这就是训练好的 “环境模型”,保存下来。
类比 CV 训练通俗理解
- CV 训练:大量图片输入网络,调整网络参数,得到训练模型,记住图片里的特征;
- SLAM 建图:大量激光帧输入 SLAM 算法,不断对齐点云,生成地图,记住环境墙体、障碍物的空间特征。
关键点:建图阶段地图一直在变化、迭代更新。 人要遥控小车走遍全部空间,如果有区域没走到,地图就缺失这块信息。 建图完成之后,地图文件就固化保存,不再改动。
第二阶段:定位阶段(Localization)—— 相当于 CV 推理 / 预测阶段
机器人不再修改地图!加载上一步建好的静态地图,只做一件事:我现在在哪?
输入
新的实时激光雷达帧(新的环境快照,相当于推理阶段输入一张新图片),里程计、IMU;不会再改动老地图。
在做什么(类比推理)
- 读取已经保存好的全局地图(加载训练好的模型);
- 获取当前时刻激光雷达看到的环境轮廓;
- 算法把当前实时激光轮廓,和已经保存的地图做匹配;
- 推算出机器人在这张旧地图当中的坐标、朝向(输出预测结果:机器人位姿);
- 把位置给到导航模块,实现巡逻、路径规划、避障。
类比 CV 推理通俗理解
- CV 推理:输入一张新图片,用已经训练好的模型,输出分类结果;
- SLAM 定位:输入一帧新激光扫描,用已经建好的地图模型,输出机器人当前位置坐标。
关键点:地图只读,不写入。哪怕现场临时多了箱子,算法只会把它当成临时障碍物,不会改写原始地图。
对比表格,清晰对照
表格
| 维度 | 第一阶段:建图(训练阶段) | 第二阶段:定位(推理阶段) |
|---|---|---|
| 核心目标 | 构建环境地图,记住整个环境长什么样 | 在已有地图里面,求解机器人当前位置 |
| 地图状态 | 地图动态生成,持续更新、扩张 | 地图静态只读,加载后不再修改 |
| 传感器输入 | 激光帧、里程计、IMU | 激光帧、里程计、IMU |
| 类比计算机视觉 | 模型训练,学习环境特征 | 模型推理,输入新数据做预测 |
| 人的操作 | 需要人工遥控小车遍历全部场地 | 小车自主运行,不需要人工遥控 |
| 输出产物 | 栅格地图文件 pgm+yaml | 实时输出机器人在地图中的 (x,y,θ) 位姿 |
| 故障现象 | 走得太快,地图重影、错位、漂移 | 地图完好,但定位丢失、机器人不知道自己在哪 |
| 典型 ROS 节点 | gmapping /cartographer 建图模式 | amcl、cartographer 定位模式 |
| 后续用途 | 保存地图,给后续导航使用 | 给 move_base 提供位置,完成巡逻导航 |
更形象生活化比喻
把环境想象成一座大楼:
- 建图(训练):你第一次进入大楼,到处走一遍,把墙、房间、过道全部画在本子上,得到一张大楼平面图。本子越画越完整。
- 定位(推理):之后你拿着这张画好的本子再次进入大楼,眼睛实时看周围墙壁,对照本子,判断:我现在走到大楼哪个位置。本子本身不会再涂改。
工程非常重要的误区澄清
-
❌误区:导航巡逻的时候还在跑完整 SLAM 建图。 ✅工程实际:巡逻阶段关闭建图,只跑定位。地图固定,只求解位姿。如果巡逻同时持续建图,环境微小变动会把地图越跑越烂。
-
❌误区:定位可以凭空算出位置。 ✅定位必须依赖预先建好的地图,没有地图,定位无从谈起,如同推理没有训练好的模型。
-
两者传感器硬件一模一样,都是激光雷达 + 里程计;软件算法模式切换,区分建图模式 / 定位模式。
数据流链路串联
激光雷达每一帧 scan 数据 ↓ 【建图阶段】:scan+odom → SLAM 算法 → 生成保存地图文件 ↓ 【定位推理阶段】:加载旧地图 + 实时 scan+odom → 定位算法 →输出机器人位姿 → 导航 move_base → 小车巡逻运动
补充类比细节: 建图时遇到动态行人,会在地图留下噪点,相当于训练集混入脏样本,损害 “模型质量”; 定位推理阶段遇到行人,只会临时匹配失败,不会污染地图模型。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)