Page 223 - 机械设计制造与自动化技术研究
P. 223

第八章  云制造背景下工业机器人技术研究



                   (三)通信模块的实现
                   这部分开发的虚拟示教器系统部署在平板上,需要和 PC 主机上的示教器场
               景进行通信,目前常用的客户端与服务器端的通信方式如下:

                   一是 HTTP:客户端发出请求,服务器端响应的方式;二是套接字(Socket)
               技术及其封装技术;三是 AJAX 技术:异步 JavaScript 和 XML;四是 Comet:基
               于 HTTP 长连接的“服务器推”技术;五是 WebSocket:基于浏览器的双向通信
               方式。

                   出于技术的实现难易程度、平台的支持性等多方面因素的考虑,这部分选
               用 RPC 协议(Remote Procedure Call Protocol,远程过程调用协议),一种基于
               Socket 建立的通信协议。RPC 协议可以实现不在同一个操作系统中的应用的相互
               调用,例如一个部署在 A 服务器上的应用,想要在 B 服务器上调用该方法,由

               于不在一个内存空间,不能直接调用,而 RPC 协议就为这种方式的调用提供了
               可能。
                   RPC 协议基于 Client/Server 模型(C/S 模型,即客户端 / 服务器模型),服
               务程序提供端一般为 Server 端,请求程序端为 Client 端。基本的通信流程如下:

               当建立 RPC 协议的服务后,Client 端发送远程调用指令(可含参)到客户端存根
               码(Client Stub),并进入等待状态。同时,Client 端发送的服务调用指令通过
               底层的套接字,根据建立网络地址和端口号,传输到 Server 端。Server 端未得到
               来自 Client 端的请求信息时,保持等待状态,可以随时被唤醒。当 Server 端得到

               请求信息时,进行相应的处理后,发送反馈信息到 Client 端,此时 Client 端被唤
               醒,并进行相应的处理。至此,一个完整的 RPC 协议调用过程结束。
                   Unity3d 中提供了 NetworkView 组件,用于多人在线游戏的网络支持,这部
               分开发的系统正是使用了该组件进行示教器系统和场景间的通信。在这部分中,

               PC 端为 Server 端,平板电脑端为 Client 端,两者间的 RPC 协议的具体实现如下:
               已知 Server 端和 Client 端均有函数 Joint Rotate Plus,用于机器人关节的正向转动。














                                                                                   ·209·
   218   219   220   221   222   223   224   225   226   227   228