《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于遠(yuǎn)程機(jī)器人系統(tǒng)的自動控制平臺的研究與設(shè)計(jì)

基于遠(yuǎn)程機(jī)器人系統(tǒng)的自動控制平臺的研究與設(shè)計(jì)

2008-10-13
作者:付昊桓 戴梅萼 周 健 常

  摘? 要: 論述了面向遠(yuǎn)程機(jī)器人的自動控制平臺" title="控制平臺">控制平臺的研究設(shè)計(jì)。對原有的控制系統(tǒng)進(jìn)行了簡單介紹,從設(shè)計(jì)思想" title="設(shè)計(jì)思想">設(shè)計(jì)思想、一個專用的數(shù)據(jù)結(jié)構(gòu)" title="數(shù)據(jù)結(jié)構(gòu)">數(shù)據(jù)結(jié)構(gòu)以及運(yùn)行流程方面對新的自控平臺進(jìn)行了描述。

  關(guān)鍵詞: 遠(yuǎn)程機(jī)器人? 自動控制? 運(yùn)行腳本

?

1 自動控制平臺概述

  在網(wǎng)絡(luò)和多媒體技術(shù)飛速發(fā)展的今天,通過網(wǎng)絡(luò)傳輸?shù)倪h(yuǎn)程機(jī)器人圖像對機(jī)器人進(jìn)行控制已經(jīng)成了一種可行的技術(shù)。利用這種技術(shù),可以對遠(yuǎn)程機(jī)器人的活動進(jìn)行檢測,從而獲得實(shí)時的信息,再據(jù)此向遠(yuǎn)端的機(jī)器人發(fā)出某種命令。但如果由人直接在遠(yuǎn)端進(jìn)行控制,就需要其長時間地通過傳輸過來的圖像監(jiān)測機(jī)器人的行為,同時還要不斷向遠(yuǎn)端機(jī)器人發(fā)送相同的命令。顯然由電腦進(jìn)行智能化的自動控制更合適。

  遠(yuǎn)程機(jī)器人的自動控制平臺正是基于這種考慮而研制的。本課題組研制的原有的遠(yuǎn)程機(jī)器人實(shí)時圖像" title="實(shí)時圖像">實(shí)時圖像傳輸和實(shí)時控制系統(tǒng)分為兩個部分:一是遠(yuǎn)程機(jī)器人站點(diǎn),二是控制站點(diǎn)。其中遠(yuǎn)程機(jī)器人站點(diǎn)負(fù)責(zé)圖像信息的采集、壓縮、傳輸,同時接收控制端發(fā)送的命令并執(zhí)行;控制站點(diǎn)對圖像進(jìn)行解壓、顯示,同時向遠(yuǎn)程機(jī)器人站點(diǎn)發(fā)送命令。自動控制平臺就是在原有系統(tǒng)的基礎(chǔ)上,在控制站點(diǎn)的應(yīng)用程序中加上了對遠(yuǎn)端傳送過來的圖像進(jìn)行判斷、并依據(jù)判斷自動發(fā)送命令的部分。

2 相關(guān)技術(shù)

2.1 圖像的采集與顯示

  在遠(yuǎn)程機(jī)器人站點(diǎn),需要對機(jī)器人現(xiàn)場進(jìn)行圖像采集;而在控制端,則需要對機(jī)器人的圖像進(jìn)行顯示。

在本系統(tǒng)的應(yīng)用程序中,采集和顯示是通過對VFW的調(diào)用來實(shí)現(xiàn)的。VFW(Video for Windows SDK)是Microsoft公司于1992年推出的被稱為AVICap窗口類函數(shù)的系統(tǒng)調(diào)用接口。通過VFW的調(diào)用,可以通過發(fā)送信息或是設(shè)置屬性來采集或播放視頻剪輯。如在程序中,調(diào)用capCreateCaptureWindow就可以創(chuàng)建一個視頻采集窗口,調(diào)用capSetCallbackonFrame就可以設(shè)定采集到一幀圖像時的回調(diào)函數(shù),在回調(diào)函數(shù)中可以進(jìn)一步作顯示或?qū)D像作其它處理。

  VFW只有VC和VB版本,而本系統(tǒng)采用Delphi進(jìn)行開發(fā),以便獲得Delphi優(yōu)良的界面功能和多線程機(jī)制。為此需要先用Pascal對vfw.h進(jìn)行改寫,得到在Delphi中可以直接調(diào)用的vfw.pas文件。

