《AIRobot培訓(xùn)教程》PPT課件.ppt
《《AIRobot培訓(xùn)教程》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《AIRobot培訓(xùn)教程》PPT課件.ppt(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、AIRobot機(jī)器人培訓(xùn)教程,,13003521055,AIRobot平臺(tái)簡(jiǎn)介,AI-CODE 是一套虛擬機(jī)器人平臺(tái)。其中包括機(jī)器人運(yùn)行平臺(tái)Airobot,代碼編輯器CodeCanvas等組件。您可以在AI-CODE中創(chuàng)建自己的機(jī)器人,用編程的方式控制它。把它放到戰(zhàn)場(chǎng)上同其他開(kāi)發(fā)者創(chuàng)建的機(jī)器人對(duì)手拼死戰(zhàn)斗到底。在戰(zhàn)斗中感受到學(xué)習(xí)所帶到的快樂(lè)。 AI-CODE 是一種教育軟件,以寓教于樂(lè)的方式。打破了傳統(tǒng)教育的模式,讓大家在非壓迫的競(jìng)爭(zhēng)中極大的提高自己的學(xué)習(xí)水平。 AI-CODE 參與者可以用不同的語(yǔ)言編寫(xiě)自己的機(jī)器人,目前支持的語(yǔ)言包括java,c,c++。使用不同語(yǔ)言的程序員在這里可以同場(chǎng)競(jìng)
2、技。,,,,,AIRobot機(jī)器人平臺(tái)是一個(gè)虛擬平臺(tái),參賽者只要把自己的機(jī)器人封裝好放在平臺(tái)的指定位置,即可參加戰(zhàn)斗,比賽結(jié)束后存活者為勝。,,,平臺(tái)使用,13003521055,AIRobot平臺(tái)安裝及配置,1、我們使用的是AIRobot平臺(tái)3.0版本,首先到網(wǎng)站上下載AIRobot安裝程序,運(yùn)行安裝程序,一般安裝在D盤(pán)。 2、使用自己熟悉的程序編寫(xiě)機(jī)器人,并生成可執(zhí)行程序,然后把可執(zhí)行程序復(fù)制到 D:AIROBOTrobots,即程序的安裝目錄。 3、新建比賽,熟悉平臺(tái)的運(yùn)行方式。,13003521055,新建比賽的方法,第一步:運(yùn)行AIROBOT。通過(guò)AIROBOT目錄中的run.bat
3、來(lái)運(yùn)行AIROBOT?;螂p擊AIrobot的圖標(biāo)。 第二步:點(diǎn)擊“Match”菜單下的“New”,如下圖:,13003521055,新建比賽的方法,第三步,彈出新建比賽對(duì)話框,在機(jī)器人選擇頁(yè)上,先選擇機(jī)器人所在的包Samples.java,然后選擇機(jī)器人Circle,這是一個(gè)作圓周運(yùn)動(dòng)的機(jī)器人,然后按add按鈕,讓Circle參加這場(chǎng)比賽。如圖:,13003521055,新建比賽的方法,第四步,按照同樣的方法添加例子機(jī)器人MoveLine,然后按finish按鈕,這樣就開(kāi)始了一場(chǎng)新的比賽,參加比賽的選手就是我們剛剛選擇的機(jī)器人Circle和MoveLine。,13003521055,編寫(xiě)自己的
4、機(jī)器人,Tool-Create Robot Project創(chuàng)建一個(gè)新的機(jī)器人,選擇該菜單項(xiàng)后將出現(xiàn)創(chuàng)建機(jī)器人對(duì)話框。在第一個(gè)頁(yè)面中可以指定項(xiàng)目類(lèi)型(編程語(yǔ)言),項(xiàng)目名字等信息。,13003521055,編寫(xiě)自己的機(jī)器人,Project Name: 項(xiàng)目名。每個(gè)機(jī)器人項(xiàng)目都擁有若干機(jī)器人文件(包括源程序文件,配置文件等),該名字也用作這些文件的文件名的前綴。必須用英文,并且符合所用語(yǔ)言的命名規(guī)范。 Project Type: 機(jī)器人類(lèi)型。目前支持的類(lèi)型有java, c++,c。,13003521055,編寫(xiě)自己的機(jī)器人,Project Package: 項(xiàng)目所在的包。實(shí)際上對(duì)應(yīng)存放機(jī)器人文件的目
5、錄。如果是多級(jí)目錄,可以用”.”將目錄名分開(kāi),如abc.def,則機(jī)器人的文件將存放在開(kāi)發(fā)目錄下的abcedf子目錄中。必須用英文,并且符合目錄命名的規(guī)范,如果是java機(jī)器人,還必須符合java語(yǔ)言中包命名的規(guī)范。,13003521055,編寫(xiě)自己的機(jī)器人,Developing dire: 機(jī)器人的開(kāi)發(fā)目錄。存放機(jī)器人項(xiàng)目的目錄,默認(rèn)的開(kāi)發(fā)目錄是airobot安裝目錄下的robots子目錄。Airobot啟動(dòng)的時(shí)候會(huì)到這些開(kāi)發(fā)目錄中裝載機(jī)器人,開(kāi)發(fā)目錄可以通過(guò)Tool-Developing Dir進(jìn)行管理。,13003521055,編寫(xiě)自己的機(jī)器人,例如創(chuàng)建一個(gè)java機(jī)器人項(xiàng)目,項(xiàng)目名為M
6、yRobot,包名為myPackage,選擇默認(rèn)開(kāi)發(fā)目錄。與項(xiàng)目名和包名相對(duì)應(yīng),機(jī)器人源文件為MyRobot.java,該文件存放在開(kāi)發(fā)目錄下的myPackage子目錄中。這個(gè)機(jī)器人項(xiàng)目的全名為myPackage.MyRobot,一個(gè)機(jī)器人項(xiàng)目的全名由包名和項(xiàng)目名定義(中間用”.”分隔),在同一個(gè)開(kāi)發(fā)目錄中不可以創(chuàng)建兩個(gè)同名的項(xiàng)目。,13003521055,編寫(xiě)自己的機(jī)器人,項(xiàng)目創(chuàng)建完后將打開(kāi)代碼編輯器(CodeCanvas),在這里可以直接編輯機(jī)器人程序和編譯機(jī)器人。關(guān)于代碼編輯器的使用請(qǐng)參考相關(guān)的文檔。,13003521055,編寫(xiě)自己的機(jī)器人,點(diǎn)擊next,在接下來(lái)的頁(yè)面中可以指定機(jī)器人
7、的描述信息。,13003521055,編寫(xiě)自己的機(jī)器人,name: 機(jī)器人的名字,該名字和前面輸入的項(xiàng)目名沒(méi)有關(guān)系,可以任意制定,可以用中文。(默認(rèn)與項(xiàng)目名相同) Package: 機(jī)器人的包名,該名字和前面輸入的項(xiàng)目的包名沒(méi)有關(guān)系,可以任意制定,可以用中文。(默認(rèn)與項(xiàng)目所在的包相同) Version: 機(jī)器人的版本,可以不輸入。 Description: 機(jī)器人的描述信息,可以不輸入。,13003521055,編寫(xiě)自己的機(jī)器人,這里輸入的信息是用于對(duì)外顯示的,例如在新建一場(chǎng)比賽的時(shí)候?qū)C(jī)器人進(jìn)行分類(lèi)和選擇,以及在比賽過(guò)程中對(duì)機(jī)器人進(jìn)行區(qū)分。例如輸入機(jī)器人的名字為FirstRobot,包為my
8、Robots,機(jī)器人的全名為myRobots. FirstRobot,一個(gè)機(jī)器人的全名由包名和機(jī)器人名定義(中間用”.”分隔)。,13003521055,編寫(xiě)自己的機(jī)器人,點(diǎn)擊next,在接下來(lái)的頁(yè)面中可以指定機(jī)器人的外觀。機(jī)器人的外觀可以在以后通過(guò)機(jī)器人管理對(duì)話框進(jìn)行修改。,13003521055,控制策略及算法設(shè)計(jì)-運(yùn)動(dòng)策略,1、運(yùn)動(dòng)是機(jī)器人在戰(zhàn)斗過(guò)程中最重要的事件之一,關(guān)系到射擊敵方機(jī)器人,躲避對(duì)方機(jī)器人等。 2、移動(dòng)時(shí)可以以各種各樣的形式進(jìn)行,如直線運(yùn)動(dòng),弧線運(yùn)動(dòng),曲線運(yùn)動(dòng),隨機(jī)運(yùn)動(dòng)等。 3、優(yōu)秀的運(yùn)動(dòng)策略應(yīng)該是既可以方便的打擊對(duì)手,又可以快速的躲避敵人且不容易被對(duì)手分析出自己的運(yùn)動(dòng)軌
9、跡。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,1、用迭代的方法控制機(jī)器人的移動(dòng) ,在onTick函數(shù)中,迭代之前將bearing初始化為0,迭代在一個(gè)循環(huán)中執(zhí)行,首先計(jì)算得到一個(gè)目標(biāo)點(diǎn),該點(diǎn)的物理意義如圖所示。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,然后用isValid函數(shù)判斷這個(gè)點(diǎn)是否是一個(gè)合理的目標(biāo)點(diǎn),isValid主要是檢查這個(gè)點(diǎn)與四面墻的距離,保證目標(biāo)點(diǎn)落在一定的范圍內(nèi),機(jī)器人不至于撞倒墻。如果這不是一個(gè)合理的目標(biāo)點(diǎn),讓bearing加上一個(gè)弧度值GAP,然后進(jìn)入下一次迭代,對(duì)bearing的遞增將導(dǎo)致下一次迭代的時(shí)候得到一個(gè)不同的目標(biāo)點(diǎn)。如果找到一個(gè)合理
10、的點(diǎn),那么迭代結(jié)束,朝這個(gè)目標(biāo)點(diǎn)移動(dòng)(moveTo)。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,迭代算法還可以打擊走直線的機(jī)器人 ,要打擊走直線的機(jī)器人,就不能朝機(jī)器人的原始位置開(kāi)火,因?yàn)楫?dāng)你的子彈到達(dá)機(jī)器人的原始位置的時(shí)候,他早已經(jīng)離開(kāi)那里了。所以必須計(jì)算機(jī)器人在將來(lái)某個(gè)時(shí)刻所出現(xiàn)的點(diǎn),向這個(gè)點(diǎn)開(kāi)炮才有可能擊中他。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,假設(shè)機(jī)器人在經(jīng)過(guò)t個(gè)單位時(shí)間后到達(dá)位置p, 如果子彈能在t個(gè)單位時(shí)間后到達(dá)p,那么向p開(kāi)炮就可以擊中這個(gè)機(jī)器人。根據(jù)機(jī)器人編程接口所提供的函數(shù)可以很容易知道機(jī)器人的坐標(biāo),方向,移動(dòng)的速度等信息,利用這些信息我們可
11、以得到一個(gè)關(guān)于t的方程,解出t以后就可以計(jì)算出p點(diǎn),向這個(gè)點(diǎn)開(kāi)炮就可以打中敵人。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,利用解方程確實(shí)可以達(dá)到預(yù)期的效果,幸好這只是一個(gè)簡(jiǎn)單的方程,但在很多情況下,計(jì)算機(jī)器人將來(lái)出現(xiàn)的位置是很難用解方程求出來(lái)的。用迭代的方法可以達(dá)到同樣的效果,而且要簡(jiǎn)單得多。例子機(jī)器人FireLine演示了這種方法。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,無(wú)論是用解方程還是迭代,目的都是找出一個(gè)子彈和對(duì)手相遇的點(diǎn)。利用迭代算法,并不是一下就找到這個(gè)點(diǎn),而是一步步逼近這個(gè)點(diǎn),隨著time的增加,離這個(gè)相遇點(diǎn)就越來(lái)越近,因?yàn)樽訌椀乃俣缺葯C(jī)器人的運(yùn)動(dòng)速
12、度要快,所以子彈總是可以追上機(jī)器人并擊中他。這種方法并不是一下就找到問(wèn)題的解,所以看上去這個(gè)迭代過(guò)程有點(diǎn)“苯”,而正是這個(gè)原因才使這種方法變得簡(jiǎn)單有效。,13003521055,控制策略及算法設(shè)計(jì)-迭代算法,總結(jié) 通過(guò)這兩個(gè)例子,我們可以看到迭代算法是一種簡(jiǎn)單有效的方法。一般情況下,迭代算法都有一個(gè)循環(huán)體,一個(gè)疊加模塊(bearing+=Gap, time++),還必須有一個(gè)結(jié)束迭代的條件。迭代算法并不是直接求解問(wèn)題的解,而是逐步逼近問(wèn)題的解,所以他的適應(yīng)性很強(qiáng),在編寫(xiě)機(jī)器人的時(shí)候很多地方都可以用到他。,13003521055,控制策略及算法設(shè)計(jì)-隨機(jī)運(yùn)動(dòng),BaseWrap實(shí)現(xiàn)了一個(gè)繞對(duì)手做來(lái)
13、回運(yùn)動(dòng)的移動(dòng)策略,經(jīng)過(guò)WrapKeepDis和WrapAvoidWall的擴(kuò)展它還可以與對(duì)手保持一定的距離,而且不會(huì)撞墻。它在做來(lái)回運(yùn)動(dòng)的時(shí)候每隔一定的時(shí)間就變換移動(dòng)的方向,這樣的移動(dòng)規(guī)律是非常明顯的,為了避免這樣的情況發(fā)生,在控制移動(dòng)的時(shí)候加入隨機(jī)性,對(duì)手就不能輕易的將你擊中了。,13003521055,控制策略及算法設(shè)計(jì)-隨機(jī)運(yùn)動(dòng),在BaseWrap中,在一個(gè)方向上的運(yùn)動(dòng)時(shí)間是固定的,這是移動(dòng)規(guī)律明顯的主要因素。WrapRandom從對(duì)setDirection函數(shù)進(jìn)行了改進(jìn),在每次改變運(yùn)動(dòng)方向的時(shí)候,它隨機(jī)生成在這個(gè)方向上移動(dòng)的時(shí)間,這樣一來(lái)機(jī)器人的運(yùn)動(dòng)就變得“亂”多了,連作者也不知道機(jī)器
14、人將會(huì)怎么移動(dòng),敵人也不可能輕易的分析出機(jī)器人的運(yùn)動(dòng)規(guī)律。,13003521055,控制策略及算法設(shè)計(jì)-圍繞運(yùn)動(dòng),BaseWrap 圍繞運(yùn)動(dòng) 想要圍繞著對(duì)手,最簡(jiǎn)單的辦法就是在這樣一個(gè)圓的軌跡上運(yùn)動(dòng):圓心為對(duì)手當(dāng)前的坐標(biāo),半徑為機(jī)器人到對(duì)手的距離。只要一直保持機(jī)器人的車(chē)身方向與機(jī)器人到對(duì)手連線方向的夾角為90度,就可以在這樣的一個(gè)圓周軌跡上運(yùn)動(dòng)。,13003521055,控制策略及算法設(shè)計(jì)-模擬匹配瞄準(zhǔn),模擬匹配瞄準(zhǔn)的思想是假設(shè)敵人的運(yùn)動(dòng)總是存在一個(gè)規(guī)律,未來(lái)的運(yùn)動(dòng)總是歷史的重復(fù)。在歷史記錄中尋找與最近一段時(shí)間的運(yùn)動(dòng)(當(dāng)前狀態(tài)段)最相似的一段歷史記錄,根據(jù)這一段記錄之后的運(yùn)動(dòng)規(guī)律就可以確定對(duì)手
15、將會(huì)以什么樣的方式運(yùn)動(dòng)。,13003521055,控制策略及算法設(shè)計(jì)-統(tǒng)計(jì)學(xué)瞄準(zhǔn),在一般的情況下,對(duì)手不會(huì)一動(dòng)不動(dòng)的在原地讓你打。發(fā)彈的時(shí)候如果朝對(duì)手當(dāng)前的位置開(kāi)火,當(dāng)你的子彈到達(dá)對(duì)手原來(lái)的位置時(shí),對(duì)手可能早已經(jīng)離開(kāi)了,如圖。,13003521055,控制策略及算法設(shè)計(jì)-統(tǒng)計(jì)學(xué)瞄準(zhǔn),對(duì)手當(dāng)前的位置為P,經(jīng)過(guò)一段時(shí)間后,對(duì)手移動(dòng)到P,這時(shí)如果直接朝P點(diǎn)開(kāi)炮是打不中對(duì)手的,如果選擇一個(gè)夾角向敵人開(kāi)火(圖中的阿法角),就可以在P打中對(duì)手。從數(shù)學(xué)上說(shuō)這個(gè)夾角是具有一定統(tǒng)計(jì)規(guī)律的,所以我們就可以選擇命中率最高的夾角來(lái)發(fā)彈。,13003521055,控制策略及算法設(shè)計(jì)-躲避子彈,如果我們能夠分析出對(duì)手子彈
16、的情況,就可以根據(jù)這些信息來(lái)指導(dǎo)機(jī)器人的運(yùn)動(dòng),針對(duì)性的躲避對(duì)手的子彈。這種運(yùn)動(dòng)方式與隨機(jī)運(yùn)動(dòng)不同,這種運(yùn)動(dòng)方式主動(dòng)的分析對(duì)手發(fā)彈的情況,分析得越準(zhǔn),這種運(yùn)動(dòng)方式的效果就越好。隨機(jī)運(yùn)動(dòng)是被動(dòng)的,機(jī)器人只是迷惑對(duì)手,不讓對(duì)手掌握自己的運(yùn)動(dòng)規(guī)律。,13003521055,控制策略及算法設(shè)計(jì)-躲避子彈,當(dāng)對(duì)手發(fā)彈的時(shí)候,機(jī)器人的Action處理函數(shù)onFire將得到調(diào)用。這時(shí)根據(jù)FireAction提供的信息我們可以知道對(duì)手開(kāi)火的位置,子彈的能量等信息,不過(guò)我們并不知道這顆子彈是朝哪個(gè)方向發(fā)射的。子彈發(fā)射的方向?qū)⑹俏覀兎治龅闹攸c(diǎn),只要把這個(gè)發(fā)射的方向分析出來(lái),我們就可以完全掌握子彈的情況了。,13003521055,控制策略及算法設(shè)計(jì)-躲避子彈,在分析出對(duì)手發(fā)彈情況的基礎(chǔ)上,還必須有一個(gè)算法來(lái)指導(dǎo)機(jī)器人躲避對(duì)手的子彈。因?yàn)闄C(jī)器人的最大移動(dòng)速度(8)并不比能量為3的子彈速度(11)小多少,如果控制得好的話,機(jī)器人可以多避開(kāi)絕大部分的子彈。,13003521055,AIRobt機(jī)器人平臺(tái),以上只是AIRobot機(jī)器人的基本使用方法及其常用的策略,具體的實(shí)現(xiàn)還要大家進(jìn)行摸索。AIRobot平臺(tái)是展示大家智慧和能力的平臺(tái),希望大家能在學(xué)習(xí)的過(guò)程中體會(huì)到學(xué)習(xí)的樂(lè)趣!,13003521055,AIRobt機(jī)器人平臺(tái),謝謝大家!,
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考語(yǔ)文語(yǔ)言知識(shí)積累及運(yùn)用課件
- 6.康復(fù)醫(yī)學(xué)的工作方法和流程
- 部編本人教版小學(xué)一年級(jí)語(yǔ)文下冊(cè)11-彩虹課件
- 活動(dòng)四單股銅芯導(dǎo)線的T型連接絕緣層的恢復(fù)單股銅芯導(dǎo)線的T型連接課件
- 機(jī)場(chǎng)運(yùn)營(yíng)與管理 課程講義
- 不得作為商標(biāo)的標(biāo)志的審查解讀
- MRSA共識(shí)解讀2012-1-17(1)
- 高中語(yǔ)文必修一《優(yōu)美的漢字》課件
- 安全生產(chǎn)管理培訓(xùn)課件
- 衛(wèi)生系統(tǒng)法律知識(shí)講座-法律責(zé)任與法律救濟(jì)
- 骨關(guān)節(jié)脫位課件
- 護(hù)士行為與護(hù)理安全 課件
- 公路工程技術(shù)標(biāo)準(zhǔn)宣貫-隧道部分課件
- 預(yù)防冬季傳染病主題班會(huì)
- 疾病預(yù)防與食品安全教育.ppt