王立玲,王建成,白躍
(1.河北大學 電子信息工程學院,河北 保定 071002 2.東北大學 信息科學與工程學院,遼寧 沈陽 110819)
汽車工業蓬勃發展,家庭汽車數量劇增,對道路安全和駕駛安全的要求更高.交通壓力日益顯著.因此智能汽車的研究成為時代發展的需求.路徑識別跟蹤技術和快速、穩定的控制策略標志著汽車智能化發展水平.本論文將圖像采集硬件、圖像采集及處理、路徑識別和控制策略進行闡述,最終實現一套能夠自主識別路線,并且可以快速、穩定行駛的智能車軟硬件系統.
智能車的總體運動過程是:攝像頭采集賽道信息,通過I/O 口輸入到單片機,經過特定的程序算法提取出賽道的信息,通過對不同路徑的識別,產生不同的控制信號,進而控制舵機的轉角和電機的轉速,從而影響智能車的運動路徑.

圖1 LM2940外圍電路Fig.1 Peripheral circuit of LM2940
CMOS攝像頭較CCD 攝像頭功耗低,由于舵機和電機控制突變引起的電壓變化對攝像頭圖像質量影響小,CMOS攝像頭供電簡單只需要5V 的電源電壓,而CCD 攝像頭功耗大,供電復雜需要采用DC-DC 升壓到12V.CMOS攝像頭相對于CCD 來說圖像的刷新頻率高,但是CMOS攝像頭的感光度低,動態效果差,清晰度較差.綜合以上情況選用OV7620的CMOS攝像頭[3].
攝像頭對電源要求比較高,為了獲得穩定的圖像給攝像頭供電的電源文波要小,電源容量要大.綜合以上要求選用紋波小、低壓差、線性度好的LM2940,其外圍電路如圖1所示.
本文設計的競速智能車系統通過數字攝像頭OV7620進行道路信息采集,圖像采集與處理至關重要,為后續的轉向與速度控制提供必要的前提.
利用原始圖像信息提取出路徑信息,計算出智能車在道路上的偏移量,進而轉化為舵機輸出值,又增加了路徑識別算法,從而能夠使智能車在道路上沿最短路徑行駛,改善了智能車轉向特性.
OV7620攝像頭每秒鐘30幀畫面,每幀畫面分為奇場和偶場,在每場的開始有一個脈沖.用微控制器的外部捕捉功能檢測每場圖像的起始.當場中斷到來時需要將行計數器置為0以便讀取新一場的數據,同時還需要讀取脈沖累加器中的數據,以判斷當前智能車的速度值,關閉場中斷等待行中斷的響應[5].
與場中斷類似,為了區分行與行之間的數據在每行的開始會有一個行中斷脈沖信號.在行中斷中要完成圖像灰度值得讀取.在采集完最后一行數據之后再對數據進行分析處理,每一個像素信號用相應灰度值進行表示,而灰度值為一個八位二進制數據,即0到255之間的值,通常情況下白色的賽道灰度值較大,黑色的邊沿灰度值較小,通過灰度值的不同來提取賽道邊緣信息[6],圖像信號采集作為整個控制算法的基礎,具有非常重要的地位,同時也是智能車軟件設計的一個技術難點.其設計得好壞與否,直接關系到智能車的整體性能.此智能車以OV7620作為主傳感器,以紅外對管作為輔助傳感器對賽道的信息進行采集.圖像采集流程如圖2所示.OV7620把賽道的亮暗程度轉化成像素的灰度值,并通過數據總線傳送給單片機.單片機將采集的原始圖像的灰度值存儲到自身的RAM 中,由于單片機的內部RAM 和處理速度的限制并不是將所有的像素灰度值都存儲下來,而是選取特定的行,每行讀取184個灰度值.這些行是通過實際標定選取的,對應實際空間的行間距是相等的(標定方法見2.3).
采集到了原始圖像并不代表完成了圖像的處理,還需要提取其中的有用信息將圖做像壓縮處理,即提取路徑引導線信息.路徑引導線信息主要包括路徑中心位置、路徑曲率、路徑類型、智能車所在位置等.
由于攝像頭安裝的高度及角度問題使得采集到的道路圖像具有較大的梯形失真,表現為“近大遠小”.為了還原路徑的真實信息,本文采用逆透視變換的方法解決梯形失真[6].逆透視變換的基本思想是將攝像頭采集到的圖像像素點(u,v)(u表示行數,v表示列數),轉換為現實坐標系下的(x,y)(x 表示橫向偏移量,y 表示縱向距車頭距離).

