




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、機(jī)器人編程與設(shè)計(jì),RobotBASIC朱映輝,1,特點(diǎn),機(jī)器人模擬器是對(duì)各種可能情況和不同硬件、軟件組合方式進(jìn)行實(shí)驗(yàn)的有效工具節(jié)省組裝真實(shí)機(jī)器人的時(shí)間和費(fèi)用使用RobotBASIC來編寫算法使機(jī)器人與其所處環(huán)境進(jìn)行交互.學(xué)習(xí)后不僅能對(duì)模擬器進(jìn)行編程,也能夠?qū)C(jī)器人進(jìn)行編程對(duì)模擬機(jī)器人進(jìn)行編程的算法和原則同樣可應(yīng)用于對(duì)真實(shí)機(jī)器人的控制,2,RobotBASIC模擬器,象BASIC語言一樣簡單、易學(xué)(對(duì)初學(xué)者)(高級(jí)愛好者和有經(jīng)驗(yàn)的編程人員)功能仍然足夠強(qiáng)大,它擁有所有標(biāo)準(zhǔn)流動(dòng)控制結(jié)構(gòu)及對(duì)變量和矩陣真正無限的空間能快速迅速地模擬多種類型的環(huán)境和狀況,對(duì)算法進(jìn)行檢查通過模擬,可確定需要什么類型的硬件
2、進(jìn)行選擇(如傳感器)機(jī)器人不僅僅是硬件,3,RobotBASIC語言,它有工具箱、命令和函數(shù)對(duì)機(jī)器人進(jìn)行真實(shí)、有效的模擬進(jìn)行圖形顯示用輸入、輸出命令與用戶交互進(jìn)行數(shù)學(xué)、三角和統(tǒng)計(jì)計(jì)算創(chuàng)建并控制字符,并在字符和數(shù)字間進(jìn)行轉(zhuǎn)換用一系列命令和函數(shù)創(chuàng)建并控制矩陣,能對(duì)數(shù)學(xué)課程中遇到的許多矩陣進(jìn)行操作,4,一機(jī)器人模擬器,終端屏幕模擬一個(gè)四面有墻的房間:800 x600像素(機(jī)器人活動(dòng)空間)機(jī)器人默認(rèn)大?。?0像素(直徑)機(jī)器人的初始化rLocateX,Y,Heading,Size,ColorX,Y位置(整數(shù))Heading可選,默認(rèn)0,指機(jī)器人要面對(duì)的方向(0359),0為北,90為東,180為南,2
3、70為西Size可選,默認(rèn)20像素的半徑,在550之間Color可選,默認(rèn)藍(lán)色,Rlocate300,300,45,40,redend,5,機(jī)器人動(dòng)作,rForwardnpixels在面對(duì)的方向上前進(jìn)或倒退幾個(gè)像素正-前;負(fù)-退rTurnnDegrees沿順時(shí)針或逆時(shí)針旋轉(zhuǎn)幾度(整數(shù))負(fù)-逆時(shí)針;正-順時(shí)針,rlocate300,300rturn90rforward300,rturn-45rforward-200end,6,繞過障礙物,障礙物用圓形和矩形模擬Circlex1,y1,x2,y2,PenColor,FillColorrectanglex1,y1,x2,y2,PenColor,Fil
4、lColorx1,y1,x2,y2確定邊界PenColor輪廓顏色FillColor填充顏色,7,程序代碼,rectangle300,300,500,500,red,redcircle100,100,200,200,blue,bluecircle600,500,700,550,magenta,magentarlocate50,50rturn90rforward400rturn135rforward300rturn-45rforward300rturn-90rforward250rturn-45rforward400end,8,練習(xí),創(chuàng)建程序,使機(jī)器人從(100,100)運(yùn)動(dòng)到(300,300)
5、,然后從(500,100)回到(100,100)提示,定位(100,100),朝向135,前進(jìn)283,轉(zhuǎn)-90,前進(jìn)283,再轉(zhuǎn)-135,最近前進(jìn)400按下圖搭建環(huán)境并按箭頭指示進(jìn)行運(yùn)動(dòng),9,二RobotBASIC傳感器,RobotBASIC中的機(jī)器人有一系列的傳感器,使其對(duì)周圍環(huán)境有感知的能力控制算法通過傳感器來分析環(huán)境,然后采取行動(dòng)避障,并能發(fā)現(xiàn)、定位目標(biāo),10,部分編程結(jié)構(gòu),RobotBASIC一般不區(qū)分大小寫但變量名、陣列名、標(biāo)簽區(qū)分大小寫變量很靈活,命名無限制,可存儲(chǔ)任意類型數(shù)據(jù),且可以改變變量中所存的數(shù)據(jù)類型和數(shù)值.注釋/,11,部分編程結(jié)構(gòu),條件語句1.IF條件THEN一種操作2
6、.IF條件多個(gè)操作ENDIF3.IF條件操作ELSE操作ENDIF,12,部分編程結(jié)構(gòu),比較操作=循環(huán)For-nextWhile-wend,13,(1)用緩沖器進(jìn)行避障,緩沖器rBumper()RobotBASIC機(jī)器人有4個(gè)緩沖器,前面和后面的分別形成130圓弧,側(cè)面的僅形成50.,14,rLocate400,300Fora=1to500ifrbumper()=0thenrForward1NextEndrLocate400,300Whilerbumper()=0rForward1WendEnd,15,(2)紅外傳感器,紅外傳感器使機(jī)器人能夠在接觸到物體之前就探測到路徑上物體的存在原理:使用紅
7、外LED(發(fā)光二極管)機(jī)器人向周圍發(fā)出光線,若光線被反射回機(jī)器人,則晶體管電路可檢測到.,16,RobotBASIC機(jī)器人有5個(gè)紅外傳感器,分別間隔45進(jìn)行安裝使用函數(shù)rFeel()獲得紅外傳感器狀態(tài)的編碼數(shù)字,機(jī)器人右側(cè)的傳感器是二進(jìn)制數(shù)字中的最小位.,17,rLocate400,300Whilerfeel()=0rforward1WendEndrFeel()比rBumper()探測物體的效果更好,因?yàn)樽詈檬遣话l(fā)生碰撞.缺點(diǎn):有可能探測不到小的物體(或大物體的邊角),因此,當(dāng)想避免障礙物時(shí),推薦同時(shí)使用rFeel和rBumper狀態(tài)數(shù)據(jù)進(jìn)行分析.,18,(3)超聲波和紅外測距,rFeel和r
8、Bumper的其中一個(gè)局限性是只能探測距機(jī)器人很近的物體,然而,最好能夠?qū)ζ渎窂缴系倪h(yuǎn)處物體進(jìn)行探測,以盡早采取行動(dòng).RobotBASIC機(jī)器人裝有單一測距的傳感器,因此面向與機(jī)器人相同的方向.函數(shù)rRange()獲取機(jī)器人前方物體的距離rRange()返回20,表明在距離機(jī)器人20個(gè)像素處有某個(gè)物體存在.,19,下方程序使機(jī)器人在距離北墻20個(gè)像素處停止rLocate400,300Whilerrange()20rforward1WendEnd,20,(4)機(jī)器人視覺,RobotBASIC機(jī)器人攝像頭返回一個(gè)數(shù)字,表示其所看到的顏色.函數(shù)rLook().Circle600,500,620,52
9、0,red,redRlocate400,300Whilerlook()redrturn1Wendend,21,(5)信號(hào)探測,若希望機(jī)器人找到房間里的某個(gè)位置,可在該處掛一個(gè)閃爍燈(可見或紅外線的),因?yàn)檫@個(gè)閃爍燈在房間的位置較高,所以即使其他物體處于機(jī)器人和目標(biāo)位置之間,這個(gè)閃爍信號(hào)也一直可見.函數(shù)rBeacon(color)返回一個(gè)非0值,表示機(jī)器人面對(duì)一個(gè)該顏色的信號(hào),這數(shù)字實(shí)際就是機(jī)器人和信號(hào)之間的距離;若返回0,表示機(jī)器人沒有面對(duì)信號(hào).若不想使用距離數(shù)據(jù),可只當(dāng)作真和假指示器使用.,22,Circle600,500,620,520,red,redRlocate400,300While
10、rBeacon()=falserturn1Wendend,23,(6)指南針,指南針函數(shù)rCompass(),返回機(jī)器人面對(duì)的當(dāng)前方向.屏幕上方向:上北下南,左西右東.北:0,東:90,南:180,西:270Rlocate400,300Whilercompass()90/東部rturn1Wendend,24,(7)全球定位,兩個(gè)函數(shù)rGpsX(),rGpsY(),分別返回機(jī)器人位置的X和Y坐標(biāo)值.可精確到1個(gè)像素.Rlocate400,300Whilergpsy()30rforward1WendEnd/展示機(jī)器人如何跟蹤北墻位置并在距離墻壁10個(gè)像素處停止.(默認(rèn)機(jī)器人的半徑是20),25,三
11、遠(yuǎn)程控制算法,在能夠使機(jī)器人從環(huán)境獲取的傳感器信息作出運(yùn)動(dòng)決策前,必須掌握一些對(duì)機(jī)器人進(jìn)行編程和控制的技能.遠(yuǎn)程控制形式有三種:只要按鈕按下,開始運(yùn)動(dòng),松開,就停止運(yùn)動(dòng)按下按鈕使機(jī)器人運(yùn)動(dòng),然后釋放按鈕,機(jī)器人繼續(xù)運(yùn)動(dòng),直到再次按下按鈕才停止給定某個(gè)指令,機(jī)器人執(zhí)行某些動(dòng)作,然后等待給出下一個(gè)指令為控制模擬機(jī)器人,需使用鍵盤和鼠標(biāo)模擬遠(yuǎn)程控制器.,26,(1)鍵盤,GetKeyVar檢查按鍵是否有健按下,若有,它的代碼值賦給變量var,若無按下,則變量值為0在用戶按下某健之前,程序流沒有停止WaitKeyExprs,var該指令能暫停程序流,直到用戶按下某健上述var是ASCII碼,可用cha
12、r()將代碼轉(zhuǎn)換為字母,反之用Ascii()將字母轉(zhuǎn)換為代碼,27,(2)鼠標(biāo),ReadMousevar1,var2,var3Var1,var2是鼠標(biāo)在屏幕位置的坐標(biāo)值Var3存儲(chǔ)鼠標(biāo)的某個(gè)按鍵被按下,未按下時(shí)為0程序不會(huì)暫?;虻却脩舭聪氯我怄I,28,(3)輸出至屏幕,PrintExpr,Expr,將結(jié)果輸出至屏幕,一次輸出一行,滿屏?xí)r會(huì)滾屏XYStringX,Y,Expr,Expr;將結(jié)果輸出至屏幕,X,Y為結(jié)果輸出的像素位置,29,(1)遠(yuǎn)程控制的第一種形式,控制鍵:F前進(jìn),B后退,L左轉(zhuǎn),R右轉(zhuǎn)編程提示:WaitkeyChar()Rbumper()If按鍵=“F”THEN.參見tu4.
13、1,30,(2)遠(yuǎn)程控制的第二種形式,控制按鍵與前者相同.按下鍵后使機(jī)器人連續(xù)運(yùn)動(dòng),直到用戶按下另一個(gè)鍵.編程提示:getkeyChar()保存最近的鍵檢測按鍵時(shí)加延遲delay200,給用戶松開按鍵的時(shí)間Rbumper()If按鍵=“F”THEN.參見tu4.2,31,(3)復(fù)雜遠(yuǎn)程控制,這種形式,機(jī)器人執(zhí)行一系列動(dòng)作,以完成用戶設(shè)定的任務(wù).模擬時(shí),鼠標(biāo)將被用作一個(gè)激光定位器.機(jī)器人鎖定鼠標(biāo)位置并運(yùn)動(dòng)到那里.機(jī)器人運(yùn)動(dòng)時(shí)還能在屏幕上畫圖,以期看見發(fā)生的動(dòng)作.rPenup/down,colorrInvisiblecolor,color機(jī)器人將使用它的GPS和指南針來計(jì)算其當(dāng)前位置和朝向與目標(biāo)位
14、置和朝向之間的差別.,32,涉及的數(shù)學(xué)運(yùn)算機(jī)器人用坐標(biāo)Rx,Ry表示,目標(biāo)用Tx,Ty表示.機(jī)器人x,y坐標(biāo)與目標(biāo)之差分別為dx,dy.用于計(jì)算機(jī)器人與目標(biāo)之間的距離.(畢達(dá)哥拉斯定理的應(yīng)用),函數(shù)PolarR(dx,dy)用于完成計(jì)算并返回R值.函數(shù)PolarA(dx,dy)返回角度值,為水平軸和機(jī)器人中心與目標(biāo)中心連線之間形成的角度(即TA).,33,角度TA可用于計(jì)算出機(jī)器人需要轉(zhuǎn)的方向和度數(shù),使機(jī)器人朝向目標(biāo),那么實(shí)際應(yīng)轉(zhuǎn)的角度為dA.第1個(gè)問題:角度TA是以東向?yàn)榛鶞?zhǔn)測量的.因此在PolarA()基礎(chǔ)上再加上90.第2個(gè)問題:PolarA()返回的弧度,而不是度.轉(zhuǎn)換:1=/180r
15、ad因此,TA=PolarA(dx,dy)*180/pi()+90那么:dA=PolarA(dx,dy)*180/pi()+90-CHdA為0360之間的數(shù)字,當(dāng)機(jī)器人旋轉(zhuǎn)角度時(shí),應(yīng)檢查轉(zhuǎn)角是否大于180,若是,可使機(jī)器人向另外一個(gè)方向旋轉(zhuǎn).,34,復(fù)雜遠(yuǎn)程控制程序見tu4.4,35,四、隨機(jī)漫游,目標(biāo):創(chuàng)建自主移動(dòng)機(jī)器人要使機(jī)器人具有自主性,就需要使其具備繞過障礙物的自主決定能力。機(jī)器人避開障礙物的方法:旋轉(zhuǎn)180并向遠(yuǎn)離障礙物的方向運(yùn)動(dòng)旋轉(zhuǎn)足夠的角度,避開障礙物,但不完全旋轉(zhuǎn)上述方法結(jié)合使用,36,什么是隨機(jī)漫游機(jī)器人在未知的環(huán)境中無目的運(yùn)動(dòng)的算法,即沒有具體要實(shí)現(xiàn)的目標(biāo),而是在所處的環(huán)境
16、中自由運(yùn)動(dòng),只要不在某個(gè)地方待太長時(shí)間或不與障礙物碰撞即可。Rlocate400,300Whiletruewhilerfeel()=0rforward1wendrturn150+random(60)/180+/-30Wendend,37,(1)部分程序結(jié)構(gòu),標(biāo)簽和子程序MainProgram:gosubtask_1gosubtask_2End/-task_1:.Return/-task_2:.Return/-,38,(2)相關(guān)指令,清除屏幕(ClearScr)設(shè)置繪圖顏色(SetColor)設(shè)置畫圖的初始位置(GotoXY)屏幕上畫線(LineTo)設(shè)置畫線的寬度(LineWidth),39,
17、(3)向漫游環(huán)境中添加物體,用戶自主繪制障礙物可用函數(shù)如下:Readmousex,y,mGotoxyx,yLinetox,y參見程序tu5.3,40,(4)更加智能的漫游,如何更有效地利用傳感器信息改進(jìn)機(jī)器人行為的一種方式是使其確定旋轉(zhuǎn)的最合適角度,而不是旋轉(zhuǎn)一個(gè)隨機(jī)量.邏輯操作rFeel()=0rFeel()=1rFeel()=4.rFeel()=2orrFeel()=1注意:若兩個(gè)右側(cè)傳感器一起被觸發(fā),當(dāng)前表達(dá)式不為真可進(jìn)行按位操作:rFeel()-170,71,160,72,145,80,140,90,130,100,125,110,120,140datac1;130,200,140,2
18、50,130,270,145,300,200,350,300,325datac1;450,375,450,450,600,450,600,400,650,200,500,350mpolygonc1return/-FollowLine:/線跟蹤算法Return,44,Data語句和mPolygon,Data指令用于創(chuàng)建一個(gè)陣列,并將其后的數(shù)據(jù)接連放置在陣列中如:DataNums;9,8,2,Numsn-1可指明使用第n個(gè)元素maxDim()找出陣列中的元素個(gè)數(shù)mPolygon指令可實(shí)現(xiàn)任意連續(xù)直線的繪制,45,線傳感器,RobotBasic機(jī)器人有三個(gè)線傳感器,一個(gè)安裝在正前方,其余兩個(gè)分別偏離
19、正前左右10進(jìn)行安裝.函數(shù)rSense(color)可讀取三個(gè)線傳感器的狀態(tài)(如圖)注意:在進(jìn)行任何直線感知測試之前,必須指定一個(gè)不可見顏色組的列表,并且直線的顏色必須在列表之中(最好是第一種顏色),否則,將認(rèn)為直線是障礙物,并報(bào)告出錯(cuò).,001,010,100,46,線跟蹤嘗試,FollowLine:whiletrueifrsense()2*Side*cos(Angle*pi(1)/180),Side,SideDataAngles;Angle,180-2*Angle,AnglegosubDrawTrianglerTurn-45/-moveoutofthewayrForward40End/=繪
20、制不同形狀的三角形,只需在陣列Sides和Angles設(shè)置不同的數(shù)據(jù)即可。,DrawTriangle:rPenDown/-startdrawingFori=1to3rForwardSidesi-1rTurn180-Anglesi-1nextrPenUp/-stopdrawingReturn,69,5.繪制任意形狀,基本操作:設(shè)定一套使機(jī)器人旋轉(zhuǎn)和移動(dòng)的正確指令,結(jié)合抬高和降低畫筆,可進(jìn)行任意形狀的圖形繪制參考方法:使用DATA指令創(chuàng)建一個(gè)成對(duì)數(shù)據(jù)的陣列,每一對(duì)數(shù)據(jù)都代表針對(duì)機(jī)器人的一個(gè)指令成對(duì)數(shù)據(jù)中的第一個(gè)元素設(shè)定要采取的行動(dòng),第二個(gè)元素提供與行動(dòng)相關(guān)的參數(shù),70,舉例:Datawhat;”p”,down,”f”,165,”t”,-120,”f”,58Datawhat;”t”,-60,”f”,50,”t”,-30,”f”,100Datawhat;”p”,up,”f”,40,71,繪制任意形狀實(shí)例,MainProgram:/-changethesetomaketheshapehave/-differentorientationandpositionR_Init_X=400R_Init_Y=300R_Init_Headin
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境質(zhì)押合同范本
- 游樂設(shè)備合同范本
- 石雕獅子項(xiàng)目可行性研究報(bào)告
- 00后暖男楊志洋:把漸凍癥媽媽“寵”成少女
- 變電站安裝工程竣工驗(yàn)收三級(jí)自檢報(bào)告【模板范本】
- 2025年齒輪加工機(jī)床項(xiàng)目建議書
- 2025年中國核能發(fā)電設(shè)備行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 汽車配件項(xiàng)目申請(qǐng)備案可行性研究報(bào)告
- 北京深元科技有限公司介紹企業(yè)發(fā)展分析報(bào)告
- 2025年非接觸溫度計(jì)項(xiàng)目發(fā)展計(jì)劃
- 診斷學(xué)-緒論-課件
- 心肺復(fù)蘇簡易呼吸器使用除顫儀使用
- g4l操作指南教程硬盤克隆linux系統(tǒng)備份恢復(fù)帶截圖
- 油缸裝配作業(yè)指導(dǎo)書
- 消化道大出血的鑒別診斷和處理原則課件
- 教師課堂教學(xué)技能課件
- 員工調(diào)整薪酬面談表
- 輔警報(bào)名登記表
- 外研版英語五年級(jí)下冊第一單元全部試題
- 培養(yǎng)小學(xué)生課外閱讀興趣課題研究方案
- 部編版四年級(jí)語文下冊課程綱要
評(píng)論
0/150
提交評(píng)論