摘 要: 結(jié)合當(dāng)前機器人技術(shù)和嵌入式技術(shù)的融合發(fā)展方向,,提出了一種基于ARM9和μC/OS-Ⅱ的智能機器人系統(tǒng),,給出了機械結(jié)構(gòu)設(shè)計,、硬件設(shè)計,、軟件設(shè)計等系統(tǒng)設(shè)計過程,研究分析了采用的巡線控制算法,。
關(guān)鍵詞: 嵌入式技術(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)聽周圍的情況,,提供與圖像信息同步的語音信息,,以便控制人員準(zhǔ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-Ⅱ?qū)崟r操作系統(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ī)定,當(dāng)其使用窗口回調(diào)機制,,建議把它設(shè)為最低優(yōu)先級別的任務(wù),,用來更新回調(diào)信息,并且該任務(wù)必須實現(xiàn),,且要定期調(diào)用,。
4 試驗研究分析
設(shè)計并完成裝配的機器人的樣機如圖3所示,其中A為攝像頭模塊,,B為麥克風(fēng),,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)信息,。當(dāng)攝像頭的最高頻率(點像素頻率最高)降到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。分析其原因,,是由于電機的負(fù)載能力,、啟動特性、機械結(jié)構(gòu),、機器人的重心位置及輪子與地面的摩擦阻力等因素所造成的,。
在爬坡實驗中,主要測試的是機器人單側(cè)爬坡的能力和效果,。斜坡的傾斜角度是可調(diào)整的,。對其進行了9次的爬坡實驗,角度從20°~60°的范圍變化,,發(fā)現(xiàn)隨著角度每增加,,爬坡的難度將變得越來越困難。當(dāng)在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)整攝像頭視角,,如果視角太大,,則循線精度很難保證,甚至?xí)撾x預(yù)期的軌跡,。經(jīng)過試驗驗證,,當(dā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像素,。
②把圖像分成三個圖像帶: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)域,。
參考文獻
[1] ROLAND S,PIERRE L,,THOMAS E,,et al.Innovative design for wheeled locomotion in rough terrain.Robotics and Autonomous Systems,2002,,40(2-3).
[2] JLABROSSE J.μC/OS-Ⅱ the real time kernel[M].New York:CMP media Inc,,1996.
[3] 劉志雄.基于嵌入式系統(tǒng)的室內(nèi)移動機器人的應(yīng)用研究[D].中國優(yōu)秀博碩學(xué)位論文庫:昆明理工大學(xué)碩士論文,2007,,3.
[4] Labrosse J J.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ第2版[M].邵貝貝譯.北京:北京航空航天大學(xué)出版社,,2005.
[5] 李翠蘭,馬培蓀.一種新型的可被動適應(yīng)崎嶇表面的六輪月球漫游車[J].傳動技術(shù),,2005,,19(1):9-13.
[6] LISA G.R.A Survey of image registration techniques[J].ACM Computing Surveys,1992,,24(4):235-376.
[7] 李強,,張鈸.一種基于圖像灰度的快速匹配算法[J].軟件學(xué)報,2006,,17(2):216-222.