版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
機(jī)器人全課程歡迎詞大綱介紹0.概述0.1實(shí)物半自主足球機(jī)器人0.2仿真機(jī)器人足球比賽0.3仿真比賽的特點(diǎn)仿真實(shí)物半自主機(jī)器人足球比賽;所有的硬件設(shè)備均由計(jì)算機(jī)模擬實(shí)現(xiàn);簡(jiǎn)化比賽系統(tǒng)復(fù)雜度,減少硬件需求;可控性好、無(wú)破壞性、可重復(fù)使用,不受硬件條件和場(chǎng)地環(huán)境的限制;研究人工智能的絕佳平臺(tái);0.4仿真比賽開(kāi)發(fā)基礎(chǔ)對(duì)c語(yǔ)言有一定的了解;對(duì)vc開(kāi)發(fā)環(huán)境比較熟悉;有創(chuàng)造性思維和充分的想象力;有克服困難的能力;1.仿真平臺(tái)使用介紹1.1演示一場(chǎng)比賽VS武漢工程大學(xué)代表隊(duì)千人工程代表隊(duì)黃隊(duì)藍(lán)隊(duì)1.2MLS平臺(tái)開(kāi)發(fā)者:澳大利亞的Dr.JunJo領(lǐng)導(dǎo)的Griffith大學(xué)信息技術(shù)學(xué)院RSS開(kāi)發(fā)小組1.3機(jī)器人的編號(hào)home1home2home3home4opp1opp2opp3opp4opp0home0Home代表己方機(jī)器人
Opp代表對(duì)方機(jī)器人箭頭所指的方向?yàn)闄C(jī)器人當(dāng)前的正方向1.4機(jī)器人的辨認(rèn)0號(hào)一般是守門(mén)員,用大紅色表示;1號(hào)用紫色表示,2號(hào)用紫紅色表示;3號(hào)用綠色表示,4號(hào)用藍(lán)綠色表示;每方隊(duì)員有五名,分別用不同的顏色來(lái)標(biāo)示,中間是代表隊(duì)伍的顏色,在左下角是區(qū)分不同隊(duì)員的標(biāo)識(shí):1.5鼠標(biāo)和鍵盤(pán)操作鼠標(biāo):在比賽開(kāi)始前或比賽暫停時(shí),可以用鼠標(biāo)拖動(dòng)球或機(jī)器人到場(chǎng)地的任何位置。鍵盤(pán):在比賽開(kāi)始前或比賽暫停時(shí),當(dāng)鼠標(biāo)點(diǎn)擊某一個(gè)機(jī)器人后可以用或鍵來(lái)調(diào)整該機(jī)器人的角度。1.6MLS平臺(tái)系統(tǒng)特點(diǎn)機(jī)器人模型:
Yujin機(jī)器人的物理模型。模擬精確: 碰撞檢測(cè)完全,碰撞處理準(zhǔn)確仿真極為真實(shí)(采用商業(yè)游戲引擎公司Havok的碰撞處理引擎作品帝國(guó)時(shí)代、CS等)。系統(tǒng)界面:
3維(采用Director設(shè)計(jì)界面,3DMax建模)。1.7MLS平臺(tái)系統(tǒng)需求Windows98或以上版本的操作系統(tǒng);DirectX8.0或以上版本;硬件需求:PentiumIII600MHz或與其性能相當(dāng)?shù)腃PU;256M系統(tǒng)內(nèi)存;具有32M顯存的TNT2或其以上級(jí)別的顯示卡;至少可以實(shí)現(xiàn)800×600分辨率的顯示器;軟件需求:1.8軟件開(kāi)發(fā)環(huán)境LingoMicrosoftVisualC++6.0MicrosoftVisualC++.NET2003√√×1.9MLS平臺(tái)模板程序
平臺(tái)提供了基本的策略開(kāi)發(fā)框架,見(jiàn)安裝目錄下的StrategySource目錄如:C:\ProgramFiles\RobotSoccerv1.5a\StrategySource)。其模板程序?yàn)镈LL動(dòng)態(tài)聯(lián)接庫(kù)。2.仿真平臺(tái)與策略程序的關(guān)系2.1什么是策略程序?定義:策略程序就是自己編寫(xiě)的能夠使仿真平臺(tái)中機(jī)器人按照預(yù)定方式運(yùn)動(dòng)的程序。通俗的來(lái)說(shuō),就是能夠打比賽的程序。2.2仿真平臺(tái)與策略程序的通訊方式策略程序接受數(shù)據(jù)策略程序發(fā)送數(shù)據(jù)MLS平臺(tái)MLS策略程序策略程序?qū)⒔邮艿臄?shù)據(jù)進(jìn)行處理2.3場(chǎng)地信息介紹(6.8118,6.3730)(6.8118,77.2392)(93.4259,77.2392)(93.4259,6.3730)(0,0)(單位:英寸)說(shuō)明:1英寸=2.54厘米2.4場(chǎng)地的各種標(biāo)志及尺寸(單位:厘米)前約4.318球機(jī)器人約7.9756(0.0,0.0)XY轉(zhuǎn)角方向0°2.5球與車(chē)的長(zhǎng)度尺寸(單位:厘米)2.6策略程序每個(gè)周期接受的數(shù)據(jù)仿真平臺(tái)傳遞給策略程序的數(shù)據(jù):己方、對(duì)方機(jī)器人坐標(biāo)、角度(當(dāng)前周期,上一周期)。球的坐標(biāo)(當(dāng)前周期,上一周期)。場(chǎng)地?cái)?shù)據(jù)。控球方。2.7策略程序每個(gè)周期發(fā)送的數(shù)據(jù)策略程序發(fā)送給仿真平臺(tái)的數(shù)據(jù):己方(home[i])每個(gè)機(jī)器人的左輪速(vl)和右輪速(vr)。注:當(dāng)前發(fā)送的數(shù)據(jù)要到下一周期才能執(zhí)行。4.動(dòng)作函數(shù)及演示4.1Velocity動(dòng)作函數(shù)
該動(dòng)作可以給機(jī)器人自由的發(fā)輪速(在該程序中可以簡(jiǎn)單的認(rèn)為輪速就是機(jī)器人的推進(jìn)力)。 小車(chē)發(fā)輪樹(shù)被限制為–125~125之間。
//形參robot指定小車(chē)號(hào)
//形參vl左輪速vr右輪速voidVelocity(Robot*robot,intvl,intvr);
機(jī)器人的運(yùn)動(dòng)控制左輪速vl右輪速vr注:
vl>vr機(jī)器人順時(shí)針旋轉(zhuǎn)
vl<vr機(jī)器人逆時(shí)針旋轉(zhuǎn)當(dāng)輪速為負(fù)時(shí),機(jī)器人反向運(yùn)動(dòng)4.1.2Velocity例子//一般動(dòng)作voidNormalVelocity(Environment*env){ //讓2號(hào)機(jī)器人兩個(gè)輪子都以10的輪速前進(jìn)
Velocity(&env->home[2],20,20); //讓1號(hào)機(jī)器人左輪子都以-20的輪速后退
Velocity(&env->home[1],-20,-20); //給3號(hào)機(jī)器人左輪發(fā)100,右輪發(fā)20 Velocity(&env->home[3],100,20);}4.2Angle動(dòng)作函數(shù)
該動(dòng)作可以讓機(jī)器人轉(zhuǎn)到指定的任意角度。并做直線(xiàn)運(yùn)動(dòng)。
//形參robot指定小車(chē)號(hào)
//形參desired_angle為轉(zhuǎn)角度數(shù)voidAngle(Robot*robot,intdesired_angle);4.2.1機(jī)器人的轉(zhuǎn)角控制30度左輪速vl右輪速vr-180度+180度-60度左輪速vl右輪速vr當(dāng)角度為負(fù)時(shí),機(jī)器人反向運(yùn)動(dòng)4.2.2Angle例子voidNormalAngle(Environment*env){ //讓1號(hào)機(jī)器人轉(zhuǎn)到30度角
Angle(&env->home[1],30);//讓3號(hào)機(jī)器人轉(zhuǎn)到-60度角
Angle(&env->home[3],-60);}4.3Position動(dòng)作函數(shù)
該動(dòng)作可以讓機(jī)器人跑到場(chǎng)地上指定的任何地點(diǎn)。
//形參robot指定小車(chē)號(hào)
//形參x目標(biāo)位置X坐標(biāo)y目標(biāo)位置Y坐標(biāo)voidPosition(Robot*robot,doublex,doubley);4.3.1機(jī)器人的指定點(diǎn)運(yùn)動(dòng)?度左輪速vl右輪速vr球位置2球位置1Position函數(shù)根據(jù)目標(biāo)位置可進(jìn)行轉(zhuǎn)角的控制。4.3.2Position例子voidNormalPosition(Environment*env){ //讓2號(hào)機(jī)器人追著球跑
Position(&env->home[2],,\); //讓2號(hào)機(jī)器人跑到場(chǎng)地中心
doublex=(env->fieldBounds.left+env->fieldBounds.right)/2; doubley=(env->fieldBounds.bottom+env->fieldBounds.top)/2; Position(&env->home[2],x,y);}4.4三個(gè)動(dòng)作函數(shù)組合使用的例子voidNormal(Environment*env){ Position(&env->home[0], env->goalBounds.left+10, env->currentBall.pos.y);//讓0號(hào)機(jī)器人在球門(mén)附近跟著球的y坐標(biāo)跑
Velocity(&env->home[1],10,70);//讓1號(hào)機(jī)器人逆時(shí)針轉(zhuǎn)圈
Position(&env->home[2], env->currentBall.pos.x, env->currentBall.pos.y);//讓2號(hào)機(jī)器人追著球跑
Angle(&env->home[3],-60); //讓3號(hào)機(jī)器人追著球跑
Velocity(&env->home[4],5,5);//讓1號(hào)機(jī)器人逆時(shí)針轉(zhuǎn)圈}4.5注意事項(xiàng)輪速度限制為-125~125平臺(tái)原始接口中提供了比賽狀態(tài)(GameState)以及控球方(WhosBall)兩個(gè)參數(shù),但經(jīng)過(guò)實(shí)際開(kāi)發(fā)時(shí)發(fā)現(xiàn)他們毫無(wú)任何用處,故需要自己判斷場(chǎng)地度量單位為英寸,1英寸=2.54厘米機(jī)器人角度的單位為角度(不是弧度)如果場(chǎng)地不同,隊(duì)伍需要轉(zhuǎn)換左右半場(chǎng)坐標(biāo)5.策略程序的結(jié)構(gòu)5.1策略文件組成5.2策略類(lèi)視圖5.3InterFace.h接口文件
這個(gè)文件有與仿真平臺(tái)通訊的一個(gè)結(jié)構(gòu)Environment和三個(gè)函數(shù)的聲明//比賽開(kāi)始時(shí)系統(tǒng)調(diào)用一次extern"C"STRATEGY_APIvoidCreate(Environment*env);//比賽過(guò)程中由系統(tǒng)循環(huán)調(diào)用(策略都放在里面)。extern"C"STRATEGY_APIvoidStrategy(Environment*env);//比賽結(jié)束時(shí)系統(tǒng)調(diào)用一次extern"C"STRATEGY_APIvoidDestroy(Environment*env);5.3.1Strategy
接口函數(shù)解析
函數(shù)接口Strategy是程序的主要執(zhí)行邏輯,由系統(tǒng)反復(fù)調(diào)用,每次調(diào)用時(shí)系統(tǒng)通過(guò)Environment*env這個(gè)指針向我們傳遞當(dāng)前周期系統(tǒng)提供信息,在這里,我們必須處理針對(duì)賽場(chǎng)上每一時(shí)刻的對(duì)策,通過(guò)策略運(yùn)算設(shè)置己方小車(chē)的左右輪轉(zhuǎn)速,來(lái)控制機(jī)器人進(jìn)行足球比賽。每秒調(diào)用次數(shù)依靠機(jī)器能力來(lái)定,默認(rèn)為60次,即仿真的一個(gè)周期為1/60秒。extern"C"STRATEGY_APIvoidStrategy(Environment*env);5.3.2InterFace.h//主要的定義,包含所有運(yùn)行時(shí)的的信息,由系統(tǒng)刷新typedefstruct{ Robothome[PLAYERS_PER_SIDE];
//我方機(jī)器人數(shù)組 OpponentRobotopp[PLAYERS_PER_SIDE];
//敵方機(jī)器人數(shù)組 BallcurrentBall, //當(dāng)前小球的位置
lastBall, //上一次小球的位置
predictedBall; //預(yù)計(jì)的小球的位置 BoundsfieldBounds, //場(chǎng)地范圍
goalBounds; //球門(mén)的位置與范圍 longgameState; //當(dāng)前游戲的狀態(tài) longwhosBall; //由誰(shuí)控制球 void*userData; //用戶(hù)自定義信息}Environment; 5.3.3InterFace.h//位置向量定義typedefstruct{ doublex,y,z;//x和y為坐標(biāo)值}Vector3D;5.3.4InterFace.h//己方機(jī)器人的信息定義typedefstruct{ Vector3Dpos; //機(jī)器人坐標(biāo) doublerotation; //機(jī)器人方向角 doublevelocityLeft,
velocityRight; //機(jī)器人左右輪速度}Robot;5.3.5InterFace.h//敵方機(jī)器人的信息的定義typedefstruct{ Vector3Dpos; //機(jī)器人的坐標(biāo)位置 doublerotation; //機(jī)器人當(dāng)前的轉(zhuǎn)角}OpponentRobot;5.3.6InterFace.h//小球的位置定義typedefstruct{ Vector3Dpos; //小球的坐標(biāo)位置}Ball;5.3.7InterFace.h//場(chǎng)地區(qū)域范圍typedefstruct{ longleft, //場(chǎng)地左邊界
right, //場(chǎng)地右邊界
top, //場(chǎng)地上邊界
bottom;//場(chǎng)地下邊界
}Bounds;5.4Strategy.h簡(jiǎn)單策略函數(shù)//防守球門(mén)voidGoalie1(Robot*robot,Environment*env);//控制小車(chē)在球場(chǎng)邊線(xiàn)的控制voidNearBound2(Robot*robot,doublevl,doublevr,Environment*env);//搶球voidAttack2(Robot*robot,Environment*env);//防守voidDefend(Robot*robot,Environment*env,doublelow,doublehigh);Strategy.h簡(jiǎn)單策略函數(shù)//機(jī)器人向小球的位置移動(dòng)的方法voidMoonAttack(Robot*robot,Environment*env); //對(duì)敵方的跟蹤voidMoonFollowOpponent(Robot*robot,OpponentRobot*opponent);//預(yù)估小球的位置voidPredictBall(Environment*env);5.5Action.h基本動(dòng)作函數(shù)//設(shè)置小車(chē)輪子速度voidVelocity(Robot*robot,intvl,intvr);//小車(chē)轉(zhuǎn)角控制voidAngle(Robot*robot,intdesired_angle);//移動(dòng)小車(chē)到指定位置voidPosition(Robot*robot,doublex,doubley);6.策略系統(tǒng)設(shè)計(jì)6.1策略系統(tǒng)的分層結(jié)構(gòu)策略庫(kù)平臺(tái)接口數(shù)據(jù)預(yù)處理層角色層角色動(dòng)作層組合動(dòng)作庫(kù)6.1.1預(yù)處理層設(shè)計(jì)
輸入信息預(yù)處理,包括對(duì)接口參數(shù)進(jìn)行英寸到厘米及坐標(biāo)方向的轉(zhuǎn)換,計(jì)算個(gè)體的線(xiàn)速度、角速度,個(gè)體間的距離、角度等。6.1.2角色層設(shè)計(jì)
角色層是決策的最高層,它接受經(jīng)預(yù)處理過(guò)的比賽數(shù)據(jù),包括所有機(jī)器人和球的位置。根據(jù)這些數(shù)據(jù)判斷場(chǎng)上的形勢(shì),從策略庫(kù)中抽取合適的協(xié)作模式,定出合作的意圖.并將意圖傳人下一層。角色層的關(guān)鍵有兩點(diǎn):判斷場(chǎng)上形勢(shì)和角色的分配。在對(duì)形式分析得時(shí)候需要加入規(guī)則得判斷。策略庫(kù)角色層角色層-區(qū)域劃分一般將球場(chǎng)分成三個(gè)區(qū)域:進(jìn)攻區(qū)、防守區(qū)和過(guò)渡區(qū)進(jìn)攻區(qū)在對(duì)方球門(mén)區(qū)附近防守區(qū)在已方球門(mén)區(qū)附近過(guò)渡區(qū)在前兩者之間角色層-判斷控制球
判斷那個(gè)機(jī)器人控制球的方法:最短距離法:該方法實(shí)現(xiàn)簡(jiǎn)單,效果明顯,當(dāng)前周期中那個(gè)機(jī)器人與球的距離最近就代表誰(shuí)控球。
角色層-角色分配例如:球在進(jìn)攻區(qū)內(nèi)。且我方控制球,則離球近的隊(duì)員為主攻、另一名隊(duì)員為協(xié)攻。球在防守區(qū)域內(nèi),則離球近的隊(duì)員為主防、另一名隊(duì)員為協(xié)防。
(就能隨意的變換1到4號(hào)車(chē),但守門(mén)員的角色通常不變);角色分配首先取決于開(kāi)發(fā)者設(shè)計(jì)的各種攻防策略(存放在策略庫(kù)中):如:全攻全守,區(qū)域防守6.1.3角色動(dòng)作層設(shè)計(jì)
角色動(dòng)作層是對(duì)已經(jīng)分配角色的機(jī)器人進(jìn)行一個(gè)連續(xù)動(dòng)作的規(guī)劃。這里設(shè)計(jì)到機(jī)器人之間的配合動(dòng)作在角色動(dòng)作被分配以后,隨著場(chǎng)上形式的轉(zhuǎn)變需要對(duì)角色動(dòng)作進(jìn)行切換操作。角色動(dòng)作層組合動(dòng)作庫(kù)組合動(dòng)作庫(kù)
組合動(dòng)作庫(kù)是建立在機(jī)器人基本動(dòng)作上的。將機(jī)器人的基本動(dòng)作進(jìn)行組合,組合成一個(gè)角色的動(dòng)作。
7.各種定位球7.1各種定位球坐標(biāo)確定方法載入兩個(gè)空策略。點(diǎn)擊OpenViewer菜單。打開(kāi)RSViwer,選擇Ball。各種定位球坐標(biāo)確定方法將球移動(dòng)到待測(cè)試點(diǎn)后點(diǎn)擊Start進(jìn)入比賽狀態(tài)。點(diǎn)擊RSViwer中的Display
可以看到球的坐標(biāo)。7.2自由球7.2.1球與機(jī)器人擺放原則將場(chǎng)地分成四個(gè)區(qū)域,每個(gè)區(qū)域都有一個(gè)自由球罰球點(diǎn),在哪個(gè)區(qū)域犯規(guī),就在那個(gè)區(qū)域罰自由球。球應(yīng)該擺放在罰球點(diǎn)上。每對(duì)有一個(gè)機(jī)器人放在離球25厘米的發(fā)球線(xiàn)上。其他機(jī)器人應(yīng)該放在這個(gè)犯規(guī)區(qū)域以外。防守方機(jī)器人應(yīng)在靠近自己底線(xiàn)的一邊。防守方先擺機(jī)器人。7.2.2自由球的判斷判斷球場(chǎng)上所有機(jī)器人和球的速度非常小。判斷球的位置是否在發(fā)球點(diǎn)上。判斷我方和對(duì)方是否有且僅有一個(gè)機(jī)器人在球的附近(相距25厘米左右)。結(jié)合以上三個(gè)條件起來(lái)就可以判斷是否在罰自由球。7.3點(diǎn)球7.3.1球與機(jī)器人擺放原則踢球機(jī)器人必須放在球的后方。防守的守門(mén)員必須壓球門(mén)線(xiàn)。除了踢球機(jī)器人和防守守門(mén)員外,其他機(jī)器人都在另外半場(chǎng)。防守方先擺機(jī)器人。7.3.2自由球的判斷判斷球場(chǎng)上所有機(jī)器人和球的速度非常小。判斷球的位置是否在發(fā)球點(diǎn)上。判斷我方和對(duì)方是否有且僅有一個(gè)機(jī)器人在發(fā)球的那個(gè)半場(chǎng)。結(jié)合以上三個(gè)條件起來(lái)就可以判斷是否在罰自由球。7.4球門(mén)球7.4.1球與機(jī)器人擺放原則發(fā)球方只允許有一個(gè)守門(mén)員在大禁區(qū)內(nèi)。球應(yīng)該放在大禁區(qū)內(nèi)。防守方機(jī)器人必須在自己半場(chǎng)。防守方先擺機(jī)器人。7.4.2球門(mén)球的判斷判斷球場(chǎng)上所有機(jī)器人和球的速度非常小。判斷球的位置是否在大禁區(qū)內(nèi)。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全屋定制合同合同附件修訂
- 廢紙手工制作教學(xué)設(shè)計(jì)方案
- 中學(xué)地理綜合實(shí)踐活動(dòng)方案
- 提高無(wú)人機(jī)動(dòng)力系統(tǒng)效率的方案
- 貨物在途狀態(tài)跟蹤合同
- 倉(cāng)庫(kù)空間使用租賃協(xié)議
- 同城配送服務(wù)升級(jí)協(xié)議
- 企業(yè)采購(gòu)供應(yīng)鏈協(xié)議
- 配送服裝服裝樣品寄付合作協(xié)議
- 防汛應(yīng)急安全演練方案
- 中藥保留灌腸講課課件
- 澳大利亞為子女提供的在職證明范本澳大利亞簽證在職證明
- 2025中車(chē)株洲電力機(jī)車(chē)研究所有限公司社會(huì)招聘筆試歷年參考題庫(kù)及答案
- 2025年學(xué)前兒童音樂(lè)教育試卷(附答案)
- 一點(diǎn)點(diǎn)奶茶店?duì)I銷(xiāo)策劃方案
- 2025年生產(chǎn)安全事故典型案例
- 法律服務(wù)行業(yè)數(shù)字化轉(zhuǎn)型與2025年挑戰(zhàn)與機(jī)遇報(bào)告
- 公司投標(biāo)知識(shí)培訓(xùn)內(nèi)容課件
- 外墻真石漆專(zhuān)項(xiàng)施工方案
- 信息安全供應(yīng)商培訓(xùn)課件
- 自主導(dǎo)航移動(dòng)機(jī)器人 (AMR) 產(chǎn)業(yè)發(fā)展藍(lán)皮書(shū) (2023 版)-部分1
評(píng)論
0/150
提交評(píng)論