J07
扫地大作战:一个角落都不放过
初中 · 7–9 年级 · 10 课时 × 40–45 分钟
核心问题:怎样用一张格子地图表示房间,并在有限步数里覆盖最多角落?
🎮 趣味玩法:扫地积分赛「一个角落都不放过」:同一房间比覆盖率与重复率,漏扫越少、重复越少得分越高。
项目目标
- 理解栅格地图、坐标与朝向
- 能记录访问状态并计算覆盖率
- 能比较蛇形、回字形两种覆盖策略
- 能用覆盖率与重复率给自己的路线打分
领域落点
AI:环境建模——把世界变成机器可计算的形式
硬件:编码器、陀螺仪、超声波、底盘
算法:二维数组、遍历、覆盖率统计
10 课时大纲
2 + 6 + 2| 课次 | 课题 / 驱动问题 | 关键知识点 | 学生任务 | 产出 |
|---|---|---|---|---|
| L01 | 开局:机器人脑子里的房间 机器人脑子里的房间长什么样? | 真实空间与地图的差别;栅格/几何/拓扑地图;分辨率与精度 | 用 20cm 方格纸手绘教室地图,标出障碍与充电座,讨论格子大小的取舍。 | 手绘栅格地图 |
| L02 | 画格子:用 0 和 1 描述房间 怎样用 0 和 1 描述房间? | 二维数组;空闲/障碍/未知;地图坐标系 | 把教室地图转成 0/1 数组,写程序统计空闲格数与障碍格数。 | 数组地图 + 统计 |
| L03 | 我在第几格:坐标与朝向 机器人怎么知道自己在第几格? | (x, y) 与朝向;前进一格的变化;转向与角度累积 | 用编码器里程推算位置,在 4×4 方格上走一圈回到原点,测量累计误差。 | 定位误差记录 |
| L04 | 点亮走过的格子 怎样知道哪里扫过了? | 访问标记;去重;地图更新时机 | 每进入一格就标记为已访问,实时显示“已扫/未扫”,并处理重复经过。 | 访问地图程序 |
| L05 | 蛇形路线:最省力覆盖 最省力的覆盖路线是什么? | 弓字形/蛇形路径;行距与车宽;边界掉头 | 实现蛇形覆盖,记录总步数、重复率与漏扫格数,画出轨迹图。 | 蛇形覆盖轨迹 |
| L06 | 回字形路线:从外向内 从外向内绕圈可行吗? | 螺旋/回字路径;边界跟随;中心收尾 | 实现回字形覆盖,与蛇形对比覆盖率、重复率和耗时。 | 回字覆盖轨迹 |
| L07 | 家具挡路:障碍与未覆盖区 有家具时怎么办? | 障碍膨胀;分区处理;补扫策略 | 在场地加入 3 个障碍,标记未覆盖区并设计补扫路线,比较补扫前后覆盖率。 | 补扫方案 |
| L08 | 算分:覆盖率与重复率 怎样证明“扫干净了”? | 覆盖率 = 已扫/可扫;重复率;统计口径 | 写覆盖率统计函数,对两种算法各跑 5 次,输出均值与方差。 | 覆盖率报表 |
| L09 | 扫地积分赛 同一张地图,谁扫得又快又全? | 多指标权衡;现场调试;异常处理 | 在含障碍的 5m×4m 场地比赛:覆盖率 60%、时间 25%、重复率 15%,现场答辩策略。 | 挑战赛成绩 |
| L10 | 算法对比:没有最好,只有合适 没有最好的算法,只有合适的算法? | 场景与算法匹配;复杂度与效果;从规则到规划 | 用一张对比表总结蛇形、回字、随机三种策略的适用场景,提出改进想法。 | 算法对比表 |
说明:本页是教程副本(大纲级),不是完整课件。完整课件、教案、学案、代码与仿真场景按学校进度单独导出。