第4章 Robocup仿真比賽_第1頁
第4章 Robocup仿真比賽_第2頁
第4章 Robocup仿真比賽_第3頁
第4章 Robocup仿真比賽_第4頁
第4章 Robocup仿真比賽_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第4章 Robocup仿真比賽劉釗目錄 4.1 RoboCup仿真比賽簡介 4.2 開發(fā)環(huán)境介紹 4.3 Agent程序的結(jié)構(gòu) 4.4 底層動作的設(shè)計 4.5 中高層動作的設(shè)計 4.6 高層策略4.1 RoboCup仿真比賽簡介 RoboCup仿真組的比賽提供了一個分布式控制的多智能體(Multi-Agent)環(huán)境,在這樣的環(huán)境下可以進行智能體(agent)結(jié)構(gòu)的設(shè)計和測試,策略算法的研究和實現(xiàn),以及各種人工智能理論的學習和應(yīng)用。 SoccerServer生成一定的環(huán)境噪聲。 Server 和 Client 之間的通信是通過 UDP/ IP 協(xié)議進行的 。Client發(fā)送指令去控制相應(yīng)隊員 ,

2、同時從Server接受隊員的感知信息。 每個Client模塊只允許控制一名球員,Client之間不允許直接進行通信,Client之間通訊必須通過SoccerServer來進行。比賽環(huán)境的特點 (1)動態(tài)實時系統(tǒng)。比賽每個仿真周期為100ms,要求Agent在此時間內(nèi)完成全部計算并將要執(zhí)行的命令, 否則將失去機會。 (2) 環(huán)境干擾。 (3) 合作與協(xié)調(diào)。全部 Agent 具有一個共同的目標, 需要使用有效的方法進行 Agent 之間的合作, 同時解決局部目標與全局目標, 個體目標與共同目標之間沖突的問題。 (4) 受限的通訊帶寬。比賽結(jié)構(gòu)ClientClientClienClienClient

3、ServerSoccer MonitorCoachCoach圖4.1 RoboCup 2D 比賽示意圖2D仿真組比賽比賽球場及標識物4.2 開發(fā)環(huán)境介紹 由于程序運行在Linux操作系統(tǒng)下、采用Client/Server結(jié)構(gòu)、多進程等的特點,因此在球隊程序的設(shè)計中常常采用Ubuntu Linux 、SUSE Linux 、或者Fedro Core 作為開發(fā)平臺,使用標準C+語言進行程序的實現(xiàn),同時使用GNU的C+編譯器g+(gcc)作為編譯器,并采用Makefile管理整個工程同時使用IDE工具Anjuta方便工程的管理。 球隊由11個agent進程和1個coach進程組成。 每一個agent

4、進程的程序是相同的,通過使用shell腳本啟動整個球隊。 因此所需要設(shè)計的是1個agent程序,而這個程序具有多進程的特性,允許使用shell腳本啟動該程序自身11次來組成11個場上隊員。4.3 Agent程序的結(jié)構(gòu) 目前,在Robocup研究領(lǐng)域內(nèi)Agent結(jié)構(gòu)主要分為3類:慎思結(jié)構(gòu)反應(yīng)結(jié)構(gòu)復合結(jié)構(gòu)慎思結(jié)構(gòu) 以基于BDI模型(信念、愿望和意圖) 最為典型。 (1) 信念(Belief)是一個包括了對世界相關(guān)的信念、與其它主體(agent)思維趨向相關(guān)的信念和自我信念的集合。信念是主體(agent)對世界的認知,包含描述環(huán)境特性的數(shù)據(jù)和描述自身功能的數(shù)據(jù),是主體(agent)進行思維活動的基礎(chǔ)

