文/徐兆龍 劉延飛 王藝輝
隨著電子信息技術(shù)的發(fā)展,機器人技術(shù)越來越成為現(xiàn)在社會發(fā)展的熱點,智能車作為輪式機器人的一種備受社會的關(guān)注。而智能車在道路行駛過程中控制系統(tǒng)的穩(wěn)定性和安全行走速度成為關(guān)鍵因素。隨著道路信息復雜度的升高,單一控制器采集處理圖像、識別賽道元素和執(zhí)行控制等工作負擔過重,較多的中斷任務降低程序執(zhí)行的效率,影響系統(tǒng)的實時性,以及道路行駛對智能車控制的精度要求越來越高,急需對控制系統(tǒng)的構(gòu)架加以研究改進。本文設計的雙MCU架構(gòu)的智能車系統(tǒng),實現(xiàn)智能車任務在每個MCU上合理分配,參數(shù)傳遞合理實時,充分發(fā)揮雙MCU的資源優(yōu)勢,使得智能車道路行駛更加實時流暢。
根據(jù)智能車在道路行駛中控制任務要求,設計的雙MCU架構(gòu)的智能車系統(tǒng)方案設計如圖1所示,分為圖像處理平臺(MCU-1)和決策控制平臺(MCU-2)。由于圖像傳感器采集有嚴格的時序要求,而且圖像處理復雜程度高,所以設計圖像處理平臺(MCU-1)完成圖像相關(guān)任務,主要連接有圖像采集電路、人機交互電路和雙機互聯(lián)通訊部分;決策控制平臺(MCU-2)主要完成與電機相關(guān)的各種,有道路規(guī)劃、速度采集、電機閉環(huán)控制、信息顯示和雙機互聯(lián)通訊部分。
MCU是智能車系統(tǒng)的核心,在本方案中采用恩智浦公司生產(chǎn)的32位單片機MK60FX,該型號芯片以ARM Crotex-M4為內(nèi)核,功耗低,集成DSP指令和單精度浮點運算單元,可提供高達180MHZ的主頻,同時具有GPIO、UART、I2C、SPI、ADC、DAC、DMA、PIT、FTM等豐富外設。
雙MCU互聯(lián)通訊采用SPI模塊,即同步串行總線,可利用時鐘線SCK、主發(fā)從收數(shù)據(jù)線MOSI、主收從發(fā)數(shù)據(jù)線MISO以及從機片選信號線CS實現(xiàn)四線全雙工高速通訊,節(jié)約了MCU管腳資源,高通訊速率滿足了數(shù)據(jù)流傳輸?shù)男枨?。在雙MCU核心實際搭建過程中,將圖像處理平臺(MCU-1)定為主機、決策控制平臺(MCU-2)定為從機,相應的通訊連接方式如圖2所示。
圖1:系統(tǒng)總體框圖
圖2:雙MCU通訊連接圖
圖3:系統(tǒng)軟件總結(jié)構(gòu)圖
穩(wěn)定可靠的電能供應是智能車控制系統(tǒng)能夠正常工作的基礎和前提。利用7.2V鎳鎘電池負責系統(tǒng)的電能供應。在整個智能車系統(tǒng)中速度采集模塊、藍牙模塊需要5V電源,利用TPS7350將7.2V電池電壓將至5V供相應模塊使用。MCU、圖像采集模塊、OLΕD顯示屏需要3.3V電源,利用TPS7333將轉(zhuǎn)換后的5V電源進一步降至3.3V。伺服舵機的響應速度直接影響到智能車的轉(zhuǎn)向性能,為提高伺服舵機響應速度,利用LM1084并適當調(diào)整,供給伺服舵機6.5V電壓。對于電機驅(qū)動電路中IR2104,利用MC34063進行7.2V至12V升壓供電。
采用性能穩(wěn)定驅(qū)動能力強的MOS管驅(qū)動,使得智能車在加減速方面的性能更加優(yōu)越,并在輸出端增加壓敏電阻,防止電機瞬間換向產(chǎn)生峰值電壓損壞其他芯片。其次利用74LVC245隔離芯片將MCU與驅(qū)動電路隔離,保障了MCU的安全。驅(qū)動模塊接收MCU輸出的兩路PWM信號,實現(xiàn)對直流電機調(diào)速控制,通過改變兩路PWM信號極性改變電機轉(zhuǎn)動方向,并利用發(fā)光二級管進行正反轉(zhuǎn)狀態(tài)提示。
圖像采集模塊使用灰度攝像頭MT9V032。全局快門的特點使得智能車在高速行駛狀態(tài)下圖像不變形。同時具備自動曝光的能力,可根據(jù)外界光強自動設定曝光時間,增強了智能車對外界環(huán)境的適應性。
速度采集模塊使用逐飛科技公司生產(chǎn)的Mini1024Z增量式編碼器。輸出數(shù)據(jù)為步進脈沖+轉(zhuǎn)動方向模式。相比較于普通的光柵編碼器,抗干擾能力強,可在多灰塵與潮濕環(huán)境下工作,能有效地避免電機工作產(chǎn)生的干擾。
針對圖像數(shù)據(jù)量大、處理過程繁瑣耗時的特點,且智能車在高速行走過程對圖像信息的實時性要求苛刻,遂對雙MCU合理地進行任務規(guī)劃:將圖像的采集處理任務與決策控制任務分離開,雙MCU之間采用SPI通訊方式;圖像處理平臺(MCU-1)可獨立完成攝像頭圖像采集與處理,人機交互功能,可將圖像處理的最終結(jié)果通過SPI傳輸給決策控制平臺(MCU-2),決策控制平臺(MCU-2)接收圖像處理平臺(MCU-1)的數(shù)據(jù)并進行校驗分析,采集速度信息,結(jié)合PID算法實現(xiàn)對電機、伺服舵機的實時控制,具有較高的并行處理能力。雙MCU智能車系統(tǒng)軟件結(jié)構(gòu)如圖3所示。
圖像處理平臺利用場中斷+DMA模式進行圖像數(shù)據(jù)采集,并進行圖像信息處理和雙MCU通訊。
(1)初始化后采取DMA模式采集120X188的灰度圖像,此DMA采集模式能有效降低單片機的工作負擔,提高單片機的工作效率。
(2)將采集到的灰度圖像進行基于動態(tài)閾值的二值化處理,將賽道與賽道背景分割開,采用逐行搜線方法獲取賽道邊線,方法是從圖像最低行進行搜線,并記錄賽道左右邊界的位置,當進行下一行圖像賽道邊界提取時,根據(jù)上一行賽道左右邊界的位置,動態(tài)地選擇搜線的起始坐標,使得當獲取某一行圖像賽道邊界時程序循環(huán)次數(shù)小于等于188,該方法優(yōu)化了圖像處理算法,提高了程序執(zhí)行效率。
(3)由于賽道元素的不同,需進行圖像有效區(qū)域的選擇和邊線的修補與校正,而后再進行賽道中線的提取。此外智能車需要在不同的賽道元素上做出有區(qū)別的控制策略,所以圖像處理平臺還需根據(jù)賽道元素的不同特征,進行賽道元素識別。
(4)將圖像處理結(jié)果以數(shù)組形式通過SPI傳輸至決策控制平臺。
決策控制程序主要由兩個中斷程序組成,一個是SPI中斷,接收并校驗圖像處理平臺的數(shù)據(jù)。一個是定時器中斷,每2ms一次,完成伺服舵機控制、目標速度設定、速度獲取、PID輸出PWM。其中,在每一次定時中斷中執(zhí)行如下步驟。
(1)采集編碼器脈沖計數(shù)數(shù)值,將該脈沖值作為實際速度,為速度閉環(huán)控制提供實際值Real。
(2)根據(jù)SPI中斷中校驗分析處理得到的數(shù)據(jù),進行控制的目標速度設定,為速度閉環(huán)控制提供目標值Aim。
(3)速度PID計算見公式1和2,輸出PWM控制直流電機,為防止控制量過大,導致電路或者電機燒壞,要進行PWM波輸出限幅。
式中:Pre_error為當前k控制周期目標速度與實際速度的偏差;Last_error為k-1控制周期目標速度與實際速度的偏差;LLast_error為k-2控制周期目標速度與實際速度的偏差;Last_PWM為k-1控制周期PWM的輸出量;PWM_OUT為當前k控制周期PWM的輸出量。
(4)系統(tǒng)要求伺服舵機快速反應以適應高速轉(zhuǎn)向的需求,所以伺服舵機采用位置式PD算法控制,去掉積分環(huán)節(jié),減少系統(tǒng)滯后性。給出轉(zhuǎn)向PWM數(shù)值,控制舵機轉(zhuǎn)向。
本文設計了基于雙MCU架構(gòu)的智能車系統(tǒng),并分別從硬件實現(xiàn)、軟件實現(xiàn)的角度闡述了整個智能車系統(tǒng)雙MCU架構(gòu)的搭建、硬件結(jié)構(gòu)組成以及軟件的實現(xiàn)過程。該系統(tǒng)使用雙MCU將圖像采集處理任務與決策控制任務分開,利用SPI進行雙MCU互聯(lián)通訊,使得整個系統(tǒng)模塊化,滿足了智能車高速行駛下對圖像信息實時性和精確控制的苛刻需求。經(jīng)過初步調(diào)試,在模擬道路上速度可穩(wěn)定在2.8m/s以上,證明雙MCU構(gòu)架具有較好的實用效果。