您当前的位置:五五电子网电子知识电子知识资料机器人-智能车机器人遥操作网络通信平台的设计 正文
机器人遥操作网络通信平台的设计

机器人遥操作网络通信平台的设计

点击数:7296 次   录入时间:03-04 12:04:03   整理:http://www.55dianzi.com   机器人-智能车

  目前, 机器人 遥操作 系统已成为机器人研究的一个热点。在机器人遥操作的过程中,本地服务器与远程客户机之间的网络通信问题是遥操作的关键环节。针对机器人遥操作的通信问题,本文设计了一种在Windows XP环境下,运用Socket实现的基于 TCP/IP协议 的网络通信平台。

  1 Socket编程原理

  1.1 Socket简介

  Socket(套接字)最初是加州大学伯克利分校为UNIX操作系统开发的网络通信接口。后来Intel, MICroSOFt, Sun等网络厂商将其移植到Windows中,形成了Windows Sockets规范,它定义了一套Windows环境下网络编程的接口。利用Windows Socket开发的网络通信程序的层次结构如图1示。

Sockets编程的结构

图1 Sockets编程的结构

  根据传输数据类型的不同,Sockets可分为流式套接字(SOCK_STREAM)和数据报式套接字(SOCK_DGRAM)两类。流式套接字提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接受。流式套接字实际上是基于TCP协议实现的。数据报式套接字提供无连接服务。数据报以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且接受顺序混乱。数据报套接字实际上是基于UDP协议实现的。

  按照套接字在客户机/服务器(Client/ Server)模式中的功能可将其分为两类:

  监听套接字:该套接字位于服务器端,它的主要功能就是对特定的端口进行不断的监听,当检测到有连接请求时,接受申请,并构造一个新的客户端套接字,与连接申请方的客户端套接字建立连接,从而为双方的通信做好准备。

  客户端套接字:该套接字是用来进行网络通信的实体。它位于客户机和服务器上,服务器必须维持它为之服务的客户一样数量的这种套接字,形成一个以服务器为中心的星型结构。

  1.2 TCP网络通信平台设计步骤

  基于Internet的机器人遥操作技术是现代网络技术和机器人控制技术的结合,Internet使用网际分组交换协议TCP/IP作为通信规范,它包括 TCP, UDP和ICMP等协议。其中TCP协议是面向连接的协议,要求在数据交换以前必须与通信方建立一条连接、它具有分段和重组功能,能够确保数据可靠、有序地传输。

  TCP通信整个过程可以分成三个阶段:连接建立、数据传输和拆除连接。

  (1)连接建立阶段:首先服务器中的监听套接字对断口进行侦听,客户端的套接字向服务器端的特定断口提出连接申请。

  (2)通信阶段:这是整个过程的核心部分,任务就是负责数据的收发。

  (3)拆除连接阶段:在传完数据之后,关闭套接字,释放所分配的资源。

  使用Soeket编写TCP通信程序的主要步骤如下:

  1) 构造 Soeket对象 ;

  2) 使用该对象构造基本的Socket句柄。由于遥操作的数据通信要求可靠,准确,故采用TCP协议,套接字使用流式套接字;

  3) 建立客户机CSocket,调用Connect()建立与服务器套接字的连接.服务器调用Listen()监听请求连接情况,并在收到客户端请求后调用ACCept()接收客户端连接.

  4) 构造CSocketFile对象,并使用CSocket对象与之关联.

  5) 构造CArchive对象 ,用于接受和发送数据。使用CArchive对象来进行客户端与服务器端之间的Socket通信

  6) 通信结束,关闭套接字,退出程序。

  2 TCP网络通信平台程序的实现

  本程序是为机器人遥操作的通信所搭建的一个网络通信平台,该平台实现了本地服务器与远程客户机之间的数据网络通信,系统结构图如图2所示。

遥操作系统结构图