5、。 (2) 愿望(Desire)是主體(agent)的最初動機,是其希望達到的狀態(tài)或希望保持的狀態(tài)的集合。 主體(agent)可以擁有互不相容的愿望,而且也不需要相信它的愿望是絕對可以實現(xiàn)的。 (3) 意圖(Intention)是承諾實現(xiàn)的愿望中選取的當前最需要完成或者最適合完成的一個,是當前主體(agent)將要正在實現(xiàn)的目標,它是屬于思維狀態(tài)的意向方向。當 前意圖對主體(agent)的當前動作具有指導性的作用。 反應(yīng)結(jié)構(gòu) 這種結(jié)構(gòu)源于現(xiàn)場智能體(Situated Agent),能建立起傳感信息到行動集間的直接映射,有較強的適應(yīng)性。Introduction to AI Robotics (M

6、IT Press)Chapter 4: The Reactive Paradigm15Reactive RobotsMost apps are programmed with this paradigmBiologically based: Behaviors (independent processes), released by perceptual or internal events (state) No world models or long term memory Highly modular, generic Overall behavior emergesSENSEACTRE

7、LEASERbehaviorOverviewHistoryReactive USARSummaryIntroduction to AI Robotics (MIT Press)Chapter 4: The Reactive Paradigm16Combining Fields forEmergent BehaviorobstacleobstaclegoalIf robot were dropped anywhere on this grid,it would want to move to goal and avoid obstacle:Behavior 1: MOVE2GOALBehavio

8、r 2: RUNAWAYThe output of each independent behavior is a vector,the 2 vectors is summed to produce emergent behaviorobstaclegoalIntroduction to AI Robotics (MIT Press)Chapter 4: The Reactive Paradigm17Note: In this example, repulsive field only extends for 2 meters;the robot runs away only if obstac

9、le within2 metersNote: in this example, robot can sense thegoal from 10 meters awayFields and Their CombinationIntroduction to AI Robotics (MIT Press)Chapter 4: The Reactive Paradigm18Path TakenIf robot started at this location, it would take the following pathIt would only “feel”the vector for the

10、location, then move accordingly, “feel” the next vector, move, etc.Pfield visualization allows us to see the vectors at all points, but robot never computes the “field of vectors” just the local vectorRobot only feels vectors for this point when it (if) reaches that pointAgent的一般結(jié)構(gòu)傳感感知學習通訊決策規(guī)劃執(zhí)行知識庫狀

11、態(tài)表預測規(guī)則表ServerAgent 1)傳感:負責接收Server發(fā)送的消息(如聽覺消息、視覺消息等),并將相應(yīng)的信息暫存下來,待處理。 2)感知: 負責解釋傳感消息,分析消息,并修改狀態(tài)表。為了保證信息安全性,需對傳送消息進行標識,由感知模塊來進行判別工作。同時考慮到傳感和執(zhí)行是異步的(因為Server在每周期末更新狀態(tài)表,本周期使用的是上一周期的消息),因此該模塊還須將處理后的本周期消息暫存下來。 3)狀態(tài)表: 記錄了Agent自身狀態(tài)和獲得的外部信息。自身狀態(tài)包括自己所處的位置、正在采取的動作等。外部信息包括球的位置、速度、加速度,一定范圍內(nèi)雙方隊員的位置等。這樣,該模塊也就構(gòu)筑了簡單

12、的環(huán)境模型。 4)預測: 由于Agent視覺、聽覺能力有限,得到的信息是不完整的、不準確的,所以整個結(jié)構(gòu)不能僅依據(jù)消息機制;加之傳感和執(zhí)行是異步的,Agent應(yīng)能根據(jù)自身狀態(tài)及通訊消息,估計本周期結(jié)束時的場上狀態(tài),以輔助做出合理的決策。 5)規(guī)則表: 涉及隊員的角色、行為、球隊的陣形、合作協(xié)議、方案等內(nèi)容的知識表述集合。 6)規(guī)劃決策: 根據(jù)狀態(tài)表、預測、規(guī)則表等,決定當前行為模式,并更新自身狀態(tài)。一個實現(xiàn)Agent的類結(jié)構(gòu)ObjectFixedObjectDynamicObjectBallObjectPlayerObjectAgentObjectFormationsPlayerTypeInf

13、oFormationTypeInfoPlayerBasic PlayerActHandleSenseHandleParseConnectionWorldModelVecPosion4.4 底層動作的設(shè)計 每個動作的執(zhí)行需要幾個周期才能完成。 底層動作主要包括:帶球、傳球和截球、高速踢球、轉(zhuǎn)球等技術(shù)。 核心是截球技術(shù)?;緞幼鞯耐瓿梢蟪晒β矢?,不能丟球。同時 ,結(jié)合轉(zhuǎn)球技術(shù) ,可以躲避對方球員斷球。 對于非控球隊員,基本動作包括盯人、盯無球隊員、阻截球路、跑位?;緞幼鲗訛轫攲記Q策層提供可選動作集。底層動作方法列舉如下: alignNeckWithBody() 使球員脖子與身體匹配 turn

