王立玲,王建成,白躍
(1.河北大學(xué) 電子信息工程學(xué)院,河北 保定 071002 2.東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110819)
汽車工業(yè)蓬勃發(fā)展,家庭汽車數(shù)量劇增,對(duì)道路安全和駕駛安全的要求更高.交通壓力日益顯著.因此智能汽車的研究成為時(shí)代發(fā)展的需求.路徑識(shí)別跟蹤技術(shù)和快速、穩(wěn)定的控制策略標(biāo)志著汽車智能化發(fā)展水平.本論文將圖像采集硬件、圖像采集及處理、路徑識(shí)別和控制策略進(jìn)行闡述,最終實(shí)現(xiàn)一套能夠自主識(shí)別路線,并且可以快速、穩(wěn)定行駛的智能車軟硬件系統(tǒng).
智能車的總體運(yùn)動(dòng)過(guò)程是:攝像頭采集賽道信息,通過(guò)I/O 口輸入到單片機(jī),經(jīng)過(guò)特定的程序算法提取出賽道的信息,通過(guò)對(duì)不同路徑的識(shí)別,產(chǎn)生不同的控制信號(hào),進(jìn)而控制舵機(jī)的轉(zhuǎn)角和電機(jī)的轉(zhuǎn)速,從而影響智能車的運(yùn)動(dòng)路徑.
圖1 LM2940外圍電路Fig.1 Peripheral circuit of LM2940
CMOS攝像頭較CCD 攝像頭功耗低,由于舵機(jī)和電機(jī)控制突變引起的電壓變化對(duì)攝像頭圖像質(zhì)量影響小,CMOS攝像頭供電簡(jiǎn)單只需要5V 的電源電壓,而CCD 攝像頭功耗大,供電復(fù)雜需要采用DC-DC 升壓到12V.CMOS攝像頭相對(duì)于CCD 來(lái)說(shuō)圖像的刷新頻率高,但是CMOS攝像頭的感光度低,動(dòng)態(tài)效果差,清晰度較差.綜合以上情況選用OV7620的CMOS攝像頭[3].
攝像頭對(duì)電源要求比較高,為了獲得穩(wěn)定的圖像給攝像頭供電的電源文波要小,電源容量要大.綜合以上要求選用紋波小、低壓差、線性度好的LM2940,其外圍電路如圖1所示.
本文設(shè)計(jì)的競(jìng)速智能車系統(tǒng)通過(guò)數(shù)字?jǐn)z像頭OV7620進(jìn)行道路信息采集,圖像采集與處理至關(guān)重要,為后續(xù)的轉(zhuǎn)向與速度控制提供必要的前提.
利用原始圖像信息提取出路徑信息,計(jì)算出智能車在道路上的偏移量,進(jìn)而轉(zhuǎn)化為舵機(jī)輸出值,又增加了路徑識(shí)別算法,從而能夠使智能車在道路上沿最短路徑行駛,改善了智能車轉(zhuǎn)向特性.
OV7620攝像頭每秒鐘30幀畫面,每幀畫面分為奇場(chǎng)和偶場(chǎng),在每場(chǎng)的開始有一個(gè)脈沖.用微控制器的外部捕捉功能檢測(cè)每場(chǎng)圖像的起始.當(dāng)場(chǎng)中斷到來(lái)時(shí)需要將行計(jì)數(shù)器置為0以便讀取新一場(chǎng)的數(shù)據(jù),同時(shí)還需要讀取脈沖累加器中的數(shù)據(jù),以判斷當(dāng)前智能車的速度值,關(guān)閉場(chǎng)中斷等待行中斷的響應(yīng)[5].
與場(chǎng)中斷類似,為了區(qū)分行與行之間的數(shù)據(jù)在每行的開始會(huì)有一個(gè)行中斷脈沖信號(hào).在行中斷中要完成圖像灰度值得讀取.在采集完最后一行數(shù)據(jù)之后再對(duì)數(shù)據(jù)進(jìn)行分析處理,每一個(gè)像素信號(hào)用相應(yīng)灰度值進(jìn)行表示,而灰度值為一個(gè)八位二進(jìn)制數(shù)據(jù),即0到255之間的值,通常情況下白色的賽道灰度值較大,黑色的邊沿灰度值較小,通過(guò)灰度值的不同來(lái)提取賽道邊緣信息[6],圖像信號(hào)采集作為整個(gè)控制算法的基礎(chǔ),具有非常重要的地位,同時(shí)也是智能車軟件設(shè)計(jì)的一個(gè)技術(shù)難點(diǎn).其設(shè)計(jì)得好壞與否,直接關(guān)系到智能車的整體性能.此智能車以O(shè)V7620作為主傳感器,以紅外對(duì)管作為輔助傳感器對(duì)賽道的信息進(jìn)行采集.圖像采集流程如圖2所示.OV7620把賽道的亮暗程度轉(zhuǎn)化成像素的灰度值,并通過(guò)數(shù)據(jù)總線傳送給單片機(jī).單片機(jī)將采集的原始圖像的灰度值存儲(chǔ)到自身的RAM 中,由于單片機(jī)的內(nèi)部RAM 和處理速度的限制并不是將所有的像素灰度值都存儲(chǔ)下來(lái),而是選取特定的行,每行讀取184個(gè)灰度值.這些行是通過(guò)實(shí)際標(biāo)定選取的,對(duì)應(yīng)實(shí)際空間的行間距是相等的(標(biāo)定方法見2.3).
采集到了原始圖像并不代表完成了圖像的處理,還需要提取其中的有用信息將圖做像壓縮處理,即提取路徑引導(dǎo)線信息.路徑引導(dǎo)線信息主要包括路徑中心位置、路徑曲率、路徑類型、智能車所在位置等.
由于攝像頭安裝的高度及角度問(wèn)題使得采集到的道路圖像具有較大的梯形失真,表現(xiàn)為“近大遠(yuǎn)小”.為了還原路徑的真實(shí)信息,本文采用逆透視變換的方法解決梯形失真[6].逆透視變換的基本思想是將攝像頭采集到的圖像像素點(diǎn)(u,v)(u表示行數(shù),v表示列數(shù)),轉(zhuǎn)換為現(xiàn)實(shí)坐標(biāo)系下的(x,y)(x 表示橫向偏移量,y 表示縱向距車頭距離).
圖2 圖像采集流程Fig.2 Flow chart of image acquisition
識(shí)別路徑引導(dǎo)線常用的方法主要有閾值法和邊緣檢測(cè)法.邊緣檢測(cè)法在圖像受到光照等影響時(shí)表現(xiàn)較為穩(wěn)定[6],綜合實(shí)際硬件條件和實(shí)時(shí)性考慮,本文采用邊沿跟蹤檢測(cè)算法.
為了解決邊沿檢測(cè)法效率低的問(wèn)題,本文將單純的邊沿檢測(cè)法改進(jìn)為跟蹤邊沿檢測(cè)法.由于黑色的引導(dǎo)線是2條相距45cm 的連續(xù)的曲線,用攝像頭對(duì)其采樣后相鄰2行的邊沿的位置相差不大.可以利用前1行或2行邊沿的水平位置來(lái)推算下一行邊沿所在的大概的位置,并在預(yù)測(cè)的位置進(jìn)行搜索即可.這樣一來(lái)可以大大地提高邊沿檢測(cè)法的效率,減輕了單片機(jī)負(fù)擔(dān)為單片機(jī)處理數(shù)據(jù)節(jié)省了大量的寶貴時(shí)間.
圖3 邊沿跟蹤流程Fig.3 Flow chart of edge tracking
路徑提取算法如下:
1)按照上述方法進(jìn)行圖像信息的采集;
2)尋找基準(zhǔn)行時(shí),因?yàn)榻幍暮诰€穩(wěn)定,有效信息量大,遠(yuǎn)處黑線信息量少,所以采用由近及遠(yuǎn)的辦法尋找基準(zhǔn)行[9];
3)由黑色的引導(dǎo)線的連續(xù)性,根據(jù)基準(zhǔn)行黑線位置判斷出黑線的趨勢(shì),推斷出下一行的黑線大概位置,確定出掃描范圍,避免整行逐點(diǎn)掃描,節(jié)省時(shí)間.邊沿跟蹤檢測(cè)流程圖如圖3所示.
尋找左(右)基準(zhǔn)行:從前5行的中間向右(左)尋找下降沿(對(duì)應(yīng)的灰度值由大突然變小,并且差值大于一定的閾值).當(dāng)存在連續(xù)的2行找到下降沿并且下降沿的水平距離小于18個(gè)像素點(diǎn)時(shí)便認(rèn)為找到了左(右)基準(zhǔn)行,記錄下左(右)基準(zhǔn)行與下降沿的水平位置.
在尋找到基準(zhǔn)行后左(右)邊沿跟蹤:從左(右)開始向下1行需找下降沿,尋找的范圍是前一行下降沿左右像素點(diǎn),找到下降沿,記錄水平位置(像素水平坐標(biāo)),跟蹤尋找后面一行的下降沿.
根據(jù)標(biāo)定從圖像的240行中采集40行數(shù)據(jù),每隔實(shí)際距離的3cm采集1行,從而前瞻達(dá)到120cm,足以滿足控制的需要.其中標(biāo)定的方法是:在跑道上每隔3cm 用黑色膠帶做標(biāo)記,將智能車放在跑道中間,然后用攝像頭逐行采集,記錄各個(gè)標(biāo)記所對(duì)應(yīng)的行數(shù),所記錄的40個(gè)數(shù)據(jù)便是用來(lái)控制所需采集的行數(shù),通過(guò)標(biāo)定可利用這些準(zhǔn)確的信息去識(shí)別不同的賽道并且很方便地利用各段路徑信息去控制智能車的轉(zhuǎn)向與速度.
圖4 標(biāo)定示意Fig.4 Schematic diagram of calibration
根據(jù)大量的實(shí)驗(yàn)采集數(shù)據(jù)統(tǒng)計(jì)與調(diào)試,當(dāng)左邊有效行和右邊有效行中所在共同的行數(shù)大于6時(shí),將2條黑導(dǎo)引線進(jìn)行歸中處理,即計(jì)算出中心導(dǎo)引線,否則根據(jù)一般去控制,利用信息量多的一邊去控制轉(zhuǎn)向與速度,將所采集的40行數(shù)據(jù)進(jìn)行分段求斜率并且根據(jù)智能車在跑道上位置動(dòng)態(tài)地求偏移量,根據(jù)這些數(shù)據(jù)我們足以將各種路徑區(qū)分開來(lái),進(jìn)而更好地去控制.
圖5 隊(duì)列加權(quán)求平均值流程Fig.5 Flow chart of weighted averages of queue
對(duì)于舵機(jī)的控制,為了讓智能車能夠在小S 和直道等各種路徑上運(yùn)行平穩(wěn),平滑的通過(guò),選擇了變參數(shù)PD 控制.這對(duì)優(yōu)化路徑起到了關(guān)鍵的作用.
直道和小S彎,選擇較小的KP和KD.這樣可以使舵機(jī)不會(huì)因較小的位置偏差而抖動(dòng),使智能車在通過(guò)這2種路徑時(shí)能較平穩(wěn)快速的通過(guò).
由直道進(jìn)入彎道,選擇適中的KP和較大的KD,在進(jìn)入彎道時(shí)偏差變化率較大,KD起較大的控制作用,加大KD可以使智能車沿內(nèi)切路徑行駛.
大S路徑,此時(shí)存在連續(xù)的轉(zhuǎn)彎,位置偏差和偏差變化率都比較大,因此選擇適中的KP,KD,再配合120cm 的前瞻,可以很好地實(shí)現(xiàn)智能車以最短路徑行駛.
另外,為了轉(zhuǎn)向的平滑性,本文采用5次的位置偏差以隊(duì)列形式進(jìn)行舵機(jī)轉(zhuǎn)向控制.把連續(xù)5個(gè)位置偏差值看成一個(gè)長(zhǎng)度固定為5隊(duì)列,采樣到一個(gè)新數(shù)據(jù)放入隊(duì)尾,并扔掉原來(lái)隊(duì)首的一個(gè)數(shù)據(jù)(先進(jìn)先出原則).越接近現(xiàn)在時(shí)刻的數(shù)據(jù),權(quán)重取得越大.把隊(duì)列中的5個(gè)數(shù)據(jù)進(jìn)行加權(quán)平均運(yùn)算,就可獲得新的濾波結(jié)果,如圖5所示.特點(diǎn)是給予新采樣值的權(quán)重越大,則靈敏度越高,但轉(zhuǎn)向平滑度越差.優(yōu)點(diǎn)是適合采樣周期較短的系統(tǒng),改變權(quán)重即可調(diào)整靈敏度[10].
本文采用了bang-bang和PID 相結(jié)合的方式進(jìn)行速度控制,如圖6.當(dāng)速度誤差絕對(duì)值小于10%時(shí)采用PID 控制;當(dāng)速度誤差絕對(duì)值大于10%時(shí)采用Bang-Bang 控制.基于增量式PID 算法的在電機(jī)調(diào)速領(lǐng)域的優(yōu)越性,電機(jī)控制的PID 部分采用增量式PID 控制算法,經(jīng)過(guò)一段時(shí)間的摸索,本文選擇了帶死區(qū)的改進(jìn)PID 控制算法,并且采用工程整定法調(diào)試出了穩(wěn)定的PID 參數(shù),使智能車快速、穩(wěn)定、準(zhǔn)確地達(dá)到預(yù)設(shè)定的速度.
對(duì)于不同的路徑,如直道,小S彎、彎道,大S彎等,只有合理的速度給定,才能使智能車平穩(wěn)安全地行駛.基本思想是根據(jù)前邊的路徑判斷入彎減速,出彎加速,直道快速.由于車輪摩擦系數(shù)的限制,智能車不可能以直道的速度行駛通過(guò)彎道 速度過(guò)快車輛就會(huì)側(cè)滑甚至翻車.這就要求在彎道時(shí)將速度給定減到一個(gè)安全的較低速度,而在直道或是小S彎道時(shí)把速度提升上來(lái).實(shí)際上這樣還不夠,需要在舵機(jī)打到期望值以后在彎道內(nèi)部開始加速,如果等到車身出彎以后進(jìn)入直道再加速不免有些遲滯.根據(jù)之前路徑的路況判斷,在不同路徑給以不同給定速度.如在直道的時(shí)候,讓智能車瞬間達(dá)到一個(gè)較高于預(yù)設(shè)的速度,接著逐漸趨于預(yù)設(shè)速度,而彎道的時(shí)候則較平緩的達(dá)到預(yù)設(shè)的速度.
圖6 速度控制策略框圖Fig.6 Block diagram of the speed control strategy
本系統(tǒng)采用CMOS攝像頭OV7620進(jìn)行路徑信息采集,通過(guò)單片機(jī)數(shù)據(jù)IO接收攝像頭采集信息進(jìn)行路徑識(shí)別,采用邊沿跟蹤圖像檢測(cè)算法進(jìn)行道路信息識(shí)別,提出了變參數(shù)PD控制方法對(duì)舵機(jī)進(jìn)行最優(yōu)控制,使智能車沿著最優(yōu)路徑行駛,采用帶死區(qū)的PID和bang-bang相結(jié)合的控制方法對(duì)智能車速度進(jìn)行快速穩(wěn)定的閉環(huán)控制.實(shí)驗(yàn)結(jié)果表明,本競(jìng)速智能車系統(tǒng)能夠自主識(shí)別路線,沿任意給定路徑快速、穩(wěn)定地行駛?cè)?
[1] 侯明,付興建,吳迎年,等.基于LabVIEW VISA 智能車無(wú)線調(diào)試系統(tǒng)[J].國(guó)外電子測(cè)量技術(shù),2012(1):67-69,88.HOU Ming,F(xiàn)U Xingjian,WU Yingnian,et al.Wireless debugging system of smart-car based on LabVIEW VISA[J].Foreign electronic measurement technology,2012(1):67-69,88.
[2] 卓晴,黃開勝,邵貝貝.學(xué)做智能車—挑戰(zhàn)飛思卡爾杯[M].北京:北京航空航天大學(xué)出版社,2007:1-18.
[3] 黃開勝,陳宋.汽車?yán)碚撆c智能模型車機(jī)械結(jié)構(gòu)調(diào)整方法[D].北京:清華大學(xué)汽車安全與節(jié)能國(guó)家重點(diǎn)實(shí)驗(yàn)室,2006.HUANG Kaisheng,CHEN Song.The theory of automobile and adjustment method of intelligent model car mechanical structural[D].Beijing:Tsinghua University,State Key Laboratory of automotive safety and energy,2006.
[4] 安鵬,馬偉.使用S12單片機(jī)控制舵機(jī)[D].北京:清華大學(xué)工程物理系,2007.AN Peng,MA Wei.Using single-chip S12control servo[D].Beijing:Department of Engineering Physics,Tsinghua University,2007.
[5] 李晨,宓超.基于飛思卡爾單片機(jī)MC9S12XS128的智能車設(shè)計(jì)[J].上海海事大學(xué)學(xué)報(bào),2012,33(1):82-84.LI Chen,MI Chao.Design of intelligent vehicle based on freescale single-chip MC9S12XS128[J].Journal of Shanghai Maritime Univeristy,2012,33(1):82-84.
[6] 吳振宇,趙亮,馮林.基于分?jǐn)?shù)階PID 控制器的智能車控制[J].控制工程,2011,03:401-404.WU Zhenyu,ZHAO Liang,F(xiàn)ENG Lin.Control of intelligent vehicle based on fractional order PID[J].Control engineering,2011,03:401-404.
[7] 張曉煒,楊錦,王建.第四屆全國(guó)大學(xué)生智能汽車邀請(qǐng)賽技術(shù)報(bào)告[R].西安:西安交通大學(xué),2009:32-36.ZHANG Xiaowei,YANG Jin,WANG Jian.The fourth national university intelligent vehicle tournament technical report[R].Xi'an:Xi'an Jiao Tong University,2009:32-36.
[8] 田瑤,劉曉邦,瞿少成,等.基于CCD 攝像頭的智能小車系統(tǒng)的研制[J].電子測(cè)量技術(shù),2010,33(6):106-109.TIAN Yao,LIU Xiaobang,QU Shaocheng,et al.Research on a smart car system based on CCD camera[J].Electronic measurement technology,2010,33(6):106-109.
[9] 賀亮亮,謝劍橋,周沈剛.第六屆全國(guó)大學(xué)生智能汽車邀請(qǐng)賽技術(shù)報(bào)告[R].北京:北京科技大學(xué),2010:18-21.HE Liangliang,XIE Jianqiao,ZHOU Shengang.The sixth national university intelligent vehicle tournament technical report[R].Beijing:University of Science and Technology Beijing,2010:18-21.
[10] 宋壽鵬.數(shù)字濾波器設(shè)計(jì)及工程應(yīng)用[M].鎮(zhèn)江:江蘇大學(xué)出版社,2009:65-78.