文章標識碼: A
文章編號: 0258-7998(2012)02-0124-03
近年來,,機器人聽覺系統(tǒng)開發(fā)已經(jīng)成為機器人研究領(lǐng)域的重要課題,。由于聲波的波長較大,具有較強的衍射能力,,可以繞過障礙物傳播,,并且能與視覺傳感器配合,從而可用于實現(xiàn)移動機器人的全方位導(dǎo)航,。聽覺系統(tǒng)的開發(fā)本質(zhì)上就是聲源定位系統(tǒng)的研究,,采用麥克風(fēng)陣列進行聲源定位是信號處理領(lǐng)域的一個研究熱點。一組麥克風(fēng)按照一定的幾何結(jié)構(gòu)擺放組成麥克風(fēng)陣列[1],,拾取來自各個方向的聲音信號,,并進行空時處理,從而精確定位目標聲源,。
在工程應(yīng)用中,,根據(jù)麥克風(fēng)陣列模型和聲音球面?zhèn)鞑ツP蜆?gòu)建的聲源定位系統(tǒng)是一組復(fù)雜的非線性方程,,難以用數(shù)值計算方法準確建模。在這種情況下,,可以應(yīng)用神經(jīng)網(wǎng)絡(luò)表達這種非線性系統(tǒng),。神經(jīng)網(wǎng)絡(luò)可以按照指定的精度逼近各種復(fù)雜的非線性系統(tǒng),解決非線性系統(tǒng)的建模問題,,并對信息采用分布式存儲的處理方式,,具有高運算效率和很強的容錯性、魯棒性[2-3],。
本文研究了可應(yīng)用移動機器人上的聲源定向系統(tǒng),,介紹了其硬件構(gòu)成,采用BP神經(jīng)網(wǎng)絡(luò)對定向系統(tǒng)進行研究,,并通過Matlab仿真證明了在四元麥克風(fēng)陣列模型下實現(xiàn)遠場和近場的目標聲源定向,。
1 定向系統(tǒng)硬件結(jié)構(gòu)
1.1 麥克風(fēng)陣列模型
聲源定向系統(tǒng)的幾何結(jié)構(gòu)如圖1所示,由M1,、M2,、M3和M4 4個麥克風(fēng)組成一個四元球面陣列,對目標聲源進行定向,。其中P為聲源,,?琢、?茁分別為方位角和俯仰角,。系統(tǒng)麥克風(fēng)選用駐極體麥克風(fēng),,這種傳聲器具有體積小、全向性,、價格低,、靈敏度較高和頻率響應(yīng)范圍寬等優(yōu)點。該麥克風(fēng)能夠有效地收集聲音信息并檢測出聲音到達麥克風(fēng)的初始時刻,,為后續(xù)的定位計算提供準確的數(shù)據(jù),。整個系統(tǒng)以Activmedia的Pioneer3 AT機器人為安裝平臺,如圖2所示,。該機器人配備有速度,、激光、攝像頭等傳感器,采用4個車輪保持平衡,,可以承受的載重超過35 Kg,,底部裝有2個直流電動機,分別用來驅(qū)動左輪和右輪,,前后均裝配了防碰接觸開關(guān),,能同時適用于戶外和戶內(nèi)的應(yīng)用需求。
圖1 麥克風(fēng)陣列結(jié)構(gòu)模型
圖2 機器人實驗系統(tǒng)平臺
1.2 聲達時間獲取
1.2.1 信號放大及噪聲的處理
由于全向型麥克風(fēng)的輸出電壓大都在零到幾十毫伏之間,,如此微弱的電信號無法滿足后期信號處理工作的要求,。因此,,僅靠電容式麥克風(fēng)的拾音能力是遠遠不夠的,有必要對麥克風(fēng)采集到的信號進行放大,。本文采用性能較穩(wěn)定的集成運算放大器對采集信號進行二級放大,。考慮到電器元件的放大特性不是完全一致的,,因此加入了增益調(diào)整電位器,以便后期調(diào)試時減少由于硬件特性不同而產(chǎn)生的誤差,。除此之外,,為了在實驗過程中實時觀測信號的采集情況,利用發(fā)光二極管制作輸出信號指示燈來指示信號的強弱變化,。同時考慮到聽覺定位系統(tǒng)的魯棒性和實時性,,本文還利用集成運算放大器制作電壓比較器,使聽覺定位系統(tǒng)具有一定的抗噪能力,,通過調(diào)節(jié)參考電壓對背景噪聲進行過濾,。
1.2.2 聲達時間點的捕捉
通過上述過程,系統(tǒng)對聲電信號進行了整形,,使得大于背景噪聲的信號以方波的形式輸出,,用于捕捉聲源信號到達時間點。為了使陣列中各個麥克風(fēng)均能精確地捕捉目標聲音到達的時間點,,采用微處理器配合RS觸發(fā)器進行捕捉,,具體實現(xiàn)方法如圖3所示。
圖3 捕捉聲達時間點硬件電路圖
聲源信號經(jīng)過電壓比較器整形后,,產(chǎn)生連續(xù)方波脈沖,。當(dāng)?shù)谝粋€脈沖到達觸發(fā)器時,觸發(fā)器鎖存并保持電平,,輸出端發(fā)光二極管隨即發(fā)生變化,,指示聲源信號起始點已被鎖存。由于已將微處理器中的可編程計數(shù)器調(diào)整為捕捉定時器工作模式,,并設(shè)置CPU時鐘頻率,所以當(dāng)觸發(fā)器改變電平時,,CPU記錄并存儲脈沖到來的時間。等待4路麥克風(fēng)的聲源信號相繼到達后,,再利用串口通信將4個存儲的時間點發(fā)送到上位機,,與此同時,將鎖存器電平和微處理器復(fù)位,,等待下一刻聲源信號的到達,。這種利用硬件直接捕捉聲達的方法簡單易行且精度較高。
2 神經(jīng)網(wǎng)絡(luò)計算模型建立
2.1確定網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),,由輸入層,、隱含層和輸出層組成[4],。根據(jù)系統(tǒng)輸入輸出數(shù)據(jù)的特點來確定BP神經(jīng)網(wǎng)絡(luò)的輸入輸出,輸入數(shù)據(jù)為3個時延值,,即聲音信號到達陣列中不同位置的麥克風(fēng)的時間差,。把聲源到麥克風(fēng)M4的時間作為基準,到麥克風(fēng)M1,、M2,、M3的時間與基準的差記作3個時延值,構(gòu)成一組3個參數(shù)的輸入數(shù)據(jù),。輸出數(shù)據(jù)為目標聲源的位置,,本文的聲源定位目的是為了實現(xiàn)移動機器人對目標聲源的跟蹤,所以輸出數(shù)據(jù)采用球坐標形式較為方便,。該網(wǎng)絡(luò)的輸出有方位角,、俯仰角和距離3個參數(shù)。
隱含層層數(shù)的選擇要從網(wǎng)絡(luò)的精度和訓(xùn)練時間上綜合考慮[5],,在網(wǎng)絡(luò)精度達到要求的情況下,,可以選擇單隱層,以求加快訓(xùn)練速度,;而對于復(fù)雜的映射關(guān)系,,選擇多隱含層,可以提高網(wǎng)絡(luò)預(yù)測精度[6-7],。本文選用有2個隱含層的BP網(wǎng)絡(luò),,網(wǎng)絡(luò)結(jié)構(gòu)為3-25-25-3,即輸入層和輸出層有3個節(jié)點,,2個隱含層分別有25個節(jié)點,。
2.2 數(shù)據(jù)處理
假設(shè)4個麥克風(fēng)之間的距離均為0.1 m,目標聲源范圍為一個半徑0.1 m~5 m的球體內(nèi)的任意點。聲速為340 m/s,根據(jù)聲源定位模型的幾何關(guān)系隨機取數(shù)得到系統(tǒng)2 000組的輸入輸出數(shù)據(jù),。從中隨機選取1 900組數(shù)據(jù)作為網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),,其余100組數(shù)據(jù)作為網(wǎng)絡(luò)測試數(shù)據(jù)。
數(shù)據(jù)歸一化方法是神經(jīng)網(wǎng)絡(luò)預(yù)測前對數(shù)據(jù)常做的一種處理方法[8],。該方法主要有最大最小法,、平方數(shù)方差法[9]兩種。本文采用第一種方法對輸入輸出數(shù)據(jù)進行歸一化處理,,并對網(wǎng)絡(luò)預(yù)測輸出進行反歸一化,,通過Matlab的自帶函數(shù)mapminmax來實現(xiàn)。
3 Matlab仿真與結(jié)果分析
3.1 Matlab仿真
Matlab軟件中包含Matlab神經(jīng)網(wǎng)絡(luò)工具箱,,可以直接調(diào)用構(gòu)建各種類型的神經(jīng)網(wǎng)絡(luò),。本文的BP神經(jīng)網(wǎng)絡(luò)主要用newff、train和sim 3個神經(jīng)網(wǎng)絡(luò)工具箱自帶函數(shù)來實現(xiàn)網(wǎng)絡(luò)的構(gòu)建,、訓(xùn)練和仿真預(yù)測,。
本文的聲源定位系統(tǒng)以實現(xiàn)對目標聲源的跟蹤為目的,,預(yù)測出方位角和俯仰角,確定目標聲源的空間方向?qū)崿F(xiàn)跟蹤,。但由于BP神經(jīng)網(wǎng)絡(luò)的擬合能力有限,,并不能對距離做出較為準確的預(yù)測,故舍去了這組數(shù)據(jù),,主要分析方位角和俯仰角這2組輸出數(shù)據(jù),。圖4為100組預(yù)測數(shù)據(jù)的方位角預(yù)測誤差,誤差范圍為±5°,。圖5為100組預(yù)測數(shù)據(jù)的俯仰角預(yù)測誤差,,誤差范圍為±4°。
3.2 仿真結(jié)果分析與實驗驗證
傳統(tǒng)的聲源定位方法是利用幾何關(guān)系,,建立一組時延和聲源坐標的方程組,通過解方程組得到時延和聲源坐標的數(shù)值關(guān)系,。在解方程組的過程中,,大都假設(shè)聲源位于遠場且聲音信號以平面波傳播,以此來約減得到近似結(jié)果,。但當(dāng)聲源位于近場時,,即當(dāng)麥克風(fēng)之間的距離相對于聲源到麥克風(fēng)的距離較大時,這種假設(shè)就不再成立了,。如果仍然用近似的結(jié)果進行計算,,那么得到的數(shù)據(jù)與真實數(shù)據(jù)相比就不僅是誤差較大了,而是錯誤的,。
用于BP神經(jīng)網(wǎng)絡(luò)預(yù)測的100組輸入輸出數(shù)據(jù)是在2 000組樣本數(shù)據(jù)中隨機選擇的,,遠場和近場的聲源位置都有。從Matlab仿真得到的圖形來看,,誤差分布較均勻,,說明并沒有因為是近場聲源神經(jīng)網(wǎng)絡(luò)就出現(xiàn)大的預(yù)測誤差,表明該神經(jīng)網(wǎng)絡(luò)無論是近場還是遠場都可以預(yù)測目標聲源的方位角和俯仰角,。為了進一步驗證網(wǎng)絡(luò)在近場對聲源的定向情況,,選取目標聲源范圍為0.1 m~0.5 m的空心球體內(nèi)的點,用已訓(xùn)練好的BP網(wǎng)絡(luò)再次進行預(yù)測,。預(yù)測的方位角誤差和俯仰角誤差分別如圖6,、圖7所示。近場方位角預(yù)測誤差大部分在±5°以內(nèi),,有個別樣本點的誤差較大甚至預(yù)測錯誤,,這是由于選取的樣本點離坐標原點太近造成的,不影響實際應(yīng)用,。近場俯仰角預(yù)測誤差結(jié)果與圖4,、圖5的預(yù)測結(jié)果很相似,,誤差范圍仍然是±4°。
在機器人實驗平臺上驗證該神經(jīng)網(wǎng)絡(luò)的性能時,,以室內(nèi)拍手聲作為聲源,,大小約70 dB,背景噪聲約30 dB,。機器人能辨別出聲源的方向并向其靠近,,證明了該四元麥克風(fēng)陣列可以使移動機器人實現(xiàn)較好的聲源定向和跟蹤。
本論文應(yīng)用四元麥克風(fēng)陣列進行移動機器人的聲源定向研究,,設(shè)計了一個雙隱層的BP神經(jīng)網(wǎng)絡(luò),。經(jīng)Matlab仿真證明,輸入獲取的時延數(shù)據(jù),,可以實現(xiàn)近場和遠場的目標聲源定向,,并且在機器人本體上進行了實驗測試,進一步驗證了其實用性,。但是由于網(wǎng)絡(luò)擬合能力有限,,并不能很好地預(yù)測聲源的空間距離,因此,,如何實現(xiàn)對空間距離的準確預(yù)測是下一步的重點研究任務(wù),。
參考文獻
[1] 傅薈璇,趙紅. Matlab神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M]. 北京:機械工業(yè)出版社,,2010.
[2]飛思科技產(chǎn)品研發(fā)中心. 神經(jīng)網(wǎng)絡(luò)與Matlab 7實現(xiàn)[M].北京:電子工業(yè)出版社,,2005.
[3] 周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其Matlab仿真程序設(shè)計[M]. 北京:清華大學(xué)出版社,2005.
[4] 張良均,,曹晶,,蔣世忠.神經(jīng)網(wǎng)絡(luò)使用教程[M].北京:機械工業(yè)出版社,2008.
[5]吳仕勇. 基于數(shù)值計算方法的BP神經(jīng)網(wǎng)絡(luò)及遺傳算法的優(yōu)化研究[D].昆明:云南師范大學(xué),,2006.
[6] HAGAN M T, DEMUTH H B, BEALE M H. Neural network design[M]. 北京:機械工業(yè)出版社,,2002.
[7] AARABI P, ZAKY S. Robust sound localization using multi-source audiovisual information fusion[J]. Information Fusion ,2001(2):209-223.
[8] LIN Z, XU B. Sound source localization based on microphone array[J].Electro-acoustic technology,2004(5):19-24.
[9] 余立雪.神經(jīng)網(wǎng)絡(luò)與實例學(xué)習(xí)[M].北京:中國鐵道出版社,1996.