基于FIRA 5VS5仿真机器人足球防守策略的研究

来源 :计算机时代 | 被引量 : 0次 | 上传用户:ncwu521
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 针对FIRA 5VS5机器人仿真足球项目,在研究已有比赛策略的基础上,提出了分区协同防守策略,并对策略中的角色分配、守门员策略和防守球员防守策略进行了深入的分析,最终给出了防守流程和算法设计。平台验证和比赛成绩表明,该策略能大大提高防守率,达到较好的防守效果。
  关键词: Fira 5vs5; 仿真机器人足球; 防守; 策略
  中图分类号:TP242 文献标志码:A 文章编号:1006-8228(2018)07-13-04
  Abstract: In view of the FIRA 5vs5 robot soccer simulation project, on the basis of the existing competition strategy, put forward the collaborative partition defense strategy, and carried on the thorough analysis of role assignment strategy, goalkeeper strategy and defense strategy, finally give the defensive process and algorithm design. The results of platform verification and competition show that these strategy can greatly improve the defense rate and achieve good defensive effect.
  Key words: FIRA 5VS5; simulation robot soccer; defense; strategy
  0 引言
  机器人足球仿真赛是一种用软件模拟足球赛场的比赛,其主要内容是研究比赛策略,通过将策略输入软件来控制机器人,完成跑位、踢球、传球、射门、防守等动作。机器人足球仿真赛不仅要求编程者熟悉比赛平台及足球比赛规则,而且要拥有强大的编程能力,是人类智慧的完美体现。
  FIRA全称国际机器人足球协会联合会(FIRA——Federation of International Robot Soccer Association),简称国际机器人足联。FIRA机器人足球比赛种类很多,包括半自主型机器人足球(MiroSot)、全自主型机器人足球(RoboSot)、仿真机器人足球(Simuro-Sot)、类人机器人足球(HuroSot) 等比赛项目[1]。FIRA 5VS5属于仿真机器人足球(Simuro-Sot)的一种。
  FIRA 5VS5机器人足球仿真赛开赛近二十年来,前人提出了诸多比赛策略。宁建华等[2]提出了多智能体足球机器人策略;张彦铎等[3]通过分析实体的运动规律,提出了预测法射门策略;李敏等[4]提出了一种不同角色不同分区的针对性防守策略;余轲, 邓本再[5]对足球机器人守门员的路径规划进行了深入的研究。本文在前人研究的基础上,提出了一种新的分区协同防守策略,进一步提高了防守效果。
  1 FIRA 5VS5仿真平台介绍
  FIRA 5VS5仿真机器人足球赛以FIRA SimuroSot 5VS5为比赛平台,该平台由澳大利亚Dr.Jun Jo领导的Griffith大学信息技术学院RRS开发小组来开发完成,平台采用三维仿真高度模拟了小球碰撞的真实情景[6]。平台界面如图1所示。
  FIRA 5VS5仿真系统分为黄蓝两队,每队由1名守门员和4名球员组成,双方将各自的策略提供给仿真程序进行比赛。其中策略由三部分组成。①基本行为的实现:如多人抢球、抢点射门、站位、边路顶球、多人拦截和守门等。②上层策略的实现:如进攻策略,防守策略和守门员策略,在每个策略中,五个机器人都有不同的站位和阵型;③定位球策略的实现:如开球、点球、任意球,门球、自由球。
  2 机器人防守策略研究
  一支球队防守的强弱,将直接关系到球队的成败。在机器人足球仿真赛中,守门员防守策略的设计,以及防守球员角色的分配和配合策略至关重要。
  2.1 角色分配
  本策略将五名球员进行了角色分配,分工明确,各司其责。其中,0号是守门员,这是一个固定角色,1号是铁后卫,2号是助攻兼后卫,3号的角色是进攻、助攻兼防守,4号负责助攻和包抄,这四名球员的角色是不固定的,策略中有专门的角色互换函数Change(),通过判断球员和球的相对位置和距离,实现四个角色间的互换。
  2.2 守门员策略
  守门员策略可以分为两种:积极防守和消极防守[2]。积极防守是指守门员主动出击对球进行拦截并踢出;消极防守是指守门员站在球门区通过预测球可能的落点进行防守。本守门员策略将结合两种防守方式,以求达到最大的防守率。
  本策略将整个防守区域分成了五个区域,不同的区域守门员将采取不同的防守动作[7]。如图2所示。当球位于区域①时,球的y坐标在球门范围,并且x坐标离守门员过近,守门员的动作是出击,出击流程如图3所示;當球位于区域③时,由于离守门员较近,守门员通过不同方向的旋转,将球转出去;当球位于区域②④⑤时,通过预测球的位置调整守门员的y坐标进行防守。具体的防守流程如图4所示。
  通常情况下,守门员的中心点始终保持在L线上运动,如图5所示。球与球门上边界GTOP的连线d1,以及球与球门下边界GBOT的连线d2之间的区域,是球最可能的进攻区域[8]。通过不断预测球的y坐标,守门员的y坐标也在不断地微调,它总是有预见性地站位在球可能进攻的位置点。
  本策略中守门员函数Goalie()的主要程序代码如下:   if(ball.x< x0+1.5 ) //球危险的底线
  { if(ball.yGBOT || ball.x< x0-1.5-0.2)
  //球位于区域①
  { Goalie_out(g,robot);
  return;
  }
  else//球位于区域②
  { gy=ball.y;
  }
  }
  else//中路
  { //如果只有守门员离球最近
  if(g->robot[robot].ToBall.dis<3.5&&ball.yrobot
  [robot].pos.y+1.5 &&ball.y>g->robot[robot].pos
  .y-1.5 &&g->HisSmallDis>20) //区域③
  { if(ball.y>41.7)
  Velocity(g,robot,-125,125); //狮子甩尾,将球顺时针转出去
  else
  Velocity(g,robot,125,-125); //将球逆时针转出去
  }
  if(can_in)//如果可以打进,区域④
  { y=meet_y(g->ball.pos,g->ball.speed.z,x0+1.5);
  //计算球与守门员的所在位置X轴的交点
  if(y>41.7+1.5)
  gy=y-0.5;
  else if(y<41.7-1.5)
  gy=y+0.5;
  else
  gy=y;
  }
  else//区域⑤,预防
  { FromTo gateto1=preball-Vect(FLEFT,GTOP,0);
  //计算预测球与球门上边界的相对位置
  FromTo gateto2=preball-Vect(FLEFT,GBOT,0);
  //计算预测球与球门下边界的相对位置 double k=gateto1.dis/gateto2.dis;//工程力学中的转角系数k
  k=k/(1+k);
  k=(k+0.5)/2;
  //以下为门将跑位目标位置的y值的计算
  double angle=gateto1.z*(1-k)+gateto2.z*k;
  gy=preball.y+tan(angle*PI/180)*(x0 - preball.x);
  //根据夹角重新计算gy
  }
  }
  gy=Cut(gy,GBOT-3,GTOP+3);
  //将gy控制[GBOT-3,GTOP+3]范围内
  go.y=gy;
  go.x=gx;
  GoaliePosition(g,robot,go,90,0.2); //守门员专用跑位函数,
  其以90度角跑位到go的位置
  2.3 防守球员防守策略
  防守球员的主要作用是及时判断对方进攻的可能性,对球进行拦截或干扰对手进球。本策略中,1、2、3号球员充当了防守球员的角色。其中1号球员是铁后卫,它的主要策略是首先判断球是否到了己方半场,当预判steps个周期后球过半场,要及时果断出击,调用push_out()将球击回前场,其余时间始终坚守后方。如图6箭头所指的机器人即为1号铁后卫。
  1号铁后卫的程序代码如下:
  void soldier1(Game *g,int robot,double the_x)
  { Vector3D ball=g->robot[robot].BestBall;
  FromTo to_ball=ball-g->robot[robot].pos;
  if(ball.x>50)
  Position(g,robot,Vect(20,41.7,0),to_ball.z,2);
  //跑位到(20,41.7,0)的位置防守
  else
  push_out(g,robot); //将球击回前场
  }
  2、3号球员的主要角色是前锋,同时又是对球把握、跟踪、以及防守敌方的重要组成部分,是全场最为活跃的两位球员[9]。程序中定义了一个状态变量how,它的值可能为-1,1,2,分别代表防守状态,进攻状态和边路挤状态,通过判断状态how,预测球的位置和对方球员的位置来决定2、3号球员的角色分配。两位球员的动作流程如图7所示,其中函数kick()的作用是将球从一个位置踢到另一个位置。
  3 结束语
  本文讨论了机器人足球的防守策略,通过守门员对不同区域的防守,以及防守球员的配合,实现整体防守的效果。通过在FIRA SimuroSot 5VS5仿真平台反复试验论证,该防守策略能明显提高防守的效率,提高球队的整体竞争实力。该策略在2014年华北五省机器人大赛FIRA 5VS5仿真赛中获得了冠军,并在2017年中国机器人大赛FIRA 5VS5仿真赛中获得了一等奖的好成绩。但该策略并未充分考虑犯规的情况,对此我们将进一步完善。
  参考文献(References):
  [1] 李实,徐旭明,叶榛等.国际机器人足球比赛及其相关技术[J].机器人,2000.22(5):420-426
  [2] 宁建华,俞辉,赵英凯.多智能体足球机器人策略研究[J].计算机工程与设计,2009.30(17):4064-4065
  [3] 张彦铎,王朝亮,闵锋等.仿真机器人足球比赛中的射门策略[J].武汉工程大学学报,2012.34(10):62-65
  [4] 李敏,李彬,黄浩等.基于5VS5仿真机器人足球区域防守策略设计[J].数字技术与应用,2011.10:172-173
  [5] 余轲,邓本再.基于标准可加性模糊系统的足球机器人守門员的路径规划[J].电子设计工程,2016.24(18):155:158
  [6] 戴皓,李小坚.机器人足球比赛策略仿真系统的设计与建模[J].北方工业大学学报,2004.16(1):25-29
  [7] 张小川,李祖枢,尚路颜.机器人足球比赛球场分区的研究[A].2004中国机器人足球比赛暨学术研讨会论文集[C],2004:210-212
  [8] 罗俊涛.MiroSot机器人足球比赛决策系统研究[D].华中师范大学,2008.
  [9] 唐贤伦,周家林,李腊梅,张毅.基于蚁群系统的仿真机器人足球攻防转换策略[J].计算机仿真学报,2015.27(3):534-541
