问题
策略的输入里有覆盖染色图、障碍图、frontier 图,全部以机器人为中心。 那要不要再加两个数,告诉它「你现在在整层楼的 (x, y) 处」?
一句话答案
不加。位置不是不给,是用图给、不用数字给。
三个理由
① 图里已经有了。 所有输入都是以车为中心、车头朝上裁出来的。 站在 A 点和 B 点,裁出来的图完全不同——「裁在哪儿」本身就唯一确定了你在哪儿。 再喂两个坐标是同一个信息说两遍。
② 喂坐标会让网络背地图。 给了绝对坐标,网络可能学成 「到了 (12, 47) 就左转」。这栋楼里刷得挺好,换一栋楼直接废。 图上画的是「周围有什么」,任何楼里都通用。
③ 覆盖任务本来就是平移不变的。 「扫旁边那块没扫的」这个决策, 和你在楼里哪个角落没有关系。
论文怎么说
ICML 2024 的覆盖路径规划工作(Jonnarth, Zhao & Felsberg)在 §3.3 明确讨论过这件事:
用自车坐标系的图来编码位姿,让智能体直接把观测对应到动作, 而不必去学一个从「单独的位置特征表示」到动作的额外映射—— 并点名对比了 Theile et al. 2020 用「2D one-hot 位置图」来表示位置的做法。
也就是说这不是没人想过,是比较过之后选择不给。
那全局信息从哪来
靠多尺度:同一份地图裁多次,范围逐级放大、分辨率逐级降低,图的尺寸不变。
| 级 | 视野边长 | 每格 | 看什么 |
|---|---|---|---|
| 1 | 11.2 m | 0.05 m | 桌腿、门槛 |
| 2 | 44.8 m | 0.20 m | 整层楼还剩哪片没扫 |
最粗那一级就是「你在楼里哪儿」——只不过是画出来的,不是写成坐标的。
这也不是可选优化。论文附录 A.1 专门论证多尺度的必要性:
| 覆盖范围 | 训练单步耗时 | |
|---|---|---|
| 4 级多尺度 | 76.8 × 76.8 m | 40 ms |
| 单尺度(同最细分辨率) | 19.2 × 19.2 m | 2500 ms |
范围小 4 倍,耗时却多 60 倍,再往大走显存就爆了。
还有个配套机制:粗尺度上「一片区域覆盖率低」是有歧义的—— 可能是没扫过,也可能那儿本来就是障碍物。所以要让 frontier 跨尺度传递: 细尺度上算出 frontier 点,粗尺度上「格子里只要含 frontier 点就标为 frontier」。 这样「还有没扫的地方」在任何尺度都不会丢。
一句话收尾
不给坐标,不是少给了信息,是换了一种更好用、也更能迁移的给法。
参考
- Jonnarth, Zhao & Felsberg. Learning Coverage Paths in Unknown Environments with Deep Reinforcement Learning. ICML 2024, PMLR 235:22491–22508 (论文 · arXiv:2306.16978 · 代码)
- Theile et al. 2020(论文中作为「单独喂位置特征」的对照)
