李鵬博
(河北工程大學信息與電氣工程學院,河北邯鄲056038)
智能車(intelligent vehicle,IV)又稱輪式移動機器人,是一個集環境感知、規劃決策、操作控制等功能于一體的智能體,涉及機械、運動學與動力學、電子、計算機、信息處理、控制和人工智能等科學技術領域[1]。在智能車技術的運用中,除了能夠讓其自動識別各種不同形式的道路外,如何讓其達到并維持較高的運行速度,是智能車控制的一個關鍵問題。
舵機的響應速度和道路信息提取的可靠性,是制約智能車車速的兩個主要因素。在提高舵機響應速度方面,張淑謙等[3]對智能車舵機轉向控制算法進行了研究,提出了效果較好的PD控制算法。韓毅等[4]通過細化舵機控制量及延長舵機力臂來提高其控制精度和響應速度。在道路信息提取方面,目前普遍采用邊緣檢測法。本文通過改進舵機的安裝方式,增加其力臂長度,進一步提高其響應速度;通過引入一個動態閾值來改進道路信息提取的可靠性和穩定性。
系統硬件以飛思卡爾半導體公司的16位系列單片機XS128為主控核心,共分為5大模塊單元:電源管理單元、圖像采集單元、方向控制單元、電機驅動單元、車速檢測單元。其中,電源管理單元如圖1所示。

電源的質量決定一個系統的電氣穩定性。智能小車所有模塊單元的電源均來自于7.2 V的充電電池,鑒于各自的工作電壓各不相同,因此需要獨立的電壓變換電路為其提供電源。對于采用5 V電壓的元器件如單片機、車速檢測單元等,采用低壓差穩壓芯片LM2904進行供電(圖2);H橋的MOS管需要較高的開啟電壓,并且電壓越高其內阻越小,所以H橋驅動單元采用與CCD攝像頭單元相同的12 V電壓,設計時用MC34063通過電阻編程將電壓升壓到12 V(圖3);對于舵機,實驗發現升高供電電壓可以提高響應速度,而電壓過高則又容易造成舵機燒毀或打齒,因此通過在其供電電路中串聯1個或2個二極管來為其供電。

道路信息的提取是智能小車巡航的依據。采用一臺實驗室電視顯示設備,將模擬CCD攝像頭的視頻輸出端接到電視設備的視頻輸入端,供電后不斷調整鏡頭,當圖像達到最清晰時鎖死鏡頭。利用高速AD轉換芯片TLC5510將模擬信息轉換為8位的數字信息后送入單片機的P0端口。結合視頻同步分離芯片LM1881,將行中斷和場中斷信號同步分離出來,為單片機讀取圖像提供時序。行場中斷信號分別接入PE1和PJ0引腳,鑒于行場中斷信號為正脈沖信號,將單片機端口寄存器配置為中斷觸發模式,正跳變沿觸發,這樣單片機就能夠及時捕捉到中斷信號,讀取數據。視頻制式為PAL制式,每秒有25幀圖像輸出,由于每幀圖像由奇偶兩場組成,因此只需采集兩者之一即可,這樣可以節省一個圖像采集周期用做單片機的信息處理。LM1881信號同步分離電路如圖4所示。

由于白色賽道和黑色中心線經過攝像頭采集后的圖像灰度值相差很大,通常近處黑色中心線的灰度值大于0而小于十進制數30;白色賽道的灰度值則大于180而小于255。因此,可通過邊緣檢測法對道路信息進行提取[3]。然而由于攝像頭的畸變和距離的影響會導致黑線采集后的灰度值隨著距離的變遠而變大,對此根據距離的遠近引入一個動態閾值進行提取,以提高識別率和穩定性。
方向控制所用的舵機屬于位置伺服電機,其輸出轉角與其輸入的PWM脈寬成一定的線性關系。通過改變輸入的PWM脈寬,可以控制舵機轉動一定的角度。舵機的中心位置對應的PWM脈寬值一般在1 600左右,8位的PWM寄存器不能滿足脈寬值的要求,所以將MC9S12XS128的2個8位PWM寄存器PWM0、PWM1級聯成一個16位PWM寄存器,這樣就可以滿足舵機PWM的脈寬值基數的要求,細化PWM的控制量,提高其控制精度[5]。為了進一步提高舵機的響應速度,采用將舵機豎放的方法,并將其墊高;通過盡可能增加其力臂,使其在擺動相同的方向下只需轉動較小的角度,減少其執行時間,提高響應速度。
鑒于電機驅動單元的能耗比較大,特別是在啟動和行駛中調速時極易導致電源電壓過低導致使單片機復位,因此在電容電感等器件的選擇上需要注意參數間的相互配合。對于電機的驅動采用了基于分立器件搭建的“H”橋全橋驅動電路[6-7]。“H”橋全橋驅動電路的開關器件選用大功率場效應晶體管IRF3205。利用“H”橋全橋驅動電路可對電機實施反轉控制的特性,在需要制動時可采取反轉策略得到類似剎車的制動效果,迅速降低車速,以安全的速度迅速入彎,最大化節省時間。“H”橋全橋驅動電路如圖5所示。

