丁晨陽
(揚州市職業(yè)大學(xué),江蘇 揚州 225009)
多智能體系統(tǒng)的研究是計算機科學(xué)和人工智能研究的重點。RoboCup機器人足球比賽是多智能體系統(tǒng)MAS(Multi-Agent System)和分布式人工智能的一個重要研究平臺[1]。
RoboCup仿真平臺中環(huán)境是不可知的,球員對于環(huán)境的認識主要來源于感知系統(tǒng)[2],感知系統(tǒng)包括視覺感知、聽覺感知和身體感知,這些信息由仿真服務(wù)器按規(guī)定的周期發(fā)送給球員。身體感知只能感知球員自身的信息,而聽覺感知非常有限且不可靠,因此視覺信息是最直接可靠、也是最多使用的信息獲取方式。在復(fù)雜多變的足球比賽中,球員需要依據(jù)當前場上的局勢進行最優(yōu)的動作決策以及動作的精確執(zhí)行,這就要求智能體必須以一種智能的方式合理調(diào)整視覺,準確、及時地跟蹤場上狀態(tài)的變化。
目前各個仿真球隊采用的視覺策略中,有讓球員始終朝向球看,方法簡單但卻直接、有效;有的策略則將智能體的多個觀察目標按照其可信值排序,如果可信值低于某個值,就提出觀察請求,這種方法保證所有觀察目標的平均可信值盡量高[3]。實際上當球員在比賽中面臨不同局勢時,想要觀察的目標是不同的,而且對不同目標的關(guān)心程度也是不同的。球員最希望獲得的是那些與其動作決策關(guān)系密切的場上信息,采用以上視覺策略會使球員無法全面、準確地掌握場上信息,從而導(dǎo)致動作決策的效率不高。
本文設(shè)計了一種基于優(yōu)先級和可信值的視覺策略,通過綜合考慮觀察目標的可信值和優(yōu)先級來調(diào)整球員的最佳視覺角度,優(yōu)化球員視覺信息的獲取。
在RoboCup仿真環(huán)境里,球員有身體朝向和臉朝向兩個概念。身體朝向決定了每個球員dash(沖刺)的方向,即每個球員只能朝身體方向給自己加速。球員觀察的范圍主要由臉朝向決定,球員的視野是一個以臉朝向為中心,正負各1/2視野寬度的扇形。球員距離觀察目標越遠,看得越不清楚。視野寬度ViewWidth可以為45°(窄視角)、90°(普通視角)和 180°(寬視角)。每個球員在獲取視覺信息時都是用一種視野寬度的模式觀察,不同視野寬度帶來的觀察效果也不同,較窄的視野寬度所獲得信息的頻率較快。目前仿真環(huán)境規(guī)定45°視野寬度每0.75周期獲得一次視覺信息,90°視野寬度每 1.5周期獲得一次視覺信息,180°視野寬度每3個周期獲得一次視覺信息[4]。
通過調(diào)整視野寬度、身體朝向以及臉朝向可以獲取更多的視覺信息。球員可以通過change_view指令改變視野寬度,turn指令改變身體朝向,turn_neck指令轉(zhuǎn)動臉朝向和身體朝向之間的夾角。但是turn指令與dash、kick等指令互斥,不能在同一周期發(fā)送,否則會與其他決策模塊產(chǎn)生沖突。turn_neck指令則可以和dash、kick、turn等動作在同一個仿真周期內(nèi)執(zhí)行,球員的面朝向和身體朝向最多成90°角,在不轉(zhuǎn)身的情況下球員理論上可以觀察到的最大角度為:
觀察到的最大角度=視野寬度/2+90° (1)
因此,球員的視覺決策一般放在所有動作決策模塊之后執(zhí)行,并且要對產(chǎn)生的決策效果做預(yù)測,預(yù)測后續(xù)周期需要的信息,然后根據(jù)需求計算出最終實際要轉(zhuǎn)動脖子的角度,調(diào)整角度,使下個視覺信息到來時視野能覆蓋觀察目標。
比賽中在一個仿真周期內(nèi)球員想要觀察的目標往往不是唯一的,球和其他隊友或敵人都有可能成為被觀察的目標,如圖1所示,球員A控球,球員 B和C為隊友,球員 P為敵方隊員,若 A考慮傳球,則 B、C和 P可能做出截球動作,球員A首先需要觀察一下球員B、C和P,以判斷隊友是否能夠截到球,再做出決策是否應(yīng)該執(zhí)行該動作。所以最終視覺角度的確定需要一定的設(shè)計,對每一個可能的視角,可以使用一個評價值進行評價,考慮到場上形勢和決策的需要,在計算評價值時應(yīng)該綜合考慮各個被觀察對象的優(yōu)先級和可信值,才能兼顧處理多個觀察請求,獲得較優(yōu)視覺信息。
圖1 球員A及其周圍局部環(huán)境
球員根據(jù)對各個觀察目標的不同需求程度,設(shè)定優(yōu)先級priority。對于球員的n個觀察目標 (0<n≤23),設(shè)定的優(yōu)先級分別為pi(i=1,2,…,n)。 以觀察球員為中心,指向?qū)Ψ桨雸龅姆较驗?角度,則被觀察物體相對球員的角度分別為 θi(i=1,2,…,n),θi∈[-180,180]。
觀察目標分為三個部分:球、動態(tài)對象和固定對象。球是隊員必須經(jīng)常觀察的對象,對球的信息不準確,就談不上做各種決策,因此球的優(yōu)先級是最高的。動態(tài)對象由上層決策模塊決定,比如當球員控球時,就把場上可以傳球的隊友加入到觀察請求中,并把離球員最近的敵方隊員加入觀察請求。動態(tài)對象的優(yōu)先級可根據(jù)場上情況做適當調(diào)整,對于可傳球隊友,傳球成功率越高,優(yōu)先級越高。固定對象是預(yù)先規(guī)定好的,它包括某些在大部分時刻都必須觀察的對象,如離球員最近的隊友。進入對方半場時還要把對方的守門員加進來。固定對象的優(yōu)先級是確定的。當固定對象與動態(tài)對象重疊時,觀察請求不進行重復(fù)添加,優(yōu)先級以動態(tài)對象為準。
球員智能體的多個觀察請求用C++STL的map模板進行保存,定義如下:
MVisualReqQueue的每個元素是一個二元組<對象,優(yōu)先級>,描述了從對象到其當前的優(yōu)先級之間的映射。
RoboCup中,由于球員智能體每一次獲得的視覺信息十分有限且含有噪聲,因此在對這些數(shù)據(jù)的加工和對世界模型的維護過程中,需要引入記憶模型[5]。記憶模型一方面負責保存環(huán)境物體的歷史信息,另一方面通過一個可信值(confidence)來描述目標信息的準確程度,它的取值范圍是[0,1],每一個仿真周期目標的可信值更新如下:
其中,conf_decay=1-(tc-to)/100。 一般地,取 see_conf=1.0,tc為當前時間,to是目標上次被看到的時間。
視覺策略最終要解決的是確定球員的視野平分線(用其與對方半場方向之間的夾角α表示,α∈[-180,180]),使球員獲得較優(yōu)的視覺信息。假設(shè)球員某一確定視野中包含若干物體,優(yōu)先級分別為pi,…,pj,可信值分別為 confi,…,confj。本設(shè)計采用式(2),優(yōu)先級和可信值之比的平方和開根號來計算某個視覺角度的評價值。
這種算法是優(yōu)先級高,可信值低的物體在最終結(jié)果中占的比重大些,既有利于選出觀察優(yōu)先級高的對象,又對可信值低的對象加以重視。顯然,當視野中覆蓋的物體越多,對這些物體的優(yōu)先級越高,物體的可信值越低,則該視野所觀察到的有用信息就越多,其評價值也越大。
進行最佳角度搜索的時候?qū)⒁^察的目標置于球員視野的右邊界,然后搜索請求觀察的每一個物體。搜索過程用偽碼描述如下:
球員首先把第一個觀察目標置于視野的右邊界,根據(jù)參數(shù)ViewWidth確定觀察視野,然后搜索上層決策模塊請求需要觀察的所有物體。如果某物體在視野的覆蓋范圍內(nèi),則把它的優(yōu)先級和可信值加入到該視覺角度的評價值計算中,并將該觀察目標相對球員的角度存入γ,否則不做任何處理,繼續(xù)搜索。搜索完所有物體后,該視覺角度的評價值將包含所有被視野覆蓋的物體的優(yōu)先級和可信值,同時β最后保存的是處于視野另一邊界的物體相對于球員的角度。這時可以將視覺角度按照式(3)進行調(diào)整,使得觀察方向位于左右兩個邊界物體的角平分線上。然后再對第二個物體進行相同的操作,直到對所有觀察目標搜索完畢。
這樣的搜索完畢后,就確定了最優(yōu)的視覺角度αs。
確定好最佳視覺角度后,即可通過turn_neck指令調(diào)整球員視角,以獲得期望的信息。
此外,根據(jù)比賽規(guī)則,由于球員每周期只能執(zhí)行一個動作,所以過于頻繁的獲取信息也沒有意義,在本策略中的視野寬度 ViewWidth采用 90°-45°-45°的方案,這樣獲取視覺信息的周期依次是0-1.5周期-2.25周期-3周期,這樣以3周期為一次循環(huán)單位不斷循環(huán),可以保證每周期都可以獲得視覺信息,同時又可獲得較大的視野范圍。
為測試本文視覺策略的有效性,先后對采用和不采用本視覺策略的球隊作了長時間測試,為減少比賽隨機性對結(jié)果的影響,取同一支球隊作為對抗球隊,表1給出統(tǒng)計的對比數(shù)據(jù)。從表1可以看出,采用改進的視覺策略后,我方平均控球率提高了8.6個百分點,進球機會增加了。
表1 控球率對比表
采用本文設(shè)計的視覺策略和未采用該視覺策略的傳球成功率的對比曲線如圖2所示,可以看出,采用本視覺策略后,球隊傳球成功率有所提高,有效增強了球員之間協(xié)作的力度。
圖2 傳球成功率對比曲線
RoboCup仿真比賽的環(huán)境是復(fù)雜多變的,球員智能體需要依據(jù)當前場上的形勢進行決策,信息的準確獲取是智能體動作決策和執(zhí)行的前提,智能體應(yīng)能以一種高效的方式合理調(diào)整視覺才能保證準確地跟蹤場上狀態(tài)的變化。本文對球員的視覺策略進行了設(shè)計,根據(jù)動作決策的需要,考慮球員當前觀察目標的優(yōu)先級,結(jié)合它們的可信值,計算出各個視覺角度的評價值,最后通過搜索比較確定一個最佳的視覺角度,為多智能體的團隊協(xié)作提供了全面、準確而及時的信息。
將本文提出的視覺策略應(yīng)用在RoboCup仿真球隊后,球隊的平均控球率提高了8.6%,球員之間的傳球成功率有所提高,說明新的視覺策略為智能體間的協(xié)作提供了較為可靠的信息,對增強球隊整體性能具有一定效果。
[1]李實,徐旭明,葉榛,等.機器人足球仿真比賽的 Server模型[J].系統(tǒng)仿真學(xué)報,2000,12(2):138-141.
[2]郭定明,張樹林,李璞.淺談 RoboCup中的感知系統(tǒng)及相關(guān)決策[A].2004中國機器人足球比賽暨研討會論文集[C].廣州:中國自動化學(xué)會機器人競賽工作委員會,2004:15-18.
[3] REIS L P, LAU N.FC PortugalTeam Description:RoboCup 2000 Simulation League Champion[J].Springer Verlag Lecture Notes in Artificial Intelligence, 2001(2019):175-197.
[4]CHEN M, FOROUGHI E, HENITZ F, et al.RoboCup Soccer Server Manual for Soccer Server Version 7.07[EB/OL].http://sserver.sourceforge.net/.2003.
[5]DE BOER R,KOK J.The Incremental Development of a SyntheticMulti-AgentSystem: TheUvA Trilearn 2001 Robotic Soccer Simulation Team[D].University of Amsterdam,2002.