章謙驊,駱懿,陳巍
(杭州電子科技大學(xué)通信工程學(xué)院,浙江杭州310018)
智能車又稱輪式移動(dòng)機(jī)器人,集環(huán)境感知、規(guī)劃決策、自動(dòng)行駛等功能于一體,集中的運(yùn)用到自動(dòng)控制、模式識(shí)別、傳感器技術(shù)、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科,是典型的高新技術(shù)綜合體[1]。該文提出了一種基于MATLAB的移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái),該平臺(tái)采用Math Works公司推出的一套高性能數(shù)值計(jì)算和可視化軟件Matlab作為圖像計(jì)算平臺(tái)??梢暂^快速的構(gòu)建基于視覺(jué)的移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái)。驅(qū)動(dòng)部分采用MC9S12系列單片機(jī)[2](也稱為HCS12系列,簡(jiǎn)稱S12系列),該單片機(jī)是基于速度更快的CPU12內(nèi)核的單片機(jī)系列,具備片上糾錯(cuò)能力,并與68HC11和68HC12結(jié)構(gòu)編碼兼容,便于移植。裝在移動(dòng)小車上的筆記本電腦通過(guò)USB攝像頭獲取圖像,經(jīng)Matlab軟件的圖像算法,將最終的控制小車電機(jī)的運(yùn)動(dòng)的控制指令通過(guò)藍(lán)牙接口發(fā)送給驅(qū)動(dòng)模塊[3]。該平臺(tái)非常適合在高校中開(kāi)展機(jī)器人實(shí)踐教學(xué)和數(shù)字圖像處理的實(shí)踐教學(xué),基于該移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái),可進(jìn)一步開(kāi)發(fā)出不同的移動(dòng)機(jī)器人的原型應(yīng)用系統(tǒng)。
該平臺(tái)總體結(jié)構(gòu)如圖1所示,總分4個(gè)部分:視頻采集單元、視頻處理單元、無(wú)線通信單元、移動(dòng)機(jī)器人單元。本設(shè)計(jì)中視頻采集單元采用普通的高清USB攝像頭(USB CAM);視頻處理單元為運(yùn)行在移動(dòng)計(jì)算機(jī)(PC)上的MATLAB程序;無(wú)線通信單元采用藍(lán)牙短距離通信方案;移動(dòng)機(jī)器人的主控制器(MCU)采用MC9S12單片機(jī)完成尋路及轉(zhuǎn)向轉(zhuǎn)速控制。
圖1 系統(tǒng)總體結(jié)構(gòu)
硬件設(shè)計(jì)主要圍繞智能移動(dòng)機(jī)器人的運(yùn)動(dòng)控制系統(tǒng)和無(wú)線數(shù)據(jù)傳輸模塊來(lái)展開(kāi)。運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)主要在于MCU單元設(shè)計(jì)和H橋電路設(shè)計(jì),MCU是整個(gè)運(yùn)動(dòng)系統(tǒng)的控制中心,H橋電路和電機(jī)又是移動(dòng)的主要部件,這兩部份設(shè)計(jì)的好壞直接關(guān)系到整個(gè)系統(tǒng)的運(yùn)行性能。
(1)MCU最小系統(tǒng)設(shè)計(jì),根據(jù)所需實(shí)現(xiàn)功能,結(jié)合功耗、運(yùn)行速率等綜合考慮后,最終選擇了飛思卡爾公司的MC9S12單片機(jī)座位運(yùn)動(dòng)系統(tǒng)的主控制器,該控制器也是飛思卡爾公司智能車競(jìng)賽所選用的處理器。MC9S12系列采用Motorola第三代Flash,容量為32~512kB,具有在線編程能力和保密機(jī)制,無(wú)需外加編程電壓,最短整體擦除時(shí)間僅100ms,512字節(jié)頁(yè)擦除時(shí)間僅20ms。典型的HC12總線速率是8MHz,而S12內(nèi)部總線速率最高可達(dá)25MHz[2],即40ns的最小指令周期。最小系統(tǒng)核心板如圖2所示。
圖2 最小系統(tǒng)核心板
(2)驅(qū)動(dòng)電路設(shè)計(jì),移動(dòng)機(jī)器人運(yùn)動(dòng)系統(tǒng)的驅(qū)動(dòng)電路[3]在機(jī)器人的運(yùn)動(dòng)中也起著至關(guān)重要的作用。H橋式電機(jī)驅(qū)動(dòng)電路包括4個(gè)三極管和一個(gè)電機(jī)。要使電機(jī)運(yùn)轉(zhuǎn),必須導(dǎo)通對(duì)角線上的一對(duì)三極管。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過(guò)電機(jī),從而控制電機(jī)的轉(zhuǎn)向。H橋電路在功放、直流電機(jī)驅(qū)動(dòng)或直流變換電路中被廣泛使用。電路比較成熟穩(wěn)定。
單片機(jī)MC9S12是移動(dòng)機(jī)器人處理單元,PC的MATLAB分析攝像頭數(shù)據(jù)后根據(jù)算法得出運(yùn)行軌跡,然后通過(guò)藍(lán)牙模塊發(fā)給單片機(jī),單片機(jī)根據(jù)得到的指令進(jìn)行運(yùn)動(dòng)控制,使得運(yùn)動(dòng)機(jī)器人做出一些動(dòng)作,同時(shí)提供一些附加功能。MCU程序流程圖如圖3所示。
圖3 MCU程序處理流程圖
通過(guò)Matlab編程完成視頻處理[4],可以大大縮短應(yīng)用程序的開(kāi)發(fā)周期,提高編程效率和縮短理論方案研制周期,適合工程人員或初學(xué)者編程的需要。這是因?yàn)榇罅繑?shù)學(xué)公式利用MATLAB語(yǔ)言及其所提供的函數(shù)進(jìn)行數(shù)字圖像處理,編程簡(jiǎn)單、操作方便、可靠性強(qiáng),能夠達(dá)到預(yù)期的效果。Matlab軟件分為基本部分和專業(yè)擴(kuò)展兩個(gè)部分?;静糠职ù鷶?shù)方程和超越方程求解,矩陣運(yùn)算和各種變換,數(shù)值積分、數(shù)據(jù)處理等可以滿足大學(xué)本科理工科的多種計(jì)算需要。擴(kuò)展部分包括控制系統(tǒng)、模糊集合、神經(jīng)元網(wǎng)絡(luò)、魯棒控制、小波分析等數(shù)十個(gè)工具箱可用于實(shí)現(xiàn)某一類新算法,解決某一類專門問(wèn)題,這一部分還在不斷發(fā)展中,前景十分喜人[5]。本平臺(tái)應(yīng)用了MATLAB影像工具箱對(duì)從USB攝像頭獲得的視頻圖像進(jìn)行處理,分析,然后根據(jù)處理結(jié)果生成運(yùn)動(dòng)指令。算法流程如圖4所示。在Matlab中采用USB攝像頭進(jìn)行圖像捕獲的函數(shù)舉例為:fp=videoinput('winvideo',1,'RGB24_640x480');該圖像大小為640×480。取一幀圖像的函數(shù)為:pic=getsnapshot(fp);線性濾波可以采用高通濾波器增強(qiáng)圖像的邊緣,舉例:g8=pic-imfilter(pic,w8,'replicate');邊緣檢測(cè)MatLab可以采用的Matlab的canny函數(shù),舉例為:edge(f,'canny',[0.2 0.3],0.25)。藍(lán)牙串口通信采用的函數(shù)舉例為:s1=serial('COM1','BaudRate',9600);fprintf(s1,'abc')。
圖4 MATLAB算法流程圖
通過(guò)多次的測(cè)試和調(diào)試,該試驗(yàn)平臺(tái)達(dá)到了預(yù)想的標(biāo)準(zhǔn)。能完成一些功能的實(shí)現(xiàn)如尋跡。USB采集的路徑圖像如圖5所示;采用prewitt邊緣算法后計(jì)算路徑如圖6所示:
圖5 路徑USB采集圖像
圖6 采用邊緣檢測(cè)后的路徑
本文提出了一種基于MATLAB的移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái),該試驗(yàn)平臺(tái)采用了MATLAB的影像工具箱做視覺(jué)分析,移動(dòng)機(jī)器人單元的核心處理器采用飛思卡爾公司的MC9S12單片機(jī)。利用MATLAB語(yǔ)言及其所提供的函數(shù)進(jìn)行數(shù)字圖像處理,編程簡(jiǎn)單、操作方便、穩(wěn)定性強(qiáng),達(dá)到了預(yù)期的效果。本文適合于高校的機(jī)器人實(shí)踐教學(xué)和數(shù)字圖像處理的實(shí)踐教學(xué),基于該移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái),可進(jìn)一步開(kāi)發(fā)出不同的移動(dòng)機(jī)器人實(shí)驗(yàn)應(yīng)用系統(tǒng)。
[1]李永樂(lè),袁一,朱云江,等.基于MATLAB串行通信的智能車車速控制算法研究[J].軍事交通學(xué)院學(xué)報(bào),2009,11(3):4-7.
[2]曾愛(ài)群,張烈平.藍(lán)牙技術(shù)的概述[J].電子測(cè)試,2007,(6):5-8.
[3]李曉靜,羅永革,余建強(qiáng),等.基于AMT直流電機(jī)的H橋驅(qū)動(dòng)電路硬件研制[J].湖北汽車工業(yè)學(xué)院學(xué)報(bào),2007,21(1):4-8.
[4]楊杰.數(shù)字圖像處理及MATLAB實(shí)現(xiàn)-學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)[M].北京:電子工業(yè)出版社,2010:67-78.
[5]蘇中義.MATLAB簡(jiǎn)介[J].上海電機(jī)技術(shù)高等??茖W(xué)校學(xué)報(bào),2003,6(4):1-3.