高正中,趙麗娜,李世光,白星振,宋森森
(山東科技大學 電氣與自動化工程學院,青島266590)
隨著智能交通系統的廣泛應用,智能車系統的控制已經成為一門備受關注的領域,該領域涉及知識面廣,包括人工智能、計算機控制、傳感器路徑識別等知識[1]。該設計以“飛思卡爾”智能車比賽為背景,設計了一套具有自學習功能且能自動識別賽道軌跡的智能車控制方案。
智能車控制系統主要由路徑識別、速度檢測、舵機控制及電機控制等功能模塊組成[2]。攝像頭作為導向傳感器采集賽道信息,微處理器處理圖像信息,進而控制智能車的運行[3]。圖像處理的效果直接影響到智能車能否準確快速行駛在不同軌道上。該設計加入了自學習功能,在智能車行駛之前,攝像頭自學習采集賽道信息,并存儲到特定數組中,智能車行駛中不斷采集當前賽道信息,并將新采集到的圖像信息與自學習時的圖像信息進行數據處理,進而判別車體位置及賽道類別,通過模糊控制實現電機和舵機的PWM脈沖控制[4]。
智能車硬件部分以車模為載體,主要功能模塊包括MCF52259核心控制模塊、電源模塊、攝像頭模塊、電機驅動模塊、舵機轉向模塊。硬件控制系統整體框圖如圖1所示。攝像頭傳感器采集路面圖像信息,并將圖像信息經由核心控制單元MCF52259處理,實現黑線提取、路徑識別,進而控制電機和舵機。

圖1 系統硬件框圖Fig.1 Hardware block diagram of the system
采用飛思卡爾公司推出的MCF5225X系列的32位微控制器MCF52259作為智能車嵌入式系統的核心控制單元,MCF5225X系列微控制器是首款基于Cold Fire V2內核的微控制器[5]。MCF52259單片機的CPU頻率可達80 MHz,具有64 K內部SRAM和512 K片上FLASH存儲器,支持多時鐘選擇和多種定時器模式,低功耗,可擴展性強,滿足智能車系統的需要。
電源是保證智能車正常運行的基礎,它給系統的各個模塊進行供電,該次設計使用7.2 V鎳—鉻充電電池作為系統電源,其充電速度快,在充滿電的情況下電壓可達8.2~8.5 V,且放電終止電壓小,是一種理想的直流供電電源。由于智能車系統各個模塊所需的電壓不同,因此需要進行電壓調節。其中攝像頭模塊、舵機轉向模塊需要電壓為5 V,MCF52259最小系統模塊供電電壓為3.3 V,電機驅動模塊7.2 V。使用到的穩壓芯片為5 V穩壓芯片SPX3940和3.3 V穩壓芯片AMS1117。
智能車通過攝像頭采集白色KT板上的黑線循跡。故采用黑白攝像頭CMOS OV5116作為智能車導向模塊傳感器。攝像頭采集賽道信息,并經過二值化處理,將圖像信息轉為單片機能識別的數字信號[6]。攝像頭供電電壓5 V,PAL制,每秒25幀,一幀兩場,平均16.7 ms左右產生一幅圖像。內部集成LM1881視頻分離芯片,直接輸出場同步信號VS、行同步HS等供采集的時序信號。攝像頭硬件電路如圖2所示。

圖2 攝像頭硬件電路圖Fig.2 Hardware circuit diagram of camera
為了實現智能車的速度和方向控制,設計了一款H橋電機驅動模塊。市場上有許多集成的電機驅動芯片,還可以自己用分立的MOS管搭H橋。由于用分立的MOS管做驅動電路相對復雜,且可靠性下降,容易出現問題[7]。該次設計采用2片IRF3205和2片IRF4905并聯組成的H橋驅動電路,以MOS管IRF3205和IRF4905為開關元件,IR1210為柵極驅動芯片,通過控制橋臂的導通方式來實現電機正反轉。電機驅動模塊電路如圖3所示。

圖3 電機驅動模塊示意圖Fig.3 Drive circuit diagram of the motor
智能車嵌入式系統利用黑白攝像頭采集賽道圖像信息,經由核心控制芯片MCF5559將采集到的圖像濾波,提取賽道黑線信息,從而判別車體當前所處的賽道類型,控制PWM輸出,實現直流電機的速度控制和舵機的轉向控制。系統軟件主程序包括初始化、攝像頭自學習、賽道信息采集、舵機控制、電機控制等,系統軟件流程如圖4所示。
攝像頭是黑白攝像頭,通過采集賽道的黑線來進行圖像識別,在智能車啟動前通過攝像頭自學習采集直道圖像信息,并將數據保存起來。攝像頭每場可采集320行數據,但并不是采集到的每行數據都正確且可用,通過不斷測試,最終選擇只采集其中的31行作為有效數據行,如式(1)所示,攝像頭前瞻距離可達1.9 m。該次設計在攝像頭行消隱下降沿啟動微處理器MCF52259的定時器3中斷,定時器中斷設置為邊沿觸發,每當有邊沿信號來到時即賽道上有黑白圖像信號交換時就會觸發定時器中斷,同時定時器進行計數,通過定時器中斷的次數可以反映對應行的賽道信息,單片機根據多行賽道信息便可進行路徑識別,因為攝像頭采集的圖像寬度范圍是基本固定的,因此采集完每行數據后定時器的數值基本固定,從定時器的計數值的變化規律可以反映車體在當前賽道中的位置。如圖5是智能車起跑賽道示意圖,采集到的直道及起跑線數據信號如圖6所示。

