版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 機(jī)器人實(shí)時(shí)遠(yuǎn)程控制系統(tǒng)及其開(kāi)發(fā)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn) 陳 洋,陸宇平 時(shí)間:2008年06月24日 字 體: 大 中 小 關(guān)鍵詞:<"cblue" " target='_blank'>控制系統(tǒng)<"cblue" " target=&
2、#39;_blank'>控制平臺(tái)<"cblue" " target='_blank'>視頻數(shù)據(jù)<"cblue" " target='_blank'>數(shù)據(jù)塊<"cblue" " target='_blank'>遠(yuǎn)程控制系統(tǒng) 摘要: 以實(shí)時(shí)性、可靠性為前提,設(shè)計(jì)了一套機(jī)器人
3、遠(yuǎn)程<"cblue" " title="控制系統(tǒng)">控制系統(tǒng)。介紹了其中的遠(yuǎn)程<"cblue" " title="控制平臺(tái)">控制平臺(tái)和本地控制系統(tǒng)的結(jié)構(gòu)及其關(guān)鍵技術(shù);機(jī)器人<"cblue" " title="遠(yuǎn)程控制系統(tǒng)">遠(yuǎn)程控制系統(tǒng)開(kāi)發(fā)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn);展示了開(kāi)發(fā)實(shí)例。關(guān)鍵詞: 機(jī)器人遠(yuǎn)程控制系統(tǒng) 遠(yuǎn)程控制平臺(tái) 本地控制系統(tǒng) 自適應(yīng)視頻傳輸方案 開(kāi)發(fā)庫(kù)?近年來(lái),隨著無(wú)線網(wǎng)絡(luò)技術(shù)的發(fā)展和日益成熟,利用WLAN
4、和LAN的混和組網(wǎng),使基于網(wǎng)絡(luò)的機(jī)器人遠(yuǎn)程控制成為一個(gè)熱門(mén)的研究領(lǐng)域。本文設(shè)計(jì)了一套移動(dòng)機(jī)器人遠(yuǎn)程控制系統(tǒng)。該系統(tǒng)可用于如時(shí)延網(wǎng)絡(luò)環(huán)境下控制系統(tǒng)的穩(wěn)定性理論、實(shí)時(shí)控制系統(tǒng)的網(wǎng)絡(luò)通信協(xié)議、基于事件驅(qū)動(dòng)方式的網(wǎng)絡(luò)系統(tǒng)控制策略、目標(biāo)識(shí)別技術(shù)等方面的研究。1 硬件環(huán)境被控的機(jī)器人采用了美國(guó)Activmedia Robotics公司的P3-DX多功能智能移動(dòng)機(jī)器人。它配備了車載計(jì)算機(jī)(裝有無(wú)線網(wǎng)卡、視頻采集卡)、帶抓手的5自由度手臂、水平轉(zhuǎn)動(dòng)/傾斜攝像頭及4組共16個(gè)聲納。在實(shí)驗(yàn)室內(nèi)搭建了無(wú)線網(wǎng)絡(luò)環(huán)境, 無(wú)線路由器通過(guò)其廣域連接端口連接到校園網(wǎng),并能通過(guò)校園網(wǎng)訪問(wèn)Internet,從而構(gòu)成了一個(gè)廣域網(wǎng)系
5、統(tǒng)。機(jī)器人通過(guò)其車載計(jì)算機(jī)上的無(wú)線網(wǎng)卡與實(shí)驗(yàn)室內(nèi)的無(wú)線局域網(wǎng)互聯(lián),從網(wǎng)絡(luò)的任何節(jié)點(diǎn)都可以遠(yuǎn)程控制機(jī)器人。2 機(jī)器人實(shí)時(shí)遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)本機(jī)器人遠(yuǎn)程控制系統(tǒng)以實(shí)時(shí)性及可靠性為前提進(jìn)行設(shè)計(jì)。2.1 基本結(jié)構(gòu)如圖1所示,整個(gè)遠(yuǎn)程控制系統(tǒng)由遠(yuǎn)程控制平臺(tái)、本地控制系統(tǒng)兩部分組成。整套軟件系統(tǒng)建立在Windows2000上。遠(yuǎn)程控制平臺(tái)提供從遠(yuǎn)程終端對(duì)機(jī)器人進(jìn)行控制的圖形化的平臺(tái)。它提供圖形化的控制指令發(fā)送接口、機(jī)器人狀態(tài)反饋信息以及現(xiàn)場(chǎng)<"cblue" " title="視頻數(shù)據(jù)">視頻數(shù)據(jù)的顯示。本地控制系統(tǒng)位于車載計(jì)算機(jī)上,它用于接收從
6、遠(yuǎn)程控制平臺(tái)發(fā)送過(guò)來(lái)的指令,然后通過(guò)串口轉(zhuǎn)發(fā)給機(jī)器人微處理器,使機(jī)器人執(zhí)行實(shí)際的控制指令,同時(shí)輪詢機(jī)器人的狀態(tài)信息并發(fā)送給遠(yuǎn)程控制平臺(tái)。與此同時(shí)本地控制系統(tǒng)還將采集現(xiàn)場(chǎng)視頻數(shù)據(jù),壓縮打包后發(fā)給遠(yuǎn)程控制平臺(tái)。在軟件開(kāi)發(fā)中將直接使用機(jī)器人開(kāi)發(fā)商提供的編程接口ARIA。該接口封裝了車載計(jì)算機(jī)與機(jī)器人微處理器之間的串口通信。2.2 遠(yuǎn)程控制平臺(tái)如圖2左半部分所示,整個(gè)遠(yuǎn)程控制平臺(tái)分為控制區(qū)和狀態(tài)反饋區(qū)。在控制區(qū),用戶通過(guò)圖形化控制接口觸發(fā)指令發(fā)送模塊中的相應(yīng)指令,并按照命令包的協(xié)議進(jìn)行封包(根據(jù)所設(shè)計(jì)的通信協(xié)議,可以選擇是否進(jìn)行加密和壓縮),通過(guò)網(wǎng)絡(luò)發(fā)送給本地控制系統(tǒng)。狀態(tài)反饋區(qū)負(fù)責(zé)接收從本地控制系統(tǒng)
7、實(shí)時(shí)發(fā)送過(guò)來(lái)的機(jī)器人狀態(tài)反饋信息和視頻數(shù)據(jù)并顯示。2.3 本地控制系統(tǒng)如圖2右半部分所示,整個(gè)本地控制系統(tǒng)分為控制執(zhí)行區(qū)和反饋發(fā)送區(qū)。在控制執(zhí)行區(qū),當(dāng)收到命令包并解包后,可以選擇進(jìn)行命令包的實(shí)時(shí)性檢查,然后通過(guò)指令轉(zhuǎn)發(fā)模塊將指令轉(zhuǎn)發(fā):如果是基本的控制指令則直接通過(guò)ARIA接口發(fā)送給機(jī)器人;如果是高級(jí)任務(wù)指令則轉(zhuǎn)發(fā)給高級(jí)任務(wù)模塊,調(diào)用高級(jí)任務(wù)模塊中對(duì)應(yīng)的子模塊進(jìn)行控制,由它發(fā)送一系列的命令給機(jī)器人。在反饋發(fā)送區(qū),系統(tǒng)定時(shí)接收從串口發(fā)來(lái)的機(jī)器人狀態(tài)數(shù)據(jù)并打包發(fā)送給遠(yuǎn)程控制平臺(tái),同時(shí)采集現(xiàn)場(chǎng)的視頻數(shù)據(jù),并進(jìn)行壓縮編碼,然后根據(jù)視頻數(shù)據(jù)包的協(xié)議打包發(fā)送到遠(yuǎn)程控制平臺(tái)。此外狀態(tài)和視頻數(shù)據(jù)將作為高級(jí)任務(wù)模
8、塊的輸入數(shù)據(jù)來(lái)源。圖2中的心跳包用于處理通信異常斷開(kāi)的情況。3 關(guān)鍵技術(shù)3.1 采用UDP協(xié)議TCP協(xié)議提供了可靠的數(shù)據(jù)傳輸,但是其擁塞控制、數(shù)據(jù)校驗(yàn)、重傳機(jī)制的網(wǎng)絡(luò)開(kāi)銷很大,不適合實(shí)時(shí)通信,所以選擇開(kāi)銷很小的UDP協(xié)議來(lái)傳輸數(shù)據(jù)。UDP協(xié)議是無(wú)連接的數(shù)據(jù)傳輸協(xié)議并且無(wú)重傳機(jī)制,會(huì)發(fā)生丟包、收到重復(fù)包、亂序等情況。而對(duì)于數(shù)據(jù)精確性要求不高的狀態(tài)數(shù)據(jù)以及視頻數(shù)據(jù),丟包的影響不大。因?yàn)闀?huì)不斷收到新的包,丟失的個(gè)別包會(huì)有新的包來(lái)覆蓋,所以只需在遠(yuǎn)程控制系統(tǒng)的通信部分自行處理亂序及重復(fù)包的問(wèn)題,而對(duì)于丟包的問(wèn)題一般不作處理。但對(duì)于命令包這種需要精確收發(fā)的數(shù)據(jù), 可在程序的開(kāi)發(fā)中加入丟包重發(fā)和超時(shí)丟棄的
9、處理。當(dāng)然,如果開(kāi)發(fā)的是對(duì)于實(shí)時(shí)性要求不高的事件型控制命令的傳輸,不希望發(fā)生指令的丟失也可以直接采用TCP協(xié)議。TCP的重傳機(jī)制正好適合這種情況。3.2 使用非阻塞套接字結(jié)合多線程進(jìn)行通信整個(gè)系統(tǒng)的通信部分采用Winsock API進(jìn)行開(kāi)發(fā),摒棄了其他遠(yuǎn)程控制系統(tǒng)中多采用的阻塞字加多線程的編程模式,而使用了非阻塞套接字并采用了異步事件選擇I/O模型。這是因?yàn)榉亲枞捉幼帜芨玫卦诜钦枷鹊腤indows環(huán)境下工作,而阻塞套接字在性能上要差一些?;谡麄€(gè)系統(tǒng)的實(shí)時(shí)性要求,采用了非阻塞的套接字。由于狀態(tài)數(shù)據(jù)和視頻數(shù)據(jù)的收發(fā)量大而且頻繁,所以仍需采用多線程技術(shù)將數(shù)據(jù)的收發(fā)放到子線程中,否則將影響主線程
10、的運(yùn)行。3.3 本地控制系統(tǒng)中的高級(jí)任務(wù)模塊的作用位于本地控制系統(tǒng)中的高級(jí)任務(wù)模塊使得本地控制系統(tǒng)具有自動(dòng)避障、目標(biāo)識(shí)別、自主漫游等高級(jí)任務(wù)的決策能力。這一設(shè)計(jì)的實(shí)質(zhì)是將屬于遠(yuǎn)程控制的復(fù)雜控制功能下放到本地控制系統(tǒng)實(shí)現(xiàn)。如圖2所示,只需從遠(yuǎn)程控制平臺(tái)發(fā)出啟動(dòng)某高級(jí)任務(wù)指令給本地控制系統(tǒng),本地控制系統(tǒng)的高級(jí)任務(wù)模塊調(diào)用相應(yīng)的子模塊并以本地實(shí)時(shí)更新的狀態(tài)數(shù)據(jù)和視頻數(shù)據(jù)作為輸入數(shù)據(jù)進(jìn)行處理,實(shí)時(shí)發(fā)出一系列的指令給機(jī)器人,便可完成特定的任務(wù)。該設(shè)計(jì)雖然增加了車載計(jì)算機(jī)的運(yùn)算負(fù)荷,但是由于可以直接在本地實(shí)時(shí)收到狀態(tài)數(shù)據(jù)以及視頻數(shù)據(jù),既避免了將這些數(shù)據(jù)發(fā)送到遠(yuǎn)程控制平臺(tái)以及控制指令發(fā)回到本地控制系統(tǒng)所需的
11、網(wǎng)絡(luò)時(shí)延,又降低了網(wǎng)絡(luò)的不可預(yù)測(cè)性造成的系統(tǒng)不可靠性,從而加快了系統(tǒng)的控制響應(yīng)速度,保證了控制的實(shí)時(shí)性。同時(shí)也提高了遠(yuǎn)程控制平臺(tái)操作的集成度、機(jī)器人的自主性和系統(tǒng)的可靠性。3.4 心跳包的使用圖2中的心跳包用于處理通信異常斷開(kāi)的情況,例如突然斷電、網(wǎng)絡(luò)中斷等。心跳包是一個(gè)非常小的數(shù)據(jù)包,包里只包含時(shí)間戳、包的序號(hào)等信息,并使用UDP協(xié)議傳輸。遠(yuǎn)程控制平臺(tái)每隔一定的時(shí)間(如1分鐘)就向本地控制系統(tǒng)發(fā)送一個(gè)心跳包。當(dāng)本地控制系統(tǒng)收到該包,只需簡(jiǎn)單地將該包發(fā)回來(lái)以表明它收到了這個(gè)包。如果遠(yuǎn)程控制平臺(tái)在超過(guò)一定的時(shí)間(如3分鐘)沒(méi)有收到已發(fā)送的心跳包的回包,就可以認(rèn)為本地控制系統(tǒng)和遠(yuǎn)程控制平臺(tái)已經(jīng)異常
12、斷開(kāi),從而停止發(fā)送心跳包,并立即啟動(dòng)緊急處理模塊,執(zhí)行如操作人員發(fā)出警報(bào)、重新建立網(wǎng)絡(luò)連接或者重新啟動(dòng)遠(yuǎn)程控制平臺(tái)等應(yīng)急功能。如果本地控制系統(tǒng)在一定的時(shí)間(如3分鐘)內(nèi)都沒(méi)有收到從遠(yuǎn)程控制平臺(tái)發(fā)來(lái)的心跳包,就可以認(rèn)為本地控制系統(tǒng)已經(jīng)與遠(yuǎn)程控制平臺(tái)異常斷開(kāi),從而立即啟動(dòng)本地控制系統(tǒng)中的緊急處理模塊,由該模塊發(fā)出如停止機(jī)器人或啟動(dòng)自主控制程序的指令給機(jī)器人。同時(shí)如果網(wǎng)絡(luò)未斷,將恢復(fù)監(jiān)聽(tīng)網(wǎng)絡(luò)上的連接請(qǐng)求,以等待建立新的連接。通過(guò)使用心跳包使系統(tǒng)的應(yīng)急處理能力得到提高,從而提升了整個(gè)系統(tǒng)的可靠性。3.5 應(yīng)用層協(xié)議的設(shè)計(jì)根據(jù)實(shí)時(shí)性要求,包的大小應(yīng)盡可能小,以減少帶寬的占用,所以整套應(yīng)用層傳輸協(xié)議的設(shè)計(jì)
13、應(yīng)該力求簡(jiǎn)潔。以下的協(xié)議都是建立在UDP傳輸協(xié)議之上。(1)命令包協(xié)議|包頭|時(shí)間戳|序列號(hào)|命令|參數(shù)類型|參數(shù)|校驗(yàn)和|包尾|(2)狀態(tài)包協(xié)議|包頭|時(shí)間戳|序列號(hào)|狀態(tài)<"cblue" " title="數(shù)據(jù)塊">數(shù)據(jù)塊|校驗(yàn)和|包尾|(3)心跳包協(xié)議|包頭|時(shí)間戳|序列號(hào)|校驗(yàn)和|包尾|(4)視頻數(shù)據(jù)協(xié)議|包頭|時(shí)間戳|序列號(hào)|同一時(shí)間戳數(shù)據(jù)塊數(shù)量|數(shù)據(jù)塊序號(hào)|數(shù)據(jù)塊|校驗(yàn)和|包尾|在以上協(xié)議中:時(shí)間戳用于實(shí)時(shí)性檢查;序列號(hào)用于丟包的檢測(cè)和統(tǒng)計(jì);校驗(yàn)和用于檢查包的完整性。以上所設(shè)計(jì)的協(xié)議具有可擴(kuò)展性,可根據(jù)設(shè)計(jì)要求增減字段。
14、例如當(dāng)需要考慮信息傳輸?shù)陌踩裕杉尤爰用茏侄?;?dāng)不考慮延時(shí),可刪除時(shí)間戳字段等。3.6 自適應(yīng)實(shí)時(shí)視頻傳輸方案現(xiàn)有的遠(yuǎn)程視頻監(jiān)控系統(tǒng)多采用RTP/RTCP協(xié)議(實(shí)時(shí)傳輸協(xié)議),它是因特網(wǎng)上針對(duì)多媒體數(shù)據(jù)流的一種傳輸協(xié)議。RTP是一種封裝協(xié)議,用于對(duì)多媒體數(shù)據(jù)塊進(jìn)行封裝,然后用下層傳輸協(xié)議(如UDP)進(jìn)行傳輸。RTCP封裝的是發(fā)送端或者接收端的統(tǒng)計(jì)報(bào)表。發(fā)送多媒體數(shù)據(jù)的端將根據(jù)接收到的RTCP反饋信息調(diào)整視頻數(shù)據(jù)傳輸質(zhì)量。但是針對(duì)本機(jī)器人遠(yuǎn)程控制系統(tǒng),該協(xié)議并不完全合適。由于該遠(yuǎn)程控制系統(tǒng)是一對(duì)一的傳輸模式,只傳輸視頻數(shù)據(jù)而無(wú)其他多媒體數(shù)據(jù)流,所以具有特殊性。而RTP協(xié)議具有一般性,它的很多字
15、段并不適合該系統(tǒng)。例如關(guān)于數(shù)據(jù)源的同步以及關(guān)于組播的部分,由于不斷發(fā)送RTCP包將占用有限的網(wǎng)絡(luò)帶寬,不如直接在遠(yuǎn)程控制平臺(tái)進(jìn)行丟包統(tǒng)計(jì)并在視頻質(zhì)量明顯變化時(shí)發(fā)送調(diào)節(jié)視頻質(zhì)量的命令給本地控制系統(tǒng)。根據(jù)這一思路,本系統(tǒng)以RTP協(xié)議的基本思想為基礎(chǔ),針對(duì)系統(tǒng)的特殊性開(kāi)發(fā)了一套自適應(yīng)實(shí)時(shí)視頻傳輸方案。如圖3所示,本地控制系統(tǒng)將采集的一幀視頻數(shù)據(jù)使用MPEG4或M-JPEG協(xié)議進(jìn)行壓縮編碼;然后按照一定的大小(一般比MTU稍微小點(diǎn),因?yàn)镮P和UDP包頭要占用一定的字節(jié)數(shù))對(duì)編碼后的視頻數(shù)據(jù)進(jìn)行分塊,并使用視頻數(shù)據(jù)協(xié)議進(jìn)行數(shù)據(jù)塊的封裝;最后使用UDP協(xié)議發(fā)送到遠(yuǎn)程控制平臺(tái)。其中時(shí)間戳用于表明這些數(shù)據(jù)塊屬
16、于同一視頻幀,數(shù)據(jù)塊序號(hào)用于表明該數(shù)據(jù)塊在此幀中的位置。由于UDP協(xié)議的不可靠性會(huì)引發(fā)包的亂序、重復(fù)包以及丟包等情況,所以遠(yuǎn)程控制平臺(tái)采用多級(jí)緩存池接收視頻數(shù)據(jù)。該緩存池是一個(gè)可以容納0.2s0.4s視頻數(shù)據(jù)的多級(jí)緩存,每一級(jí)是一個(gè)緩存鏈表,用于存儲(chǔ)具有相同時(shí)間戳的所有數(shù)據(jù)塊。該多級(jí)緩存池的基本算法是:(1)當(dāng)接收到的數(shù)據(jù)塊的時(shí)間戳在多級(jí)緩存中不存在時(shí):如果該時(shí)間戳比緩存中最舊的時(shí)間戳要新,則在多級(jí)緩存池中插入屬于該時(shí)間戳的緩存鏈表,在該鏈表中加入該數(shù)據(jù)塊,并刪除時(shí)間戳最舊的數(shù)據(jù)鏈表;如果該時(shí)間戳比緩存中最舊的時(shí)間戳還要舊,就丟棄該數(shù)據(jù)塊。(2)當(dāng)接收到的視頻數(shù)據(jù)塊的時(shí)間戳在多級(jí)緩存中存在時(shí):
17、檢查該時(shí)間戳對(duì)應(yīng)緩存鏈表,通過(guò)該數(shù)據(jù)塊序號(hào)判斷該數(shù)據(jù)塊是否存在該時(shí)間戳的緩存鏈表中。若不存在就加入該數(shù)據(jù)塊,否則丟棄。(3)當(dāng)接收到的數(shù)據(jù)塊使得同一時(shí)間戳的視頻數(shù)據(jù)完全收到,就將其解碼并顯示,然后釋放包括該時(shí)間戳在內(nèi)的、所有小于該時(shí)間戳的緩存鏈表。視頻的壓縮標(biāo)準(zhǔn)采用MJPEG或者M(jìn)PEG4。MJPEG屬于幀內(nèi)編碼,傳輸中發(fā)生丟幀不會(huì)影響其他的幀;而MPEG4屬于幀間編碼,傳輸中發(fā)生丟幀,特別是關(guān)鍵幀的丟失將嚴(yán)重影響其他幀的完整。所以在實(shí)際的系統(tǒng)設(shè)計(jì)中,如果網(wǎng)絡(luò)的通信狀況很好,則選擇MPEG4,因?yàn)樗膲嚎s比高;如果網(wǎng)絡(luò)的通信狀況很差,則選擇MJPEG,雖然壓縮比相對(duì)較小,但是發(fā)生丟幀時(shí)不會(huì)影響
18、其他幀。在接收視頻數(shù)據(jù)的同時(shí),應(yīng)根據(jù)時(shí)間戳和序列等進(jìn)行視頻傳輸狀況統(tǒng)計(jì),主要是丟包及延時(shí)統(tǒng)計(jì)。根據(jù)統(tǒng)計(jì)信息,當(dāng)視頻傳輸狀況發(fā)生了明顯變化時(shí),就發(fā)送調(diào)節(jié)視頻質(zhì)量的命令給本地控制系統(tǒng):(1)當(dāng)傳輸?shù)臓顩r變差(如丟包、延時(shí)嚴(yán)重等)時(shí)就給本地控制系統(tǒng)發(fā)送降低視頻質(zhì)量的命令,使其降低視頻采集的頻率或者提高壓縮比率。至于是降低視頻采集的頻率還是提高壓縮比率,將根據(jù)當(dāng)前機(jī)器人的移動(dòng)速度來(lái)決定:當(dāng)機(jī)器人移動(dòng)較快時(shí),并不需要非常高的畫(huà)面質(zhì)量,所以優(yōu)先采用提高圖像壓縮比率的方法。當(dāng)只提高壓縮比率效果不明顯時(shí),再同時(shí)采用降低視頻采集頻率的方法;當(dāng)機(jī)器人移動(dòng)速度很慢時(shí)如抓取東西時(shí),需要更高的視頻清晰度,此時(shí)優(yōu)先采用降
19、低視頻采集頻率的方法。當(dāng)只降低視頻采集頻率效果不明顯時(shí),再同時(shí)采用提高壓縮比率的方法。(2)同理,如果傳輸?shù)臓顩r較好,則可以發(fā)送提高視頻質(zhì)量的命令給本地控制系統(tǒng),根據(jù)移動(dòng)速度決定采取優(yōu)先提高視頻采集的頻率或者優(yōu)先降低壓縮比率的方法來(lái)提高視頻的質(zhì)量。4 機(jī)器人遠(yuǎn)程控制系統(tǒng)開(kāi)發(fā)庫(kù)4.1 目的與用處提供一套使開(kāi)發(fā)者擺脫編程細(xì)節(jié)的、快速開(kāi)發(fā)的、模塊化的、可擴(kuò)展的機(jī)器人遠(yuǎn)程控制開(kāi)發(fā)庫(kù),可以方便研究人員進(jìn)行軟件的開(kāi)發(fā),降低其在軟件編程方面的重復(fù)勞動(dòng)。4.2 設(shè)計(jì)原則(1)采用面向?qū)ο蟮乃枷?,以C+類進(jìn)行設(shè)計(jì),并將類封裝到動(dòng)態(tài)鏈接庫(kù)中。(2)開(kāi)發(fā)庫(kù)具有多選擇性,使開(kāi)發(fā)庫(kù)的使用者有多種技術(shù)可選,如提供多種視頻
20、編碼庫(kù)。(3)在類中對(duì)多線程進(jìn)行封裝 ,并加入線程的同步,使類具有線程安全性。(4)函數(shù)中的算法要力求效率高、運(yùn)算速度快,以減少因?yàn)檎加眠^(guò)多的計(jì)算時(shí)間造成的網(wǎng)絡(luò)時(shí)延。(5)類中定義的接口應(yīng)設(shè)計(jì)完整,不可隨便改動(dòng),以保證今后升級(jí)和擴(kuò)展時(shí)接口的一致性。(6)類的代碼要多采用基本C/C+標(biāo)準(zhǔn)庫(kù)函數(shù)來(lái)開(kāi)發(fā),而盡量不要使用依靠平臺(tái)的如MFC庫(kù),以方便移植到Linux平臺(tái)。4.3 開(kāi)發(fā)庫(kù)CyLib介紹圖4是依照以上設(shè)計(jì)原則設(shè)計(jì)的機(jī)器人遠(yuǎn)程控制系統(tǒng)開(kāi)發(fā)庫(kù)CyLib的類層次圖。該庫(kù)由4個(gè)動(dòng)態(tài)鏈接庫(kù)文件組成:CyCore.dll、CyTools.dll、CyRobot.dll、CyGUI.dll。其中基類加陰影
21、顯示,其他的為派生類。CyCore.dll封裝了應(yīng)用層數(shù)據(jù)包協(xié)議、遠(yuǎn)程控制命令、數(shù)據(jù)傳輸接口、延時(shí)及丟包模擬等。CyRobot.dll包含了對(duì)機(jī)器人編程接口ARIA的封裝、控制指令的執(zhí)行、狀態(tài)數(shù)據(jù)的輪詢和發(fā)送、視頻的采集壓縮發(fā)送以及色彩識(shí)別、漫游等智能控制功能等。CyTools.dll提供了一系列的工具類用于輔助研究人員的程序開(kāi)發(fā)。其中包含線程進(jìn)程同步類、時(shí)間類、算術(shù)類、日志功能、壓縮解壓縮、加密解密、視頻采集等。CyGUI.dll提供了圖形化顯示類,如多功能按鈕、地圖生成、聲納圖形顯示等。5 開(kāi)發(fā)實(shí)例根據(jù)以上的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)并利用開(kāi)發(fā)庫(kù)CyLib,開(kāi)發(fā)了一套P3-DX機(jī)器人遠(yuǎn)程控制系統(tǒng)。圖5展示了機(jī)器人遠(yuǎn)程控制平臺(tái)的控制現(xiàn)場(chǎng)。該平臺(tái)實(shí)現(xiàn)了機(jī)器人本體、機(jī)械臂和攝像頭的控制、狀態(tài)數(shù)據(jù)的顯示、聲納羅盤(pán)數(shù)據(jù)圖形化顯示、視頻監(jiān)控以及自動(dòng)漫游、色彩識(shí)別等智能控制功能。機(jī)器人本地控制系
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版IT軟件開(kāi)發(fā)與維護(hù)服務(wù)協(xié)議版B版
- 2025版建筑消防設(shè)施維護(hù)保養(yǎng)合同補(bǔ)充協(xié)議3篇
- 2025年度知識(shí)產(chǎn)權(quán)融資居間代理合同212946篇
- 2024年藝人廣告代言合同
- 2025年小區(qū)停車場(chǎng)車位共享與充電樁建設(shè)合同3篇
- 2024政府房產(chǎn)轉(zhuǎn)賣合同附贈(zèng)物業(yè)管理服務(wù)協(xié)議范本3篇
- 《我國(guó)房地產(chǎn)價(jià)格波動(dòng)形成機(jī)制及與宏觀經(jīng)濟(jì)關(guān)聯(lián)研究》
- 《方劑學(xué)發(fā)展史研究》
- 《小麥淀粉顆粒大小對(duì)掛面品質(zhì)影響及機(jī)理研究》
- 2024石材石材來(lái)料加工與石材工程監(jiān)理服務(wù)合同3篇
- MOOC 數(shù)字電路分析與設(shè)計(jì)-浙江大學(xué) 中國(guó)大學(xué)慕課答案
- 安徽華塑股份有限公司華塑股份產(chǎn)品結(jié)構(gòu)調(diào)整改造一體化項(xiàng)目年產(chǎn)12萬(wàn)噸生物可降解新材料環(huán)境影響報(bào)告書(shū)
- 110KV變電站工程創(chuàng)優(yōu)監(jiān)理實(shí)施細(xì)則
- 個(gè)人信用報(bào)告異議申請(qǐng)表
- 蒸汽管道專項(xiàng)施工方案
- 檢驗(yàn)批劃分大全16頁(yè)
- 教材中醫(yī)方劑學(xué)
- 2022年2022年電子信息系統(tǒng)機(jī)房設(shè)計(jì)規(guī)范
- 下鼻甲生理、解剖、血供
- 賓館電視機(jī)購(gòu)銷合同協(xié)議
- 風(fēng)機(jī)風(fēng)管拆除制作安裝施工方案
評(píng)論
0/150
提交評(píng)論