其他文献
【正】 日本政府于1986年7月21日召开了临时内阁会议,正式决定了1987年度予算案的概算要求标准。虽然是五年连续的“原则减少标准”(一般岁出的经常部门比今年度予算减少10%,
【正】 日本厚生省于1984年8月17日公布的1982年度日本平均每人开支医疗费为116,800日元,全国医疗费总额达138,659亿日元(约合557亿美元),比上年度增长7.7%。医疗费用在国民
试论我国的财务会计概念结构刘正利为了适应建立社会主义市场经济的需要,我国会计正在经历一场深刻的变革,制订的《两则》和十多个行业的会计制度,目前正在制订具体会计准则,有一
【正】 (一)日本在六十年代经济高速发展时期,由于对众多不适应大量生产、大量消费的中小商业进行了改革,使其向大型化、协作化和集团化转变,从而促进了整个商业的迅速发展。
【正】 一国经济的现代化离不开科学技术的现代化和经济管理的现代化,而经济管理的现代化也离不开科学技术的现代化。电子计算机技术的发展及其在经济领域里的广泛应用,在经
关于我国外商投资企业利润逆向转移现象的思考吕立伟杨克泉我国实行改革开放以来,外资大量涌入,这对我国的经济发展起了很大的促进作用,但外资规模高速增长的背后,一些潜在的问题
建立校内结算中心提高资金使用效益□颜淑琴□一、建立校内结算中心的必要性近年来,随着社会主义市场经济的发展,学校的办学格局由单一性向综合性发展。办学经费也由单一的财政
股份有限公司低值易耗品核算方法探讨○李继承○在1996年进行的“整顿会计工作秩序、提高会计信息质量”的专项检查工作中发现,不少股份公司在会计政策或方法的选择、费用的归集分
【正】 战后,日本为促进商业的发展,保证商业政策的顺利实施,制定了一系列的有关商业的法令、法规,如《百货店法》、《大型零售商店调整法》、《中小零售商店振兴法》、《零
近年来,赤壁市人民医院采用颅内血肿微创清除术对10例脑出血病人进行治疗,取得了满意疗效,现将护理要点介绍如下。