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