鄭新宇
(西南石油大學(xué) 四川 成都 610500)
近年來,仿生學(xué)機(jī)器人已經(jīng)被運(yùn)用到多個(gè)領(lǐng)域,尤其是以水中機(jī)器仿生魚為導(dǎo)向的機(jī)器人更是在自動(dòng)控制、物資傳遞、災(zāi)害救援和海底勘探等多個(gè)方面扮演著重要角色。2D仿真平臺(tái)真實(shí)模擬仿生機(jī)器魚各個(gè)關(guān)節(jié)的位姿變化、運(yùn)動(dòng)狀態(tài)變化情況及機(jī)器魚水球比賽運(yùn)行等情況[1],一方面,可以更好的研究機(jī)器魚的運(yùn)動(dòng)理論和碰撞理論;另一方面,還可以讓更多的研究人員、學(xué)生參與到平臺(tái)的開發(fā)和比賽中,為水中機(jī)器人技術(shù)的發(fā)展做出一定的貢獻(xiàn)。比賽項(xiàng)目提供了模擬真實(shí)場(chǎng)景的平臺(tái),能夠更有效的模擬機(jī)器魚在真實(shí)場(chǎng)景的狀況[2],本文闡述的是在2D仿真平臺(tái)上基于快速得分的搶球策略,盡可能多得分,保證在大概率上發(fā)揮主場(chǎng)優(yōu)勢(shì)。
(一)比賽場(chǎng)地介紹。搶球博弈項(xiàng)目是2D仿真魚的子項(xiàng)目,2D仿真搶球項(xiàng)目采用模擬標(biāo)準(zhǔn)化場(chǎng)地,真實(shí)還原水中動(dòng)態(tài)環(huán)境,開場(chǎng)初始位置的仿真機(jī)器魚以及所需要的場(chǎng)地元素如圖1所示。
圖1 搶球博弈比賽場(chǎng)地
雙方隊(duì)伍各有兩條機(jī)器魚,對(duì)稱分布于賽場(chǎng)的左右兩半部分,9個(gè)仿真水球中有三個(gè)3分水球位于賽場(chǎng)中央,其余兩個(gè)2分水球和四個(gè)1分水球?qū)ΨQ分布于機(jī)器魚的兩側(cè)。場(chǎng)地的左右方都有三塊綠色障礙物所圍成對(duì)方隊(duì)伍的目標(biāo)球門,被稱為左球門和右球門。
(二)比賽過程。在比賽開始后,參賽隊(duì)伍通過加載策略驅(qū)動(dòng)仿真機(jī)器魚進(jìn)行搶球、射門、推球、帶球等動(dòng)作,目標(biāo)是將仿真水球推進(jìn)己方的目標(biāo)球門。經(jīng)過裁判允許后,方可在比賽過程中更換策略,在比賽時(shí)間遞減到一半時(shí),服務(wù)端會(huì)彈出“Pause”的指令,提示暫停比賽,待雙方隊(duì)伍交換場(chǎng)地之后,執(zhí)行“Continue”指令繼續(xù)比賽,在比賽時(shí)間遞減為0時(shí),服務(wù)端會(huì)彈出提示,經(jīng)過裁判確認(rèn)比賽后,比賽結(jié)束。
在2D搶球博弈仿真平臺(tái)中,除交換半場(chǎng)的時(shí)機(jī)外,每支隊(duì)伍都可在每個(gè)半場(chǎng)提出一次更換策略的請(qǐng)求,分析對(duì)方采用的策略并及時(shí)更換己方策略顯得尤為重要,以下研究了開場(chǎng)策略、下半場(chǎng)策略以及全場(chǎng)區(qū)域劃分策略。
(一)開場(chǎng)策略。在雙方隊(duì)伍開場(chǎng)階段,由于平臺(tái)仿真的客觀因素,導(dǎo)致機(jī)器魚攜帶3分球不穩(wěn)定。根據(jù)平臺(tái)提供的運(yùn)球函數(shù),機(jī)器仿真魚在水中的運(yùn)行速度也比較慢,并且3分球的表面較為光滑,開場(chǎng)攜帶3分球易造成失誤。針對(duì)此類情況,可以通過充分利用場(chǎng)地邊角來實(shí)現(xiàn)快速得分。開場(chǎng)讓機(jī)器魚1和機(jī)器魚2運(yùn)動(dòng)到邊角,再順著墻壁帶著球運(yùn)動(dòng),待機(jī)器魚通過轉(zhuǎn)彎,再帶動(dòng)球沿著豎直的墻壁同時(shí)向中心點(diǎn)運(yùn)動(dòng),最后通過控制速度和角度,讓機(jī)器魚更快地進(jìn)球得分,最終達(dá)到開場(chǎng)六分的好成績(jī)。
通過對(duì)場(chǎng)地的分析測(cè)試,基于區(qū)域不同進(jìn)行了不同的速度規(guī)劃,在機(jī)器魚1和機(jī)器魚2到達(dá)場(chǎng)地邊之前,先進(jìn)行加速,再尋找目標(biāo)位置點(diǎn),最后穩(wěn)定減速在球旁邊,考慮到可能存在對(duì)方魚干擾的因素,在魚到場(chǎng)地邊界這一小步中加入對(duì)方魚頭距離檢測(cè)變量來檢測(cè)對(duì)方所處位置,一旦對(duì)方魚頭超過我方魚頭,我方魚頭會(huì)朝向?qū)Ψ紧~頭的側(cè)方向進(jìn)行加速攻擊,進(jìn)而達(dá)到擠開對(duì)方機(jī)器魚的目的。
除此之外,為了防止機(jī)器魚在場(chǎng)地邊界出現(xiàn)失控的情況,需要在控制機(jī)器魚運(yùn)動(dòng)的控制程序中加入許多邏輯控制變量來進(jìn)行判決,讓機(jī)器魚能夠順利進(jìn)行帶球、補(bǔ)球等一系列操作,進(jìn)而確保作為控制對(duì)象的機(jī)器魚能夠快速拿下6分的成績(jī)。
(二)下半場(chǎng)策略。依據(jù)本場(chǎng)比賽的規(guī)則,充分利用上下半場(chǎng)各有一次更換策略的機(jī)會(huì),并根據(jù)對(duì)方隊(duì)伍的搶球策略及時(shí)更換不同的策略。在開局采取快速進(jìn)攻的策略取得六分后,請(qǐng)求暫停,將當(dāng)前的策略換為“一魚進(jìn)攻,一魚帶球”,具體表現(xiàn)為:根據(jù)時(shí)間參數(shù)設(shè)定好攻擊對(duì)方機(jī)器魚的周期,用己方一條機(jī)器魚去帶一個(gè)3分球,另一條機(jī)器魚每隔一分鐘輪流攻擊對(duì)方的兩條魚。
參賽選手可以通過修改攻擊對(duì)方機(jī)器魚的周期參數(shù)來獲取更多策略,可以將參數(shù)設(shè)定為1分鐘、30秒等等,結(jié)合具體情況來確定數(shù)值。采用該策略能夠?qū)崿F(xiàn)最大程度干擾對(duì)方以及己方進(jìn)球機(jī)會(huì)最大化,同時(shí)還要針對(duì)球所處的位置來編寫機(jī)器魚的各種運(yùn)球策略,方便在比賽時(shí)更換使用。
(三)全場(chǎng)劃分區(qū)域策略。比賽場(chǎng)地劃分為4個(gè)區(qū)域[3]:中央?yún)^(qū)域、死角區(qū)域、進(jìn)球區(qū)域、球門區(qū)域。中央?yún)^(qū)域包含左區(qū)域和右區(qū)域,根據(jù)不同的區(qū)域來設(shè)定機(jī)器魚的不同目標(biāo)點(diǎn)、速度、角速度以及判定條件,讓機(jī)器魚帶動(dòng)球運(yùn)動(dòng)時(shí)避免仿真系統(tǒng)里隨機(jī)模擬的水波以及仿真機(jī)器魚和場(chǎng)地邊緣相互作用而產(chǎn)生的失真情況,進(jìn)而能夠穩(wěn)定地帶動(dòng)球朝目標(biāo)區(qū)域移動(dòng)。
大多數(shù)隊(duì)伍傾向于先確定水球和目標(biāo)點(diǎn)的位置,讓機(jī)器魚、水球和目標(biāo)點(diǎn)都在一條直線上,通過機(jī)器魚頭部頂球的方式直線運(yùn)球,慢慢靠近己方球門的目標(biāo)區(qū)域[4],倘若三者不在同一條直線上,通過降低機(jī)器魚前進(jìn)的速度,同時(shí)增大角速度,使得魚體迅速調(diào)整方向,再將水球帶入指定目標(biāo)區(qū)域。
本文所提策略包含開場(chǎng)策略、下半場(chǎng)策略以及全場(chǎng)劃分區(qū)域策略,能夠在賽場(chǎng)上快速得到較高的分?jǐn)?shù),盡快占據(jù)主場(chǎng)優(yōu)勢(shì),經(jīng)過試驗(yàn)機(jī)器魚的運(yùn)行軌跡與編程軌跡大體相同,并且易于控制處于特殊位置的機(jī)器魚,最終能夠取得不錯(cuò)的成績(jī)。
限于仿真平臺(tái)模擬真實(shí)場(chǎng)景并帶有干擾函數(shù)的特點(diǎn),難免會(huì)出現(xiàn)一些失控的情況,機(jī)器魚在帶球過程中會(huì)出現(xiàn)頭部穿過水球以及卡在綠色障礙物的情況,極少出現(xiàn)機(jī)器魚帶球失誤而出現(xiàn)在場(chǎng)地中圍繞進(jìn)球門繞圈的狀況。
搶球博弈策略充分考慮平臺(tái)仿真環(huán)境、機(jī)器魚的運(yùn)動(dòng)狀態(tài)以及水球自身特征等因素,基于區(qū)域劃分比賽場(chǎng)地,充分利用機(jī)器魚的身體部位進(jìn)行運(yùn)球,從而能夠更好地占據(jù)開場(chǎng)優(yōu)勢(shì),同時(shí)依照對(duì)方隊(duì)伍機(jī)器魚的運(yùn)動(dòng)軌跡及時(shí)更換策略,在策略上壓制對(duì)方。通過對(duì)本文策略的多次試驗(yàn),結(jié)果表明大多數(shù)情況下都能夠較快取得不錯(cuò)的成績(jī)。