14、BodyToPoint() 將身體正面轉(zhuǎn)向給出的位置 turnBackToPoint() 將身體背面轉(zhuǎn)向給出的位置 turnNeckToPoint() 將脖子轉(zhuǎn)向給出的位置 searchBall() 尋找球的位置 dashToPoint() 向某個位置加速 teleportToPos() 直接將球員移動至指定的位置 turnBodyToObject() 將身體正面轉(zhuǎn)向給出的物體 turnNeckToObject() 將脖子轉(zhuǎn)向給出的物體 freezeBall() 停球奔跑奔跑(dash) 命令dash給予球員一個加速度,和它身體朝向同向。命令dash的參數(shù)是power,取值的范圍在minpow

15、er和maxpower之間。每個球員都有一定的體力stamina,它會因為dash命令而消耗,仿真平臺通過限制球員的體力來阻止隊員始終以最大速度跑動。踢球踢球(kick) 命令kick有兩個參數(shù),踢球力量(介于minpower和maxpower之間)和球員踢球的角度。角度以度數(shù)表示,并介于minmoment和maxmoment之間。一旦命令kick到達Server端,只要球員沒有被置為越位,而且足球在可踢范圍內(nèi),那么kick就會被執(zhí)行。轉(zhuǎn)身轉(zhuǎn)身(turn) 命令dash用來在球員身體軀干朝向的方向上給予一個加速度,命令turn用來改變球員的身體朝向。命令turn的參數(shù)是moment。移動移動(

16、move) 命令move可以把球員移動到場上的任何一個地方。只有在設(shè)置整個球隊時move命令才有效,在比賽期間是沒有效果的。turnBodyToPoint的實現(xiàn)的實現(xiàn) SoccerCommand BasicPlayer:turnBodyToPoint( VecPosition pos, int iCycles ) VecPosition posGlobal = WM-predictAgentPos(iCycles, 0); AngDeg angTurn = (pos - posGlobal).getDirection(); angTurn -= WM-getAgentGlobalBodyAng

17、le(); angTurn = VecPosition:normalizeAngle( angTurn ); angTurn = WM-getAngleForTurn( angTurn, WM-getAgentSpeed(),WM-getAgentObjectType() ); return SoccerCommand( CMD_TURN, angTurn ); searchBall的實現(xiàn)的實現(xiàn) searchBall方法使球員在看不到球的情況下試著去尋找球。 該方法返回一個轉(zhuǎn)身命令,球員將身體轉(zhuǎn)動一個等同于其目前視覺圓錐體范圍的角度。這樣球員將得到在與剛才完全不同的方向上的新的視覺范圍,進而增

18、大了在下一個時間周期中看到球的可能性。SoccerCommand BasicPlayer:searchBall() static Time timeLastSearch; static SoccerCommand soc; static int iSign = 1; VecPosition posBall =WM-getBallPos(); VecPosition posAgent=WM-getAgentGlobalPosition(); AngDeg angBall =(posBall-WM-getAgentGlobalPosition().getDirection(); AngDeg an

19、gBody =WM-getAgentGlobalBodyAngle(); if( WM-getCurrentTime().getTime() = timeLastSearch.getTime() ) return soc; if( WM-getCurrentTime() - timeLastSearch 3 ) iSign = ( isAngInInterval( angBall, angBody, VecPosition:normalizeAngle(angBody+180) ) ) ? 1: -1; soc = turnBodyToPoint( posAgent + VecPosition(1.0,VecPosition:normalizeAngle(angBody+60*iSign), POLAR ) );timeLastSearch = WM-getCurrentTime(); return soc;4.5 中高層動作的設(shè)計 球員的中高層動作主要指球員間相互配合的基本能力,包括傳球,帶球,帶球轉(zhuǎn)身,斷球等,因

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論