摘 要: 目前循跡智能車的跑道識別都依賴于跑道上的特殊標志,一旦識別失敗,小車將脫離原有道路。針對該現(xiàn)狀,提出一種基于圖像特征提取的循跡方案。該方案將循跡信息與跑道分離,循跡系統(tǒng)由信息采集和動作執(zhí)行兩部分組成。將目標路線圖畫在透明壓克力板上,通過CCD攝像頭采集圖像,利用MC9S12XS128單片機對圖像數(shù)組進行邊緣提取和角點檢測得到路徑信息,然后將路徑信息經(jīng)無線模塊NRF24L01發(fā)送給智能車,通過精確的縮放比例將繪圖區(qū)域映射到實際路徑,完成分離循跡。行駛過程中無需判別跑道特征。
關(guān)鍵詞: CCD攝像頭;邊緣提??;角點檢測;分離循跡
循跡智能車的形式多種多樣,根據(jù)傳感器的不同,可以分為紅外循跡、激光循跡、攝像頭循跡以及電磁循跡等[1]。循跡原理雖各不相同,但其實現(xiàn)都依賴于專用跑道,即貼有黑色膠布的KT板或者鋪有通電導線的路面等,如圖1所示。
本文提出一種基于圖像分析的分離循跡方案,使智能車擺脫專用跑道的限制。該方案利用攝像頭采集路徑信息,將路線圖包含于一幅圖像內(nèi),經(jīng)邊緣提取和角點檢測取得路線的長度和方位角,然后通過無線模塊NRF24L01將數(shù)據(jù)發(fā)送給智能車。智能車利用地磁傳感器HMC5883L檢測方位角,控制小車按照計算路徑行駛,而且行駛過程中無需多次判斷路徑特征;此外,可利用行駛前獲得的路線圖信息優(yōu)化智能車控制算法,提升小車行駛速度。
1 系統(tǒng)設(shè)計
系統(tǒng)整體方案框圖設(shè)計如圖2所示。
1.1 主控芯片MC9S12XS128
本系統(tǒng)選用飛思卡爾HCS12架構(gòu)的16位單片機MC9S12XS128為主控芯片,擁有128 KB的Flash,以及8 KB的RAM,片內(nèi)集成SPI接口、增強型定時器ECT(Enhanced Capture Timer)以及PWM模塊等。通過設(shè)置鎖相環(huán)(PLL)寄存器,可以將總線時鐘提高至80 MHz,大大加快圖像處理的速度。
1.2 圖像采集硬件設(shè)計
將透明壓克力板支撐于CCD攝像頭正上方,作為繪圖區(qū),使用黑色油性筆畫下智能車的路線圖供CCD攝像頭采集,實物如圖3所示。
本系統(tǒng)采用的CCD攝像頭為PAL信號輸出,包含有復(fù)合同步信號、復(fù)合消影信號和視頻信號。由于視頻信號是模擬信號,為保證圖像的分辨率,選用8位高速A/D芯片TLC5510將其離散化,并行輸出0~255的灰度值,直接經(jīng)MC9S12XS128單片機的PA口讀取。同時,利用LM1881視頻信號分離芯片VSS(Video Sync Separator)分離出行信號和場信號作為圖像采集的控制信號,完成一幅二維圖像數(shù)組的采集與存儲。
1.3 無線數(shù)據(jù)傳輸模塊
MC9S12XS128完成圖像的采集與處理后,將路線信息以一維數(shù)組方式存儲。本系統(tǒng)采用NRF24L01無線模塊向智能車發(fā)送路線數(shù)組。NRF24L01工作于2.4 GHz ISM頻段,有32 B數(shù)據(jù)緩沖區(qū),與單片機SPI接口進行通信。為建立有效通信,規(guī)定如下的通信格式:數(shù)組首字節(jié)記錄有效數(shù)據(jù)長度,接下來每3個字節(jié)數(shù)據(jù)表征一段路線信息,前兩個字節(jié)表示方位角(0°~360°),最后一個字節(jié)表示路程,數(shù)據(jù)長度不固定,決定于具體路線圖。智能車接收到數(shù)據(jù)后,還原路線信息,并接序執(zhí)行。
1.4 HMC5883L模塊
在本系統(tǒng)中,利用兩個后輪直流電機不同的旋轉(zhuǎn)組合來控制轉(zhuǎn)向。如何檢測方位角是正確轉(zhuǎn)向的關(guān)鍵,將路徑化曲為直,看作是由許多折線段連接而成,計算得折線斜率的反正切值即為方位角。利用霍尼韋爾(Honeywell)HMC5883L磁阻(MR)傳感器作為智能車的電子羅盤,精確控制轉(zhuǎn)向方位角。
HMC5883L是一種表面貼裝的高集成模塊,并帶有數(shù)字接口的弱磁傳感器[2]。HMC5883L通過檢測地磁場平行于地面的X軸和Y軸方向的磁場分量來計算相對磁北的偏向角。地球上某點的磁場矢量分析[3]如圖4所示。方位角?琢(X軸與磁北的夾角)可由式(1)計算:
HMC5883L采用I2C接口與單片機進行通信,數(shù)據(jù)更新速率可達1 000次/s。X軸、Y軸和Z軸的磁場分量值分別存儲于數(shù)值輸出寄存器X、Y和Z,單片機利用PIT(Periodic Interrupt Timer)中斷程序以20 ms為周期定時讀取。
2 軟件設(shè)計
2.1 圖像采集
經(jīng)過LM1881得到視頻信號的行信號和場信號,行信號周期約為70 ?滋s,場信號周期約為20 ms。行信號表示新一行數(shù)據(jù)的到來,場信號表示下一幅圖像數(shù)據(jù)的開始。行、場信號都是方波,設(shè)置MC9S12XS128單片機定時器0和定時器1為輸入捕捉模式,并且使能中斷。定時器0為上升沿捕捉,行中斷觸發(fā);定時器1為下降沿捕捉,場中斷觸發(fā)。因為攝像頭在路線圖下方,與繪圖者的視角相反,所以在采集程序中將圖像關(guān)于X軸鏡像存儲。程序流程如圖5所示。
2.2 邊緣提取
理想的路徑信息是線條型的,但是油性筆畫出的路線有粗有細,所以通過邊緣提取將路線圖線條化。邊緣提取屬于圖像的低層次特征,類似于微分處理[4]。目前,有很多成熟的邊緣提取算法,但考慮到圖像是白色背景上的黑色線條,對比度很大,故選用閾值法提取邊緣。通過合理選取閾值,計算灰度差提取邊緣。
2.3 角點檢測
角點是路徑信息的重要特征之一,在實際應(yīng)用中,將路徑折線化之后,每段路徑就可以用3個字節(jié)表示,前兩個字節(jié)表示方位角,最后一個字節(jié)表示路程值,由此看來角點的重要性不言而喻。本系統(tǒng)采用梯度檢測算法提取角點坐標。角點肯定是邊緣像素點,因此在邊緣提取的基礎(chǔ)上計算梯度值可以大大減少運算量。以路線圖左下角為起始點,建立一維數(shù)組依次記錄角點像素坐標。根據(jù)路線的連續(xù)性,對一維數(shù)組進行濾波,統(tǒng)計斜率值的個數(shù),設(shè)置閾值去除“偽角點”。程序流程如圖6所示。
3 結(jié)果分析
在壓克力板上繪圖區(qū)(20 cm×30 cm)畫下“N”形路線,將其映射到2 m×3 m的實際區(qū)域, 轉(zhuǎn)向時通過左轉(zhuǎn)或者右轉(zhuǎn)都能達到目標方位角,分別進行兩次實驗。方位角誤差保持在-5°~+5°內(nèi),路程誤差在-10 cm~+10 cm之間。
分離循跡擺脫了傳統(tǒng)循跡方式對跑道的依賴,當循跡路線改變時更具有靈活性。經(jīng)實驗驗證,循跡誤差小(包括方位角誤差和路程誤差),在短距離定點運輸?shù)阮I(lǐng)域具有實用性,具有一定應(yīng)用前景。
參考文獻
[1] 卓晴,黃開勝,邵貝貝.學做智能車:挑戰(zhàn)飛思卡爾杯[M]. 北京:北京航空航天大學出版社,2007.
[2] 霍尼韋爾公司.HMC5883L中文規(guī)格書[EB/OL].[2012-11-04].http://www.honeywell-sensor.com/.
[3] 汪雪蓮.電子羅盤的方位測量誤差及其補償校正[J].聲學與電子工程,2005(4):40-43.
[4] NIXON M S,AGUADO A S.Feature extraction and image processing[M].Beijing:Publishing House of Electronics Industry,2010.