導(dǎo)購機(jī)器人計(jì)劃書_第1頁
導(dǎo)購機(jī)器人計(jì)劃書_第2頁
導(dǎo)購機(jī)器人計(jì)劃書_第3頁
導(dǎo)購機(jī)器人計(jì)劃書_第4頁
導(dǎo)購機(jī)器人計(jì)劃書_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

中國科技大學(xué)第十三屆RoboGame機(jī)器人大賽 參賽計(jì)劃書隊(duì)伍名稱:A杖地卜師 所在院系:工院九系參賽內(nèi)容:機(jī)器人導(dǎo)購負(fù)責(zé)人姓名:何啟明負(fù)責(zé)人電話:隊(duì)員信息:職務(wù)姓名學(xué)號手機(jī)學(xué)校郵箱隊(duì)長何啟明PB11009隊(duì)員曹龍軒PB11009隊(duì)員盧強(qiáng) PB11009隊(duì)員成亞能PB11009隊(duì)員楊金釗P(yáng)B11009指導(dǎo)老師: 承 諾 書組委會承諾:我們組委會保證及時解決各參賽隊(duì)就比賽相關(guān)問題提出的疑問,為各參賽隊(duì)的制作計(jì)劃等保密,公正處理機(jī)器人比賽相關(guān)事務(wù),選拔優(yōu)秀成員擔(dān)任比賽裁判,保證裁判的公正。組委會負(fù)責(zé)人(簽字): 2013年5月22日參賽者承諾: 我們隊(duì)承諾對本人填寫的各項(xiàng)內(nèi)容保證是本隊(duì)的原創(chuàng),沒有抄襲他人。我們保證以本承諾為有約束力的協(xié)議,遵守中國科學(xué)技術(shù)大學(xué)第十三屆robogame組委會的有關(guān)規(guī)定,認(rèn)真進(jìn)行機(jī)器人的設(shè)計(jì)制作等工作,就比賽相關(guān)問題積極與組委會交流,服從組委會的活動安排與最終裁判。對于由本隊(duì)引發(fā)的一切不良后果由本隊(duì)承擔(dān)相應(yīng)責(zé)任。參賽隊(duì)員(簽字): 何啟明 曹龍軒 盧強(qiáng) 楊金釗 成亞能 2013年5月22日 序: 戰(zhàn)隊(duì)簡介隊(duì)伍取名淵源:地卜師生活在黑森林中,最初被赫爾馬尼的異族所崇拜的神Meepo,是個淘氣的小土靈。身體偏小的土精一點(diǎn)也不弱小,造世主給予了他們過人的智慧。它的強(qiáng)大在于它“分則能成”的強(qiáng)力大招,出A杖后五只精靈一起進(jìn)攻更是強(qiáng)大到不可思議,我們戰(zhàn)隊(duì)的五個人就代表了這五精靈。 戰(zhàn)隊(duì)宣言:五只精靈團(tuán)結(jié)一致,同進(jìn)同退,我們相信在隊(duì)長的帶領(lǐng)下我們一定能發(fā)揮出“分則能成”的強(qiáng)大力量,秒殺一切,馬到成功!戰(zhàn)隊(duì)分工:何啟明:程序設(shè)計(jì)及調(diào)試曹龍軒:程序設(shè)計(jì)及調(diào)試盧強(qiáng): 機(jī)械設(shè)計(jì),加工及調(diào)試楊金釗:程序設(shè)計(jì),加工及調(diào)試成亞能: 電路設(shè)計(jì)及調(diào)試一機(jī)械部分1 機(jī)器人總裝配圖 主視圖: 俯視圖: 側(cè)視圖:2. 機(jī)器人各零部件介紹2.1 三角鋼 我們機(jī)器人的構(gòu)架由三角剛來搭建,三角鋼較易購買,易打孔與其他構(gòu)件連接,而且性能穩(wěn)定。三角鋼:2.2 底框底座俯視圖:底座主視圖:上面是底座的俯視圖和主視圖,是50cm乘50cm的方形結(jié)構(gòu),由三角鋼搭成。2.3 輪子 底座框架前面和后面的正中間有兩個從動輪(萬向輪),20mm的寬度,類似超市里的手推車的前輪,起到支撐和導(dǎo)向的作用。前后萬向輪: 左右兩側(cè)是兩個主動輪,用倆控制行走和轉(zhuǎn)向,每個輪子分別用一個電機(jī)控制。 左右主動輪:轉(zhuǎn)向輪和電機(jī)和底邊三角鋼:2.4 機(jī)器人直線行走及轉(zhuǎn)向問題 當(dāng)左右輪子轉(zhuǎn)速相等時,機(jī)器人走直線。在機(jī)器人轉(zhuǎn)彎的問題上,我們采用原地轉(zhuǎn)的方式,即機(jī)器人向左轉(zhuǎn)時,左側(cè)輪子反轉(zhuǎn),右側(cè)輪子正轉(zhuǎn),同理,機(jī)器人右轉(zhuǎn)時左輪正傳右輪反轉(zhuǎn)。用原地轉(zhuǎn)能很好地控制機(jī)器人的位置,不至于在轉(zhuǎn)彎過程中機(jī)器人因發(fā)生位移而使后面的運(yùn)動跑偏。底部是一塊鐵板,鋪在方形框架上,用來放電機(jī)等其他東西。底板:從底邊框架的立起四個三角鋼的豎直桿,用來支撐其他結(jié)構(gòu)。在桿的中部和頂部會搭建兩個平板,中部的平板用來放置傳送帶的電機(jī)和籃子,頂部的電機(jī)用來絲杠電腦及其它的一些東西。2.5 底座加桿底座加桿后視圖:支撐平板用的是與豎直絲杠焊接的三角鐵。2.6 三角鐵及固定三角鐵:三角鐵固定于三角鋼上:2.7 電機(jī)下面介紹一下電機(jī)和傳送帶分類裝置。電機(jī)簡介:電機(jī)固定板:我們的機(jī)器人總共需要五個電機(jī),左右兩個輪子各一個,傳送帶兩側(cè)各一個,還有一個用來收放繩子。2.8 分類裝置介紹:我們用傳送帶的傳送來完成分類任務(wù)。傳送帶左側(cè)和右側(cè)各焊接一個矩形鐵框,框下吊著一個布袋子,布袋用來緩沖壓力,以免物品落下后摔碎。傳送帶電機(jī)的正傳和反轉(zhuǎn)由程序控制,電機(jī)帶動傳送帶向左或向右轉(zhuǎn)動,從而使放到傳送帶上的物品掉到左側(cè)(生活類)或右側(cè)(食品類)的籃子里,達(dá)到分類的目的。本來我們打算只用一個電動機(jī),另一個帶輪用從動輪,但考慮到一個電機(jī)可能動力不足,最后決定兩側(cè)帶輪均由電機(jī)控制。傳送帶裝配圖:下面詳細(xì)介紹一下傳送帶這一部分用到的各個部件:傳送帶履帶:傳送帶帶輪:傳送帶履帶和帶輪:傳送帶固定1:傳送帶固定2:傳送帶裝配圖及固定:左右分類框及固定板:2.9 提籃裝置 下面介紹機(jī)器人完成導(dǎo)購任務(wù)后,最后一步走向收銀臺將貨物打包并提到收銀臺上的過程。 由于我們的傳送帶分類裝置已經(jīng)直接把兩類物品分別放到兩個購物袋里面,所以機(jī)器人下面只需將購物袋從籃子里面提出即圓滿完成了任務(wù)。 我們設(shè)計(jì)用一個絲杠來完成提袋的任務(wù)。購物袋放在籃子里,兩個袋口用一根線穿起來(不系),與左右兩側(cè)連接的兩根線最后均通過一根總線與絲杠連接。 絲杠上面還有一節(jié)桿,桿端有一個定滑輪,總線通過定滑輪連接到下面的一個電機(jī),通過電機(jī)的轉(zhuǎn)動來控制總線的收放,從而來完成購物袋提起和放下的任務(wù)。 絲杠水平放置,可以前后運(yùn)動。機(jī)器人到達(dá)收銀臺后,在完成提起購物袋的過程中,絲杠往前伸,同時,控制拉繩子的電機(jī)開始轉(zhuǎn)動,使繩子開始收縮。這兩個部分的綜合作用,能使購物袋同時提到收銀臺的上方,最后電機(jī)反轉(zhuǎn),繩子伸長,購物袋放到桌面上,即圓滿完成任務(wù)!下面具體介紹一下提籃的裝置:2.9.1提籃工具總圖:2.9.2 絲杠和電機(jī):2.9.3 混合步進(jìn)電機(jī)86BYGHS: 該電機(jī)放在絲杠的一端,電機(jī)轉(zhuǎn)動來控制絲杠的前伸和后縮,從而來完成提袋和放袋的過程。2.9.4 定滑輪: 我們需要兩個這樣的定滑輪,一個固定在絲杠的前端,另一個固定在框架的上平的下方?;喒潭?:滑輪固定2: 這個滑輪固定裝置相當(dāng)于一個軸承,把滑輪固定在滑輪固定1當(dāng)中。2.9.5 拉繩電機(jī)下面講一下轉(zhuǎn)動電機(jī)部分。拉繩轉(zhuǎn)軸:上面是拉繩轉(zhuǎn)軸,中間有一個洞,繩子從洞中穿過。該轉(zhuǎn)軸與電機(jī)相連,電機(jī)固定在中間的平板上。電機(jī)轉(zhuǎn)動時帶動拉繩轉(zhuǎn)軸旋轉(zhuǎn),從而達(dá)到收縮繩子的目的。拉繩電機(jī)及固定:在機(jī)器人完成任務(wù)的過程中,需要電腦隨時控制,電腦放在框架中部的平板上。2.9.6 電腦:3:重要步驟介紹以上,我把機(jī)器人地卜師每個機(jī)械部分及其工作原理都做了詳細(xì)介紹,下面具體介紹一下機(jī)器人執(zhí)行任務(wù)兩個重要步驟的動作。3.1 重要步驟一:物品分類 在分類過程中,人取物品后放在傳送帶上,機(jī)器人的程序控制傳送帶電機(jī)旋轉(zhuǎn),物品即落入左邊或右邊的框中,完成分類任務(wù)。機(jī)器人在進(jìn)行物品分類:3.2重要步驟二:提袋過程在完成所有的導(dǎo)購任務(wù)后,機(jī)器人走到收銀臺前面,機(jī)器人轉(zhuǎn)向,正面面對收銀臺。然后開始完成提袋任務(wù)。購物袋很難用solidworks畫圖畫出來,就簡單地用一個立方體代替。在該過程中,固定在框架中部控制拉繩的電機(jī)開始轉(zhuǎn)動,繩子收縮,兩個購物袋同時從左右兩側(cè)的框中被提到半空中。機(jī)器人在提袋:3.3重要步驟三:放袋過程 最后,控制絲杠的電機(jī)轉(zhuǎn)動,絲杠前伸,同時控制拉繩的電機(jī)反轉(zhuǎn),使繩子略微放長。兩個購物袋被放到收銀臺的上空。然后,控制拉升的電機(jī)繼續(xù)反轉(zhuǎn),繩子伸長,購物袋被到收銀臺上,本次比賽任務(wù)圓滿完成!二程序部分: 程序的目的是讓機(jī)器人自主完成導(dǎo)購過程與跟隨過程,以及最后的分類與裝袋過程,現(xiàn)分不同的階段逐一討論: 1.導(dǎo)購階段 導(dǎo)購階段要求機(jī)器人自主尋找已經(jīng)設(shè)定好的商品位置,主動前往并且繞過路上的障礙(可能是繞過障礙,或者直接換路行走)。分析可知,該階段的重點(diǎn)是機(jī)器人自動生成最優(yōu)路徑,并且在最優(yōu)路徑檢測到障礙物之后,重新生成最優(yōu)路徑,并沿著新生成的路徑行走。 考慮到現(xiàn)行流行rpg游戲人物定位方法可以應(yīng)用到路徑自動生成中,我們預(yù)在游戲人物定位算法的基礎(chǔ)上編輯機(jī)器人自定位算法。游戲中人物當(dāng)前位置被記錄,如果鼠標(biāo)指向已經(jīng)儲存在電腦中的地圖某處,計(jì)算機(jī)就會自動生成最優(yōu)路徑并且命令人物沿著生成路徑行走。如果人物行走過程中遇到移動型障礙(我們稱之為卡位)一直擋在路徑前方,電腦就會隨時更新生成最優(yōu)路徑,繞開障礙達(dá)到目的地。在最優(yōu)路徑設(shè)計(jì)過程中,依靠先驗(yàn)地圖(可行路線與不可達(dá)位置)和后驗(yàn)勘測(發(fā)現(xiàn)障礙并生成新路徑)的算法可以應(yīng)用在機(jī)器人實(shí)踐中。這種算法被專業(yè)人士稱為A星算法。 A星算法簡介:首先將地圖分為不同的節(jié)點(diǎn),儲存節(jié)點(diǎn)與相鄰節(jié)點(diǎn)的關(guān)系,將地圖中不可達(dá)的地方設(shè)置為死節(jié)點(diǎn)。其次,從起始點(diǎn)開始檢索相鄰活節(jié)點(diǎn),并計(jì)算相鄰節(jié)點(diǎn)的G值與F值。如上圖所示,G值可以看做從綠色節(jié)點(diǎn)到周圍節(jié)點(diǎn)的距離,H值是可以看做相鄰節(jié)點(diǎn)到目的地紅色節(jié)點(diǎn)的距離。在計(jì)算G值時,正向相鄰記作10,斜向相鄰記作14(1.414倍),之所以不用小數(shù)是考慮到計(jì)算機(jī)執(zhí)行效率。而計(jì)算H值時采用簡單的曼哈頓算法(移動像過街道一樣只有橫向與縱向位移),每經(jīng)過一個格子加十,死節(jié)點(diǎn)也需計(jì)算進(jìn)入。這樣在上圖的節(jié)點(diǎn)中生成了F=G+H值(左上角F,左下角G,右下角H),選取F值最小的節(jié)點(diǎn),重復(fù)檢索該節(jié)點(diǎn)的相鄰節(jié)點(diǎn)(父節(jié)點(diǎn)不予考慮以免重復(fù)檢索)。這樣重復(fù)下去就可以生成一條相對較短的路徑 如上圖所示就是A星算法生成最短路徑的過程。A星算法避免了深度優(yōu)先和廣度優(yōu)先算法的遍歷,也避免了狄杰斯特拉算法的繁瑣,用較簡單的方法找到了類優(yōu)路徑。 下面給出A星算法的偽代碼實(shí)現(xiàn):heap.add(firstnode) /將開始節(jié)點(diǎn)加入堆,同時也是加入openlistdo fleast=heap.pop(); /從openlist取fcost最小的元素 current=fleast; /取出的元素作為當(dāng)前節(jié)點(diǎn) fleast.flag=1 /1:on close 0:not on open nor on close for(int i=current.x-1;icurrent.x+1;i+) /考察當(dāng)前節(jié)點(diǎn)的所有相鄰節(jié)點(diǎn) for(int j=current.y-1;jcurrent.y+1;j+) if(mapij!=unwalkable|!onclose(node(i,j) /相鄰節(jié)點(diǎn)可通并且沒有考察過 if(!onopen(node(i,j) /相鄰節(jié)點(diǎn)不在openlist中 heap.add(node(i,j); /加入openlist node(i,j).parent=current; /設(shè)置相鄰節(jié)點(diǎn)的父節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn) node(i,j).calculate(f,g,h); /重新計(jì)算fcost,gcost,hcost if(node(i,j)=dest) /如果加入的節(jié)點(diǎn)是目標(biāo)點(diǎn)則找到路徑 path=find; else temp.gcost=parent.gcost+addcost; /相鄰節(jié)點(diǎn)已經(jīng)在openlist中 node(i,j).hcost=10*(abs(i-parent.x)+abs(j-parent.y); node(i,j).fcost=node(i,j).gcost+node(i,j).hcost; if(tempgcostnode(i,j).gcost) node(i,j).parent=current; node(i,j).recaculate(f,g,h); /重新計(jì)算fcost,gcost,hcost while(!hp.isempty() /如果堆空則沒有找到路徑if(path=find)outpath; /輸出路徑elsecoutpath not find;!endl; A星算法應(yīng)用在本次機(jī)器人制作需要以下幾個工作: 1.1、地圖的劃分 A星算法需要知道地圖的分布,因此合理將場地劃分是執(zhí)行程序的第一步。考慮到現(xiàn)實(shí)情形,機(jī)器人有碰撞體積,并不能將場上所有的空地設(shè)置為活節(jié)點(diǎn),可以設(shè)置機(jī)器人型心為質(zhì)點(diǎn),考慮該型心所能到達(dá)的地方,如果機(jī)器人型心超出此范圍,則其邊界有可能碰到貨架或者場地邊界,地圖的分塊是建立在此范圍之內(nèi),下圖顯示了計(jì)算過機(jī)器人大小的型心運(yùn)動區(qū)域分布圖,其中陰影部分就是機(jī)器人的型心可以到達(dá)的區(qū)域。 之后在這個區(qū)域上劃分小塊,考慮到機(jī)器人繞障礙的精度要求,我們將可行區(qū)域劃分為200X200MM的小區(qū)域,以區(qū)域中心作為節(jié)點(diǎn)所在位置,如下圖所示,所畫區(qū)域恰好分成諸多小塊1.2、節(jié)點(diǎn)的儲存為了避免不穩(wěn)定性,我們設(shè)定機(jī)器人只能沿節(jié)點(diǎn)橫向或縱向移動(G值不能為14),將每個節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)用結(jié)構(gòu)體儲存,結(jié)構(gòu)體應(yīng)該包括節(jié)點(diǎn)編號,節(jié)點(diǎn)死活,節(jié)點(diǎn)鄰居指針,節(jié)點(diǎn)中心坐標(biāo)等元素。1.3節(jié)點(diǎn)的定標(biāo) 我們擬采用加速度計(jì)與陀螺儀判定機(jī)器人當(dāng)前位移與身姿(詳見電路部分)加速度的積分是速度,速度的積分是位移,只需知道水平面上的加速度,通過計(jì)算機(jī)的積分運(yùn)算可以得到位移數(shù)據(jù),只要知道機(jī)器人的具體坐標(biāo)值,就可以判定機(jī)器人現(xiàn)在位置屬于哪個具體的節(jié)點(diǎn)。這對于繞障礙以及出現(xiàn)故障重新開始時重新定標(biāo)起到幫助作用。1.4、相鄰節(jié)點(diǎn)間的移動控制轉(zhuǎn)向的節(jié)點(diǎn)結(jié)構(gòu)體具體包含的幾個變量如下:typedef struct float x; /該方塊的x坐標(biāo) float y; /該方塊的y坐標(biāo) float G; /該方塊的G值 float H; /該方塊的H值 rect R; /該方塊的右鄰方塊(right) rect L; /該方塊的左鄰方塊(left) rect T; /該方塊的上鄰方塊(top) rect D; /該方塊的下鄰方塊(down)int isLive; /該方塊的死活狀態(tài)Int N /該方塊的編號*rect;為了使機(jī)器人能夠判斷怎樣走到相鄰的方塊(如應(yīng)該先旋轉(zhuǎn)多少角度后再移動),則機(jī)器人必須先知道自己現(xiàn)在的朝向(朝向可以通過之前走過的路徑判斷,如果出現(xiàn)故障,可以采用電子羅盤輔助尋找朝向,具體見電路部分)為此,我們將四個方向標(biāo)記為不同的值以資區(qū)分,各個方向?qū)?yīng)的值如下圖:設(shè)機(jī)器人當(dāng)前朝向方向的值為direct,則機(jī)器人要走到R方塊(右鄰方塊),則需要順時針旋轉(zhuǎn)的角度為:angle= (direct%4-1)*(-90)%360;下面為各個值對應(yīng)的順時針旋轉(zhuǎn)角度:若direct=1,則angle=0*(-90)%360=0;若direct=2,則angle=1*(-90)%360=-90;若direct=3,則angle=2*(-90)%360=-180;若direct=4,則angle=(-1)*(-90)%360=90;同理可以得到要走到T方塊需要順時針旋轉(zhuǎn)的角度:angle= ((direct%4-1)*(-90) - 90)%360;同理可以得到要走到L方塊需要順時針旋轉(zhuǎn)的角度:angle= ((direct%4-1)*(-90) - 180)%360;同理可以得到要走到D方塊需要順時針旋轉(zhuǎn)的角度:angle= (direct%4-1)*(-90) + 90)%360;當(dāng)角度轉(zhuǎn)完后,再前行200mm即可到達(dá)下一節(jié)點(diǎn)這樣就可以從一個節(jié)點(diǎn)移動到它任意鄰居節(jié)點(diǎn)。1.5、卡位節(jié)點(diǎn)的刪除 如果機(jī)器人在行進(jìn)過程中偶遇障礙物,需要將障礙物所在處的節(jié)點(diǎn)刪除并重新生成最優(yōu)路徑(繞障礙或者換路)。首先發(fā)現(xiàn)障礙并且確定障礙位置和障礙所在節(jié)點(diǎn)(發(fā)現(xiàn)障礙的算法見程序部分的識別板塊),之后并不能簡單刪除該節(jié)點(diǎn),如果只刪除單一節(jié)點(diǎn)有時并不能生成符合實(shí)際的最優(yōu)路徑。如圖,假設(shè)機(jī)器人處于藍(lán)色方塊的位置檢測到障礙物的存在,如果僅刪除一個節(jié)點(diǎn),其余節(jié)點(diǎn)仍然可以行走,則機(jī)器人可能走到如圖所示位置,會碰到障礙 因此為了保證行走的可行性與避障不碰障礙的要求,我們采用以下方法:首先檢測到障礙中心所在節(jié)點(diǎn),其次刪除其所有相鄰節(jié)點(diǎn),刪除相鄰節(jié)點(diǎn)時檢測相鄰節(jié)點(diǎn)的相鄰節(jié)點(diǎn)(鄰居的鄰居),如果鄰居鄰居節(jié)點(diǎn)中心到障礙中心的橫坐標(biāo)(或縱坐標(biāo))之差的絕對值小于400mm,就將該節(jié)點(diǎn)刪除,否則不刪除。改進(jìn)以后的刪除方式見下圖 這樣機(jī)器人若想到對面去只有一條路可以選擇就是繞道(我們設(shè)定機(jī)器人轉(zhuǎn)向只能原地旋轉(zhuǎn)再前行)。經(jīng)多次測試,這種方法可以保證準(zhǔn)確刪除障礙節(jié)點(diǎn),并完成繞路算法。如果路被堵死的情況:機(jī)器人前行檢測到障礙并刪除節(jié)點(diǎn)機(jī)器人重新生成最優(yōu)路徑并轉(zhuǎn)向。3. 商品的定位商品的位置可以對應(yīng)到相應(yīng)最近的節(jié)點(diǎn)上,由于我們分塊的時候已經(jīng)照顧到商品的位置,故只需將機(jī)器人目的地設(shè)置在商品旁邊的位置,這樣也方便機(jī)器人接近貨架200mm以內(nèi)如圖綠色框圖所在節(jié)點(diǎn)就是商品所在的節(jié)點(diǎn),可以將商品編號與節(jié)點(diǎn)進(jìn)行一一映射,從而讓機(jī)器人方便的找到目的地。 綜上,我們可以對基于A星算法的導(dǎo)購過程進(jìn)行一個概述:1、開始時機(jī)器人受到指令,了解商品節(jié)點(diǎn)位置2、機(jī)器人生成最優(yōu)路徑并按照路徑行走3、機(jī)器人發(fā)現(xiàn)障礙,將障礙位置節(jié)點(diǎn)刪除,重新生成最優(yōu)路徑,再次遇到障礙之后重復(fù)刪除步驟和最優(yōu)路徑生成步驟5、報價,導(dǎo)購階段結(jié)束4、機(jī)器人到達(dá)商品位置,移動到與商品間距不超過200mm處,重復(fù)2過程尋找下一物品2、跟隨部分:跟隨部分不再需要機(jī)器人自己尋找最優(yōu)路徑,而是只要跟著人走就可以了,因此也就不再需要使用劃分的方塊,考慮到前后的一致性,機(jī)器人按照如下圖的路徑行走比較合適(與導(dǎo)購階段的路徑相比只是將方塊去掉了):跟隨階段有幾個主要的問題需要解決:2.1.識別人和障礙。識別需要攝像頭。但由于導(dǎo)購階段人跟隨在機(jī)器人后方,因此機(jī)器人只需要通過超聲波傳感器測出與人之間的距離,就可以通過調(diào)整自己的速度來達(dá)到距離上的要求,這樣來看機(jī)器人后方并沒有安裝攝像頭的必要。而跟隨階段機(jī)器人需要跟隨著人行走,并且還有可能遇到障礙,因此機(jī)器人前方一定至少有一個攝像頭,以識別人和障礙。2.2.測量與人之間的距離以及與障礙之間的距離。機(jī)器人通過超聲波傳感器測量與人之間的距離。但是由于超聲波傳感器基本上只能測量與它正對的物體的距離,而機(jī)器人需要測量的人的位置不是固定的,因此在機(jī)器人上安裝多個超聲波傳感器是必要的;由于測量與障礙之間的距離是非常重要的(這涉及到導(dǎo)購階段的挖掉死方塊),為了保證盡可能準(zhǔn)確地測出機(jī)器人與障礙之間的距離,我們通過雙目識別來測量,這需要機(jī)器人前方有兩個攝像頭。這些裝置我們認(rèn)為按下圖(俯視圖)放置比較合適。其中前方的兩個攝像頭的高度在500mm(障礙的高度)以下,通過雙目識別技術(shù),這兩個攝像頭可以比較有效精準(zhǔn)地識別圓柱體障礙物到機(jī)器人的距離。由于人的中心位置不好測定,因此我們不打算也用雙目識別來測量機(jī)器人與人之間的距離,而是通過超聲波傳感器直接測量。由于測量人的上半身的距離比較容易,因此前后的超聲波傳感器都放置在機(jī)器人的頂部,這樣可以達(dá)到人的腰部的高度;由于安裝在機(jī)器人前面(后面)的超聲波傳感器之間的距離為200mm,超聲波傳感器與機(jī)器人邊緣的距離為150mm,而人的腰部寬度一般大于200mm,因此可以保證在跟隨過程中只要人大致在機(jī)器人前方時,就能保證至少有一個超聲波傳感器是正對著前方的人的,如下圖所示:在導(dǎo)購和跟隨過程中,只要人的中心位置在上圖所示兩條綠色虛線范圍之內(nèi),機(jī)器人就能比較準(zhǔn)確地測定與人之間的距離。由于超聲波傳感器有一定的發(fā)射角(約15),因此圖中所示范圍與實(shí)際相比還要略小一些。跟隨階段的大致流程圖如下:跟隨階段開始機(jī)器人跟隨人走,并保持與人之間的距離為400500mm人轉(zhuǎn)彎時機(jī)器人記下最后一次測出的人的位置,并在最接近此位置的路徑上轉(zhuǎn)彎機(jī)器人識別出人到達(dá)貨架旁停下,機(jī)器人到達(dá)商品旁邊停下等待人取放商品人取下商品交與機(jī)器人并通過機(jī)器人獲取價格人向下一個商品的位置出發(fā)人取完商品后向收銀臺出發(fā)機(jī)器人跟隨人到達(dá)收銀臺區(qū),并停在指定的位置跟隨階段結(jié)束分類裝袋與報價過程 由于已知商品分為食品類與生活類兩種,機(jī)器人需要準(zhǔn)確區(qū)分兩種商品,并自主將其分類在不同的位置。我們的機(jī)械結(jié)構(gòu)設(shè)計(jì)留出了這種裝置。簡單而言,通過已經(jīng)儲存在電腦中的商品位置來判斷商品種類,通過帶輪正反轉(zhuǎn)來將放置在平臺的商品轉(zhuǎn)送到不同的袋子中。 導(dǎo)購階段商品的位置是提前輸入給電腦,而跟隨階段的商品由攝像機(jī)識別條形碼,由電腦將條形碼信息與商品信息對應(yīng)并順利完成計(jì)算與報價、分類等過程。下簡單介紹條形碼的實(shí)現(xiàn)。 在跟隨過程中,商品的識別我們決定采用條形碼識別的方案,現(xiàn)今的商品上都貼有條形碼標(biāo)識,很容易通過商品上的條形碼來判別商品的各項(xiàng)信息(類別,價格等)。條形碼(barcode)是將寬度不等的多個黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。條形碼的掃描需要掃描器,掃描器利用自身光源照射條形碼,再利用光電轉(zhuǎn)換器接受反射的光線,將反射光線的明暗轉(zhuǎn)換成數(shù)字信號。不論是采取何種規(guī)則印制的條形碼,都由靜區(qū)、起始字符、數(shù)據(jù)字符與終止字符組成。有些條碼在數(shù)據(jù)字符與終止字符之間還有校驗(yàn)字符。關(guān)于識別的部分,我們可以采用攝像頭的拍照傳輸給計(jì)算機(jī),然后通過特定的識別軟件將分析得出的結(jié)果傳給單片機(jī),從而達(dá)到機(jī)器人識別商品的目的。相對于手動輸入,條形碼識別主要有以下幾點(diǎn)好處:1輸入速度快:與鍵盤輸入相比,條形碼輸入的速度是鍵盤輸入的5倍,并且能實(shí)現(xiàn)“即時數(shù)據(jù)輸入”。2可靠性高:鍵盤 輸入數(shù)據(jù)出錯率為三百分之一,利用光學(xué)字符識別技術(shù)出錯率 為萬分之一,而采用條形碼技術(shù)誤碼率低于百萬分之一。 機(jī)器人需要實(shí)現(xiàn)的另一項(xiàng)任務(wù)是計(jì)算總價并報價,我們計(jì)劃用擴(kuò)音器讓機(jī)器人發(fā)聲,機(jī)器人將每件已購產(chǎn)品儲存并計(jì)算出總價值并通過電腦傳輸指令播放音頻,通過擴(kuò)音器發(fā)出聲音。該過程用簡圖表示如下語音播報當(dāng)前商品名稱,現(xiàn)有商品總價,并由機(jī)械系統(tǒng)進(jìn)行分類獲取商品(導(dǎo)購階段直接了解商品信息)條形碼識別商品(導(dǎo)購階段記錄所選商品)3.基于雙目視覺的障礙識別系統(tǒng) 由之前的循跡算法可知,定位繞路等算法的核心在于如何準(zhǔn)確識別障礙物所在的節(jié)點(diǎn),我們考慮使用計(jì)算機(jī)視覺中的雙目視覺來實(shí)現(xiàn)對障礙物的識別。 雙目立體視覺,即由不同位置的兩臺或者一臺攝像機(jī)(CCD)經(jīng)過移動或旋轉(zhuǎn)拍攝同一幅場景,通過計(jì)算空間點(diǎn)在兩幅圖像中的視差,獲得該點(diǎn)的三維坐標(biāo)值。 當(dāng)一個攝像機(jī)拍攝圖像時,由于圖像中的像素點(diǎn)坐標(biāo)相對于真實(shí)的世界坐標(biāo)并不是唯一的,這就造成深度信息的丟失。然而用兩個攝像機(jī)同時拍攝圖像時,可以獲取同一場景的兩幅不同的圖像,通過三角測量原理計(jì)算圖像像素間的位置偏差,復(fù)原三維世界坐標(biāo)中的深度信息。融合兩只眼睛獲得的圖像并觀察它們之間的差別,使我們可以獲得明顯的深度感,建立特征間的對應(yīng)關(guān)系,將同一空間物理點(diǎn)在不同圖像中的映像點(diǎn)對應(yīng)起來,這個差別,我們稱作視差(Disparity)圖像,如圖。 以下對雙目視覺原理進(jìn)行簡單闡述:立體視覺系統(tǒng)由左右兩部攝像機(jī)組成。如圖所示,圖中分別以下標(biāo)l和r標(biāo)注左、右攝像機(jī)的相應(yīng)參數(shù)。世界空間中一點(diǎn)A(X,Y,Z)在左右攝像機(jī)的成像面Cl和Cr上的像點(diǎn)分別為al(ul,vl)和ar(ur,vr)。這兩個像點(diǎn)是世界空間中同一個對象點(diǎn)A的像,稱為“共軛點(diǎn)”。知道了這兩個共軛像點(diǎn),分別作它們與各自相機(jī)的光心Ol和Or的連線,即投影線alOl和arOr,它們的交點(diǎn)即為世界空間中的對象點(diǎn)A(X,Y,Z)。這就是立體視覺的基本原理。在平行光軸的立體視覺系統(tǒng)中,左右兩臺攝像機(jī)的焦距及其它內(nèi)部參數(shù)均相等,光軸與攝像機(jī)的成像平面垂直,兩臺攝像機(jī)的x軸重合,y軸相互平行,因此將左攝像機(jī)沿著其x軸方向平移一段距離b(稱為基線baseline)后與右攝像機(jī)重合。由空間點(diǎn)A及左右兩攝像機(jī)的光心Ol、Or確定的極平面(Epipolar plane)分別與左右成像平面Cl、Cr的交線pl、pr為共軛極線對,它們分別與各自成像平面的坐標(biāo)軸ul、ur平行且共線。在這種理想的結(jié)構(gòu)形式中,左右攝像機(jī)配置的幾何關(guān)系最為簡單,極線已具有很好的性質(zhì),為尋找對象點(diǎn)A在左右成像平面上的投影點(diǎn)al和ar之間的匹配關(guān)系提供了非常便利的條件。 將上述原理應(yīng)用于計(jì)算機(jī)識別還需要進(jìn)行特征點(diǎn)匹配,特征點(diǎn)匹配分為稀疏點(diǎn)匹配和密集點(diǎn)匹配,由于本次任務(wù)對識別對象形狀要求并不高(紅色圓柱體),并且只需要定出圓柱體型心所在的坐標(biāo)值,故只需采用基于窗口的稀疏點(diǎn)匹配。下面將結(jié)合圓柱實(shí)物簡單介紹特征匹配的方法并定出型心。實(shí)驗(yàn)所用的圓柱對上述識別圖像進(jìn)行輪廓提取由于圖形輪廓具有很好的連續(xù)性,在一些弱角點(diǎn)的地方無法提取到角點(diǎn)卻可以提取到輪闊點(diǎn)。 提取到特征點(diǎn)以后,以左攝像機(jī)的圖像為參考對象,對右圖進(jìn)行匹配,用極點(diǎn)坐標(biāo)法中的向量夾角匹配的方法計(jì)算兩圖同一行特征點(diǎn)的cos值,將取值最大且大于0.9的特征點(diǎn)作為對應(yīng)匹配點(diǎn),兩個點(diǎn)x坐標(biāo)差值為視差值,視差越大則三維點(diǎn)離攝像機(jī)距離越近,反之越遠(yuǎn)。上式中的最大視差,最小視差,則視差圖中的灰度值就可以幫助計(jì)算出視點(diǎn)離攝像頭的距離。 在獲取多個視點(diǎn)之后,就是圓柱型心的判定。 上面通過灰度值算出了圓柱邊緣到攝像機(jī)的距離,為了簡化起見,我們現(xiàn)將機(jī)器人視為質(zhì)點(diǎn),計(jì)算出圓柱的位置,如下圖:設(shè)測出的機(jī)器人到圓柱邊緣的距離為d1,圓柱半徑為r(已知量),設(shè)圓心到攝像機(jī)的距離為x,則由勾股定理容易得到: x2 = (d12-r2), 又因?yàn)閔為已知量,則圓心到攝像機(jī)的水平距離s = x2+h2 = (d12+h2-r2)0.5,攝像機(jī)的位置是已知的,則圓柱圓心的坐標(biāo)也就很容易得到,為(x攝-s , y攝+h)。三電路部分1.電路總體框圖:攝像頭傳(加速度傳感器)感(超聲波傳感器)器(電子羅盤)外圍電 路單片機(jī)機(jī)械臂系統(tǒng)傳送帶系統(tǒng)移動系統(tǒng)功 能實(shí) 現(xiàn)計(jì)算機(jī)2.電源電路:鑒于這次的機(jī)械部分較為復(fù)雜,簡化后可以將電源分為三部分。其一,是為傳感器,單片機(jī)這類低功耗器件提供電力的電源;其二,是為機(jī)器人下部的移動部分以及機(jī)械臂牽引繩子的部分提供電力的電源;其三,是在機(jī)器人上部平臺處提供機(jī)械臂絲杠部分以及傳送帶部分電力的電源。這三處電源我們決定采用一個三端子穩(wěn)壓器變壓來給低功耗器件提供電力,其余電機(jī)的可以使用兩個電池分別在機(jī)器人的上,下方供電。正電壓輸出的78系列的三端穩(wěn)壓集成電路輸出的電壓范圍是5V24V,可以在選購時挑選出符合需求的規(guī)格下圖為TO-200封裝的78系列恒壓電路芯片從左至右三個針腳依次對應(yīng)INPUT,COMMON以及OUTPUT下圖為下位7805(輸出電壓為5V)原理圖:3.控制電路:由于傳感器的數(shù)目和種類較多,運(yùn)算較為復(fù)雜,所以我們決定采用計(jì)算機(jī)與單片機(jī)聯(lián)合控制的方法。 計(jì)算機(jī)方面,我們將把諸多傳感器(超聲波,加速度等)所得到的信息傳遞給計(jì)算機(jī),由計(jì)算機(jī)程序得出最優(yōu)算法,并傳遞給單片機(jī)。具體的算法實(shí)現(xiàn)過程見程序部分。 單片機(jī)方面,根據(jù)往年的經(jīng)驗(yàn)及性價比,可以采用基于增強(qiáng)的AVR RISC 結(jié)構(gòu)的ATmega 16單片機(jī)。下圖為ATmega 16單片機(jī)的引腳圖:相對于其他的單片機(jī),ATmega16具有高性能,低功耗的特點(diǎn)。它具有先進(jìn)的RISC結(jié)構(gòu),以及非易失的程序和數(shù)據(jù)存儲器。它的內(nèi)核具有豐富的指令集以及32個通用工作寄存器,工作于16MHz時,性能高達(dá)16MPS,大大提高了代碼效率。同時它具有32個可編程的I/O口,完全可以滿足本次機(jī)器人的設(shè)計(jì)需求。4.移動系統(tǒng):由于機(jī)器人的行進(jìn)過程較為復(fù)雜,轉(zhuǎn)向和定位需要精確,所以應(yīng)當(dāng)采用直流伺服電機(jī),并相應(yīng)的要求電機(jī)的功率放大器具有良好的電壓調(diào)節(jié)特性?,F(xiàn)在最常用的功率放大器為橋式PWM功放電路,及H型功放電路。下圖為雙極性橋式PWM晶體管放大器的結(jié)構(gòu)圖:由左圖可以看出,H型結(jié)構(gòu)的晶體管按Q1、Q4,Q2、Q3配對工作。Q1、Q4導(dǎo)通則Q2、Q3截止,反之Q2、Q3導(dǎo)通則Q1、Q4截止。實(shí)際工作時,要靠在晶體管上施加不同的占空比的脈沖信號來控制電機(jī)的正反轉(zhuǎn)。顯然兩路不能同時導(dǎo)通,故若Q1、Q4的導(dǎo)通時間比Q2、Q3長,則電機(jī)正傳,反之則電機(jī)反轉(zhuǎn),導(dǎo)通時間相等則電機(jī)停止不動,從而實(shí)現(xiàn)對電機(jī)的控制。而市場上最常見的基于H型功放電路的驅(qū)動芯片就是L298N驅(qū)動芯片了。L298N內(nèi)含兩個H橋的高電壓大電流雙橋式驅(qū)動器,可以驅(qū)動46V、2A以下的電機(jī)。下圖為采用15腳Multiwatt封裝的L298N的管腳示意圖:其中,2、3腳,13、14腳可分別輸出控制兩個直流電機(jī),5、7腳,10、12腳可由單片機(jī)向驅(qū)動芯片輸入控制信號,從而對兩個電機(jī)進(jìn)行控制。下圖為其使能、輸入引腳、輸出引腳的邏輯關(guān)系。5.機(jī)械臂部分 由于絲桿部分需要完成推進(jìn)的任務(wù),需要很高的精度,并且不需要很高的速度,所以采用混合式步進(jìn)電機(jī)來作為絲桿滑臺移動的動力。 步進(jìn)電機(jī)驅(qū)動的速度和位移大小,可由電氣控制系統(tǒng)發(fā)出的脈沖數(shù)加以控制。由于步進(jìn)電機(jī)的位移量與脈沖數(shù)嚴(yán)格成正比,故步進(jìn)電機(jī)驅(qū)動可以達(dá)到較高的重復(fù)定位精度。由于步進(jìn)電機(jī)的步距或轉(zhuǎn)速不受電壓波動和負(fù)載變化的影響,不受環(huán)境(溫度、壓力等)的限制,僅與脈沖頻率同步,能按控制脈沖的要求立即啟動、停止、翻轉(zhuǎn)或改變轉(zhuǎn)速,它每一轉(zhuǎn)都有固定的步數(shù),在不丟步的情況下運(yùn)行時,步距誤差不會長期積累,所以十分適合完成寫字這種精度較高的工作。下圖為混合式步進(jìn)電動機(jī)剖面圖: 在考慮承重的條件下,我們選用57BYGH56型電機(jī),它可以提供一個較為合適的移動速度。下圖為57BYGH56型電機(jī)及其參數(shù):機(jī)身長 56 mm重量 0.7 kg轉(zhuǎn)動慣量 300 g.cm2靜扭矩 12.6 kg.cm相電流 2.8 A步距腳 1.8。6.傳感器電路6.1超聲波傳感器機(jī)器人在行進(jìn)過程中需要識別障礙物以及人的位置與自身的距離,所以需要超聲波傳感器來測距。下圖為超聲波傳感器實(shí)物圖:超聲波感應(yīng)器的原理比較簡單,向傳感器輸入至少10us的高電平信號,模塊會自動發(fā)送8個40kHz的方波,自動檢測是否有信號返回,若有信號返回,通過I/O輸出一高電信號,高電平信號持續(xù)時間及時超聲波從發(fā)射到返回的時間,這樣就可以得出測試距離S

溫馨提示

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

評論

0/150

提交評論