蘇寧馨,張自強,余浩
(安徽新華學院電子通信工程學院,安徽合肥230081)
近年來隨著人工智能,汽車制造以及通信技術(shù)的交織融合,使得導航系統(tǒng)的智能化成為行業(yè)發(fā)展的必然趨勢。智能車與四旋翼飛行器相融合的導航避障系統(tǒng)的設(shè)計也成為現(xiàn)如今行業(yè)技術(shù)研究的重要目標和方向,較之傳統(tǒng)行業(yè)中智能車獨立導航避障系統(tǒng),與四旋翼飛行器相融合后,無疑擴大了航線視野的范圍和廣度,同時也揭開了空中與地面相結(jié)合的導航避障設(shè)計的新局面和新思路。目前國內(nèi)外對四旋翼飛行器機械結(jié)構(gòu),飛行模式以及智能車自動導航避障問題的研究已取得了較為豐富的成果,本系統(tǒng)設(shè)計中融合了兩者的發(fā)展優(yōu)勢,在未來導航避障的應(yīng)用領(lǐng)域上必然帶來新的突破[1]。
智能車四旋翼導航系統(tǒng)的設(shè)計主體主要包括:智能車和四旋翼飛行器兩大部分:(1)飛行器部分采用大疆精靈飛行器,并搭載STM32F767IGT圖像處理單元作為飛行器平臺的主要核心模塊。(2)智能車部分則采用新CI車模,并使用32位微控制器MK60FX512VLQ15作為核心控制單元,同時結(jié)合速度編碼器、紅外超聲波測距、陀螺儀、電機、陀機等其他硬件部分,共同構(gòu)造智能車部分[2]。系統(tǒng)總體設(shè)計框圖如圖1所示。
系統(tǒng)工作原理是:系統(tǒng)空中部分先是通過四旋翼飛行器上安裝的紅外攝像頭MT9V032采集路面信息,經(jīng)STM32F767圖像處理單元進行數(shù)據(jù)處理,使用NRF2.4G無線通訊模塊傳輸至智能車。智能車在接收了飛行器平臺數(shù)據(jù)后,進行陀螺儀角度采集和計算、紅外超聲波避障計算、電機驅(qū)動輸出等系統(tǒng)控制流程,實現(xiàn)一套具有識別目標位置,自主路徑規(guī)劃,行駛速度合理選擇的導航及避障系統(tǒng)的設(shè)計[2]。
圖1 系統(tǒng)總體設(shè)計框圖
NRF24L01無線傳感模塊是系統(tǒng)無線數(shù)據(jù)傳輸和接受的重要橋梁,是聯(lián)系空中和地面數(shù)據(jù)通信的重要紐帶,也是區(qū)別傳統(tǒng)單車導航避障系統(tǒng)設(shè)計的一大特色。在飛行器平臺和智能車模塊中都需要使用。NRF24L01無線傳感模塊在本系統(tǒng)中接收和傳輸數(shù)據(jù)的主要工作流程是:當飛行平臺將空中采集的圖像信息進行數(shù)據(jù)轉(zhuǎn)換后,通過NRF24L01發(fā)射給小車時,需要先將飛行器平臺上的NRF24L01配置為發(fā)射模式,接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序,由SPI口寫入NRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可。小車上安裝的NRF24L01無線模塊這時則設(shè)置成接受模式,接收空中NRF24L01模塊發(fā)來的信息,傳輸給小車的主控制單元MK60FX512VLQ15,并進行后續(xù)的數(shù)據(jù)處理。NRF24L01無線傳輸模塊的電路圖如圖2所示。
2.2.1 STM32F767 核心處理器
飛行平臺上使用的STM32F767核心板,其板載資源十分豐富,能夠獨立使用并應(yīng)用在不同領(lǐng)域的電子自動化設(shè)計中。其主頻達到216MHZ,并配有dcmi接口,可以提高采集效率。STM32F767核心板的性能穩(wěn)定,接口豐富,設(shè)計靈活,其采用4層板設(shè)計,單獨地層和電源層,傳輸和處理數(shù)據(jù)速度快,穩(wěn)定性高,運行可靠。在本系統(tǒng)設(shè)計中其主要承擔的任務(wù)是:在飛行平臺上,處理來自紅外攝像頭MT9V032采集的路面圖像數(shù)據(jù),并結(jié)合NRF24L01無線傳感模塊,將數(shù)據(jù)傳輸給地面的智能車。STM32F767核心板如圖3所示。
圖2 NRF24L01無線收發(fā)模塊
圖3 STM32F767核心板
2.2.2 四旋翼飛行器設(shè)計
四旋翼飛行平臺上的模塊主要有攝像頭數(shù)據(jù)采集、處理和無線傳輸單元。設(shè)計中飛行器平臺的圖像采集和處理模塊對整個導航避障系統(tǒng)工作的穩(wěn)定性和高效性起著重要的影響[3]。設(shè)計過程中綜合對比后采用了STM32F7+紅外廣角攝像頭MT9V032攝像頭的方案。
飛行器上采用紅外廣角攝像頭,其加入的紅外濾光片,既能夠減少自然光的干擾,減小誤判;又能夠提高分辨率,以保證飛行平臺能夠采集并傳輸最為優(yōu)質(zhì)的圖像畫面及數(shù)據(jù)分析。本系統(tǒng)中飛行平臺圖像處理主控板設(shè)計如圖4所示。
2.3.1 MK60FX512VLQ15 微處理器
MK60FX512VLQ15現(xiàn)如今是K60系列微控制器中應(yīng)用最為廣泛的一款芯片。它具有豐富的模擬、通信、定時和控制外設(shè)。這款微處理器能夠提供可選的單精度浮點單元、NAND閃存控制器和DRAM控制器,很多引腳都是功能復(fù)用引腳。在系統(tǒng)智能車平臺的設(shè)計中,我們將其選為主控制單元使用,它將結(jié)合NRF2.4G無線通訊模塊,速度傳感器、車模角度傳感器、測距傳感器等電路,完成一系列的數(shù)據(jù)傳輸及處理工作,最終控制智能車實現(xiàn)導航,避障功能。智能車中使用的MK60FX512VLQ15核心板如圖5所示。
圖4 飛行平臺圖像處理主控板設(shè)計
圖5 MK60FX512VLQ15核心板
2.3.2 智能車平臺設(shè)計
系統(tǒng)智能車模塊主要完成航線行駛和避障兩項任務(wù),平臺主要有主控制板和電機驅(qū)動板。為了減小電機驅(qū)動電路帶來的干擾,設(shè)計中將控制部分和電機驅(qū)動分開來完成。主控制板上主要完成信號采集、處理和電機控制作用[4]。系統(tǒng)智能車部分主要包括:電源穩(wěn)壓電路、NRF24L01無線接口電路、速度編碼器電路、電機驅(qū)動電路等。結(jié)合各模塊電路的設(shè)計后,智能車硬件完成實物如圖6所示。
智能車模塊中的傳感器部分是系統(tǒng)實現(xiàn)導航避障功能的重要保障。智能車傳感器的分布根據(jù)車模結(jié)構(gòu)及機械結(jié)構(gòu)理論分析,結(jié)合系統(tǒng)實際需求而定,主要包括:速度傳感器、車模角度傳感器、測距傳感器等。速度編碼器我們采用了M-T3D2512線編碼器模塊,在系統(tǒng)工作中主要控制和反應(yīng)電機的轉(zhuǎn)速。L3G4200D三軸數(shù)字陀螺儀傳感器模塊用于測量智能車的角速度,以判斷車的運動狀態(tài),從而為智能車制定出較優(yōu)的路徑規(guī)劃。防陀螺儀電路如圖7所示。
圖6 智能車硬件設(shè)計實物圖
圖7 陀螺儀電路
系統(tǒng)測距和避障模塊采用了三個超聲波與兩個GP2Y0A21YK0F紅外測距傳感器。紅外模塊檢測距離時,電壓將會發(fā)生明顯變化,通過模數(shù)轉(zhuǎn)換后將數(shù)據(jù)傳輸給主控芯片進行處理分析,以便小車識別障礙物及距離。考慮到如果行駛區(qū)域不平整或者檢測到點亮的信標燈時,信標燈的光源對紅外對管有一定的干擾,在系統(tǒng)中又添加了超聲波模塊輔助檢測,以減少和排除干擾[3]。
電機驅(qū)動使用的是全橋式MOS管驅(qū)動集成電路,IR7843理論允許最大電流為161A,完全可以滿足智能車設(shè)計電機的正轉(zhuǎn)、反轉(zhuǎn)等基本操作。電機驅(qū)動電路如圖8所示。
圖8 電機驅(qū)動電路
高效精良的軟件設(shè)計是系統(tǒng)平穩(wěn)運行的基礎(chǔ)。智能車四旋翼導航避障系統(tǒng)中飛行器平臺采用的是紅外廣角攝像頭MT9V032采集路面圖像信息,圖像采集及校正處理就成了軟件設(shè)計的核心內(nèi)容,設(shè)計過程中這部分工作主要采用Matlab軟件進行圖像校正工作。系統(tǒng)導航避障功能的整個程序設(shè)計開發(fā)是在IAR Embedded Workbench IDE下進行。系統(tǒng)軟件設(shè)計部分主要分為如下幾個方面。
3.1.1 原始圖像的采集和校正
飛行平臺利用廣角攝像頭MT9V032提取的圖像信息主要包括:目標中心點坐標、車頭目標中心點坐標以及車尾中心點坐標。系統(tǒng)圖像采集時會出現(xiàn)邊緣雜點、邊緣線,光線、遠處圖像不清楚以及圖像變形等問題;除此之外使用的廣角攝像頭也會造成圖像產(chǎn)生的桶形失真相對嚴重,并且沿著鏡頭半徑方向向邊緣移動,畸變越來越嚴重,這使得攝像頭看到的信息不真實。
為了解決上述問題,系統(tǒng)利用了Matlab軟件進行圖像校正。攝像頭采集的原始圖像是一個二維數(shù)據(jù)矩陣,矩陣的每一個元素對應(yīng)一個像素點。由于桶形變換要操作每一個像素點,運算數(shù)據(jù)龐大,在軟件設(shè)計中使用Matlab生成了一份桶形畸變校正表,主控制芯片只要查表找點即可,節(jié)約了大量時間,處理完的圖像更加趨向于真實情況,圖像處理實測前后對比如圖9所示。
圖9 攝像頭采集的原始圖像(左)與變換后的圖像(右)對比
3.1.2 目標識別
目標識別方面通過STM32F767核心處理器尋找每一行的白色區(qū)域(即目標區(qū)域)的中心點及長度,然后與上一行的白色區(qū)域比較是否為同一區(qū)域,如果“是”便累加長度,中心點求平均,如果“否”便創(chuàng)立新的目標區(qū)域。這樣逐行掃描下去直到結(jié)束,為了提高掃描速度,設(shè)計中將逐行掃描更改為跳躍式掃描,只需要掃描原始圖像的一半數(shù)據(jù)量,減少了一半的掃描時間,同時又濾除了一些孤立的雜點[5]。目標識別流程圖如圖10所示。
圖10 目標識別流程圖
3.1.3 路徑規(guī)劃
小車在完成了識別目標之后,能否以最短的時間到達目標位置,與小車的速度和路徑都有著密切的關(guān)系,因此,以一個最合理、最高效的路徑完成行駛是最為關(guān)鍵的。對于路徑的優(yōu)化,我們從以下兩個方面來完成:一是增加視場的長度和寬度。根據(jù)實驗分析,當飛行器飛得較高,采集到的圖像視場較寬廣時,通過攝像頭采集到的目標圖像產(chǎn)生的畸變較小,小車會以一個比較好的路徑駛向目標;二是相對角度處理。飛機平臺在采集圖像信息處理并傳輸給小車時,采集到的信息只是三個從小到大排序的坐標信息,以及檢測到目標的數(shù)量信息。小車通過判斷最小的信標與另外兩個信標的距離,判斷哪個是信標燈,哪個是車頭,然后算出車尾與車頭相對圖像的角度以及車尾與信標燈相對圖像的角度,并將兩個角度作差處理,然后?。?80到+180度范圍,從而算出小車與信標的角度差。
在智能車的轉(zhuǎn)向和速度控制方面使用了經(jīng)典的PID控制算法,并配合理論計算和實際參數(shù)補償?shù)霓k法,使智能車能夠穩(wěn)定快速行駛并避障。根據(jù)舵機和電機工作內(nèi)容不同,分別加以說明。法
3.2.1 舵機控制算法
系統(tǒng)中利用攝像頭采集到的圖像數(shù)據(jù),計算出來的角度是存在一定的偏差,在數(shù)據(jù)計算時采用將車模位置分段,由于舵機存在比較大的滯后,采用了PD進行閉環(huán),讓舵機可以更快的響應(yīng),在轉(zhuǎn)向時,根據(jù)不同的偏差,給定不同的kp值和τ值[6-7]。PD算法參考公式1所示。
3.2.2 電機控制算法
小車行駛途中,根據(jù)不同的路況,攝像頭采集到的圖像和計算出來的每個角度的偏差是不同的,實際設(shè)計過程中可以根據(jù)不同的偏差,將路況進行分段考慮,以給定適合的速度。車頭朝向信標偏差很小時,可以給一個較快的速度,使小車在直道上加速;當偏差越來越大時,適當?shù)慕档托≤嚨乃俣?,以便讓小車完成避障或轉(zhuǎn)彎的工作。在電機控制算法中使用了PID算法進行閉環(huán),具體算法公式參考公式(2),在多次實驗觀測中不斷改變kp、τ和Ti,以使小車行駛速度根據(jù)路況達到最優(yōu)狀況[6-7]。
在系統(tǒng)的實現(xiàn)中,采用在路面放置不同的信標小燈,每點亮一個小燈,就告知小車目標位置,在對避障功能的驗證中,把暫時不點亮的信標燈作為小車運動過程中的阻礙,這種做法還能夠檢測小車對光感的適應(yīng)能力和反應(yīng)速度。下面分別介紹系統(tǒng)的實驗結(jié)果:
在實驗場地上,放置了3個信標小燈,其中點亮的小燈作為目標燈,小車會根據(jù)飛行器傳輸過來的數(shù)據(jù)進行目標識別路徑規(guī)劃,朝著信標燈行駛。同時智能車還可以通過路面信息,調(diào)整速度,以區(qū)別直道和彎道的行使狀態(tài),如圖11和圖12所示。
圖11 智能車識別目標進行路徑規(guī)劃
圖12 智能車逐漸駛向目標完成系統(tǒng)導航
在完成第一盞燈的目標識別后,將其熄滅,并改變亮燈的位置,點亮最左邊的小燈,而中間的信標燈則看為障礙物,系統(tǒng)會通過目標識別和計算路徑,自動完成避障并駛向新的目標燈,如圖13和圖14所示。
圖13 智能車識別新的目標
圖14 智能車成功避障駛向新信標位置
智能車與四旋翼飛行器相融合的導航避障系統(tǒng),硬件部分采用MK60FX512VLQ15微控制器作為智能車主控制單元,STM32F767IGT作為飛行平臺圖像處理單元,并結(jié)合NRF24L01無線傳輸模塊,紅外線超聲波傳感模塊,舵機控制模塊,電機驅(qū)動模塊等關(guān)鍵電路,共同完成系統(tǒng)核心電路的設(shè)計[8]。軟件設(shè)計部分利用Matlab軟件對原始圖像進行了處理和校正,整個程序設(shè)計開發(fā)在 IAR Embedded Workbench IDE下進行,智能車的轉(zhuǎn)向和速度控制方面,利用了經(jīng)典PID控制算法,并配合理論計算和實際參數(shù)補償?shù)霓k法。系統(tǒng)在完成調(diào)試和測試之后,運行平穩(wěn)靈活,導航避障功能完整實現(xiàn)。該系統(tǒng)的設(shè)計方案和實現(xiàn)成果獲得了2017年第十二屆全國大學生“恩智浦”杯智能汽車競賽中,創(chuàng)意組國賽一等獎的驕人成績。