【導讀】自動(dòng)尋跡智能車(chē)涉及到當前高技術(shù)領(lǐng)域內的許多先進(jìn)技術(shù),其中 主要的是傳感技術(shù)、路徑規劃和運動(dòng)控制。本課題是以飛思卡爾智能車(chē)競賽為背景,以單片機作為 控制單元,以攝像頭作為路徑識別傳感器,以直流電機作為小車(chē)的驅動(dòng)裝置,以舵機控制小車(chē)轉向。
自動(dòng)尋跡智能車(chē)涉及到當前高技術(shù)領(lǐng)域內的許多先進(jìn)技術(shù),其中 主要的是傳感技術(shù)、路徑規劃和運動(dòng)控制。本課題是以飛思卡爾智能車(chē)競賽為背景,以單片機作為 控制單元,以攝像頭作為路徑識別傳感器,以直流電機作為小車(chē)的驅動(dòng)裝置,以舵機控制小車(chē)轉向。車(chē)模競賽的賽道是一個(gè)具有特定幾何尺寸約束、摩擦系數及光學(xué)特性的KT板,其中心貼有對可見(jiàn)光及不可見(jiàn)光均有較強吸收特性的黑色條帶作為引導線(xiàn),寬度為2.5 cm。在行駛過(guò)程中,系統通過(guò)攝像頭獲取前方賽道的圖像數據,同時(shí)通過(guò)測速傳感器實(shí)時(shí)獲取智能車(chē)的速度,采用路徑搜索算法進(jìn)行尋線(xiàn)判斷和速度分析,然后作控制決策,控制轉向舵機和直流驅動(dòng)電機工作。智能車(chē)通過(guò)實(shí)時(shí)對自身運動(dòng)速度及方向等進(jìn)行調整來(lái)“沿”賽道快速行駛。本文主要介紹攝像頭通過(guò)提取賽道黑線(xiàn)信息交予單片機處理,通過(guò)單片機輸出控制信號控制舵機轉向來(lái)控制車(chē)模的轉向,從而很好的自動(dòng)循跡。
1 總體軟硬件結構及思路
此智能車(chē)輛定位系統用攝像頭拍攝車(chē)輛前方的賽道,通過(guò)MC9S12XS128采樣視頻信號,獲得圖像數據。然后用合適的算法,如跟蹤邊緣檢測算法,分析圖像數據,提取目標指引線(xiàn)。然后,系統根據目標指引線(xiàn)的位置信息,對舵機和電機施以合適的控制。本智能車(chē)運動(dòng)系統的結構圖如圖1所示。

因為系統是一個(gè)有機的整體,所以需配合好系統的攝像頭、控制單片機、電機(包括直流伺服電動(dòng)機、光電編碼器)、舵機和輔助電路(電源板、電機驅動(dòng)板)等各個(gè)部分。舵機是實(shí)時(shí)控制車(chē)模的轉向,是比賽快速性和穩定性的關(guān)鍵,舵機控制有很多的控制算法,如:PID經(jīng)典控制算法、模糊算法、算法等。
2 系統程序總體控制流程
系統的基本軟件流程是:首先,對各功能模塊和控制參數進(jìn)行初始化;然后,通過(guò)圖像采集模塊獲取前方賽道的圖像數據,同時(shí)通過(guò)速度傳感器模塊獲取賽車(chē)的速度。采用PID對舵機進(jìn)行反饋控制。另外根據檢測到的速度,結合速度控制策略,對賽車(chē)速度不斷進(jìn)行適當調整,使賽車(chē)在符合比賽規則的前提下,沿賽道快速行駛。系統的基本軟件結構流程圖,如圖2所示。

