曹永豪,劉付永紅,張鈿鈿,郭沈燕,黃亮亮,王汝瀚
(1.華南理工大學自動化科學與工程學院,廣東廣州 510641;2.華南理工大學物理與光電學院,廣東廣州 510641;3.華南理工大學 材料科學與工程學院,廣東 廣州 510641)
近幾年無論是汽車企業(yè)還是互聯(lián)網(wǎng)大公司,都將自動駕駛作為重要的研究熱點。作為對將來生活有極大影響的新技術,其安全性、穩(wěn)定性、舒適性受到了廣大的關注。
為了更方便、高效地進行研究,以智能小車為實驗載體,采用TiCore264[1-2]系列芯片作為中央處理器,同時使用總鉆風攝像頭采集路面信息、編碼器獲取后輪轉速、TFT 彩屏[3]顯示圖像,攝像頭將采集到的圖像傳輸給TC264 進行數(shù)據(jù)處理以識別不同道路類型,再經(jīng)過控制算法輸出三路Pulse Width Modulation(PWM)信號[4]分別控制舵機、左電機、右電機,最終通過完成普通道路基本循跡、三岔路口判斷和小中大圓環(huán)判斷來實現(xiàn)自動駕駛。
系統(tǒng)以TC264 芯片作為中央處理器,因其核心板擁有兩個核心,能夠穩(wěn)定地接收攝像頭傳來的圖像,并對其進行處理得到預設的控制信號。
實現(xiàn)自動循跡的智能車將電池放在主板下面并接入電源模塊,電壓從電源模塊輸出經(jīng)過主板為所有模塊提供工作電壓,然后攝像頭獲取道路圖像信息,并通過串口將采集到的信息傳輸給TC264 芯片進行分析處理,經(jīng)過TC264 的算法處理后輸出PWM信號分別給舵機和驅動模塊,還會輸出信號給TFT屏幕將攝像頭采集到的圖像顯示出來。驅動模塊會將接受到的PWM 信號轉變成輸出控制電機的電壓。在調(diào)試階段開啟TFT 彩屏顯示攝像頭采集的圖像,以供道路標志點的算法設計,在循跡的時候關閉屏幕顯示,以免屏幕顯示占用太多CPU,導致智能車無法穩(wěn)定地循跡。該智能車還采用了雙編碼器,將左右輪的速度采集回來給TC264 以實現(xiàn)負反饋速度閉環(huán)控制[5]。
該智能車包括七大模塊:主板、TC264 核心板、電源板、驅動板、攝像頭、編碼器、TFT 彩屏,所有模塊的電氣連接示意圖如圖1 所示。另外,雖然此智能車沒有使用到陀螺儀,但是主板的設計還是保留了這一接口。
圖1 模塊連接示意圖
各類模塊的功能如下:
①主板:提高智能車集成化程度,TC264 核心板、電源模塊和TFT 彩屏均插在主板上面。
②TC264 核心板:接收攝像頭和編碼器傳輸過來的信號,根據(jù)控制算法做出決策輸出三路PWM 信號控制舵機和電機。
③電源板:為各類外設提供符合要求的電壓,包括舵機6.5 V、核心板3.3 V、編碼器5 V、隔離電路5 V、攝像頭3.3 V 等。
④驅動板:根據(jù)主板傳輸過來的PWM 信號,通過IR2103S[6]芯片和H 橋電路實現(xiàn)電機電壓的控制。
⑤攝像頭:采用MT9V034[7]總鉆風攝像頭,130°無畸變獲取道路邊界黑線圖像信息,傳輸給TC264核心板。
⑥編碼器:獲取后輪左右電機的轉速傳輸給核心板,以實現(xiàn)負反饋速度閉環(huán)控制。
⑦TFT 彩屏:在控制算法設計階段通過查看TFT 彩屏的信息來設計可以識別不同道路元素的控制算法。
電源模塊的產(chǎn)生是為了給核心板、攝像頭、SD卡、屏幕、陀螺儀、編碼器、隔離電路和舵機供電,三種降壓電路如圖2 所示,采用LM2941S[8-9]將7.2 V 降壓為6.5 V 為舵機供電;采用LM2940IMP-5.0[10]將7.2 V 降壓為5 V,為兩個編碼器和隔離電路提供電源,同時為AMS1117 提供輸入電壓;采用AMS1117-5.0 將5 V 電壓降為3.3 V,為核心板、攝像頭、SD 卡、TFT 彩屏和陀螺儀提供電源。
圖2 三種降壓電路圖
驅動模塊需要將主板傳輸來的PWM 信號轉換為H 橋控制信號對H 橋的MOS 管進行通斷控制,進而控制電機的轉速和轉向[11-12]。驅動板原理圖如圖3 所示,將PWM 信號轉換為H 橋控制信號的元件為IR2103,而IR2103 的工作電壓為12 V,所以還需要將電源電壓7.2 V 升壓為12 V。PWM 接口接受四路信號,可以實現(xiàn)電機的正反轉。
圖3 驅動板原理圖
主板上承載了攝像頭接口、屏幕接口、編碼器接口、SD 卡槽、電源接口、舵機接口、驅動接口、核心板接口、陀螺儀接口,在各元件之間采用網(wǎng)絡標簽的方式進行連接以減少連線混亂,其設計原理圖如圖4所示。
圖4 主板部分原理圖
主板基本都是接口和一個隔離電路,把所有的電線集成到了一塊電路板上,極大地提高了集成度。主板PCB 的設計圖如圖5 所示,(a)、(b)分別為PCB的正反面。
圖5 主板PCB的設計圖
文中設計的智能車循跡由攝像頭采集道路信息,經(jīng)過控制算法處理輸出PWM 信號控制舵機和電機來實現(xiàn)的。采用總鉆風攝像頭識別到的圖像是灰度值不同的圖像,為了容易準確地識別到行進的路線,減少環(huán)境因素干擾,系統(tǒng)運用圖像二值化[13]將原圖像轉化為純黑白兩色圖像。經(jīng)過二值化處理后的圖像,道路的邊線信息就容易被獲取,根據(jù)道路兩邊的黑線取平均值,并將該平均值與屏幕的中線進行比較計算偏差,然后再通過編碼器獲取當前車速[14],經(jīng)過偏差和車速來輸出PWM 信號控制舵機的轉角以及對應的電機左右輪差速,使得智能車在行進拐彎的時候更加穩(wěn)定。實現(xiàn)道路普通循跡外,測試中還需要識別三岔和圓環(huán)元素進行對應的控制,使得智能車能夠順利的通過三岔路口和圓環(huán)??刂屏鞒虉D如圖6 所示。
圖6 控制流程圖
智能車循跡是識別道路邊線進行循跡的,真實世界中有著各種各樣的顏色,但只需要識別道路黑色的邊線即可,其他顏色可以忽略掉,因此需要將攝像頭采集到的圖像進行二值化處理,從而找到問題的主要矛盾的主要方面,提高識別的精確度。系統(tǒng)首先將圖像轉化為灰度直方圖,即將圖像以256 階的灰度存儲在數(shù)組當中,方便接下來對圖像的進一步處理。
循跡的基本原理是通過計算道路兩邊的黑色邊線來算出中線,然后根據(jù)中線和屏幕中線的偏差來計算控制舵機的打角,并給后輪電機一定的速度偏差來實現(xiàn)基本循跡。
在控制舵機的時候,無法使用所有舵機的轉動范圍,當轉角大于180 度時,輪子的轉動范圍限制了舵機的轉動,此智能車搭建完畢后,前輪居中時控制舵機的PWM 信號占空比為10.95%,前輪左打滿時控制舵機的PWM 信號占空比為11.90%,前輪右打滿時控制舵機的PWM 信號占空比為10.03%,控制舵機的PWM 信號的幅值是3.3 V,頻率是50 Hz,周期是0.02 s。智能車在直道行駛時,控制后輪電機PWM 信號的基礎占空比是27%,幅值為3.3 V,頻率是10 000 Hz;當智能車在中線偏差絕對值大于10 的彎道行使時,給到的PWM 信號占空比為24%,幅值和頻率保持不變,然后在24%的基礎上給予左右輪PWM 信號分別加減相同的占空比,目的是使智能車在轉彎的時候減少打滑的情況發(fā)生,能夠穩(wěn)定、快速地過彎。其中包括了利用PID 計算中線偏差以及計算舵機和電機的PWM 偏差。這里使用了模糊控制[15-16]+PID,測試初期只使用了模糊控制,但是控制效果并不是很好,智能車在循跡的過程中很容易發(fā)生搖擺,經(jīng)過改進后采用模糊控制+PID,車的運動變穩(wěn)定了,從而提升了道路元素的識別成功率。
將測試小車放在三岔路口,使用屏幕觀察三岔路口的特點,根據(jù)判斷條件:兩邊邊線有拐點,而且拐點到有效行上邊界的斜率左負右正,屏幕顯示如圖7 所示。實踐表明,測試系統(tǒng)的算法識別率是挺高的,不過會發(fā)生誤判,在一些彎道會被誤判成三岔,后來通過道路模式分類,解決了這個問題。
智能車在識別到三岔道路后,系統(tǒng)采用的方案是給予一定時間的固定舵機打角,當智能車進入預定道路之后再回歸到正常循跡的過程。
圓環(huán)的算法設計過程和三岔大體上保持一致,根據(jù)場景中的特定位置,判斷其圓環(huán)特征,屏幕顯示如圖8 所示。測試初期出現(xiàn)智能車會因為圓環(huán)的第一個缺口而發(fā)生循跡抖動,為此設計了一個算法實現(xiàn)智能車在識別到這個缺口時保持直走一段時間,判斷到第二個缺口后就采用固定打角駛入圓環(huán)。缺口的判斷條件是識別到左邊丟線(即無法搜索到道路邊界線)加右邊是直線,是則采用直走的方案,直走結束后再來觀察是否達到入環(huán)判斷條件,即左邊有拐點且右邊是直線,如果滿足條件就固定打角入環(huán),否則,就繼續(xù)正常循跡。這種策略可以避免圓環(huán)誤判造成沖出道路的現(xiàn)象發(fā)生。
圖8 屏幕顯示圓環(huán)路口圖
基于TC264 的智能車要實現(xiàn)自動駕駛,首先要能夠獲取到與速度相匹配的幀率的圖像,并將獲取到的圖像進行處理,為了提高運算速度和精度,通常需要降低圖像分辨率,并對圖像做二值化處理,以便對道路的識別和判斷,從而作出不同的控制策略。面對不同的路面元素需要設計合適的判斷條件對其進行判斷,并綜合利用PID 控制和模糊控制來對舵機進行轉向控制,利用編碼器和PID 對車速進行閉環(huán)控制,以確保智能車能夠穩(wěn)定地識別路面元素并對其作出相應的決策。