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