何芮 蔣昊 李欣雨


摘? 要:為充分合理地利用場地,增加防守魚的生存時間,提出一種基于URWPGSim2D仿真平臺的生存挑戰策略:基于障礙物動態平衡的防守策略。介紹了防守策略的實現方法,一種可控速的位姿到位姿函數,對動態平衡路線加以分析。經過實驗和比賽驗證表明:防守策略表現出優秀的防御性能,能夠有效地躲避進攻魚的攻擊,增加了防守魚的存活率。
關鍵詞:2D仿真;生存挑戰;障礙物動態平衡;可控速的位姿到位姿函數
中圖分類號:TP242? ? ? ? ? ? 文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)06-0139-02
Abstract: In order to make use of the site, increase the survival time of defensive fish, puts forward a survival challenge strategy based on URWPGSim2D simulation platform: defense strategy based on dynamic balance of obstacles. This paper introduces the implementation of defense strategy, a controllable speed function and analyzing dynamically balanced routes. The results of experiments and competitions show that: The defense strategy shows excellent defense performance, which can effectively avoid the attack of attacking fish and increase the survival rate of defending fish.
Keywords: 2D simulation; survival challenge strategy; defense strategy based on dynamic balance of obstacles; a controllable speed function
引言
URWPGSim2D仿真平臺提供一種仿真機器魚的實時系統,采用面向對象思想。從對象建模的角度看,包括仿真機器魚、仿真環境和仿真使命(比賽或實驗項目)三類模型,以仿真使命模型為中心,較真實地仿真出仿生機器人的運動狀態。筆者基于使用2018年URWPGSim2D仿真平臺參加比賽時使用的策略對生存挑戰項目進行研究和改進,提出一種圍繞障礙物動態平衡的策略和一種可控速的位姿到位姿函數,能較好的使防守魚和進攻魚達到一種動態平衡狀態,延長了防守魚的存活時間。
1 生存挑戰項目介紹
2D 仿真生存挑戰是由2支隊伍參與,每支隊伍4條仿真機器魚,生存挑戰比賽項目比賽場地采用標準仿真場地(3000mm*2000mm)的1.5倍尺寸的場地,即規格為4500mm*3000mm,場地中央有三塊固定的正方形障礙物,其邊長為 400mm,中心點坐標分別為(0,700),(0,0),(0,-700)。
比賽初始狀態時,防守方有4條機器魚,1號魚為特殊魚,充當“防御手”的角色;2,3,4號魚為常規魚,充當“躲避手”的角色,進攻方只有一條魚,為特殊魚,充當“捉捕手”的角色。比賽總時長10分鐘,分上下半場,一個半場時長5分鐘,上下半場切換,進攻方和防守方亦交換。
比賽時,“捉捕手”要盡量抓捕“躲避手”, “躲避手”要盡量躲避“捉捕手”。比賽結束后,通過“捉捕手”抓捕的“躲避手”數量和抓捕時間判斷輸贏。
2 動態平衡路線分析
由生存挑戰項目介紹可知,進攻魚的最大速度檔是15檔,而防守2、3、4號魚的最大速度檔是8檔。假設進攻魚和防守魚暴露在一條直線上,憑借進攻魚在速度上的優勢,進攻魚可以很輕松的抓捕到防守魚。而當進攻魚的路線為一條曲線時,進攻魚的速度不能時刻保持15檔,運動曲線的半徑越小,進攻魚能達到的最大速度檔越小。在此基礎上,經筆者反復測試后得出結論:當運動曲線半徑趨近于0時,進攻魚的速度檔位為0檔;當進攻魚的前進路線大致是一個半徑約300mm的圓時,進攻魚的速度在8檔左右。考慮到障礙物對角線長約為566mm,對角線長度小于計劃路徑圓的直徑600mm,所以當以平臺的三個障礙物的中心為前進路線的圓心,300mm為半徑時的前進路線時,防守魚和進攻魚之間至少存在一個障礙物,進攻魚改變進攻策略時,防守魚也有充足的時間和機會做出相應的調整,大大增加了防守魚的容錯率,使防守2、3、4號魚的生存機會得到提升。
3 防守策略
針對目前主流的進攻策略,筆者以進攻魚抓捕防守3號魚為例來說明防守策略(防守2、4號魚策略與防守3號魚策略相同)。首先,以障礙物的對角線為分割可將平臺分割為4個區域(如圖1)。
根據進攻魚所在區域,判斷防守3號魚的目標區域。具體代碼如下:
Z31=mission.TeamsRef[(1+teamId)%2].Fishes[0].PositionMm.x;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
Z32=mission.TeamsRef[(1+teamId)%2].Fishes[0].PositionMm.x*-1;? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
判斷進攻魚的X坐標與0的大小關系和Z坐標與Z31、Z32的大小關系,可以判斷進攻魚所在區域。而防守魚所在區域,應是和進攻魚所在區域相對的區域,這樣才能確保進攻魚和防守魚之間至少有一個障礙物。
3.1 如果進攻魚在1號區域
此時防守3號魚目標點坐標應在3號區域。根據進攻魚的坐標和障礙物的中心坐標可通過兩點確定一條直線,將Z=300帶入直線中,可以得到防守3號魚的目標點X坐標。
3.2 如果進攻魚在2號區域
此時防守3號魚應在4號區域。根據進攻魚的坐標和障礙物的中心坐標可通過兩點確定一條直線,將X=300,帶入直線中,可以得到防守3號魚的目標點Z坐標。
以此類推,可以得到進攻魚在3號區域、4號區域時防守3號魚的目標點。通過控制防守魚的運動軌跡可使進攻魚的前進路線大致是一個半徑約300mm的圓,初步達到預想方案。
4 可控速的位姿到位姿函數
防守魚如果使用自帶的PoseToPose函數,當目標點的變化程度較大時,防守魚會出現先轉向在前行的情況。在這種情況下,進攻魚會以最大直線速度抓捕防守魚,防守魚毫無逃生機會。為不出現此類情況,筆者根據目標點和仿生魚當前坐標開發了一個可控速的位姿到位姿函數,可根據具體的魚體轉向角度,調整轉向速度、前行速度。有效的克服了仿生魚先轉向再前行的困難。
魚體所需轉向角度=仿生魚此時的魚體方向角度-目標點角度。其中,仿生魚此時的魚體方向可由TeamsRef [teamId].Fishes[i].BodyDirectionRad得到當前隊伍第 i 條魚魚體方向。
目標點角度可通過此方式得到:目標點和魚體前端剛體中心兩點得到一個向量,將該向量單位化。因為場地是從正X軸到負X軸,順時針為0~π,逆時針為0~-π,所以將單位化后的向量與(1, 0, 0)單位向量做點積運算,并對結果做反三角函數運算。應該注意的是所得到的角度應控制在-π~π之間。
最后,將-π~π區間劃分為很多個小區間,為每一個小區間分配不同的速度值和角速度值,當某一時刻魚體所需轉向角度在該小區間內,就會按照設定速度檔和轉向檔前進。魚體所需轉向角度不斷變化,就會導致速度檔和轉向檔變化,從而達到可控速的位姿到位姿的要求。
采用該區間的速度值、角速度值。不斷調整后,可使防守魚游動路線為一個半徑約300mm的圓。當面臨更加復雜的情況時,比如進攻魚在一段時間沒有任何進展時,采取掉頭、停止等動作都可以離開設定的規劃路線。
筆者根據所寫防守策略和所使用的可控速的位姿到位姿函數分析,當進攻魚采取掉頭時,對于防守魚來說,目標點變化程度不大且目標點均位于防守魚原定路線的前方,防守魚幾乎不可能出現用魚身塞住障礙物之間的通道。并且目標點和進攻魚之間一直存在一個障礙物,當進攻魚再次發動進攻時,防守魚有充足的時間,調整路線,再次進入計劃路線。當進攻魚采取停止游動時,目標點沒有變化,防守魚到了目標點后也會采取停止游動的動作,而當進攻魚再次發起進攻時,目標點同樣會變化,防守魚也同時游動,再次進入計劃路線。
5 結束語
采用該防守策略,大大增加了防守魚的生存率,增加了防守魚的存活時間。而可控速的位姿到位姿函數不僅能應用躲避對方魚的攻擊,用于進攻魚時也能達到比較好抓捕的效果。
參考文獻:
[1]國際水中聯盟2D仿真會.URWPGSim2D開發人員手冊v1.2Rev
ised20120101[Z].北京:北京大學智能控制實驗室,2012:1-2.
[2]夏慶鋒,陸偉乾,顧雋逸.基于線性回歸的2D仿真生存挑戰策略[J].2018(11):93-96.
[3]謝良松,馮治國,趙馴峰,等.基于URWPGSim2D仿真平臺的生存挑戰策略[J].2018(3):9-11
[4]仇紅劍,趙偉,夏慶鋒.水中機器人2D仿真的策略優化[J].兵工自動化,2011(12):91-93.
[5]趙國冬,田璐璐,楊帥峰.2D仿真機器魚生存挑戰關鍵技術策略[J].兵工自動化,2018(9):21-23.