張傳飛
(南京郵電大學(xué)自動(dòng)化學(xué)院, 南京 210046)
RoboCup(Robot World Cup)仿真比賽在國(guó)際上已經(jīng)開展十多年了,近年在國(guó)內(nèi)也得到了迅速的發(fā)展。其中仿真2D機(jī)器人足球比賽是出現(xiàn)最早也是目前最為成熟的比賽。仿真2D機(jī)器人比賽盡量模擬真實(shí)世界中的情況,強(qiáng)調(diào)以有限的能力(感知能力有限,行為能力有限,通訊能力有限)和條件在非常復(fù)雜的動(dòng)態(tài)環(huán)境中活動(dòng),感知環(huán)境,相互合作,并在對(duì)抗性的比賽中獲得勝利[1-3]。為了贏得比賽,多個(gè)智能體的協(xié)作是關(guān)鍵,但每單個(gè)智能體的自身解析Server消息的準(zhǔn)確性才是根本。只有準(zhǔn)確地解析了Server的消息[5],才能準(zhǔn)確的建模,才能及時(shí)準(zhǔn)確地做出合適的決策與協(xié)作。
目前,由于各RoboCup參賽隊(duì)伍的底層工作已經(jīng)相對(duì)完善,大部分隊(duì)伍把研究集中在上層的策略部分,似乎目前鮮有隊(duì)伍對(duì)已有的底層做出研究和改變[6-7]。而我們Apollo2D隊(duì)伍根據(jù)自己的研究現(xiàn)狀[8-9],想從根本上做出一些改變。Server信息中視覺信息是其中最為重要的信息,對(duì)球員的建模決策有舉足輕重的作用,但有噪聲的存在。因此本文通過研讀仿真2D機(jī)器人比賽平臺(tái)的代碼及模型。從中提煉出平臺(tái)添加噪聲的公式[1-3],并進(jìn)行數(shù)學(xué)上的研究與分析,并提出一個(gè)可靠的解決辦法。
本文的組織結(jié)構(gòu)如下。首先,介紹從Server代碼中提煉出來的添加噪聲的量化公式。其次,針對(duì)所提出的公式進(jìn)行數(shù)學(xué)分析,以得出本文中所提出的方法“半逆推量化公式法”。最后,實(shí)驗(yàn)分析并驗(yàn)證該方法在實(shí)際比賽中的效果。
SoccerServer仿真真實(shí)世界復(fù)雜性的一個(gè)重要部分是隨著距離增加,視覺信息的精確度會(huì)降低。這是通過在視覺感知數(shù)據(jù)中引入噪聲來實(shí)現(xiàn)的。而且噪聲的大小與物體的遠(yuǎn)近成正比。SoccerServer中通過對(duì)發(fā)送的信息進(jìn)行量化處理來添加這個(gè)噪聲。
具體的量化過程分為兩種情況:若目標(biāo)是球或者球員Agent這些動(dòng)態(tài)的物體時(shí),目標(biāo)的距離根據(jù)公式(1)進(jìn)行量化。
式中,d表示SoccerServer中得到的精確距離;d0是經(jīng)過SoccerServer量化處理后視覺信息中收到的相應(yīng)量化實(shí)際距離。式(1)中有:
當(dāng)遠(yuǎn)處目標(biāo)是靜態(tài)的標(biāo)志點(diǎn)或線時(shí),目標(biāo)的距離值按式(3)進(jìn)行量化。
式 (3)中,quantize_step和 quantize_step_1是SoccerServer中規(guī)定的常量,分別為quantize_step_1=0.01,quantize_step_1=0.01。
由式(1)和式(3)可知,一個(gè)球員是很難知道場(chǎng)上遠(yuǎn)處物體的精確位置的。這樣,如何能夠較精確的確定一個(gè)物體的位置等信息,對(duì)于比賽陣型的調(diào)整、球員的跑位和上層策略的執(zhí)行具有十分重要的意義。
南郵Apollo2D隊(duì)通過研究量化公式的數(shù)學(xué)模型意義,為精確定位一個(gè)物體提出了一種很好的解決方法——半逆推量化公式法。以公式(1)為對(duì)象具體介紹使用這種方法來定位的動(dòng)態(tài)物體。
由式(1)可知,量化公式是通過對(duì)數(shù)、指數(shù)和取整函數(shù)這3個(gè)簡(jiǎn)單數(shù)學(xué)計(jì)算來完成的,在實(shí)際比賽時(shí)我們僅僅能夠收到經(jīng)過量化處理后的有噪聲的數(shù)據(jù)。將量化公式中的數(shù)學(xué)公式做出對(duì)應(yīng)的映射圖形如圖1所示。
在圖1中,當(dāng)實(shí)際收到距離為d0時(shí),對(duì)應(yīng)的精確距離d而言,由于式(2)中取整函數(shù)是一個(gè)區(qū)間范圍中的任意值,即d∈ [dmin,dmax),也就是說當(dāng)SoccerServer判斷出精確距離d在 [dmin,dmax)范圍內(nèi),經(jīng)過量化處理后,實(shí)際收到的距離值都是d0。
圖1 量化公式對(duì)應(yīng)映射關(guān)系
所以,實(shí)際收到的距離值d0是一個(gè)個(gè)離散的點(diǎn),而由圖1的映射關(guān)系逆推可以推導(dǎo)出的精確距離應(yīng)該是與之對(duì)應(yīng)的一個(gè)個(gè)連續(xù)的距離范圍。Apollo2D隊(duì)通過研究量化公式的過程得到:精確距離在比賽場(chǎng)地上的范圍理論上為d∈ [ 0,125.1],在量化精確距離時(shí),在第一次取整后對(duì)應(yīng)的是一個(gè)固定步長(zhǎng)為0.1的一系列點(diǎn),當(dāng)這些點(diǎn)再次量化后才對(duì)應(yīng)實(shí)際的一個(gè)個(gè)距離值d0。因此,Apollo2D隊(duì)正是利用這種關(guān)系,在量化公式的中間位置,即第一次取整后固定步長(zhǎng)對(duì)應(yīng)的一系列點(diǎn)位置,對(duì)應(yīng)圖2就是沿著粗箭頭的搜索方向,取出一系列的量化點(diǎn)來分別向兩端逆推量化公式(對(duì)應(yīng)圖2中的虛箭頭方向),求出對(duì)應(yīng)的精確距離d的范圍和收到的量化后的實(shí)際距離值d0,得到兩者之間的對(duì)應(yīng)關(guān)系,為后面的處理提供有效的數(shù)據(jù)。本文稱此方法為半逆推量化公式法。
圖2 量化公式半逆推法示意圖
在半逆推量化公式法中,因?yàn)閷?duì)數(shù)函數(shù)的作用,首先需要確定在搜索方向上量化點(diǎn)的范圍,在此可以利用極限距離的方法來確定區(qū)間范圍,即取精確值范圍的最小值和最大值。研究發(fā)現(xiàn),當(dāng)精確距離值d∈ [ 0,1]時(shí),取對(duì)數(shù)后為負(fù)值且在搜索方向上的量化點(diǎn)的分布范圍在(- ∞, 0]之間,但最終量化后的實(shí)際距離值d0基本上是在[0.0, 1.0]范圍以步長(zhǎng)為0.1的離散點(diǎn)。因此,經(jīng)過反復(fù)的實(shí)驗(yàn),搜索方向上的區(qū)間可以在[-3.0, 5.0]之間以步長(zhǎng)0.1取點(diǎn),利用半逆推量化公式法即可取得較好的距離對(duì)應(yīng)關(guān)系效果。
利用半逆推量化公式法,Apollo2D隊(duì)建立了如表1所示的距離對(duì)應(yīng)關(guān)系表。
表1 d0與d對(duì)應(yīng)關(guān)系
為了驗(yàn)證本文中的半逆推量化公式法的有效性,在此舉例來說明逆推量化公式時(shí)得到的精確d范圍。如圖3所示,當(dāng)實(shí)際收到的距離值d0=5.5時(shí),逆推量化公式可知,在第一次逆推rint函數(shù)得到取值范圍是d1∈ [ 5.45,5.55),對(duì)指數(shù)函數(shù)逆推可得第二次取值范圍是d2∈ [1.6771,1.6956),對(duì)rint函數(shù)再次進(jìn)行逆推得到第三次取值范圍是d3∈ [1.65,1.75),對(duì)對(duì)數(shù)函數(shù)逆推得第四次取值范圍,即精確距離范圍為d∈ [ 5.2070,5.7546),這與表1中利用半逆推量化公式法所得的精確距離范圍是完全一致的。
由表1可知,誤差Δδ與精確距離中間值dmid之間的關(guān)系如圖3、圖4所示。
圖3 誤差Δδ曲線圖
圖4 誤差Δδ與精確距離中間值dmid之間的關(guān)系圖
從表1、圖3和圖4中可以得出,假設(shè)精確距離是連續(xù)的,經(jīng)過量化后的實(shí)際距離值也是一個(gè)個(gè)離散的點(diǎn),而且精確距離值越大量化時(shí)添加的量化噪聲也會(huì)越大,實(shí)際距離值與精確距離值之間的誤差可能也會(huì)越大。
當(dāng)利用半逆推量化公式法建立了實(shí)際距離與精確距離之間的關(guān)系后,視覺信息中與目標(biāo)物體的相對(duì)角度θ有個(gè)固定的角度偏差Δθ,因此可以得到一個(gè)相對(duì)角度的范圍[θ-Δθ,θ+Δθ]。這樣,得到當(dāng)前視覺球員與目標(biāo)物體之間的一個(gè)位置范圍,如圖5所示的pos2、pos3、pos4和pos5四點(diǎn)圍成的扇形區(qū)域。
圖5 球員與目標(biāo)物體位置范圍示意圖
在以往的2D比賽中,大多數(shù)隊(duì)伍都是直接使用視覺感知信息中的距離來確定視覺范圍內(nèi)物體的位置。研究量化公式可知,這個(gè)點(diǎn)總是有一定的誤差,這樣在上層的決策中,總會(huì)有一定的誤差影響著精確度。當(dāng)誤差很大超過一個(gè)球員的可踢范圍時(shí),會(huì)直接導(dǎo)致球員的動(dòng)作命令無法執(zhí)行,延誤上層決策的執(zhí)行效率。為此,Apollo2D隊(duì)為了克服這個(gè)誤差,利用半逆推量化公式法得到如圖5的一個(gè)中間點(diǎn)pos1和一個(gè)扇形區(qū)域,取扇形的4個(gè)頂點(diǎn)pos2、pos3、pos4、pos5來修正量化誤差。設(shè)由扇形的4個(gè)點(diǎn)確定關(guān)于點(diǎn)pos1的一個(gè)位置修正點(diǎn)rpos_err誤差范圍為:
在比賽中,根據(jù)球的實(shí)際位置,可以適當(dāng)?shù)氖褂蒙刃蔚?個(gè)點(diǎn)和修正點(diǎn)來決策球員的動(dòng)作。如圖6所示,當(dāng)球沿著其箭頭方向運(yùn)動(dòng)時(shí),此時(shí),根據(jù)目標(biāo)物體的屬性特點(diǎn),可以使用點(diǎn)pos2或其他幾點(diǎn)來判斷目標(biāo)物體與球之間的距離等信息,為己方球員的動(dòng)作判斷提供苛刻的條件限制。
在Apollo2D中,采用點(diǎn)pos1來定位目標(biāo)物體當(dāng)前的位置,在判斷己方球員的運(yùn)動(dòng)動(dòng)作時(shí),以目標(biāo)位置與球之間的位置關(guān)系,選取其中一點(diǎn)或多點(diǎn)和修正點(diǎn)來共同限制球員的動(dòng)作,以保證球員動(dòng)作命令的有效性。
圖6 Agent定位與球之間的關(guān)系
為了驗(yàn)證提出的半逆推量化公式方法的合理性及有效性,將其應(yīng)用于Apollo2D仿真球隊(duì)中,在歷年參加RoboCup仿真比賽的球隊(duì)中挑選了一些不同風(fēng)格的球隊(duì)作為對(duì)抗球隊(duì),由于定位變得的準(zhǔn)確,那么在判斷截球和傳球時(shí)會(huì)更加的精確,因此我們根據(jù)比賽中控球率來評(píng)估其方法的整體性能。表2給出了部分比賽結(jié)果。
表2 控球時(shí)間的比較
由表2中數(shù)據(jù)可知,除了與WrghtEagle_09、HELIOS_08這樣的國(guó)內(nèi)外強(qiáng)隊(duì)的對(duì)抗中的比賽結(jié)果不是很理想外,但也有一定的提高和改善,而其余的比賽結(jié)果還是比較好的,在整個(gè)比賽中球隊(duì)的傳接球以及盯人跑位有較為明顯的改善,整體上來看,達(dá)到了預(yù)期的目的。
本文提出的半逆推量化公式法,可以提高球員定位的精確度,以保證球員決策命令的合理性及有效性。通過仿真比賽可以看出,這種定位方法在很大程度上提高了球員的傳球、截球能力和跑位的合理性,為贏得比賽勝利創(chuàng)造了很好的前提,取得了較好的仿真效果。
[1]李實(shí),徐旭明,葉榛,等.機(jī)器人足球仿真比賽的Server模型[J].系統(tǒng)仿真學(xué)報(bào),2000,12(2):37-39.
[2]RoboCup Soccer Server manual for Soccer Server 7.07 and later.2003.2.28[EB/OL]. http://citeseerx.ist.psu.edu/showciting?cid=156723.
[3]Soccer Simulation wiki, http://rctools.sourceforge.jp/pukiwiki/index.php?FrontPage[EB/OL]. http://en.wikipedia.org/wiki/RoboCup_3D_Soccer_Simulation_League
[4]Robust Monte Carlo Localization for Mobile Robots,Artificial Intelligence 2001[EB/OL]. http://robots.stanford.edu/papers/thrun.robust-mcl.html
[5]The RoboCup Client Parser[EB/OL], http://rccparser.sourceforge.net/.
[6]Luis Paulo Reis,Nuno Lau, FC Portugal Team Description: RoboCup 2000 Simulation League Champion. Univ. of Porto & Univ. of Aveiro.In Stone P. , Balch T. ,and Kaetzschmar G. , RoboCup 2000:Robot Soccer World Cup IV. Springer Ver,Berlin,2001:29-41.
[7]UVATrilearn[EB/OL]: http://staff.science.uva.nl/jellekok/robocup.
[8]陳箭鋒.多智能體系統(tǒng)與2D仿真足球隊(duì)[D].南京:南京郵電大學(xué),2009.
[9]靳種寶.RoboCup2D仿真足球隊(duì)和多智能體協(xié)作[D].南京:南京郵電大學(xué),2011.
[10]張志涌.精通MATLAB 6.5版[M].北京:北京航空航天大學(xué)出版社,2003.