校賽仿真2D第二次培訓(xùn)技術(shù)部分.ppt_第1頁
校賽仿真2D第二次培訓(xùn)技術(shù)部分.ppt_第2頁
校賽仿真2D第二次培訓(xùn)技術(shù)部分.ppt_第3頁
校賽仿真2D第二次培訓(xùn)技術(shù)部分.ppt_第4頁
校賽仿真2D第二次培訓(xùn)技術(shù)部分.ppt_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、校賽仿真2D第二次培訓(xùn)技術(shù)部分,向server發(fā)送得命令,在SoccerTypes.h里面得commandT有著向server發(fā)送得所有得命令種類 不是所有得命令都需要用到,大概有一半得指令不會涉及到,是關(guān)于代碼得底層定位得,大家不用深究 最有用得命令型:CMD_DASH,CMD_TURN, CMD_TURNNECK, CMD_KICK, CMD_TACKLE等.,CMD_ILLEGAL,故名思意,是非法得命令,如 SoccerCommand soc(CMD_ILLEGAL); 那么這個soc就是一個空的命令,如果執(zhí)行ACT-putCommandInQueue(soc); 那么代碼會自行處理掉

2、這個soc,就好像沒有運(yùn)行過這句指令一樣,下面解釋一下關(guān)于ACT-putCommandInQueue(soc);,Soc就像前面定義得是一個命令 那么我們?nèi)绾巫宎gent(球員)運(yùn)行這個命令呢,我們只要 ACT-putCommandInQueue(soc); 就可以了. (每一周期只能發(fā)送一個主命令,后面在具體說),CMD_DASH,這個命令是讓球員能跑起來得核心命令 當(dāng)一個球員發(fā)送dash100時,那么他就朝著身體朝向得到一個加速度,(具體參數(shù)看技術(shù)手冊),然后得到相應(yīng)得速度, 也就是說一直發(fā)送dash100得話球員會一直向著身體朝向向前跑 當(dāng)一個球員發(fā)送dash-100時,那么他就朝著身體

3、朝向得反方向得到一個加速度,CMD_TURN,這個命令是用來轉(zhuǎn)身得指令,但是注意了如果發(fā)CMD_TURN,180,并不是說是轉(zhuǎn)身180度,他和自身相應(yīng)得速度還有一定得關(guān)系 最大轉(zhuǎn)身角度為180到-180,跑動:跑向一點(diǎn),比如我們讓球員跑向(0,0)點(diǎn),可以用命令函數(shù)moveToPos(VecPosition(0,0),7.0) 實(shí)際上moveToPos這個函數(shù)就是組合了CMD_DASH和CMD_TURN而達(dá)到了跑動得目的. 大致就是先轉(zhuǎn)向那個要跑得點(diǎn)然后dash,CMD_TURNNECK,這個命令是這次校賽和首屆校賽得最大不同之處,因?yàn)楝F(xiàn)在是局部視覺,所以需要通過agent不斷得轉(zhuǎn)動脖子來盡量

4、多得看到有用得信息 首先說明一下CMD_TURNNECK和CMD_TURN得不同 CMD_TURNNECK是轉(zhuǎn)動脖子朝向 CMD_TURN是轉(zhuǎn)動身體朝向,這是兩個不同得方向,主命令與復(fù)命令,CMD_TURNNECK這是講到得第一個副命令 主命令一周期只能發(fā)一個,比如一個周期同時發(fā)送CMD_DASH和CMD_TURN的話,只會執(zhí)行一個命令. 不同得復(fù)命令一周期可以發(fā)送多個,比如CMD_TURNNECK和CMD_SAY這兩個可以在一周起同時發(fā)送,當(dāng)我們發(fā)送CMD_TURN得命令時,如果不發(fā)送CMD_TURNNECK命令時,脖子朝向會和身體得轉(zhuǎn)動而相應(yīng)得轉(zhuǎn)動 turnNeck還有其他得一些限制,如脖

5、子和身體的夾角不能大于90度等 關(guān)于turnNeck得使用可以看一下turnNeckToPoint這個函數(shù),CMD_CHANGEVIEW,這個命令是改變視覺得角度得命令 由于這個命令得使用比較復(fù)雜,涉及到一些底層問題,所以我們已經(jīng)在程序內(nèi)部做了一定得處理(大家不用管) 視覺得模式是2次narrow(45度視角),一次normal(90度視角) 這是最好得視覺模式,大家不用改,只需要控制agent得脖子轉(zhuǎn)向就可以了,CMD_CATCH,這是守門員的專門命令 Catch的范圍是和守門員中心距離2米的一個圓,CMD_KICK,這個命令的目的就是發(fā)給球一個加速度 如果想要把球踢向(0,0),只要執(zhí)行k

