雷楊,趙玉榮,王亓劍,張自強(qiáng)
(安徽新華學(xué)院電子通信工程學(xué)院,安徽合肥,230088)
導(dǎo)航系統(tǒng)對(duì)自動(dòng)駕駛的重要性日益凸顯,車輛導(dǎo)航系統(tǒng)不僅可以確定車輛的最優(yōu)路徑,而且可以實(shí)時(shí)監(jiān)測(cè)車輛的速度和加速度。該智能車導(dǎo)航系統(tǒng)使用視覺導(dǎo)航圖像傳感器獲取路徑信息,再傳輸?shù)教幚砥髦羞M(jìn)行處理,對(duì)信息圖像進(jìn)行二值化,根據(jù)小車與目標(biāo)的位置,求得相對(duì)位置的偏移角度,并傳送給車體。車體再將接收到的圖像信息與陀螺儀獲取的數(shù)據(jù)相結(jié)合,控制轉(zhuǎn)向;速度傳感器獲取實(shí)時(shí)速度,采用增量式PID實(shí)現(xiàn)對(duì)電機(jī)的閉環(huán)控制,最終實(shí)現(xiàn)一套自主路徑規(guī)劃導(dǎo)航控制系統(tǒng)[1]。
整個(gè)系統(tǒng)主要由圖像采集平臺(tái)和智能車平臺(tái)兩個(gè)部分組成。圖像采集平臺(tái)主要實(shí)現(xiàn)攝像頭數(shù)據(jù)的采集、處理和無線傳輸系統(tǒng),智能車平臺(tái)主要有K60單片機(jī)最小系統(tǒng)、避障模塊、電機(jī)驅(qū)動(dòng)模塊、無線傳輸模塊、陀螺儀模塊等組成??傮w設(shè)計(jì)結(jié)構(gòu)框如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)方案
圖像采集主控芯片采用STM32F767。其體積小,性能穩(wěn)定,具有ARM32位Cortex-M7高性能CPU,工作頻率高達(dá)216MHZ,內(nèi)嵌1024KB的高速FLASH閃存程序存儲(chǔ)容量。具有睡眠、待機(jī)和關(guān)機(jī)三種模式使其具備較低的功耗;芯片有2個(gè)數(shù)模轉(zhuǎn)換器,多達(dá)132個(gè)快速I/O端口且所有端口均支持5V信號(hào),同時(shí)具備兩個(gè)支持SMBus/PMBus的I2C接口、8個(gè)USART接口、6個(gè)18M位/秒的SPI接口、CAN接口和MicroUSB接口。核心板內(nèi)部資源豐富,各模塊相對(duì)獨(dú)立[2]。將攝像頭采集來的圖像數(shù)據(jù),通過NRF24L01無線傳感模塊傳輸給地面的智能車。
圖像采集對(duì)小車導(dǎo)航避障系統(tǒng)工作的穩(wěn)定性和高效性起著重要的影響。設(shè)計(jì)過程中綜合對(duì)比后采用了紅外廣角攝像頭MT9V032。MT9V032具有感光面積大、高動(dòng)態(tài)性能、自動(dòng)曝光、幀率可調(diào)等諸多優(yōu)點(diǎn)。
紅外攝像頭主要通過檢測(cè)智能車車身前后安裝的兩個(gè)大小不同的紅外圓形標(biāo)記點(diǎn)來確定小車的坐標(biāo)和車身角度信息。為此攝像頭加裝了850nm紅外窄帶濾光片,既能夠減少自然光的干擾減小誤判,又能更正廣角鏡頭產(chǎn)生的畸變,保證圖像畫面的清晰度。攝像頭排除其他光線的干擾只采集信標(biāo)發(fā)射出的紅光與紅外光,增強(qiáng)了攝像頭識(shí)別系統(tǒng)的抗干擾性和魯棒性。
MK60FX512VLQ15是智能車的主控芯片,該芯片是王者系列K60FX核心板,內(nèi)核為ARM-CORTEX-M4,主頻150MHz,1M的FLASH,128K的SRAM,內(nèi)置高分辨率的高速16位模擬轉(zhuǎn)換器ADC和2個(gè)12位數(shù)模轉(zhuǎn)換器DAC。16個(gè)DMA通道,用于外設(shè)和寄存器,實(shí)現(xiàn)數(shù)據(jù)的快速吞吐。此外MK60FX512VLQ15還具有豐富的模擬外設(shè),包括3個(gè)SPI模塊,2個(gè)I2C,UART,CAN總線,USB接口等。
智能車平臺(tái)主要由主控制器和驅(qū)動(dòng)電路組成。主板具有信號(hào)采集、處理和電機(jī)控制單元。同時(shí),為了減少電機(jī)驅(qū)動(dòng)電路的干擾,將控制部分和電機(jī)驅(qū)動(dòng)分開。車身整體硬件包括超聲波紅外測(cè)距模塊、角度傳感器、速度傳感器、NRF24L01無線通信模塊等。通過測(cè)距傳感器對(duì)車體周圍信息進(jìn)行檢測(cè),獲取路況中障礙物的距離信息,確保避障系統(tǒng)的穩(wěn)定運(yùn)行,車身頭部和尾部還配備了兩塊圓形紅外LED燈盤,一大一小供紅外攝像頭檢測(cè),通過測(cè)算兩紅外的坐標(biāo)并進(jìn)行大小比較和兩坐標(biāo)的斜角計(jì)算,就能確定車模的整體位置和角度信息,最終在各個(gè)模塊的配合下實(shí)現(xiàn)了一套能夠識(shí)別信標(biāo)位置自主路徑規(guī)劃,并且可以實(shí)時(shí)輸出車體狀態(tài)的智能車導(dǎo)航控制系統(tǒng)。
智能車導(dǎo)航系統(tǒng)設(shè)計(jì)主要分圖像識(shí)別系統(tǒng)和智能車控制系統(tǒng),首先智能車先通過攝像頭采集路面信息進(jìn)行坐標(biāo)計(jì)算,圖像采集時(shí)可能會(huì)出現(xiàn)邊緣雜點(diǎn)、邊緣線,遠(yuǎn)景圖像模糊、變形等問題,造成圖片信息不真實(shí),這就需要利用Matlab來校正圖像,圖像校正后在確定采集到三個(gè)發(fā)光源后,計(jì)算出偏移角,再將采集分析后的數(shù)據(jù)發(fā)送給智能車。智能車控制系統(tǒng)根據(jù)接收到的數(shù)據(jù)后執(zhí)行相應(yīng)的操作,例如前后車燈的亮滅控制、舵機(jī)打角計(jì)算及電機(jī)的正反轉(zhuǎn)。系統(tǒng)整體軟件設(shè)計(jì)流程如圖2所示。
圖2 整體設(shè)計(jì)流程圖
攝像頭在拍攝圖像時(shí),由于鏡頭的特點(diǎn)(凸透鏡會(huì)聚光、凹透鏡發(fā)散光),其成像過程是對(duì)真實(shí)鏡像的一種透視失真,智能車采用的是170°廣角攝像頭,圖像產(chǎn)生的桶形失真相對(duì)嚴(yán)重,沿著鏡頭半徑方向向邊緣移動(dòng)畸變會(huì)越來越嚴(yán)重。本設(shè)計(jì)利用棋盤式方格進(jìn)行測(cè)量,創(chuàng)建函數(shù)矯正桶形畸變還原真實(shí)賽道信息。筒體變形的數(shù)學(xué)模型參考公式(1)。
原始圖像是一個(gè)二維數(shù)據(jù)矩陣,每個(gè)元素對(duì)應(yīng)一個(gè)像素,計(jì)算量較大,可以利用Matlab仿真生成桶形畸變校正表,主控芯片只要查表找點(diǎn)即可。
攝像頭采集到圖像后,圖像采集平臺(tái)對(duì)變換后的圖像按行跳躍式掃描,只掃描原始圖像的一半像素點(diǎn),縮短掃描時(shí)間,基本思想如下:
(1)根據(jù)設(shè)定的閾值提取黑白跳躍點(diǎn),按照掃描出連續(xù)目標(biāo)區(qū)域的個(gè)數(shù),記錄每個(gè)區(qū)域的長(zhǎng)度和中心點(diǎn)坐標(biāo);
(2)利用賽道的連續(xù)性,根據(jù)上一行白塊中心的位置來確定本行的白塊與上一行白塊區(qū)域是否為同一區(qū)域,如果是便累加長(zhǎng)度作為白塊面積,不是便建立新的白塊區(qū)域;
(3)整幅圖像掃描完成后對(duì)前三個(gè)白塊區(qū)域的各行中點(diǎn)求平均值,采集到的白塊區(qū)域超過三個(gè)便識(shí)別錯(cuò)誤舍去;
(4)比較三個(gè)白塊的像素面積并重新排序,連同識(shí)別的目標(biāo)數(shù)量按從小到大的順序一起發(fā)給小車;
(5)智能車根據(jù)白塊大小來確定信標(biāo)、車頭與頭尾,其中面積最小的為車尾,再拿車尾的燈與另外兩個(gè)燈的距離作比較,較遠(yuǎn)的為信標(biāo),較近的便是車頭。
目標(biāo)識(shí)別后小車需要以最快的速度準(zhǔn)確的到達(dá)目的地,這就需要對(duì)路徑進(jìn)行優(yōu)化,路徑優(yōu)化主要考慮以下三個(gè)方面:
(1)增加小車視場(chǎng)的長(zhǎng)度和寬度
當(dāng)采集到的圖像略大于整個(gè)賽道時(shí),攝像頭采集到的目標(biāo)畸變較小,此時(shí)小車會(huì)選擇一個(gè)較好的路徑快速滅掉信標(biāo)且不出攝像頭視野;相反,如果視場(chǎng)無法覆蓋整個(gè)賽道,小車很容易沖出賽道檢測(cè)不到信標(biāo)位置。雖然增大視場(chǎng)可以減少失真但提高了分辨率的要求,所以本設(shè)計(jì)采用STM32F767主控制器,其自帶攝像頭接口,方便操作。為了增加視場(chǎng)的寬度和每行采集的圖像點(diǎn)數(shù),攝像頭使用廣角鏡頭來有效地增加視場(chǎng)的寬度。既滿足圖像采集的要求,又增加了單片機(jī)處理的圖像行數(shù),最終處理行數(shù)為240行。
(2)相對(duì)角度處理
圖像采集平臺(tái)將采集到的坐標(biāo)信息按從小到大進(jìn)行排序,并將其與檢測(cè)到目標(biāo)數(shù)量一同發(fā)給小車,小車在接收到數(shù)據(jù)后會(huì)比較最小的信標(biāo)與另外兩個(gè)信標(biāo)的距離,通過距離大小來區(qū)別信標(biāo)燈和車頭。最后分別算出車尾與車頭,車尾與信標(biāo)燈相對(duì)圖像的角度,兩個(gè)角度相減便得到小車與信標(biāo)燈的角度差。
(3)切向滅燈與避障
行駛過程中小車速度較快,為了避免小車撞上信標(biāo),在足夠靠近信標(biāo)時(shí),讓小車與信標(biāo)形成一個(gè)切向角度沖過去。外界光線結(jié)合賽道地面材料的反光容易對(duì)攝像頭造成干擾,影響采集數(shù)據(jù)的準(zhǔn)確性,容易造成碰撞因此車前裝有三個(gè)超聲波模塊和兩個(gè)GP2Y0A21YK0F 紅外測(cè)距傳感器,再通過模數(shù)轉(zhuǎn)換將數(shù)據(jù)發(fā)送給小車,可能的排除干擾。
為了驗(yàn)證該智能車導(dǎo)航系統(tǒng)定位的效果,在室內(nèi)選擇了一塊較為空曠的場(chǎng)地,并在空地上方安裝了圖像采集平臺(tái),地面鋪設(shè)了可發(fā)射紅外光的信標(biāo)供攝像頭識(shí)別,信標(biāo)鋪設(shè)的位置預(yù)先經(jīng)過測(cè)量,布設(shè)在鏡頭邊緣等畸變嚴(yán)重、識(shí)別難度較高的區(qū)域,并在鏡頭視野內(nèi)擺放了一些雜物干擾智能車的行駛路徑。
實(shí)驗(yàn)表明,小車會(huì)根據(jù)傳輸過來的圖像信息對(duì)亮著的信標(biāo)燈進(jìn)行目標(biāo)識(shí)別并且規(guī)劃路徑,向著目標(biāo)燈行駛過去。同時(shí)根據(jù)路面以及環(huán)境信息,電機(jī)會(huì)根據(jù)控制算法自動(dòng)調(diào)整速度。在第一盞燈被滅掉之后,在下一盞燈與現(xiàn)處的位置之間放置隨意一物體當(dāng)作障礙,小車會(huì)自動(dòng)完成避障功能并且駛向下一個(gè)目標(biāo)區(qū)。
本文從總體硬件結(jié)構(gòu)和系統(tǒng)軟件設(shè)計(jì)兩方面分析了智能車輛的視覺定位與導(dǎo)航技術(shù)。將視覺傳感器與車身分離出來,使之視角更為廣闊,對(duì)于控制地面車輛的行駛具有更高的前瞻性。該系統(tǒng)設(shè)計(jì)可以讓智能車在GPS覆蓋不到的區(qū)域能夠感應(yīng)并靠近遠(yuǎn)距離終點(diǎn)目標(biāo)。由于攝像頭感應(yīng)處理的是紅光與紅外光,對(duì)于外界自然光具有極強(qiáng)的抗干擾性,能夠適應(yīng)不同的工作場(chǎng)合,相比傳統(tǒng)的導(dǎo)航方式,本設(shè)計(jì)在路徑規(guī)劃、障礙躲避、功能拓展方面具有較大優(yōu)勢(shì),具有一定的創(chuàng)新與研究意義。