圖2 圖像采集流程Fig.2 Flow chart of image acquisition
識別路徑引導線常用的方法主要有閾值法和邊緣檢測法.邊緣檢測法在圖像受到光照等影響時表現較為穩定[6],綜合實際硬件條件和實時性考慮,本文采用邊沿跟蹤檢測算法.
為了解決邊沿檢測法效率低的問題,本文將單純的邊沿檢測法改進為跟蹤邊沿檢測法.由于黑色的引導線是2條相距45cm 的連續的曲線,用攝像頭對其采樣后相鄰2行的邊沿的位置相差不大.可以利用前1行或2行邊沿的水平位置來推算下一行邊沿所在的大概的位置,并在預測的位置進行搜索即可.這樣一來可以大大地提高邊沿檢測法的效率,減輕了單片機負擔為單片機處理數據節省了大量的寶貴時間.

圖3 邊沿跟蹤流程Fig.3 Flow chart of edge tracking
路徑提取算法如下:
1)按照上述方法進行圖像信息的采集;
2)尋找基準行時,因為近處的黑線穩定,有效信息量大,遠處黑線信息量少,所以采用由近及遠的辦法尋找基準行[9];
3)由黑色的引導線的連續性,根據基準行黑線位置判斷出黑線的趨勢,推斷出下一行的黑線大概位置,確定出掃描范圍,避免整行逐點掃描,節省時間.邊沿跟蹤檢測流程圖如圖3所示.
尋找左(右)基準行:從前5行的中間向右(左)尋找下降沿(對應的灰度值由大突然變小,并且差值大于一定的閾值).當存在連續的2行找到下降沿并且下降沿的水平距離小于18個像素點時便認為找到了左(右)基準行,記錄下左(右)基準行與下降沿的水平位置.
在尋找到基準行后左(右)邊沿跟蹤:從左(右)開始向下1行需找下降沿,尋找的范圍是前一行下降沿左右像素點,找到下降沿,記錄水平位置(像素水平坐標),跟蹤尋找后面一行的下降沿.
根據標定從圖像的240行中采集40行數據,每隔實際距離的3cm采集1行,從而前瞻達到120cm,足以滿足控制的需要.其中標定的方法是:在跑道上每隔3cm 用黑色膠帶做標記,將智能車放在跑道中間,然后用攝像頭逐行采集,記錄各個標記所對應的行數,所記錄的40個數據便是用來控制所需采集的行數,通過標定可利用這些準確的信息去識別不同的賽道并且很方便地利用各段路徑信息去控制智能車的轉向與速度.

圖4 標定示意Fig.4 Schematic diagram of calibration
根據大量的實驗采集數據統計與調試,當左邊有效行和右邊有效行中所在共同的行數大于6時,將2條黑導引線進行歸中處理,即計算出中心導引線,否則根據一般去控制,利用信息量多的一邊去控制轉向與速度,將所采集的40行數據進行分段求斜率并且根據智能車在跑道上位置動態地求偏移量,根據這些數據我們足以將各種路徑區分開來,進而更好地去控制.

