高正中,趙麗娜,李世光,白星振,宋森森
(山東科技大學(xué) 電氣與自動化工程學(xué)院,青島266590)
隨著智能交通系統(tǒng)的廣泛應(yīng)用,智能車系統(tǒng)的控制已經(jīng)成為一門備受關(guān)注的領(lǐng)域,該領(lǐng)域涉及知識面廣,包括人工智能、計(jì)算機(jī)控制、傳感器路徑識別等知識[1]。該設(shè)計(jì)以“飛思卡爾”智能車比賽為背景,設(shè)計(jì)了一套具有自學(xué)習(xí)功能且能自動識別賽道軌跡的智能車控制方案。
智能車控制系統(tǒng)主要由路徑識別、速度檢測、舵機(jī)控制及電機(jī)控制等功能模塊組成[2]。攝像頭作為導(dǎo)向傳感器采集賽道信息,微處理器處理圖像信息,進(jìn)而控制智能車的運(yùn)行[3]。圖像處理的效果直接影響到智能車能否準(zhǔn)確快速行駛在不同軌道上。該設(shè)計(jì)加入了自學(xué)習(xí)功能,在智能車行駛之前,攝像頭自學(xué)習(xí)采集賽道信息,并存儲到特定數(shù)組中,智能車行駛中不斷采集當(dāng)前賽道信息,并將新采集到的圖像信息與自學(xué)習(xí)時的圖像信息進(jìn)行數(shù)據(jù)處理,進(jìn)而判別車體位置及賽道類別,通過模糊控制實(shí)現(xiàn)電機(jī)和舵機(jī)的PWM脈沖控制[4]。
智能車硬件部分以車模為載體,主要功能模塊包括MCF52259核心控制模塊、電源模塊、攝像頭模塊、電機(jī)驅(qū)動模塊、舵機(jī)轉(zhuǎn)向模塊。硬件控制系統(tǒng)整體框圖如圖1所示。攝像頭傳感器采集路面圖像信息,并將圖像信息經(jīng)由核心控制單元MCF52259處理,實(shí)現(xiàn)黑線提取、路徑識別,進(jìn)而控制電機(jī)和舵機(jī)。
圖1 系統(tǒng)硬件框圖Fig.1 Hardware block diagram of the system
采用飛思卡爾公司推出的MCF5225X系列的32位微控制器MCF52259作為智能車嵌入式系統(tǒng)的核心控制單元,MCF5225X系列微控制器是首款基于Cold Fire V2內(nèi)核的微控制器[5]。MCF52259單片機(jī)的CPU頻率可達(dá)80 MHz,具有64 K內(nèi)部SRAM和512 K片上FLASH存儲器,支持多時鐘選擇和多種定時器模式,低功耗,可擴(kuò)展性強(qiáng),滿足智能車系統(tǒng)的需要。
電源是保證智能車正常運(yùn)行的基礎(chǔ),它給系統(tǒng)的各個模塊進(jìn)行供電,該次設(shè)計(jì)使用7.2 V鎳—鉻充電電池作為系統(tǒng)電源,其充電速度快,在充滿電的情況下電壓可達(dá)8.2~8.5 V,且放電終止電壓小,是一種理想的直流供電電源。由于智能車系統(tǒng)各個模塊所需的電壓不同,因此需要進(jìn)行電壓調(diào)節(jié)。其中攝像頭模塊、舵機(jī)轉(zhuǎn)向模塊需要電壓為5 V,MCF52259最小系統(tǒng)模塊供電電壓為3.3 V,電機(jī)驅(qū)動模塊7.2 V。使用到的穩(wěn)壓芯片為5 V穩(wěn)壓芯片SPX3940和3.3 V穩(wěn)壓芯片AMS1117。
智能車通過攝像頭采集白色KT板上的黑線循跡。故采用黑白攝像頭CMOS OV5116作為智能車導(dǎo)向模塊傳感器。攝像頭采集賽道信息,并經(jīng)過二值化處理,將圖像信息轉(zhuǎn)為單片機(jī)能識別的數(shù)字信號[6]。攝像頭供電電壓5 V,PAL制,每秒25幀,一幀兩場,平均16.7 ms左右產(chǎn)生一幅圖像。內(nèi)部集成LM1881視頻分離芯片,直接輸出場同步信號VS、行同步HS等供采集的時序信號。攝像頭硬件電路如圖2所示。
圖2 攝像頭硬件電路圖Fig.2 Hardware circuit diagram of camera
為了實(shí)現(xiàn)智能車的速度和方向控制,設(shè)計(jì)了一款H橋電機(jī)驅(qū)動模塊。市場上有許多集成的電機(jī)驅(qū)動芯片,還可以自己用分立的MOS管搭H橋。由于用分立的MOS管做驅(qū)動電路相對復(fù)雜,且可靠性下降,容易出現(xiàn)問題[7]。該次設(shè)計(jì)采用2片IRF3205和2片IRF4905并聯(lián)組成的H橋驅(qū)動電路,以MOS管IRF3205和IRF4905為開關(guān)元件,IR1210為柵極驅(qū)動芯片,通過控制橋臂的導(dǎo)通方式來實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)。電機(jī)驅(qū)動模塊電路如圖3所示。
圖3 電機(jī)驅(qū)動模塊示意圖Fig.3 Drive circuit diagram of the motor
智能車嵌入式系統(tǒng)利用黑白攝像頭采集賽道圖像信息,經(jīng)由核心控制芯片MCF5559將采集到的圖像濾波,提取賽道黑線信息,從而判別車體當(dāng)前所處的賽道類型,控制PWM輸出,實(shí)現(xiàn)直流電機(jī)的速度控制和舵機(jī)的轉(zhuǎn)向控制。系統(tǒng)軟件主程序包括初始化、攝像頭自學(xué)習(xí)、賽道信息采集、舵機(jī)控制、電機(jī)控制等,系統(tǒng)軟件流程如圖4所示。
攝像頭是黑白攝像頭,通過采集賽道的黑線來進(jìn)行圖像識別,在智能車啟動前通過攝像頭自學(xué)習(xí)采集直道圖像信息,并將數(shù)據(jù)保存起來。攝像頭每場可采集320行數(shù)據(jù),但并不是采集到的每行數(shù)據(jù)都正確且可用,通過不斷測試,最終選擇只采集其中的31行作為有效數(shù)據(jù)行,如式(1)所示,攝像頭前瞻距離可達(dá)1.9 m。該次設(shè)計(jì)在攝像頭行消隱下降沿啟動微處理器MCF52259的定時器3中斷,定時器中斷設(shè)置為邊沿觸發(fā),每當(dāng)有邊沿信號來到時即賽道上有黑白圖像信號交換時就會觸發(fā)定時器中斷,同時定時器進(jìn)行計(jì)數(shù),通過定時器中斷的次數(shù)可以反映對應(yīng)行的賽道信息,單片機(jī)根據(jù)多行賽道信息便可進(jìn)行路徑識別,因?yàn)閿z像頭采集的圖像寬度范圍是基本固定的,因此采集完每行數(shù)據(jù)后定時器的數(shù)值基本固定,從定時器的計(jì)數(shù)值的變化規(guī)律可以反映車體在當(dāng)前賽道中的位置。如圖5是智能車起跑賽道示意圖,采集到的直道及起跑線數(shù)據(jù)信號如圖6所示。
圖5 起跑賽道示意圖Fig.5 Starting track schematic
圖6 二值化信號波形Fig.6 Oscillogram of the binarized signals
理想情況下賽道是沒有干擾的,但是實(shí)際賽道往往存在很多干擾因素,為了得到準(zhǔn)確的賽道信息,就需要對賽道干擾進(jìn)行濾除,通過實(shí)驗(yàn)在線觀看計(jì)數(shù)器的值,發(fā)現(xiàn)對于攝像頭采集到的同一行數(shù)據(jù)中,相鄰定時器中斷之間計(jì)數(shù)器的值相差不大甚至相等,于是將相鄰定時器計(jì)數(shù)器的值相差小于一定范圍的點(diǎn)認(rèn)為是干擾,需要濾掉,具體算法是:將相鄰的這2處中斷位置從左往右移位,中斷次數(shù)減1;而對于不同行之間同一位置的計(jì)數(shù)器的值偏差很大的也必定是干擾,因此編寫程序?qū)τ诓煌邢嗤恢糜?jì)數(shù)器的值相差在一定范圍內(nèi)也進(jìn)行移位,濾波閾值都是經(jīng)過反復(fù)試驗(yàn)不斷得出的數(shù)值,通過濾除后獲取的賽道信息與實(shí)際賽道基本吻合。圖7是攝像頭采集到的一幅直道圖像。
圖7 直道圖像Fig.7 Image of the straightway
首先將智能車擺放在直道中間位置,在程序中對初始位置攝像頭采集的數(shù)據(jù)進(jìn)行自學(xué)習(xí),因?yàn)閿z像頭采集的圖像是變形的,通過自學(xué)習(xí)的時候?qū)z像頭采集的第0行的數(shù)據(jù)作為基準(zhǔn),將其他行的數(shù)據(jù)與基準(zhǔn)數(shù)據(jù)作為比對生成一系列系數(shù),將自學(xué)習(xí)時生成的數(shù)據(jù)系數(shù)進(jìn)行保存,以后智能車跑起來的時候?qū)Σ杉降臄?shù)據(jù)用自學(xué)習(xí)時生成的系數(shù)進(jìn)行校正,從而攝像頭采集的數(shù)據(jù)通過校正都可以達(dá)到不變行的效果即達(dá)到與實(shí)際賽道圖像吻合的效果。在自學(xué)習(xí)過程中直道上2條黑線的位置已經(jīng)生成,可以確定賽道中線位置對應(yīng)的計(jì)數(shù)器的數(shù)值,以此作為衡量標(biāo)準(zhǔn)來控制智能車。智能車跑起來后,將當(dāng)前中線位置與自學(xué)習(xí)時生成的數(shù)值做差,得到偏差e及偏差變化率作為模糊控制器的輸入,輸出PWM運(yùn)行值,進(jìn)而控制舵機(jī)轉(zhuǎn)向。模糊控制原理如圖8所示。
圖8 模糊控制原理Fig.8 Principle diagram of fuzzy control
為了更好地控制智能車,舵機(jī)控制必須和速度控制結(jié)合起來,因此速度控制算法的實(shí)現(xiàn)很重要。不同賽道類型智能車運(yùn)行的最快速度是不同的,直道需要加速,而彎道需要減速才能更好的過彎,這就需要在直道和彎道的交界處提前減速,因?yàn)閿z像頭的前瞻性,很早就可以識別出遠(yuǎn)處的彎道,此時就需要減速,但由于車體的慣性因素,智能車不會立即將速度減到預(yù)定的大小,此時通過比較實(shí)際運(yùn)行速度與設(shè)定速度的偏差來控制速度,如果偏差過大就需要反向制動使智能車急減速,到彎道時速度就會慢下來了,通過編碼器每20 ms檢測一次速度的算法,不斷計(jì)算實(shí)際速度與跟定速度的偏差及偏差變化率,作為模糊控制器的輸入,輸出PWM運(yùn)行值,進(jìn)而控制電機(jī)轉(zhuǎn)速,以達(dá)到最佳的運(yùn)行效果。
對本系統(tǒng)進(jìn)行性能測試,首先對攝像頭進(jìn)行調(diào)試,將其前瞻距離調(diào)試在1.9 m左右,然后對電機(jī)進(jìn)行調(diào)試,在正常工作電壓下,調(diào)試其PWM輸出,可以實(shí)現(xiàn)電機(jī)的調(diào)速及正反轉(zhuǎn)運(yùn)行。將智能車放在白色KT板上,自學(xué)習(xí)采集直道信息,自學(xué)習(xí)成功后,小車開始在賽道上行駛,經(jīng)過不斷調(diào)試,在攝像頭大前瞻的基礎(chǔ)上,可以很好地預(yù)判賽道信息,實(shí)現(xiàn)在不同路徑下穩(wěn)定快速運(yùn)行,直道速度可達(dá)2.2 m/s,彎道速度可達(dá)1.8 m/s。
該文論述了基于攝像頭的循跡智能車控制系統(tǒng)的設(shè)計(jì),分析了攝像頭的圖像處理算法。測試結(jié)果表明,該智能車可在不同路徑上實(shí)現(xiàn)穩(wěn)定、可靠的自動行駛,具有較強(qiáng)的魯棒性;且速度和轉(zhuǎn)向控制響應(yīng)時間短、誤差小,在復(fù)雜路徑下仍可達(dá)到2 m/s的平均速度。
[1]蘭華.智能車轉(zhuǎn)向系統(tǒng)模糊控制器設(shè)計(jì)研究[J].傳感器與微系統(tǒng),2010,29(5):34-37.
[2]高云波,季聰,漢鵬武.基于攝像頭識別路徑的智能車系統(tǒng)設(shè)計(jì)[J].蘭州理工大學(xué)學(xué)報(bào),2013,39(6):97-102.
[3]林濤,馬騰煒,陳亞勛,等.基于MCU的自動尋跡智能車控制系統(tǒng)的設(shè)計(jì)[J].自動化與儀表,2012,27(11):1-4.
[4]林煥新,胡躍明,陳安.基于自適應(yīng)模糊控制的智能車控制系統(tǒng)研究[J].計(jì)算機(jī)測量與控制,2011,19(1):78-80.
[5]屯娜.飛思卡爾MCF52259微控制器的應(yīng)用研究[D].蘇州:蘇州大學(xué),2010.
[6]董大波,王湘云,趙柏秦,等.基于單片機(jī)的低成本CMOS圖像采集系統(tǒng)[J].儀表技術(shù)與傳感器,2014(2):45-49.
[7]張炳佳.步進(jìn)電機(jī)H橋驅(qū)動電路設(shè)計(jì)[J].長沙電力學(xué)院學(xué)報(bào):自然科學(xué)版,2006,21(4):31-33.