王強(qiáng) 史穎剛 葉冰慧 寇小希
摘要:在FIRA仿真足球比賽中,機(jī)器人能對(duì)賽場(chǎng)形式做出準(zhǔn)確判斷,并抓住有利時(shí)機(jī)快速、準(zhǔn)確地射門是贏得比賽的關(guān)鍵。為提高仿真足球機(jī)器人的進(jìn)攻效率,該文提出了一種FIRA仿真5VS5機(jī)器人弧線射門算法,通過(guò)判斷足球是否位于機(jī)器人射門范圍內(nèi),調(diào)整機(jī)器人的初始位置,并實(shí)時(shí)調(diào)整機(jī)器人前進(jìn)的目標(biāo)點(diǎn),使機(jī)器人沿著平滑的弧線軌跡將位姿調(diào)整到射門狀態(tài),再進(jìn)行射門。該研究通過(guò)仿真實(shí)驗(yàn)驗(yàn)證了該算法的正確性和優(yōu)越性,實(shí)驗(yàn)結(jié)果表明該算法能有效提高仿真足球機(jī)器人的有效射門次數(shù)和射門的成功率。
關(guān)鍵詞:足球機(jī)器人;弧線射門;調(diào)整位姿;算法設(shè)計(jì)
中圖分類號(hào):TP391? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)16-0012-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 背景
仿真足球機(jī)器人采用軟件仿真系統(tǒng)研究機(jī)器人踢足球過(guò)程中的動(dòng)作、策略,對(duì)實(shí)際的足球機(jī)器人設(shè)計(jì)具有重要參考意義。FIRA仿真5VS5機(jī)器人比賽中,仿真足球機(jī)器人的策略執(zhí)行[1-3]、戰(zhàn)術(shù)配合和路徑規(guī)劃等都是比賽的重要部分,而仿真機(jī)器人射門能力是進(jìn)攻能力的重要指標(biāo),是決定比賽勝負(fù)的關(guān)鍵因素之一。
仿真機(jī)器人足球比賽中易于實(shí)現(xiàn)的基本射門算法,其核心思想是選取距離足球較近的一個(gè)位置,作為仿真機(jī)器人的行進(jìn)目標(biāo)點(diǎn),仿真機(jī)器人沿直線從初始位置到達(dá)該點(diǎn),再調(diào)整自身角度,沿直線將球射入球門。這種算法中機(jī)器人運(yùn)動(dòng)軌跡單一,容易受到對(duì)方機(jī)器人干擾,并且沒有設(shè)定射門目標(biāo)點(diǎn),甚至?xí)霈F(xiàn)機(jī)器人將球射入己方球門的情況。
針對(duì)上述問(wèn)題,本文提出了一種FIRA仿真5VS5機(jī)器人的弧線射門算法[4]。機(jī)器人首先判斷足球是否位于射門范圍內(nèi),然后調(diào)整機(jī)器人的初始位置,并實(shí)時(shí)調(diào)整機(jī)器人前進(jìn)的目標(biāo)點(diǎn),使機(jī)器人沿著平滑弧線軌跡將自身位姿調(diào)整到射門狀態(tài),再進(jìn)行射門。仿真實(shí)驗(yàn)表明了該算法的正確性和優(yōu)越性,能有效提高仿真足球機(jī)器人的有效射門次數(shù)和射門成功率。
2 FIRA仿真5VS5機(jī)器人競(jìng)賽相關(guān)簡(jiǎn)介
FIRA仿真5VS5機(jī)器人競(jìng)賽是中國(guó)機(jī)器人大賽FIRA仿真項(xiàng)目的子項(xiàng)目,3cm×3cm×3cm的仿真機(jī)器人在專用的SimuroSot 5vs5仿真平臺(tái)上開展競(jìng)賽,比賽用球直徑1cm。比賽場(chǎng)地如圖1所示,平臺(tái)尺寸220cm×180cm,帶有5cm高、2.5cm厚的圍墻,場(chǎng)地的四角固定有四個(gè)7cm×7cm的等腰三角形。中線、門區(qū)邊界線和中圈等主要的直線、弧線均為白色,3mm寬。中圈半徑25cm,區(qū)域C的點(diǎn)球判罰區(qū)是120cm×80cm的區(qū)域,區(qū)域B的罰球區(qū),包括球門前80cm×35cm的長(zhǎng)方形區(qū)域及其附屬弧形區(qū)域,弧形區(qū)域沿球門線長(zhǎng)25cm,垂直于球門線5cm。區(qū)域A的門區(qū)是位于球門前50cm×15cm的長(zhǎng)方形區(qū)域,門線是位于球門前長(zhǎng)40cm的直線,球門寬40cm。
比賽分兩個(gè)半場(chǎng),每半場(chǎng)5分鐘,中場(chǎng)休息10分鐘。比賽開始時(shí),進(jìn)攻球隊(duì)可在中圈和自己的半場(chǎng)內(nèi)任意布置機(jī)器人,防守球隊(duì)可在自己半場(chǎng)除中圈外任意布置。上半場(chǎng)和下半場(chǎng)開球,以及進(jìn)球后重新開球時(shí),球均放置在場(chǎng)地中心處。裁判哨響之后,比賽開始,所有機(jī)器人開始自由移動(dòng)。
在不觸犯點(diǎn)球、爭(zhēng)球以及任意球等比賽規(guī)定的情形下當(dāng)整個(gè)球越過(guò)門線時(shí)即破門得分,比賽結(jié)束后得分多的一方勝利。
3 基本射門算法
仿真機(jī)器人的基本射門算法,其核心思想是選取距離足球較近的一個(gè)位置,作為行進(jìn)目標(biāo)點(diǎn),仿真機(jī)器人沿直線從初始位置到達(dá)該點(diǎn),再調(diào)整自身角度,沿直線將球射入球門,采用基本射門算法的仿真機(jī)器人運(yùn)動(dòng)路線,如圖2所示?;旧溟T算法易于實(shí)現(xiàn),但機(jī)器人運(yùn)動(dòng)軌跡單一,容易受到對(duì)方機(jī)器人的干擾,不能根據(jù)足球運(yùn)動(dòng)軌跡變化做出快速反應(yīng),機(jī)器人射門的快速性和準(zhǔn)確性不高。仿真實(shí)驗(yàn)數(shù)據(jù)表明,采用基本射門算法的仿真機(jī)器人失球率高達(dá)44%。
4 弧線射門算法
如果仿真機(jī)器人選取自身位置和足球位置為射門動(dòng)作的起始點(diǎn)、終點(diǎn),機(jī)器人在起始點(diǎn)與終點(diǎn)之間的運(yùn)動(dòng)軌跡是由一系列的運(yùn)動(dòng)點(diǎn)位構(gòu)成,機(jī)器人每次運(yùn)動(dòng)中都帶有一定的屬性,比如機(jī)器人的運(yùn)動(dòng)方向,運(yùn)動(dòng)速度,走過(guò)的軌跡等,如果機(jī)器人在每個(gè)點(diǎn)運(yùn)動(dòng)過(guò)程中不僅前進(jìn)一定的距離,也調(diào)整一定的方向,也就是機(jī)器人在第N個(gè)運(yùn)動(dòng)軌跡點(diǎn)向第N+1個(gè)運(yùn)動(dòng)軌跡點(diǎn)運(yùn)動(dòng)過(guò)程中,既有一定的行程變化,也有一定的運(yùn)動(dòng)方向變化[5],那么機(jī)器人在射門起始點(diǎn)和終點(diǎn)之間走過(guò)的軌跡就是一個(gè)弧線[6],如圖3所示,仿真機(jī)器人采用的上述射門算法,就稱為弧線射門算法。
弧線射門算法演示圖如圖4所示,在軟件仿真系統(tǒng)運(yùn)行時(shí),仿真系統(tǒng)每個(gè)周期會(huì)對(duì)算法進(jìn)行調(diào)用,并實(shí)時(shí)返回速度和位置相關(guān)參數(shù),在每個(gè)周期弧線射門算法都會(huì)結(jié)合系統(tǒng)返回的參數(shù)調(diào)整仿真機(jī)器人的位置和方向。機(jī)器人C與對(duì)方球門左、右邊界點(diǎn)E、F構(gòu)成一個(gè)三角形區(qū)域,每個(gè)周期算法會(huì)動(dòng)態(tài)預(yù)測(cè)球的位置,并控制機(jī)器人向足球移動(dòng),使下一周期足球位于三角形區(qū)域內(nèi)。然后確定足球位置點(diǎn)K與機(jī)器人位置點(diǎn)C所連線段的中點(diǎn)D,并過(guò)點(diǎn)D作中垂線。任取對(duì)方球門內(nèi)一點(diǎn)G作為射門目標(biāo)點(diǎn),以它為基點(diǎn)通過(guò)足球當(dāng)前位置點(diǎn)K作射線,射線與中垂線相交于點(diǎn)S,定義交點(diǎn)S為目標(biāo)運(yùn)動(dòng)點(diǎn),每個(gè)周期弧線射門算法都會(huì)控制機(jī)器人朝目標(biāo)運(yùn)動(dòng)點(diǎn)運(yùn)動(dòng)。由于機(jī)器人的移動(dòng)速度有限,每個(gè)周期的時(shí)長(zhǎng)較短,機(jī)器人不一定能在每個(gè)周期都到達(dá)目標(biāo)運(yùn)動(dòng)點(diǎn),弧線射門算法在每個(gè)新的周期都會(huì)對(duì)機(jī)器人和球的真實(shí)位置進(jìn)行判斷,并重新執(zhí)行數(shù)據(jù)采集、動(dòng)態(tài)預(yù)判球位置、計(jì)算目標(biāo)運(yùn)動(dòng)點(diǎn)等流程,循環(huán)若干個(gè)周期后,機(jī)器人以弧線路徑到達(dá)最佳射門點(diǎn),此時(shí)機(jī)器人與足球的距離和機(jī)器人頭部朝向均滿足射門條件,進(jìn)而機(jī)器人立即射門[7]。弧線射門算法的流程如圖5所示。
使用弧線射門算法可以讓仿真機(jī)器人運(yùn)動(dòng)更加平穩(wěn),并對(duì)機(jī)器人射門動(dòng)作的連貫性有一定的改善,使仿真機(jī)器人快速到達(dá)射門點(diǎn)進(jìn)行射門,提高了機(jī)器人射門效率。
4.1 動(dòng)態(tài)預(yù)判足球位置
首先對(duì)處于運(yùn)動(dòng)狀態(tài)的球的位置進(jìn)行分析,如圖6所示,軟件仿真系統(tǒng)運(yùn)行時(shí)每個(gè)周期會(huì)對(duì)算法及程序進(jìn)行調(diào)用并實(shí)時(shí)返回速度和位置相關(guān)參數(shù),因此可得上一周期足球的位置[K1(x1,y1)]和當(dāng)前足球的位置[K2(x2,y2)]的坐標(biāo)差為:
[?x=x2-x1?y=y2-y1]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
在比賽過(guò)程中,當(dāng)足球不受外力作用時(shí),足球沿直線運(yùn)動(dòng),因此可以預(yù)測(cè)t個(gè)周期后足球的位置坐標(biāo)[K3(x3,y3)]為:
[x3=x2+t×?xy3=y2+t×?y]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
4.2 確定有效的預(yù)射門范圍
預(yù)射門范圍如圖7所示,設(shè)機(jī)器人的當(dāng)前坐標(biāo)為 ,對(duì)方球門左邊界與場(chǎng)地邊緣交點(diǎn)坐標(biāo)為 ,對(duì)方球門右邊界與場(chǎng)地邊緣交點(diǎn)坐標(biāo)為 ,以當(dāng)前機(jī)器人坐標(biāo)和對(duì)方球門左、右邊界與場(chǎng)地邊緣交點(diǎn)坐標(biāo)確定的直線方程為:
[y1=x1-xCxE-xCyE-yC+yCy2=x2-xCxF-xCyF-yC+yC]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
以機(jī)器人當(dāng)前坐標(biāo)點(diǎn)C,對(duì)方球門左邊界與場(chǎng)地邊緣交點(diǎn)坐標(biāo)點(diǎn)E,對(duì)方球門右邊界與場(chǎng)地邊緣交點(diǎn)坐標(biāo)點(diǎn)F構(gòu)成一個(gè)三角形區(qū)域,該三角形區(qū)域可以由式(4)表示:
[y2≤y≤y1xC≤x≤xE]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
通過(guò)判斷足球的坐標(biāo) 是否滿足式(4)條件,即可判斷足球是否位于三角形區(qū)域中。若足球位于三角形區(qū)域中,則執(zhí)行下一步,即確定目標(biāo)運(yùn)動(dòng)點(diǎn);若足球不位于三角形區(qū)域中,則通過(guò)改變機(jī)器人的位置和方向使球進(jìn)入三角形區(qū)域中,以此確定有效的預(yù)射門范圍。
4.3 確定目標(biāo)運(yùn)動(dòng)點(diǎn)
目標(biāo)運(yùn)動(dòng)點(diǎn)確定原理如圖8所示,設(shè)機(jī)器人的目標(biāo)運(yùn)動(dòng)點(diǎn)為S,機(jī)器人所在位置C到球所在位置B的距離為:
[lBC=xB-xC2+yB-yC2]? ? ? ? ? ? ? ? ? ? ? ? (5)
直線BC的斜率為:
[kBC=yC-yBxC-xB]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(6)
設(shè)[D(xD,yD)]為線段BC的中點(diǎn),有
[lBD=12lBC]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7)
直線DS的斜率為:
[kDS=-1kBC]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(8)
則直線DS可表示為:
[yDS=xB-xCyB-yCx-xD+yD]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (9)
則直線AB可表示為:
[yAB=yA-yBxA-xBx-xB+yB]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(10)
軟件仿真系統(tǒng)運(yùn)行時(shí)會(huì)調(diào)用上述所有公式,最終通過(guò)聯(lián)立式(9)與式(10)得到目標(biāo)運(yùn)動(dòng)點(diǎn) 。每個(gè)周期弧線射門算法都會(huì)重新確定目標(biāo)運(yùn)動(dòng)點(diǎn)并控制機(jī)器人朝目標(biāo)運(yùn)動(dòng)點(diǎn)運(yùn)動(dòng)。最終機(jī)器人以弧線路徑到達(dá)最佳射門點(diǎn),此時(shí)機(jī)器人滿足射門條件,進(jìn)而機(jī)器人立即射門。
5 實(shí)驗(yàn)結(jié)果與分析
通過(guò)仿真實(shí)驗(yàn),模擬當(dāng)球靠近對(duì)方球門時(shí)仿真機(jī)器人的射門動(dòng)作。在正常的進(jìn)攻中,采用弧線射門算法的動(dòng)作效果如圖9所示。
在兩種射門算法下,機(jī)器人從啟動(dòng)到完成射門動(dòng)作的所用時(shí)間和進(jìn)球率如表1所示。由表1分析可知,采用弧線射門算法的機(jī)器人,相對(duì)于采用基本射門算法的機(jī)器人,不論向左進(jìn)攻或向右進(jìn)攻,進(jìn)攻用時(shí)都得到了明顯減少,進(jìn)球率都得到了明顯提高,其平均用時(shí)減少了1.245s,其進(jìn)球率提高了17.6%。
在兩種射門算法下,機(jī)器人執(zhí)行點(diǎn)罰球動(dòng)作的用時(shí)和進(jìn)球率如表2所示。由表2分析可知,采用弧線射門算法的機(jī)器人,相對(duì)于采用基本射門算法的機(jī)器人,不論向左進(jìn)攻或向右進(jìn)攻,進(jìn)球率得到了明顯提高,其平均進(jìn)球率高達(dá)78%。
綜合分析可得,弧線射門算法明顯提高了射門的效率,在正常比賽時(shí),弧線射門算法減少了機(jī)器人進(jìn)攻用時(shí),提高了進(jìn)球率;在點(diǎn)罰球時(shí),明顯提高了進(jìn)球率,大大增強(qiáng)了實(shí)戰(zhàn)能力。
6 結(jié)束語(yǔ)
本文提出了一種FIRA仿真5VS5機(jī)器人弧線射門算法,通過(guò)對(duì)足球下一周期所處位置的預(yù)判,以及對(duì)機(jī)器人當(dāng)前周期所處位置和對(duì)方球門左、右邊界點(diǎn)的考慮,使機(jī)器人以弧形路徑運(yùn)動(dòng)到最佳射門點(diǎn),立即擊球完成射門?;【€射門算法有效地提高了機(jī)器人射門時(shí)的速度和精度,大大提高了有效射門次數(shù)和射門的成功率。該算法的不足之處在于射門距離越遠(yuǎn),球被攔截的概率越高,此問(wèn)題可以通過(guò)改進(jìn)隊(duì)員之間傳球等策略進(jìn)而控制射門距離來(lái)解決。
參考文獻(xiàn):
[1] 宇海萍,馮靈清.基于FIRA 5VS5仿真機(jī)器人足球防守策略的研究[J].計(jì)算機(jī)時(shí)代,2018(7):13-16.
[2] 陳冰,張亨,程澤凱,等.Robocup2D仿真對(duì)抗中進(jìn)攻行為的挖掘與驗(yàn)證[J].系統(tǒng)仿真學(xué)報(bào),2018,30(12):4718-4726.
[3] 蘇禹,林顯富.基于動(dòng)態(tài)運(yùn)行軌跡的機(jī)器人足球策略研究[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),2018,35(1):116-121.
[4] Rezaeipanah A,Amiri P,Jafari S.Performing the kick during walking for RoboCup 3D soccer simulation league using reinforcement learning algorithm[J].International Journal of Social Robotics,2020:1-18.
[5] 張偉.基于模糊融合的足球機(jī)器人避障行為設(shè)計(jì)[J].電子測(cè)試,2019(8):11,33-34.
[6] 曲寶福,王利利,任超群.基于勢(shì)場(chǎng)改進(jìn)蟻群算法的足球機(jī)器人路徑規(guī)劃研究[J].現(xiàn)代商貿(mào)工業(yè),2018,39(21):184-185.
[7] 趙元罡.運(yùn)用機(jī)器人走黑線案例設(shè)計(jì)足球活動(dòng)教育——評(píng)《機(jī)器人足球仿真》[J].科技管理研究,2020,40(8):282.
【通聯(lián)編輯:謝媛媛】