基于嵌入式技術(shù)的智能機器人系統(tǒng)研究
近年來,機器人技術(shù)的應(yīng)用開始從制造業(yè)向非制造領(lǐng)域擴展,如宇宙探索、海底探查、管道鋪設(shè)和檢修、醫(yī)療、軍事、服務(wù)、娛樂等,基于非結(jié)構(gòu)環(huán)境、極限環(huán)境的先進機器人技術(shù)及應(yīng)用研究已成為機器人技術(shù)研究和發(fā)展的主要方向。同時,隨著嵌入式處理器的高度發(fā)展,嵌入式系統(tǒng)在體積、價格、功耗、性能、穩(wěn)定性等方面表現(xiàn)出明顯的優(yōu)勢。如果將嵌入式系統(tǒng)很好地與機器人技術(shù)融合,前景不可估量,因此,研究在嵌入式條件下的機器人技術(shù)也更有現(xiàn)實意義。
本設(shè)計將嵌入式技術(shù)應(yīng)用于機器人系統(tǒng),采用基于ARM920T核的S3C2410芯片作為主控CPU,使用實時嵌入式操作系統(tǒng)μC/OS-Ⅱ作為操作系統(tǒng),并集成必要的中間件μC/GUI和相應(yīng)的驅(qū)動程序與應(yīng)用程序,構(gòu)建成一個完整的智能移動機器人系統(tǒng),完成周圍環(huán)境的圖像、聲音等信息的采集,實現(xiàn)機器人的越障等功能。系統(tǒng)具有廣闊的發(fā)展空間和應(yīng)用前景,將來可用于在惡劣條件下的軍事偵察攻擊及反恐防爆等領(lǐng)域。
1 智能機器人系統(tǒng)機械平臺的搭建
對國內(nèi)外移動機器人及仿生機器人的研究發(fā)現(xiàn),智能移動機器人系統(tǒng)機械機構(gòu)大致分為三類,分別為輪式、履帶式和腿式,這三種機械模型各有優(yōu)缺點。其中,輪式移動機器人以其地面適應(yīng)性強、運行可靠和控制方便而成為移動機器人首要的選擇方案,也是本文所介紹機器人采用的結(jié)構(gòu)。
該機器人由前部機構(gòu)、主體機構(gòu)、側(cè)向機構(gòu)、后部機構(gòu)四部分組成。系統(tǒng)共配有6個車輪,每個直徑均為100 mm,均為主動輪。其中,前后輪上各安裝有兩個電機,一個電機驅(qū)動轉(zhuǎn)向,另一個驅(qū)動機器人的前進后退;其余四個車輪分布在主體的兩側(cè),每個輪上各有一個電機驅(qū)動前進后退。
機器人前部為一四桿機構(gòu),使前輪能夠在一定范圍內(nèi)調(diào)節(jié)其高度,主要功能是在機器人前部遇障礙時,前向連桿機構(gòu)隨車輪上抬,而遇到下凹障礙時前車輪先下降著地,以減小震動,提高整機平穩(wěn)性。在主體的左右兩側(cè),分別配置了平行四邊形側(cè)向被動適應(yīng)機構(gòu),該平行四邊形機構(gòu)與主體之間通過鉸鏈與其相連接,是小車行進的主要動力來源。利用兩側(cè)平行四邊形可任意角度變形的特點,實現(xiàn)自適應(yīng)各種障礙路面的效果。改變平行四邊形機構(gòu)的角度,可使左右兩側(cè)車輪充分與地面接觸,使機器人的6個輪子受力盡量均勻,加強機器人對不同路面的適應(yīng)能力,更加平穩(wěn)地越過障礙,并且更好地保證整車的平衡性。主體機構(gòu)主要起到支撐與連接機器人各個部分的作用,同時,整個機器人的控制系統(tǒng)就安裝在主體之中。后部機構(gòu)與主體剛性連接,配備有電機驅(qū)動車輪,主要起支撐作用,并配合前輪實現(xiàn)轉(zhuǎn)向。
2 智能機器人控制系統(tǒng)硬件結(jié)構(gòu)設(shè)計
2.1 控制系統(tǒng)總體硬件結(jié)構(gòu)
智能機器人控制系統(tǒng)的硬件系統(tǒng)方案設(shè)計如圖1所示。遠程監(jiān)控端由臺式PC主機通過RS232或網(wǎng)絡(luò)接口連接無線收發(fā)模塊,完成圖像、語音的收集和顯示播放再現(xiàn),監(jiān)視現(xiàn)場機器人的周圍環(huán)境,必要時可以通過無線收發(fā)模塊發(fā)送控制命令,完成控制任務(wù)。由于研制的進度,本部分即虛線框內(nèi)的功能正在開發(fā),是今后研究的重點;現(xiàn)場機器人控制端由核心控制板模塊、視頻采集模塊、語音采集模塊、人機交互模塊、程序下載模塊、電機驅(qū)動模塊、電源模塊、無線收發(fā)模塊等組成。
2.2 語音視頻采集模塊
因為機器人需要收集周圍環(huán)境的信息,監(jiān)聽周圍的情況,提供與圖像信息同步的語音信息,以便控制人員準確地掌握周圍所發(fā)生的情況,及時做出決策,所以設(shè)計了語音采集模塊以完成此項功能。本設(shè)計采用了Philips公司的UDA1341TS芯片與微處理器S3C2410相連,提供了完整的語音錄制和播放功能。S3C2410提供了IIS接口,能夠讀取IIS總線上的數(shù)據(jù),同時也為FIFO數(shù)據(jù)提供DMA的傳輸模式,這樣能夠同時傳送和接收數(shù)據(jù)。在S3C2410處理器中,音頻數(shù)據(jù)的傳輸可以使用兩個DMA通道。如聲音播放,先將數(shù)據(jù)送到內(nèi)存,然后傳到DMA控制器通道2,再通過IIS控制器寫入IIS總線并傳輸給音頻芯片,而通道1則主要用于錄音功能。
本系統(tǒng)采用基于CMOS圖像傳感器直接輸出數(shù)字信號的方案設(shè)計視頻采集模塊。此方案具有模塊簡單、外圍電路少、直接輸出數(shù)字信號、不用經(jīng)過中間轉(zhuǎn)換就可以提供進一步的圖像處理的諸多特點。本課題選用C3188A攝像頭構(gòu)成視頻采集模塊。C3188A是1/3″鏡頭的彩色數(shù)字輸出的攝像頭模塊,攝像頭芯片采用OmniVision公司的CMOS圖像傳感器OV7620。C3188A攝像頭模塊采用數(shù)字和模擬信號輸出接口,并提供8/16的數(shù)據(jù)總線寬度,通過I2C串行通信協(xié)議,可以對OV7620內(nèi)部的寄存器進行編程,如修改曝光率、白平衡、窗口大小、飽和度、色調(diào)和圖像輸出格式等。
2.3 電機驅(qū)動和電源模塊
驅(qū)動部分是機器人的重要組成部分,它和電機組成機器人的執(zhí)行機構(gòu),完成機器人行走運動。直流電機具有良好的線性調(diào)速特性、簡單的控制功能、較高的效率、優(yōu)異的動態(tài)特性,被廣泛應(yīng)用在控制系統(tǒng)中。本系統(tǒng)將采用4片L298N電機驅(qū)動芯片驅(qū)動8個直流電機,采用PWM調(diào)速原理控制直流電機達到控制機器人的速度。
為了消除電機運轉(zhuǎn)對系統(tǒng)核心開發(fā)板SBC2410的干擾,從核心開發(fā)板的控制引腳輸出的信號,經(jīng)過16路光電耦合器(需4片TLP521-4)進行信號隔離,脈寬調(diào)制PWM控制光電耦合器的開關(guān),以達到控制L298N驅(qū)動芯片的目的,并驅(qū)動電機按照所需的速度運轉(zhuǎn)。
在電源方面,設(shè)計的系統(tǒng)電源主要供給核心控制板模塊、電機驅(qū)動模塊、人機交互模塊所用的640?鄢480TFT/LCD顯示器、視頻采集模塊、無線收發(fā)模塊(預(yù)留擴展)和語音采集模塊。系統(tǒng)最終選用12 V的電瓶供電,可直接給電機驅(qū)動芯片和LCD顯示器供電。但由于系統(tǒng)模塊多,所需電流大,所以在提供12 V轉(zhuǎn)5 V電壓時,選擇開關(guān)電源芯片LM2576作為電壓變換核心器件,它能承受最大3 A的電流輸出。
3 智能機器人控制系統(tǒng)軟件結(jié)構(gòu)設(shè)計
機器人控制系統(tǒng)的實時性好壞對于整個機器人系統(tǒng)的性能極其重要,控制系統(tǒng)的實時性越強,機器人處理異常情況的能力越強。由于μC/OS-Ⅱ是一種源代碼公開、可移植、可固化、可裁剪、占先式的實時多任務(wù)操作系統(tǒng),所以本設(shè)計就采用μC/OS-Ⅱ提供多任務(wù)支持,再整合人機界面μC/GUI和底層驅(qū)動程序及應(yīng)用程序等構(gòu)建機器人軟件控制系統(tǒng),實現(xiàn)對整個機器人的實時控制,完成智能控制任務(wù)。
3.1 控制系統(tǒng)總體軟件結(jié)構(gòu)
軟件系統(tǒng)主要由應(yīng)用軟件、內(nèi)核、系統(tǒng)服務(wù)、驅(qū)動程序等組成。其構(gòu)成示意圖如圖2。
圖2中硬件平臺是指核心控制模塊及其外圍擴展模塊,如視頻采集模塊、語音采集模塊等;驅(qū)動程序是指系統(tǒng)對LCD、直流電機、攝像頭模塊、語音采集模塊等程序;內(nèi)核是指嵌入式操作系統(tǒng),本系統(tǒng)采用的是μC/OS-Ⅱ操作系統(tǒng);系統(tǒng)服務(wù)是指圖形界面μC/GUI和文件系統(tǒng)等;應(yīng)用程序是指為完成控制系統(tǒng)所規(guī)劃的任務(wù)等程序。
3.2 基于μC/GUI的界面設(shè)計
本設(shè)計中,在嵌入式GUI方面選擇了Micrium公司開發(fā)的通用的嵌入式圖形用戶界面軟件μC/GUI,它是μC/OS-Ⅱ的專用GUI,可以實現(xiàn)與μC/OS-Ⅱ實時操作系統(tǒng)的完美結(jié)合。使用它可以方便地定制自己的圖形用戶界面,完成各種應(yīng)用程序的開發(fā)。
中間件μC/GUI界面應(yīng)用程序向用戶提供了豐富的API接口函數(shù),為窗口設(shè)計提供了方便。在設(shè)計中,為了繪制一幅背景圖片,首先使用位圖轉(zhuǎn)換工具把bmp格式的位圖轉(zhuǎn)換成μC/GUI支持的C文件,供μC/GUI函數(shù)調(diào)用。然后根據(jù)μC/GUI提供的API函數(shù)設(shè)計系統(tǒng)界面。用到的API函數(shù)主要有位圖顯示函數(shù)、窗口創(chuàng)建函數(shù)、窗口客戶區(qū)句柄獲取函數(shù)、按鈕創(chuàng)建函數(shù)、文本框創(chuàng)建函數(shù)和滑動進度條創(chuàng)建函數(shù)等。設(shè)計的界面最終在8英寸LCD液晶屏上顯示。本系統(tǒng)設(shè)計的窗口主要由兩個子窗口組成:上方窗口主要用于視頻顯示,可以通過觸摸屏點擊開始或結(jié)束,視頻數(shù)據(jù)將自動存入規(guī)劃好的內(nèi)存圖像存儲區(qū),以便進一步處理利用,并可選擇機器人所處環(huán)境的特定算法程序,且運行相應(yīng)的程序;下方的窗口工具條主要完成機器人現(xiàn)場音頻數(shù)據(jù)的收集、播放及停止采集,錄制的音頻信息將自動存入規(guī)劃好的內(nèi)存音頻數(shù)據(jù)存儲區(qū)Sound_Buffer中,而播放的音頻數(shù)據(jù)放在內(nèi)存Play_Buffer中,它們采用的都是內(nèi)存映射技術(shù)。
3.3 用戶任務(wù)設(shè)計
基于μC/OS-Ⅱ的任務(wù)管理機制,根據(jù)系統(tǒng)的功能要求,劃分為6個系統(tǒng)任務(wù),并設(shè)置每個任務(wù)的優(yōu)先級,如表1所示。
(1)Motor_Drive_Task——定時中斷節(jié)拍進行計時,在任務(wù)循環(huán)塊中,接收圖像處理控制算法中形成的電機驅(qū)動參數(shù),即Image_Analyze_Task任務(wù)中產(chǎn)生的電機驅(qū)動參數(shù),更新PWM輸出,完成機器人所需運動軌跡姿態(tài)的調(diào)整,隨后掛起自身。
(2)Image_Analyze_Task——獲取在內(nèi)存循環(huán)隊列中的圖像數(shù)據(jù),在任務(wù)循環(huán)塊中檢測圖像信號量。如果沒有在一定時期內(nèi)進行任務(wù)調(diào)度,則掛起自身;若有則對獲取內(nèi)存循壞隊列中的圖像數(shù)據(jù)進行分析處理,得出電機驅(qū)動參數(shù)并發(fā)送該信息至消息隊列中,然后釋放圖像信號量,再掛起自身。
(3)Sound_Record_Task——用于采集、存儲機器人周圍環(huán)境聲音信息數(shù)據(jù)到聲音隊列中。
(4)Sound_Play_Task——定時從內(nèi)存聲音播放存儲處,即Play_Buffer中提取數(shù)據(jù)放到隊列中進行播放。
(5)Image_Collect_Task——建立窗口界面,在任務(wù)循壞塊中檢測圖像信號量。如果沒有在一定時期內(nèi)進行任務(wù)調(diào)度,則掛起自身;如果檢測到圖像信號量,則采集一幅圖像到圖像存儲循壞隊列中,采集完成,再釋放圖像信號量,掛起自身。
(6)GUI_Update_Task——按照μC/GUI手冊規(guī)定,當其使用窗口回調(diào)機制,建議把它設(shè)為最低優(yōu)先級別的任務(wù),用來更新回調(diào)信息,并且該任務(wù)必須實現(xiàn),且要定期調(diào)用。
4 試驗研究分析
設(shè)計并完成裝配的機器人的樣機如圖3所示,其中A為攝像頭模塊,B為麥克風,C為液晶屏,D為喇叭,E為12 V電瓶。攝像頭離地的高度為450 mm,攝像頭光軸與水平面角度為60°。
4.1 視頻圖像采集試驗
由于本文采用的核心控制板的I/O口資源有限,因此,對圖像采集的控制信號線用普通的I/O口,而不是用中斷I/O口與其攝像頭模塊相連,因此只能用軟件實時檢測I/O的電平狀態(tài),決定何時采集開始,何時讀數(shù)據(jù),何時結(jié)束。為了能夠采集到圖像數(shù)據(jù)并能分辨出來,必須能夠跟蹤控制信號的變化狀態(tài),如果不對攝像頭模塊進行降頻處理,則由于I/O口電平的變化頻率遠低于攝像頭控制信號的變化頻率,將導(dǎo)致I/O口無法跟蹤控制信號變化,即將無法判斷幀、行、點何時開始與結(jié)束這些狀態(tài)信息。當攝像頭的最高頻率(點像素頻率最高)降到1 MHz左右,系統(tǒng)就能跟蹤并完整地采集到圖像信息,并進一步處理之后完好地顯示出來。采集到的實驗數(shù)據(jù)如表2所示(示波器采用x10檔)。
從以上的圖與表可以清楚地看出:系統(tǒng)的控制信號非常完整和穩(wěn)定,沒有出現(xiàn)毛刺、變形等情況,給檢測讀取帶來了方便。Y0數(shù)據(jù)信號也很規(guī)整,其他數(shù)據(jù)信號,如Y1~Y7也是如此。Y0的波形圖中有些段是低電平,出現(xiàn)的位置不一樣,這是因為攝像頭移動的時候,環(huán)境光發(fā)生了變化,引起整個Y數(shù)據(jù)變化,從Y0數(shù)據(jù)也可以清楚看出這一點,并且從圖像上也能很明顯地感到圖像在實時移動變化著。
4.2 直線爬坡試驗
對于移動機器人來說,在非結(jié)構(gòu)化環(huán)境中,最典型的情況就是平地、斜坡與臺階,對其走直線與爬坡的試驗如圖4所示。
實驗場地是綠色毛毯狀物質(zhì)。機器人上電工作之后,就開始在控制算法下運行電機控制任務(wù),輸出控制信號,驅(qū)動電機運行,機器人就沿著直線方向以0.17 m/s(理論計算值最高可達0.183 m/s)的速度前進。反復(fù)進行10次路徑長為5 m的直線行走實驗,發(fā)現(xiàn)最大偏差為0.25 m,最小偏差為0.08 m,平均偏差為0.184 m。分析其原因,是由于電機的負載能力、啟動特性、機械結(jié)構(gòu)、機器人的重心位置及輪子與地面的摩擦阻力等因素所造成的。
在爬坡實驗中,主要測試的是機器人單側(cè)爬坡的能力和效果。斜坡的傾斜角度是可調(diào)整的。對其進行了9次的爬坡實驗,角度從20°~60°的范圍變化,發(fā)現(xiàn)隨著角度每增加,爬坡的難度將變得越來越困難。當在36°左右時,機器人還能夠保持整體結(jié)構(gòu)平衡,能夠沿著斜坡運動前進并能越過障礙,而在41°左右時就無法前進。這些結(jié)果顯示,機器人爬坡能力較強,能夠翻越比較大的斜坡。但有些地方需要改進,如運動輪子摩擦不夠,輪子寬度較窄,后輪驅(qū)動力稍有不足,與其相連的機械結(jié)構(gòu)臂剛度不夠等。今后需對其進行仿真優(yōu)化。
4.3 智能巡線試驗
機器人的巡線可用于機器人比賽、自動化無人工廠、倉庫、服務(wù)機器人等領(lǐng)域,因此研究巡線實現(xiàn)過程有一定的現(xiàn)實意義。試驗如圖5所示。
實驗場地是綠色毛毯狀物質(zhì),其中白線寬度為30 mm。在啟動試驗平臺之前要調(diào)整攝像頭視角,如果視角太大,則循線精度很難保證,甚至會脫離預(yù)期的軌跡。經(jīng)過試驗驗證,當攝像頭光軸與地面夾角大約為60°左右時,其循線可靠性及精度能夠得到很好的保證。
(1)控制算法描述:機器人的動態(tài)巡線過程,需要提取并能檢測判斷機器人相對白線的位置情況,形成控制策略,完成機器人的運動姿態(tài)調(diào)整。其算法實現(xiàn)流程如圖6所示,巡線偏移情況如圖7所示。
(2)特征匹配:圖像匹配技術(shù)是數(shù)字圖像處理領(lǐng)域中的一項重要研究,基本原理就是根據(jù)已知模式(模板圖),到另一幅圖中搜索相匹配的子圖像,該過程被稱為模板匹配。通常,圖像的模板匹配技術(shù)可以分成直接基于灰度值的方法以及基于特征提取的方法兩大類。
這兩種算法共同的缺陷是時間復(fù)雜度高,不利于實時操作,特別是在在線檢測、機器人視覺伺服等需要從大量視頻信號實現(xiàn)數(shù)字處理海量圖像的匹配場合。由于本課題采用的處理器S3C2410硬件不支持浮點運算,無法采用上述方法識別機器人相對于白線的位置是左偏還是右偏。為此,結(jié)合機器人應(yīng)用環(huán)境的特殊情況,對二維圖像匹配算法進行了改進與簡化,其基本思路和實現(xiàn)過程如下:
?、僭诂F(xiàn)場采集一幅圖像,如圖8(a)所示(理想情況),大小為320×240像素。
?、诎褕D像分成三個圖像帶:A0,像素從L0~L1;A1,像素從L2~L3;A2,像素從L4~L5;再把每個帶分成左右兩半,其像素從中間開始向兩邊遞增,即從p0~p159,并分別給出權(quán)值,求其每點的灰度值與相應(yīng)點權(quán)值并求出總和,其表達式為:
Sj=V1*1+V2*2+…+Vi*i+…+Vn*n
(Vi為灰度值,i為權(quán)值;0≤n≤159,n為整數(shù);L0≤j≤L1或L2≤j≤L3,j整數(shù))
③用Ai右邊區(qū)的總和減去Ai左邊區(qū)的總和的差值,看是否落在誤差的允許范圍[-δ,δ]之內(nèi),即表達式為:
Tm=(Sj右-Sj左)∈[-δ,δ] (m=0、1、2)
④根據(jù)Tm值的大小就可以確定機器人的位置是左偏、右偏,或在誤差范圍之內(nèi),隨之就能產(chǎn)生機器人的控制策略。
由于本圖像識別是特定情況的應(yīng)用,圖像處理數(shù)據(jù)量少、處理快、巡線穩(wěn)定、可靠性高,經(jīng)過現(xiàn)場的實驗驗證,相對于模板在整個搜索圖中搜索匹配效率高,避免了復(fù)雜的運算,具有很高的實時性。
實驗結(jié)果表明,本課題設(shè)計的機器人能夠很好地實現(xiàn)直線爬坡、巡線行走等功能,并可以實時采集聲音和圖像信息。在數(shù)據(jù)處理上,采用ARM9核的S3C2410處理器,數(shù)據(jù)處理快、實時性強、穩(wěn)定可靠、效率高。本文所設(shè)計的嵌入式智能機器人系統(tǒng),對研究嵌入式技術(shù)和機器人技術(shù)有一定的參考意義。該技術(shù)也可以應(yīng)用于機器人比賽、自動化無人工廠、倉庫、服務(wù)機器人等領(lǐng)域。
評論