??? 盡管在編程時使用的是VFW,但是由于程序運(yùn)行在Windows2000下,實(shí)際上驅(qū)動程序仍是使用WDM(Windows Driver Model)。WDM也是由Microsoft公司推出的,相對于VFW,在視頻會議、PC/TV等方面有較大優(yōu)勢。

2.2 圖像壓縮

  本系統(tǒng)中采用了多種圖像壓縮算法,以適應(yīng)多種網(wǎng)絡(luò)傳輸環(huán)境和實(shí)時性要求,其中包括顯示質(zhì)量好但開銷大的MPEG4,以及開銷小適用于遠(yuǎn)程傳輸?shù)W(wǎng)絡(luò)傳輸率低的H.26x。此外還有本課題組自行開發(fā)的一個Tsinghua H.263壓縮算法,在系統(tǒng)使用時可以根據(jù)網(wǎng)絡(luò)的情況來進(jìn)行選擇。如果網(wǎng)絡(luò)情況好,則使用顯示質(zhì)量好的MPEG4,如果網(wǎng)絡(luò)不好,則使用開銷小的H.263。

2.3 網(wǎng)絡(luò)傳輸?shù)淖赃m應(yīng)

  除了壓縮算法可靈活選擇之外,本課題組還設(shè)計(jì)了兩種自適應(yīng)的方法來對傳輸進(jìn)行調(diào)節(jié),以便更好地適應(yīng)網(wǎng)絡(luò)條件。一種是幀頻的自適應(yīng),通過調(diào)節(jié)機(jī)器人端視頻發(fā)送速率來實(shí)現(xiàn)對圖像質(zhì)量的自適應(yīng);另一種是通信帶寬的自適應(yīng),通過調(diào)節(jié)關(guān)鍵幀和非關(guān)鍵幀的質(zhì)量來調(diào)節(jié)單位時間發(fā)送的數(shù)據(jù)量,從而與網(wǎng)絡(luò)情況相適應(yīng)。

2.4 多進(jìn)程、多線程的使用

  本系統(tǒng)可同時控制多個機(jī)器人站點(diǎn)。每當(dāng)連接一個新的遠(yuǎn)程機(jī)器人站點(diǎn)時,控制站點(diǎn)會自動產(chǎn)生一個新的進(jìn)程對該機(jī)器人站點(diǎn)進(jìn)行控制。在對一個機(jī)器人站點(diǎn)進(jìn)行控制的進(jìn)程中,同時會有幾個線程來分別實(shí)現(xiàn)幾方面的功能。ChatThread線程負(fù)責(zé)機(jī)器人站點(diǎn)和控制站點(diǎn)之間的文字通信,SyncThread線程則負(fù)責(zé)兩站點(diǎn)傳送和接收的同步性,最大的也是最主要的DrawThread線程負(fù)責(zé)圖像的接收、解壓縮以及顯示,同時實(shí)現(xiàn)自動控制功能。

2.5 自動控制

  如前所述,自動控制包括兩方面:一是對傳送過來的圖像信息進(jìn)行分析,獲得機(jī)器人的實(shí)時狀態(tài)。二是依據(jù)機(jī)器人目前所處的狀態(tài)發(fā)出相應(yīng)的命令。

  對圖像信息進(jìn)行分析是通過與標(biāo)準(zhǔn)圖像進(jìn)行比較來實(shí)現(xiàn)的,以此來確定機(jī)器人是否已經(jīng)進(jìn)入了某種狀態(tài)。如果發(fā)現(xiàn)機(jī)器人當(dāng)前處于某種標(biāo)準(zhǔn)圖像對應(yīng)的狀態(tài),則控制站點(diǎn)會發(fā)出與該狀態(tài)相對應(yīng)的命令。

  由于目前機(jī)器人不可能有很靈活的細(xì)膩的動作方式,所以只需要對幾個關(guān)鍵部位(例如頭部、手臂等)的圖像進(jìn)行比較,即可確定機(jī)器人當(dāng)前的狀態(tài)。由此,為標(biāo)準(zhǔn)圖像的存儲和識別提供了有利條件,也為自動控制平臺的設(shè)計(jì)和實(shí)現(xiàn)提供了前提。

3 自動控制平臺的設(shè)計(jì)與實(shí)現(xiàn)

