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