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