基于視覺的智能車轉向控制策略
汽車信息化、智能化是當今汽車研究的重點,已經成為衡量各國汽車工業(yè)發(fā)展水平的重要標志[1],智能汽車作為一種全新的汽車概念和汽車產品,將成為汽車生產和汽車市場的主流產品[2]。而“飛思卡爾”杯全國大學生智能車競賽由高等學校自動化專業(yè)教學指導分委員會主辦,飛思卡爾半導體公司協辦,并由各個分賽區(qū)的承辦大學組織。比賽以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感技術、電子、電氣、計算機、機械等多個學科交叉的科技創(chuàng)意性,旨在培養(yǎng)大學生對知識的把握和創(chuàng)新能力,以及從事科學研究的能力[3]。
本文引用地址:http://www.ex-cimer.com/article/196913.htm根據“飛思卡爾”智能車大賽規(guī)則要求:使用統(tǒng)一車模,核心控制單元采用飛思卡爾MC9S12DG128CPU。在此基礎上,自主構思控制方案及系統(tǒng)控制電路的設計。系統(tǒng)控制電路設計包括:傳感器信號的采集、處理電路設計、驅動電機及轉向舵機控制電路設計以及各類接口電路設計??刂品桨冈O計包括:控制系統(tǒng)的組成設計、各類算法的設計及優(yōu)化等內容。系統(tǒng)設計、調試完成后,在規(guī)定的、標有引導線的賽道上完成自尋跡行走,其賽道是在白色底板上鋪設黑色引導線,以完成時間最短者為優(yōu)勝。比賽分為光電組和攝像頭組。筆者為攝像頭組,采用的是攝像頭尋跡方式。
智能小車(以下簡稱小車)的控制系統(tǒng)主要由三大部分組成:傳感器信號采集及處理、車速控制和轉向控制。由攝像頭采集道路信息,經處理分析后識別路徑,根據不同的路徑決策出不同的速度和轉向角度[4-5]。在保證安全的基礎上,一方面需要考慮如何提高極限速度,另一方面需要考慮如何提高平均速度,其平均速度的大小最終將決定比賽成績。分析歷屆比賽可以發(fā)現,整個賽道中60%~70%的長度為彎道,因此,小車彎道行駛速度很大程度上決定了小車在整個賽道上平均速度的大小。本文將針對小車在行走過程中,就如何利用圖像數據,給出合理的轉向策略進行深入探討。
就普通駕駛員而言,駕駛車輛行駛在公路上,直道時保持高速運行狀態(tài),而彎道時會根據不同的彎道做出合理的決策。一般為先減速,然后在一個比較低的速度下通過彎道,過彎后加速,最終回到直道速度。而在賽車場上的情景則不同,賽車選手輕易不會選擇普通駕駛員的轉彎策略,而是利用前輪轉向帶來的向心力并結合賽車入彎前的固有慣性達到快速轉彎的目的。對于一輛有視覺的智能小車是否也可以模擬這種高速運動過程,從而贏得比賽?筆者在綜合分析視覺圖像的特點、舵機模型以及圓周運動的特點后提出了一種可以高速入彎而不必減速或輕微減速、同時又能保證小車不會沖出賽道的安全過彎策略。
1 道路信息提取
要實現一個完整的基于視覺尋跡的智能小車,首先需利用攝像頭獲取道路信息,然后對采集到的原始圖像進行數據處理,以獲取賽道中引導線在圖像坐標系中的位置[6-8]。
圖1為攝像頭安裝示意圖。其中,Z1為攝像頭距地面的高度;w為視野場景的寬度,其大小與攝像機安裝的俯角和高度都有關系;b為輪間距。對場景中的特征點,只要知道其在場景中的位置,即可計算出該點與小車的相對位置。由上往下延Z軸反方向看,可得到場景平面,如圖2所示。其中,場景平面離小車的距離為d,這段距離為盲區(qū),場景平面寬為W,長為H。定義小車的中線為基準線,由攝像頭獲得的圖像即是場景平面。受MC9S12DG128CPU單片機處理能力的限制,選用356×292 CMOS黑白攝像頭,將其設置為逐行掃描模式。單行采樣106點。根據實驗結果,綜合考慮各種因素,選取其中64行信息形成一幅64×106的圖像平面,用來判斷彎道、直道以及彎道位置,從而達到減小計算量的目的。圖像如圖3所示。
在圖3圖像平面的基礎上,利用參考文獻[9~10]中的方法逐行掃描提取引導線位置。對于沒有引導線的行將其標記出來并將沒有引導線的邊界行記為row_sure,這個值記錄著64行數據中從第幾行開始沒有引導線,簡稱為出界點。得到引導線在圖像中的位置,可根據引導線的圖像坐標來控制舵機的轉角。單行圖像數據的圖像坐標與其對應的真實場景坐標呈線性變換關系,即每行任意兩像素坐標的列差值乘以一個近似固定的比例系數K就可得到真實場景對應行坐標的差值:
ΔXworld=K×ΔXimage=K×(line2-line1) (1)
式中ΔXworld為真實場景坐標中兩點的距離,ΔXimage為圖像平面對應行上兩點的像素坐標的列差值。
利用上面的關系,可以間接測量出小車與目標引導線之間的偏角,如圖4所示。若設AB為基準線,即車的中線;AK為引導線;過F點向y軸做垂線,與基準線AB的交點為C,定義C點為基準位置。在三角形AFC中,角β為基準線與引導線之間的夾角:
在理想情況下,控制舵機向左偏轉β角度即可讓小車追隨到引導線。但這樣計算角度的計算負擔很重,簡化參考文獻[2]中橫向偏差的測量方法,在基準位置固定的情況下,可用CF的長度近似表示角度β的大小:
|CF|=K×β (3)
式中,K為一個比例系數。結合圖像平面與場景平面之間的關系,定義CF的長度即為偏差,轉化到圖像平面為:
err=line1-linem (4)
式中, linem為基準位置對應的列值,line1為同行引導線的列值,err為位置偏差。因此,在實際的軟件設計中,不必得到真實場景坐標,可以直接對引導線實際位置與基準位置間圖像坐標的差(line1-linem)設計控制算法。如增量PID控制器可設計為:
pid控制器相關文章:pid控制器原理
評論