新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 智能車黑線識別算法及控制策略研究

智能車黑線識別算法及控制策略研究

作者: 時間:2009-05-18 來源:網(wǎng)絡(luò) 收藏


2 黑色指引線的提取
賽道是由白色KT板上鋪設(shè)黑色指引線組成,外界干擾比較少容易提取。據(jù)此采用的是圖像處理方法是較為簡單的邊緣提取。邊緣與圖像的性質(zhì)之所以能聯(lián)系在一起,是由于圖像中的物體與物體,或者物體與背景之間的交界可以視為邊緣,圖像的灰度及顏色急劇變化的地方也可以看作是邊緣。在圖像中有顏色的變化必定會有灰度的變化,故對于邊緣的檢測與提取焦點集中在灰度上就可以。由于黑色指引線和白色跑道的色差較大,可以確定一個分別黑白色的閾值,通過實驗確定該閾值(VALUE)為8。由于光照強弱的原因黑色像素的灰度值可能不完全一樣,實際操作中我們發(fā)現(xiàn)只要灰度值小于4(DIFFVAL)的點即可視為黑色點。
攝像頭掃描的圖像分為一下兩種情況:
(1)掃描圖像只有一條豎直,如圖2所示

從左邊的第一個有效像素點(usefu1_line)開始依次對相鄰的像素點進行灰度值相減(左減右),當(dāng)兩者的差值大于閾值(VALUE)時,判定下一個像素點(usful_line+1)對應(yīng)的為的左邊緣。繼續(xù)相減當(dāng)差值再次大于閾值時,將此像素點定位黑線的右邊緣。該程序如下所示:

其中g(shù)_ucDif 為兩個像素灰度值之差的絕對值,LINE_MAX為采集圖像的最大有效列數(shù),ROW_MAX為采集圖像的最大有效行數(shù),ucImage_data[][]為存儲圖像像素點的一個二維數(shù)組,ucImage_temp為臨時存儲圖像的數(shù)組。
(2)掃描到的圖像為黑色交叉線,如圖3所示

前面提到S12的總線超頻以后通過AD轉(zhuǎn)換每一行圖像我們能采集到70個有效數(shù)據(jù)點,而黑線的寬度只有25mm(大賽組委會規(guī)定),在這個寬度內(nèi)最能只能包含6個有效的數(shù)據(jù)點。因此對于黑色交叉線我們只要將右邊緣(right)所在列數(shù)與左邊緣(1eft)所在列數(shù)相減,如果差值大于6,我們即可判定此時為黑色交叉線。程序只要在前面的基礎(chǔ)上加上一下語句即可完成。

其中B1ackwire_data[]為采集到的黑線中心線數(shù)據(jù),它將在后面的中被用到。


3 車的
在比賽中,影響賽車速度的一個關(guān)鍵的因素就是賽車能不能提前彎道與直道,也就是說賽車的算法對提高賽車的成績起到至關(guān)重要的作用。這里采用魯棒性好且算法簡單的經(jīng)典PID算法。但普通的PID是線性算法,若參數(shù)設(shè)置太大則小車在走直道時很容易出現(xiàn)振蕩的情形,而在高速走彎道的時則易出現(xiàn)反應(yīng)遲鈍、沖出賽道的情況。因此采用非線性的PID算法,使之對小偏差不敏感而對大偏差敏感,實現(xiàn)了直道平穩(wěn)同時彎道靈敏的目的。
驅(qū)動電機的PID控制部分通過下面算法實現(xiàn):



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