robomaster视觉规则细谈

2023-05-16

目录

攻击与检测

弹丸参数

增益点增益

升级效果

击打检测 

涂装要求 

裁判系统 

机器人端各模块

赛事引擎各部分

客户端

服务器

能量机关

小能量机关

大能量机关

算法归纳


攻击与检测

弹丸参数

如图所示,赛场中我们使用的弹丸有两种口径:42mm和17mm

只有英雄机器人可以使用42mm弹丸,其中英雄和哨兵机器人都可以使用两个发射机构

不同的弹丸击打不同的对象造成的伤害也不同

 

增益点增益

比赛中,红蓝双方采用的都是相同的弹丸,但是双方的射击速度不同,射速越快,同时间内造成的伤害值就越高。为了衡量射速,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。

官方在场地俯视图中为我们标出了增益点

 这是我们可以占领的增益点:

每个增益点有不同的增益类型,具体可分为以下几类:

 

  1. 基地增益点只可由己方机器人占领。占领己方基地周围六边形区域的机器人可获得 50%防御增益和 3 倍枪口热量冷却增益
  2. 占领高地增益点区域的机器人可获得 5 倍枪口热量冷却增益。若一方机器人占领某区域的高地增益点,另一方机器人无法同时占领
  3. 触发飞坡增益的机器人可获得: 50%防御增益,持续时间为 20 秒;缓冲能量增加至 250J;3 倍枪口热量冷却增益持续时间为 20
  4. 在己方前哨站未被击毁的情况下,占领己方前哨站增益点区域的机器人可获得 5 倍枪口热量冷却增益
  5.  一方机器人占领己方能量机关激活点区域并持续停留 3 秒以上,则己方能量机关进入正在激活状态,且占领该区域的机器人获得 5 倍枪口热量冷却增益
  6.  占领资源岛增益点的工程机器人可获得 50%防御增益
  7. 当英雄机器人占领己方英雄 机器人狙击点时,该机器人的 42mm 弹丸对对方基地的伤害值将会获得 2.5 倍增益,且每发出 1 42mm 弹丸时,可获得 10 枚金币奖励

升级效果

 我们通过升级发射机构也能做到提升枪口热量冷却的效果

 

击打检测 

只是提升了弹丸出膛的性能还不够,必须准确击打在装甲板上并被检测成功才能造成伤害。

 飞镖检测模块通过装甲模块结合光电管检测飞镖攻击,可以检测飞镖和 42mm 弹丸的攻击,其中检测飞镖攻击的最小检测间隔为 1000ms。 装甲模块通过压力传感器并结合装甲板震动频率检测弹丸攻击,最小检测间隔为 50ms(使用 42mm 弹丸击打装甲模块时,检测间隔最高可能延长至 200ms)。弹丸需以一定的速度接触装甲模块受攻击面才能被有效检测。实际比赛中,由于弹丸速度衰减和入射角度非装甲模块受攻击面法向,接触到装甲模块受攻击面的弹丸的法向速度与弹丸射击初速度不同。伤害检测以弹丸接触装甲模块受攻击面的速度法向分量为准。

装甲模块对不同类型弹丸的有效检测速度范围如下表所示:

其中大装甲模块仅存在于基地

小装甲模块则是位于基地和前哨站上部,和飞镖检测传感器、飞镖引导灯一同组成了组成飞镖检测模块 

三角装甲模块也是两者皆有

基地 

 

前哨站

 

我们再来看一下击打机器人的效果

这是机器人的装甲板位置示意图,击打参数与建筑保持一致

根据各方开源的算法,一般来说,机器人在受到攻击后会进入“小陀螺”状态,通过高速旋转避开更多的攻击

 

涂装要求 

看到这里。有的同学可能会想,我打不过还躲不过吗,我设计一套让对方识别不出来的装甲不就行了吗。其实,规则在这里也有着很大限制。

裁判系统装甲模块两侧有明显的灯光效果供机器人自动识别瞄准算法的开发。
设计机器人视觉特征时需遵循以下规范:
  • 不可遮挡装甲模块
  • 不得使用任何手段干扰装甲模块视觉特征的识别
