基于遠程機器人系統(tǒng)的自動控制平臺的研究與設計
摘要:論述了面向遠程機器人的自動控制平臺的研究設計。對原有的控制系統(tǒng)進行了簡單介紹,從設計思想、一個專用的數(shù)據(jù)結構以及運行流程方面對新的自控平臺進行了描述。
本文引用地址:http://butianyuan.cn/article/149030.htm在網(wǎng)絡和多媒體技術飛速發(fā)展的今天,通過網(wǎng)絡傳輸?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/遠程">遠程機器人圖像對機器人進行控制已經(jīng)成了一種可行的技術。利用這種技術,可以對遠程機器人的活動進行檢測,從而獲得實時的信息,再據(jù)此向遠端的機器人發(fā)出某種命令。但如果由人直接在遠端進行控制,就需要其長時間地通過傳輸過來的圖像監(jiān)測機器人的行為,同時還要不斷向遠端機器人發(fā)送相同的命令。顯然由電腦進行智能化的自動控制更合適。
遠程機器人的自動控制平臺正是基于這種考慮而研制的。本課題組研制的原有的遠程機器人實時圖像傳輸和實時控制系統(tǒng)分為兩個部分:一是遠程機器人站點,二是控制站點。其中遠程機器人站點負責圖像信息的采集、壓縮、傳輸,同時接收控制端發(fā)送的命令并執(zhí)行;控制站點對圖像進行解壓、顯示,同時向遠程機器人站點發(fā)送命令。自動控制平臺就是在原有系統(tǒng)的基礎上,在控制站點的應用程序中加上了對遠端傳送過來的圖像進行判斷、并依據(jù)判斷自動發(fā)送命令的部分。
2相關技術
2。1圖像的采集與顯示
在遠程機器人站點,需要對機器人現(xiàn)場進行圖像采集;而在控制端,則需要對機器人的圖像進行顯示。
在本系統(tǒng)的應用程序中,采集和顯示是通過對VFW的調(diào)用來實現(xiàn)的。VFW(VideoforWindowsSDK)是Microsoft公司于1992年推出的被稱為AVICap窗口類函數(shù)的系統(tǒng)調(diào)用接口。通過VFW的調(diào)用,可以通過發(fā)送信息或是設置屬性來采集或播放視頻剪輯。如在程序中,調(diào)用capCreateCaptureWindow就可以創(chuàng)建一個視頻采集窗口,調(diào)用capSetCallbackonFrame就可以設定采集到一幀圖像時的回調(diào)函數(shù),在回調(diào)函數(shù)中可以進一步作顯示或?qū)D像作其它處理。
VFW只有VC和VB版本,而本系統(tǒng)采用Delphi進行開發(fā),以便獲得Delphi優(yōu)良的界面功能和多線程機制。為此需要先用Pascal對vfw。h進行改寫,得到在Delphi中可以直接調(diào)用的vfw。pas文件。
盡管在編程時使用的是VFW,但是由于程序運行在Windows2000下,實際上驅(qū)動程序仍是使用WDM(WindowsDriverModel)。WDM也是由Microsoft公司推出的,相對于VFW,在視頻會議、PC/TV等方面有較大優(yōu)勢。
2。2圖像壓縮
本系統(tǒng)中采用了多種圖像壓縮算法,以適應多種網(wǎng)絡傳輸環(huán)境和實時性要求,其中包括顯示質(zhì)量好但開銷大的MPEG4,以及開銷小適用于遠程傳輸?shù)W(wǎng)絡傳輸率低的H。26x。此外還有本課題組自行開發(fā)的一個TsinghuaH。263壓縮算法,在系統(tǒng)使用時可以根據(jù)網(wǎng)絡的情況來進行選擇。如果網(wǎng)絡情況好,則使用顯示質(zhì)量好的MPEG4,如果網(wǎng)絡不好,則使用開銷小的H。263。
2。3網(wǎng)絡傳輸?shù)淖赃m應
除了壓縮算法可靈活選擇之外,本課題組還設計了兩種自適應的方法來對傳輸進行調(diào)節(jié),以便更好地適應網(wǎng)絡條件。一種是幀頻的自適應,通過調(diào)節(jié)機器人端視頻發(fā)送速率來實現(xiàn)對圖像質(zhì)量的自適應;另一種是通信帶寬的自適應,通過調(diào)節(jié)關鍵幀和非關鍵幀的質(zhì)量來調(diào)節(jié)單位時間發(fā)送的數(shù)據(jù)量,從而與網(wǎng)絡情況相適應。
2。4多進程、多線程的使用
本系統(tǒng)可同時控制多個機器人站點。每當連接一個新的遠程機器人站點時,控制站點會自動產(chǎn)生一個新的進程對該機器人站點進行控制。在對一個機器人站點進行控制的進程中,同時會有幾個線程來分別實現(xiàn)幾方面的功能。ChatThread線程負責機器人站點和控制站點之間的文字通信,SyncThread線程則負責兩站點傳送和接收的同步性,最大的也是最主要的DrawThread線程負責圖像的接收、解壓縮以及顯示,同時實現(xiàn)自動控制功能。
2。5自動控制
如前所述,自動控制包括兩方面:一是對傳送過來的圖像信息進行分析,獲得機器人的實時狀態(tài)。二是依據(jù)機器人目前所處的狀態(tài)發(fā)出相應的命令。
對圖像信息進行分析是通過與標準圖像進行比較來實現(xiàn)的,以此來確定機器人是否已經(jīng)進入了某種狀態(tài)。如果發(fā)現(xiàn)機器人當前處于某種標準圖像對應的狀態(tài),則控制站點會發(fā)出與該狀態(tài)相對應的命令。
由于目前機器人不可能有很靈活的細膩的動作方式,所以只需要對幾個關鍵部位(例如頭部、手臂等)的圖像進行比較,即可確定機器人當前的狀態(tài)。由此,為標準圖像的存儲和識別提供了有利條件,也為自動控制平臺的設計和實現(xiàn)提供了前提。
3自動控制平臺的設計與實現(xiàn)
3。1設計思想
機器人的某一個運動過程一般可以分解為若干個關鍵狀態(tài)。當其處于某一狀態(tài)時,需要通過向它下達某一種指令才能使之向下一個狀態(tài)轉(zhuǎn)換。因此,可以在某一個文件中存儲完成該運動過程所需要的各個關鍵狀態(tài)的圖像信息,并存儲與該狀態(tài)相對應的指令。要執(zhí)行該運動過程時,通過應用程序讀入該文件,獲得各狀態(tài)的信息,然后即可開始將實時的圖像信息與關鍵狀態(tài)的圖像信息相比較,如果相符,則發(fā)出相應命令。實際上,這個文件就相當于一個運行腳本??梢栽谑謩涌刂频倪^程中,制作好這樣的運行腳本。下次要執(zhí)行同樣的操作時,只需要把這個腳本讀入,就可以實現(xiàn)自動控制功能。
3。2數(shù)據(jù)結構
在程序中,建立了一個名為scformat的數(shù)據(jù)結構,來描述和存放運行腳本。scformat的基本結構如圖1所示。
一個scformat即對應于一個完整的腳本文件。由于對數(shù)據(jù)文件采用鏈表方式來組織,所以其中可以含有任意多個標準圖像及其對應的命令。scformat中包含諸如色深/colordepth(1表示8位色,依此類推)、圖像個數(shù)/framenum、圖像寬度/framewidth、圖像高度/frameheight等數(shù)據(jù)塊,datahead、datatail則是數(shù)據(jù)鏈表的頭尾指針。
一個data則對應于一幅圖像,除了fwidth、fheight、depth這些基本的信息之外,order是一個字符數(shù)組,用來存放對應的命令,segnum表示這幅圖像中所截取的幾個最重要的反映機器人基本運動情況的關鍵部分,pnext則指向數(shù)據(jù)鏈表中的下一個data。對于一個data圖像中截取的各個部分,同樣采用鏈表結構來組織,seghead、segtail則分別指向鏈表的頭尾。
評論