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