圖5 隊列加權求平均值流程Fig.5 Flow chart of weighted averages of queue
對于舵機的控制,為了讓智能車能夠在小S 和直道等各種路徑上運行平穩,平滑的通過,選擇了變參數PD 控制.這對優化路徑起到了關鍵的作用.
直道和小S彎,選擇較小的KP和KD.這樣可以使舵機不會因較小的位置偏差而抖動,使智能車在通過這2種路徑時能較平穩快速的通過.
由直道進入彎道,選擇適中的KP和較大的KD,在進入彎道時偏差變化率較大,KD起較大的控制作用,加大KD可以使智能車沿內切路徑行駛.
大S路徑,此時存在連續的轉彎,位置偏差和偏差變化率都比較大,因此選擇適中的KP,KD,再配合120cm 的前瞻,可以很好地實現智能車以最短路徑行駛.
另外,為了轉向的平滑性,本文采用5次的位置偏差以隊列形式進行舵機轉向控制.把連續5個位置偏差值看成一個長度固定為5隊列,采樣到一個新數據放入隊尾,并扔掉原來隊首的一個數據(先進先出原則).越接近現在時刻的數據,權重取得越大.把隊列中的5個數據進行加權平均運算,就可獲得新的濾波結果,如圖5所示.特點是給予新采樣值的權重越大,則靈敏度越高,但轉向平滑度越差.優點是適合采樣周期較短的系統,改變權重即可調整靈敏度[10].
本文采用了bang-bang和PID 相結合的方式進行速度控制,如圖6.當速度誤差絕對值小于10%時采用PID 控制;當速度誤差絕對值大于10%時采用Bang-Bang 控制.基于增量式PID 算法的在電機調速領域的優越性,電機控制的PID 部分采用增量式PID 控制算法,經過一段時間的摸索,本文選擇了帶死區的改進PID 控制算法,并且采用工程整定法調試出了穩定的PID 參數,使智能車快速、穩定、準確地達到預設定的速度.
對于不同的路徑,如直道,小S彎、彎道,大S彎等,只有合理的速度給定,才能使智能車平穩安全地行駛.基本思想是根據前邊的路徑判斷入彎減速,出彎加速,直道快速.由于車輪摩擦系數的限制,智能車不可能以直道的速度行駛通過彎道 速度過快車輛就會側滑甚至翻車.這就要求在彎道時將速度給定減到一個安全的較低速度,而在直道或是小S彎道時把速度提升上來.實際上這樣還不夠,需要在舵機打到期望值以后在彎道內部開始加速,如果等到車身出彎以后進入直道再加速不免有些遲滯.根據之前路徑的路況判斷,在不同路徑給以不同給定速度.如在直道的時候,讓智能車瞬間達到一個較高于預設的速度,接著逐漸趨于預設速度,而彎道的時候則較平緩的達到預設的速度.

圖6 速度控制策略框圖Fig.6 Block diagram of the speed control strategy
本系統采用CMOS攝像頭OV7620進行路徑信息采集,通過單片機數據IO接收攝像頭采集信息進行路徑識別,采用邊沿跟蹤圖像檢測算法進行道路信息識別,提出了變參數PD控制方法對舵機進行最優控制,使智能車沿著最優路徑行駛,采用帶死區的PID和bang-bang相結合的控制方法對智能車速度進行快速穩定的閉環控制.實驗結果表明,本競速智能車系統能夠自主識別路線,沿任意給定路徑快速、穩定地行駛全程.
[1] 侯明,付興建,吳迎年,等.基于LabVIEW VISA 智能車無線調試系統[J].國外電子測量技術,2012(1):67-69,88.HOU Ming,FU 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] 卓晴,黃開勝,邵貝貝.學做智能車—挑戰飛思卡爾杯[M].北京:北京航空航天大學出版社,2007:1-18.
[3] 黃開勝,陳宋.汽車理論與智能模型車機械結構調整方法[D].北京:清華大學汽車安全與節能國家重點實驗室,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單片機控制舵機[D].北京:清華大學工程物理系,2007.AN Peng,MA Wei.Using single-chip S12control servo[D].Beijing:Department of Engineering Physics,Tsinghua University,2007.
[5] 李晨,宓超.基于飛思卡爾單片機MC9S12XS128的智能車設計[J].上海海事大學學報,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] 吳振宇,趙亮,馮林.基于分數階PID 控制器的智能車控制[J].控制工程,2011,03:401-404.WU Zhenyu,ZHAO Liang,FENG Lin.Control of intelligent vehicle based on fractional order PID[J].Control engineering,2011,03:401-404.
[7] 張曉煒,楊錦,王建.第四屆全國大學生智能汽車邀請賽技術報告[R].西安:西安交通大學,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 攝像頭的智能小車系統的研制[J].電子測量技術,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] 賀亮亮,謝劍橋,周沈剛.第六屆全國大學生智能汽車邀請賽技術報告[R].北京:北京科技大學,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] 宋壽鵬.數字濾波器設計及工程應用[M].鎮江:江蘇大學出版社,2009:65-78.