3.1 設(shè)計(jì)思想

  機(jī)器人的某一個運(yùn)動過程一般可以分解為若干個關(guān)鍵狀態(tài)。當(dāng)其處于某一狀態(tài)時,需要通過向它下達(dá)某一種指令才能使之向下一個狀態(tài)轉(zhuǎn)換。因此,可以在某一個文件中存儲完成該運(yùn)動過程所需要的各個關(guān)鍵狀態(tài)的圖像信息,并存儲與該狀態(tài)相對應(yīng)的指令。要執(zhí)行該運(yùn)動過程時,通過應(yīng)用程序讀入該文件,獲得各狀態(tài)的信息,然后即可開始將實(shí)時的圖像信息與關(guān)鍵狀態(tài)的圖像信息相比較,如果相符,則發(fā)出相應(yīng)命令。實(shí)際上,這個文件就相當(dāng)于一個運(yùn)行腳本??梢栽谑謩涌刂频倪^程中,制作好這樣的運(yùn)行腳本。下次要執(zhí)行同樣的操作時,只需要把這個腳本讀入,就可以實(shí)現(xiàn)自動控制功能。

3.2 數(shù)據(jù)結(jié)構(gòu)

  在程序中,建立了一個名為scformat的數(shù)據(jù)結(jié)構(gòu),來描述和存放運(yùn)行腳本。scformat的基本結(jié)構(gòu)如圖1所示。

?

?

  一個scformat即對應(yīng)于一個完整的腳本文件。由于對數(shù)據(jù)文件采用鏈表" title="鏈表">鏈表方式來組織,所以其中可以含有任意多個標(biāo)準(zhǔn)圖像及其對應(yīng)的命令。scformat中包含諸如色深/colordepth(1表示8位色,依此類推)、圖像個數(shù)/framenum、圖像寬度/framewidth、圖像高度/frameheight等數(shù)據(jù)塊,datahead、datatail則是數(shù)據(jù)鏈表的頭尾指針。

  一個data則對應(yīng)于一幅圖像,除了fwidth、fheight、depth這些基本的信息之外,order是一個字符數(shù)組,用來存放對應(yīng)的命令,segnum表示這幅圖像中所截取的幾個最重要的反映機(jī)器人基本運(yùn)動情況的關(guān)鍵部分,pnext則指向數(shù)據(jù)鏈表中的下一個data。對于一個data圖像中截取的各個部分,同樣采用鏈表結(jié)構(gòu)來組織,seghead、segtail則分別指向鏈表的頭尾。

一個seg對應(yīng)于從圖像中截取的一個關(guān)鍵部分,其中,width、height表示該部分的寬度、高度,topx、topy則是該部分左下角在該圖像中的坐標(biāo),以適應(yīng)圖像的數(shù)據(jù)從左下角開始存儲的規(guī)則。segdata指向該部分具體的圖像數(shù)據(jù)。

  圖2是各個結(jié)構(gòu)在圖像上的具體關(guān)系。

?

?

??? 上述數(shù)據(jù)結(jié)構(gòu)的優(yōu)點(diǎn)是其具有充分的多方面的靈活性。因?yàn)閷?yīng)于不同的運(yùn)動過程的腳本文件可能需要不同數(shù)目的標(biāo)準(zhǔn)圖像,而對應(yīng)于機(jī)器人處于不同狀態(tài)的圖像,為了反映機(jī)器人的運(yùn)動狀態(tài),也可能需要截取不同數(shù)目的關(guān)鍵部分。由于上述數(shù)據(jù)結(jié)構(gòu)的靈活性,對于標(biāo)準(zhǔn)圖像的數(shù)據(jù)data和圖像中的關(guān)鍵部分seg,都采用鏈表結(jié)構(gòu)來組織,所以可以適應(yīng)各種不同情況。

同時,對于scformat、data、seg這些數(shù)據(jù)結(jié)構(gòu),分別提供了各種函數(shù)以及過程,使得在進(jìn)行圖像的截取、腳本文件的存儲、腳本文件的讀取和顯示時都相當(dāng)方便。

