摘 要: 以第四屆“飛思卡爾”杯全國大學(xué)生智能汽車大賽為背景,,介紹了基于視覺傳感器的智能車控制算法,包括方向控制和速度控制,。在PID算法或模糊控制算法幾乎為所有參賽隊伍所采用的背景下,,提出了“最優(yōu)曲率法”,并使用與之配合的“貪婪路徑規(guī)劃”算法,。該小車在復(fù)雜賽道上的平均速度達(dá)3.3 m/s,,其控制算法設(shè)計對智能車設(shè)計有借鑒意義。
關(guān)鍵詞: 智能車,;飛思卡爾,;最優(yōu)曲率算法;路徑規(guī)劃
以飛思卡爾智能車大賽為背景,,制作了一個能巡線快速行駛的小車,。
1 巡線控制算法
1.1 運動模型
智能車的運動控制是通過控制驅(qū)動馬達(dá)和伺服舵機實現(xiàn)的。在理想情況下,,可以認(rèn)為4個輪胎繞著同一個圓心做純滾動,其離散運動模型公式為:
其中V是線速度,,W為角速度,, x(t)、y(t)為小車的坐標(biāo),,angle(t)為智能車的方向角(以小車前進(jìn)方向為起始線,,逆時針為正),Δt為采樣周期,。模型如圖1所示,。
由于模型車的運動速度較高,,在行駛過程中輪胎與賽道會發(fā)生一定側(cè)滑,因此還需要引進(jìn)側(cè)滑修正,。
1.2 舵機控制
方向控制是控制策略的難點,。傳統(tǒng)的PID算法[1,2]不需要對控制對象做細(xì)致分析,,只需根據(jù)控制效果對參數(shù)進(jìn)行調(diào)整[3],。但由于控制器的輸入量均對輸出量產(chǎn)生影響,且高度耦合,,很難根據(jù)控制效果準(zhǔn)確地對參數(shù)進(jìn)行修正,,因此參數(shù)的整定工作十分繁重。此外,,當(dāng)車的狀態(tài)不同時(如低速和高速時),,最佳參數(shù)也有很大不同,這給進(jìn)一步調(diào)試帶來了困難,。
本文采用“最優(yōu)曲率法”,。控制思想是:模型車在一個控制周期內(nèi)的運動軌跡可以近似為一段圓弧,,整個運動軌跡可以看做由小段圓弧連接成的曲線,。在假設(shè)線速度恒定的前提下,給定路徑上的一個點就能確定出智能車到達(dá)該點所應(yīng)具有的舵機角度[4],。在每個控制周期內(nèi)選擇路徑上的一點(或若干點),,根據(jù)預(yù)先建立的圓弧運動模型計算出模型車在接下來的一個(或若干個)運動周期內(nèi)要到達(dá)選定點所需的理想狀態(tài),此時該控制周期的輸出量就是在未來幾個控制周期內(nèi)使模型車的實際狀態(tài)盡可能逼近理想狀態(tài)的控制量,。
以車的后橋中點為原點建立坐標(biāo)系,,車的中軸為y軸,其正向為車的前方,。設(shè)(c_x,,c_y)為路徑上的點在該坐標(biāo)系中的坐標(biāo)。則控制量的計算公式為[5]:
這種方法在車速較低時可以取得很好的效果,,當(dāng)車速較高時,,有很多因素對控制效果的影響會顯著增大,需要作出適當(dāng)?shù)难a償,。其中主要因素是控制量的實際輸出時刻與理想輸出時刻的延時,,這個延時是由圖像處理和控制量的計算都需要一定時間造成的。對此,,本文采取的方法是根據(jù)車的當(dāng)前狀態(tài)估算出控制量的輸出時刻的路徑信息,,用這個路徑信息計算控制量。
另一個重要因素是側(cè)滑,。智能車在行駛過程中存在側(cè)滑,,可以通過側(cè)滑角作補償,。設(shè)車輪的角度為θ,加入側(cè)滑后的等效車輪角度為θ′,,本文假設(shè)二者符合如下關(guān)系:
還有一個重要因素是,,當(dāng)車速較高時,舵機的響應(yīng)速度相對較慢,。要克服這個問題,,應(yīng)使舵機提前做出反應(yīng)。因此需要在控制器的輸出量中引入路徑的趨勢,。本文用前瞻點處的斜率k表示路徑的趨勢,,在原控制量θ的基礎(chǔ)上增加一個與路徑趨勢相關(guān)的分量θ″=para×v×k,其中para通過實驗結(jié)果自動調(diào)整,,如果需要,,可以將para設(shè)為和其他變量相關(guān)的函數(shù)。
經(jīng)過上述改進(jìn)之后,,最優(yōu)曲率法在車速較高的時候依然能夠取得很好的控制效果,。此部分程序流程圖如圖3所示。
該算法的優(yōu)點是參變量較少,,且相互間的耦合很小,,對控制效果的影響較為獨立,可以根據(jù)實驗結(jié)果快速確定調(diào)整量,。只要對參數(shù)進(jìn)行適當(dāng)調(diào)整,,就能取得較好的控制效果。
1.3 速度控制
在速度決策方面,,首先嘗試了基于有效前瞻的速度控制[6],,即v=基準(zhǔn)值+有效前瞻量×系數(shù)。這個策略的好處是簡單有效,。但事實上智能車通過路線的最佳速度和前瞻量并不呈簡單的線性關(guān)系,。如果處于彎道中,尤其是“十”字彎中時,,由于車的阻力增大,,車速也大大下降,同時由于車體運行較穩(wěn)定,,車輪不會發(fā)生大幅度轉(zhuǎn)向,,側(cè)滑的風(fēng)險很小,這時可以提速,;當(dāng)出彎時,如果檢測或預(yù)測到前方較平緩,,可以放心加速,。由于局部快不一定整體快,,因此還要做好銜接,使得整個跑的過程中各速度間過渡圓滑,?;谶@些想法,本文在前面的速度決策上做了改進(jìn),,在保證安全性的前提下提高了整體速度,。
1.4 仿真調(diào)試
為了便于分析控制效果,本文搭建了一個Matlab仿真環(huán)境,。在這個仿真環(huán)境中,,車模的參數(shù)和動態(tài)響應(yīng)特性都是參照實驗結(jié)果設(shè)計的,并引入了側(cè)滑,、延時,、舵角死區(qū)等很多干擾因素,可以在很大程度上反映算法的真實情況,。仿真界面如圖4所示,。
在實際的調(diào)試過程中,本文首先在仿真環(huán)境下設(shè)計算法,,并分析模型車通過各種跑道時所需要的理想的舵機角度,,測試通過后將算法移植到模型車上。如果實際控制效果與仿真結(jié)果差別較大,,則將控制算法的執(zhí)行情況與理想情況下的期望值進(jìn)行比較,,針對差別有目的地作出改進(jìn)。這在很大程度上提高了調(diào)試效率,。
2 貪婪路徑規(guī)劃
2.1 優(yōu)化問題
優(yōu)化問題中有兩個約束條件:
(1)車不出邊界,。
(2)小車行駛路徑最短。主要是彎道切彎行駛,,大小S彎走最優(yōu)路徑,。
對于一般問題,全局最優(yōu)解是最好的結(jié)果,,但是智能小車行駛的跑道是隨機的,,并且小車傳感器獲得的道路信息有限,要得到全局最優(yōu)解很困難,,所以根據(jù)貪婪算法思想,,在局部的每一點獲得最優(yōu)解來逼近全局最優(yōu)解。貪婪路徑規(guī)劃就是給出一些小車行駛路徑點,,保證小車行駛時最大程度地滿足以上兩個優(yōu)化條件,。
2.2 最優(yōu)解分析求解
比賽用的路徑只有兩種:直道和圓弧道。關(guān)鍵在圓弧道,分單圓弧道和多圓弧道,,單圓弧道指銜接兩個直道的一個彎道,,多圓弧道指S形彎道。
首先,,分析單圓弧,。單圓弧示意圖如圖5所示,已知路徑寬為60 cm,,T點為小車傳感器識別出的最遠(yuǎn)前瞻路徑點,。
如果車向著T點行駛?cè)ィ囉锌赡艹雠艿?。所以需要計算出最遠(yuǎn)前瞻點和車頭連線(OT)與路徑圓弧線(弧OT)之間的最遠(yuǎn)距離D,,如果D超出20 cm(車模寬20 cm,當(dāng)車模恰好壓跑道邊時,,車模中心與路徑線的距離是20 cm),,就不滿足約束條件(1)。
當(dāng)D超出20 cm時,,可以將前瞻點T后移,,計算出使D=20 cm的T′點,如圖5所示,。在給出的直線上根據(jù)小車的速度可以選取一點作為貪婪規(guī)劃的解路徑點,。速度快時,選點前移,,反之后移,。
其次,對于多圓弧S形道,,需要找到兩個圓弧的連接點,,稱為轉(zhuǎn)折點。圖6中T點為轉(zhuǎn)折點,。S形道路與一般彎道路徑不同,,不能用單圓弧的方法求出最優(yōu)路徑點,因為最遠(yuǎn)前瞻點可能跨兩個圓弧,,求取距離D困難,,最重要的是用單圓弧的方法利用最遠(yuǎn)前瞻點求出的解不是最優(yōu)的解??梢园l(fā)現(xiàn)在圓弧轉(zhuǎn)折點前面的圓?。ɑT)是一個單圓弧,用這段單圓弧來求解才是合理的,。利用最小二乘法可以對每一個點求出一個斜率,,其中轉(zhuǎn)折點的特點是轉(zhuǎn)折點是斜率曲線的極值點,。可以發(fā)現(xiàn),,對于90°小S彎,,D等于14.65 cm,小車直線通過,,而120°中等S彎,D等于25 cm,。
需要注意,,由于傳感器的視野和圖像處理的限制,有時最遠(yuǎn)前瞻點只能取到N點,,如圖5所示,。這時可以使用廣角鏡頭(實驗中選取焦距f=2.8 mm)擴大視野,提高圖像處理算法的精度來使前瞻點盡量靠前,,到達(dá)T附近,。
本文根據(jù)轉(zhuǎn)向模型,提出了“最優(yōu)曲率”算法及“貪婪路徑規(guī)劃”算法,。實驗表明,,這兩種算法結(jié)合起來能使小車更安全、快速地行駛,,可作為除PID算法和模糊控制算法以外的第三種選擇,。
參考文獻(xiàn)
[1] 卓晴,黃開勝,,邵貝貝,,等.學(xué)做智能車[M].北京:北京航空航天大學(xué)出版社,2007.
[2] 馬艷,,徐淑華,,周建春.基于攝像頭尋跡的智能電動車的設(shè)計[J].機械與電子,2009,,27(2):21-24.
[3] 艾寧,,瞿少成,劉冬,,等.基于CCD攝像頭的智能車路徑識別及跟蹤研究[J].電子測量技術(shù),,2009,32(8):77-80.
[4] 尹念東,,余群.基于橫向預(yù)瞄偏差的駕駛員前視軌跡控制模型[J].汽車工程,,2002,24(4):287-289.
[5] 魏玉虎,,石琛宇,,姜建釗,,等.基于視覺的智能車轉(zhuǎn)向控制策略[J].電子技術(shù)應(yīng)用,2009,,35(1):130-134.
[6] 蔡慶楠,,蔡興旺,潘錦洲.上海大學(xué)S.U.L.挑戰(zhàn)者隊技術(shù)報告[R],,2009.