楊云 張森 宋要斌 苗新敏 趙瑋
摘要:針對國際水中機器人大賽2D仿真項目搶球博弈,提出了一種基于場地區域劃分的運球策略。該策略合理利用比賽場地,進行區域劃分,在直線運球時設置多個中間目標點降低了運球誤差,以及在狹窄區域利用仿真機器魚的身體、魚鰭和魚尾等魚體各部位進行運球。此策略避免了因魚體與場地邊緣相互作用而導致的失真現象,提高了進球效率。
關鍵詞:機器魚;2D仿真;區域劃分;運球策略
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)44-0103-03
一、前言
近年來,隨著仿生學和機器人技術的發展,仿生機器人取得了很大的進步。魚類在游動的時候具有高推進效率和機動性、低噪聲、高隱蔽性等優點[1],這些優點引發了研究魚類的運動機理和開發仿魚類水中機器人的熱潮。
URWPGSim2D仿真平臺提供了一種仿生機器魚的實時仿真系統,它可以模擬仿生機器魚的游動規律和位姿變化,驗證仿生機器魚協作算法與執行任務的策略。在此基礎上,國際水中機器人聯盟組織了國際水中機器人大賽,并設立2D仿真項目。搶球博弈是在URWPGSim2D仿真平臺版本更新后新增的2D仿真項目,任務較為復雜,對抗性強,尤其是系統隨機產生的模擬水波以及仿真機器魚和場地邊緣相互作用時的失真情況,導致了魚體坐標和位姿的跳變[2],使仿生機器魚對水球的控制難度提高了很多。此項比賽目前還沒有優勢較為明顯的策略,因此本文提出了一種基于比賽場地區域劃分的仿真機器魚運球策略以解決這些問題。
二、搶球博弈比賽平臺簡介
2D仿真搶球博弈比賽平臺是URWPGSim2D仿真平臺中的一個對抗類比賽項目。它由兩支隊伍參與,每支隊伍有2條仿生機器魚,初始狀態時呈對稱分布在左、右半場,場中共有9個仿真水球,3個藍色水球(編號為0、1、2,每球各3分)位于場地正中央,2個紅色水球(編號為7、8,每球各2分)位于場地中線上下方,4個紫色水球(編號為3、4、5、6,每球各1分)位于場地四角。左、右各有一個球門,在初始狀態時,各隊球門都在其身后,通過計算10分鐘內機器魚的進入己方球門的所有球對應的總分判定勝負,分數高者獲得勝利。比賽場地、仿真機器魚編號及水球編號如圖1所示。
三、比賽場地區域劃分
在此項比賽中,參賽隊伍一般傾向于通過確定目標點與水球的位置,使魚體、水球和目標點的方向達成一線,通過魚頭的頂點頂球達到進球得分的目的。具體來講,當比賽計時開始后,仿真機器魚以最大速度游到藍色3分球后方,運行基本的直線運球策略,使水球向己方球門兩側運行;如果出現對方機器魚與己方機器魚爭搶水球時,運行搶球策略。當籃球進入球門后,再將紅色2分球運回球門,最后運輸離球門最近的紫色1分球。
但是相對于場地中央的寬闊區域,球門后方及靠近場地邊緣的區域比較特殊,這些區域由于系統隨機產生的模擬水波以及仿真機器魚和場地邊緣相互作用時的失真情況,使得魚體難以控制。如在這些特殊區域使用全程直線的運球方式,將很難實現平穩運球,從而造成較多的時間浪費。將比賽場地進行劃分并分別選擇運球策略,并結合仿真機器魚的游動特點和身體形狀,對魚的運球及進球策略進行規劃是非常有必要的。
搶球博弈的比賽場地由于球門居中設置在場地內,使其復雜程度有所提升。本文將其分為5個區域:中央區、球門區、球門前緩沖區、目標點設置區、對方球門區。每個區域有各自的作用,對應著不同的運球策略。
(1)中央區:此區域空間廣闊,無障礙物,雙方機器魚爭奪水球。
(2)球門區:水球進入此區域即可獲得相應分數。
(3)球門前緩沖區:此區域進球容易,但非常狹窄,障礙物較多,魚體與場地邊緣相互作用易產生失真現象。
(4)目標點設置區:此區域可設置中央區的運球目標點,使水球靠近己方球門。
(5)對方球門區:水球進入此區域后,我方爭奪非常困難,對方易得分。
四、仿真機器魚運球策略
在運球過程中,由于仿真平臺的原因,每當魚體靠近場地邊緣時總會出現失真現象,使得魚體反復調整自身位姿,從而嚴重影響仿真機器魚的運球過程。因此,在寬闊區域和場地邊緣應該考慮不同的運球策略以達到高效進球的目的。具體可以分為以下三種情況。
1.當水球在比賽場地的中央區,采用直線運球是最簡單快捷、高效的方法,即通過頭部頂球使球到達靠近己方球門的目標點設置區。然而當目標點較遠時,由于隨機水波的影響,很容易在運球過程中產生方向角度的偏差,從而導致運球路徑的加長。這里可以在較遠的目標點和仿真機器魚之間建立數個距離較短的中間目標點,從而縮小單次的運行路徑,提高運球準確性。
2.當水球在中央區和目標點設置區,當球靠近場地邊緣時,為防止仿真機器魚魚體與邊界相互作用產生失真現象,可以利用魚鰭側身運球[3],提高運球的平穩性,仿真機器魚利用魚鰭側身運球進入球門前緩沖區的過程如圖3所示。
利用魚鰭側身運球的實現過程如下:
Step1:當球靠近墻體時改原先球上的擊球點為另外的目標點以達到斜體運球的目的,可將目標點設為:xna,Vector3 Point = new xna,Vector3(fishes[1].PositionMm.X+N,0,fishes[1].PositionMm.Z+M),M、N為常數。
Step2:通過改變M、N的數值來控制魚體傾斜游動的角度。
Step3:通過調用機器魚游動函數Dribble達到控制魚體頂球的目的。
3.當水球由目標點設置區運輸到球門前緩沖區時,由于球門后的空間狹小,仿真機器魚運球時容易與場地邊緣相互作用造成失真現象,魚體不受控制地在同一地點反復調整角度和位姿,較為浪費時間。為了避免此現象,本文提出一種在球門后方狹窄區域直接擊球入球門的算法,即通過判斷魚體相對于球的位置來選擇進球方式,在旋轉魚體的過程中利用仿真機器魚的身體和尾巴掃球進門,過程如圖4所示。
利用身體和尾巴掃球的實現過程如下:
Step1:當魚與球同時出現在目標點設置區時,以球門前緩沖區內一點為目標點,使球運向球門后的中間區域。
Step2:當球中心超過橫線進入框體內側時,判斷魚體中心與球中心的距離。
Step3:當此距離大于300時,按照直線頂球策略,將球運向目標點;當此距離小于300時,判斷魚體是在球體的左側還是右側。當魚體在球右側時,執行以目標點在其左上方60°為目標點的直線頂球策略,直到球進框計數得分;當魚體在球左側時,使魚體逆時針旋轉,由于魚體與球相距距離較小,球會向球門方向掃去,這樣避免了由于框內空間狹小而出現失真的現象,同時增加了魚體右側的活動范圍。
五、結論
本文針對國際水中機器人大賽2D仿真新增項目搶球博弈提出了新的運球策略。在充分考慮了比賽場地地形和因魚體與場地邊緣相互作用而導致的失真現象的基礎上,對比賽場地進行了區域劃分,提出了設置多個中間目標點的直線運球策略,以及在狹窄區域利用仿真機器魚的身體、魚鰭和魚尾等魚體各部位進行運球的運球策略。通過多次的實驗驗證,與全場直線運球策略相比,本策略在規定時間內的進球數目有明顯提升。
參考文獻:
[1]王耀威,紀志堅,翟海川.仿生機器魚運動控制方法綜述[J].智能系統學報,2014,(3):276-284.
[2]王梅娟,李易凡,范彬彬.基于URWPGSim2D仿真平臺的測試分析與策略改進[J].兵工自動化,2015,(12):82-85.
[3]滕江,李淑琴,龍海楠.機器魚2D仿真搶球大作戰策略的優化[J].兵工自動化,2014,(3):89-92.