??
本文以第十五屆智能車(chē)競(jìng)賽為背景,介紹了中國(guó)礦業(yè)大學(xué)的聲音信標(biāo)賽題的隊(duì)員的設(shè)計(jì)方案以及調(diào)試結(jié)果。比賽任務(wù)是在比賽場(chǎng)地上固定一定數(shù)量的信標(biāo)燈,響起的信標(biāo)燈會(huì)發(fā)出 250-2000Hz 頻率的 chirp 聲音信號(hào)、95MHz 的 FM 信號(hào)。參賽隊(duì)伍采用四驅(qū)的麥克納姆輪車(chē)模進(jìn)行規(guī)則允許范圍內(nèi)的改裝,小車(chē)定位響起的信標(biāo)燈并進(jìn)入信標(biāo)燈感應(yīng)線圈范圍內(nèi)使信標(biāo)燈切換。本賽題組成員采用了組委會(huì)推出的 H 車(chē)模,使用 Infineon 公司的 Tricore 架構(gòu)的 Aurix 系列單片機(jī),采用了 MAX9814 麥克風(fēng)放大器模塊作為信標(biāo)燈定位的傳感器,通過(guò)硬件 FFT 加速卷積,進(jìn)而把卷積結(jié)果送入神經(jīng)網(wǎng)絡(luò)得到信標(biāo)的方向。通過(guò)調(diào)試,我們實(shí)現(xiàn)了定位滅燈以及避障功能。
關(guān)鍵字:聲音信標(biāo),智能車(chē),避障,聲音定位,神經(jīng)網(wǎng)絡(luò)
?
?
1.1 背景介紹
智能車(chē)比賽從舉辦到現(xiàn)在已經(jīng)經(jīng)歷了十五個(gè)年頭,從一開(kāi)始單一的傳統(tǒng)組到現(xiàn)在形式多樣的各類(lèi)組別。智能車(chē)比賽的規(guī)模也是在不斷地壯大,使越來(lái)越多學(xué)子得到充足的鍛煉,在提升自己的同時(shí),也為國(guó)家科技的進(jìn)步貢獻(xiàn)出了小小的一份力量。
本組為聲音信標(biāo)組,聲音信標(biāo)組在具體的比賽過(guò)程中最值得注意的也是其最大的亮點(diǎn)就是聲音定位的問(wèn)題,在比賽中避免與另一輛車(chē)或者熄滅的信標(biāo)燈產(chǎn)生物理上面的接觸,在鋪有藍(lán)色廣告布的平整場(chǎng)地內(nèi)隨機(jī)安放數(shù)量為五至十五左右的信標(biāo)燈塔,車(chē)模在信標(biāo)的導(dǎo)引下做定向運(yùn)動(dòng)。信標(biāo)內(nèi)部安裝有喇叭,通過(guò)比賽系統(tǒng)控制信標(biāo)燈啟動(dòng)或者關(guān)閉。賽題要求車(chē)??梢酝ㄟ^(guò)麥克風(fēng)傳感器、攝像頭等識(shí)別信標(biāo)進(jìn)行定位,按照比賽控制系統(tǒng)的順序利用磁鐵對(duì)信標(biāo)進(jìn)行滅燈處理。在決賽中,要求兩輛車(chē)模進(jìn)行對(duì)抗,通過(guò)對(duì)比兩車(chē)模滅燈的數(shù)量得出勝負(fù)。
?
1.2 現(xiàn)實(shí)意義
當(dāng)然,實(shí)際的應(yīng)用背景決定了所有科研成果的有效性和實(shí)際性,科技結(jié)合實(shí)際才能發(fā)揮出它自己最大的作用。本賽題不僅趣味性強(qiáng),實(shí)用價(jià)值也同樣很高?,F(xiàn)如今,視覺(jué)定位導(dǎo)航早已成熟,而聲音定位導(dǎo)航卻仍在起步階段。相比于視覺(jué),聲音定位能夠適應(yīng)更加惡劣的環(huán)境。自動(dòng)駕駛的汽車(chē)需要有自主規(guī)劃路徑以及快速安全的避障功能,汽車(chē)時(shí)代背景下,汽車(chē)事故也在日益不斷地上升,如何有效的減少甚至是消除其的發(fā)生,是對(duì)我們比賽任務(wù)的一種考驗(yàn),將其擴(kuò)大,使其升華,更好地為人類(lèi)服務(wù)。因此,本賽題具有很高的科研價(jià)值與實(shí)用價(jià)值。
?
2.1 機(jī)械結(jié)構(gòu)設(shè)計(jì)
我們選用的車(chē)模是 H 車(chē)模。信標(biāo)組的任務(wù)要求車(chē)模具有較好的加減速 和靈活的轉(zhuǎn)彎特性,H 車(chē)使用四個(gè)麥克納姆輪,四個(gè) 380 電機(jī)。為了獲得更好的加減速效果,我們盡量將車(chē)模質(zhì)量做輕、重心降低,在電機(jī)輸出力矩一定時(shí),輕便的車(chē)模將獲得更高的加速度,這是我們機(jī)械設(shè)計(jì)的出發(fā)點(diǎn)。
?
2.1.1 麥克風(fēng)的安裝
麥克風(fēng)我們選用了 MAX9814 麥克風(fēng)放大模塊,一共安裝了四個(gè)麥克風(fēng),排列在邊長(zhǎng) 8cm 的正方形頂點(diǎn)處,并用一塊簡(jiǎn)單的電路板統(tǒng)一固定。車(chē)模運(yùn)行時(shí)會(huì)有噪聲和振動(dòng),從而造成誤判,所以麥克風(fēng)與車(chē)模的連接采用非剛性連接,我們分別運(yùn)用了彈簧與隔音棉來(lái)進(jìn)行減震。另外,實(shí)際調(diào)試車(chē)輛時(shí)發(fā)現(xiàn)麥克風(fēng)陣列并非越大越好,經(jīng)過(guò)實(shí)驗(yàn),發(fā)現(xiàn)對(duì)于本車(chē)的定位方案,8cm 的大小足以滿足。實(shí)際安裝如圖 2.1.1,圖 2.1.2 所示。
▲ 圖 2.1.1 麥克風(fēng)安裝
▲ 圖 2.1.2 麥克風(fēng)安裝側(cè)面
2.1.2 編碼器的安裝
我們選用龍邱生產(chǎn)的 512 線 mini 增量式編碼器,該型號(hào)編碼器體積小、 質(zhì)量輕、穩(wěn)定性好、精度高,輸出型號(hào)類(lèi)型為 CMOS 信號(hào),抗干擾能力強(qiáng)。安裝時(shí)要仔細(xì)調(diào)節(jié)編碼器齒輪與電機(jī)齒輪的嚙合,保證阻尼適中,兩者嚙合太緊會(huì) 增加電機(jī)負(fù)載,太松又會(huì)導(dǎo)致打齒并且影響編碼器測(cè)量精度。實(shí)際安裝如圖 2.1.3 所示。
▲ 圖 2.1.3 編碼器安裝
2.1.3 電池和電路板的安裝
我們車(chē)上有三塊電路板,分別是主控板、驅(qū)動(dòng)板和麥克風(fēng)固定板。電池我們采用香山紅葉 7.4V 鋰電池。為了讓雙向跑的車(chē)模獲得更好的 加速性能和轉(zhuǎn)彎性能,我們把車(chē)的重心放在中間位置,所以電池安放在車(chē)體兩側(cè);主控板和驅(qū)動(dòng)板疊在一起放在底板正中間。電池和電路板安裝如圖 2.1.4,圖 2.1.5 所示。
▲ 圖 2.1.4 電池和電路板安裝
▲ 圖 2.1.5 電池的安裝
2.1.4 避障裝置 ?
車(chē)模在賽場(chǎng)上行駛過(guò)程中很有可能會(huì)和信標(biāo)燈或者對(duì)面車(chē)模等發(fā)生碰撞,車(chē)模在高速行駛時(shí)撞到障礙,會(huì)產(chǎn)生很大的沖擊力,很容易撞壞輪子。所以我一開(kāi)始們用鋁合金制作了車(chē)前后的保護(hù)裝置,設(shè)計(jì)了幾次發(fā)現(xiàn)車(chē)輛仍會(huì)卡在信標(biāo)上。后來(lái)就選用了紅外測(cè)距傳感器模塊來(lái)進(jìn)行避障。使之靠近障礙物時(shí)能夠繞行。
我們采用 4 個(gè)紅外測(cè)距模塊,當(dāng)車(chē)向目標(biāo)燈前進(jìn)時(shí),若距離達(dá)到閾值,則測(cè)距模塊檢測(cè)到避障信息,小車(chē)根據(jù)不同的情況采取斜移或者繞行的方式躲避障礙。安裝方式如圖 2.1.6 所示。
▲ 圖 2.1.6 紅外避障傳感器
2.1.5 減震措施
如果車(chē)體與麥克風(fēng)進(jìn)行剛性連接,那么車(chē)體的振動(dòng)傳遞到麥克風(fēng),降低了信噪比,從而造成誤判,所以我們采用彈簧來(lái)連接車(chē)體與麥克風(fēng)。具體實(shí)驗(yàn)發(fā)現(xiàn)效果很好。彈簧的安裝如圖 2.1.7 所示。
▲ 圖 2.1.7 減震裝置
2.2 硬件電路設(shè)計(jì)
小車(chē)上的電路板通過(guò)電池供電,通過(guò)一系列穩(wěn)壓器分別給 MCU、電機(jī)驅(qū)動(dòng)以及其他外設(shè)傳感器供電,外設(shè)傳感器又通過(guò)信號(hào)線與 MCU 進(jìn)行通訊,使得 MCU 能通過(guò)通訊協(xié)議讀取數(shù)據(jù),寫(xiě)入數(shù)據(jù)。小車(chē)采用了雙核方案,其中 cpu1 負(fù)責(zé)信標(biāo)燈的聲學(xué)定位,cpu0 則負(fù)責(zé)小車(chē)運(yùn)動(dòng)狀態(tài)的控制。元器件的選擇,合理的布局,使得電路板運(yùn)行可靠、穩(wěn)定。
?
2.2.1 主控板
1. 穩(wěn)壓電路
主控板提供 5V 與 3.3V 電源,為核心板與外設(shè)供電。電源電路如圖 2.2.1 所示。5V 穩(wěn)壓電路與 3.3V 穩(wěn)壓電路如圖 2.2.2 所示。
▲ 圖 2.1.1 電源電路 -1
▲ 電源電路 -2
2. 最小系統(tǒng)設(shè)計(jì)
我們選用 TC264DA 作為我們的主控芯片。最小系統(tǒng)包括了一系列濾波電容、復(fù)位電路、兩個(gè)晶振電路以及 JTAG 仿真調(diào)試接口。最小系統(tǒng)的原理圖如圖 2.2.3 所示。主控板 PCB 如圖 2.2.4 所示。
▲ 圖 2.2.3 核心子板
▲ 圖 2.2.4 核心子板 PCB
2.2.2 電機(jī)驅(qū)動(dòng)設(shè)計(jì)
從主控板傳過(guò)來(lái)的 PWM 信號(hào)首先通過(guò) SN74LVC245 緩沖芯片,至 HIP4082 芯片。緩沖芯片的作用在于把主控引腳與驅(qū)動(dòng)電路隔離開(kāi)來(lái),防止驅(qū)動(dòng)板上的電壓電流造成 PWM 口電流倒灌進(jìn)而燒毀引腳。從 SN74LVC245 出來(lái)的驅(qū)動(dòng)信號(hào)通過(guò) HIP4082 驅(qū)動(dòng)芯片實(shí)現(xiàn)了電平的轉(zhuǎn)換,由原來(lái)的 3.3V 電平轉(zhuǎn)換成了 12V 的電平,保證了 LR7843 芯片能快速穩(wěn)定地被驅(qū)動(dòng)。
為了保證驅(qū)動(dòng)能通過(guò)較大電流,對(duì)主要的電機(jī)驅(qū)動(dòng)回路的導(dǎo)線進(jìn)行了加粗、開(kāi)窗以及加錫處理。電機(jī)驅(qū)動(dòng)原理圖如圖 2.2.5 所示,PCB 圖如圖 2.2.6 所示。
▲ 圖 2.2.5 電機(jī)驅(qū)動(dòng) SCH
▲ 圖 2.2.6 電機(jī)驅(qū)動(dòng) PCB
?
?
3.1 程序結(jié)構(gòu)設(shè)計(jì)
輸出期望速度傳給速度控制器,開(kāi)始控制小車(chē)沿著外切信標(biāo)燈的路徑接近信標(biāo),直至將它熄滅。然后控制轉(zhuǎn)向,小車(chē)以圓弧軌跡再次尋找下一個(gè)信標(biāo)燈,同時(shí) cpu1 以 50Hz 的頻率來(lái)判斷障礙物距離并進(jìn)行避障。
?
3.1.1.cpu1 程序結(jié)構(gòu)
基本程序結(jié)構(gòu)流程圖如圖 5-1 所示。雖然采用的是雙內(nèi)核方案,可是在對(duì)小車(chē)進(jìn)行控制的時(shí)候,還是 cpu1 中的處理器發(fā)出控制信號(hào),cpu0 只起到車(chē)模速度控制的作用。在程序循環(huán)運(yùn)行的首端,必須首先檢測(cè)障礙物信息。障礙物的檢測(cè)的優(yōu)先級(jí)別是最高的,因?yàn)樾≤?chē)的安全性需要保證,而障礙物可能會(huì)造成小車(chē)的意外車(chē)禍,嚴(yán)重的會(huì)導(dǎo)致比賽失敗。若發(fā)現(xiàn)障礙物,應(yīng)該先躲避障礙物,待遠(yuǎn)離危險(xiǎn)障礙物之后再執(zhí)行滅燈任務(wù)。
?
3.1.2.cpu0 程序結(jié)構(gòu)
Cpu0 的任務(wù)是接受 cpu1 的數(shù)據(jù)并輸出 pwm 給電機(jī)驅(qū)動(dòng)板。同時(shí) cpu0 也執(zhí)行了底層驅(qū)動(dòng)函數(shù)。我們把麥輪的運(yùn)動(dòng)分解為前進(jìn)、后退、左移、右移、左轉(zhuǎn)、右轉(zhuǎn)六個(gè)基礎(chǔ)運(yùn)動(dòng),復(fù)雜的運(yùn)動(dòng)由這六個(gè)運(yùn)動(dòng)線性疊加而成。
?
3.2 廣義互相關(guān)
參考論文《基于麥克風(fēng)陣列的移動(dòng)機(jī)器人聽(tīng)覺(jué)定位方法研究》(docin.com/p-1010824793-f3.html),在現(xiàn)有平滑相關(guān)變換(SCOT)加權(quán)及互功率譜(CSP)加權(quán)的基礎(chǔ)上,融合 SCOT 及 CSP 廣義互相關(guān)方案,實(shí)現(xiàn)聲學(xué)定位導(dǎo)航。
?
3.3 神經(jīng)網(wǎng)絡(luò)
通過(guò)廣義互相關(guān),可以得到 8 個(gè)或者 16 個(gè)方向,但是由于數(shù)據(jù)的誤差及錯(cuò)誤等,造成了方向的誤判,如果只是單純的用加權(quán)或者濾波來(lái)剔除異常數(shù)據(jù),會(huì)造成判斷方向的時(shí)間變長(zhǎng),從而使車(chē)體的實(shí)時(shí)性降低??紤]到每次進(jìn)行互相關(guān)判斷方向會(huì)出 4 個(gè)或者 6 個(gè)數(shù)據(jù),其中只有一兩個(gè)數(shù)據(jù)發(fā)生錯(cuò)誤,所以還是能夠從中判斷出方向的。但是一般的加權(quán)函數(shù)難以滿足需求。同時(shí)復(fù)雜的加權(quán)函數(shù)又會(huì)造成調(diào)參工作量。因此我們決定采用神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練,達(dá)到自動(dòng)調(diào)參的目的。對(duì)于方向的判斷正確率有了很大的提升。
附錄 B 為一部分神經(jīng)網(wǎng)絡(luò)訓(xùn)練的源碼。
?
4.1 實(shí)驗(yàn)與調(diào)試
在調(diào)試過(guò)程中,我們發(fā)現(xiàn)噪音和振動(dòng)產(chǎn)生的影響很大,經(jīng)常導(dǎo)致小車(chē)誤判,并且隨著小車(chē)速度的提高,車(chē)輪轉(zhuǎn)速也會(huì)提高,相應(yīng)地齒輪及麥輪的噪音也會(huì)提高。因此小車(chē)速度變快也就對(duì)應(yīng)著判斷信標(biāo)方位準(zhǔn)確度的下降。我們對(duì)此的解決方案是將小車(chē)與麥克風(fēng)之間的剛性連接換成了彈簧,也就是 2.1.5 中提到的減震措施,應(yīng)用后效果很好,在小車(chē)速度提升的同時(shí),判斷信標(biāo)方向的準(zhǔn)確度并沒(méi)有下降。至于麥輪噪聲的影響,我們考慮過(guò)用車(chē)輪罩將麥輪罩起來(lái)以達(dá)到降低噪聲的目的,但實(shí)際應(yīng)用過(guò)程中發(fā)現(xiàn)效果并沒(méi)有想象中那么好,還使小車(chē)變得更加笨重,最終并沒(méi)有采用,因此,麥輪噪音這一問(wèn)題仍是我們的優(yōu)化方向之一。
而在我們最初使用神經(jīng)網(wǎng)絡(luò)自動(dòng)調(diào)參時(shí),小車(chē)運(yùn)行過(guò)程中效果并沒(méi)有很好,在多次嘗試后,發(fā)現(xiàn)是程序中數(shù)據(jù)歸一化函數(shù)的問(wèn)題,更正了之后速度及準(zhǔn)確度都有了很大的提升。我們最初采用的避障函數(shù)會(huì)來(lái)不及避障導(dǎo)致小車(chē)卡在信標(biāo)上或者小車(chē)一直避障,在這類(lèi)問(wèn)題上經(jīng)常耗費(fèi)大量時(shí)間,使得成績(jī)不理想,我們發(fā)現(xiàn)這一問(wèn)題后,又嘗試了很多不一樣的避障方式,最終選擇了最適合我們小車(chē)結(jié)構(gòu)的避障方案。
?
在這接近一年的比賽準(zhǔn)備中,我們憑著自己的興趣愛(ài)好,努力地學(xué)習(xí),不斷攻克一個(gè)個(gè)難關(guān)。智能小車(chē)從不能跑到能動(dòng),從無(wú)法定位到定位準(zhǔn)確,從龜速到高速,從"智障小車(chē)"到能靈敏地躲避障礙物的智能小車(chē),我們一步一個(gè)腳印,不斷完善機(jī)械結(jié)構(gòu),硬件電路以及軟件結(jié)構(gòu)框架,嘗試多種方案以找到最優(yōu)方案,適應(yīng)不同的場(chǎng)地、燈序。在這個(gè)過(guò)程中,我們獲得了友誼,結(jié)識(shí)了尊敬的老師們,學(xué)習(xí)到了知識(shí),積累了經(jīng)驗(yàn),這將會(huì)是我們大學(xué)中最珍貴的財(cái)富。
而我們?cè)谡{(diào)試過(guò)程中,同樣也發(fā)現(xiàn)了一些還未解決的問(wèn)題,包括麥輪噪音以及信標(biāo)的邊緣正好卡住輪子等,同時(shí)當(dāng)前彈簧減震方案并不能很好的過(guò)濾大幅振動(dòng),這是我們還需努力的地方。
總之,在接下來(lái)的時(shí)間里,我們將不斷地改進(jìn)方案,完善策略,以達(dá)到更好的效果。這場(chǎng)競(jìng)賽將會(huì)成為我們難以忘記的共同奮斗的回憶,我們也不會(huì)停下奮斗的腳步。
?
參考文獻(xiàn)
[1] ? 何蒙 . 基于麥克風(fēng)陣列的移動(dòng)機(jī)器人聽(tīng)覺(jué)定位方法研究 . 河北工業(yè)大學(xué) .2010
[2] ? 于瀚 . 寬帶信號(hào)時(shí)延估計(jì)的不補(bǔ)零頻域相關(guān)算法 . 聲學(xué)與電子工程 .1988
[3] ?李啟虎 . 聲納信號(hào)處理引論 . 海洋出版社 .2000
[4] ?張大煒 . 一種新的級(jí)聯(lián) FFT 算法 . 船舶科學(xué)技術(shù) .2016
[5] ?李啟虎 . 聲納信號(hào)處理引論 . 海洋出版社 .2000