了解CV和RoboMaster视觉组(二)视觉在各兵种中的作用

--NeoZng【[email protected]

2.视觉在各兵种中的作用

2.1.装甲板识别(步兵、英雄、无人机)

  • 由于机器人上安装的图传模块到操作手看到的第一视角的延迟加上操作手反应速度的延迟,操作手几乎很难手动瞄准高速运动的机器人上的装甲板。因此,视觉组在这三个兵种的研发上主要是负责装甲板的识别算法,通过处理图像找到相机视野范围内的装甲板(相机一般安装在云台上,和枪口平行放置并指向同一个方向,类似瞄准镜),进而向下位机(STM32等用于控制的MCU,microcontroller unit,单片机)发送此装甲板的相对枪口的角度数据,电控根据此数据控制电机自动转向目标装甲板,实现装甲板的自动打击。

    自动跟随装甲板效果

  • 随着自瞄算法的不断升级进步,RoboMaster的赛场上也出现了“反自瞄”,其中的代表之一就是“小陀螺”。机器人在小陀螺模式下,云台和底盘处于分离状态,并且底盘绕运动中心高速自旋。在这种情况下,视觉识别的难度会大大上升,一是自瞄很难跟上装甲板的高速转动,基本上我方机器人的云台运动会滞后于装甲板的运动,且难以预测装甲板的轨迹;二是即使跟随到一个装甲板后,那个装甲板随着底盘的转动很快消失在视野中,此时就要锁定另一块装甲板,使得云台会来回转动,无法稳定,导致弹丸命中率下降,从操作手的第一界面看来,整个画面不断晃动带来晕眩感,体验极差。

    因此,反“小陀螺”算法出现了:通过设计算法,识别对手的机器人处于小陀螺状态,然后让云台对准敌方机器人的中心位置而不再跟随装甲板移动。由于机器人处于“小陀螺”状态时基本上是匀速转动,这样就可在适当的时机开火(可以采用预测算法预测装甲板何时运动到云台所对准的位置),提高命中率。

    当然,随着反”小陀螺“算法的出现,赛场上又开始出现反‘反“小陀螺“ ’算法如变速小陀螺、超快小陀螺(舵轮步兵)。快进到反反反反反小陀螺(禁止套娃)因此,今后必定需要研发出鲁棒性(健壮性)和泛化性能更好的算法,才能应对愈发“卷”的比赛啊~

    处于小陀螺运动下的步兵机器人

2.2.能量机关(步兵)

  • 在比赛场地的中央有一个风车形状的结构,就是能量机关。能量机关的激活点距能量机关7m。我们需要用小弹丸连续击中五片随机亮起的扇叶的末端装甲板才可以激活能量机关。激活小能量机关能够为队伍带来50%的攻击力增益,大能量机关能为队伍提供100%的攻击力增益和50%的防御增益。由于在操作手的第一视角看来五片扇叶的间距非常小,难以通过鼠标移动来进行打击,并且小能量机关是匀速旋转的状态,大能量机关更是0.785sin(1.884t)+1.305 的角速度旋转,操作手很难预测其运动轨迹。这便需要视觉组设计算法来识别未被击打过的末端装甲板并对其实现自动瞄准,找准时机控制子弹的发射从而实现自动击打能量机关。

  • 除了激活我方的能量机关,我们还可以在对手激活能量机关的过程中干扰对手。倘若击打了错误的扇叶(如已经击打过的扇叶或尚未亮起的扇叶),能量机关则会重置,回到初始状态。因此,我们可以进入敌方半场,通过识别对手已经激活的扇叶并自动瞄准它,发射子弹击中错误的装甲板进而触发重置以干扰对手的激活过程。

    正在激活能量机关的步兵机器人

