足球机器人系统设计与开发
2018-02-03曾远伟范光宇黄达周辉
曾远伟+范光宇+黄达+周辉
摘要:机器人足球(FIRA)是现在机器人和人工智能领域的研究热点之一,当真实的机器人在球场上运动时,机器人是有特定的动作的,离不开运动学和动力学的范畴,所以我们通过仿真的方式,抽象机器人小车的物理模型,运动学模型和动力学模型,完成机器人动作空间到轮速空间的映射,从而集中精力在策略开发的层面上。
关键词:系统设计;策略开发;防守战术
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)02-0156-02
机器人足球是现在机器人和人工智能领域的研究热点,很多研究机构已经着手于真实的机器人足球开发,并且已经取得了一定的成果,他们的开发重点是如何用软件驱动硬件,如何让机器人按照指令做出准确的动作,如何实现机器人的动作细节,而仿真的重点工作是战术策略的开发。本文主要提出了战术策略中的防守战术。我们是基于3D Robot Soccer Simulator仿真系统来进行足球机器人系统的设计与开发,此仿真系统是是由澳大利亚的格里菲斯大学信息技术学院 RSS 开发小组开发,是一个5vs5的足球机器人比赛系统,此平台提供一些简单的函数,我们可以在这些函数原型上进行代码的修改与完善,让机器人按照我们的算法方式运动。
5vs5 具体有四层架构,第一层:设置机器人小车的轮速,到二层:让小车到达某一指定位置。第三层:每个机器人具体的角色实现。第四层:角色组合起来的决策实现。
1 系统设计
1.1 设置机器人的轮速
首先我们要知道基于这个仿真平台,设计者已经给我们提供了一些可执行代,包括一些简单的函数原型。我们可以在里面修改代码,让机器人按照我们的算法运动。
其函数原型如下:void Velocity ( Robot *robot, intvl, intvr );
机器人运动模型构建(如图1所示):假设vl和vr为机器人左右的轮速,当vr>vl时,机器人向左转,做弧线运动,设其瞬时圆周运动半径为R,O为瞬时旋转圆心,L为机器人的边长,机器人是遵守刚体运动的运动规律的。所以有如下公式:
[V=vr+vl2] (1)
[ω=vr-vlL] (2)
V是机器人中心的线速度,[ω]是小车自转瞬时角速度。机器人的状态变量可用位置和角度表示为([θ],y,x),可用vl,vr来表示:
[dxdt=Vcosθ]
[dydt=Vsinθ]
[dθdt=180πω]
将(1),(2)式子带入并写成矩阵形式得到运动学微分方程:
[10001000πL360dxdtdydtdθdt=12 cosθ sinθ -1cosθsinθ1vlvr]
在这层架构中,我们可以利用高数的知识,如泰勒公式,拉格朗日方程等来实现我们对轮速的控制,这要求有丰富的高数知识和编写c++代码的能力。将我们修改后的代码放入函数Velocity中机器人就可以动起来了。
1.2 让机器人到达指定位置
要让机器人到达指定的位置需要找出该位置的坐标并且了解机器人当前的位置信息(当前坐标和角度),然后就可以运用以下两个函数来调整位置和角度了。
void Angle ( Robot *robot, intdesired_angle);
void Position ( Robot *robot, double x, double y);
1.3 机器人的角色
看过足球比赛的我们都知道每个球员在球场上都有自己的位置,球员在球场上各司其职,分工合作,团结一致才能将球踢进对方的球门。在我们5vs5的系统中,我指定了一名守门员,2名防守球员和2名进攻球员。角色如何设定还是要根据具体的战术决定,像我指定这个阵型就是1:2 : 2阵型,你也可以采用1: 3:1的阵型,当然导致的结果就是进攻效率不足,但防守一定是很强的,所以根据球在自己手上还是对方手上来选择阵型是相当重要的。
在平台运行的过程中,系统会反馈给我们一组数据结构,其中包括哪个队伍持球,敌我两方机器人的速度和位置等很多信息,当球在我们手上和在对方手上时执行的策略是不一样的,所以机器人的角色也在進攻和防守中不断切换。
具体的角色有:点球角色、门球角色、争球角色、任意球角色等,这些属于特殊情况下的角色。还有就是能完成特定踢球任务的角色,例如 : 中路射门角色,边路射门角色,前场边界球处理角色,后场边界球处理角色,中路补射角色,边路传中角色等。拥有了这些角色我们就可以完成进攻和防守的策略。
2 决策开发
我们将整个足球场划分为三大部分,分别分为前场,中场,后场,开始时,5名球员进行对应的放置为:守门员一个(5号球员),中场两个(3,4号),后场(2号)以及前场(1号)各一个。
情况一:对手进攻,球在对方的后场,就是等于说,此刻相对于来说,情况比较乐观,采取的方案:主要以抢断以及防守为主,这个时候每个球员都可以是防守球员,下面是对场上球的位置进行分析。从球向我方球门推进的过程中,我们可以将防守分成下面五步:
第一步:如果此时球在对方的守门员的手中的时候,就要进行阻断对方的守门员进行发球,主要方式就是用1号球员进行对方的守门员以及其他的球员之间的传球线路的阻断。如果此时球不在对方的守门员手中,同样以抢断为主,我方的守门员(5号球员)要时刻将自己,球,以及对方控球的球员形成一条直线,以便快速形成最佳防守。
第二步:处于中场位置的3号球员此刻的主要任务就是抢断,3号球员的任务就是始终进行往对方控球的人员以及球的中心位置运动,以阻止对方的控球,干扰对方的传球路线。endprint
第三步:同样位于中场的4号球员的任务是直接朝着球的运动的方向进行运动,进行直接抢断。
第四步:位于我方后场的2号球员的任务是阻止对方的控球人员进行传球,采取的方案就是判断离开球员比较近以及空间范围比较空的球员进行球员与该球之间的阻断。
第五步:作为守门员的5号球员,无论球在球场的哪个位置,都不能离开我方的球门,因为场上的局势瞬息万变,如果对方攻势足够强,我方球员就会退防不及时而损失不必要的进球。
情况二:对手进攻,球在中场,采取的方案应该是注重防守,而不是抢断,主要防止对手将球踢到前场,一旦球进入中场,抢断的行为就应该有所减少,更加注重防守,争取将球防守回后场,或者说,在防守中使得对手失误,以达到抢断的任务,转换为进攻。具体实现步骤也可分为如下几步:
第一步:2号以及3号两名球员进行控球人员的防守,具体防守方式为一名球员进行中间强断,由于球一直处于运动状态,那么一名球员进行球的延长线阻断,以形成防守,由两名球员去包夹防守,成功率会有所提高。
第二步:4号球员与1号球员这两个球员阻止对方的控球人员进行传球,采取的方案就同情况一的四步一样,都是判断离开球员比较近以及空间范围比较空的球员进行球员与该球之间的阻斷,所以要能在代码中实现这一功能显得十分重要。
第三步:我方的守门员要时刻将自己,球,以及对方控球的球员形成一条直线,以便快速形成最佳防守,防止球被直接射入球门。
情况三:对手进攻,球在对方的前场,就是等于说,此刻相对于来说,情况比较糟糕,可以说成是消极防守(这里不是说态度消极,而是指情况不容乐观,属于劣势情况下的防守)。
采取的方案:加大对球门的防守,主要是进行守门员的协防工作,避免失球。2号球员以及4号球员进行协助守门员防守,防守的策略是进行加大防守面积,以及加大防守强度,2号与4号球员与守门员形成一个防守的三角形,并且始终根据对方的球的运动进行调整位置,另外的两名球员进行控球人员地传球阻断。
3 总结
以上内容主要描述机器人轮速的控制,如何利用系统反馈的信息使机器人到达指定的位置,机器人角色的变化和防守策略决策系统。待解决的问题是在传球过程中预测到敌人会阻碍我们传球时应该做出什么样的反应,这就涉及人工智能的知识了。在我们的防守策略中,我们综合所有可能大概率出现的情况并且采取了相应的解决办法,这样的严防死守对手是很难进攻成功的。
参考文献:
[1] 曹旭宇,丁晗,李世坤. 关于fira仿真机器人的守门员防守决策设计[J]. 电脑迷. 2017(6).
[2] 陈大海. 基于足球机器人仿真组策略的研究和改进[J]. 电脑知识与技术, 2009(1).
[3] 杨海笑. 新一代FIRA机器人足球仿真平台的设计与实现[D]. 武汉工程大学, 2009.
[4] 蒋美云. FIRA机器人足球队设计与开发[J]. 南京工业职业技术学院学报, 2008(4).
[5] 李响. 足球机器人仿真平台与控制研究[C]. 中国智能自动化会议, 2003.
[6] 徐昶,郭庆平,高丹. 机器人足球比赛策略研究[J]. 消费导刊, 2006(11).endprint