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