论文部分内容阅读
摘 要: 针对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
关键词: 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.y
//球位于区域①
{ Goalie_out(g,robot);
return;
}
else//球位于区域②
{ gy=ball.y;
}
}
else//中路
{ //如果只有守门员离球最近
if(g->robot[robot].ToBall.dis<3.5&&ball.y
[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