技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 機(jī)器人遙操作網(wǎng)絡(luò)通信平臺(tái)的設(shè)計(jì)

機(jī)器人遙操作網(wǎng)絡(luò)通信平臺(tái)的設(shè)計(jì)

時(shí)間:2009-03-06 14:31:31來(lái)源:ronggang

導(dǎo)語(yǔ):?為解決機(jī)器人遙操作的通信問(wèn)題,本文設(shè)計(jì)了一種可以實(shí)現(xiàn)遠(yuǎn)程客戶機(jī)與本地服務(wù)器相互收發(fā)信息的網(wǎng)絡(luò)通信平臺(tái)
摘 要:為解決機(jī)器人遙操作的通信問(wèn)題,本文設(shè)計(jì)了一種可以實(shí)現(xiàn)遠(yuǎn)程客戶機(jī)與本地服務(wù)器相互收發(fā)信息的網(wǎng)絡(luò)通信平臺(tái)。該平臺(tái)基于TCP/IP協(xié)議,運(yùn)用Windows Sockets套接字在VC++6.0環(huán)境下編寫。與以往TCP通信的命令行輸出不同,該網(wǎng)絡(luò)通信平臺(tái)實(shí)現(xiàn)了界面輸出。實(shí)驗(yàn)結(jié)果表明,該網(wǎng)絡(luò)通信平臺(tái)能夠準(zhǔn)確方便地實(shí)現(xiàn)服務(wù)器和客戶端之間實(shí)時(shí)收發(fā)文件和互相通信,滿足機(jī)器人遙操作的通訊任務(wù)。 關(guān)鍵詞:TCP通信;遠(yuǎn)程客戶機(jī);套接字;遙操作 [b][align=center]The Design of Robot Network Communication Platform Pan Bin,Jiang Zhijian,Zhang Lei,Wang Chengcheng[/align][/b] Abstract: To solve the communication problem of robot teleoperation , a new kind of network communication platform which realizes receiving and sending messages mutually between the remote client and local server is presented in this paper.The platform is discussed using Windows Sockets based on TCP/IP protocol on the condition of VC++6.0.It achieved the interface output different from former TCP correspondence‘s command-line output.The results of the experiment show that the platform realized sending and receiving the messages and documents in real-time between local server and remote client.So the platform can meet the communication needs for robot teleoperation better. Key words: TCP communication;Remote Client;Socket;Teleoperation   目前,機(jī)器人遙操作系統(tǒng)已成為機(jī)器人研究的一個(gè)熱點(diǎn)。在機(jī)器人遙操作的過(guò)程中,本地服務(wù)器與遠(yuǎn)程客戶機(jī)之間的網(wǎng)絡(luò)通信問(wèn)題是遙操作的關(guān)鍵環(huán)節(jié)。針對(duì)機(jī)器人遙操作的通信問(wèn)題,本文設(shè)計(jì)了一種在Windows XP環(huán)境下,運(yùn)用Socket實(shí)現(xiàn)的基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信平臺(tái)。 1 Socket編程原理   1.1 Socket簡(jiǎn)介   Socket(套接字)最初是加州大學(xué)伯克利分校為UNIX操作系統(tǒng)開(kāi)發(fā)的網(wǎng)絡(luò)通信接口。后來(lái)Intel, Microsoft, Sun等網(wǎng)絡(luò)廠商將其移植到Windows中,形成了Windows Sockets規(guī)范,它定義了一套Windows環(huán)境下網(wǎng)絡(luò)編程的接口。利用Windows Socket開(kāi)發(fā)的網(wǎng)絡(luò)通信程序的層次結(jié)構(gòu)如圖1示。 [align=center] 圖1 Sockets編程的結(jié)構(gòu)[/align]   根據(jù)傳輸數(shù)據(jù)類型的不同,Sockets可分為流式套接字(SOCK_STREAM)和數(shù)據(jù)報(bào)式套接字(SOCK_DGRAM)兩類。流式套接字提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無(wú)差錯(cuò)、無(wú)重復(fù)的發(fā)送,且按發(fā)送順序接受。流式套接字實(shí)際上是基于TCP協(xié)議實(shí)現(xiàn)的。數(shù)據(jù)報(bào)式套接字提供無(wú)連接服務(wù)。數(shù)據(jù)報(bào)以獨(dú)立包形式發(fā)送,不提供無(wú)錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接受順序混亂。數(shù)據(jù)報(bào)套接字實(shí)際上是基于UDP協(xié)議實(shí)現(xiàn)的。   按照套接字在客戶機(jī)/服務(wù)器(Client/ Server)模式中的功能可將其分為兩類:   監(jiān)聽(tīng)套接字:該套接字位于服務(wù)器端,它的主要功能就是對(duì)特定的端口進(jìn)行不斷的監(jiān)聽(tīng),當(dāng)檢測(cè)到有連接請(qǐng)求時(shí),接受申請(qǐng),并構(gòu)造一個(gè)新的客戶端套接字,與連接申請(qǐng)方的客戶端套接字建立連接,從而為雙方的通信做好準(zhǔn)備。   客戶端套接字:該套接字是用來(lái)進(jìn)行網(wǎng)絡(luò)通信的實(shí)體。它位于客戶機(jī)和服務(wù)器上,服務(wù)器必須維持它為之服務(wù)的客戶一樣數(shù)量的這種套接字,形成一個(gè)以服務(wù)器為中心的星型結(jié)構(gòu)。   1.2 TCP網(wǎng)絡(luò)通信平臺(tái)設(shè)計(jì)步驟   基于Internet的機(jī)器人遙操作技術(shù)是現(xiàn)代網(wǎng)絡(luò)技術(shù)和機(jī)器人控制技術(shù)的結(jié)合,Internet使用網(wǎng)際分組交換協(xié)議TCP/IP作為通信規(guī)范,它包括TCP, UDP和ICMP等協(xié)議。其中TCP協(xié)議是面向連接的協(xié)議,要求在數(shù)據(jù)交換以前必須與通信方建立一條連接、它具有分段和重組功能,能夠確保數(shù)據(jù)可靠、有序地傳輸。   TCP通信整個(gè)過(guò)程可以分成三個(gè)階段:連接建立、數(shù)據(jù)傳輸和拆除連接。  ?。?)連接建立階段:首先服務(wù)器中的監(jiān)聽(tīng)套接字對(duì)斷口進(jìn)行偵聽(tīng),客戶端的套接字向服務(wù)器端的特定斷口提出連接申請(qǐng)。  ?。?)通信階段:這是整個(gè)過(guò)程的核心部分,任務(wù)就是負(fù)責(zé)數(shù)據(jù)的收發(fā)。  ?。?)拆除連接階段:在傳完數(shù)據(jù)之后,關(guān)閉套接字,釋放所分配的資源。   使用Soeket編寫TCP通信程序的主要步驟如下:   1) 構(gòu)造 Soeket對(duì)象 ;   2) 使用該對(duì)象構(gòu)造基本的Socket句柄。由于遙操作的數(shù)據(jù)通信要求可靠,準(zhǔn)確,故采用TCP協(xié)議,套接字使用流式套接字;   3) 建立客戶機(jī)CSocket,調(diào)用Connect()建立與服務(wù)器套接字的連接.服務(wù)器調(diào)用Listen()監(jiān)聽(tīng)請(qǐng)求連接情況,并在收到客戶端請(qǐng)求后調(diào)用Accept()接收客戶端連接.   4) 構(gòu)造CSocketFile對(duì)象,并使用CSocket對(duì)象與之關(guān)聯(lián).   5) 構(gòu)造CArchive對(duì)象 ,用于接受和發(fā)送數(shù)據(jù)。使用CArchive對(duì)象來(lái)進(jìn)行客戶端與服務(wù)器端之間的Socket通信   6) 通信結(jié)束,關(guān)閉套接字,退出程序。 2 TCP網(wǎng)絡(luò)通信平臺(tái)程序的實(shí)現(xiàn)   本程序是為機(jī)器人遙操作的通信所搭建的一個(gè)網(wǎng)絡(luò)通信平臺(tái),該平臺(tái)實(shí)現(xiàn)了本地服務(wù)器與遠(yuǎn)程客戶機(jī)之間的數(shù)據(jù)網(wǎng)絡(luò)通信,系統(tǒng)結(jié)構(gòu)圖如圖2所示。 [align=center] 圖2 遙操作系統(tǒng)結(jié)構(gòu)圖[/align]   本文的程序設(shè)計(jì)是基于TCP/IP協(xié)議的,使用客戶機(jī)/服務(wù)器模式。本程序設(shè)計(jì)調(diào)試的網(wǎng)絡(luò)環(huán)境為采用Windows XP中的 TCP/IP協(xié)議配置的局域網(wǎng),服務(wù)器的的IP地址是“192.168.0.104”,通信端口可任意設(shè)置,本文設(shè)為4231。   2.1 通信平臺(tái)程序的實(shí)現(xiàn)流程   服務(wù)器是控制機(jī)器人的主控制臺(tái),通過(guò)服務(wù)器可以控制機(jī)器人的爬行、檢測(cè)以及轉(zhuǎn)向等。本文中服務(wù)器端程序,主要是建立一個(gè)能夠讓客戶端連接的端口,并通過(guò)監(jiān)聽(tīng),與需要連接的客戶端建立連接,并與其進(jìn)行數(shù)據(jù)信息通信,將機(jī)器人傳感器獲取的機(jī)器人的狀態(tài)信息發(fā)送給客戶端來(lái)實(shí)現(xiàn)遠(yuǎn)程信號(hào)處理,并接收來(lái)自的客戶端的控制信息以實(shí)現(xiàn)對(duì)機(jī)器人的操控。   客戶機(jī)端是對(duì)機(jī)器人進(jìn)行遠(yuǎn)程控制的計(jì)算機(jī),它通過(guò)請(qǐng)求與服務(wù)器建立連接之后,將控制信息傳送給服務(wù)器端,服務(wù)器端根據(jù)控制信息實(shí)現(xiàn)對(duì)機(jī)器人控制。而且,客戶機(jī)端還能夠接受服務(wù)器傳送過(guò)來(lái)的機(jī)器人狀態(tài)信息,以便對(duì)機(jī)器人獲取的信息進(jìn)行處理。本文的客戶機(jī)端程序通過(guò)Connect()與服務(wù)器建立連接,來(lái)達(dá)到相互通信的目的。   網(wǎng)絡(luò)通信平臺(tái)實(shí)現(xiàn)的流程圖如圖3所示。服務(wù)器端程序是通信平臺(tái)的核心部分,本文的服務(wù)器端程序不僅可以實(shí)現(xiàn)與一個(gè)遠(yuǎn)程客戶機(jī)端的單對(duì)單通信,而且可以與多個(gè)客戶機(jī)端同時(shí)進(jìn)行通信??蛻魴C(jī)端程序相對(duì)于服務(wù)器端程序比較簡(jiǎn)單,沒(méi)有了服務(wù)器端程序的監(jiān)聽(tīng)程序和接受連接程序,但是比服務(wù)器端增加了連接程序。連接程序和監(jiān)聽(tīng)程序是區(qū)別于服務(wù)器端程序和客戶機(jī)端程序的標(biāo)志。 [align=center] 圖3 通信平臺(tái)流程圖[/align]  ?。?) 監(jiān)聽(tīng)程序   Listen()(監(jiān)聽(tīng)程序)是服務(wù)器程序區(qū)別于客戶機(jī)端程序最主要的標(biāo)志,服務(wù)器端通過(guò)監(jiān)聽(tīng)程序來(lái)監(jiān)聽(tīng)有沒(méi)有客戶機(jī)端請(qǐng)求連接。當(dāng)有客戶機(jī)提出連接請(qǐng)求,通過(guò)監(jiān)聽(tīng)程序?qū)⑦B接請(qǐng)求發(fā)至服務(wù)器來(lái)建立兩者之間的連接,服務(wù)器與客戶機(jī)才能實(shí)現(xiàn)通信。監(jiān)聽(tīng)程序還是區(qū)別使用了流式套接字或數(shù)據(jù)報(bào)式套接字的標(biāo)志。監(jiān)聽(tīng)程序的存在為網(wǎng)絡(luò)通信提供了可靠、無(wú)差錯(cuò)的連接。  ?。?)連接程序   Connect()(連接程序)是客戶端中所獨(dú)有的程序,是向服務(wù)器端發(fā)送連接請(qǐng)求所編寫的。連接程序在收到客戶機(jī)端需要連接服務(wù)器的請(qǐng)求之后,就會(huì)發(fā)送所需要連接的服務(wù)器IP地址和服務(wù)器端口。發(fā)送之后會(huì)等待連接消息的反饋消息,來(lái)確認(rèn)客戶機(jī)端是否連接成功。  ?。?) 接受連接程序   Accept()(接收連接程序)是客戶機(jī)端對(duì)應(yīng)于客戶機(jī)端連接程序而編寫的,該程序可以實(shí)現(xiàn)對(duì)連接程序的反饋。當(dāng)程序接收到客戶機(jī)端程序發(fā)來(lái)的連接請(qǐng)求時(shí),會(huì)對(duì)客戶機(jī)反饋回連接是否成功的消息,而且該程序可以獲取要求連接的客戶機(jī)端的IP地址和端口,以便服務(wù)器端可以記錄客戶機(jī)端的連接狀態(tài)信息。  ?。?)發(fā)送消息程序   Send()(發(fā)送消息程序)可以實(shí)現(xiàn)控制信息實(shí)時(shí)地從遠(yuǎn)程操作者一方發(fā)向服務(wù)器,而機(jī)器人的狀態(tài)信息又通過(guò)各種傳感器(如視覺(jué)傳感器、力覺(jué)傳感器等)獲取后,由服務(wù)器反饋給遠(yuǎn)程客戶端。   (5)接收消息程序   Receive()(接收消息程序)可以實(shí)現(xiàn)客戶機(jī)或者服務(wù)器端接收來(lái)自對(duì)方發(fā)送的數(shù)據(jù)消息。該程序在服務(wù)器和客戶機(jī)中都是一致的,配合發(fā)送消息程序?qū)崿F(xiàn)了客戶機(jī)和服務(wù)器之間的數(shù)據(jù)消息通信。   2.2 實(shí)驗(yàn)結(jié)果   本文的網(wǎng)絡(luò)通信平臺(tái)運(yùn)行之后的界面輸出圖像如圖4所示。   圖4(a)顯示的是服務(wù)器端運(yùn)行之后的界面。服務(wù)器端是該程序的核心端,所有客戶端的數(shù)據(jù)都將傳輸?shù)椒?wù)器端,客戶端之間通信需要通過(guò)服務(wù)器端進(jìn)行中轉(zhuǎn)。而本文所設(shè)計(jì)的程序中的服務(wù)器端不僅可以實(shí)現(xiàn)以廣播的形式向所有連接到該服務(wù)器的客戶端發(fā)送信息,還可以以單對(duì)單通信的方式向單個(gè)的客戶端進(jìn)行通信。在圖4(a)中就顯示了服務(wù)器端分別利用這兩種方式進(jìn)行了通信。點(diǎn)擊界面中的發(fā)送按鈕就采取廣播式發(fā)送信息,而點(diǎn)擊界面中的1和2兩個(gè)按鈕則是對(duì)特定客戶端發(fā)送數(shù)據(jù)。   本文設(shè)計(jì)的程序可以支持多個(gè)不同的 [align=center] (a) (b) (c)[/align]   圖4 通信平臺(tái)運(yùn)行界面   客戶端和服務(wù)器進(jìn)行連接并通信。圖4(b)顯示的是IP為“192.168.0.106”的客戶端和服務(wù)器建立連接之后的通信,而圖4(c)則是IP為“192.168.0.110”的客戶端和服務(wù)器通信的界面。 3 實(shí)驗(yàn)性能分析   1.時(shí)延和數(shù)據(jù)的丟失問(wèn)題   機(jī)器人遙操作要求數(shù)據(jù)傳輸要具備可靠性和次序性,TCP協(xié)議提供了可靠而有序的傳輸,基于這一特性,可以在傳輸過(guò)程中使用超時(shí)重傳、分段、重組等檢錯(cuò)糾錯(cuò)策略,通過(guò)這些檢錯(cuò)糾錯(cuò)策略可以保證在數(shù)據(jù)傳輸過(guò)程中的可靠性和有序性,可以有效的防止數(shù)據(jù)的丟失。   機(jī)器人遠(yuǎn)端遙操作控制的采用并不意味著實(shí)時(shí)控制作用被上移到網(wǎng)絡(luò),實(shí)時(shí)控制依然由現(xiàn)場(chǎng)的控制單元來(lái)完成,而網(wǎng)絡(luò)遙操作更關(guān)注的是對(duì)現(xiàn)場(chǎng)信息的監(jiān)視和管理以及對(duì)機(jī)器人的非實(shí)時(shí)控制,所以TCP通信在傳輸過(guò)程中存在的時(shí)延問(wèn)題也就顯得影響不大。   2.數(shù)據(jù)共享問(wèn)題及其解決方案   由于本文中程序是多任務(wù)多線程的,當(dāng)多個(gè)客戶端同時(shí)連接到服務(wù)器時(shí),多任務(wù)、多線程就極易造成數(shù)據(jù)共享問(wèn)題。數(shù)據(jù)共享問(wèn)題可以解釋如下:假定有多個(gè)函數(shù)(或者ISR、任務(wù))共享一個(gè)變量,如果在某一時(shí)刻存在對(duì)該變量的數(shù)值的操作,并且在對(duì)其施加操作的的過(guò)程中,僅有部分操作完成,還有一部分沒(méi)有完成,若在此時(shí)產(chǎn)生一個(gè)中斷,如果此時(shí)還有另一個(gè)函數(shù)也在共享該變量,且前面的操作已經(jīng)完成,該變量的數(shù)值可能與預(yù)期的不同。因此,當(dāng)一個(gè)函數(shù)與另一個(gè)函數(shù)共享某變量時(shí),所調(diào)用的ISR或者另一個(gè)函數(shù)都有可能改變此變量,是變量的數(shù)值發(fā)生變化,在返回時(shí)此變量的新數(shù)值將從堆棧轉(zhuǎn)載到四個(gè)寄存器中,未完成的操作將按照寄存器中的新數(shù)值執(zhí)行,程序就會(huì)發(fā)生錯(cuò)誤。   在本文中,利用了以下措施消除了程序中由共享數(shù)據(jù)問(wèn)題所導(dǎo)致的錯(cuò)誤。   1) 對(duì)于從中斷返回的變量,在聲明中使用了volatile。此聲明可以警告編譯器,這些變量是可更改的。   2)在中斷之前將完全執(zhí)行的部分中對(duì)原子指令使用可再生函數(shù),此部分叫臨界段。   3) 將共享的變量放入循環(huán)隊(duì)列中。需要使用該變量數(shù)值的函數(shù)總是從隊(duì)列的前端將其刪除。而另一些寫入該變量的數(shù)值的函數(shù)總是從隊(duì)列的末端進(jìn)行操作。   4)在臨界段開(kāi)始執(zhí)行之前通過(guò)使用信號(hào)量來(lái)關(guān)閉中斷,在其完成之時(shí)打開(kāi)中斷。 4 結(jié)論   本文設(shè)計(jì)了一種基于TCP協(xié)議的網(wǎng)絡(luò)通信平臺(tái),通過(guò)該平臺(tái)可以實(shí)現(xiàn)遠(yuǎn)程客戶機(jī)與本地服務(wù)器之間的信息通信,而且保證了數(shù)據(jù)傳輸?shù)目煽啃院痛涡蛐?,?duì)機(jī)器人的遙操作提供了可靠的網(wǎng)絡(luò)通信條件。   網(wǎng)絡(luò)通信平臺(tái)的建立,擴(kuò)大了對(duì)機(jī)器人操作的遠(yuǎn)程化距離,而且該平臺(tái)具有架構(gòu)容易,低成本,維護(hù)便利等優(yōu)點(diǎn),對(duì)機(jī)器人遙操作領(lǐng)域的技術(shù)進(jìn)步將會(huì)起到幫助作用。 參考文獻(xiàn)   [1] Brady K,Tzyh—Jong. Intemet—based remote teleoperation[A].In International Conference on Robotics and Automation[C].Leuven Belgium,1998,65.   [2] 陳寧,王慶鵬,談大龍.基于 Internet的機(jī)器人遙操作實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)器人.2000,22(7):211-214.   [3] 郭建光,符秀輝.網(wǎng)絡(luò)機(jī)器人遙操作實(shí)驗(yàn)研究[J].儀器儀表學(xué)報(bào).2005,25(8):477-478.   [4] 扶忠踐.基于 MFC的網(wǎng)絡(luò)通信程序設(shè)計(jì)[J].湖南:長(zhǎng)沙電力學(xué)院學(xué)報(bào).1999,14(4):325-327.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于運(yùn)動(dòng)控制器的激光沖擊強(qiáng)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)