基于單接收頭的超聲波多目標(biāo)測距
為了使超聲波傳感器能在動態(tài)環(huán)境下定位,要求單超聲波接收頭能測量多個(gè)目標(biāo)。 首先分析了超聲波發(fā)射頭產(chǎn)生的超聲波特點(diǎn),據(jù)此推導(dǎo)出接收信號的波形表達(dá)式。 其次根據(jù)接收信號特點(diǎn),系統(tǒng)標(biāo)定時(shí)用接收信號包絡(luò)峰值的0. 5 倍作閾值,而測量時(shí)用小閾值,以防止距離信息丟失。 最后用C8051F021 單片機(jī)設(shè)計(jì)了單接收頭多目標(biāo)測距系統(tǒng)。 在2 目標(biāo)與接收頭距離之差大于30 cm 以上時(shí)能較精確地測量出2 個(gè)距離。
超聲波測距傳感器以其測量精度高、響應(yīng)快和價(jià)格低廉而廣泛應(yīng)用在工業(yè)現(xiàn)場測距、移動機(jī)器人導(dǎo)航和定位等場合。超聲波測距傳感器常用的方式是1 個(gè)發(fā)射頭對應(yīng)1 個(gè)接收頭,也有多個(gè)發(fā)射頭對應(yīng)1 個(gè)接收頭。 它們共同之處是:每個(gè)接收頭只測量一個(gè)位置,這個(gè)位置就是除盲區(qū)內(nèi)因發(fā)射的超聲波旁瓣引起的接收信號超聲波包絡(luò)峰值外,第1個(gè)接收信號超聲波包絡(luò)峰值對應(yīng)的距離。 在機(jī)器人自主導(dǎo)航避障時(shí),機(jī)器人只關(guān)心最近障礙物的距離,是能夠完成自主避障的。 但是在機(jī)器人定位時(shí),尤其在動態(tài)環(huán)境下,1 個(gè)接收頭同時(shí)測量多個(gè)距離,能夠更多地描述環(huán)境信息,這對機(jī)器人用超聲波定位具有重要意義。
1 超聲波
1. 1 超聲波測距原理
超聲波測距原理比較簡單,一般是采用時(shí)差法。即:通過檢測發(fā)射的超聲波與其遇到障礙物后產(chǎn)生回波之間的時(shí)間差Δt ,求出障礙物的距離d ,計(jì)算公式為: d = cΔt/ 2 ,其中:
c 為超聲波波速, T1 為環(huán)境攝氏溫度。
1. 2 發(fā)射信號超聲波包絡(luò)
在發(fā)射頭兩端加40 kHZ 的矩形脈沖電壓, 壓電晶體把電能轉(zhuǎn)變成機(jī)械能,帶動其上振動板運(yùn)動,見圖1. 振動板的固有頻率是40 kHZ,由于共振,振動板很快起振,然后穩(wěn)定, 脈沖電壓撤銷, 振動板作阻尼振蕩衰減。 若振動板長時(shí)間工作在最大振幅狀態(tài),即振動板新增能量與其損耗能量相等,這樣產(chǎn)生的超聲波能量大,有利于提高信噪比,但是接收信號超聲波包絡(luò)從起振到峰值的時(shí)間將變長(放大器增益小,不出現(xiàn)削頂?shù)那闆r下) ,不利于閾值選擇,誤差變大,也不利于第二個(gè)位置的測量,另外盲區(qū)也會增大。 振動板振動時(shí),空氣、壓電晶體(起振時(shí)是激勵(lì))等消耗振動板能量, 其中受空氣阻力消耗的能量轉(zhuǎn)變成發(fā)射超聲波。 壓電晶體激勵(lì)撤銷,則振動板振動作阻尼呈指數(shù)關(guān)系衰減。 把振動板簡化成是一個(gè)彈簧振子,設(shè)振動板在一個(gè)正弦周期( T = 25μs) 內(nèi)是標(biāo)準(zhǔn)正弦波,則在發(fā)射頭振動板運(yùn)動周期數(shù)n ≤發(fā)射頭激勵(lì)脈沖數(shù)N 時(shí),發(fā)射頭振動板運(yùn)動滿足:
x = A ( n) sinωt (1)
式中t ∈[ ( n - 1) T , nT ] , A ( n)是第n 個(gè)周期內(nèi)的振幅。
ΔE 是壓電晶片每次施加的能量。
在n > N 時(shí), 發(fā)射頭振動板運(yùn)動能量滿足:
1. 3 接收信號超聲波包絡(luò)
發(fā)射頭產(chǎn)生的超聲波遇到不同介質(zhì)就會產(chǎn)生回波,接收頭把回波轉(zhuǎn)變成電能,產(chǎn)生接收信號。 現(xiàn)分析超聲波垂直入射到墻壁面時(shí)的接收信號,接收信號超聲波包絡(luò)由起振階段和衰減階段兩部分組成,如圖1。
接收信號與回波超聲包絡(luò)的各正弦波幅值關(guān)系是:
式中W R 是接收信號包絡(luò)峰值,W Echo 是回波包絡(luò)峰值, H 是回波的單位沖擊響應(yīng)。
圖1 實(shí)際接收信號( N = 5)
從圖1 中可看出, 接受信號包絡(luò)從起振到峰值的時(shí)間要小于從峰值衰減至噪聲幅值的時(shí)間。 實(shí)際總長度接近1. 5 ~ 2 ms ,而從起振到包絡(luò)峰值只需250μs 左右,即9 ~ 12 個(gè)T , T = 25μs.
根據(jù)發(fā)射的超聲波能量特點(diǎn), 得出接收信號每個(gè)周期能量的表達(dá)式, 設(shè)每個(gè)周期內(nèi)的正弦波是標(biāo)準(zhǔn)正弦波且發(fā)射頭振動板尚未達(dá)穩(wěn)定振動狀態(tài)。
N 是發(fā)射頭激勵(lì)脈沖數(shù)。
由(6) 、(7) 式知:在N , a 一定的情況下,每個(gè)反射面產(chǎn)生的回波作用接收頭得到的接收信號經(jīng)歸一化后是相同的。 為了便于取閾值,分析接收信號包絡(luò)的特性與n、N 的關(guān)系是必要的。 首先找出定值a ,方法是取N = 5 , a值在一定范圍內(nèi)變化得到多幅仿真圖,經(jīng)比較a = 5 000/ s 時(shí)得到的圖2 與圖1 接近。 根據(jù)得到的a值可仿真N = 12 時(shí)的接收信號,見圖3.
圖3 接收信號仿真( N = 12 , a = 5 000/ s)
2 閾值和分辨率
閾值的選取,決定本測距系統(tǒng)的測量精度。 由于回波的能量大小受入射角、反射面大小、形狀和材質(zhì)、空氣的濕度和溫度等因素決定,為了較精確地測量文獻(xiàn)中機(jī)器人與墻壁之間的距離,下面只針對超聲波垂直入射墻壁,接受信號的大小進(jìn)行分析。
在測量時(shí),一旦有干擾物擋住超聲波到墻壁的行進(jìn)路徑,則墻壁返回的信號將減弱,過高的閾值可能測不到墻壁回波信號,動態(tài)閾值因無規(guī)律可循而無法使用,故此閾值采用小固定值,因接收信號中的噪聲峰值較穩(wěn)定,固定閾值取3~5 倍噪聲峰值。 由于墻壁回波信號不確定地高低變化,在標(biāo)定測量參數(shù)時(shí),用示波器采集信號,以接收信號包絡(luò)峰值的0. 5 倍處(即圖2 中n = 4 或5 處的時(shí)間) 作為距離信息。 這樣處理的目的是: 即使接收信號過強(qiáng)或過弱,測距誤差始終在3~5 cm 以內(nèi)。 當(dāng)N 過大時(shí),盲區(qū)會增大同時(shí)測量精度也會下降,見圖3.
多目標(biāo)測量要能區(qū)分出兩個(gè)不同目標(biāo)。 由于閾值取得小,則系統(tǒng)的分辨能力很差,從圖2 上可看出接收信號經(jīng)1. 5 ms 后正弦幅值是包絡(luò)峰值的0. 015倍。 圖2 的波形只有在超聲波垂直入射墻壁時(shí)才能得到,在大多數(shù)情況下接收信號從起振到包絡(luò)峰值基本固定,但是接收信號從包絡(luò)峰值以后各不一樣,一般從起振經(jīng)1. 5 ms~2 ms 后都會降到閾值以下。
在測量墻壁距離時(shí),只要干擾物與墻壁保持30 cm以上距離則墻壁距離能較精確獲得。
3 系統(tǒng)硬件
C8051 系列單片機(jī)具有豐富的模擬、數(shù)字外設(shè)和多種總線接口,支持在線編程,是很多測控系統(tǒng)的首選。系統(tǒng)硬件框圖如圖4 ,C8051F021 有5 個(gè)定時(shí)器,5 個(gè)PCA 通道,測4 個(gè)方向的超聲波傳感器發(fā)射頭可共用1 個(gè)40 kHz 方波信號,實(shí)行同步發(fā)射;4 個(gè)接收頭可接入PCA 的4 個(gè)通道。 信號放大電路的放大倍數(shù)在800 左右,即使接收信號經(jīng)過帶通濾波器,噪聲峰值也達(dá)30 mv.
圖5 用示波器標(biāo)定系統(tǒng)(只有一個(gè)發(fā)射頭和一個(gè)接收頭)
4 系統(tǒng)軟件
系統(tǒng)軟件基本構(gòu)架如下:
void main ()
{ cONfig () ; EA = 1 ; While (1) {} ; }
void time0_inter () interrupt 1 {}
void time1_inter () interrupt 3 {}
void time2_inter () interrupt 5 {}
void time3_inter () interrupt 14 {}
void time4_inter () interrupt 16 {}
void PCA_inter () interrupt 9 {}
初始化程序config () : I/ O 交叉開關(guān)配置;使用外部時(shí)鐘,指定系統(tǒng)時(shí)鐘;time 0~4 中斷使能,其中time 0 溢出中斷發(fā)生,產(chǎn)生40 kHz 方波信號輸出;PLA 中斷開啟。
中斷函數(shù)time0_inter ( ) :產(chǎn)生5 個(gè)40 kHz 方波信號輸出后關(guān)閉time0 中斷, TF0 = 0 ; PLA 溢出、邊緣捕捉中斷開啟。
中斷函數(shù)PCA_inter () :若是溢出中斷發(fā)生(30ms) ,則關(guān)閉PCA_inter ( ) 中斷,CF = 0 ,開啟time0中斷;若是CCFn = 1 ,則記下定時(shí)器時(shí)間(與初值相減后代入標(biāo)定式得距離) ,給定time n 計(jì)時(shí)初值并啟動time n 溢出中斷( 2 ms) , 關(guān)閉CCFn 中斷,CCFn = 0.
中斷函數(shù)time1 _inter ( ) ~ time4 _inter ( ) : 當(dāng)time n 中斷發(fā)生則開啟CCFn 中斷,關(guān)閉time n 中斷, TFn = 0.
5 結(jié)語
本文對單個(gè)接收頭在一次采樣時(shí)間(30 ms) 內(nèi)測量多個(gè)目標(biāo)進(jìn)行了嘗試,仿真并分析了接收信號波形,用0. 5 倍包絡(luò)峰值標(biāo)定而用小閾值測量,在2個(gè)目標(biāo)與接收頭距離之差大于30 cm 以上時(shí)能較精確測量出2 個(gè)目標(biāo),誤差不超過2 cm.
由于一次能在同一時(shí)刻測多個(gè)距離,增大了超聲波傳感器捕獲的信息量,移動機(jī)器人裝配了該傳感器能在人員不是密集的動態(tài)環(huán)境下根據(jù)4 面墻壁定位。