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