苗培梓 楊有為 王德宇 鄧 偉 姜爾赤
(1.東北石油大學(xué) 電子科學(xué)學(xué)院,黑龍江 大慶 163318;2.大慶油田有限責(zé)任公司第二采油廠 工程技術(shù)大隊,黑龍江 大慶163414)
隨著全球信息和科技革命的興起,智能化和信息化廣泛應(yīng)用于我們的生產(chǎn)生活當(dāng)中,而對智能汽車的需求和發(fā)展,亦受到眾多國家的重視和支持。 近年來,智能車己經(jīng)成為世界車輛工程領(lǐng)域研究的熱點和汽車工業(yè)增長的新動力,很多發(fā)達(dá)國家都將其納入到各自重點發(fā)展的智能交通系統(tǒng)當(dāng)中。 我國的智能汽車產(chǎn)業(yè)目前處于起步階段,較發(fā)達(dá)國家的發(fā)展水平還很落后,因此,對智能車的研究有助于我們智能汽車工業(yè)的發(fā)展和進步。
本智能車硬件平臺采用MC9S12XS128 微處理器作為系統(tǒng)處理控制器,主要控制轉(zhuǎn)向舵機和驅(qū)動電機,調(diào)試平臺采用Code Warrior 軟件。 智能車的制作主要涉及單片機控制電路的設(shè)計、攝像頭圖像信號的采集及其處理、控制算法和控制策略優(yōu)化等方面。
本智能車系統(tǒng)以 MC9S12XS128 單片機為核心控制單元,采用數(shù)字?jǐn)z像頭作為識別道路的傳感器, 通過光電編碼器檢測模型車的速度,使用增量式PID 閉環(huán)控制算法,通過 PWM 波調(diào)節(jié)驅(qū)動電機的轉(zhuǎn)速和轉(zhuǎn)向舵機的角度。我們力求系統(tǒng)的簡單高效,在滿足智能車性能的要求下, 使硬件結(jié)構(gòu)最簡單。
MC9S12XS128 是16位單片機, 由16 位中央處理單元、128KB 程序Flash、8KB RAM、8KB 數(shù)據(jù)Flash 組成片內(nèi)存儲器。
攝像頭根據(jù)所傳達(dá)的信號, 可分為 CCD 攝像頭和 CMOS 攝像頭。CCD 攝像頭又稱為模擬攝像頭,其采集到的視頻信號是模擬信號,需要經(jīng)過A/D 模塊進行數(shù)模轉(zhuǎn)換成數(shù)字值后再進行處理和使用。 CCD 模擬攝像頭采集動態(tài)圖像效果比較好,采集到的圖像信息比較清晰且穩(wěn)定性好,對比度也相對較高。但需要12V 的工作電壓,對整個系統(tǒng)運行來說過于耗電。
CMOS 攝像頭又稱為數(shù)字?jǐn)z像頭,其內(nèi)部集成了A/D 模塊,直接輸出數(shù)字值可以將采集到的視頻信號直接轉(zhuǎn)換成數(shù)字信號。 CMOS 數(shù)字?jǐn)z像頭硬件電路相對簡單,工作電壓低,體積小,功耗也小,但圖像穩(wěn)定性不好,在動態(tài)圖像的顯示中不如CCD 攝像頭清晰。而在本智能車設(shè)計中,由于CMOS 攝像頭已經(jīng)能滿足設(shè)計的性能要求,在考慮效率和功耗的基礎(chǔ)上,選用CMOS 攝像頭系列的OV7620。
主板上裝有組成本系統(tǒng)的主要電路,包括如下部件:攝像頭接口、舵機接口、電機驅(qū)動電路、編碼器接口、撥碼開關(guān)接口、電源接口、單片機最小系統(tǒng)板插座等。 主板電路圖如圖1 所示:
圖1 主板電路圖
圖2 主板電路原理圖
智能車主板電路主要有五個模塊:控制處理芯片、舵機驅(qū)動模塊、電機驅(qū)動模塊、圖像采集模塊、速度采集模塊和電源模塊。主板電路原理圖如圖2 所示:
其中,MC9S12XS128 單片機是系統(tǒng)的核心部分,它負(fù)責(zé)處理道路圖像數(shù)據(jù)、行駛速度等反饋信息,通過控制算法得出的控制量來對舵機與驅(qū)動電機進行控制。舵機模塊和驅(qū)動模塊分別用于實現(xiàn)車模的轉(zhuǎn)向和驅(qū)動;圖像采集模塊由攝像頭和電平轉(zhuǎn)換電路組成,其功能是獲取前方路徑的圖像數(shù)據(jù);速度采集模塊由光電編碼器提供,通過檢測脈沖累積數(shù)來求得車模的速度值;電源模塊主要用于為系統(tǒng)其他各個模塊提供所需要的電源。此外還有串口通信,撥碼開關(guān)等小模塊,功能是輔助調(diào)試和方便參數(shù)微調(diào)。
當(dāng)系統(tǒng)的硬件部分都設(shè)計定型后,建立在其上的軟件系統(tǒng)便直接決定了系統(tǒng)的后續(xù)使用性能和智能化程度。軟件系統(tǒng)的基本設(shè)計思路就是能采集穩(wěn)定圖像且分析處理去噪,然后通過核心芯片的控制系統(tǒng),做出判斷并發(fā)出指令,根據(jù)實際路況和周圍環(huán)境,有效地控制電機驅(qū)動和舵機轉(zhuǎn)向。 軟件開發(fā)主要涉及圖像采集、路徑識別、舵機控制和電機控制等。
智能車軟件系統(tǒng)的開發(fā), 其實就是能控制智能車在道路上穩(wěn)定、安全、快速地跑完全程,也就是在眾多設(shè)計思路中,求解一個最優(yōu)解的問題,就是在最短的時間內(nèi)跑完整個包含復(fù)雜環(huán)境的賽道;采取最優(yōu)的控制算法完成對賽道的識別并作出合理的執(zhí)行措施;并能夠很好地去除噪點且保證智能車運行穩(wěn)定。
經(jīng)過反復(fù)調(diào)試和測算,在采集圖像完整、道路信息正確的情況下,我們采用經(jīng)典的PID 算法對智能車進行閉環(huán)控制。 假定單位反饋e(t)代表理想輸入與實際輸出的誤差,這個誤差信號被送到控制器,控制器處理算出誤差信號的積分值和微分值,并將它們與原誤差信號進行線性組合,得到輸出量U(t)進而控制PWM 模塊,通過PWM 模塊對舵機和電機進行有效控制。PID 控制器由比例單元P、積分單元I 和微分單元D 組成,其反饋輸入e(t)與輸出U(t)的關(guān)系為:
U(t)=Kp[e(t)+1/Ti∫e(t)dt+Td*de(t)/dt]
式中積分的上下限分別是0 和t,其中Kp 為比例系數(shù);Ti 為積分時間常數(shù);Td 為微分時間常數(shù)。本軟件設(shè)計采用增量式PID 算法,PID控制算法是工程實際中應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律,其規(guī)律和特性已眾所熟知,此處就不再贅述。
灰度值是指黑白圖像中點的顏色深度, 范圍值從0 到255 變化,白色為255,黑色為0。 我們采用的數(shù)字?jǐn)z像頭OV7620 反饋的圖像信息就是黑白圖像,根據(jù)實際環(huán)境的變化,即光線明暗會隨著時間和路況的不同而發(fā)生變化,我們采用動態(tài)閾值的處理辦法,對道路黑白圖像進行二值化處理并去噪,就會得到我們需要的圖像。 處理后的圖像通過液晶屏顯示出來,如圖3 所示:
圖3 道路實況二值化
道路的二值化處理結(jié)果的反饋信息, 就是攝像頭的掃描結(jié)果,實際上也就是由行和列組成的一系列的數(shù)值。智能車的行駛需要一條系統(tǒng)自動識別處理得到的行車線, 其實就是沿著道路的中性線行駛,根據(jù)道路圖像的二值化處理結(jié)果,需要計算出道路的中心線。 我們采取隔行隔列處理圖像的辦法,實際處理了50 行74 列,假定遇到彎道等復(fù)雜路況時,我們只處理30 行。攝像頭采集的黑白圖像離車身最近的一行是第50 行。我們設(shè)定智能車的起步線為第50 行的第37 列,即為道路的中間點,以此為基準(zhǔn),當(dāng)攝像頭掃描第49 行時,以50 行的中心點作為本行的基準(zhǔn)點向兩邊掃描,以此類推;當(dāng)一幅圖像掃描結(jié)束,我們記錄這幅圖像最后一行的中心點, 作為下一幅圖像第50 行的中心點,然后再以此為中心點向兩側(cè)掃描。如此執(zhí)行中心線提取的任務(wù),會增加圖像信息的準(zhǔn)確性,以上一行的中心點作為本行處理掃描的基準(zhǔn)點,由于兩行數(shù)據(jù)的實際距離不大,故兩行的中心點數(shù)值偏差不會太大,即使是急彎道的相鄰兩行的中心點數(shù)值相差也不會很大,如若數(shù)值差別較大,那么就可以認(rèn)定為是噪點,直接設(shè)置此點數(shù)據(jù)無效。 此外,這樣的處理方式還會大大節(jié)省單片機的運算處理時間,提到處理效率。有了穩(wěn)定且可靠的中心線,智能車就可以沿著中心線行駛了,我們的設(shè)計目的也就達(dá)到了。
[1]卓晴,黃開勝,邵貝貝.學(xué)做智能車[M].北京:北京航空航天大學(xué)出版社,2007.