系統的軟件要求控制的準確性、穩定性。采樣提取黑線(xiàn)是控制輸入量的基礎,要求采樣的 穩定。輸入量給舵機以后又要求舵機輸出的快速相應性、穩定性和準確性。經(jīng)過(guò)多次實(shí)驗及近一個(gè)學(xué)期的調車(chē)經(jīng)驗,選用了并改進(jìn)了經(jīng)典的PID控制器對車(chē)模的舵機進(jìn)行控制調節。
3 圖像識別
用CCD攝像頭采集車(chē)模前方一定距離內的黑線(xiàn),從中提取相關(guān)量,用來(lái)控制舵機的轉向,實(shí)現智能車(chē)的自動(dòng)循跡。由于單片機數據處理能力和速度有限,不能在短短的20 ms時(shí)間內處理整場(chǎng)圖像。本系統設置攝像頭前瞻為1.2 m。在不影響道路檢測 需要的前提下,本系統采用隔行采集來(lái)壓縮圖像數據,即相隔不同的有效行采集一行數據(近處相隔的少,遠處相隔的多),一共可采集 44行數據。此外為了進(jìn)一步提高A/D轉換的速度,本系統還適當地將XS12的CPU超頻運行并且設置A/D轉換器的 為8位,這樣每行能采樣到67個(gè)點(diǎn),形成了一個(gè)面陣,而黑線(xiàn)在其中占據了某些點(diǎn)位。由于我們一行采集67個(gè)點(diǎn),故中間值為33。圖像是智能車(chē)的底層,圖像的采集正確與否在以后的控制中尤為重要,故一定要確保采集回來(lái)的黑線(xiàn)的真實(shí)有效性,并且要增加濾波算法,比如在有效前瞻很小的時(shí)候,本來(lái)只要判斷出黑線(xiàn)的轉向即可,給舵機以極限轉角可以讓車(chē)急轉彎。但是有效行很少的時(shí)候,如果不用特殊的濾波方法,只要有一行的黑線(xiàn)提錯,就可能讓小車(chē)轉錯,至于轉出界。
4 分段PID控制
4.1 圖像信息提取量
從采集回來(lái)的圖像中提取控制量來(lái)控制舵機的轉向,實(shí)現智能車(chē)的自動(dòng)循跡。本系統采用黑線(xiàn)偏移量even_diff和黑線(xiàn)某段斜率 D_diff-erent對舵機進(jìn)行控制,可稱(chēng)為PD控制器。由于車(chē)模是個(gè)隨動(dòng)系統,在攝像頭1.2 m前瞻內覆蓋的黑線(xiàn)不一定有設置的44行,特別是前方的彎特別急的時(shí)候,在攝像頭前瞻視角范圍內覆蓋的黑線(xiàn)會(huì )特別少,比如13行或13行以下。根據這個(gè)特點(diǎn),可設置一個(gè)有效前瞻量valid_line作為對前方的彎的平緩程度的反應。
把每一行的黑線(xiàn)位置值與中間值作差,得到該行的偏移量,中間值33位賽道的中心位置點(diǎn),偏移量表示在車(chē)模的視角下黑線(xiàn)處于賽道中的位置值。把每一行的偏移量相加之和除以攝像頭前瞻范圍內的提取出的黑線(xiàn)行數,得到黑線(xiàn)相對于車(chē)模中心的整體偏移量even_diff,用有效行內的遠處某些行與近處某些行(如前半場(chǎng)與后半場(chǎng))偏移量之差得到有效行內的黑線(xiàn)斜率D_differen。
這樣,從一場(chǎng)的黑線(xiàn)位置數據中,系統提取了有效行valid_line、even_diff、D_different 3個(gè)量來(lái)對舵機進(jìn)行控制。在實(shí)際情況中,D_different可以很靈活,因為前方黑線(xiàn)的斜率可以取不同段得到,可以根據實(shí)際要求得到不同段的斜率值,如速度快時(shí)可以適當的取距車(chē)較遠處的黑線(xiàn)斜率,以實(shí)現超前控制。
在智能車(chē)調試參數的時(shí)候,對這3個(gè)量的理解很是重要,具體來(lái)說(shuō),valid_line表征車(chē)模的有效前瞻,即看得有多遠,對于智能車(chē)在道路上行駛,看得遠說(shuō)明黑線(xiàn)都在前方,看不遠說(shuō)明智能車(chē)前方的黑線(xiàn)已經(jīng)偏左或者偏右,而這個(gè)量的大小正好可以表征彎的平緩與急切。另外,看得遠則攝像頭采集的黑線(xiàn)多,系統信息量大,那么怎么處理這些大量的信息為我們所用就變得很關(guān)鍵,如看得1.2 m都能看見(jiàn),說(shuō)明小車(chē)必然在長(cháng)直道上,不然也是小S彎,稍作處理就可以過(guò)濾掉小S彎了,讓小車(chē)像都是在直道上跑;看得很近說(shuō)明彎已經(jīng)很急,這時(shí)候,只要能夠判斷出彎往那邊拐就可以給舵機一個(gè)極值急拐。even_diff表征在某一個(gè)特定視野下,小車(chē)與黑線(xiàn)偏離的程度,這個(gè)量可以讓智能車(chē)在某個(gè)特定視野下決定給舵機多大的轉角。D_different則在有效前瞻遠的時(shí)候尤為關(guān)鍵,因為它可以預判前方的彎,從而超前的轉彎。
4.2 PD控制器形式
系統把這3個(gè)量處理成PD控制器的形式:

