1 引言
定位是根據(jù)先驗(yàn)的環(huán)境信息,結(jié)合當(dāng)前的機(jī)器人位置信息以及傳感器輸入信息,準(zhǔn)確地確定機(jī)器人位姿的過(guò)程??煽慷ㄎ皇且苿?dòng)機(jī)器人研究中備受關(guān)注和富有挑戰(zhàn)性的一個(gè)重要研究主題。
機(jī)器人定位技術(shù)可分為絕對(duì)定位和相對(duì)定位技術(shù)兩類(lèi),絕對(duì)定位主要采用導(dǎo)航信標(biāo)、主動(dòng)或被動(dòng)標(biāo)識(shí)、地圖匹配或衛(wèi)星導(dǎo)航技術(shù)(GPS) 進(jìn)行定位。相對(duì)定位是通過(guò)測(cè)量機(jī)器人相對(duì)于初始位置的距離和方向來(lái)確定機(jī)器人的當(dāng)前位置,通常也稱(chēng)為測(cè)程法。絕對(duì)定位和相對(duì)定位各有優(yōu)缺點(diǎn),具有互補(bǔ)性,將兩者結(jié)合能形成更加準(zhǔn)確可靠的定位系統(tǒng)。本實(shí)驗(yàn)?zāi)K的設(shè)計(jì)就是先用測(cè)程法進(jìn)行相對(duì)定位,然后利用電子羅盤(pán)進(jìn)行糾正。
2 定位原理及硬件設(shè)計(jì)
2.1定位原理
本設(shè)計(jì)對(duì)應(yīng)的機(jī)器人是前后輪獨(dú)立驅(qū)動(dòng)的,在兩個(gè)后輪的內(nèi)側(cè)分別裝上兩個(gè)光電開(kāi)關(guān)。本設(shè)計(jì)中應(yīng)用的光電開(kāi)關(guān)[1]是集發(fā)射器和接收器于一體的光電傳感器。輪子的軸線(xiàn)共有6根,當(dāng)輪子旋轉(zhuǎn)軸線(xiàn)阻擋了光電開(kāi)關(guān)的發(fā)射器發(fā)射的光線(xiàn)時(shí),光電開(kāi)關(guān)輸出端會(huì)產(chǎn)生一個(gè)從低到高的跳變,單片機(jī)的計(jì)數(shù)器會(huì)對(duì)此種跳變進(jìn)行計(jì)數(shù)。根據(jù)計(jì)得的數(shù)就可以算得輪子轉(zhuǎn)過(guò)的圈數(shù),從而可以分別算出機(jī)器人左右輪移動(dòng)的距離。從而可以得出機(jī)器人轉(zhuǎn)過(guò)的角度等等,進(jìn)而可以得出機(jī)器人的準(zhǔn)確位置。由于輪子存在打滑現(xiàn)象,并且輪間距,輪徑,幾何中心的重合精度也會(huì)帶來(lái)一定的誤差,而本設(shè)計(jì)中電子羅盤(pán)的作用就是對(duì)機(jī)器人移動(dòng)的角度誤差進(jìn)行適時(shí)地糾正,減少誤差。
2.2定位模塊硬件設(shè)計(jì)
本實(shí)驗(yàn)用的處理單元是AT89C2051。 AT89C2051是一帶有2K字節(jié)閃速可編程可擦除只讀存儲(chǔ)器,高性能8位CMOS微型計(jì)算機(jī)。它有2個(gè)16位的計(jì)數(shù)器,15根可編程的I/O口線(xiàn),5個(gè)中斷源。通過(guò)在單塊芯片上組合通用的CPL1和閃速存儲(chǔ)器,ATMEL AT89C2051是一強(qiáng)勁的微型計(jì)算機(jī),它對(duì)許多嵌入式控制應(yīng)用提供一高度靈活和成本低的解決辦法。用到的電子羅盤(pán)為T(mén)DCM3,有8個(gè)引腳,3種模式狀態(tài),設(shè)計(jì)中應(yīng)使RX=1,即選取狀態(tài)為normal mode。本設(shè)計(jì)中還用到了NE555P組成的單穩(wěn)態(tài)電路,用于對(duì)光電開(kāi)關(guān)產(chǎn)生的開(kāi)關(guān)信號(hào)進(jìn)行整型,消除干擾。硬件電路結(jié)構(gòu)圖如下圖所示:
3、定位算法介紹
假設(shè)輪直徑為2R,輪子的軸線(xiàn)數(shù)為6,在時(shí)間內(nèi)光電開(kāi)關(guān)輸出的脈沖數(shù)為N,車(chē)輪運(yùn)行的距離為S,L為小車(chē)左右輪的間距,則有:
算法分析圖如下:
圖中A(x,y,α )為小車(chē)后輪軸的中點(diǎn),α 為小車(chē)中軸與X軸的夾角,SL,S,SR分別為小車(chē)左輪、小車(chē)、小車(chē)右輪的運(yùn)行距離,假設(shè)小車(chē)在水平面內(nèi)做純滾動(dòng)運(yùn)動(dòng),在時(shí)間內(nèi)小車(chē)從A點(diǎn)到B( x + Δx, y + Δy,α + Δα )點(diǎn),則有
4 軟件流程
定位主程序處于無(wú)限循環(huán)中,每經(jīng)過(guò)一段延時(shí)時(shí)間,對(duì)電子羅盤(pán)TDCM3和T0 T1進(jìn)行讀數(shù),然后數(shù)據(jù)送入2051進(jìn)行處理。TDCM3有三種工作模式,程序中應(yīng)令RX=1即進(jìn)入Normalmode。Init()為初始化函數(shù),DelayTime()為延時(shí)子程序,Get_dir()為T(mén)DCM3讀角度子程序,process()為AT89C2051處理子程序,flag為狀態(tài)標(biāo)志。TR1和TR0為計(jì)數(shù)器T1 和T0啟動(dòng)控制位。程序流程圖如下圖所示:
5 顯示測(cè)試
定位的硬件模塊設(shè)計(jì)并制做完成后,為了測(cè)試模塊的性能,可以在AT89C2051單片機(jī)的端口接上由MAX7219和LED組成的顯示模塊,將程序燒寫(xiě)到2051中后,定位模塊測(cè)得的數(shù)據(jù)會(huì)顯示在LED上。該定位模塊成本低,定位的測(cè)量誤差基本可以滿(mǎn)足誤差的要求,可以在應(yīng)用于諸多場(chǎng)合。
6 結(jié)論
本文對(duì)定位模塊的設(shè)計(jì)方法進(jìn)行了闡述,重點(diǎn)介紹了定位模塊的軟硬件設(shè)計(jì)及相應(yīng)的算法。測(cè)程法在短期內(nèi)能提供很高的定位精度,但其無(wú)限的誤差累積是最大的缺點(diǎn),而將光電開(kāi)關(guān)測(cè)得的數(shù)據(jù)信息與電子羅盤(pán)測(cè)得的角度信息進(jìn)行融合,可以有效地克服這一缺點(diǎn)。在測(cè)程法中由于做了一些近似,會(huì)帶來(lái)一定的舍入誤差,所以在計(jì)算時(shí)要使用雙精度數(shù)據(jù)以減小這一誤差。
創(chuàng)新點(diǎn):
本設(shè)計(jì)是基于測(cè)程法的定位模塊的設(shè)計(jì),但是存在界的累積誤差,而用電子羅盤(pán)對(duì)其角度進(jìn)行修正,可以有效地減小誤差。
本設(shè)計(jì)中用到了由NE555P組成的單穩(wěn)態(tài)電路,能夠很好地濾除突發(fā)脈沖的干擾,從而使得2051對(duì)電子開(kāi)關(guān)產(chǎn)生跳變的計(jì)數(shù)更加準(zhǔn)確。
責(zé)任編輯:gt
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650584 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29748瀏覽量
212941 -
gps
+關(guān)注
關(guān)注
22文章
2986瀏覽量
169417
發(fā)布評(píng)論請(qǐng)先 登錄
用AT89C2051單片機(jī)控制實(shí)現(xiàn)的32×16的矩陣交換
AT89C2051單片機(jī)做節(jié)日彩燈控制電路程序
基于AT89C2051單片機(jī)的數(shù)字電容表設(shè)計(jì)
AT89C2051單片機(jī)對(duì)顯示驅(qū)動(dòng)芯片MC14499的IC級(jí)
AT89C2051單片機(jī)的比較器的應(yīng)用
AT89c2051單片機(jī)介紹

基于AT89C2051單片機(jī)的RF卡門(mén)禁系統(tǒng)設(shè)計(jì)
基于AT89C2051單片機(jī)的防盜自動(dòng)報(bào)警電子密碼鎖系統(tǒng)的設(shè)計(jì)
基于AT89C2051單片機(jī)壓力傳感與檢測(cè)系統(tǒng)
基于AT89C2051單片機(jī)的GPS時(shí)鐘系統(tǒng)
如何使用AT89C2051單片機(jī)實(shí)現(xiàn)節(jié)日彩燈控制電路的程序
使用AT89C2051單片機(jī)實(shí)現(xiàn)模轉(zhuǎn)數(shù)換的程序免費(fèi)下載
基于AT89C2051單片機(jī)語(yǔ)音模塊的語(yǔ)音報(bào)價(jià)系統(tǒng)設(shè)計(jì)

評(píng)論