为机器人粘贴装甲贴纸时需遵循以下规范:
  • 机器人装甲贴纸与机器人编号按照规则对应,数字与符号方向正确,无明显气泡,一个装甲模块贴一 张装甲贴纸
  • 除组委会提供的专属装甲贴纸,不可在机器人的装甲模块或其它外观结构上粘贴形似专属装甲贴纸的

 安装激光瞄准器时需遵循以下规范:

  • 激光瞄准器发射的激光颜色必须为红色,光功率小于 35mW,且激光瞄准器的投射角不大于
  • 每个发射机构最多配置一个激光瞄准器。工程机器人允许安装不超过 3 个激光瞄准器。除用于发射机构辅助定位外,其他机器人不得使用额外的激光瞄准器
  • 除激光瞄准器外,工程机器人还可安装白色补光灯和不大于 7 寸的显示屏,且只可在获取可移动道具时使用白色补光灯增强视觉识别特征。显示屏不得干扰机器人的视觉特征。其它机器人不得安装其它明显的可见光发射设备

 设计与制作机器人外观时需遵循以下规范:

  • 机器人的线路整齐、不裸露,无法避免的外露线材需用拖链、理线器等材料进行保护。
  • 机器人的外观中不得出现明显影响美观的材料,如洗脸盆、塑料瓶、瓦楞纸、床单、白色泡沫板、气垫膜等
  • 不得使用渔网作为外观设计材料,但是可以用于制作空中机器人保护罩。
  • 避免尖锐结构造成场地破坏和人员伤害
  • 机器人外观的光泽度不得大于 30Gs
  • 红方机器人保护壳颜色可使用红色系,蓝方可使用蓝色系,但不得使用对方赛队颜色,以免产生误导
  • 单个机器人外观上必须带有两个己方学校校徽或队徽,分别贴在不同方向。单个校徽或队徽的面积大小不超过 100mm*100mm。校徽或队徽需处于机器人的显眼位置,且与装甲模块侧灯的距离不小于30mm
  • 广告位应放置在机器人的左右两侧,且与装甲模块侧灯的距离不小于 30mm
  • 广告位喷绘或贴纸不可影响机器人视觉识别效果,不可发光
  • 单个机器人广告位面积大小不超过 100mm*100mm ,每台机器人最多可设置两个广告位用于赞助商露出
  • 在机器人的设计制作过程中,不得采用易碎、易脱落和不易清理的材料,如羽毛、棉絮等
  • 禁止使用任何胶类、黏性材料连接机器人与场地或场地道具

裁判系统 

什么规则都没有裁判的监管来得更直接,这里我将对裁判系统进行一个简单的介绍。
裁判系统是一个全自动的电子判罚系统,具有检测被弹丸攻击、显示机器人当前血量和状态、监测机器人底盘运动功率等功能。测速模块可以监测机器人发射弹丸的初速度与射速,相机图传模块可以为用户提供机器人第一人称视角,场地交互模块可以与场地交互数据,定位模块可以获取机器人在战场上的位置信息。
裁判系统由以下两部分组成:
1.裁判系统机器人端(下文统称为机器人端)
2.赛事引擎软件,赛事引擎包括服务器和客户端

机器人端各模块

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值,将数据导入跟踪预测算法,使云台相机能够及时跟踪旋转轨迹,之后识别发光的装甲模块,尽可能瞄准装甲模块的中心位置进行击打,而且由于他的后来者居上设定,即使打得很快,如果环数太少,也很容易被对方轻松反超,所以在编写识别算法时,要突出一个稳字,必要时舍弃一部分速度追求更高的精度。
 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

robomaster视觉规则细谈 的相关文章