图2 遥操作系统结构图

  本文的程序设计是基于TCP/IP协议的,使用客户机/服务器模式。本程序设计调试的网络环境为采用Windows XP中的 TCP/IP协议配置的局域网,服务器的的IP地址是“192.168.0.104”,通信端口可任意设置,本文设为4231。

  2.1 通信平台程序的实现流程

  服务器是控制机器人的主控制台,通过服务器可以控制机器人的爬行、检测以及转向等。本文中服务器端程序,主要是建立一个能够让客户端连接的端口,并通过监听,与需要连接的客户端建立连接,并与其进行数据信息通信,将机器人传感器获取的机器人的状态信息发送给客户端来实现远程信号处理,并接收来自的客户端的控制信息以实现对机器人的操控。

  客户机端是对机器人进行远程控制的计算机,它通过请求与服务器建立连接之后,将控制信息传送给服务器端,服务器端根据控制信息实现对机器人控制。而且,客户机端还能够接受服务器传送过来的机器人状态信息,以便对机器人获取的信息进行处理。本文的客户机端程序通过Connect()与服务器建立连接,来达到相互通信的目的。

www.55dianzi.com

   网络通信平台实现的流程图如图3所示。服务器端程序是通信平台的核心部分,本文的服务器端程序不仅可以实现与一个远程客户机端的单对单通信,而且可以与多个客户机端同时进行通信。客户机端程序相对于服务器端程序比较简单,没有了服务器端程序的监听程序和接受连接程序,但是比服务器端增加了连接程序。连接程序和监听程序是区别于服务器端程序和客户机端程序的标志。

通信平台流程图

图3 通信平台流程图

  (1) 监听程序

  Listen()(监听程序)是服务器程序区别于客户机端程序最主要的标志,服务器端通过监听程序来监听有没有客户机端请求连接。当有客户机提出连接请求,通过监听程序将连接请求发至服务器来建立两者之间的连接,服务器与客户机才能实现通信。监听程序还是区别使用了流式套接字或数据报式套接字的标志。监听程序的存在为网络通信提供了可靠、无差错的连接。

  (2)连接程序

  Connect()(连接程序)是客户端中所独有的程序,是向服务器端发送连接请求所编写的。连接程序在收到客户机端需要连接服务器的请求之后,就会发送所需要连接的服务器IP地址和服务器端口。发送之后会等待连接消息的反馈消息,来确认客户机端是否连接成功。

  (3) 接受连接程序

  ACCept()(接收连接程序)是客户机端对应于客户机端连接程序而编写的,该程序可以实现对连接程序的反馈。当程序接收到客户机端程序发来的连接请求时,会对客户机反馈回连接是否成功的消息,而且该程序可以获取要求连接的客户机端的IP地址和端口,以便服务器端可以记录客户机端的连接状态信息。

  (4)发送消息程序

  Send()(发送消息程序)可以实现控制信息实时地从远程操作者一方发向服务器,而 机器人 的状态信息又通过各种传感器(如视觉传感器、力觉传感器等)获取后,由服务器反馈给远程客户端。

  (5)接收消息程序

  Receive()(接收消息程序)可以实现客户机或者服务器端接收来自对方发送的数据消息。该程序在服务器和客户机中都是一致的,配合发送消息程序实现了客户机和服务器之间的数据消息通信。

  2.2 实验结果

  本文的网络通信平台运行之后的界面输出图像如图4所示。

  图4(a)显示的是服务器端运行之后的界面。服务器端是该程序的核心端,所有客户端的数据都将传输到服务器端,客户端之间通信需要通过服务器端进行中转。而本文所设计的程序中的服务器端不仅可以实现以广播的形式向所有连接到该服务器的客户端发送信息,还可以以单对单通信的方式向单个的客户端进行通信。在图 4(a)中就显示了服务器端分别利用这两种方式进行了通信。点击界面中的发送按钮就采取广播式发送信息,而点击界面中的1和2两个按钮则是对特定客户端发送数据。

  本文设计的程序可以支持多个不同的

通信平台运行界面

(a)

通信平台运行界面

(b)

通信平台运行界面

[1] [2]  下一页


本文关键字:机器人  通信  网络  机器人-智能车电子知识资料 - 机器人-智能车