涂市委,薛諾諾,方海洋
(長安大學汽車學院,陜西 西安 710064)
伴隨著計算機技術、圖像處理技術、自動控制技術等相關領域的發(fā)展,移動機器人也在不斷地發(fā)展,光電直立智能車作為一種特殊的移動機器人,在很多特定場合得到廣泛應用。文章以恩智浦E車模為模型,闡述了以下三個方面的內(nèi)容:一是整車控制策略,主要使各控制模塊相互配合,進而使智能車在賽道上平穩(wěn)運行;二是硬件電路設計,包括電源管理模塊等六大模塊;三是控制系統(tǒng)的具體算法過程以及總體結構框圖、車模運行控制框圖。通過試驗調(diào)試,該光電直立智能車能夠實現(xiàn)車模的穩(wěn)定運行,對平衡車以及機器人的研究起到了很好的參考和借鑒作用。
此控制系統(tǒng)共包含六大模塊:電源管理模塊、姿態(tài)檢測模塊、測速模塊、路徑識別模塊、電機驅動模塊、無線調(diào)試模塊。K60單片機通過采集直立模塊中陀螺儀和加速度計的輸出信號,經(jīng)過軟件卡爾曼濾波后獲得智能車的當前姿態(tài),計算得到角度偏差[1]。經(jīng)過圖像識別得到路徑識別模塊輸出的圖像信息,從而得到車子距離賽道中心線的偏差量。通過正交解碼獲取速度檢測模塊的速度信號,得到兩輪的速度偏差。最終通過速度閉環(huán)的PID調(diào)節(jié)并結合兩電機PWM波的輸出,動態(tài)調(diào)整車身姿態(tài),使其既快又穩(wěn)地通過規(guī)定賽道。同時為實時監(jiān)控智能車的運行情況,系統(tǒng)加入了無線調(diào)試模塊。此外,通過串口模塊可實現(xiàn)單片機與上位機之間的信息傳輸。
系統(tǒng)的硬件設計極其重要,首先要選擇合適的單片機,這里選用 MK60FN1MOVLQ15單片機為控制芯片,然后設計各外圍子電路,包括電源管理模塊等必要的模塊,最后通過連接各電路從而形成完整的電路網(wǎng)絡[2]。
系統(tǒng)供電 7.2V,電源電路 5V和 3.3V供電分別選用TPS7350和TPS7333芯片。電機模塊單獨供電,原因是電機模塊驅動電機時電池會發(fā)生較大的壓降和電流,容易產(chǎn)生對其他模塊的干擾。其中TPS7350、TPS7333均屬于微功耗低壓差穩(wěn)壓器,在欠壓條件下,TPS73xx的RESET輸出腳會執(zhí)行一次RESET操作。
光電直立智能車控制的核心在于對車模平衡狀態(tài)的控制,為維持車模平衡需要實時監(jiān)控車身姿態(tài)。姿態(tài)傳感器由直立模塊和轉向模塊兩個部分組成。其中,直立模塊主要使用的是MPU3050陀螺儀和MMA8451Q加速度計這兩種傳感器,輸出數(shù)字信號,通過IIC通信實現(xiàn)車模的直立;轉向模塊主要使用的是ENC-03MB陀螺儀傳感器,輸出模擬信號,采用AD轉換實現(xiàn)車模的轉向[3]。
系統(tǒng)采用512線3相增量式旋轉編碼器LQ_ECM15180 305_SDZ512,測速方向兼容正交解碼,輸出信號為 CMOS信號,選用5V供電電壓。工作原理為智能車在運行時記錄下車子運行的位移信號,然后將其轉化為周期性的電信號,再通過一定的處理轉化為計數(shù)脈沖,通過脈沖的個數(shù)來表示位移的大小[4]。
選用山外鷹眼硬件二值化高速攝像頭 OV7725,供電電壓3.3V。該攝像頭共有8根數(shù)據(jù)信號線,每次輸出1個8bit數(shù)據(jù),每個bit對應圖像上的1個像素點,而且這8個像素點是硬件二值化后的數(shù)據(jù),無需再次軟件二值化,極大減輕單片機的運算量,進而可以釋放更多的資源用在算法控制上。此攝像頭主要采用SCCB通信協(xié)議,同時兼容IIC協(xié)議,區(qū)別在于SCCB在讀的時候,添加了一個總線停止條件。
電機驅動采用全橋電路,由 IR2104S驅動 4片 N型IR7843MOS管,12V升壓供電由MC34063提供。系統(tǒng)根據(jù)輸出的PWM信號,從而實現(xiàn)對直流電機的轉速的控制。
無線調(diào)試模塊主要用于顯示車模運行狀態(tài)及各控制參數(shù)的變化,NRF2401+模塊每32字節(jié)為一個數(shù)據(jù)包,當發(fā)送變量值時前12個字節(jié)才是一個數(shù)據(jù)的幀。
系統(tǒng)采用C語言編程實現(xiàn)各模塊功能的控制,系統(tǒng)的初始化包含電機、編碼器、攝像頭、PIT、PORTA、DMA的初始化,各功能模塊信息的采集包括直立模塊、轉向模塊、光電編碼器、攝像頭等,控制算法包括圖像二值化、邊緣檢測、卡爾曼濾波、車身姿態(tài)控制、速度控制、方向控制等,圖 2即為系統(tǒng)控制的總體結構框圖[5]。
圖2 系統(tǒng)控制的總體結構框圖
具體算法步驟如下:
①各功能模塊初始化,包括電源管理模塊等6個模塊;
②K60微控制器獲取各功能模塊采集得到的信息,包括車身傾角、圖像采集后的二值化圖像、轉向時的位置偏差量、電機轉速等;
③通過卡爾曼濾波得到車模傾角,然后對車模進行 PD調(diào)節(jié),進而實現(xiàn)車模的直立,若滿足直立則執(zhí)行步驟④,反之則返回步驟①;
④通過對采集到的二值化圖像進行處理后,得到圖像中心線距離賽道中心線的偏差量,同時微控制器判斷是否在速度時間周期內(nèi),若在則結合電機速度,對電機進行速度閉環(huán)PI調(diào)節(jié);反之則直接執(zhí)行步驟⑥;
⑤微控制器將閉環(huán)控制結果轉化為相對應的PWM占空比,控制左右兩電機的轉速;
⑥微控制器判斷是否在轉向時間周期內(nèi),若在則根據(jù)采集到的位置偏差量對智能車進行PD調(diào)節(jié),反之則進入步驟⑦;
⑦車模的運行與停車控制:微控制器判斷車身姿態(tài)是否滿足正常運行要求,若滿足則輸出相對應的占空比控制左右兩電機的轉速;反之則控制電機的占空比為 0,車模停止運轉。
⑧當車模電機停止運轉時,則通過無線調(diào)試模塊進行相關參數(shù)的調(diào)整,并重新回到步驟①;
圖3為車模運行時直立PD、速度PI、轉向PD的控制框圖,通過調(diào)整各控制參數(shù)從而實現(xiàn)車模的穩(wěn)定運行[6]。
圖3 車模運行控制框圖
表1 試驗結果
通過對程序的編譯調(diào)試,以及對智能車直立、速度、方向三大模塊的控制參數(shù)進行桌面靜態(tài)調(diào)試以及動態(tài)調(diào)試之后,在36.4m的正式賽道上進行試驗調(diào)試,經(jīng)過多次調(diào)試后得到試驗結果如表1所示。
通過實測可以看出,所設計的控制系統(tǒng)能夠使車模在賽道上快速運行,且穩(wěn)定性好,這表明以上所述的控制方案合理,參數(shù)選擇恰當,各硬件工作正常。
該文章針對光電直立智能車,以 MK60FN1MOVLQ15單片機為核心控制芯片,通過對智能車控制策略、硬件電路設計、控制算法幾個方面進行闡述,以及對智能車直立、速度、方向三大模塊進行桌面靜態(tài)調(diào)試以及動態(tài)調(diào)試之后,各模塊能穩(wěn)定運行,并以較為理想的速度完成賽道的直立行走,論文對于平衡車以及機器人的控制研究具有一定的參考和借鑒作用。
[1] 王玲玲,施建洪.直立車平衡控制的研究[J].機械與電子,2016,34(10):72-75.
[2] 趙元睿,李新征,王家輝等.基于 K60的兩輪尋跡直立車的設計[J].機電技術,2015,(02):31-32.
[3] 龔曉輝,薄祥岑. 基于 MC9S12XS128的二輪直立車設計與實現(xiàn)[J].電子設計工程,2014,22(02):137-139.
[4] 沙志豪,劉璐璐,張洪等.兩輪直立車控制系統(tǒng)設計[J].電子技術與軟件工程,2016,(06):149.
[5] 莊治強.基于Freescale小車的智能控制算法研究[D].蘭州:西北師范大學,2015.
[6] 陳思涵.基于視覺引導的自平衡機器人控制系統(tǒng)研究[D].大連:大連海事大學,2017.