规则概要
一分钟了解比赛
Section titled “一分钟了解比赛”你的机器人会被独自放进一座未知的迷宫。在 8 分钟内,没有你的任何帮助,它必须:
- 探索迷宫,不被卡住,也不掉进坑洞。
- 找到墙面标识,也就是墙上的受害者和认知目标,并报告每一个是什么。
- 绘制迷宫的地图,并在最后发送地图。
- 返回出发的地方。
下面的内容会详细解释这四项工作。你现在不需要全部记住:在为每个部分编程时再回来查看即可。

机器人必须自主探索一个未知的环境,同时避免陷入麻烦。主要有三项任务:
- 在复杂的迷宫中导航而不被卡住
- 准确地绘制环境地图
- 找到并识别墙面标识:字母受害者(Letter victims)和认知目标(Cognitive targets)
场地可以分为四个区域,区域之间的每条通道都是一个标准地块宽。地块(tile)是用来生成场地的概念,而不是实际存在的结构。
- 地块的大小是 12 cm × 12 cm。在区域 2 和 3 中,每个地块又被细分为四个 6 cm × 6 cm 的四分之一地块。
- 墙壁厚 1 cm,高 6 cm。
- 通道至少和机器人一样宽,并且可能通向更宽的门厅。

| 区域 | 墙壁 | 说明 |
|---|---|---|
| 区域 1 | 可以放在每个地块的边上 | 起始地块位于这个区域 |
| 区域 2 | 可以放在每个四分之一地块的边上 | |
| 区域 3 | 可以放在每个四分之一地块的边上 | 90° 的拐角可以被做成四分之一圆的弧形 |
| 区域 4(可选) | 不基于地块;墙壁和障碍物可以任意放置 | 可能包含箱子等物体,并且可能需要斜向移动 |
区域之间的通道
Section titled “区域之间的通道”通道是两侧有墙的单个地块,因此它的入口和出口都很明确。通道地面的颜色告诉你它连接的是哪两个区域:

通道中不会放置字母受害者。
线性地块和浮动地块
Section titled “线性地块和浮动地块”始终沿着最左侧或最右侧的墙走就能通到起始地块的地块,称为线性地块(linear tiles)。其他所有地块都是浮动地块(floating tiles)。浮动地块上的标识分值更高。这里不考虑四分之一地块,而黑色的坑洞被视为虚拟的墙。

银色的地块是检查点(Checkpoint),可能位于场地上的任何位置。区域 4 中,紧接着通道之后就有检查点。发生缺乏进展后,机器人会从它最后经过的检查点重新开始。
沼泽、障碍物和坑洞
Section titled “沼泽、障碍物和坑洞”
- 沼泽(Swamp,棕色地块)会让机器人在上面时比赛时间流逝得更快。机器人第一次进入一片沼泽时,时间流逝速度变为 5 倍。每次重新进入同一片沼泽,倍数再加一,最高为 x10。
- 障碍物可能固定在地面上,可以是任何形状和颜色,并且会影响通道的宽度。在区域 1 到 3 中,障碍物的中心总是位于地块上,而不会位于地块之间的边上,并且每个地块上最多只有一个障碍物。
- 坑洞有黑色的边缘。如果机器人掉进坑洞,就会发生缺乏进展。
任何一个地块都不会同时属于以下多种类型:沼泽、坑洞、检查点、起始地块、有障碍物的地块,或区域之间的通道。
墙面标识有两种:字母受害者和认知目标。两者都可能出现在任何墙上,包括弧形的墙面。字母受害者还可能被旋转成任意角度。

字母受害者(Letter victims)是 2 cm × 2 cm 的图片。符号表示受害者的健康状态,代码一栏中的字母是你要报告并写进地图的代码。
| 状态 | 符号 | 代码 |
|---|---|---|
| 受伤(Harmed) | Φ | H |
| 稳定(Stable) | Ψ | S |
| 未受伤(Unharmed) | Ω | U |

有些墙面标识显示的是同样的符号,但字母是立体的。它们是假受害者(Fake victims):不能把它们报告给 Supervisor,也不能把它们画进地图。规则规定,可以用 Robot Customizer 中提供的某一种传感器检测出这种深度。

