基于視覺(jué)的智能車轉(zhuǎn)向控制策略
Δu(k)=u(k)-u(k-1)=KP[err(k)-err(k-1)]+KIerr(k)+KD[err(k)-2err(k-1)+err(k-2)]
式中,KP為比例系數(shù),KI為積分系數(shù),KD為微分系數(shù)。Δu為舵機(jī)給定的增量[7-11]。
2 轉(zhuǎn)向模型
獲得道路的位置信息,即獲得了此刻小車的轉(zhuǎn)向角。參考文獻(xiàn)[11]中的舵機(jī)轉(zhuǎn)向模型,在理想狀態(tài)下,此刻控制舵機(jī)使前輪偏轉(zhuǎn)相應(yīng)角度即可實(shí)現(xiàn)小車對(duì)道路的跟隨。舵機(jī)的轉(zhuǎn)向相當(dāng)于給車一個(gè)向心力,在轉(zhuǎn)角不變時(shí),小車做圓周運(yùn)動(dòng);如果控制驅(qū)動(dòng)電機(jī)的PWM脈寬不變,則小車做勻速圓周運(yùn)動(dòng),驅(qū)動(dòng)電機(jī)的 PWM脈寬對(duì)應(yīng)的小車速度相當(dāng)于勻速圓周運(yùn)動(dòng)的線速度。如圖5所示,設(shè)車的側(cè)輪距為b,舵機(jī)轉(zhuǎn)角為θ,O為車做圓周運(yùn)動(dòng)的圓心,R為外輪所對(duì)應(yīng)半徑,則每一個(gè)轉(zhuǎn)角對(duì)應(yīng)圓周運(yùn)動(dòng)的半徑[2]如下:
設(shè)控制周期為T,小車當(dāng)前速度為V,α為一個(gè)控制周期T內(nèi)小車沿圓周行駛的弧度數(shù),則有:
由以上模型可以看出,不同的速度和轉(zhuǎn)角會(huì)在一個(gè)控制周期T內(nèi)得到不同的弧度,對(duì)上述公式離散化后可以得到:
小車在轉(zhuǎn)彎的過(guò)程中,舵機(jī)轉(zhuǎn)角受多種因素限制(如:小車轉(zhuǎn)向機(jī)構(gòu)造成的轉(zhuǎn)向的延滯、舵機(jī)的時(shí)間常數(shù)等),是一個(gè)漸變的過(guò)程,而利用公式(8)進(jìn)行計(jì)算的前提是舵機(jī)的方向能隨控制量的改變而立即改變。為了簡(jiǎn)化分析,將舵機(jī)模型視為僅具有延滯時(shí)間TD的延滯環(huán)節(jié)而忽略其時(shí)間常數(shù)。如圖6所示,由于TD的存在,速度越大,在滯后時(shí)間TD內(nèi),小車行走的距離越遠(yuǎn)。
3 轉(zhuǎn)向策略設(shè)計(jì)
如圖7所示,設(shè)小車前方距離D處為彎道,小車此刻速度為V,結(jié)合圖6小車舵機(jī)轉(zhuǎn)向理想模型響應(yīng)曲線,如果讓小車在A點(diǎn)入彎,速度必須滿足:
D=V×TD (9)
在圖4中,對(duì)于基準(zhǔn)位置1和基準(zhǔn)位置2,由道路信息提取的結(jié)果,為了保證A點(diǎn)入彎,基準(zhǔn)位置2比基準(zhǔn)位置1更早地發(fā)出轉(zhuǎn)向命令,需要更大的速度才可以在A點(diǎn)入彎,在保證兩位置的速度可以安全過(guò)彎的前提下,基準(zhǔn)位置2得到了更高的入彎速度,所以更早地得到彎道的信息可以提高入彎速度。同時(shí)小車要想快速地入彎,必須將基準(zhǔn)位置提到一個(gè)與此刻速度匹配的位置,才可以抵消舵機(jī)延時(shí)帶來(lái)的附加行駛路徑。但并不是說(shuō)只要將基準(zhǔn)位置選得足夠遠(yuǎn)就可以得到很大的入彎速度,答案是否定的。小車的轉(zhuǎn)向?yàn)橐粋€(gè)近似的圓周運(yùn)動(dòng),不同的速度顯然對(duì)應(yīng)不同的行駛半徑,即不同的路徑。速度快時(shí),半徑大;速度慢時(shí),半徑小。過(guò)快的速度會(huì)使小車沖出賽道。競(jìng)賽賽道的彎道主要由360°、180°、90°、S型賽道組成。在圖8所示的180°彎道中,中間的粗實(shí)線為引導(dǎo)線,最外圍的實(shí)線為賽道邊界,曲線1、2、3、4為小車行駛路線。設(shè)所有行駛路線有同樣的入彎角度,曲線1、2、3為B點(diǎn)入彎,速度不同;曲線4為E點(diǎn)入彎,速度與曲線3速度一致。
顯然,曲線1、2、3中曲線3速度為最快,但路徑卻最長(zhǎng),同時(shí)還有沖出賽道的危險(xiǎn);曲線2雖“抄近道”,但速度稍慢;曲線1由于速度太慢而無(wú)法過(guò)彎。不難看出,其實(shí)曲線2、3、4的過(guò)彎時(shí)間相差并不是很大。但是由于曲線2中,由直道AB入彎時(shí)需要減速,過(guò)彎后需加速,這段時(shí)間卻比曲線3、4來(lái)得長(zhǎng)。經(jīng)綜合考慮,曲線3、4過(guò)彎時(shí)間最短。曲線3、4中曲線3很顯然有沖出賽道的危險(xiǎn),因此曲線4為過(guò)180°彎的最優(yōu)路徑??梢钥闯?,高速時(shí)提前入彎可以使小車以一個(gè)比較高的速度駛過(guò)彎道,同時(shí)保證了安全而又不會(huì)沖出賽道。
對(duì)于90°彎道,與180°類似,最優(yōu)的策略是為保持直道高速行駛,通過(guò)上述的提前入彎策略保證安全過(guò)彎。
對(duì)于S道的進(jìn)入,可以類推。而對(duì)于S道的行駛則應(yīng)適當(dāng)降低車速并將基準(zhǔn)位置適當(dāng)降低。如圖9所示,最短路徑也為最快速度,兩者是統(tǒng)一的。真實(shí)過(guò)程中很難做到讓車走CD路線,但是如果能使舵機(jī)保持在一個(gè)小角度左右調(diào)節(jié)的過(guò)程中則可逼近CD路線。實(shí)踐證明,高速通過(guò)S道時(shí)避免劇烈的角度變化給定為最優(yōu)策略。
綜合以上分析,可以得到以下兩點(diǎn)結(jié)論:
(1) 基準(zhǔn)位置距小車的距離與速度呈正比關(guān)系。想要不減速入彎,必須改變基準(zhǔn)位置,使之可以滿足公式(9)。
(2) 速度與轉(zhuǎn)彎半徑呈正比關(guān)系。保持高速入彎,同時(shí)不沖出賽道,提前入彎策略可以有效解決這個(gè)問(wèn)題。
4 策略的實(shí)現(xiàn)
由以上分析可知,場(chǎng)景中的基準(zhǔn)位置可以近似看成入彎點(diǎn),并且不同的速度會(huì)導(dǎo)致不同的入彎點(diǎn),也會(huì)導(dǎo)致不同的過(guò)彎路徑。因此,需完成的控制任務(wù)是:高速過(guò)彎,在入彎前不減速,為了防止沖出賽道還需要提前入彎??梢?jiàn),需要在與速度適應(yīng)的入彎點(diǎn)的基礎(chǔ)上進(jìn)一步提前基準(zhǔn)位置,即基準(zhǔn)位置離小車的前端距離為:
L=V×TD+V×τ (10)
式中,L為基準(zhǔn)位置離小車的距離,V為此刻小車的速度,V×TD為抵消延遲時(shí)間帶來(lái)的附加行駛距離,V×τ為提前入彎點(diǎn)的距離。
可以看出,基準(zhǔn)位置與小車的距離是一個(gè)與小車速度相關(guān)的變量,不同的速度需要不同的取值。對(duì)于不同的速度將基準(zhǔn)位置按照公式(10)設(shè)置,這樣即可以實(shí)現(xiàn)高速入彎。為了得到較佳的入彎點(diǎn),本策略對(duì)圖像平面(64×106)做了進(jìn)一步的處理,針對(duì)已經(jīng)得到的圖像平面(64×106),將圖像平面平分為10個(gè)區(qū)域,每個(gè)區(qū)域求取引導(dǎo)線的平均位置,對(duì)于沒(méi)有引導(dǎo)線的區(qū)域使用一個(gè)不可能出現(xiàn)的值代替,這樣便將引導(dǎo)線信息簡(jiǎn)化為10行信息表示,記為:average[i],i=1,2,…,10。其中,average[i]記錄每行信息中引導(dǎo)線的平均位置的列坐標(biāo)值,i標(biāo)表示行值。圖10為最終的圖像平面。
pid控制器相關(guān)文章:pid控制器原理
評(píng)論