摘 要: 隨著仿真機(jī)器人在國(guó)內(nèi)國(guó)外迅速發(fā)展,對(duì)于仿真機(jī)器人的設(shè)計(jì)與提高也受到更多人的重視,。提出了RoboCup機(jī)器人足球仿真中的關(guān)鍵性部分——基礎(chǔ)架構(gòu)設(shè)計(jì),,同時(shí)介紹了仿真機(jī)器人的系統(tǒng)環(huán)境、代理環(huán)境等,。為了提高機(jī)器人的工作效率,,著重討論了機(jī)器人對(duì)于足球的定位和控球問題。
關(guān)鍵詞: 機(jī)器人足球,;類人機(jī)器人,;定位
0 引言
RoboCup 3D類人仿真比賽[1]是一項(xiàng)類人機(jī)器人足球賽,需要極其逼近真實(shí)的比賽環(huán)境,,并且仿真機(jī)器人能夠模擬人的動(dòng)作,。
參賽的機(jī)器人必須是參賽隊(duì)伍自主研制的、具有人的基本動(dòng)作的機(jī)器人,,其對(duì)外部信息的獲取只能通過頭部的攝像頭拍攝圖片,,經(jīng)處理再傳給機(jī)器人。比賽的場(chǎng)地是450 cm×300 cm,,雙方分為藍(lán)方(機(jī)器人和球門藍(lán)色)和橙方(機(jī)器人和球門橙色),,標(biāo)準(zhǔn)的Nao機(jī)器人高57 cm,重4.5 kg,,擁有22個(gè)自由度:每條腿6個(gè),,每條手臂4個(gè),頸部2個(gè),,如圖1所示,。
最新的賽制加入了異構(gòu)要求,需要使用三種不同類型的機(jī)器人,,它們的區(qū)別在于手和腿的長(zhǎng)短各不相同,,并且出現(xiàn)了一種擁有腳趾的機(jī)器人,更加符合現(xiàn)實(shí)世界里的比賽情況,,但也對(duì)機(jī)器人建模,、行為模擬以及參數(shù)調(diào)整提出了更高的要求,。
RoboCup類人組比賽是一項(xiàng)代表機(jī)器人發(fā)展最高水平的仿人機(jī)器人競(jìng)技比賽。機(jī)器人對(duì)外部環(huán)境的感知只能通過位于機(jī)器人頭部的可見光波段下的視覺傳感器來進(jìn)行,,因此,,RoboCup類人組比賽是一項(xiàng)全自主的類人足球機(jī)器人比賽。
1 仿真系統(tǒng)描述
比賽要求在官方提供的模擬器SimSpark中進(jìn)行比賽和模擬,,如圖2所示,。
SimSpark使用的是一種能夠逼真模擬和檢測(cè)剛體運(yùn)動(dòng)中碰撞和摩擦的開源動(dòng)態(tài)引擎庫(kù)(ODE)。該庫(kù)在2010年添加了視覺遮擋和聲音傳感器,。這個(gè)模擬器平臺(tái)在不需要機(jī)器人硬件成本投資的情況下促進(jìn)了在復(fù)雜的仿真環(huán)境中低級(jí)類人機(jī)器人和多智能體系統(tǒng)的仿真控制的研究,,為智能體有效地在繁重的訓(xùn)練中學(xué)習(xí)基礎(chǔ)解決方案提供了可能。
SimSpark模擬器是仿真過程的服務(wù)主機(jī),,每個(gè)參賽隊(duì)的機(jī)器人通過TCP端口連接到主機(jī),。各隊(duì)伍的11個(gè)機(jī)器人進(jìn)程并行運(yùn)行并且除了通過一個(gè)有限的數(shù)據(jù)通道通信外不能隨意地相互通信。在模擬過程中,,客戶機(jī)向服務(wù)器每隔20 ms發(fā)送一次力矩命令,,但是每60 ms接受一次視頻信息。
在SimSpark中,,客戶機(jī)不能夠看見其他的機(jī)器人,、足球和在這20×30場(chǎng)地上的任何標(biāo)記。球場(chǎng)上有8個(gè)分布在球場(chǎng)邊角和球門上的機(jī)器人可辨識(shí)的標(biāo)記,,它們的坐標(biāo)對(duì)用戶開放,。
類人仿真系統(tǒng)[2]由Server、Monitor和Agent 3個(gè)主要部分組成[3],。
Server是能使不同的球隊(duì)進(jìn)行足球比賽的系統(tǒng),,比賽以C/S結(jié)構(gòu)進(jìn)行,要求球隊(duì)的開發(fā)工具支持UDP/TCP連接(目前僅使用TCP協(xié)議),,對(duì)實(shí)現(xiàn)沒有任何限制,。客戶端每個(gè)Agent都是獨(dú)立的進(jìn)程,,通過給定的端口與Server連接。服務(wù)器啟動(dòng)及比賽流程如圖3所示,。
Monitor是一個(gè)可視化的工具,,顯示虛擬場(chǎng)地及比賽過程。
RoboCup 3D類人仿真比賽[4]采用的是11V11的模式,。當(dāng)Agent和Server通過給定的端口連接后,,所有的信息都通過該端口傳遞,各Agent從Server接收感知信息,,感知信息包括其他球員,、場(chǎng)地標(biāo)志等的相對(duì)位置以及其他比賽狀態(tài)信息,,球員對(duì)收到的信息進(jìn)行分析處理并做出下一個(gè)動(dòng)作,將該動(dòng)作的請(qǐng)求發(fā)送給Server,,Server接收到這些消息后執(zhí)行請(qǐng)求并相應(yīng)地更新環(huán)境,,然后將感知信息發(fā)回每個(gè)Agent,如此反復(fù),,直到比賽結(jié)束,。
2 代理體系結(jié)構(gòu)
代理客戶端運(yùn)行的“感覺”、“思考”和“行為”在同一個(gè)模擬周期序列,。在“感覺”階段,,代理從SimSpark服務(wù)器接收傳感器信息,對(duì)自身和其他物體進(jìn)行定位,,構(gòu)建世界模型,。同時(shí),它能根據(jù)受力感知器讀數(shù),,決定如果落下或者檢測(cè)到任何跌倒,,它立即執(zhí)行“起身”行為。否則,,代理去“思考”的階段,。“思考”階段,,對(duì)機(jī)器人進(jìn)行環(huán)境分析,,并決定做什么。在本戰(zhàn)術(shù)中,,玩家的角色(除了守門員是固定的球員之一)是動(dòng)態(tài)定位和分配角色的,。這一階段也決定了高層次的行為,如在哪個(gè)方向,,阻止或踢球,,并在移動(dòng)或運(yùn)球。
“行為”階段執(zhí)行兩種類型的行動(dòng):簡(jiǎn)單的行為和行走,。簡(jiǎn)單的動(dòng)作,,如正從地上爬起來、守門員擋球踢,,由關(guān)節(jié)角度序列進(jìn)行代理設(shè)置,。一個(gè)有限自動(dòng)機(jī)的目的是監(jiān)測(cè)行動(dòng)和處理異常,使用PID控制器來計(jì)算各關(guān)節(jié)所需要的扭矩,?;谠诰€模式所描述的行走軌跡,按照步長(zhǎng)和轉(zhuǎn)角的腳步規(guī)劃計(jì)算,然后使用逆運(yùn)動(dòng)學(xué)獲得相應(yīng)的關(guān)節(jié)角度,。
3 定位
3.1 參數(shù)要求
SimSpark服務(wù)器的簡(jiǎn)化視覺系統(tǒng)提供的相機(jī)和物體之間的相對(duì)位置在球坐標(biāo)系如圖4所示,,因此不需要圖像處理。然而,,機(jī)器人只能看到120°范圍內(nèi)的事物,,所以需要處理與視覺的限制方法來實(shí)例化。
仿人機(jī)器人自定位方法估計(jì)和局部坐標(biāo)方向的位置v相對(duì)于世界坐標(biāo)系的w(參見圖4)[5],。這個(gè)問題涉及至少6個(gè)配置參數(shù),,很難用有限的里程計(jì)和傳感器的運(yùn)動(dòng)模型建立的關(guān)系。同時(shí),,大多數(shù)時(shí)候,,機(jī)器人實(shí)際上定位的要求是當(dāng)它直立行走在平坦的表面和髖關(guān)節(jié)被限制在一個(gè)水平面,因此,,(高度,、滾動(dòng)和俯仰)是在一個(gè)小范圍的界。所以,,在總體上機(jī)器人只需要預(yù)測(cè)二維位置(x,,y)。
3.2 3D倒立擺
如圖5所示,,把踝關(guān)節(jié)作為基準(zhǔn)坐標(biāo)P0=(x0,,y0,z0),,腳關(guān)節(jié)到腳邊緣距離為L(zhǎng)a,、Lb、Lc和Ld,。質(zhì)心位置為Pcog=[xcog,,ycog,zcog]T,,ZMP為Pzmp=[xzmp,,yzmp,zzmp]T,。根據(jù)ZMP的定義,,當(dāng)只考慮單腿支撐,ZMP是在腳的中心,,所以機(jī)器人的穩(wěn)定性是最好的,。在獲取ZMP的位置之后[5],通過行走參數(shù)和相應(yīng)的COG位置,,得到計(jì)算單位。然后在腰部承擔(dān)相對(duì)質(zhì)心的位置不變,并直接獲得腰位置,。最后,,通過把整個(gè)腿關(guān)節(jié)角度的運(yùn)動(dòng)學(xué)逆解,得到腳和腰部的位置,,進(jìn)而計(jì)算腳的軌跡,,使其準(zhǔn)時(shí)到達(dá)所需位置。
4 控球決策
機(jī)器人足球的數(shù)目從2010年的6個(gè)變?yōu)?011年的9個(gè),,現(xiàn)在是11個(gè),,這加重了團(tuán)隊(duì)合作的重要性。盡管增加了機(jī)器人的數(shù)目,,但是控球的機(jī)器人只有一個(gè),。到目前為止,機(jī)器人之間的遠(yuǎn)距離傳球?qū)Υ蠖鄶?shù)隊(duì)來說還是不現(xiàn)實(shí)的,,帶球者對(duì)球的控制才是贏球的關(guān)鍵,。
在模型中,運(yùn)球前進(jìn)的人是被稱為英雄的角色,,在競(jìng)賽中承擔(dān)著最重的負(fù)擔(dān),。在策略中,代理首先根據(jù)球來選擇一個(gè)編隊(duì),,然后選擇一個(gè)英雄,。代理的視角是受限制的,每個(gè)代理感知自我和其他球員的位置存在一定的偏差,,多個(gè)英雄可能會(huì)出現(xiàn)在同一時(shí)間,,造成混亂的碰撞球,這給控球帶來了負(fù)面影響,。為了解決這個(gè)問題,,采用投票的方法選擇最好的英雄,使用通信系統(tǒng)同步每個(gè)代理的選擇(因?yàn)樗袝r(shí)間延遲),。在通信系統(tǒng)中,,代理不能100%確定自己的選擇,給每個(gè)投票一個(gè)權(quán)重來描述一個(gè)概率值(0,,1),。
當(dāng)英雄在運(yùn)球時(shí),確保其他球員保持優(yōu)勢(shì)地位,,協(xié)助攻擊,。每個(gè)角色的分配(或位置)根據(jù)機(jī)器人的位置形成相應(yīng)的編隊(duì)。與此同時(shí),,也有其他同步角色在待定中,,以保持攻擊的順序,,來防止?jié)撛诘呐鲎驳娘L(fēng)險(xiǎn)[6]。
在這里,,使用以下標(biāo)準(zhǔn)選擇英雄:(1)球員是否下降,;(2)球是否可見的球員;(3)球員與球的距離,;(4)球員在球的前面還是后面(球員在球前通常需要額外的時(shí)間轉(zhuǎn)身),;(5)球員是否是守門員(競(jìng)爭(zhēng)規(guī)則規(guī)定守門員必須第一);(6)這一位運(yùn)動(dòng)員在過去的周期是否是英雄,。
5 結(jié)論
建立類人機(jī)器人,,從底層控制優(yōu)化和學(xué)習(xí)問題到高層決策都涉及廣泛的知識(shí)。同時(shí),,在競(jìng)賽中隨著模擬實(shí)時(shí)性要求越來越高,,必須限制算法的計(jì)算復(fù)雜度。在高動(dòng)態(tài)環(huán)境噪聲環(huán)境下,,使用概率方法準(zhǔn)確定位機(jī)器人,。設(shè)計(jì)一個(gè)動(dòng)態(tài)腳步跟隨消耗少量計(jì)算能力和層次決策機(jī)制來實(shí)現(xiàn)球員之間的有效合作。
機(jī)器人個(gè)體的行為,,尤其是行走技能,,仍將是引導(dǎo)Robocup3D的主要因素。以后的工作重點(diǎn)是著重提高機(jī)器人行動(dòng)的控制和行走的穩(wěn)定性,,同時(shí)充分利用異構(gòu)機(jī)器人的優(yōu)勢(shì),。
參考文獻(xiàn)
[1] 舒文杰,耿麗娜,,鄭志強(qiáng).RoboCup仿真研究[J].系統(tǒng)仿真學(xué)報(bào),,2004,16(10):2220-2222.
[2] 于秀麗,,魏世民,,廖啟征.仿人機(jī)器人發(fā)展及其技術(shù)探索[J].機(jī)械工程報(bào),2009,,45(3):71-75.
[3] 程顯毅,,王軍,張俊.RoboCup 3D Server分析[J].計(jì)算機(jī)工程與科學(xué),,2006,,28(3):119-122,130.
[4] 鮑敦橋.仿真類人機(jī)器人設(shè)計(jì)及高層決策方法的研究[D].合肥:合肥工業(yè)大學(xué),,2009.
[5] 許元.RoboCup機(jī)器人足球賽3D仿真程序設(shè)計(jì)研究[D].南京:東南大學(xué),,2005.
[6] 胡翠娜.RoboCup 3D仿真比賽關(guān)鍵技術(shù)的研究[D].贛州:江西理工大學(xué),2007.