认知目标(Cognitive targets)代表危险品(hazmat)。它们是直径 5 cm 的圆形,由五个同心部分组成,直径分别为 1、2、3、4 和 5 cm。每种颜色都有一个数值:
| 黑 | 红 | 黄 | 绿 | 蓝 |
|---|---|---|---|---|
| -2 | -1 | 0 | 1 | 2 |
把五个部分的数值全部相加,就能得到类型。如果和不在下表中,这个目标就是假的,不能报告,也不能画进地图。
| 和 | 危险品 | 代码 |
|---|---|---|
| 0 | 易燃气体(Flammable Gas) | F |
| 1 | 毒性物质(Poison) | P |
| 2 | 腐蚀性物质(Corrosive) | C |
| 3 | 有机过氧化物(Organic Peroxide) | O |
相邻的同色圆环不会被合并:即使颜色重复,也总是要把五个部分都算上。

左边的目标从中心向外依次是黄、蓝、红、黑、绿:0 + 2 - 1 - 2 + 1 = 0,所以它是易燃气体(F)。右边的目标是蓝、黄、黑、黑、黑:2 + 0 - 2 - 2 - 2 = -4,所以它是假的。
墙面标识教程介绍了如何用摄像头读取目标。
- 各队使用组织者提供的机器人模型,并可以在 3000 的预算内用 Robot Customizer 对它进行定制。请参阅获取机器人。
- 机器人可以使用 GPS、颜色传感器、距离传感器、RGB 摄像头、激光雷达(LiDAR)、陀螺仪和加速度计。
- 仿真的传感器带有真实的噪声。你的程序必须能够应对噪声,而且组织者在比赛中不会改变噪声水平。
- 机器人必须是自主的。每支队伍在场地上只有一个机器人。
- 禁止事先绘制地图(pre-mapping):这既包括场地,也包括墙面标识的位置,还包括根据已知位置预先设定的动作。违反者会被立即取消该轮比赛的资格。
进行一场比赛
Section titled “进行一场比赛”- 一场比赛持续 8 分钟仿真时间。另一个计时器按真实时间计时,上限为 10 分钟。任意一个计时器到时,比赛就结束。
- 当机器人的中心位于某个地块内时,该地块就算作已访问。Erebus 会自动做出这个判断。
- 当机器人发送退出命令时,或者当队长宣布结束比赛时(取决于比赛的执行方式),比赛也会结束。
- 比赛用的世界在比赛开始前才公布,而且每一轮的截止时间过后,程序就不能再修改。
以下情况会发生缺乏进展(Lack of progress,LoP):
- 机器人掉进了坑洞。
- 机器人在同一位置停留 20 秒或更长时间(自动触发)。
- 裁判判定机器人虽然没有静止,但陷入了重复的动作中无法脱身。
- 机器人自主请求。
- 在其他情况下,队长可以提出请求,由裁判做出最终决定。根据比赛的执行方式,这一条可能不适用。
之后,机器人会被放回它最后经过的检查点;如果它从未到达过检查点,就放回起始地块。机器人的朝向不能选择。Erebus 还会向机器人发送字母 L,以便你的程序做出反应。
计分由 Erebus 自动完成。奖励不会重复计算:例如,每个检查点只有第一次经过时才得分。
要识别一个墙面标识,机器人必须停止至少 1 秒,然后把类型和位置发送给比赛管理器。机器人的中心与标识的距离不能超过半个地块。
| 项目 | 分数 |
|---|---|
| 在区域 1 到 3 的线性地块上识别墙面标识(TI) | 字母受害者:5,认知目标:10 |
| 在区域 1 到 3 的浮动地块上识别墙面标识(TI),以及区域 4 中的所有标识 | 字母受害者:15,认知目标:30 |
| 类型正确(TT),在 TI 之外额外得分 | 字母受害者:10,认知目标:20 |
| 经过检查点(CN) | 10 |
| 墙面标识误判(TMI) | -5 |
| 缺乏进展(LoP) | -5 |
总分不会低于零。误判是指:报告的位置距离标识超过半个地块、在没有标识的地方报告了标识,或者把字母受害者报告成认知目标(反之亦然)。报告假标识属于第二种情况。
区域乘数(Area multipliers,AM):在区域 1、2、3、4 中,TI、TT 和 CN 分别乘以 1、1.25、1.5 和 2。TMI 和 LoP 不乘以乘数。
离场奖励(Exit bonus,EB):如果机器人已经识别出至少一个墙面标识,回到起始地块并发送退出命令,得分会增加 10%。
地图奖励(Mapping bonus,MB):机器人可以提交迷宫的地图。乘数为正确率 × 1.2 + 1,所以一张完美的地图能让得分乘以 2.2。请参阅地图规则。
一场比赛的场地得分按如下方式计算:

例如,取得以下成绩的一轮比赛得分为 2680.15 分:

如何准备、需要提交的文档材料、比赛设置和最终得分,请参阅赛前准备。
现在你已经知道你的机器人需要做什么了,接下来获取你的机器人。
