藍海鍵
摘要:智能化是今后世界發展的方向。智能設備能夠在非人為干擾下自動完成預先設定的任。智能循跡小車就是其中一個體現。在特定工作環境下,這種小車可以協助工作人員高效安全地完成目的任務。智能循跡系統在長時間、容易疲勞的環境下得到很好的應用。在特定的工作環境下,設定特定標志物,智能循跡系統通過識別相應標志物和預先設定的流程自主完成目標工作。主要工作原理如下:(1)硬件控制核心是飛思卡爾kenitis K60DN512Z單片機,由0V7620作為傳感器獲取圖像數據,電機驅動用BTS7970芯片,采用PWM方波控制S3010舵機轉向。(2)軟件由freescale codewarrior v10.6開發環境用C++語言編寫程序和編譯。3.軟件通過邊沿提取模塊和PID控制原理控制智能小車運動軌跡。
關鍵詞:圖像處理;智能小車;循跡;PID算法
0 引言
智能循跡汽車是一個集環境感知、規劃決策、多等級輔助駕駛等功能于一體的綜合系統。近年來,智能車輛已經成為世界車輛工程領域研究的熱點和汽車工業增長的新動力,很多發達國家都將其納入到各自重點發展的智能交通系統當中。
智能循跡小車系統是通過freescale kenitisK60DN512Z單片機作為控制核心。結合穩壓電路、電機驅動電路、OV7620驅動電路和S3010舵機驅動電路等硬件組成智能小車,通過freescale codewarrior v10.6開發環境開發和編譯軟件系統實現智能小車對行駛路線的智能循跡。設計中電機驅動使用BTS7970芯片,使用PWM方波控制輸出電壓值,進而控制電機轉速。使用OV7620對路況灰度信息獲取,控制算法進行濾波并且提取二維畫面的邊沿,控制S3010舵機轉向使小車在合理路徑上通過預定速度穩定行駛。路面狀況是藍背景上鋪設白色道路和黑色邊界,設有直道、連續s形彎道、1/4圓弧彎道、3/4圓弧彎道、3π/4弧形道路、直角彎以及十字彎道。
1 本領域開發概況
基于freescale kenitis K60DN512Z單片機作為控制核心的智能循跡小車主要由全國大學生智能汽車競賽相關參與人員進行開發。由于單片機在運行速度以及硬件資源上不如PC機快和豐富,因此在圖像識別程序模塊設計上與PC版本有較大差異。文章所涉及的軟件系統主要考慮到了節約時間、低占用資源率以及高穩定性。在硬件系統的制作上,根據調試經驗采用低重心、抗靜電干擾的原則。
2 硬件系統設計
系統主板以及電機驅動電路采用Altium Designer設計。這套軟件具有原理圖設計、電路仿真、PCB繪制編輯、拓撲邏輯自動布線、信號完整性分析和設計輸出等功能。全部設計過程由筆者自主完成。首先創建空工程,添加原理圖文件繪制電路的電氣連接,并且提供相應元件預繪制的封裝。然后添加PCB文件,并且把原理圖文件導進PCB文件,在PCB文件上進行設計電路外形、布線走向、元件布局以及繪制自主標志等。在布局上,本著均勻分布、左右盡量對稱的原則。在首期開發的電路版本上,還提供了調試接口,例如撥碼開關等。
電路板塊、電池以及S3010舵機的安裝和調試是在電路板設計完成后進行的相當重要的一次整車設計過程。筆者設計的電路板居于車模前端,電池安裝在后端,目的為了提高整車抓地力,防止高速運行時打滑。電路板開孔,攝像頭支架可以穿過,節約了空間。S3010舵機主要是雙桿長度相近調試,在給定的合適PWM信號下,使之打到中間,利用游標卡尺精確測量桿長并且調試使兩者盡量接近。
3 軟件系統設計
軟件系統利用C++語言進行開發。在本領域大多數開發者均使用C語言,筆者采用C++語言的原因是減少全局函數、變量的利用。同時C++語言面向對象的編程思想有利于對開發過程中眾多參數進行管理,提高開發效率。通過實踐,在開發上本系統運行相當穩定。
硬件初始化模塊實現。本部分主要涉及K60芯片的系統時鐘初始化、FTM模塊初始化、通信模塊初始化、DMA初始化、中斷初始化以及相應10口初始化等。本系統運行于96MHZ的總線時鐘下通過FTM可以輸出PWM信號控制外部舵機轉角以及電機驅動輸出量。通信模塊在本系統中主要用于調試和攝像頭參數設置。DMA是直接存儲器訪問技術的英文縮寫;DMA傳輸將數據從一個地址空間復制到另外一個地址空間,當CPU初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實行和完成。根據硬件手冊和PID算法需要,系統采用了外部中斷和PIT定時中斷。
數據處理模塊實現。OV7620傳感器獲取回來的數據是顯示對應點的灰度,它是一個八位二進制數。系統初始化完成后首先采集一場數據求取數學期望。該數學期望作為圖像二值化處理的閾值。對圖像二值化處理后,搜索最下行白色連續點個數,將小于5的白色點改為黑色點,實際選擇上應該根據當地環境亮度。并且取出最長白線位置,將此線左右邊界作為參考值在倒數第二行同一位置左右特定范圍內搜索黑白跳變點,同樣道理繼續搜索下一行,直到兩個邊界均丟失。由獲取到的邊界計算中心值,與列數中值比較計算數學期望。然后使用PID算法控制舵機轉角。前期調試建議只加P值,調試只有穩態誤差后相應加I或D。低速狀況下(<=1m/s),筆者系統只有P,運行相當穩定。高速調試時,加P參數能夠使彎道過得穩定,但是直道略有抖動,筆者嘗試添加D參數,效果得到很好的改善。
4 結語
智能循跡小車設計實現涉及到的學科比較多,它集中運用了計算機、現代傳感、信息融合、通訊、人工智能及自動控制等技術,是典型的高新技術綜合體。硬件的合理調試和穩定根本上決定智能汽車軟件運行效果,提高硬件可靠性有利于后期軟件開發和維護。軟件開發上,應當提前制定接口標準、命名標準、資源利用率和程序運行效率要求,從而有利于后期調試和維護。對智能循跡小車的研究加深,有利于技術上跟上世界智能化的潮流,落實我國科教興國的戰略思想。