圖5 起跑賽道示意圖Fig.5 Starting track schematic

圖6 二值化信號波形Fig.6 Oscillogram of the binarized signals

理想情況下賽道是沒有干擾的,但是實際賽道往往存在很多干擾因素,為了得到準確的賽道信息,就需要對賽道干擾進行濾除,通過實驗在線觀看計數器的值,發現對于攝像頭采集到的同一行數據中,相鄰定時器中斷之間計數器的值相差不大甚至相等,于是將相鄰定時器計數器的值相差小于一定范圍的點認為是干擾,需要濾掉,具體算法是:將相鄰的這2處中斷位置從左往右移位,中斷次數減1;而對于不同行之間同一位置的計數器的值偏差很大的也必定是干擾,因此編寫程序對于不同行相同位置計數器的值相差在一定范圍內也進行移位,濾波閾值都是經過反復試驗不斷得出的數值,通過濾除后獲取的賽道信息與實際賽道基本吻合。圖7是攝像頭采集到的一幅直道圖像。

圖7 直道圖像Fig.7 Image of the straightway
首先將智能車擺放在直道中間位置,在程序中對初始位置攝像頭采集的數據進行自學習,因為攝像頭采集的圖像是變形的,通過自學習的時候將攝像頭采集的第0行的數據作為基準,將其他行的數據與基準數據作為比對生成一系列系數,將自學習時生成的數據系數進行保存,以后智能車跑起來的時候對采集到的數據用自學習時生成的系數進行校正,從而攝像頭采集的數據通過校正都可以達到不變行的效果即達到與實際賽道圖像吻合的效果。在自學習過程中直道上2條黑線的位置已經生成,可以確定賽道中線位置對應的計數器的數值,以此作為衡量標準來控制智能車。智能車跑起來后,將當前中線位置與自學習時生成的數值做差,得到偏差e及偏差變化率作為模糊控制器的輸入,輸出PWM運行值,進而控制舵機轉向。模糊控制原理如圖8所示。

圖8 模糊控制原理Fig.8 Principle diagram of fuzzy control
為了更好地控制智能車,舵機控制必須和速度控制結合起來,因此速度控制算法的實現很重要。不同賽道類型智能車運行的最快速度是不同的,直道需要加速,而彎道需要減速才能更好的過彎,這就需要在直道和彎道的交界處提前減速,因為攝像頭的前瞻性,很早就可以識別出遠處的彎道,此時就需要減速,但由于車體的慣性因素,智能車不會立即將速度減到預定的大小,此時通過比較實際運行速度與設定速度的偏差來控制速度,如果偏差過大就需要反向制動使智能車急減速,到彎道時速度就會慢下來了,通過編碼器每20 ms檢測一次速度的算法,不斷計算實際速度與跟定速度的偏差及偏差變化率,作為模糊控制器的輸入,輸出PWM運行值,進而控制電機轉速,以達到最佳的運行效果。
對本系統進行性能測試,首先對攝像頭進行調試,將其前瞻距離調試在1.9 m左右,然后對電機進行調試,在正常工作電壓下,調試其PWM輸出,可以實現電機的調速及正反轉運行。將智能車放在白色KT板上,自學習采集直道信息,自學習成功后,小車開始在賽道上行駛,經過不斷調試,在攝像頭大前瞻的基礎上,可以很好地預判賽道信息,實現在不同路徑下穩定快速運行,直道速度可達2.2 m/s,彎道速度可達1.8 m/s。
該文論述了基于攝像頭的循跡智能車控制系統的設計,分析了攝像頭的圖像處理算法。測試結果表明,該智能車可在不同路徑上實現穩定、可靠的自動行駛,具有較強的魯棒性;且速度和轉向控制響應時間短、誤差小,在復雜路徑下仍可達到2 m/s的平均速度。
[1]蘭華.智能車轉向系統模糊控制器設計研究[J].傳感器與微系統,2010,29(5):34-37.
[2]高云波,季聰,漢鵬武.基于攝像頭識別路徑的智能車系統設計[J].蘭州理工大學學報,2013,39(6):97-102.
[3]林濤,馬騰煒,陳亞勛,等.基于MCU的自動尋跡智能車控制系統的設計[J].自動化與儀表,2012,27(11):1-4.
[4]林煥新,胡躍明,陳安.基于自適應模糊控制的智能車控制系統研究[J].計算機測量與控制,2011,19(1):78-80.
[5]屯娜.飛思卡爾MCF52259微控制器的應用研究[D].蘇州:蘇州大學,2010.
[6]董大波,王湘云,趙柏秦,等.基于單片機的低成本CMOS圖像采集系統[J].儀表技術與傳感器,2014(2):45-49.
[7]張炳佳.步進電機H橋驅動電路設計[J].長沙電力學院學報:自然科學版,2006,21(4):31-33.