王強 史穎剛 葉冰慧 寇小希



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