孫桐,鄭天昱,陳龍
(杭州電子科技大學電子信息學院,浙江杭州,310018)
智能小車是一個集環境感知、規劃和決策于一體的多維度輔助駕駛集成系統,重點研究計算機與現代傳感技術、信息融合技術、通信技術、人工智能技術和自動控制技術,是新技術與高新技術的典型結合[1]。智能小車可以用于在不利條件下進行無人檢測和操作,這種控制技術可應用于像智能物流這樣的物聯網工業應用領域[2-4]。為了更深入的認識和了解智能化汽車,可通過設計與實現智能小車來進一步研究智能汽車的控制理念和方式[5-6]。傳統的智能尋跡小車只能運行在簡單的賽道上,對復雜的賽道元素缺乏處理能力,具有很大的局限性,且不能將舵機轉向與電機速度控制有效結合,在尋跡路徑上還有很大的提升空間。
為了解決這些問題,本文以全國大學生智能汽車競賽為背景,設計并實現了基于K66單片機的智能尋跡小車系統,通過對數字圖像的邊緣掃描和特征檢測等處理,能夠實時識別復雜賽道,并對舵機轉向與電機速度控制進行有效配合,完成路徑優化,實現智能尋跡。
智能尋跡小車系統整體方案設計如圖1所示,該系統通過處理攝像頭模塊采集的灰度圖像,判斷道路類型并控制舵機模塊與電機模塊。系統可通過OLED模塊顯示實時圖像,TF卡模塊存儲行駛圖像與數據,按鍵調試模塊實現PID參數快速整定,從而輔助人工完善智能尋跡。系統的主控芯片使用恩智浦K66單片機,該單片機主頻為180MHz,超頻處理后可以達到220MHz,具有5個UART串口、4個FTM定時器等模塊,充分滿足智能尋跡小車的設計。

圖1 智能尋跡小車系統整體方案框圖
單片機外圍電路設計如圖2所示,包括單片機時鐘與復位電路、JTAG下載電路、UART串口電路、OLED顯示電路和按鍵調試電路。

圖2 單片機外圍電路
攝像頭模塊電路如圖3所示,攝像頭模塊采用了MT9V032總鉆風數字攝像頭。該攝像頭是一款基于MT9V032芯片設計的全局快門攝像頭,優點是自動曝光、曝光時間隨時可調、高動態性能等。

圖3 攝像頭模塊電路
舵機模塊電路如圖4所示,舵機模塊采用FUTABA3010,具有低成本、高扭矩的優點。該舵機在不同工作電壓下,舵機的轉矩與速度數據有略大差別,系統采用6V為舵機模塊工作電壓。

圖4 舵機模塊電路
電機驅動電路設計如圖5所示,該電路采用IR2104和MOS管組合的H橋電路,可通過改變單片機對應電機模塊引腳占空比輸出,實現電機的變速控制。

圖5 電機驅動電路
系統的軟件設計由圖像采集、圖像處理、舵機轉向控制、電機速度控制等四個部分組成。系統軟件主流程圖如圖6所示,系統軟件首先進行程序初始化,包括時鐘初始化、定時器初始化等,對采集到的灰度圖像提取道路信息并進行分析,完成轉向與速度決策。若系統在智能尋跡過程中識別到車庫,則尋跡小車會自動入庫并停車。

圖6 系統軟件主流程框圖
攝像頭就好比智能車的“眼睛”,為微控制器提供當前道路信息,并可將獲取的圖像信息實時傳輸到微控制器進行處理[7]。為了更加符合真實汽車比例,系統的攝像頭安裝在車輛縱向平分線上,高度距地面10厘米。系統采用DMA方式采集圖像,DMA采集速度快且不經過微處理器[8],使單片機能獲得更多的有效數據。圖像采集的原始灰度圖像如圖7所示,共186×70個像素,在視野廣、前瞻長的前提下,圖像采集速率能達到50fps,基本滿足系統尋跡高速穩定的要求。

圖7 原始灰度圖像
3.2.1 二值化圖像處理
原始灰度圖像經過二值化處理后的圖像如圖8所示,二值化處理能降低圖像的復雜度,使數據量減小,并凸顯出目標道路輪廓。由于系統的攝像頭高度較低,在實際行駛過程中道路光線不均勻,導致單一閾值的設定不能滿足需求,故采用最大協方差閾值法計算二值化閾值,實現圖像前景與背景的分離。

