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

下載本文檔

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

文檔簡(jiǎn)介

1、第3章 FIRA仿真比賽劉釗目錄 一、背景 二、仿真平臺(tái)介紹 三、創(chuàng)建一個(gè)簡(jiǎn)單的策略程序 四、比賽規(guī)則 五、方法與模式舉例 六、調(diào)試方法一、背景半自主型機(jī)器人足球類人型機(jī)器人足球全自主型機(jī)器人足球仿真機(jī)器人足球足球機(jī)器人系統(tǒng)基本框架 機(jī)器人執(zhí)行子系統(tǒng)動(dòng)作執(zhí)行體 機(jī)器人感知子系統(tǒng)了解環(huán)境信息和位置信息 機(jī)器人策略子系統(tǒng)多機(jī)器人協(xié)作、單機(jī)器人的技術(shù)動(dòng)作和運(yùn)動(dòng)規(guī)劃 機(jī)器人通訊子系統(tǒng)信息交換 在機(jī)器人足球的四個(gè)子系統(tǒng)中,決策子系統(tǒng)是核心和靈魂,它決定機(jī)器人足球系統(tǒng)的智能度,是人工智能的先進(jìn)理論應(yīng)用和測(cè)試的平臺(tái)FIRA:基于視覺的遙控足球機(jī)器人系統(tǒng)足球機(jī)器人策略子系統(tǒng)簡(jiǎn)介策略子系統(tǒng)(大腦)到底要什么功能

2、?建立、并靈活使用各種模型;建立、并靈活使用各種規(guī)則;存儲(chǔ)、選擇存儲(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ī)則分離出來,形成模塊; 輸出是有緩沖的; 設(shè)計(jì)模型2問題: 世界模型單一; 規(guī)則的使用不連續(xù);前鋒后衛(wèi)守門員環(huán)境感知模型傳感器信息融合信息預(yù)處理特征狀態(tài)提取隊(duì)形確定及隊(duì)形變換動(dòng)作1隊(duì)形m隊(duì)形1.既定隊(duì)形圖6-5:足球機(jī)器人系統(tǒng)四層決策推理模型示意圖隊(duì)形角色1角色n.角色分配

3、及角色轉(zhuǎn)換角色集1隊(duì)形的角色集角色集m.動(dòng)作N.動(dòng)作A動(dòng)作An.動(dòng)作層動(dòng)作選擇足球機(jī)器人系統(tǒng)四層決策推理模型示意圖設(shè)計(jì)模型3:二、仿真平臺(tái)介紹 電腦: 奔騰 600MHZ的處理器 內(nèi)存 265M Windows 98 2000 XP 操作系統(tǒng) 此仿真軟件(1.5版本)可以在下面的網(wǎng)站上下載: Http:/ 機(jī)器人的場(chǎng)地分配HomeHome代表己方代表己方機(jī)器人機(jī)器人OppOpp代表對(duì)方機(jī)代表對(duì)方機(jī)器人器人箭頭所指的方向箭頭所指的方向?yàn)闄C(jī)器人的為機(jī)器人的方向方向home1home1home2home2home3home3home4home4opp1opp1opp2opp2opp3opp3opp4

4、opp4opp0opp0home0home0比賽基本過程 1. 雙方將自己的DLL文件放入C:Strategyblue(yellow)里面. 2.輸入自己的DLL文件名. 3.系統(tǒng)會(huì)自動(dòng)調(diào)用一次你的程序.三、創(chuàng)建一個(gè)簡(jiǎn)單的策略程序 1。打開V 或VC+6.0 2。創(chuàng)建(MFC DLL或win32 dll)項(xiàng)目, 取項(xiàng)目名,比如Strategy. 3。添加指定結(jié)構(gòu)定義(一般在stdafx.h里):typedef struct double x, y,z; Vector3D; typedef struct long left, right, top, bottom; Bounds;typedef

5、struct Vector3D pos; Ball;typedef struct Vector3D pos;double rotation; OpponentRobot;typedef struct Vector3D pos;double rotation,velocityLeft, velocityRight; Robot;typedef struct Robot home5;OpponentRobot opponent5;Ball currentBall, lastBall, predictedBall;Bounds fieldBound, goalBound;long gameState

6、;long whosBall;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 void Create (

7、 Environment *env )extern C void Strategy ( Environment *env ) extern C void Destroy ( Environment *env ) 5。完成!Strategy () 函數(shù)void Strategy ( Environment *env )switch (env-gameState)case 0:MoonFollowOpponent ( &env-home 1, &env-opponent 2 );MoonFollowOpponent ( &env-home 2, &env-oppon

8、ent 3 );MoonFollowOpponent ( &env-home 3, &env-opponent 4 );MoonAttack ( &env-home 4, env );Goalie ( &env-home 0, env );break;case FREE_BALL:四、比賽規(guī)則 見附件。比賽演示 演示比賽 傳中射門 門前盤帶五、方法與模式舉例 1.信息獲取與存儲(chǔ)信息獲取、積累、預(yù)測(cè) 信息獲取:感覺、查詢、解析。 信息積累:保存必要的信息。 信息預(yù)測(cè):非常重要、困難;空間大,要有針對(duì)性;球的位置預(yù)測(cè) 考慮因素: 速度衰減(建立速度正常衰減模型) 邊

