第3章-FIRA仿真比賽_第1頁(yè)
第3章-FIRA仿真比賽_第2頁(yè)
第3章-FIRA仿真比賽_第3頁(yè)
第3章-FIRA仿真比賽_第4頁(yè)
第3章-FIRA仿真比賽_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章FIRA仿真比賽劉釗目錄一、背景二、仿真平臺(tái)介紹三、創(chuàng)建一個(gè)簡(jiǎn)單的策略程序四、比賽規(guī)則五、方法與模式舉例六、調(diào)試方法一、背景半自主型機(jī)器人足球類(lèi)人型機(jī)器人足球全自主型機(jī)器人足球仿真機(jī)器人足球足球機(jī)器人系統(tǒng)基本框架機(jī)器人執(zhí)行子系統(tǒng)——?jiǎng)幼鲌?zhí)行體機(jī)器人感知子系統(tǒng)——了解環(huán)境信息和位置信息機(jī)器人策略子系統(tǒng)——多機(jī)器人協(xié)作、單機(jī)器人的技術(shù)動(dòng)作和運(yùn)動(dòng)規(guī)劃?rùn)C(jī)器人通訊子系統(tǒng)——信息交換在機(jī)器人足球的四個(gè)子系統(tǒng)中,決策子系統(tǒng)是核心和靈魂,它決定機(jī)器人足球系統(tǒng)的智能度,是人工智能的先進(jìn)理論應(yīng)用和測(cè)試的平臺(tái)FIRA:基于視覺(jué)的遙控足球機(jī)器人系統(tǒng)足球機(jī)器人策略子系統(tǒng)簡(jiǎn)介策略子系統(tǒng)(大腦)到底要什么功能?建立、并靈活使用各種模型;建立、并靈活使用各種規(guī)則;存儲(chǔ)、選擇足球機(jī)器人策略子系統(tǒng)簡(jiǎn)介是一個(gè)典型的智能系統(tǒng):獲得信息(感知、記憶、學(xué)習(xí))分析決策(信息處理)輸出動(dòng)作(執(zhí)行)設(shè)計(jì)模型設(shè)計(jì)模型1:輸入輸出響應(yīng)設(shè)計(jì)模型設(shè)計(jì)模型2:世界模型執(zhí)行決策規(guī)則輸入輸出設(shè)計(jì)模型2優(yōu)點(diǎn):建立世界模型,具有記憶功能;規(guī)則分離出來(lái),形成模塊;輸出是有緩沖的;設(shè)計(jì)模型2問(wèn)題:世界模型單一;規(guī)則的使用不連續(xù);前鋒后衛(wèi)守門(mén)員足球機(jī)器人系統(tǒng)四層決策推理模型示意圖設(shè)計(jì)模型3:二、仿真平臺(tái)介紹電腦:

奔騰Ⅲ600MHZ的處理器內(nèi)存265MWindows982000XP操作系統(tǒng)此仿真軟件(1.5版本)可以在下面的網(wǎng)站上下載:

Http:///soccer/simurosot/R_Soccer_v15a_030204.exe

