楊崇海
摘 要:近幾年機器人技術不斷發展,機器魚也成為這一領域的熱門研究對象。文章介紹了2D仿真平臺URWPGSim2D,斯諾克規則,目前常用的策略和算法,以及為了提高機器魚的速度和效率,提出了策略改進。
關鍵詞:2D仿真;斯諾克;頂球算法
前言
近年來機器人技術不斷發展,科學家們將機器人技術同仿生學結合,便考慮利用機器來模仿魚。魚作為脊椎動物,進化出了超強的水中運動能力,不僅能在拉力游速或爆發游速下實現高機動性,而且能在持久游速下保持低功耗、高效率。機器魚的實用性很強,而且已經應用到了多種領域中,如探測水體污染、水下探測、水下救援等。目前專門開發了一個水中機器人2D仿真比賽平臺,用于解決仿真機器魚和水中機器人比賽項目研發中遇到的困難,是一款實時仿真系統,水下仿真魚的各個部位的姿態變化、運動狀態變化都能模擬出來。通過機器魚水球比賽,能很好地測試水下仿真機器魚的各種運動學理論、水波干擾理論及碰撞檢測理論等體系結構,從而更好地促進了水下機器人技術的發展。
1 仿真平臺及斯諾克項目簡介
1.1 平臺簡介
水中機器人水球比賽仿真器2D版(Underwater Robot Water Polo Game Simulator 2D Edition, URWPGSim2D)軟件主要作為水中機器人比賽的2D仿真組比賽平臺,包括服務端和客戶端兩大部分。服務端模擬水中比賽環境,控制和呈現比賽過程及結果,向客戶端發送實時比賽環境和過程信息及結果;客戶端模擬比賽隊伍,加載比賽策略,完成計算決策過程,向服務端發送決策結果。
1.2 開發環境
URWPGSim2D采用操作系統Windows XP Professional SP3,Windows Vista或Windows 7,集成開發環境為Microsoft Visual Studio Team System 2008 Team Suite with SP1或 Microsoft Visual Studio 2008 Professional with SP1,使用C#(CSharp) V3.0編譯。
1.3 仿真機器魚
魚頭為弧形,魚體為矩形,魚尾為三個首尾相接底邊長遞減的等腰梯形,尾鰭為一個細長矩形和胸鰭為兩個直角三角形。
1.4 仿真水球
仿真水球的2D模型為一個圓形。
1.5 比賽場地
2D仿真水中斯諾克為非對抗性比賽項目,每只隊伍只有一條仿真機器魚,比賽場地大小為4500mm*3000mm,包括6個球門,4個矩形障礙物,10個仿真球。
1.6 斯諾克規則介紹
(1)第一階段:比賽開始先把1個紅球推入球洞,然后按照一個紅球一個彩球的順序推球入洞,直至全部紅球入洞。其中彩球入洞后自動放回初始位置,若初始位置有其他球,則其他球被自動擠開。(2)第二階段:紅球全部入洞后,按照黃、綠、棕、粉的順序推彩球入洞。(3)符合上述規則的進球為有效進球,否則為無效進球。無效進球為紅球時彈出提示對話框,裁判確認后,紅球自動放回球門處;無效進球為彩球時不提示,彩球直接放回初始位置,若初始位置有其他球,則其他球被自動擠開。
2 比賽策略分析
2.1 目標球的選擇
在比賽中,對于目標球的選擇時,考慮是分數最大化。因此在選擇彩球時,通常優先選擇粉球。選擇紅球時,通常選擇的是離目標球門最近的紅球。
2.2 目標球門的選擇
在比賽中,選擇球門時,大多考慮的是減少機器魚頂球的時間,爭取在有限的時間里獲得更高的分數。
2.3 頂球算法的選擇
2.3.1 基本頂球算法。在基本頂球算法中,可以設置目標球設置目標點與最佳頂球點,目標點為球到球門的正方向的射線上的一個點,最佳頂球點為反方向的一個點。魚會先游到最佳頂球點,再把球按著目標點的方向游動,將球頂進球門。魚在靠近最佳頂球點的過程中,先加速再減速到最佳頂球點,然后轉彎,最后加速頂球。此算法原理簡單,容易實現,但是實際比賽和測試中效果并不好,主要原因是:水中的環境在不斷變化,每次都不能到達相同的效果,水中阻力比較小,魚不能準確的停在最佳頂球點,魚會按照原來的運行軌跡運動一段的時間,為了達到最佳頂球點,還需要不斷調整姿態,浪費了比賽的時間,不能取得良好的成績。
2.3.2 切入圓頂球算法。切入圓頂球算法先運動到切入圓上,再沿著圓的軌跡運動到最佳頂球點,再把球頂到球門,實現了魚到球路徑的規劃。基本算法過程描述為:
(2)確定切入圓。過A點做直線L1的垂線L2,L1為過球的一條直線,在L2上向圓內取距離A點為r的圓心O,然后以r為半徑,做圓。即圓心為O,半徑為r,最佳頂球點A為圓上的一個切點。
(3)半徑r的選擇。r為魚旋轉最流暢的轉彎半徑,即在一定的轉彎檔位下,游動速度最快的轉彎半徑。
切入圓頂球算法達到了引導球按照指定的路徑運動到最佳頂球點A的效果,同時魚的姿態調整簡潔,減少了調整角度的時間,但在比賽中和測試中效果并不理想,主要是因為:由于水波的擾動,球隨時處于一個變化的狀態,從而使切入圓不斷變化,導致魚長期處于位姿不斷調整的狀態,增加了進球的時間。
3 策略改進
3.1 目標球選擇改進
選擇距離最短的紅球可能會受到其他紅球的阻礙,導致魚頂球困難,浪費更多的時間,可能會出現其他不可控的狀況。因此可以根據自己的路徑規劃來選擇紅球,減少其他紅球的阻礙,增加穩定性。
3.2 目標球門選擇改進
影響頂球時間的因素為魚要旋轉的角度和前進的距離以及球到球門的距離。通過比賽的實踐和平時的測試,我們能夠得出,平臺中水流是向下的,因此逆水流頂球可能會導致球發生偏移,再次調整魚的姿態需要花費大量的時間,導致策略不穩定,影響比賽成績。所以選擇球門時要盡量選擇下方球門,根據對路線的規劃的距離的選擇,中下球門和左下球門為最近目標球門。
3.3 頂球算法選擇改進
在實際中發現,基本頂球算法較切入圓算法有更高的效率,因此如果能在基本頂球算法的基礎上,提出一些對算法的改進,可以有效的提高成績?;卷斍蛩惴ㄊ侵苯邮骨虻竭_最佳頂球點,魚的轉彎會隨著慣性而出現偏移,導致消耗更多的時間。可以將基本頂球算法的過程分為多個階段,使魚一步一步達到目標點,有助于對路徑的規劃,使比賽的得分得到提高,同時也可以在不同階段設置不同的速度,以達到分段控制的目的。
4 結束語
本文對目標球、目標球門進行了合理選擇,并且提出了將魚的進球分成多個階段的策略,提高了策略的穩定性,使得機器魚的進球效率得到了很大的提升。目前此策略在比賽中得到了很好的應用,能夠取得不錯的成績。
參考文獻
[1]王梅娟,李易凡,范彬彬.基于URWPGSim2D仿真平臺的測試分析與策略改進[J].兵工自動化,2013(12):67-68.
[2]陶金,孔峰,謝廣明.基于動作決策的機器魚頂球算法[J].兵工自動化,2010,29(11):70-73.
[3]高俊杰,賈翠玲,李衛國.水中機器人2D仿真水球斯諾克策略優化[J].兵工自動化,2012(11):51-55.