6、ickTo(VecPosition(0,0),2.7)就可以了,2.7指得是球到達(dá)(0,0)后想要的速度,CMD_MOVE,這是在開場前,以及守門員抓住球后可以發(fā)的瞬時移動得命令.,CMD_SAY,通訊時候用的命令,可以不用管,在通訊中已經(jīng)做了處理,CMD_TACKLE,鏟球命令 雖然在上一界校賽中沒有人用過,但是是一個非常有用的命令,不過對于初期代碼的開發(fā)幫助不大 具體的用法可以查技術(shù)手冊,CMD_ATTENTIONTO,可以說是聽誰的命令 只要會用listenTo命令就可以了 比如listenTo(一號隊(duì)員),命令的介紹就到這里 其他命令可以不用管,沒有幫助,帶球方法介紹,UVA底層得帶球

7、函數(shù)dribble Dirbble函數(shù)可以選擇帶球角度和帶球方向,可以說是一個比較實(shí)際,好用的帶球函數(shù) Dribble主要思想就是向帶球方向發(fā)送kick命令,然后再去截球,這就實(shí)現(xiàn)了帶球. 當(dāng)然這種帶球方法完全沒有考慮對手,其他帶球思想介紹,人球一體 特點(diǎn):每周期都可以選擇發(fā)送kick或者dash命令,具體做法比較復(fù)雜,也沒有最好的算法,有興趣的可以找一下今年10月蘇州robocup 2D我們ZJUBase的比賽錄像,從中發(fā)現(xiàn)、學(xué)習(xí)點(diǎn)什么。,傳球策略,傳球動作實(shí)際上就是由kickTo這一函數(shù)來實(shí)現(xiàn)的,比如kickTo(我方一號的位置),那么表現(xiàn)就為傳球給了一號球員 至于如何判斷能否傳這個球,有

8、很多的判斷的方法,希望大家自己多研究,傳球條件判斷思路-截球周期差,傳球隊(duì)員假設(shè)以速度V給接球隊(duì)員傳球 接球隊(duì)員截到球的周期為N 對方所有球員最快截到球的周期為M 如果NM的情況,盡管是不安全的,但是對于前場的情況可能也要傳。,不論是帶球,截球,傳球,都是一系列kick,turn,dash命令得一個組合,不同得組合就可以得到截然不同得效果,通訊,通訊的程序在CommunicationSystem.h和CommunicationSystem.cpp中,具體用法見以后發(fā)布的文檔,這里說明一下原理. 首先,每2個agent之間是不能私自進(jìn)行通訊的,但是可以通過通訊的命令來使得agent之前可以有一定

9、的通訊. 通訊發(fā)送的是10個字符,每個字符有74種狀態(tài),我們需要對所要發(fā)送的內(nèi)容先編碼,接收者再解碼,已達(dá)到通訊的目的,關(guān)于通訊得限制,信道的限制 1.聽到的信息是延遲一周期 2.只能聽到50米內(nèi)的人說話 3.每個周期一個人只能說一句話,每個人也只能聽到一句話 4.比如1號隊(duì)員listenTo了2號隊(duì)員,如果2號隊(duì)員說話了,那么他能聽到,如果2號沒有說話,那么1號會聽到其他說話隊(duì)員中隨機(jī)的一個 5.如果不發(fā)送listenTo,聽到隨機(jī)的一個,其他可能遇到得問題,關(guān)于confidence Confidence在當(dāng)前周期看到時為1.0 當(dāng)沒有看到時Confidence每周期減0.01 比如getC

10、onfidence(OBJECT_BALL) =0.90,說明已經(jīng)10周期沒有看到球了,視覺的限制說明,視覺的得到是存在視覺誤差的,如距離10米的人的視覺誤差最大有1米 每次視覺的角度是不同的,現(xiàn)在的視覺模式是2次narrow(45度),一次normal(90度),只能看見在視角范圍內(nèi)的信息 20米內(nèi)能看清所有人的號碼 20米到40米號碼可能看不清楚,但隊(duì)名可以看清 40米以外一定看不見號碼,且隊(duì)名可能看不清楚 60米以外不能分辨敵友,比較重要的一些函數(shù)的簡單說明,1。moveToPos這個函數(shù)就是移動到一點(diǎn)的函數(shù) 2。Intercept,就是截球的函數(shù) 3。kickTo,踢球的函數(shù),無論是傳球還是帶球都可以用這個函數(shù)來實(shí)現(xiàn) 4。turnBodyToPoint把身體朝向轉(zhuǎn)向一點(diǎn) 5。turnNeckToPoint把脖子朝向轉(zhuǎn)向一點(diǎn) 6。Dribble,帶球函數(shù) 7。SearchBall,找球函數(shù),此過程脖子不要轉(zhuǎn)動 (以上是在BasicPlayer.cpp中比較重要的函數(shù),其他一些相關(guān)的函數(shù)可以自己研究),8。getGlobalPosition,得到位置的函數(shù) 9。getOffSideX得到越位線坐標(biāo)的函數(shù) 10。getConfidence,得到一個球員可信度高低的函數(shù) 11。getStrategicPosition,得到基本策略點(diǎn)的函數(shù) 等

溫馨提示

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

最新文檔

評論

0/150

提交評論