攝像頭智能車方案設(shè)計(jì)
其他部分電路本文引用地址:http://m.butianyuan.cn/article/149837.htm
采用LED、按鍵及無線發(fā)送模塊開發(fā)的人機(jī)界面,提高了調(diào)試效率。 使用片外FLASH存儲(chǔ)賽道信息,由于高存儲(chǔ)速率得到了廣泛應(yīng)用。但FLASH每頁的存儲(chǔ)量有限,大容量的數(shù)組需要分割開之后分頁存儲(chǔ),這會(huì)導(dǎo)致程序超時(shí)。電機(jī)驅(qū)動(dòng)采用遙控車用電子調(diào)速器作為驅(qū)動(dòng)芯片,加速能力強(qiáng)但控制較為復(fù)雜,反轉(zhuǎn)控制延時(shí)過長,需要3個(gè)控制周期。 速度傳感器采用歐姆龍光電編碼器,檢測精度高,360線,最高轉(zhuǎn)速可達(dá)4000rpm。
智能車軟件設(shè)計(jì)方案
圖像方面,由于硬件做了二值化處理,單片機(jī)得到的賽道信息少而精準(zhǔn),使得圖像處理程序變得簡練。由于單片機(jī)運(yùn)行時(shí)間和存儲(chǔ)空間的限制,我們將賽道信息以鏈表的形式進(jìn)行存貯。該方法的優(yōu)點(diǎn)是速度快、占用的存儲(chǔ)空間很少,缺點(diǎn)是數(shù)據(jù)查找較為困難,并且難以利用賽道垂直方向的信息。
預(yù)處理
在進(jìn)行圖像處理的過程中,我們首先對每行賽道的信息進(jìn)行預(yù)處理,根據(jù)賽道位置和寬度的信息將賽道進(jìn)行過濾,找到符合要求的賽道位置,并且將這些位置進(jìn)行存貯,存貯形式同樣為鏈表。接下來圖像處理的信息就是預(yù)處理得到的這些賽道片段。建立有效片段起始行在得到的預(yù)處理賽道信息中首先要找到能夠建立賽道的每一段的起始位置。
具體的判斷依據(jù): 第一個(gè)起始片段是連續(xù)三行賽道中只有唯一滿足寬度限制的賽道片段,這些賽道片段滿足二階連續(xù)性。其余的起始片段是滿足以上兩個(gè)條件并且滿足起始片段前的一行不滿足起始片段的條件。
在找到的起始片段的基礎(chǔ)上進(jìn)行賽道生長,繼續(xù)判斷如果下一行賽道存在預(yù)處理得到的有用信息,再進(jìn)行以下判斷:預(yù)處理出的黑線片段是否滿足嚴(yán)格一些的寬度條件限制 ;黑線中心是否滿足一階連續(xù)性;黑線中心是否滿足二階連續(xù)性。是則將賽道標(biāo)志置位,將賽道中心信息記錄,否則將賽道標(biāo)志置零。
在生長之后的賽道間進(jìn)行賽道修補(bǔ),尋找每段生長之后的賽道的起始行與結(jié)束行,判斷上一段賽道結(jié)束行與下一段賽道起始行之間的距離是否超出閾值。沒有超出閾值則進(jìn)行修補(bǔ),如果修補(bǔ)上賽道則記錄賽道中心位置信息,并將修補(bǔ)段賽道的標(biāo)志置位;否則將賽道標(biāo)志置零。經(jīng)過圖像處理基本上能夠充分得到賽道的有用信息。經(jīng)過后期對圖像處理中閾值的調(diào)整基本上解決了誤識(shí)別雜點(diǎn)的問題。
賽道元素判斷
這一屆智能車加入了收緊彎元素,由于CCD路徑上可能存在的內(nèi)切特性,導(dǎo)致了在收緊彎部分可能出現(xiàn)車子壓出賽道的情況,導(dǎo)致比賽失敗。這一元素的出現(xiàn)迫使我們必須在進(jìn)入收緊彎之前識(shí)別出來用于提示的三角形,并且將策略進(jìn)行相應(yīng)的變化。CCD有很大的特點(diǎn)就是圖像會(huì)產(chǎn)生畸變,導(dǎo)致三角形的特點(diǎn)變得不明顯。并且三角形之前的坎也會(huì)使得賽道信息變得無效,增加了識(shí)別三角形的難度。針對這一特點(diǎn),我們采集了大量圖像,并且進(jìn)行分析,找到了能夠較為穩(wěn)定的識(shí)別三角形的方法。
1.從上一行道路點(diǎn)開始向兩邊,在一定寬度內(nèi)找邊沿,這樣可以避免賽道邊緣的影響。
2.根據(jù)需要,可以做一下圖像的梯形校正。需不需要梯形校正,應(yīng)該根據(jù)實(shí)際情況判斷。
3.三角形的判別是在每個(gè)周期都要執(zhí)行的,需要存儲(chǔ)前幾行的數(shù)據(jù),可以通過設(shè)計(jì)良好的流程來盡量避免識(shí)別三角算法中的重復(fù)工作。
4.對于圖像失真,可能的處理方法如下: 三角形底邊寬度與道路寬度相比有突變,而三角形尖端的寬度與道路寬度是連續(xù)變化的,根據(jù)這個(gè)特征設(shè)計(jì)算法。正三角形:如果發(fā)現(xiàn)寬度突變,那么懷疑可能是正三角;以后判斷邊線的連續(xù)性,直到寬度由大到小,最終與道路連接,且寬度由大到小變化的行數(shù)足夠多,則可以判斷出遇到正三角。倒三角形:如果發(fā)現(xiàn)從道路點(diǎn)開始,一定行數(shù)內(nèi)寬度由小到大,并且在最終出現(xiàn)寬度突變,則判斷出遇到倒三角。
另一個(gè)必須識(shí)別出來的元素是終點(diǎn)線。最初的圖像識(shí)別方法是判斷賽道黑線與白線的寬度,如果滿足以下條件則認(rèn)為是終點(diǎn)線: 如果連續(xù)兩行出現(xiàn)多于一個(gè)的黑色片段,進(jìn)行賽道的尋找。 找到是賽道的黑色片段之后判斷左右相鄰的黑色片段是否滿足終點(diǎn)線黑線寬度的要求。 判斷黑線之間的白線是否滿足寬度標(biāo)準(zhǔn)。 如果滿足以上三個(gè)條件則認(rèn)為是終點(diǎn)線。
控制算法
CCD相對來說有兩個(gè)優(yōu)勢,一是前瞻遠(yuǎn),二是可以一次得到一段賽道的信息從而進(jìn)行整幀策略的制定。所以控制算法上一定要利用起來整幀賽道的信息,才能夠出現(xiàn)優(yōu)化賽道的效果。我們的整體控制思想是分段進(jìn)行賽道中點(diǎn)的線性擬合。
由于我們的前瞻較遠(yuǎn)所以遠(yuǎn)處圖像有些不可靠,所以使用最遠(yuǎn)有效點(diǎn)以下的5~10行進(jìn)行擬合。實(shí)驗(yàn)結(jié)果是車子能夠較好的切內(nèi)彎,并且在連續(xù)彎道上能夠穩(wěn)住車身。缺點(diǎn)是車子控制上不是很穩(wěn)定,總是太過于切內(nèi)彎而沖出賽道。于是我們又加入了一條對賽道位置進(jìn)行積分的控制線對控制進(jìn)行限制,實(shí)驗(yàn)結(jié)果較好。
評論