□ 孫 備 □ 王 爍 □ 王 勇 □ 韓致信
蘭州理工大學 機電工程學院 蘭州 730050
隨著電子信息科技的快速發展,智能這個詞充斥著生活的每一個角落,給人們帶來了方便,也推動著世界快速發展。智能汽車是一種正在研制的新型高科技汽車,它不需要人駕駛,在運行過程中借助道路信息檢測和控制系統作出控制決策,并由車輛的執行機構實現自動駕駛。本實驗要制作一輛能夠自主識別道路的模型車,智能樣車采用Freescalel6位單片機作為核心控制單元,以CMOS攝像頭作為路徑檢測傳感器,對白色道路中的兩條黑色導線進行識別,設計電機驅動電路、編寫相應的軟件以及裝配模型車,選用合適的控制算法使其能完成自主尋跡并及時作出轉向和速度調整。本實驗對智能車運動模型進行了詳細的分析,最終采用模糊PID來控制轉向,速度閉環控制[1]。
PID控制由于結構簡單、穩定可靠以及調整方便而成為工業過程控制的經典方法之一,其應用已有幾十年的歷史。單純從PID各參數來看,比例環節能加快響應速度,提高系統調節精度;積分環節能消除系統穩態誤差;微分環節具有對調節目標超前的預測功能,能改善系統的動態環節。由于智能車存在非線性、時變特性,使單純的PID控制難以達到預期的控制效果,而模糊控制能有效改善這種情況。模糊控制在一定程度上模仿了人的控制,它不需要建立被控對象精確的數學模型,而將專家的控制經驗、知識表達成語言控制規則,用規則去控制目標系統,但是它不能有效地控制穩態誤差。本系統將兩者結合起來,取得了比較好的效果[2]。
智能車在賽道上隨不同賽道負載隨時變化,如果單純以固定的PWM占空比進行速度開環控制,存在控制周期長、速度響應慢的缺點,所以采用閉環控制。
智能樣車的樣機及總體設計方案見圖1、圖2。
智能樣車硬件設計主要包括電源模塊、路徑檢測模塊、直流電機驅動模塊、轉向舵機驅動模塊、速度檢測與調節模塊等。
智能車的硬件電路是由一節7.2V、2 000 mA 的鎳鎘充電電池提供,由于電路中不同模塊所需的工作電壓和電流容量不相同,因此,需要通過穩壓和升壓電路將7.2V的電池電壓轉換成各個模塊所需的電壓。

▲圖1 智能車樣機

▲圖2 智能汽車總體方案設計圖
此模塊的主要任務是通過攝像頭采集當前的道路信息,使智能車可根據道路情況進行實時處理。第七屆全國大學生智能汽車競賽把賽道引線由原來的中間一道黑線改為沿賽道兩邊緣粘貼,如圖3所示。這樣更貼近現實中的道路,同時也增加了信息處理量,對比賽提出了更高的要求。
此模塊的主要任務是對模型車后輪的直流電機進行驅動,設計和制作了符合智能車要求的驅動電路板。
此模塊的主要任務是對模型車的舵機進行驅動,控制智能車的方向和轉向速度,設計和制作了符合舵機要求的驅動電路板。
由于實際路徑存在多變性,為了使智能車平穩地運行,采用速度閉環控制系統,速度檢測模塊能夠修正速度誤差,提高智能車路徑跟蹤的準確性和實時性。
路徑信息識別分為兩步,第一步是圖像采集,第二步是圖像處理。最有難度的是圖像處理,包括圖像去噪、圖像二值化、黑線提取以及尋跡算法。
圖像采集使用OV6620數字攝像頭 (見圖4),供電電壓為5V,它內置一個352×288的圖像陣列,并具有高達60幀/s的圖像捕捉能力。內部集成了A/D和視頻分離模塊,使采集程序簡單,采集質量高,視頻信號轉換在內部進行,減輕了單片機的負擔。為了減少單片機的數據存儲量,增加其處理速度,采取隔10行一提取的方法,這樣既能保證道路提取的需要,又減少了數據量[3]。
圖像信息通過攝像頭采集后存儲在一個二維數組image[i][j]中,為了分析圖像的特征,需要從圖像中分離出對象物,從而把圖形和背景作為分離的二值圖像對待。可以根據下列程序進行圖像二值化:If image[i][j]>t image[i][j]=0;else image[i][j]=1;通常用最后的二值圖像中值為1的部分表示圖形,值為0的部分表示背景,值t為閾值。圖像二值化關鍵是閾值t的確定,可根據現場提取閾值進行設定。

▲圖3 攝像頭采集的圖像

