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