新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 機(jī)器人遙操作網(wǎng)絡(luò)通信平臺的設(shè)計(jì)

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

作者: 時(shí)間:2009-04-07 來源:網(wǎng)絡(luò) 收藏

  本文的程序是基于協(xié)議的,使用客戶機(jī)/服務(wù)器模式。本程序調(diào)試的網(wǎng)絡(luò)環(huán)境為采用Windows XP中的 協(xié)議配置的局域網(wǎng),服務(wù)器的的IP地址是“192.168.0.104”,通信端口可任意設(shè)置,本文設(shè)為4231。

  2.1 通信程序的實(shí)現(xiàn)流程

  服務(wù)器是控制的主控制臺,通過服務(wù)器可以控制的爬行、檢測以及轉(zhuǎn)向等。本文中服務(wù)器端程序,主要是建立一個(gè)能夠讓客戶端連接的端口,并通過監(jiān)聽,與需要連接的客戶端建立連接,并與其進(jìn)行數(shù)據(jù)信息通信,將獲取的機(jī)器人的狀態(tài)信息發(fā)送給客戶端來實(shí)現(xiàn)遠(yuǎn)程信號處理,并接收來自的客戶端的控制信息以實(shí)現(xiàn)對機(jī)器人的操控。

  客戶機(jī)端是對機(jī)器人進(jìn)行遠(yuǎn)程控制的計(jì)算機(jī),它通過請求與服務(wù)器建立連接之后,將控制信息傳送給服務(wù)器端,服務(wù)器端根據(jù)控制信息實(shí)現(xiàn)對機(jī)器人控制。而且,客戶機(jī)端還能夠接受服務(wù)器傳送過來的機(jī)器人狀態(tài)信息,以便對機(jī)器人獲取的信息進(jìn)行處理。本文的客戶機(jī)端程序通過Connect()與服務(wù)器建立連接,來達(dá)到相互通信的目的。

實(shí)現(xiàn)的流程圖如圖3所示。服務(wù)器端程序是通信的核心部分,本文的服務(wù)器端程序不僅可以實(shí)現(xiàn)與一個(gè)遠(yuǎn)程客戶機(jī)端的單對單通信,而且可以與多個(gè)客戶機(jī)端同時(shí)進(jìn)行通信。客戶機(jī)端程序相對于服務(wù)器端程序比較簡單,沒有了服務(wù)器端程序的監(jiān)聽程序和接受連接程序,但是比服務(wù)器端增加了連接程序。連接程序和監(jiān)聽程序是區(qū)別于服務(wù)器端程序和客戶機(jī)端程序的標(biāo)志。

通信平臺流程圖

圖3 通信平臺流程圖

 ?。?) 監(jiān)聽程序

  Listen()(監(jiān)聽程序)是服務(wù)器程序區(qū)別于客戶機(jī)端程序最主要的標(biāo)志,服務(wù)器端通過監(jiān)聽程序來監(jiān)聽有沒有客戶機(jī)端請求連接。當(dāng)有客戶機(jī)提出連接請求,通過監(jiān)聽程序?qū)⑦B接請求發(fā)至服務(wù)器來建立兩者之間的連接,服務(wù)器與客戶機(jī)才能實(shí)現(xiàn)通信。監(jiān)聽程序還是區(qū)別使用了流式套接字或數(shù)據(jù)報(bào)式套接字的標(biāo)志。監(jiān)聽程序的存在為提供了可靠、無差錯(cuò)的連接。

 ?。?)連接程序

  Connect()(連接程序)是客戶端中所獨(dú)有的程序,是向服務(wù)器端發(fā)送連接請求所編寫的。連接程序在收到客戶機(jī)端需要連接服務(wù)器的請求之后,就會發(fā)送所需要連接的服務(wù)器IP地址和服務(wù)器端口。發(fā)送之后會等待連接消息的反饋消息,來確認(rèn)客戶機(jī)端是否連接成功。

 ?。?) 接受連接程序

  Accept()(接收連接程序)是客戶機(jī)端對應(yīng)于客戶機(jī)端連接程序而編寫的,該程序可以實(shí)現(xiàn)對連接程序的反饋。當(dāng)程序接收到客戶機(jī)端程序發(fā)來的連接請求時(shí),會對客戶機(jī)反饋回連接是否成功的消息,而且該程序可以獲取要求連接的客戶機(jī)端的IP地址和端口,以便服務(wù)器端可以記錄客戶機(jī)端的連接狀態(tài)信息。

  (4)發(fā)送消息程序

  Send()(發(fā)送消息程序)可以實(shí)現(xiàn)控制信息實(shí)時(shí)地從遠(yuǎn)程者一方發(fā)向服務(wù)器,而機(jī)器人的狀態(tài)信息又通過各種(如視覺、力覺傳感器等)獲取后,由服務(wù)器反饋給遠(yuǎn)程客戶端。

  (5)接收消息程序

  Receive()(接收消息程序)可以實(shí)現(xiàn)客戶機(jī)或者服務(wù)器端接收來自對方發(fā)送的數(shù)據(jù)消息。該程序在服務(wù)器和客戶機(jī)中都是一致的,配合發(fā)送消息程序?qū)崿F(xiàn)了客戶機(jī)和服務(wù)器之間的數(shù)據(jù)消息通信。

  2.2 實(shí)驗(yàn)結(jié)果

  本文的平臺運(yùn)行之后的界面輸出圖像如圖4所示。

tcp/ip相關(guān)文章:tcp/ip是什么




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