基于紅外超聲光電編碼器的室內(nèi)移動小車定位系統(tǒng)
引 言
本文引用地址:http://www.ex-cimer.com/article/196782.htm目前,使用超聲波技術(shù)進(jìn)行空間測量和定位已相當(dāng)普遍。有的運(yùn)用超聲波的反射特性,有的綜合運(yùn)用紅外和超聲波傳感器采取三邊測距的定位方法,前者因為超聲波傳輸介質(zhì)的影響使測量精度無法提高,超聲波衰減特性使其傳播的距離有限,再利用反射特性更加縮短了傳播的距離。后者雖然精度有所提高,測量的距離增加了,但是出現(xiàn)了測量盲區(qū)的問題,待測目標(biāo)在某些位置不能同時檢測到3個以上的超聲波信號時,使系統(tǒng)無法定位。本文在第2種方法的基礎(chǔ)上在系統(tǒng)中加入了光電編碼器測距定位原理,消除其定位盲區(qū)的問題。
1 定位原理
1.1 紅外超聲三邊測距定位原理
首先在室內(nèi)建立一直角坐標(biāo)系,規(guī)定好原點(diǎn)、X軸、Y軸、和Z軸。在室內(nèi)上空固定位置設(shè)立3個參考點(diǎn)A、B、C,坐標(biāo)分別為(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)。使用紅外超聲系統(tǒng)測出目標(biāo)點(diǎn)到3個參考點(diǎn)的距離L、M、N為:
由式(1)~式(3)解出目標(biāo)點(diǎn)的坐標(biāo)值(x,y,z)。這就是紅外超聲的定位原理,簡單且容易編程實現(xiàn)。下面說明目標(biāo)點(diǎn)與參考點(diǎn)間距離的測量原理。光速與超聲波速度在量級上的極大差值是實現(xiàn)測距功能的基礎(chǔ)。測距原理見圖1。
超聲波和紅外光的傳播速度為常量,其傳播距離與時間的曲線均為直線,直線斜率即波速,易知曲線①為紅外光曲線,曲線②為超聲波曲線。指定距離D,設(shè)紅外光與超聲波在0時刻同時從某一參考點(diǎn)出發(fā),紅外光經(jīng)t1時間走完指定距離,超聲波經(jīng)t2時間走完指定距離,則D=vt2,式中v為超聲波速。令t=t2-t1,可得D=v(t+t1)。已知紅外光速為3×108m/s,超聲波在空氣中速度為3.4×102m/s,在室內(nèi)這樣的距離范圍,近似認(rèn)為t1=0,得到D=vt。
系統(tǒng)在每個參考點(diǎn)安裝單片機(jī)控制的紅外和超聲波發(fā)射管,在目標(biāo)點(diǎn)安裝紅外和超聲波接收管,同樣連接單片機(jī)。某一時刻參考點(diǎn)發(fā)射紅外和超聲信號,目標(biāo)點(diǎn)在接收到紅外信號時啟動單片機(jī)的內(nèi)部計數(shù)器、在接收到超聲信號時停止計數(shù)器,這樣二者的時間差t被記錄下來,將t與超聲波速相乘就得到待測距離D。實際上,信號處理總是有延時的,由此帶來的測量誤差必須補(bǔ)償,最終得到算式為:d=vt+n。式中:d為距離測量值;v為超聲波速;t為單片機(jī)記錄的紅外光和超聲披到達(dá)目標(biāo)點(diǎn)的時間差值;n為系統(tǒng)器件延遲誤差補(bǔ)償項。
1.2 光電編碼器測距定位原理
光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,這是目前應(yīng)用最多的傳感器,由光柵盤和光電檢測裝置組成。
光柵盤是在一定直徑的圓板上等分地開通若干個長方形孔。由于光電碼盤(稱為譯碼輪,見圖2)與電動機(jī)同軸,電動機(jī)旋轉(zhuǎn)時,光柵盤與電動機(jī)同速旋轉(zhuǎn),經(jīng)發(fā)光二極管等電子元件組成的檢測裝置檢測輸出若干脈沖信號。發(fā)光二極管和光敏傳感器組成光電耦合器。光敏傳感器內(nèi)部沿垂直方向排列有2個光敏晶體管A和B。由于譯碼輪有間隙,故當(dāng)譯碼輪轉(zhuǎn)動時,紅外發(fā)光二極管發(fā)出的紅外線時而照在光敏傳感器上,時而被阻斷,從而使光敏傳感器輸出脈沖信號。光敏晶體管A和B被安放的位置使得其光照和阻斷的時間有差異,從而產(chǎn)生的脈沖A和脈沖B有一定的相位差。利用這種方法,就能測出碼盤滾軸滾動方向。滾軸每轉(zhuǎn)動一個小角度,車輪位置計數(shù)器加1,每隔一定時間,單片機(jī)把車輪位置計數(shù)器的值讀出,通過計算得出車輪移動的位移(當(dāng)小車轉(zhuǎn)彎時為弧線長度和弧線切線方向),再把位移信息發(fā)送給上位機(jī)。
基于以上原理,在同軸二輪驅(qū)動小車(同軸二輪驅(qū)動小車的2個輪子的運(yùn)行軌跡總是平行的)的2個驅(qū)動輪子的正上方一定高度的a、b這2點(diǎn)安裝紅外超聲定位單元,絕對定位每個點(diǎn)的坐標(biāo)。在2個輪子各自軸上安裝光電編碼器測距單元,用來測量2個定位時刻點(diǎn)間輪子移動的距離和前進(jìn)倒退情況。
對移動小車的定位分為3種情況:
a) 在某一定位時刻a、b這2點(diǎn)能夠同時檢測到3個參考點(diǎn)的信號(地面是平的,進(jìn)行平面二維定位時只需2個信號),就用紅外超聲絕對定位方法計算移動小車的位置,計算出它們中點(diǎn)的位置(即移動小車的位置),并根據(jù)前一時刻a、b這2點(diǎn)的坐標(biāo)、2個輪子間的固定距離判斷出輪子相對于所建坐標(biāo)系的運(yùn)行方向。
b) a、b中只有1點(diǎn)能夠同時檢測到3個參考點(diǎn)的信號,則根據(jù)前一時刻a、b這2點(diǎn)的坐標(biāo)、光電編碼器測得2個輪子的移動距離長短比較、2個輪子間的同定距離計算出移動小車的位置和運(yùn)行方向。
c) a、b這2點(diǎn)都不能同時檢測到3個參考點(diǎn)的信號,則根據(jù)前一時刻a、b這2點(diǎn)的坐標(biāo)、2個輪子的固定距離、光電編碼器測得2個輪子的移動距離計算出小車的坐標(biāo)和運(yùn)行方向。
下面給出第2種情況的求解方法,見圖3。通過比較光電編碼器所測2個輪子的移動距離,可得出小車向移動距離短的輪子一側(cè)轉(zhuǎn)彎,已知紅外超聲測得的a′、b′、b點(diǎn)的坐標(biāo),2個輪子的間距d,線段aa′和bb′平行,ab和小車的運(yùn)動方向垂直,根據(jù)幾何知識可以求出a點(diǎn)的坐標(biāo)和小車的移動方向,其他情況亦然。
2 系統(tǒng)的硬件結(jié)構(gòu)
系統(tǒng)主要由超聲波信標(biāo)節(jié)點(diǎn)(參考點(diǎn))、一個紅外發(fā)射管、一個超聲波發(fā)射頭及各自的驅(qū)動電路和微控制器SST89E564RD(以下簡稱564RD)8位單片機(jī)組成。普通節(jié)點(diǎn)(目標(biāo)點(diǎn))由8個紅外接收管、8個超聲波接收頭及各自的驅(qū)動電路和8個564RD組成紅外超聲接收單元,每一個紅外接收和超聲波接收為一對,用一個564RD控制,分成2組,每組4對,在每個輪子的上方一定高度間隔90°與水平面成45°夾角向上分布。因為測量的目標(biāo)點(diǎn)是移動物體,所以采用多通道同時接收的方法縮短每次測量所用的時間,提高定位精度。光電編碼器測距單元由譯碼輪、光電偶合器和一片564RD組成。用1片564RD作為主控芯片,與8個超聲波接收單元、2個光電編碼器測距單元使用串口進(jìn)行通信,主控制器瀆取各個單元的測量數(shù)據(jù),完成定位運(yùn)算,同時起到同步各個單元工作的作用。564RD的晶振都為40 MHz。圖4給出單個紅外管和超聲波發(fā)射電路,圖5給出單個紅外管超聲波接收電路。超盧波的發(fā)射管為T40-16(對應(yīng)接收管為R40-16),中心頻率為40 kHz。紅外發(fā)射管為SE303A(對應(yīng)接收管為PH302),564RD用2個I/O口分別輸出載頻為40 kHz、調(diào)頻為5 kHz的方波信號驅(qū)動紅外發(fā)射管,以及載頻為40 kHz、調(diào)頻2 kHz的方波信號驅(qū)動超聲波發(fā)射管。
3 系統(tǒng)的軟件設(shè)計
系統(tǒng)上電后各單元進(jìn)行初始化,各部分工作如下:
a) 超聲波信標(biāo)節(jié)點(diǎn)不斷向外發(fā)射紅外和超聲波信號,每個節(jié)點(diǎn)的紅外與超聲波信號編碼相對應(yīng),并且與其他節(jié)點(diǎn)的信號編碼不同。
b) 普通節(jié)點(diǎn)每隔1 s(可以改變,但不能太長,否則小車出現(xiàn)拐彎時運(yùn)行軌跡可能不平行)進(jìn)行一次定位,主控制器通過串口向各個單元發(fā)出定位信號并啟動內(nèi)部定時器,延時100 ms后依次讀取8個超聲測距單元所測得的a、b這2點(diǎn)到參考點(diǎn)的距離信息和2個光電編碼器測距單元記錄的位移信息,計算出移動小車的位置和運(yùn)行方向。定時器定時到1 s后重復(fù)此過程。主控制器的軟件流程如圖6所示。
c) 2個光電編碼器測距單元初始化后立刻開始記錄輪子的位移,串口收到定位信號后,將記錄的位移信息存到指定位置,等待主控制器讀取,并從0開始繼續(xù)記錄位移情況。
d) 普通節(jié)點(diǎn)檢測到定位信號后,接收紅外和超聲波信號,記錄一組相對應(yīng)的紅外超聲信號的超聲波傳輸時間,存到指定的位置,等待主控制器讀取。在串口接收到定位信號的開始100 ms時間內(nèi)有這樣的信號,則把第1次接收到對應(yīng)的時間存人指定的位置就不再檢測接收了,如果100 ms時間內(nèi)沒有檢測到相應(yīng)的信號,就送數(shù)據(jù)0到指定的位置。
4 系統(tǒng)誤差分析及實驗測距結(jié)果
定位誤差主要有以下5方面:超聲波器件的形狀和安裝位置造成坐標(biāo)系參考點(diǎn)和待測目標(biāo)點(diǎn)的位置偏差;系統(tǒng)電路器件延遲產(chǎn)生的誤差;小車是不斷運(yùn)動的,由于超聲波傳輸速度比較慢,請求定位時刻到定位完成,小車已經(jīng)移動了一定的距離;在不能連續(xù)檢測到足夠參考點(diǎn)信號時,位置的確定依靠前一時刻的測量,會造成累計誤差;溫度條件對超聲波的影響。
圖7給出了在室溫20℃、超聲波速度為340m/s、小車2個輪子間距離為0.2 m、移動速度為0.2 m/s、平面二維定位實驗測量的一段軌跡,實驗通過對前3個方面誤差補(bǔ)償計算,使定位精度達(dá)到3 cm。
5 結(jié)束語
因為光電編碼器測距定位依靠前一測量點(diǎn)的信息,必然導(dǎo)致定位誤差的累積;而紅外超聲三邊測距法是一種只依靠當(dāng)前測量點(diǎn)信息的絕對位置定位方法。此系統(tǒng)綜合了這2種方法,消除了累積誤差,并解決了定位盲區(qū)的問題,對移動小車有一個較準(zhǔn)確的定位。
評論