随机推荐

  • 从零开始配置sublimetext(c++环境)

    安装sublime text Sublime Text Text Editing Done Right 进入官网安装 xff0c 自己选择一个路径安装即可 安装clang 43 43 编译器 clang 43 43 不知道可以查一下 xff
  • linux--磁盘管理

    目录 x1f95d 磁盘基本管理 x1f36d 添加磁盘 x1f36d 文件系统 x1f36d 磁盘分区方式 x1f349 MBR x1f349 GPT x1f36d 基本命令 x1f95d 磁盘配额 x1f336 xfs配额 x1f336
  • CSP-CCF 202112-1 序列查询 C语言 满分

    include lt stdio h gt include lt string h gt int main int n N i A B 61 0 scanf 34 d d 34 amp n amp N int sum 61 0 for i
  • 【Windows常用快捷键,建议收藏】

    Windows常用快捷键 xff0c 建议收藏 作为一名出色的程序员 xff0c 亦或者是白领工作者 xff0c 乃至正要步入社会的青年们 xff0c 以下盘点的一些快捷键 xff0c 也许能让你的日常生活工作更加便捷 高效 基本快捷方式
  • 7-1 串的模式匹配(kmp算法) 知识点+练习

    给定两个由英文字母组成的字符串 String 和 Pattern xff0c 要求找到 Pattern 在 String 中第一次出现的位置 xff0c 并将此位置后的 String 的子串输出 如果找不到 xff0c 则输出 Not Fo
  • 栈和队列(队列)_贪吃蛇

    设计一个顺序循环队列 xff0c 长度len为10 xff0c 队列中有n个元素 xff08 1 n lt 10 xff09 选择任意一个元素为蛇的头部 xff0c 队尾元素为蛇的尾部 贪吃蛇开始移动吃他前面的元素 xff0c 并追加至蛇的
  • Keil 烧录程序后没有执行

    一 概述 Kell烧录程序成功 xff0c 但是控制板并没有执行 可能有如下原因 二 原因分析及解决办法 1 Reset and Run 现象 xff1a 在这种情况 xff0c 程序烧录进去后 xff0c 并不会自动执行 xff0c 但是
  • 远程文件包含实操

    这是我第一次尝试用远程文件包含解题 xff0c 没想到成功了 首先 xff0c 在服务器上传一个木马文本 老规矩 xff0c user ini文件搞上去 xff0c 指向1 txt 1 txt里直接包含一开始上传木马文本文件的地址 然后就可
  • 输入一个0到999可带小数的数字,输出其个十百位数

    多组输入 int 表达式 xff09 指将表达式中的结果强制转换成整型 include lt stdio h gt int main double a int ge shi bai while scanf 34 lf 34 amp a ba
  • 计算2X4X6X...X100的值(上面是错解,附正解)

    include lt stdio h gt int main int a 61 2 n 61 1 sum 61 1 while n lt 61 50 n 61 n 43 1 sum 61 sum a a 61 a 43 2 printf 3
  • while循环输出100-200的所有整数

    include lt stdio h gt int main int n 61 100 while n lt 61 200 printf 34 d t 34 n n 43 43 return 0
  • 关于如何输出百分号和0.0f%的格式化字符的理解,输出结果为2.684%

    include lt stdio h gt int main int a 61 10433 b 61 280 float f1 f1 61 b 1 0 a 当乘以1 0后 xff0c 才能使算出f1是想要的结果 xff08 0 026838
  • 输入自然数后逆序输出这个数

    include lt stdio h gt int main int a scanf 34 d 34 amp a while a a不等于零时执行此循环 printf 34 d 34 a 10 a 61 a 10 return 0
  • LINUX最小系统安装过程中的Partition Disks分配问题

    问题详细描述 xff1a 在我们安装Debian最小系统 xff08 即双系统windows和linux xff09 过程中在进行内存分配时 xff0c 由于系统需要我们很多时候都得选用英文系统导致可能存在 xff1a 看不懂 不知道怎么进
  • mybatis-plus自定义多表分页查询

    mybati plus多表分页查询 首先编写VO类 xff0c VO类包含了要查询的字段值 xff0c 现在有如下几个表 blog表 span class token annotation punctuation 64 Data span
  • 【Docker学习笔记】2.Debian Docker 安装及CentOS Docker 安装

    前言 本章介绍Debian Docker 安装和CentOS Docker 安装 Debian Docker 安装 Docker 支持以下的 Debian 版本 xff1a 巴斯特 10拉伸 9 xff08 稳定 xff09 拉斯比亚拉伸
  • 超详细的操作符讲解

    操作符的分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 1 算术操作符 span class token operator 43 span span class token o
  • Ubuntu 安装中文输入法

    请注意命令中不应该的空格可能导致命令不合法 xff01 一 检查 fcitx 框架 首先 xff0c 要安装中文输入法 xff0c 必须要保证系统上有 fcitx fcitx是一个以 GPL 方式发布的输入法框架 xff0c 安装 fcit
  • 快速幂取模简单用法

    关于快速幂的用法本小白还是思索了挺久的 xff08 因为我不太聪明哈 xff09 xff0c 但是学会了就觉得挺好理解的 下面我用一道例题来简单讲一下它的用法 xff0c 希望能帮你轻松get到 xff01 xff01 例题 xff1a 快
  • robomaster视觉规则细谈

    目录 攻击与检测 弹丸参数 增益点增益 升级效果 击打检测 涂装要求 裁判系统 机器人端各模块 赛事引擎各部分 客户端 服务器 能量机关 小能量机关 大能量机关 算法归纳 攻击与检测 弹丸参数 如图所示 xff0c 赛场中我们使用的弹丸有两