圖8 二值化圖像
3.2.2 圖像邊緣檢測處理
二值化圖像經過邊緣檢測后的圖像如圖9所示,系統邊緣檢測采用中心掃線與邊緣掃線兩種方式。中心掃線是指每行圖像起始掃線從上一行圖像的中線坐標開始,分別向左向右尋找黑白像素切換點坐標作為可能的賽道邊界,擬合出賽道中心線。而邊緣掃線是指,每行圖像起始掃線從上一行左右邊界線的坐標點開始,分別向左向右尋找本行的左右邊界線的坐標。經過這兩種圖像邊緣檢測方法,可得到與實際道路中線擬合度較高的圖像中線值。

圖9 邊緣檢測圖像
3.3.1 舵機整體控制思路
舵機通過一個由FTM靈活定時器模塊輸出的PWM波控制,經過各種參數對比之后,采用50Hz的PWM波能使舵機響應速度最快且工作時狀態穩定。
在每個控制周期中,圖像處理完成后,可根據不同的賽道類型和實際行駛速度綜合分析后計算出最佳的舵機打角行,將此行的中線偏差值通過舵機PID公式計算得出最佳舵機打角值。
3.3.2 不同道路元素的舵機PID控制
PID控制器原理框圖如圖10所示,PID控制是傳統控制中最具代表性的一種控制方式,應用也最為廣泛[9]。在計算機控制系統中,使用數字PID控制器,控制規律如式(1)。

圖10 PID控制器原理框圖

式(1)中:k為采樣序號;u(k)為第k次輸出控制量;KP為比例系數;TI為積分系數;TD為微分系數;T為采樣周期;e(k)為第k次偏差;e(k? 1 )為第k?1次偏差。
系統的舵機控制采用位置式PID,經過調試發現I項(積分項)不適用于舵機控制,便將舵機的PID控制簡化為PD控制。
當尋跡小車行進到不同道路元素時,采取恒定的舵機PD參數會造成直道抖動和彎道轉向不連貫的問題,因此可根據不同的道路類型選取不同的舵機PD參數值,做到直道跑的直,過彎流暢并同時在S型彎道實現路徑優化。經過調試后發現,不同道路元素的舵機PD參數值選取有以下的規律:直道PD值小,彎道PD值大,S型彎道P值小D值略大。
3.4.1 電機轉速整體控制思路
尋跡小車在直道設定較高的轉速,在彎道設定稍慢的轉速使小車能夠流暢的跑完整個賽道,其中直道速度能決定小車的整體速度,合適的彎道速度能夠提升小車的穩定性。由于直道入彎的過程是關鍵,系統采取了特殊的減速策略,即先根據小車當前速度給出相應減速需要的圖像場數,當減速場數較高時設定速度可較低,當減速場數較少時設定速度可較高,并隨著減速場數的減少設定速度可逐漸接近彎道速度,使小車能夠流暢的進入彎道,避免出現“猛加猛減”的情況。
3.4.2 不同道路元素的電機PID控制
系統對電機模塊采用了增量式PID控制,該控制算法如式(3)所示,由式(1)可推出式(2),式(1)減去式(2)可得式(3)。

經過調試發現,微分系數KD不適用于該電機轉速控制,故系統使用了增量式PI來控制電機轉速。
系統在直道行駛過程中,后輪兩個電機可以設定相同的速度目標值,在彎道行駛過程中,后輪電機可通過主動差速來輔助小車轉向。在調試中發現,可根據舵機打角值來控制電機的差速。把舵機轉向角度分為若干個區間,在每個區間內,外側電機給原彎道速度,轉向的內側電機在原彎道設定速度的基礎上使用不同比例的差速,這一策略能使電機和舵機較好的協同工作,避免因為電機推動而導致小車過彎不流暢,進一步實現路徑優化。
本系統使小車實現智能尋跡,通過對二值化圖像的邊緣檢測處理,識別十字、環島等復雜元素,并使舵機轉向與電機后輪差速控制有效結合,在不同的復雜道路上,利用軟件算法針對性的做出不同的行駛路徑優化。在攝像頭高度低的情況下,使用最大協方差閾值法計算二值化閾值,大幅降低路面反光引起圖像噪聲大的影響。系統具有很強的前瞻性,通過圖像處理算法能夠提前判斷路面情況并做出轉向與速度決策。經過大量賽道測試與檢驗,該系統具有較強的魯棒性,能將高速性與穩定性較好的結合,在處理器算力和傳感器數量有限的情況下,初步實現現代化智能汽車的自動駕駛功能。系統仍存在不足之處,由于芯片算力和傳感器數量有限,不能對于車輛在真實道路的行駛有進一步的模擬。隨著人工智能的發展以及芯片算力的提升,希望能將更高級的算法與智能尋跡小車融合,進一步拓展智能尋跡小車的發展。