S03
SLAM:建图与定位
高中 · 10–12 年级 · 10 课时 × 40–45 分钟
核心问题:没有地图、也不知道自己在哪,机器人如何同时解决两个问题?
项目目标
- 理解占据栅格、扫描匹配与粒子滤波定位
- 能使用 ROS 2 SLAM 工具完成建图与导航
- 能评估地图质量与定位鲁棒性
领域落点
AI:环境表征与不确定性管理
硬件:激光雷达/深度相机、IMU、编码器底盘
算法:占据栅格、扫描匹配、粒子滤波、图优化
10 课时大纲
2 + 6 + 2| 课次 | 课题 / 驱动问题 | 关键知识点 | 学生任务 | 产出 |
|---|---|---|---|---|
| L01 | 定位问题定义 “我在哪”为什么难? | 全局/局部定位;环境对称与歧义;不确定性表示 | 在对称走廊场景讨论定位歧义,画出概率分布示意,明确 SLAM 的问题边界。 | 问题分析图 |
| L02 | 占据栅格建图 一格“有障碍”的概率怎么算? | 对数几率更新;栅格分辨率;未知区域 | 实现简单的占据栅格更新,用一维雷达模拟数据生成小地图。 | 栅格建图程序 |
| L03 | 扫描匹配 两帧雷达怎样对齐? | ICP/相关性匹配;初值敏感性;最近邻搜索 | 实现 2D 点云最近邻 ICP,比较不同初值下的收敛结果。 | ICP 实验 |
| L04 | 粒子滤波定位 用一群“猜测”逼近真实位置 | 粒子表示与权重;重采样;粒子耗尽问题 | 在已知地图上实现 200 粒子定位,记录收敛时间与失败场景。 | 粒子滤波 demo |
| L05 | 图优化 SLAM 把轨迹和地图一起优化 | 位姿图;约束与残差;后端优化(g2o/Ceres 概念) | 用 slam_toolbox 建图,导出位姿图,讨论回环约束的作用。 | 建图结果 + 位姿图 |
| L06 | 回环检测 走回原点时怎样“认出来”? | 场景描述子;回环候选与验证;错误回环的代价 | 设计一段含回环的路线,对比开/关回环检测的地图闭合误差。 | 回环对比图 |
| L07 | 地图保存与加载 地图怎样跨会话复用? | map_server 与 YAML;分辨率/原点;地图版本管理 | 保存地图并在下次启动时加载,验证同一路径的定位一致性。 | 地图包 + 验证 |
| L08 | 多场景建图 换一个房间还能用吗? | 场景差异;参数整定;建图失败排查 | 在教室、走廊、有玻璃门三种场景建图,记录失败模式与参数调整。 | 多场景报告 |
| L09 | 鲁棒性评估 怎样量化“地图好不好”? | 覆盖率/闭合误差/定位成功率;动态障碍;长走廊退化 | 设计 5 项评估指标,对 3 次建图打分并排序,找出最弱环节。 | 评估矩阵 |
| L10 | 汇报 把 SLAM 讲给不懂的人听 | 可视化表达;关键取舍;工程经验 | 用 6 页 PPT 讲清“建图—定位—评估”,并用一段视频展示失败与修复。 | 汇报 PPT |
说明:本页是教程副本(大纲级),不是完整课件。完整课件、教案、学案、代码与仿真场景按学校进度单独导出。