攝像頭黑線識別算法和賽車行駛控制策略
引言
本文引用地址:http://m.butianyuan.cn/article/95519.htm按照第一屆全國大學生“飛思卡爾”智能車大賽比賽規(guī)則要求:使用大賽組委會統(tǒng)一提供的競賽車模,采用飛思卡爾16 位微控制器MC9S12DG128 作為核心控制單元,自主構(gòu)思控制方案及系統(tǒng)設計,包括傳感器信號采集處理、控制算法及執(zhí)行、動力電機驅(qū)動、轉(zhuǎn)向舵機控制等,以比賽完成時間短者為優(yōu)勝者。其中賽道為在白色底板上鋪設黑色引導線。根據(jù)賽道特點,主要有兩種尋線設計方案:一、光電傳感器方案;二、攝像頭方案。
這兩種方案各有特點:其中光電傳感器構(gòu)成“線型檢測陣列”的方案簡單易行,但是將其應用于智能車競賽中仍有一些局限性。例如,由于受比賽規(guī)則限制(傳感器數(shù)量不超過16 個(紅外傳感器的每對發(fā)射與接受單元計為1 個傳感器,CCD 傳感器記為1 個傳感器)), 光電管的數(shù)量不可能太多,從而單個線型檢測陣列所能確定的指引線信息較少。所以若是采用此方案,會導致尋線精度不夠高,在接下來的舵機轉(zhuǎn)向控制的時候產(chǎn)生直道蛇行或者彎道舵機回擺。此外,光電線型檢測陣列的探測距離較短,而比賽又限制了整個車體系統(tǒng)的長度,這樣,其對前方路況的預判斷距離很有限。車輛行進速度較快時,若能預判前方一定距離的路況,則有助于智能車對前方突然出現(xiàn)的路況變化(如轉(zhuǎn)彎)作及時的應對處理;否則,車輛可能會偏離指引線較遠,甚或沖出賽道。
基于前述對“線型檢測陣列”尋線能力局限性的考慮,我們選擇采用攝像頭作為尋線傳感器。這是因為,一方面攝像頭所能探測的賽道信息遠多于“線型檢測陣列”探測的,而且攝像頭也有足夠遠的探測距離以方便對前方路況進行預判。另一方面,比賽規(guī)定使用的Freescale16 位單片機MC9S12DG128 的運算速度和自身AD 口的采樣速度,能夠適應對黑白低線數(shù)攝像頭的有效視頻采樣和對大量圖像數(shù)據(jù)的處理。
本文就是在攝像頭方案的實時圖像數(shù)據(jù)已經(jīng)獲得的基礎上,對圖像進行數(shù)據(jù)處理,提取賽道中的引導黑線位置,從而以此作為舵機和驅(qū)動電機的控制依據(jù)。
圖像數(shù)據(jù)信息特點
攝像頭的主要工作原理是:按一定的分辨率,以隔行掃描的方式采集圖像上的點,當掃描到某點時,就通過圖像傳感芯片將該點處圖像的灰度轉(zhuǎn)換成與灰度成一一對應關(guān)系的電壓值,然后將此電壓值通過視頻信號端輸出。具體而言(參見圖1),攝像頭連續(xù)地掃描圖像上的一行,則輸出就是一段連續(xù)的電壓視頻信號,該電壓信號的高低起伏正反映了該行圖像的灰度變化情況。當掃描完一行,視頻信號端就輸出低于最低視頻信號電壓的電平(如0.3V),并保持一段時間。這樣相當于,緊接著每行圖像對應的電壓信號之后會有一個電壓“凹槽”,此“凹槽”叫做行同步脈沖,它是掃描換行的標志。然后,跳過一行后(因為攝像頭是隔行掃描的方式),開始掃描新的一行,如此下去,直到掃描完該場的視頻信號,接著就會出現(xiàn)一段場消隱區(qū)。此區(qū)中有若干個復合消隱脈沖(簡稱消隱脈沖),在這些消隱脈沖中,有個脈沖,它遠寬于(即持續(xù)時間長于)其他的消隱脈沖,該消隱脈沖又稱為場同步脈沖,它是掃描換場的標志。場同步脈沖標志著新的一場的到來,不過,場消隱區(qū)恰好跨在上一場的結(jié)尾部分和下一場的開始部分,得等場消隱區(qū)過去,下一場的視頻信號才真正到來。攝像頭每秒掃描25 幅圖像,每幅又分奇、偶兩場,先奇場后偶場,故每秒掃描50 場圖像。奇場時只掃描圖像中的奇數(shù)行,偶場時則只掃描偶數(shù)行。
圖1 攝像頭視頻信號
評論