9、界反彈與衰減(建立邊界反彈模型) 隊(duì)員干擾(建立對(duì)手干擾模型) 關(guān)于坐標(biāo)系建立; Vector3D turn_blue(Vector3D p)Vector3D pp;pp.x=p.y-41.8;pp.y=93.4-p.x; return pp; Vector3D turn_yellow(Vector3D p)Vector3D pp;pp.x=41.8-p.y;pp.y=p.x-6.8; return pp; double turn_blue(double rotate)rotate=270+rotate; if(rotate=0)rotate-=360;return (rotate+360);

10、double turn_yellow(double rotate)rotate=450+rotate;if(rotate=0)rotate-=360;return (rotate+360);關(guān)于球的信息:void predict_ball_pos(void)double dx = my_head.ball.loc_now.x-my_head.ball.loc_last.x; double dy = my_head.ball.loc_now.y-my_head.ball.loc_last.y;double ra=0.45; /速度衰減率for(int i=1;iPre_View_No;i+) /

11、預(yù)測(cè)double try_x = my_head.ball.loc_array_prei-1.x+dx;double try_y = my_head.ball.loc_array_prei-1.y+dy;if(try_x BALL_MOST_RIGHT)dx=-dx*ra;else if(try_y BALL_MOST_UP)dy=-dy*ra;else if( try_y try_x-29.6)dx=-dy*ra;dy=-dx*ra;else if(try_y try_x + 116)dx=dy*ra;dy=dx*ra;else if(try_y -try_x + 116)dx=-dy*ra

12、;dy=-dx*ra; my_head.ball.loc_array_prei.x=my_head.ball.loc_array_prei-1.x+dx; my_head.ball.loc_array_prei.y=my_head.ball.loc_array_prei-1.y+dy; / for every seconds; / end predictball 關(guān)于隊(duì)員的信息:typedef struct myRobotint FREE;int fore_back;Vector3D loc_last;Vector3D loc_now;Vector3D loc_next;Vector3D su

13、du_vector; double sudu_abs;double angle_last;double angle_now;double angle_next;double angle_v;double angle_move;Vector3D loc_catch_ball;Vector3D loc_shoot_to_point;double dist_to_ball;double dist_to_ball_next_time; double dist_to_my_goal;double dist_to_shoumen_loc;double dist_to_fangshou_loc;double

14、 angle_ball_to_me;double key_time;double power;double dist_to_catch_ball;double dist_to_catch_ball_next_time;double angle_catch_ball_to_me;double angle_ball_should;double Q;double last_add_r;double last_add_l;bool is_ready_outline;int out_line_num;bool outline_is_left_or_right;double outline_long;bo

15、ol could_turn; myRobot; 關(guān)于世界的信息:typedef struct myData Environment* env;myBall ball; myRobot his5;myRobot my5;Vector3D loc_shoumen;Vector3D loc_fangshou;int p_my_qianfeng;int p_my_youyi;int p_my_zuoyi;int p_my_houwei;int p_my_shoumen;int p_his_qianfeng;int p_his_xiezu;int p_his_youyi;int p_his_zuoyi;

16、int my_qianfeng_state; myData; 關(guān)于自動(dòng)信息獲取:邊界信息;球速度衰減,反彈;球員加速度(線速度角速度);球員減速情況等.常用決策框架 集中控制型 分布控制型 時(shí)時(shí)規(guī)劃型 階段規(guī)劃型常用決策框架 集中控制型、時(shí)時(shí)規(guī)劃型 舉例:獲取信息;局勢(shì)判斷;總體任務(wù)確定;角色分配;任務(wù)分配;動(dòng)作確定;輸出.環(huán)境感知模型傳感器信息融合信息預(yù)處理特征狀態(tài)提取隊(duì)形確定及隊(duì)形變換動(dòng)作1隊(duì)形m隊(duì)形1.既定隊(duì)形圖6-5:足球機(jī)器人系統(tǒng)四層決策推理模型示意圖隊(duì)形角色1角色n.角色分配及角色轉(zhuǎn)換角色集1隊(duì)形的角色集角色集m.動(dòng)作N.動(dòng)作A動(dòng)作An.動(dòng)作層動(dòng)作選擇足球機(jī)器人系統(tǒng)四層決策推理模型

17、示意圖模塊間的關(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)過1次擊球,球以最大速度到C。 如何行動(dòng)? 分析:確定擊球可能發(fā)生的時(shí)間是問題的關(guān)鍵。 搜索方法1(確定步伐): 嘗試:1s,2s,3s, , 之后,球員是否能夠剛好到達(dá)合適的位置。 改變步伐算法描述:step初值設(shè)置,一般為1;如果要改變方向, step=

18、 step/2; 如果不要改變方向, step= step*2; 如果滿意則完成,否則,轉(zhuǎ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為目前小車的前進(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_point.x= key_point.x+ r* cos(angle_ball_should*PI/180+PI-Q*PI/360); Key_point.y= key_point.y + r* sin(angle_ball_should*PI/180+PI-Q*PI/360 ); act_daoda(no,Key_point,125);時(shí)間耗費(fèi) 時(shí)間耗費(fèi)因素:行動(dòng)方式;到目的地的距離;與目標(biāo)角度的角度差;當(dāng)前小車的角度與規(guī)劃方向的差;時(shí)間耗費(fèi) d=dist(p0,p_mubiao); a=angle(p_mubiao,p0)-angle(p_mubiao_to,p_mubiao);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論