宇海萍 馮靈清
摘 要: 針對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.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