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