智能小車通過光電編碼器實時測得小車速度。通過在后輪驅動齒輪上咬合一個光電編碼器,將光電編碼器輸出的脈沖信號經過運算放大器電路放大整形后,再輸入到單片機的輸入捕獲引腳進行采集計數,根據計數值計算得出對應的車速。
智能小車的控制流程是先提取道路信息,然后結合車速檢測單元測得的當前實時車速,準確驅動電機運轉和舵機轉向,使舵機轉向的時機與速度配合得當,達到智能小車又快又穩巡航行駛的目的。圖6為主程序流程圖。
道路信息的準確、快速提取,對于智能小車的巡航行駛意義重大。設計中使用片外高速AD轉換芯片代替單片機自帶的AD轉換功能,既省大量的CPU時間,又可以使每行采集到的圖像點數增加到一百余點,這樣就為根據前瞻距離來調整采集點數提供了空間,提高了算法提取的可靠度和穩定度;通過對場中斷進行延時采集的方法解決視野寬窄遠近合適但偏離中心位置的現象。
使用邊緣檢測法提取黑線。根據道路信息提取情況,選取一個能夠將白色賽道和黑色中心線區分開的閾值,采用單邊緣或雙邊緣跳變檢測法提取賽道中心黑線。為了達到更好的道路信息提取效果,引入了動態閾值法和多閾值法。設計中分成將圖像從上到下分成3部分,對每一部分求灰度值的平均值作為此部分中心線的提取閾值。中心線提取的程序如下:


舵機是控制小車運動方向的部件,如果程序能夠控制舵機及時準確地做出反應將大大提高智能小車的速度。PID算法具有較好的魯棒性,且算法簡單,通過對其參數的合理標定,可以使舵機在直道平穩而對彎道靈敏。控制舵機的PID算法模型通過下式實現:

其中,MVn、MVn-1是當前操作量和上次操作量;ΔMVn是當前操作量的微分;en、en-1、en-2是當前、上次、上上次的偏差;Kp、Ki、Kd是系數。在設計中考慮到積分環節是一個累積過程,有一定的滯后性,不利于舵機的響應速度,決定將其去掉。且經過實驗不斷驗證,得出對舵機的控制采用去掉積分環節的 PD 算法更為合適[8-9]。
為了使智能小車的車速控制成閉環控制方式,同時為了使其反應更靈敏快速,也采用了去掉積分環節的PD算法[6]。車速計算公式如下:

6式中:e=Set_speed-Cur_speed;Set_speed是要設置的車速,Cur_speed是光電編碼器檢測到的實時車速,兩者之差代回上式做計算,通過Kp和Kd計算修正后,可得到需要輸出的車速。PD算法控制器參數的標定需要通過不斷的試驗得出,這是使用PD算法的一個不足之處。實驗表明,該控制器可快速靈敏的對車速進行精確控制,表現出非常好的控速效果[4]。
通過對影響智能車速度的相關因素的分析,實現了基于視頻的自動巡航智能小車的快速穩定行駛。實驗和實踐證明,該智能小車自動巡航效果好,實現了不同場地光照條件下的自動巡航,抗現場光線干擾能力強,具備良好的速度和靈活特性,在2010屆全國大學生智能車競賽上取得了東北賽區一等獎的好成績,證明了相關技術的合理性和有效性。
[1] 付夢印,鄧志紅,劉彤.智能車輛導航技術[M] .北京:科學出版社,2009.
[2] 沈志熙,黃席樾,楊鎮宇,等.基于Boosting的智能車輛多類障礙物識別[J] .計算機工程,2009,35(14):241-242.
[3] 張淑謙,王國權.智能車黑線識別算法及控制策略研究[J] .電子技術,2009(3):89-91.
[4] 韓毅,楊天.基于HCS12單片機的智能尋跡模型車的設計與實現[J] .計算機工程與設計,2008,29(18):4736-4739.
[5] 韓慶瑤,洪草根,朱曉光,等.基于AVR單片機的多舵機控制系統設計及仿真[J] .計算機測量與控制,2011,19(2):332-334,339.
[6] 吳斌華,黃衛華,程磊,等.基于路徑識別的智能車系統設計[J] .電子技術應用,2007(3):80-83.
[7] 胡蓮君,宋 弘.移動智能機器人避障規劃研究[J] .四川理工學院學報:自然科學版,2008,21(4):87-90.
[8] 臺秀華.一致性方法的多仿生機器魚編隊對齊行為[J] .黑龍江科技學院學報,2012,22(1):79-84.
[9] 潘崢嶸,杜寶強,王樹東,等.基于CPLD的彩色視覺移動機器人路徑跟蹤系統[J] .計算機工程與設計,2007,28(5):1102-1103.