2.3.哨兵

  • 哨兵机器人被悬挂在基地前方的导轨上往复运动,是场上的一个全自动机器人,其移动、搜索目标、打击敌人都依赖于其自主决策。它相当于基地的防御塔。编写一个优秀的感知程序和决策程序,是发挥哨兵机器人威力的关键。哨兵机器人的云台会不断地转动使得上方安装的相机能够扫描到它附近的每一个角落,一旦识别到敌方的机器人便能立即锁定对手,随后根据其决策算法判断是否开火。

  • 我们还可以让在哨兵机器人遭到攻击时进入快速机动的规避状态,在导轨上进行随机地不规则动作以躲避敌方的弹丸并干扰敌方机器人搭载的预测算法。

  • 在前哨站尚未被击毁时,哨兵机器人处于无敌状态,这时我们可以让哨兵机器人保持固定以提高自己的命中率,一旦前哨战被摧毁,立即启动哨兵机器人的底盘,进入巡逻状态。

    巡逻中的哨兵机器人

2.4.工程

  • 工程机器人在本赛季的任务主要有:抓取矿石、兑换矿石和救援阵亡机器人。这里的每一步都可以利用视觉识别以完成自动化。

  • 在抓取矿石的时候,可以在工程机器人的机械爪上安装相机、测距传感器,再编写相关的算法来识别矿石,实现自动对位和夹取。在技术交流中,上交、哈工大、深圳大学等惊艳全场的“空接矿石”依赖的就是自动识别矿石的算法。在兑换时,根据兑换站上的一些图像特征,可以定位扫描矿石窗口的位置,来快速地完成兑换。

  • 在我方机器人阵亡后,可以通过两种方式复活阵亡机器人:工程机器人将其拖回基地旁的补血点或是让工程机器人所携带的复活卡(RFID射频卡)和其他机器人上的场地交互模块接触(被称作“刷卡复活”)。在这两种情况下,都可以通过编写视觉算法来实现快速准确地救援。我们可以在工程机器人的救援机构(夹爪、电磁铁)旁安装相机,通过确定一些方法阵亡机器人上救援结构(环、柱、磁铁等)的位置让工程机器人自动套牢,随后就可以把阵亡机器人抬走了。

正在夹取矿石的工程机器人

2.5.雷达

  • 雷达是本赛季新增的兵种,被放置在场边的一处高地上,拥有全局视野。利用目标检测算法和三维重建,可以定位敌方机器人在场上的位置。随后,我们能利用这些信息为我方制作一张实时更新的“小地图”,掌握对方机器人的动向,以帮助我方操作手进行战术决策,做到知己知彼而百战不殆。

  • 雷达在将全局数据处理后,还能通过多机通信功能和己方的自动机器人如哨兵、自动步兵进行通信,相当于为它们开了一双“天眼”。这无疑是极大地增强了这些自动单位的感知能力和决策能力(我愿称之为云计算!),使得机器人不再受到边缘计算平台计算能力潺弱的限制,让算法火力全开,也让我们离全自动机器人战队又更近了一步。

    雷达系统检测出了场上所有机器人的位置

2.6.自动步兵

  • 自动步兵同样是本赛季新增的兵种。当不为步兵机器人配置操作手时,可以将此机器人配置为自动步兵。自动步兵的所有属性都高于普通步兵机器人,其底盘功率、枪口热量上限、冷却速度、血量上限、弹丸射速都相当于同级的步兵机器人选择了所有类型的升级加点,甚至更多,是当之无愧的“六边形战士”。

  • 超高的属性值便意味着极大的开发难度。由于没有操作手,机器人进行的所有移动、攻击等动作都需要自主决策。虽然弱AI(在一个特定的问题上能够取得比人类更好的成绩)在特定领域已经击败人类,但是强AI(拥有各方面的智能)的诞生也许还为之过早。自动步兵便算是向强AI探索的一个尝试

  • 为了知道自己“在哪里”,自动步兵需要搭载SLAM(Simultaneous Localization And Mapping)系统以帮助自己构建整个地图的信息;为了能够自己决定“怎么做”,自动步兵要配备自主决策系统以确定当下应该执行的动作;为了知道要“往哪走”,自动步兵要能够进行路径规划...... 总之,这是一个大有可为,上限极高的研发方向。

    由DJI承办的RMUA(RoboMaster Uniersity AI Challenge)赛事便是一项关于全自动机器人对抗的比赛,自动步兵的规则引入也是由此而来的。若要了解更多,请访问RoboMaster ICRA RMUA。

    RMUA赛场:全自动机器人四处搜索目标

    图片稍后补上​!

你可能感兴趣的:(了解RoboMaster视觉组,人工智能,计算机视觉,slam,c++)