一種智能機器人系統(tǒng)設(shè)計和實現(xiàn)
我們從廣泛意義上理解所謂的智能機器人,它給人的最深刻的印象是一個獨特的進行自我控制的"活物".其實,這個自控"活物"的主要器官并沒有像真正的人那樣微妙而復(fù)雜。智能機器人具備形形色色的內(nèi)部信息傳感器和外部信息傳感器,如視覺、聽覺、觸覺、嗅覺。除具有感受器外,它還有效應(yīng)器,作為作用于周圍環(huán)境的手段。這就是筋肉,或稱自整步電動機,它們使手、腳、長鼻子、觸角等動起來。我們稱這種機器人為自控機器人,以便使它同前面談到的機器人區(qū)分開來。它是控制論產(chǎn)生的結(jié)果,控制論主張這樣的事實:生命和非生命有目的的行為在很多方面是一致的。正像一個智能機器人制造者所說的,機器人是一種系統(tǒng)的功能描述,這種系統(tǒng)過去只能從生命細(xì)胞生長的結(jié)果中得到,現(xiàn)在它們已經(jīng)成了我們自己能夠制造的東西了
嵌入式是一種專用的計算機系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個程序?qū)崿F(xiàn)整個控制邏輯。嵌入式技術(shù)近年來得到了飛速的發(fā)展,但是嵌入式產(chǎn)業(yè)涉及的領(lǐng)域非常廣泛,彼此之間的特點也相當(dāng)明顯。例如很多行業(yè):手機、PDA、車載導(dǎo)航、工控、軍工、多媒體終端、網(wǎng)關(guān)、數(shù)字電視……
1 智能機器人系統(tǒng)機械平臺的搭建
智能機器人需要有一個無軌道型的移動機構(gòu),以適應(yīng)諸如平地、臺階、墻壁、樓梯、坡道等不同的地理環(huán)境。它們的功能可以借助輪子、履帶、支腳、吸盤、氣墊等移動機構(gòu)來完成。在運動過程中要對移動機構(gòu)進行實時控制,這種控制不僅要包括有位置控制,而且還要有力度控制、位置與力度混合控制、伸縮率控制等。智能機器人的思考要素是三個要素中的關(guān)鍵,也是人們要賦予機器人必備的要素。思考要素包括有判斷、邏輯分析、理解等方面的智力活動。這些智力活動實質(zhì)上是一個信息處理過程,而計算機則是完成這個處理過程的主要手段。
機器人前部為一四桿機構(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所示。遠(yuǎn)程監(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)速原理控制直流電機達(dá)到控制機器人的速度。
為了消除電機運轉(zhuǎn)對系統(tǒng)核心開發(fā)板SBC2410的干擾,從核心開發(fā)板的控制引腳輸出的信號,經(jīng)過16路光電耦合器(需4片TLP521-4)進行信號隔離,脈寬調(diào)制PWM控制光電耦合器的開關(guān),以達(dá)到控制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è)計
μC/GUI是嵌入式應(yīng)用中通用的圖形軟件,是為帶LCD的圖形應(yīng)用系統(tǒng)提供高效的圖形用戶接口而設(shè)計的,它不依賴于處理器和LCD控制器。μC/GUI在多任務(wù)環(huán)境下工作與在單任務(wù)環(huán)境下工作性能同樣卓越,任何尺寸大小的顯示設(shè)備,不管是物理的或是虛擬的,只要具備LCD控制器和處理器,都可以運用μC/GUI.μC/GUI產(chǎn)品包中包含有所有的源代碼。實際上,在所有的嵌入式圖形用戶接口中,μC/GUI提供的源代碼是最整潔最統(tǒng)一的。μC/GUI提供的所有服務(wù)都以該模塊相關(guān)的前綴開始(如:GUI,WM),這將易于理解應(yīng)用程序中與μC/GUI相關(guān)的函數(shù)。同時,μC/GUI所有的服務(wù)都有很明晰的分類:GUI表示二維圖形,GUI_AA表示反鋸齒等。
中間件μ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口電平的變化頻率遠(yuǎn)低于攝像頭控制信號的變化頻率,將導(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(理論計算值最高可達(dá)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°左右時,其循線可靠性及精度能夠得到很好的保證。
?、诎褕D像分成三個圖像帶:A0,像素從L0~L1;A1,像素從L2~L3;A2,像素從L4~L5;再把每個帶分成左右兩半,其像素從中間開始向兩邊遞增,即從p0~p159,并分別給出權(quán)值,求其每點的灰度值與相應(yīng)點權(quán)值并求出總和,其表達(dá)式為: Sj=V1*1+V2*2+…+Vi*i+…+Vn*n ③用Ai右邊區(qū)的總和減去Ai左邊區(qū)的總和的差值,看是否落在誤差的允許范圍[-δ,δ]之內(nèi),即表達(dá)式為: ④根據(jù)Tm值的大小就可以確定機器人的位置是左偏、右偏,或在誤差范圍之內(nèi),隨之就能產(chǎn)生機器人的控制策略。 實驗結(jié)果表明,本課題設(shè)計的機器人能夠很好地實現(xiàn)直線爬坡、巡線行走等功能,并可以實時采集聲音和圖像信息。在數(shù)據(jù)處理上,采用ARM9核的S3C2410處理器,數(shù)據(jù)處理快、實時性強、穩(wěn)定可靠、效率高。移動機器人隨其應(yīng)用環(huán)境和移動方式的不同,研究內(nèi)容也有很大差別。其共同的基本技術(shù)有傳感器技術(shù)、移動技術(shù)、操作器、控制技術(shù)、人工智能等方面。它有相當(dāng)于人的眼、耳、皮膚的視覺傳感器、聽覺傳感器和觸覺傳感器。移動機構(gòu)有輪式(如四輪式、兩輪式、全方向式、履帶式)、足式(如 6足、4足、2足)、混合式(用輪子和足)、特殊式(如吸附式、軌道式、蛇式)等類型。輪子適于平坦的路面,足式移動機構(gòu)適于山岳地帶和凹凸不平的環(huán)境。移動機器人的控制方式從遙控、監(jiān)控向自治控制發(fā)展,綜合應(yīng)用機器視覺、問題求解、專家系統(tǒng)等人工智能等技術(shù)研制自治型移動機器人。
(Vi為灰度值,i為權(quán)值;0≤n≤159,n為整數(shù);L0≤j≤L1或L2≤j≤L3,j整數(shù))
Tm=(Sj右-Sj左)∈[-δ,δ] (m=0、1、2)
(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)過程如下: ①在現(xiàn)場采集一幅圖像,如圖8(a)所示(理想情況),大小為320×240像素。