機(jī)器人的場(chǎng)地分配Home代表己方機(jī)器人Opp代表對(duì)方機(jī)器人箭頭所指的方向?yàn)闄C(jī)器人的方向home1home2home3home4opp1opp2opp3opp4opp0home0比賽基本過(guò)程1.雙方將自己的DLL文件放入C:\Strategy\blue(yellow)里面.2.輸入自己的DLL文件名.3.系統(tǒng)會(huì)自動(dòng)調(diào)用一次你的程序.三、創(chuàng)建一個(gè)簡(jiǎn)單的策略程序1。打開(kāi)V或VC++6.02。創(chuàng)建(MFCDLL或win32dll)項(xiàng)目,取項(xiàng)目名,比如Strategy.3。添加指定結(jié)構(gòu)定義(一般在stdafx.h里):typedefstruct{doublex,y,z;}Vector3D;typedefstruct{longleft,right,top,bottom;}Bounds;typedefstruct{Vector3Dpos;}Ball;typedefstruct{Vector3Dpos;doublerotation;}OpponentRobot;typedefstruct{Vector3Dpos; doublerotation,velocityLeft,velocityRight;}Robot;typedefstruct{ Robothome[5]; OpponentRobotopponent[5]; BallcurrentBall,lastBall,predictedBall;BoundsfieldBound,goalBound;longgameState;longwhosBall;void*userData;}Environment;4。添加指定外部函數(shù):在Strategy.h里:extern"C"void__declspec(dllexport)Create(Environment*env);extern"C"void__declspec(dllexport)Strategy(Environment*env);extern"C"void__declspec(dllexport)Destroy(Environment*env);在Strategy.cpp里:extern"C"voidCreate(Environment*env){}extern"C"voidStrategy(Environment*env){}extern"C"voidDestroy(Environment*env){}5。完成!Strategy(…)函數(shù)voidStrategy(Environment*env){ switch(env->gameState) { case0: MoonFollowOpponent(&env->home[1],&env->opponent[2]); MoonFollowOpponent(&env->home[2],&env->opponent[3]); MoonFollowOpponent(&env->home[3],&env->opponent[4]);

MoonAttack(&env->home[4],env); Goalie(&env->home[0],env); break; caseFREE_BALL:四、比賽規(guī)則見(jiàn)附件。比賽演示演示比賽……傳中射門(mén)…門(mén)前盤(pán)帶…五、方法與模式舉例1.信息獲取與存儲(chǔ)信息獲取、積累、預(yù)測(cè)信息獲?。焊杏X(jué)、查詢(xún)、解析。信息積累:保存必要的信息。信息預(yù)測(cè):①非常重要、困難;②空間大,要有針對(duì)性;球的位置預(yù)測(cè)考慮因素:速度衰減(建立速度正常衰減模型)邊界反彈與衰減(建立邊界反彈模型)隊(duì)員干擾(建立對(duì)手干擾模型)關(guān)于坐標(biāo)系建立;Vector3Dturn_blue(Vector3Dp){ Vector3Dpp; pp.x=p.y-41.8; pp.y=93.4-p.x;returnpp;}Vector3Dturn_yellow(Vector3Dp){ Vector3Dpp; pp.x=41.8-p.y; pp.y=p.x-6.8;returnpp;}doubleturn_blue(doublerotate){ rotate=270+rotate;if(rotate>=0) rotate-=360; return(rotate+360);}doubleturn_yellow(doublerotate){ rotate=450+rotate; if(rotate>=0) rotate-=360; return(rotate+360);}關(guān)于球的信息:voidpredict_ball_pos(void){ doubledx

=

my_head.ball.loc_now.x-my_head.ball.loc_last.x;

doubledy

=

my_head.ball.loc_now.y-my_head.ball.loc_last.y; doublera=0.45;

//速度衰減率 for(inti=1;i<Pre_View_No;i++)

//預(yù)測(cè) {doubletry_x=my_head.ball.loc_array_pre[i-1].x+dx;doubletry_y=my_head.ball.loc_array_pre[i-1].y+dy;if(try_x<BALL_MOST_LEFT||try_x>BALL_MOST_RIGHT) dx=-dx*ra;elseif(try_y<BALL_MOST_DOWN||try_y>BALL_MOST_UP) dy=-dy*ra;elseif(try_y<try_x-29.6) {dx=-dy*ra;dy=-dx*ra;}elseif(try_y<-try_x-29.6) {dx=dy*ra;dy=dx*ra;}elseif(try_y>try_x+116) {dx=dy*ra;dy=dx*ra;}elseif(try_y>-try_x+116) {dx=-dy*ra;dy=-dx*ra;}my_head.ball.loc_array_pre[i].x=my_head.ball.loc_array_pre[i-1].x+dx;my_head.ball.loc_array_pre[i].y=my_head.ball.loc_array_pre[i-1].y+dy;}//foreveryseconds;}//endpredictball關(guān)于隊(duì)員的信息:typedefstructmyRobot{ intFREE; intfore_back; Vector3Dloc_last; Vector3Dloc_now; Vector3Dloc_next; Vector3Dsudu_vector;

doublesudu_abs; doubleangle_last; doubleangle_now; doubleangle_next; doubleangle_v; doubleangle_move; Vector3Dloc_catch_ball; Vector3Dloc_shoot_to_point; doubledist_to_ball; doubledist_to_ball_next_time;

doubledist_to_my_goal; doubledist_to_shoumen_loc; doubledist_to_fangshou_loc; doubleangle_ball_to_me; doublekey_time; doublepower; doubledist_to_catch_ball; doubledist_to_catch_ball_next_time; doubleangle_catch_ball_to_me; doubleangle_ball_should; doubleQ; doublelast_add_r; doublelast_add_l; boolis_ready_outline; int

out_line_num; booloutline_is_left_or_right; doubleoutline_long; boolcould_turn;}myRobot;關(guān)于世界的信息:typedefstructmyData{ Environment*env; myBallball; myRobothis[5]; myRobotmy[5]; Vector3Dloc_shoumen; Vector3Dloc_fangshou; intp_my_qianfeng; intp_my_youyi; intp_my_zuoyi; intp_my_houwei; intp_my_shoumen; intp_his_qianfeng; intp_his_xiezu; intp_his_youyi; intp_his_zuoyi; intmy_qianfeng_state;}myData;關(guān)于自動(dòng)信息獲取:邊界信息;球速度衰減,反彈;球員加速度(線速度\角速度);球員減速情況等.常用決策框架集中控制型分布控制型時(shí)時(shí)規(guī)劃型階段規(guī)劃型常用決策框架集中控制型、時(shí)時(shí)規(guī)劃型舉例:獲取信息;局勢(shì)判斷;總體任務(wù)確定;角色分配;任務(wù)分配;動(dòng)作確定;輸出.足球機(jī)器人系統(tǒng)四層決策推理模型示意圖模塊間的關(guān)系?模塊間的關(guān)系策略:決定目標(biāo)(短期、中期目標(biāo));模式:定義角色,分配角色;動(dòng)作:具體的安排。==========特點(diǎn)===========層次不同;需要評(píng)價(jià);相互作用;決策形成的基本模式在數(shù)據(jù)與模型中疊代:①選擇目標(biāo);②搜索行動(dòng)方案;③更新數(shù)據(jù)與模型直到收斂(滿意)。FIRA中的例子當(dāng)前狀態(tài):“我”在A點(diǎn),球在B點(diǎn),其速度為V。目標(biāo):盡快上前,經(jīng)過(guò)1次擊球,球以最大速度到C。如何行動(dòng)?分析:確定擊球可能發(fā)生的時(shí)間是問(wèn)題的關(guān)鍵。搜索方法1(確定步伐):嘗試:1s,2s,3s,……,之后,球員是否能夠剛好到達(dá)合適的位置。改變步伐算法描述:①step初值設(shè)置,一般為1;②如果要改變方向,step=step/2;③如果不要改變方向,step=step*2;④如果滿意則完成,否則,轉(zhuǎn)②.子問(wèn)題:當(dāng)前狀態(tài):“我”在A點(diǎn)。目標(biāo):盡快上前到B,且到達(dá)B后運(yùn)動(dòng)速度向C。如何行動(dòng)?時(shí)間耗費(fèi)多少?=========方法1:查表。方法2:數(shù)學(xué)函數(shù)計(jì)算法。方法1:十字交叉法在A點(diǎn)與B點(diǎn)連線的中點(diǎn),作垂線,與目的方向BC交與X點(diǎn),則射線AX為目前小車(chē)的前進(jìn)的方向;動(dòng)態(tài)地跟蹤點(diǎn)X,即可以完成任務(wù)(到達(dá)B點(diǎn),方向大約為BC)。方法2:如何行動(dòng)?r=abs(Q)/60+dist_to_key_point/6;Key_po

溫馨提示

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

評(píng)論

0/150

提交評(píng)論