【導讀】超聲波傳感器被廣泛應用于機器人避障系統中。基于超聲波的測距原理,設計了一種并行測距系統。介紹了系統的硬件組成和軟件實現方法。針對多路傳感器并行測距容易產生干擾的現象,分析了干擾產生的原因,提出一種有效的解決辦法。將系統用于移動機器人避障實驗,給出了系統測量范圍的實驗標定結果。
0 引言
超聲波傳感器以其信息處理簡單、速度快和價格低的優點被廣泛應用于移動機器人避障、倒車雷達等需要距離測量的場合[1]。由于超聲波的輻射特性,現有的多路傳感器測距系統為減少干擾的產生,多采用輪循發射的方法,這種方法的測距盲區較大,實時性也得不到保證,并且,這樣測量到的數據對障礙物的定位、形狀判別等后續處理也比較麻煩。
本文設計了一種多路傳感器并行工作的超聲波測距系統。將該系統用于智能移動機器人上進行避障實驗,獲得良好的效果。
1 超聲波測距系統設計
超聲波測距的方法有多種,本文采用渡越時間法,即通過測量超聲波從發射傳感器發出,經傳播介質到接收傳感器的時間t來計算距離。其原理可以用公式表示為L=vt/2,(L為待測量的距離;v為超聲波在空氣中的傳播速度,t為渡越時間)。超聲波在空氣中的傳播速度與環境的溫度有關,通過溫度補償的辦法可以提高測距的精度。本文的速度通過經驗公式v=331.4+0.607??計算,為攝氏溫度。用一線制溫度傳感器DS18B20來測量環境溫度。
1.1 硬件電路設計
測距系統硬件結構如圖1所示。主要包括上位機、處理器、超聲波振蕩電路、驅動電路、信號放大、整形和比較電路。
處理器采用STC單片機STC12C5410,該單片機與51系列兼容。每一片單片機通過多路轉換器控制兩路超聲波傳感器,這兩路傳感器分別位于機器人的前側和后側。單片機的主要任務是測量渡越時間和環境溫度,計算障礙物的距離。單片機與上位機之間通過RS232通信。上位機對接收的數據進行分析可以定位障礙物,支配機器人的運動。
超聲波發射電路由振蕩電路和驅動電路兩部分組成。振蕩電路是由與非門和電阻與電容組成的簡單電路,能產生40kHz的方波信號驅動超聲波傳感器發射超聲波;驅動電路產生具有一定功率的超聲波電脈沖去激勵超聲波傳感器,由6個非門并聯組成,利用了芯片本身的驅動能力。經過驅動后,最終加到超聲波傳感器的信號是幅值為5V的方波。
1.2 軟件程序設計
系統中,單片機要控制2個定時器,一個用于測量渡越時間,另一個用于設置單片機與PC通信的波特率,保證通信的準確性;控制一個外部中斷口,實時監測超聲波接收傳感器是否接收到反射的超聲波信號;用一個I/O控制超聲波發射傳感器按一定頻率發射超聲波[2];用單總線協議控制一個I/O讀取DS18B20采集的溫度值。單片機還要接收和處理上位機的命令,并根據上位機的要求將數據實時回送給上位機。單片機的程序流程圖如圖2所示。
超聲波接收電路分信號放大、整形、比較三部分。超聲波接收傳感器接收的信號十分微弱,為毫伏級,該信號需要經過放大才能被單片機檢測到。本文采用兩級放大電路,共放大1000倍,兩級放大電路之間采用阻容耦合的方式連接。從放大器輸出的信號經過倍壓整形電路后流入比較器。調節比較器的基準電壓可以改變測距系統的測量范圍和測量精度。比較器輸出的信號接到單片機的INT0,觸發單片機中斷。
單片機與上位機之間用多機通信的方式傳送數據。PC沒有多機控制位,需要用軟件的方法模擬單片機的TB8/RB8位。通信協議設置步驟如下:
1)設置單片機處于地址監聽狀態;
2)PC發送一組奇偶校驗位為1的地址數據;
3)單片機判斷接收到的地址是否與本機地址相同,如果相同,則將該地址發送會主機,與主機建立握手協議;
4)主機接收到地址后,發送奇偶校驗位為0的數據,通知單片機發送距離信息;
5)單片機發送距離數據,發送結束后,返回步驟(1)繼續監聽地址。
上位機程序由VisualC++6.0編寫。其任務是按設置好的通信協議每隔50ms向串口發送一組查詢命令,讀取單片機測量的距離信息;通過分析讀取的距離信息來定位障礙物,粗略判斷障礙物的形狀特征;采取必要的避障措施控制機器人的運行并顯示運行軌跡。軟件有著良好的用戶界面,利于程序調試。
2 干擾因素分析與采取的措施
采用多傳感器并行發射超聲波的方式,最大的一個缺點就是干擾比較嚴重,特別是各傳感器之間的信號干擾。引起干擾的因素主要有以下幾種:
1)傳感器的安裝誤差:超聲波的產生是壓電晶體的機械振動,發射和接收傳感器之間的連接容易產生干擾;如果傳感器與地面之間有傾角或安裝的過低,接收傳感器很容易接收到地面的反射波,觸發單片機中斷。
2)超聲波旁瓣的影響:在發射波結束后,接收傳感器接收到的第一個波是串擾直通波,它是近源的波束旁瓣或通過繞射由發射換能器直接達到接收換能器而造成的[3]。因此,安裝超聲波傳感器時,2個探頭之間的距離要大于3cm。
3)超聲波余振干擾:發射傳感器每次發射8組超聲波,每組5~8個波形。當障礙物比較近時,第一組波形就能觸發單片機中斷。這種情況下,退出中斷時可能發射的超聲波還沒有完全衰減,當下一次開中斷時,單片機中斷就會立即被觸發,產生干擾數據[4]。
4)超聲波交叉干擾:多路傳感器并行發射,接收傳感器接收到的反射超聲波可能不是對應的發射傳感器發射的,并且,各路傳感器之間的信號不同步,這樣,很容易引起測量時間不準確。實驗中出現的很多干擾數據就是由這個原因引起的。
為屏蔽超聲波余振和交叉干擾,單片機采用低電平觸發中斷的方式,并且,在中斷服務子程序中停止超聲波的發射。單片機觸發中斷后,在接收傳感器能接收到反射波的這段時間內,其一直在中斷服務子程序中循環執行,等待反射超聲波衰減至不能被系統識別才退出中斷。
3 實驗標定
測距系統盲區為10cm,由于程序中設定機器人距障礙物40~50cm時采取避障措施,所以,測距盲區對機器人避障不會產生影響。將測距系統安裝到機器人上,用一根半徑1cm的塑料桿在機器人前方移動,逐點探測測距系統的敏感度[5]。探測點選在與超聲波傳感器平行的直線上,以兩傳感器的中心線為中心,向兩邊每隔5cm選取一點,每邊各選4點。測量數據如表1所示。由測量結果看出:左路和中路的測量誤差在2%以內,右路的誤差偏大。這種差別與傳感器的安裝精度有關,另,傳感器的性能也會導致這種差別。此外,測量的基準值40是通過目測得出的,這種測量誤差也會影響測量結果的誤差分析。
按以上測量方法,逐點探測測距系統的敏感度,可以得到測距系統測量范圍如圖3所示。從實驗標定的測量范圍看,測距系統有一小部分區域沒有探測到,這主要是受傳感器波束角的影響,對于非垂直于發射波束的目標,大波束角的傳感器可以獲得更強的回波信號,而波束角越窄對于減少散射波的干擾越有利[6]。選取一種波束角合適的傳感器對全方位測量是十分必要的。
實驗結果表明:在機器人的安全距離內,該測距系統能全方位、較精確地探測到其前方的環境狀況,并且,測量數據不會出現干擾,滿足機器人避障的需要。
4 結束語
本文設計了一種高性能的機器人測距系統,采用多傳感器并行工作的方式,提高了測距的實時性,系統干擾得到有效屏蔽,滿足移動機器人避障的要求。如果系統加以改善還可以設計成汽車倒車雷達,提高汽車的安全性能。
參考文獻:
[1]汪云濤,鮑青山,王樹國,等.超聲探測系統在移動式智能機器人中的應用[J].哈爾濱工業大學學報,1998,30(1):20-23.
[2]楊寧.單片機與控制技術[M].北京:北京航空航天大學出版社,2005.
[3]蘇煒,龔壁建,潘笑.超聲波測距誤差分析[J].傳感器技術,2003(6):8-11.
[4]章小兵,宋愛國,唐鴻儒.基于單接受頭的超聲波多目標測距[J].傳感技術學報,2007,20(5):1167-1169.
[5]NoykovS,RoumeninC.Calibrationandinterfaceofapolaroidu-ltrasonicsensorformobilerobots[J].SensorsandActuatorsA,2007,135(1):169-178.
[6]HerringtonDR.Ultrasonicrangefinderusesfewcomponen-ts[J].EDN,1999(6):23-26.
推薦閱讀: