本文是笔者多日来总结的2023赛季中针对上位机组的比赛规则摘要,力求一文让你看懂上位机在赛场中的飒爽身影。

目录

电力元件

电池

遥控器

激光

涂装

机器人

飞镖

雷达

空中机器人

工程机器人

哨兵机器人

英雄与步兵机器人

视觉应用

识别装甲板

算法步骤

反制与反反制

击打能量机关

小能量机关

大能量机关

算法归纳

建立多机通信


电力元件

这里依照官方文件,简要介绍一些在视觉中也起到关键作用的设备。

电池

上位机各类设备的供能主要依靠电池,其中最重要就是我们常说的“超级电容”,英文简称EDLC,有时也称为双电层电容器,是拥有高能量密度的电化学电容器,比传统的电解电容容量高上数百倍至千倍不等。比赛中大部分时候指的不仅仅是通常意义上的超级电容组,而是由其他电子器件、功能模块一起构成的组合体,规定每个机器人上只能装有一台超级电容,地面机器人的超级电容是完全一致的,其中哨兵也就是过去的自动步兵按规则要求必须装载超级电容。另外,雷达的供电采用市电标准,也就是220V50Hz。飞镖则是分为发射架和本体两部分,飞镖发射架采用电池供电,不允许使用电容,飞镖自身使用微型锂电池供电。而空中无人机是由四或六块电池组合供电。所有的元件组都由上述方式供电,除了载板外,也包括相机,陀螺仪等与上位机密切相关的元件。

遥控器

我们所有的机器人都可以配置遥控器,不同的兵种有不同的数量限制,这也是除了官方的裁判系统模块之外唯一的无线电设备,因为目前我们是没有制作自定义控制器的,这一部分用到了头戴式虚拟显示器,暂时还没有攻下这关。

我们使用的是大疆自研的DT7遥控器,如下图所示。

激光

使用激光的设备可以分为两部分,瞄准和定位。瞄准是指在机器人身上安装功率不高于35mW的红色激光进行瞄准定位,不过在这里官方建议尽量使用自定义UI去代替激光瞄准。定位是指激光雷达,赛场上常用的雷达媒介有激光,毫米波,超声波,可见光和惯性制导几种,我们采用的正是Livox激光雷达。做一些补充,除了挂载激光设备外,工程机器人还可以安装白色补光灯来增强视觉识别特征。空中机器人上需要安装指示灯来指示当前飞行状态以及安装航行外观灯来提高空中机器人辨识度。

涂装

作为视觉识别的重要依据,装甲板必须按照官方要求粘贴,不得贴有其他类似装甲板的图样或遮挡装甲板灯条。不过湖南大学的队伍提供了一个可行的思路:根据生成对抗网络训练一批和装甲板毫无相同之处却会被目标检测模型识别为装甲板的图样涂装在机器人上,来反制对方的识别算法。不过该方法利用了深度学习黑盒里的相关参数,具体实现难度较大。

机器人

这里先介绍几个特殊的机器人,其余地面机器人会在下一章节的视觉应用中有更详细的解读。

飞镖

云台手可以控制客户端操作界面,通过学生数据端口传输数据从而控制飞镖发射架,飞镖发射架作为飞镖的载体,为飞镖提供初始动力。而飞镖依靠自带的视觉系统定位作用对象,识别敌方建筑安装在飞镖检测模块上的绿色 LED 集成灯珠,通过螺旋桨、舵面、喷气等方式控制飞行方向,最终撞击作用对象实现击打效果。由于其体量小,搭载的平台运算能力弱,因此对算法要求较高。目前大部分飞镖都是在学校训练出来的开环系统,精度高,但鲁棒性差,无反馈机制,击打不中后无法自行修正轨迹。值得注意的是,即便命中敌方建筑,如果未撞击到飞镖检测模块的小装甲模块区域,也不会判定为飞镖攻击。当且仅当撞击成功引起小装甲模块的检测且飞镖触发装置发射的红外光被飞镖检测模块的红外接收装置接收时判定为飞镖攻击。

雷达

雷达由运算平台端与传感器端两部分构成,两者需通过电缆连接。雷达传感器支架被固定在距离地面3.6米高的雷达基座安装平面上,且支架自身高度在1.2米以上,提供了开阔的全局视野。运算平台端则放置于雷达基座附近的指定台面,并连接一根传往操作间的视频信号线,不允许使用无线连接。另外,若一方雷达正确识别并定位对方机器人持续超过 3 秒,则该机器人将在己方小地图上被特殊标识。

以下是雷达视角

空中机器人

为了保证机器人运行安全,空中机器人在比赛过程中需要连接安全绳。首先在机器人上安装一根高出整机桨叶重心的竖直刚性保护杆,该保护杆下端与空中机器人连接,上端与场地道具安全绳挂钩连接,安全绳的长度为 2.4 米,机器人最远飞行距离为 16 米。在空中支援时间内,空中机器人将获得第一视角画面,可以作为雷达视野的一个补充。由机制。于处于空中而非平稳的地面,该机器人的算法必须考虑更多的稳定性并构建优良的修正反馈。