3.3 流程要點(diǎn)

  具體的流程分為以下兩個方面:

  其一是控制腳本的獲得,由人工進(jìn)行手動控制實(shí)現(xiàn)?;谏厦娴倪@種數(shù)據(jù)結(jié)構(gòu),此過程可以準(zhǔn)確完成。在此過程中,首先創(chuàng)建一個scformat結(jié)構(gòu)。由于其中的數(shù)據(jù)是按照鏈表結(jié)構(gòu)組織,所以可以隨時加入標(biāo)準(zhǔn)圖像及相應(yīng)的命令。同時對于某一幅特定圖像,可以選取圖像中的若干關(guān)鍵部分。此過程結(jié)束后,可以調(diào)用scformat的writescfile,將得到的腳本文件存放到硬盤文件中。

  其二是自動控制過程。在進(jìn)行自動控制時,首先從硬盤上讀入文件,調(diào)用readscfile將文件中的數(shù)據(jù)加入到一個scformat結(jié)構(gòu)中。然后按照這個scformat腳本文件中的數(shù)據(jù)進(jìn)行自動控制。由于系統(tǒng)中采用壓縮技術(shù),所以在控制站點(diǎn)取得壓縮包之后,進(jìn)行解壓,得到實(shí)時圖像,然后將實(shí)時圖像與運(yùn)行腳本中的圖像逐個進(jìn)行比較。如果比較相符,則停止比較,同時將相應(yīng)的命令傳送給遠(yuǎn)端機(jī)器人;如果獲得相符的結(jié)果,則說明機(jī)器人當(dāng)前不處于任何特定的狀態(tài),所以繼續(xù)循環(huán)檢測和比較。

4 平臺運(yùn)行環(huán)境

  本系統(tǒng)在實(shí)驗(yàn)室中進(jìn)行了充分的測試和修改,硬件和軟件的環(huán)境如下。

硬件環(huán)境:

  Intel Pentium 4 處理器

  nVidia TNT2 M64 圖像顯示卡

  Intel ProShare Personal Conferencing 攝像頭,Leadtek WinFast TV2000視頻采集卡

  10M/100M自適應(yīng)網(wǎng)卡,100M以太網(wǎng)

  軟件環(huán)境:

  Microsoft Windows 2000 Advanced Server

  Borland Delphi 6.0 (With Update pack 2)

  Microsoft Visual C++ 6.0 (Service Pack 5)

5 實(shí)際測試

  本系統(tǒng)在實(shí)驗(yàn)室中進(jìn)行了充分的測試。在通常的情況下,對于反映某一運(yùn)動狀態(tài)的圖像,系統(tǒng)默認(rèn)可以抽取0~5個關(guān)鍵部分來反映該狀態(tài)的特征。而對于一個運(yùn)行腳本而言,如果是有序化的簡單腳本(也就是說腳本中的圖像按照要進(jìn)行的操作順序排列,系統(tǒng)只需將得到的實(shí)時圖像與目前應(yīng)該處于的那一幅圖像進(jìn)行比較即可),腳本中可以包含任意多幅(在存儲大小滿足的條件下)反映關(guān)鍵狀態(tài)的圖像;如果是無序的腳本,也就是說系統(tǒng)需將所獲取的圖像與腳本中的所有圖像進(jìn)行比較以得到當(dāng)前需要執(zhí)行的指令。在測試中,腳本包含十幅圖像時,仍能很快得出比較的結(jié)果。從測試來看,本系統(tǒng)的關(guān)鍵設(shè)計(jì)思想均是可用的。

?

參考文獻(xiàn)

1 DAI Meie,Zhao Peng,Fu Liang,et al. Research of Gathering,Compression and Real Time Transmission for Robot

Image. Tsinghua Univ[Sci&Tec],2001;41(7)

2 趙 鵬,戴梅萼,付 良. 遠(yuǎn)程機(jī)器人監(jiān)控系統(tǒng)關(guān)鍵技術(shù)的研究和實(shí)現(xiàn). 小型微型計(jì)算機(jī)系統(tǒng), 2002(1)

3 James L, Flanagan. Technologies for Multimedia Communications. Proceeding of the IEEE,1994;(82)4

4 Deguchi Koichiro, Takahashi Isao. Image-based Simultaneous Control of Robot and Target Object Motions by Directimage Interpretation Method.IEEE International Conference on Intelligent Robots and Systems, 1999

5 Fujimoto, Hideo; Zhu, Liu-Cun; Abdel-Malek, Karim.?Image-Based Visual Servoing for Grasping Unknown Objects.?IECON Proceedings (Industrial Electronics Conference),2000

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。