目录
攻击与检测
弹丸参数
增益点增益
升级效果
击打检测
涂装要求
裁判系统
机器人端各模块
赛事引擎各部分
客户端
服务器
能量机关
小能量机关
大能量机关
算法归纳
攻击与检测
弹丸参数
如图所示,赛场中我们使用的弹丸有两种口径:42mm和17mm
![](https://img-blog.csdnimg.cn/18648d07534e40c6a3e795d243ca946d.png)
只有英雄机器人可以使用42mm弹丸,其中英雄和哨兵机器人都可以使用两个发射机构
不同的弹丸击打不同的对象造成的伤害也不同
![](https://img-blog.csdnimg.cn/a35f28d188ba41fcbde7d3d1f800703e.png)
增益点增益
比赛中,红蓝双方采用的都是相同的弹丸,但是双方的射击速度不同,射速越快,同时间内造成的伤害值就越高。为了衡量射速,robomaster提出了枪口热量这一概念。具体规则如下:
设定机器人的枪口热量上限为
Q
0
,当前枪口热量为
Q
1
,裁判系统每检测到一发
17mm
弹丸,当前枪口热量 Q
1
增加
10
(与
17mm
弹丸的初速度无关)。每检测到一发
42mm
弹丸,当前枪口热量
Q
1
加
100(与42mm 弹丸的初速度无关)。枪口热量按 10Hz 的频率结算冷却,每个检测周期热量冷却值 = 每秒冷却值/ 10。
惩罚机制是先干扰再扣血:
若
Q
1
> Q
0
,该机器人对应操作手电脑的第一视角可视度降低。直到
Q
1
< Q
0
,第一视角才会恢复正 常。客户端的第一视角如下所示:
若
2Q
0
> Q
1
> Q
0
,每
100 ms
扣除血量
= ((Q
1
- Q
0
) / 250) / 10 *
上限血量。扣血后结算冷却。
若
Q
1
≥ 2Q
0
,立刻扣除血量
= (Q
1
- 2Q
0
) / 250 *
上限血量。扣血后令
Q
1
= 2Q
0
。
为了提高枪口热量冷却,我们需要增益点来为我们提供buff。
官方在场地俯视图中为我们标出了增益点
![](https://img-blog.csdnimg.cn/469113ccccad4cf3a4ae498519ddaf85.png)
这是我们可以占领的增益点:
![](https://img-blog.csdnimg.cn/009fdfe584c945dfa711c32c73ffb10c.png)
每个增益点有不同的增益类型,具体可分为以下几类:
- 基地增益点只可由己方机器人占领。占领己方基地周围六边形区域的机器人可获得 50%防御增益和 3 倍枪口热量冷却增益
- 占领高地增益点区域的机器人可获得 5 倍枪口热量冷却增益。若一方机器人占领某区域的高地增益点,另一方机器人无法同时占领
- 触发飞坡增益的机器人可获得: 50%防御增益,持续时间为 20 秒;缓冲能量增加至 250J;3 倍枪口热量冷却增益,持续时间为 20 秒
- 在己方前哨站未被击毁的情况下,占领己方前哨站增益点区域的机器人可获得 5 倍枪口热量冷却增益
- 一方机器人占领己方能量机关激活点区域并持续停留 3 秒以上,则己方能量机关进入正在激活状态,且占领该区域的机器人获得 5 倍枪口热量冷却增益
- 占领资源岛增益点的工程机器人可获得 50%防御增益
- 当英雄机器人占领己方英雄 机器人狙击点时,该机器人的 42mm 弹丸对对方基地的伤害值将会获得 2.5 倍增益,且每发出 1 发 42mm 弹丸时,可获得 10 枚金币奖励
升级效果
我们通过升级发射机构也能做到提升枪口热量冷却的效果
![](https://img-blog.csdnimg.cn/44f90ef568ea4eeca6d5ddff69131411.png)
击打检测
只是提升了弹丸出膛的性能还不够,必须准确击打在装甲板上并被检测成功才能造成伤害。
飞镖检测模块通过装甲模块结合光电管检测飞镖攻击,可以检测飞镖和 42mm 弹丸的攻击,其中检测飞镖攻击的最小检测间隔为 1000ms。 装甲模块通过压力传感器并结合装甲板震动频率检测弹丸攻击,最小检测间隔为 50ms(使用 42mm 弹丸击打装甲模块时,检测间隔最高可能延长至 200ms)。弹丸需以一定的速度接触装甲模块受攻击面才能被有效检测。实际比赛中,由于弹丸速度衰减和入射角度非装甲模块受攻击面法向,接触到装甲模块受攻击面的弹丸的法向速度与弹丸射击初速度不同。伤害检测以弹丸接触装甲模块受攻击面的速度法向分量为准。
装甲模块对不同类型弹丸的有效检测速度范围如下表所示:
![](https://img-blog.csdnimg.cn/7c3ddb5de5bd4ff1a94843afa0922d1a.png)
其中大装甲模块仅存在于基地
![](https://img-blog.csdnimg.cn/fd8829ce10304e05bc0284bb40b9bf8a.png)
小装甲模块则是位于基地和前哨站上部,和飞镖检测传感器、飞镖引导灯一同组成了组成飞镖检测模块
![](https://img-blog.csdnimg.cn/e6cebd85d6d148ecb2d571bf631df5c8.png)
三角装甲模块也是两者皆有
基地
![](https://img-blog.csdnimg.cn/a0a033e4d32d47fda86325c38e3b3d2f.png)
前哨站
我们再来看一下击打机器人的效果
这是机器人的装甲板位置示意图,击打参数与建筑保持一致
根据各方开源的算法,一般来说,机器人在受到攻击后会进入“小陀螺”状态,通过高速旋转避开更多的攻击
涂装要求
看到这里。有的同学可能会想,我打不过还躲不过吗,我设计一套让对方识别不出来的装甲不就行了吗。其实,规则在这里也有着很大限制。
裁判系统装甲模块两侧有明显的灯光效果供机器人自动识别瞄准算法的开发。
设计机器人视觉特征时需遵循以下规范:
- 不可遮挡装甲模块
- 不得使用任何手段干扰装甲模块视觉特征的识别
为机器人粘贴装甲贴纸时需遵循以下规范:
- 机器人装甲贴纸与机器人编号按照规则对应,数字与符号方向正确,无明显气泡,一个装甲模块贴一 张装甲贴纸
- 除组委会提供的专属装甲贴纸,不可在机器人的装甲模块或其它外观结构上粘贴形似专属装甲贴纸的
安装激光瞄准器时需遵循以下规范:
- 激光瞄准器发射的激光颜色必须为红色,光功率小于 35mW,且激光瞄准器的投射角不大于 5°
- 每个发射机构最多配置一个激光瞄准器。工程机器人允许安装不超过 3 个激光瞄准器。除用于发射机构辅助定位外,其他机器人不得使用额外的激光瞄准器
- 除激光瞄准器外,工程机器人还可安装白色补光灯和不大于 7 寸的显示屏,且只可在获取可移动道具时使用白色补光灯增强视觉识别特征。显示屏不得干扰机器人的视觉特征。其它机器人不得安装其它明显的可见光发射设备
设计与制作机器人外观时需遵循以下规范:
裁判系统
什么规则都没有裁判的监管来得更直接,这里我将对裁判系统进行一个简单的介绍。
裁判系统是一个全自动的电子判罚系统,具有检测被弹丸攻击、显示机器人当前血量和状态、监测机器人底盘运动功率等功能。测速模块可以监测机器人发射弹丸的初速度与射速,相机图传模块可以为用户提供机器人第一人称视角,场地交互模块可以与场地交互数据,定位模块可以获取机器人在战场上的位置信息。
裁判系统由以下两部分组成:
1.裁判系统机器人端(下文统称为机器人端)
2.赛事引擎软件,赛事引擎包括服务器和客户端
机器人端各模块
1)主控模块(MCO2):主控模块是裁判系统的核心控制单元,可以监控整个系统的运行状态、集成人机交互、无线通信、状态显示等功能。
2)电源管理模块(PMO2):电源管理模块有控制机器人的底盘、云台、发射机构电源,数据转发,检测底盘功率,血量为零时则自动切断动力电源等功能。
3)灯条模块(LI01 ):灯条模块具有显示机器人当前血量和状态的功能。通过观察灯条效果,用户可直观判断机器人当前剩余血量以及所处的状态。
4)装甲模块(AMO28AM12):装甲模块用于检测机器人被弹丸攻击及碰撞的情况,分为小装甲模块和大装甲模块。
5)测速模块(SMO1&SM11 ):用于检测机器人发射弹丸的初速度和射速,分为17mm测速模块和42mm测速模块。
6)场地交互模块( FIO2):用于机器人端与场地进行数据交互。
7)相机图传模块(VTO2&VT12):相机图传模块为用户提供第一人称视角,分为相机图传模块发送端和相机图传模块接收端。相机图传模块的发送端安装于机器人端,相机图传模块的接收端安装于客户端。
8)定位模块( UWO1):定位模块可以获取机器人在战场的位置信息。
![](https://img-blog.csdnimg.cn/80b3ec4b58e34690b178c0195da7ebcf.png)
赛事引擎各部分
客户端
客户端为选手的第一视角操作应用程序,连接自建服务器或者比赛服务器后,可通过第一视角查看裁统上传的机器人相关数据,如机器人当前血量、弹丸实时射击初速度、射速、比赛战场小地图、实时功率输出、队友信息等。
![](https://img-blog.csdnimg.cn/f134869009c24245a7b43d116b9aeb49.png)
服务器
服务器是整个裁判系统的核心运算与处理中心,服务器收集比赛过程中所有机器人、比赛战场机关、客户端的数据信息,通过可视化UI界面呈现给裁判人员,并根据比赛规则自动判定比赛胜负。服务器UI界面是裁判人员用于监控官方设备与参赛机器人状态的显示界面,裁判人员可以通过UI界面了解机器人与场地道具实时状态,根据规则对机器人进行判罚、对比赛中的异常情况进行处理。
能量机关
特此声明,这一部分节选自我的另一篇文章,不存在抄袭现象。
机器人可通过弹丸击打的方式激活能量机关,激活能量机关后,该方所有存活机器人会获得一定增益。红方队伍仅可激活红方能量机关,蓝方队伍仅可激活蓝方能量机关,双方可同时击打能量机关。能量机关状态可分为五种状态:不可激活、可激活、正在激活、已激活和激活失败
1. 比赛开始的第一、四分钟内 和能量机关增益效果结束后的30 秒内,能量机关处于不可激活状态
2. 比赛开始一分钟后至第三分钟 、比赛开始四分钟后 ,能量机关处于可激活状态
3.1 当能量机关进入可激活状态时,除工程机器人外的地面机器人占领己方能量机关激活点区域并持续停留 3 秒以上,则己方能量机关进入正在激活状态
3.2 能量机关随机点亮 5 个装甲模块中的任意一个,同时支架呈现灯效。若弹丸在 2.5 秒内击中该装甲模块,该支架会被完全点亮。与此同时,能量机关随机点亮其余四个装甲模块中的任意一个,以此类推
4. 若五个支架全部点亮,此时能量机关处于已激活状态
5. 激活过程中,若未能在 2.5 秒内击中随机点亮的装甲模块或击中非随机点亮的装甲模块,则此次激活失败,能量机关重置正在激活状态
按照时间顺序,能量机关又分为两个阶段:小能量机关和大能量机关
![](https://img-blog.csdnimg.cn/43cf03fc22bb48548a71f2c09d1e1a06.png)
小能量机关
比赛开始一分钟后至第三分钟,能量机关开始旋转,进入可激活状态。此时红蓝双方能量机关共轴旋转,即红方能量机关顺时针旋转时,蓝方能量机关相应地逆时针旋转。每局比赛开始前,能量机关旋转方向随机。该局比赛中,能量机关旋转方向保持一致, 小能量机关的转速固定为 10RPM。若一方小能量机关进入已激活状态,另一方小能量机关恢复为不可激活状态。一方机器人成功激活小能量机关后,该方所有机器人获得防御增益,防御增益失效后,在增益持续时间内对对方机器人造成的累计伤害将转化为经验,平均分给当时存活的全队机器人。
这是今年8月官方的实物展示 https://www.bilibili.com/video/BV1YB4y1571j/?share_source=copy_web&vd_source=f1156886732822e9a7798b135a874b06
大能量机关
比赛开始四分钟后 ,能量机关开始旋转,进入可激活状态。此时大能量机 关的每个装甲模块被划分为 1-10 环,如下图所示
![](https://img-blog.csdnimg.cn/02ccfe26f044496ea65eb668dc2bc392.png)
击打的环数越高,得到的攻击力增益和防御增益就越高。与小能量机关不同的是,一方激活能量机关后,另一方并不会立即恢复为不可激活状态,而是保持可激活状态,持续时间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值,将数据导入跟踪预测算法,使云台相机能够及时跟踪旋转轨迹,之后识别发光的装甲模块,尽可能瞄准装甲模块的中心位置进行击打,而且由于他的后来者居上设定,即使打得很快,如果环数太少,也很容易被对方轻松反超,所以在编写识别算法时,要突出一个稳字,必要时舍弃一部分速度追求更高的精度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)