其中a為根據賽道有效前瞻確定的不同有效行。Centre為舵機走直線(xiàn)的控制中間值。Steer為PD控制器給舵機的輸入量。由于車(chē)模舵機轉向控制是一個(gè)非線(xiàn)性系統,而設置了入口條件“有效行判斷”,正好可以把這個(gè)非線(xiàn)性系統分割成不同段,在每一段可近似認為轉向控制系統是線(xiàn)性的。即在某一小段范圍內,得到的黑線(xiàn)位置和對應的舵機PID參照角度處理成 線(xiàn)性關(guān)系。 終實(shí)現簡(jiǎn)單分段PID控制。
5 分段PID控制參數規律
在實(shí)際的調車(chē)過(guò)程中,我們總結發(fā)現,PD控制器的參數Kp、Kd與有效前瞻valid_line、車(chē)模的速度相關(guān)。簡(jiǎn)單點(diǎn)說(shuō),即小車(chē)速度越快,車(chē)模遇彎提前拐彎的應越早??偨Y下來(lái),有如下關(guān)系:
其中A為Kp的基礎值,valid_line為車(chē)模運行到某個(gè)狀態(tài)的有效前瞻(用提取的黑線(xiàn)數量來(lái)估定),speed為小車(chē)一場(chǎng)時(shí)間內的脈沖值,表征車(chē)模時(shí)刻運行的速度。低速時(shí),可近似認為speed/C為零,通過(guò)試驗法可以確定A值大小。在確定Kp基礎值之后,即可加速,在小車(chē)速度稍高的時(shí)候調試得出合適的B值、C值, 終使小車(chē)平穩準確的切線(xiàn),循跡而行。此關(guān)系式可知,有效前瞻的變化是對Kp值影響 大也是 直接的一個(gè)量,我們平時(shí)調車(chē)經(jīng)驗而知,B參數應比C敏感很多才行。有效行減少一行,對舵機轉向角的影響要遠大于小車(chē)速度speed對Kp的對影響。而speed對舵機急轉快速性在車(chē)模高速的時(shí)候很是明顯。
為增加系統的魯棒性,并且更好的解決系統的非線(xiàn)性問(wèn)題,我們將小車(chē)的前瞻分段,我們1.2 m的前瞻里面,總共有44行黑線(xiàn),直道上全部提取回來(lái),可以分為有效行37行一下、有效行30行以上、有效行24行以上、有效行18行以上、有效行13行以上與有效行13行以下7段。
雖然分為7段,各段單獨控制,參數單獨調節,但是,Kp值與有效行(有效前瞻)成負相關(guān)的關(guān)系仍然成立,故Kp、Kp1、Kp2、Kp3、Kp4、Kp5依然大體上遵循與有效行負相關(guān)的關(guān)系,即Kp隨有效行的減小線(xiàn)性增加。
在每一段里面調節PD控制器的參數,使小車(chē)能夠行使不同類(lèi)別不同半徑的彎道。這樣就形成分段PD控制,小車(chē)的非線(xiàn)性問(wèn)題可以很好的解決,系統的魯棒性也能夠增強。同時(shí),為保護舵機不至于向左向右打得太狠,可以限定舵機的左右極限值:
通過(guò)調試參數A、B、C,調節不同的Kp值,實(shí)踐證明,小車(chē)能夠平穩、快速的自動(dòng)巡線(xiàn)前行。
6 結束語(yǔ)
該算法把舵機的轉向的Kp系數與車(chē)速相關(guān)起來(lái),能夠很好地配合車(chē)速與舵機轉向,提出以具體的智能車(chē)參數分段PD參數的規律,對智能車(chē)實(shí)際制作很有幫助,在智能車(chē)比賽中具有很廣的推廣價(jià)值。
實(shí)踐證明,參數調節合適的時(shí)候智能車(chē)能夠很好的適應賽道,跑出希望的 佳路徑。為了參加第五屆“飛思卡爾”杯全國大學(xué)生智能汽車(chē)競賽,此控制算法在校級代表隊資格選拔賽中表現完美, 終跑出2.5 m/s的好成績(jì),成功入選華北賽區參加比賽。實(shí)踐證明了智能車(chē)舵機分段PID控制轉向具有可行性和實(shí)用性。
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請電話(huà)或者郵箱聯(lián)系小編進(jìn)行侵刪。