工程机器人

工程机器人可以搬运矿石和障碍块,其中矿石只能由工程机器人运输,但是障碍块可以由所有地面机器人运输。矿石位于小资源岛和资源岛,资源岛为金矿石,小资源岛为银矿石。每台工程机器人最多只能安装一个矿石抓取机构,一次只能抓取一个矿石。矿石形态为正方体,内置场地交互模块卡,一面印有条形码。在下落前,含有条形码图案的一面朝下;下落后,矿石的姿态可能会与下落前不一致,含有条形码图案的一面有一定概率不朝下。因此“空中接矿”不仅方便快捷,更是省去了翻转矿石确保姿态正确的步骤。进行矿石兑换时,工程机器人需将其携带的矿石按照正确的方向,即条形码朝下,放入兑换槽,触发光电传感器后进行兑换。不过除条形码以外的其他面接触矿石识别区时,也有一定概率被场地交互模块成功识别。在这个过程中,我们需要设计识别矿石的目标检测算法,并控制机械臂进行抓取、翻转、投掷等一系列操作,新赛季设置了不同的兑换难度,难度升高,兑换槽的位姿变换越复杂,我们也可以通过开发算法来求解兑换槽位置。障碍块全场共有两块,其夹取算法的设计与矿石识别算法如出一辙。通过移动障碍块,我们可以改变战场的地形来阻挡对手的推进或保护我方机器人。另外,工程机器人还有一个很重要的作用,就是复活阵亡机器人。除去远程兑换复活,常用的复活方式一般有两种,一是工程机器人将其拖回基地旁的补血点,也被称作”回家复活“,或是让工程机器人所携带的复活卡即RFID射频卡和其他机器人上的场地交互模块接触,这样被称作是“刷卡复活”。在这两种情况下,我们都可以通过编写视觉算法来实现快速准确救援。为了增强识别性能,除了传统的装甲板识别外,还可以在工程机器人的救援机构旁安装相机,并在其他机器人上粘贴二维码、ArUco等不会影响到正常的灯条检测的特殊识别物,通过算法识别该特征从而对应采取救援行动。

哨兵机器人

哨兵机器人需全自动运行,负责守护己方基地,有点像以前的自动步兵,不过常态下活动范围还在哨兵巡逻区。哨兵的权重很大,不仅仅是超高的基础属性,还有能搭载两个发射机构,在前哨站未被摧毁的情况下处于无敌状态等等。但是极高的性能意味着哨兵研发的艰难。由于没有操作手,机器人进行的所有移动、攻击等动作都交由人工智能来完成。为了定位,哨兵需要搭载slam来构建三维地图得到位置信息,为了移动,哨兵需要在位置信息的基础上进行路径规划;为了进攻,哨兵应该识别敌方目标并自行瞄准射击……总而言之,哨兵应该具备一套自主决策系统,判断当前局势并做出应对。

英雄与步兵机器人

这两种机器人主要用于正面作战,即占领增益区,攻击敌方机器人和建筑,击打能量机关,保护己方建筑不被摧毁等。区别是英雄机器人是战场上唯一可以发射 42mm 弹丸的机器人,其属性也高于步兵机器人,而且场地中存在英雄机器人独有的狙击点,可以提高英雄机器人的弹丸伤害。因为这两种机器人活动空间大,活动时间长,所以与之配套的视觉算法主要是目标检测和图传定位,操作手可以通过屏幕来实时了解机器人状态,并制定下一步行动方案。

视觉应用

介绍完各个兵种的独特效用后,我们来总结一下上位机在赛场中的几个关键应用,这部分主要围绕地面的进攻型机器人来展开。

识别装甲板

算法步骤

装甲板的识别算法主要有传统和深度两种,传统算法的步骤如下

  1. 图像预处理,如降低曝光,尺寸变换等
  2. 对图像进行二值化操作,并采用腐蚀膨胀等方法强化特征
  3. 提取灯条轮廓,再根据长宽比、面积大小和凸度等约束条件来筛选灯条
  4. 配对灯条作为候选装甲板,经过坐标变换算法确定击打区域
  5. 输出目标信息,返回制导模块进行打击

深度则是采用了YOLOV5模型进行目标检测,处理深度相机Intel RealSense D435i输入的实时视频信号,检测并判断装甲板位置及所属情况,之后输出到制导模块进行打击。

反制与反反制

而在赛场中,识别到装甲板并进行击打只是第一层,由于赛场上机器人运动速度较快,再加上相机摄取图像经过识别算法处理传给下位机时存在延迟,因此要开发先验算法,对位置信息作出修正并预测对方的下一步行动轨迹,在此之上为了防止对方识别到己方装甲板,许多队伍采用云台底盘分离,高速自转的方法,这种方法被形象地称为“小陀螺”,为了对抗小陀螺,又开发了识别对方是否在旋转下的算法,使枪口始终锁定对方装甲板一点并按照一定频率进行击打,又为了对抗该算法,有些队伍就在结构上下文章,使得中心点变固定为旋转,装甲板做偏心转动,在此之上。还有很多很多……

