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