基于攝像頭的智能車預(yù)測控制策略
要實現(xiàn)一個完整的基于攝像頭的智能小車,第一步要做的就是將攝像頭輸出的模擬信號通過單片機A/D轉(zhuǎn)換采集到單片機中,然后對采集到的原始的圖像數(shù)據(jù)進(jìn)行處理,以獲取賽道中央的黑線在圖像坐標(biāo)系中的位置。
接著,就要利用處理得到的圖象信息對智能小車進(jìn)行控制。就目前而言,各參賽隊用的最多的橫向控制(轉(zhuǎn)向控制)就是PID控制。采用PID控制方式,無需對攝像頭作嚴(yán)格的標(biāo)定,因為只須將黑線在圖像坐標(biāo)系中的位置偏差乘相應(yīng)的PID系數(shù),就可以作為轉(zhuǎn)向的控制律,至于PID系數(shù)取多少,則可以通過簡單的實驗調(diào)試而獲得合適的取值。正因為這樣,PID控制方式簡單易行。
而PID控制方式卻有其局限性,其最大的局限性就是無法很好控制智能小車的行駛線路(簡稱“走線”)。PID參數(shù)的變化會引起小車走線的變化,即使PID參數(shù)相同的情況下,小車速度的或高或低同樣會引起小車走線的變化。這樣,因為小車走線的不確定性,為了比賽時小車不沖出賽道,只有盡量控制小車完全沿線行駛,這樣才能使小車無論在左側(cè)還是右側(cè)都有較充足的賽道裕量。但另一方面,完全沿著賽道中央黑線的走線也許并不是最優(yōu)的走線,比如,在一些特殊路段抄近道,可能會使走線更優(yōu),從而提高比賽成績。往下所要介紹的預(yù)測控制策略,就是為了達(dá)到使小車走線盡可能最優(yōu)的目的。
基本思路
預(yù)測控制的基本思想是:在每一控制周期內(nèi),通過攝像頭獲取車前方一定區(qū)域內(nèi)黑線的位置信息——與PID控制方式不同的是,預(yù)測控制多了攝像頭標(biāo)定這一步,即將黑線在圖像坐標(biāo)系下的位置轉(zhuǎn)換成世界坐標(biāo)系下的位置——然后規(guī)劃出一條較優(yōu)化的走線,成為期望走線。然后根據(jù)小車的運動學(xué)模型和轉(zhuǎn)向模型可以確定(一種最優(yōu)化問題求解的過程),在往下若干個控制周期內(nèi),轉(zhuǎn)角控制量依次取多少時,小車走線才能最“接近”規(guī)劃出的期望走線。僅僅選取求解出的當(dāng)前控制周期的轉(zhuǎn)角控制量作為實際的轉(zhuǎn)角控制量。在下一周期,將重新進(jìn)行一次上述的規(guī)劃、最優(yōu)化求解過程,如此反復(fù)循環(huán)執(zhí)行下去。具體介紹如下文所示。
攝像頭標(biāo)定
因為要進(jìn)行走線規(guī)劃,就得獲取黑線的實際位置信息。通過攝像頭所獲得的只是黑線在圖像坐標(biāo)系下的位置。因此,首先得求出圖像坐標(biāo)系到世界坐標(biāo)系的變換關(guān)系,這個變換關(guān)系是一個仿射變換關(guān)系,可以事先寫出這個變換關(guān)系的形式,然后再取一些標(biāo)定樣點,通過計算標(biāo)定出這個變換關(guān)系形式中的各個參數(shù)。攝像頭標(biāo)定因為不作為本文重點,受篇幅所限,具體細(xì)節(jié)不在此贅述。
走線規(guī)劃
在賽車比賽中,走線選取的好壞可以作為評價車手水平高低的一個標(biāo)準(zhǔn)。在智能小車比賽中,走線選取的好壞同樣顯得很重要。針對不同類型的賽道甚至賽道組合,走線的選取,既要考慮到走線路程的長短,還要考慮到相應(yīng)的速度限制,因此,如何走線是一個值得研究的問題。在各種走線規(guī)劃的策略中,一種最樸素而且效果也較明顯的想法就是“抄近道”。所謂抄近道就是在小車不沖出賽道的前提下,使小車在賽道上沿盡可能短的路線前進(jìn)。最典型的兩種抄近道的表現(xiàn)方式如圖1所示,即蛇形道(a)和單向彎(b)上的抄近道。
圖1 智能車抄近道的兩種方式
運動學(xué)模型和轉(zhuǎn)向模型
運動學(xué)模型是描述智能小車位置、航向角、前輪轉(zhuǎn)角之間動態(tài)變化關(guān)系的模型。轉(zhuǎn)向模型是描述前輪轉(zhuǎn)角自身變化時的動態(tài)關(guān)系的模型。運動學(xué)模型和轉(zhuǎn)向模型可以描述成如下狀態(tài)方程的形式:
其中,x、y表示智能小車的位置,ψ表示航向角,δ表示前輪轉(zhuǎn)角,c=v/L(L為軸間距wheelbase),a=-1/T0(T0為轉(zhuǎn)向舵機的響應(yīng)時間常數(shù))。
最優(yōu)轉(zhuǎn)角控制量求解
為描述方便,假設(shè)當(dāng)前控制周期為kT周期,并假設(shè)kT、(k+1)T、……、(k+m)T周期的轉(zhuǎn)角控制控制量依次為u(k)、u(k+1)、……、u(k+m),并假設(shè)(k+m)T周期以后的轉(zhuǎn)角控制量為零(即車前輪正對著前方)。根據(jù)運動學(xué)模型和轉(zhuǎn)向模型,可以推得智能小車在任一時刻的位置。設(shè)推算出的kT、(k+1)T、……、(k+P)T周期(通常取P>m)(即在未來(P+1)周期內(nèi))的智能小車的位置,依次為(x(k),y(k))、(x(k+1),y(k+1))、……、(x(k+P),y(k+P))。前面在走線規(guī)劃時已經(jīng)確定出了期望線路的位置,這樣就可以求出未來(P+1)周期內(nèi)每一周期智能小車與期望線路的位置偏差,記為d(k)、d(k+1)、……、d(k+P)。取一個正定的性能指標(biāo):
J反應(yīng)的是智能小車實際走線(根據(jù)模型預(yù)測的)和期望走線間的相近程度。J越小,則實際走線與期望走線也越接近。可以看出,每一組u(k)、u(k+1)、……、u(k+m)的取值將對應(yīng)一個特定的J的取值。通過一些數(shù)值的最優(yōu)化求取方法,可以確定出一組u(k)、u(k+1)、……、u(k+m)的取值u0(k)、u0(k+1)、……、u0(k+m),使性能指標(biāo)J取得最小值。那么,以u0(k)作為kT周期的實際轉(zhuǎn)交控制量,而u0(k+1)、……、u0(k+m)將摒棄。在(k+1)T周期,將重復(fù)走線規(guī)劃和上述最優(yōu)量求取得過程,然后僅僅以所求得的(k+1)T周期的轉(zhuǎn)角控制量作為該周期的實際轉(zhuǎn)角控制量。反復(fù)循環(huán)執(zhí)行前述過程。
結(jié)語
采用預(yù)測控制的策略,能更有效地利用攝像頭所獲取的豐富的賽道信息,能夠較準(zhǔn)確地控制小車的走線,使小車在一些特征路段能按較優(yōu)的線路前進(jìn),節(jié)省用時,提高比賽成績。限于單片機的計算能力有限,在具體實施預(yù)測控制策略時,可以作一些簡化處理,如將未來(m+1)個周期內(nèi)的轉(zhuǎn)角控制量假設(shè)成相同的取值,即u(k)=u(k+1)=……=u(k+m),這樣能大大降低計算量,卻依然能有不錯的表現(xiàn)效果。
pid控制相關(guān)文章:pid控制原理
pid控制器相關(guān)文章:pid控制器原理
評論