▲圖4 OV6620攝像頭
黑線提取采用邊緣檢測的方法。二維數組的行數和列數即為像素的圖像坐標,若求出了黑線邊緣的圖像坐標,就知道了黑線的位置。黑線邊緣的特點是其左、右兩像素為一黑一白,兩像素值差的絕對值等于1,而其余處的相鄰兩像素或全白、或全黑,像素值差的絕對值等于0。這樣,只要對兩數組每行中任何相鄰兩點做差,就可以根據差值的大小來判斷此兩點處是否為黑線邊緣,還可以根據差值的正負來判定邊緣處是左白右黑,還是左黑右白。黑線提取后,本實驗采用黑線位置與中心的偏差E和偏差變化率Ec作為轉向的輸入量。
模糊控制是以模糊集理論、模糊語言變量和模糊控制邏輯推理為基礎的一種智能控制方法,從行為上模擬人的思維方式,它對難建模的對象實施模糊推理和決策,實際上是一種非線性控制。該方法首先將操作人員或專家經驗編成模糊規則,然后將來自傳感器的實時信號模糊化,作為模糊規則的輸入,完成模糊推理,再將推理后得到的輸出量加到執行器上[4]。
模糊控制器的原理見圖5。
3.2.1 輸入輸出變量的確定

▲圖5 模糊控制器原理圖
智能車模糊控制采用二維模糊控制器,輸入變量E、Ec,分別為賽車前端的傳感器給出的賽車位置和道路中心的橫向偏差和偏差的變化率,其輸出變量U為賽車的前輪轉向角,通過改變輸出PWM占空比來改變。
3.2.2 模糊化
在模糊控制系統中,智能車所檢測到的圖像信息是精確量,要將這些精確的物理量轉變成語言變量即模糊化。為了減少單片機的運算量,提高處理速度,本采集程序中,采用隔10行提取,將24行110列數據存儲于二維數組 image[24][110]中,用來檢測引導線的位置,由于本實驗的賽道引導線處于賽道的兩邊,把兩引導線的列數分別存儲到2個一位數組black_x1[j]和black_x2[j]中,通過圖像分析,賽道的引導線是連續的,因此利用 black_x1[j]-black_x1[j-1]的差值或black_x2[j]-black_x2[j-1]的差值就可以判斷智能車是在直道還是在彎道,向左轉彎還是向右轉彎。根據不同的賽道情況,偏差E和偏差變化率Ec在試驗中測得,偏差E的論域設定為[-95,95],誤差變化率Ec的論域設定在[-10,10]。因此每次控制中,誤差的變化值范圍可將小車轉動角度Angle的范圍控制在[-35,35]內。為了兼顧系統的控制精度和響應速度,偏差E論域取11個模糊子集,偏差變化率Ec論域取5個模糊子集。
3.2.3 模糊規則庫的建立
確定控制規則是模糊控制器設計的核心工作,控制規則的多少視輸入及輸出數量及所需控制精度而定。控制規則庫常根據人們的經驗得到,根據駕駛員駕車的經驗,當車與軌道的偏差很大,且偏差的變化率也很大時,應使舵機向相反的方向轉較大的角度;當車與軌道的偏差不是很大時,舵機應稍轉或不轉;當偏差較大而偏差變化率向相反方向很大時,說明偏差正在變小此時舵機可以不轉[5]。根據以上控制經驗可建立方向模糊控制規則表,將這些模糊規則以程序的形式寫到單片機中,從而實現對智能車的控制。部分程序如下所示:


3.2.4 速度閉環控制及剎車功能的實現
速度閉環控制采用Bang-bang控制及PID控制,如果安裝車速傳感器,就可以實時測出賽車的速度,當速度與設定值之差過大時,賽車滿占空比加速;當速度高于設定值時,占空比為0;當速度接近設定值時采用PID控制,這樣賽車能夠準確地控制在設定速度上,速度響應快。另外,理想的賽車速度控制應當是直道上以極限速度行駛,在即將進入彎道時速度降至最大安全速度過彎,出彎后繼續全速行駛,為了提高直道上的車速并保證入彎迅速降速,賽車必須在最短時間內剎車,比較幾種剎車方式后,最好的剎車方式是驅動電機反轉,當電機與賽車后輪轉向相反時,驅動輪與賽車行駛的方向相反,驅動輪與賽道的摩擦力使賽車迅速減速,另外還可以根據車速度傳感器返回值和彎道識別來調整電機反轉的時間,保證了賽車高速過彎和其穩定性。
本文主要介紹了攝像頭智能車的研究與實現。本次試驗除了對以上內容作了研究,同時也對智能車模型作了很大的改進,包括重心的調整、前輪定位、車輪輪胎的處理等。經過對各個參數進行不斷調整,實踐證明,該智能車尋跡效果好,系統響應快,具備良好的動力性能和轉向性能,平均速度能達到2.8 m/s。
[1] 任娜.基于16位單片機MC9S12DGl28智能車系統的設計[D].西安:長安大學,2008.
[2] 董秀成,楊栩.基于視覺的智能車道路檢測與轉向控制策略研究[J].西華大學學報,2010,29(2):135-138.
[3] 葛家斌.基于OV7620圖像傳感器的智能循跡系統的設計[J].電腦知識與技術,2011,7(33):8286-8287.
[4] 余永權,曾碧.單片機模糊邏輯控制[M].北京:北京航空航天大學出版社,1995.
[5] 孫紹杰.一種基于模糊控制的智能車轉向控制算法研究[J].軍械工程學院學報,2011,32(1):27-28.