作者:胡晨暉,賈秀江,方興
在去年的Freescale全國大學(xué)生智能車大賽中,賽道信息檢測方案總體上有兩大類:光電傳感器方案和攝像頭方案。前者電路設(shè)計(jì)簡單、信息檢測頻率高,但檢測范圍、精度有限且能耗較大;后者獲取的賽道信息豐富,但電路設(shè)計(jì)和軟件處理較復(fù)雜,且信息更新速度較慢。在比較了兩種方案的特點(diǎn)并實(shí)際測試后,我們選擇了攝像頭方案。本文將在獲得攝像頭采集數(shù)據(jù)的前提下,討論如何對(duì)數(shù)據(jù)進(jìn)行處理和控制策略的實(shí)現(xiàn)。
數(shù)據(jù)采集
我們選擇了一款1/3 OmniVision CMOS攝像頭,用LM1881進(jìn)行信號(hào)分離,結(jié)合AD采樣,實(shí)現(xiàn)了視頻信號(hào)的采集。在總線周期為32M的情況下,每行最多能夠采集80個(gè)點(diǎn),其中前14個(gè)數(shù)據(jù)為行消影,第15到第80個(gè)點(diǎn)為有效數(shù)據(jù)點(diǎn)(見圖1)。
圖1 單行80點(diǎn)
攝像頭每場信號(hào)有320行,其中第23到310行為視頻信號(hào)。我們從中均勻采集了12行,最后得到一個(gè)12×80的二維數(shù)組。
信息處理
原始數(shù)據(jù)包含了黑線的位置信息,為了穩(wěn)定可靠地提取這一信息,我們采取了以下步驟:
二值化
由于白線對(duì)應(yīng)的電平值較高,而黑線電平值較低,因此圖中第43到48點(diǎn)間的凹槽就是黑線所在位置。為了提取出黑線,直觀的想法是檢測電平值的跳變。但實(shí)際黑白線邊沿的電平經(jīng)常不是突然跳變的,而有一個(gè)過渡過程,為此我們先對(duì)原始數(shù)據(jù)進(jìn)行了二值化處理。這不僅使得邊沿更加明顯,而且可以去除電平值的一些小波動(dòng)。二值化的結(jié)果如圖2所示。
圖2 單行數(shù)據(jù)二值化結(jié)果
黑線位置提取
二值化后,視頻信號(hào)就只有黑白二種電平了。從左到右掃描視頻信號(hào),通常先掃到的是白點(diǎn);否則若是黑點(diǎn)(賽道外),則繼續(xù)往下,直到第一個(gè)白點(diǎn)。然后,設(shè)置一個(gè)計(jì)數(shù)器記錄第一個(gè)白點(diǎn)后面連續(xù)出現(xiàn)的黑點(diǎn)數(shù)目。計(jì)數(shù)器初值為0,若檢測到一個(gè)黑點(diǎn),則加1;否則計(jì)數(shù)器重新置0。計(jì)數(shù)器每次清零前,判斷是否大于2小于10(這可以濾除一兩個(gè)黑點(diǎn)產(chǎn)生的毛刺):如果是,則黑線中心位置為當(dāng)前點(diǎn)的坐標(biāo)減去計(jì)數(shù)器值的一半;否則,繼續(xù)掃描直到整行結(jié)束。最后單行的黑線提取位置如圖3所示。
圖3 單行黑線位置提取效果
中值濾波
完成單行黑線提取后,可將12行位置連接起來,得到黑線的大致趨勢。但即使前面已有一些濾除干擾的措施,仍能發(fā)現(xiàn)個(gè)別行的黑線位置偶爾會(huì)出現(xiàn)異常跳變。于是,這里采用了常用的中值濾波技術(shù):對(duì)于中間第2到11行這10行黑線位置,用當(dāng)前行和前后兩行位置的中間值作為當(dāng)前行濾波后的黑線位置。中值濾波可消除單行干擾,得到的10行有效黑線位置用數(shù)組black_line表示。
控制策略
得到10行黑線位置后,就可以充分利用這一信息對(duì)賽道各種情況(如圖4所示)進(jìn)行判決,實(shí)現(xiàn)速度和轉(zhuǎn)向的優(yōu)化控制:如在直道保持高速、入彎減速出彎加速;直道和S道P參數(shù)小些、普通彎道P參數(shù)大些等。下面通過給出作用在black_line數(shù)組上的算子O,介紹賽道判決的方法。
圖4 直道、普通彎和S彎的黑線位置提取結(jié)果(紅色虛線表示視野中心)
算子O計(jì)算的是賽道黑線與視野中心線所圍成的面積(圖4中黃色區(qū)域)。其計(jì)算公式為:
其中mid為中心線的位置。一般來說,(1)式的結(jié)果在直道上很小,且隨著賽車不斷進(jìn)入彎道內(nèi),數(shù)值將逐漸增大,出彎時(shí)則逐漸減小。這樣,可以根據(jù)size的值進(jìn)行分級(jí),判斷賽車前方的路況,決定賽車的速度級(jí)別。另外,速度也可采用以size為變量的P控制:
其中cur_speed為當(dāng)前控制速度,min_speed和max_speed分別為控制范圍內(nèi)的最小、最大速度,min_size和max_size為size的最小、最大值。
舵機(jī)控制的各種參數(shù)當(dāng)然也可以根據(jù)size的大小進(jìn)行比例調(diào)整,這樣能達(dá)到快速?zèng)_過S彎的效果,但由于size值并不能嚴(yán)格區(qū)分S彎和入彎前一段時(shí)間的狀態(tài),所以在普通彎道中賽車將靠內(nèi)行駛,存在碰到內(nèi)側(cè)標(biāo)志桿的危險(xiǎn)。因此,為了安全起見,舵機(jī)控制采用一般的P控制即可。
實(shí)踐證明,攝像頭能采集豐富的賽道信息,對(duì)這些信息進(jìn)行預(yù)處理,并充分利用提取到的黑線位置對(duì)賽道進(jìn)行判決,能使得賽車行駛快速流暢。
相信隨著比賽的深入,攝像頭方案的潛力會(huì)被進(jìn)一步挖掘。今后為了適應(yīng)更復(fù)雜賽道的要求,提高參賽成績,可以考慮:
·結(jié)合記憶算法。賽道記憶能實(shí)現(xiàn)賽車行駛的全局優(yōu)化,而且今年增加了坡道,僅憑視覺很難預(yù)先檢測,因此若結(jié)合記憶算法將明顯提高性能。
·對(duì)判決算子進(jìn)行改進(jìn)。前面介紹的賽道判決算子,能反映直道和進(jìn)出彎道的特征,但是對(duì)于S道并不敏感,因此可以考慮對(duì)其進(jìn)行改進(jìn),或者采用其它算子。通常,將幾個(gè)算子的結(jié)果進(jìn)行加權(quán)平均后能達(dá)到更好的效果。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2551文章
51215瀏覽量
754543 -
攝像頭
+關(guān)注
關(guān)注
60文章
4851瀏覽量
95885 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94694
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論