这里提供一个训练击打小陀螺的视频 https://www.bilibili.com/video/BV1Wt4y1W7cG/?share_source=copy_web&vd_source=f1156886732822e9a7798b135a874b06

击打能量机关

机器人可通过弹丸击打的方式激活能量机关,激活能量机关后,该方所有存活机器人会获得一定增益。红方队伍仅可激活红方能量机关,蓝方队伍仅可激活蓝方能量机关,双方可同时击打能量机关。能量机关状态可分为五种状态:不可激活、可激活、正在激活、已激活和激活失败
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(

Robomaster上位机视觉摘要——比赛规则篇相关推荐

  1. RoboMaster机甲大师——视觉组——总结、未来期望与比赛经验分享

    RoboMaster机甲大师--视觉组--总结与未来期望 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 入坑指南 各兵种需要的视觉: 步兵-每年必备 ...

  2. 用matlab结合STM32作上位机,基于stm32智能小车视觉控制导航的设计参考.pdf

    第 25 卷 第 9 期 电子设计工程 2017 年 5 月 Vol.25 No.9 Electronic Design Engineering May. 2017 基于STM32 智能小车视觉控制导 ...

  3. LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服

    LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉 和DSC模块. 因给的是LabV ...

  4. LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动 ,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服

    LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉 和DSC模块. 因给的是LabV ...

  5. LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉

    LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉 和DSC模块. 因给的是LabV ...

  6. LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位

    LabVIEW编的上位机控制汇川PLCH5U和汇川伺服运动,海康威视相机视觉对位,LabVIEW通过网口控制汇川H5U和Ethercat伺服,LabVIEW需要装视觉 和DSC模块. 因给的是LabV ...

  7. eigen 编译_OpenCV+Eigen上位机程序移植(七十一)

    1.给硬盘分区 现在小伙伴们对于给电脑硬盘分区想必比较头疼,给电脑硬盘分区分为两种情况,一是在安装系统之前给系统硬盘分区,二是在安装系统之后给硬盘分区,我们现在购买的品牌机和笔记本的用户比较多,而且笔 ...

  8. c语言如何控制上位机界面大小,电机上位机控制及界面设计参考.doc

    电机上位机控制及界面设计参考 PAGE 1 电机上位机控制及界面设计 吴牛俊 (自动化与电气工程学院 指导教师:周克宁) 摘要:随着计算机.电子.通讯技术的飞速发展,人们对于车间现场设备的运行管理控制 ...

  9. eigen库安装_OpenCV+Eigen上位机程序移植(七十一)

    1.给硬盘分区 现在小伙伴们对于给电脑硬盘分区想必比较头疼,给电脑硬盘分区分为两种情况,一是在安装系统之前给系统硬盘分区,二是在安装系统之后给硬盘分区,我们现在购买的品牌机和笔记本的用户比较多,而且笔 ...

最新文章

  1. Button的使用(五):从xml中加载
  2. Spark详解(二):Spark完全分布式环境搭建
  3. hadoop jetty的应用
  4. java8 collect 类型转换_Java 8 新特性 Stream类的collect方法
  5. 算法入门篇六 二叉树
  6. centos6中三台物理机配置nginx+keepalived+lvs
  7. JasperReport里面的Demo
  8. sparksql 保存点_Spark(十二)【SparkSql中数据读取和保存】
  9. 今晚直播丨Oracle数据库SQL执行计划的取得和解析
  10. c++开发安卓_诺基亚科普,安卓更新为什么那么慢?
  11. Linux学习13-CentOS安装ab做压力测试
  12. xib ? Interface Builder 中的 File's Owner 和 First Responder 分别是什么
  13. linux和宿主机windows之间建立共享文件夹
  14. PDF转Word软件
  15. java smali_Android逆向——smali复杂类解析
  16. Vue中动态绑定自定义快捷键
  17. 丹佛大学计算机专业,丹佛大学计算机工程排名第79(2020年TFE美国排名)
  18. java short比较_Java Short equals()方法
  19. F28335舵机控制器(3)——第三版PCB
  20. 微信小程序开发13 云开发:云原生一体化应用开发平台

热门文章

  1. geotools 可视化,具有无状态渲染器
  2. Boom!!!计算机系统,从理解到爆炸,Bomblab
  3. Android 实现简易下载管理器 (暂停、断点续传、多线程下载)
  4. glsl boom
  5. 在Ubuntu上用cups api实现打印功能
  6. Snort 用户手册
  7. 有关功能手机物理按键的焦点问题
  8. 著名安全组织邪恶八进制遭到不明攻击
  9. exit status 1: ‘D:\Program’ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���
  10. video标签在iOS上无法播放解决思路及办法