目录
攻击与检测
弹丸参数
增益点增益
升级效果
击打检测
涂装要求
裁判系统
机器人端各模块
赛事引擎各部分
客户端
服务器
能量机关
小能量机关
大能量机关
算法归纳
如图所示,赛场中我们使用的弹丸有两种口径:42mm和17mm
只有英雄机器人可以使用42mm弹丸,其中英雄和哨兵机器人都可以使用两个发射机构
不同的弹丸击打不同的对象造成的伤害也不同
比赛中,红蓝双方采用的都是相同的弹丸,但是双方的射击速度不同,射速越快,同时间内造成的伤害值就越高。为了衡量射速,robomaster提出了枪口热量这一概念。具体规则如下:
为了提高枪口热量冷却,我们需要增益点来为我们提供buff。
官方在场地俯视图中为我们标出了增益点
这是我们可以占领的增益点:
每个增益点有不同的增益类型,具体可分为以下几类:
我们通过升级发射机构也能做到提升枪口热量冷却的效果
只是提升了弹丸出膛的性能还不够,必须准确击打在装甲板上并被检测成功才能造成伤害。
飞镖检测模块通过装甲模块结合光电管检测飞镖攻击,可以检测飞镖和 42mm 弹丸的攻击,其中检测飞镖攻击的最小检测间隔为 1000ms。 装甲模块通过压力传感器并结合装甲板震动频率检测弹丸攻击,最小检测间隔为 50ms(使用 42mm 弹丸击打装甲模块时,检测间隔最高可能延长至 200ms)。弹丸需以一定的速度接触装甲模块受攻击面才能被有效检测。实际比赛中,由于弹丸速度衰减和入射角度非装甲模块受攻击面法向,接触到装甲模块受攻击面的弹丸的法向速度与弹丸射击初速度不同。伤害检测以弹丸接触装甲模块受攻击面的速度法向分量为准。
装甲模块对不同类型弹丸的有效检测速度范围如下表所示:
其中大装甲模块仅存在于基地
小装甲模块则是位于基地和前哨站上部,和飞镖检测传感器、飞镖引导灯一同组成了组成飞镖检测模块
三角装甲模块也是两者皆有
基地
前哨站
我们再来看一下击打机器人的效果
这是机器人的装甲板位置示意图,击打参数与建筑保持一致
根据各方开源的算法,一般来说,机器人在受到攻击后会进入“小陀螺”状态,通过高速旋转避开更多的攻击
看到这里。有的同学可能会想,我打不过还躲不过吗,我设计一套让对方识别不出来的装甲不就行了吗。其实,规则在这里也有着很大限制。
安装激光瞄准器时需遵循以下规范:
设计与制作机器人外观时需遵循以下规范:
1)主控模块(MCO2):主控模块是裁判系统的核心控制单元,可以监控整个系统的运行状态、集成人机交互、无线通信、状态显示等功能。
2)电源管理模块(PMO2):电源管理模块有控制机器人的底盘、云台、发射机构电源,数据转发,检测底盘功率,血量为零时则自动切断动力电源等功能。
3)灯条模块(LI01 ):灯条模块具有显示机器人当前血量和状态的功能。通过观察灯条效果,用户可直观判断机器人当前剩余血量以及所处的状态。
4)装甲模块(AMO28AM12):装甲模块用于检测机器人被弹丸攻击及碰撞的情况,分为小装甲模块和大装甲模块。
5)测速模块(SMO1&SM11 ):用于检测机器人发射弹丸的初速度和射速,分为17mm测速模块和42mm测速模块。
6)场地交互模块( FIO2):用于机器人端与场地进行数据交互。
7)相机图传模块(VTO2&VT12):相机图传模块为用户提供第一人称视角,分为相机图传模块发送端和相机图传模块接收端。相机图传模块的发送端安装于机器人端,相机图传模块的接收端安装于客户端。
8)定位模块( UWO1):定位模块可以获取机器人在战场的位置信息。
客户端为选手的第一视角操作应用程序,连接自建服务器或者比赛服务器后,可通过第一视角查看裁统上传的机器人相关数据,如机器人当前血量、弹丸实时射击初速度、射速、比赛战场小地图、实时功率输出、队友信息等。
服务器是整个裁判系统的核心运算与处理中心,服务器收集比赛过程中所有机器人、比赛战场机关、客户端的数据信息,通过可视化UI界面呈现给裁判人员,并根据比赛规则自动判定比赛胜负。服务器UI界面是裁判人员用于监控官方设备与参赛机器人状态的显示界面,裁判人员可以通过UI界面了解机器人与场地道具实时状态,根据规则对机器人进行判罚、对比赛中的异常情况进行处理。
特此声明,这一部分节选自我的另一篇文章,不存在抄袭现象。
机器人可通过弹丸击打的方式激活能量机关,激活能量机关后,该方所有存活机器人会获得一定增益。红方队伍仅可激活红方能量机关,蓝方队伍仅可激活蓝方能量机关,双方可同时击打能量机关。能量机关状态可分为五种状态:不可激活、可激活、正在激活、已激活和激活失败
1. 比赛开始的第一、四分钟内 和能量机关增益效果结束后的30 秒内,能量机关处于不可激活状态
2. 比赛开始一分钟后至第三分钟 、比赛开始四分钟后 ,能量机关处于可激活状态
3.1 当能量机关进入可激活状态时,除工程机器人外的地面机器人占领己方能量机关激活点区域并持续停留 3 秒以上,则己方能量机关进入正在激活状态
3.2 能量机关随机点亮 5 个装甲模块中的任意一个,同时支架呈现灯效。若弹丸在 2.5 秒内击中该装甲模块,该支架会被完全点亮。与此同时,能量机关随机点亮其余四个装甲模块中的任意一个,以此类推
4. 若五个支架全部点亮,此时能量机关处于已激活状态
5. 激活过程中,若未能在 2.5 秒内击中随机点亮的装甲模块或击中非随机点亮的装甲模块,则此次激活失败,能量机关重置正在激活状态
按照时间顺序,能量机关又分为两个阶段:小能量机关和大能量机关
比赛开始一分钟后至第三分钟,能量机关开始旋转,进入可激活状态。此时红蓝双方能量机关共轴旋转,即红方能量机关顺时针旋转时,蓝方能量机关相应地逆时针旋转。每局比赛开始前,能量机关旋转方向随机。该局比赛中,能量机关旋转方向保持一致, 小能量机关的转速固定为 10RPM。若一方小能量机关进入已激活状态,另一方小能量机关恢复为不可激活状态。一方机器人成功激活小能量机关后,该方所有机器人获得防御增益,防御增益失效后,在增益持续时间内对对方机器人造成的累计伤害将转化为经验,平均分给当时存活的全队机器人。
这是今年8月官方的实物展示 https://www.bilibili.com/video/BV1YB4y1571j/?share_source=copy_web&vd_source=f1156886732822e9a7798b135a874b06
比赛开始四分钟后 ,能量机关开始旋转,进入可激活状态。此时大能量机 关的每个装甲模块被划分为 1-10 环,如下图所示
击打的环数越高,得到的攻击力增益和防御增益就越高。与小能量机关不同的是,一方激活能量机关后,另一方并不会立即恢复为不可激活状态,而是保持可激活状态,持续时间10秒,如果在这个时间内激活能量机关,其总环数超过40且比先激活方总环数大5,则后激活方获得总环数对应的增益,先激活方的增益变为总环数 50%对应增益。
大能量机关的旋转方式也较小能量机关更为复杂,其转速按照三角函数呈周期性变化。速度目标函数为:spd = a ∗ sin( ∗ ) + ,其中 spd 的单位 为 rad/s,t 的单位为 s,a 的取值范围为 0.780~1.045,ω的取值范围为 1.884~2.000,b 始终满足 b=2.090- a。每次大能量机关进入可激活状态时,所有参数重置,其中 t 重置为 0,a 和ω重置为取值范围内任意值。
无论是能量机关的哪个阶段,都需要先占领能量机关激活点区域。对于小能量机关而言,由于其运动规律恒定,所以首要任务是识别亮起的装甲模块并进行击打,由于该增益只能一方享有,所以动如雷霆、一击即中是设计目标检测算法的重要标准。大能量机关则要稳重许多,先要根据其旋转轨迹推导出三角函数里的三个变量值,同时记录t值,将数据导入跟踪预测算法,使云台相机能够及时跟踪旋转轨迹,之后识别发光的装甲模块,尽可能瞄准装甲模块的中心位置进行击打,而且由于他的后来者居上设定,即使打得很快,如果环数太少,也很容易被对方轻松反超,所以在编写识别算法时,要突出一个稳字,必要时舍弃一部分速度追求更高的精度。