当前位置:首页 >> 工学 >>

陈博宇-毕业论文摘要


基于远程指令的机器人控制系统设计
测控技术与仪器 121 班 王正 杨大伟
(大连民族大学 机电工程学院,中国 大连 116600)

摘要:随着“互联网+”理念的深入人心和《中国制造 2050》进程的不断发展,互联网 +已有的机器人控制系统已经成为了一个必然趋势。该系统可以应用于石油开采、远程 医疗、科研考察、远程排险等工作。基于远程指令的机器人控制系统。该系统的硬件由 数据流服务器、视频流服务器、控制端(PC、平板电脑或智能手机) 、IN-RT 机器人平 台等组成。实现了通过网络,控制端给服务器发送指令,服务器再给远程的机器人发送 指令,经过远程机器人上客户端程序的解析,能够根据视频流服务器传回的远程实时画 面,实时地控制机器人的运动方向。 关键词:机器人;远程控制;动态链接库;套接字

The Design of Robot Control System Based On Remote Instruct
Abstract : As “Internet+” and “MADE IN CHINA 2050” developing, “Internet + existing robot control system” is a inevitable trend. Robot control system based on remote instruct is a combination of existing robot control system and Internet remote communication technology. This system has been applied to oil production, telemedicine, scientific study and remote eliminating danger. In this article, we mention a system, which is utilized Internet, which is based on remote instruct. Its hardware consists of data stream server, video stream server, control terminal (such as PC, tablet PC and smart mobile phone) and IN-RT robot and so on. The controller send instruct to the server and the server send instruct to the robots.
Key Words:Robot;Remote Control;Java;Socket

1 引言
建立基于远程指令的机器人控制系统,可以实现机器人代替人类在复杂的环境下完 成危险性较大的工作,避免对人类造成人身伤害。同时,这也解决了机器人在未来可能 面临着的诸多复杂的应用环境等问题,例如太空考察、深海探测和活火山探测等等。 利用互联网,基于远程指令的机器人控制系统最大的优点就是具有开放性。不论在 何时何地,只要服务器和客户端的机器人能够连接上同一个网络上,机器人就能根据远 程指令的要求执行相应的动作。它不仅能够利用机器人远程执行人类的行为,而且还把 人类的动作转化为数字信号,通过网络传输指令,从而实现了人类操作功能的延伸。 在把握了机器人领域的发展趋势之后,根据我校已有 IN-RT 机器人的硬件平台,决 定本文中的机器人远程控制系统要基于网络, 利用 Java 的套接字和 JNI 调用本地方法实 现服务器发送指令,远端的机器人客户端接受并解析指令,使机器人完成相应的动作和 数据采集工作。

2 总体结构设计
系统总体结构是利用 PC 机、智能手机或平板电脑给视频流服务器和控制流服务器 发送远程指令,服务器接收到指令之后转发给机器人端,机器人经过解析,执行相对应 的指令。用动态链接库封装了由 C++ 编写的运动控制驱动程序和视频流传输程序,通 过 Java 的 JNI 接口调用动态链接库里面封装的驱动程序。 实现了在机器人本体上的 Java 和 C++混合编程之后,又利用套接字进行通信。

2.1 硬件系统结构
硬件系统结构如图 2.1 所示。

图 2.1 系统硬件结构

2.2 软件部分
Java 和 C++进行混合编程,实现在 Java 中从动态链接库中调用 C++编写的运动驱 动程序和视频流传输驱动程序。远程通信方面,使用 Java 中的套接字,避免了硬件通信 带来的局限性。客户端收到服务器的远程指令之后,进行解析。 本文中定义了传输字符串的格式, 应用了 Dom4j 的解析包, 对发送来的指令进行解 析,防止机器人直接执行乱码或者丢失字符的指令。如图 2.2 所示,表示了 C++部分运 动控制的程序流程图,当客户机收到预先定义好的协议格式后,开始进行解析,调用相 应正确的命令执行。如图 2.3 所示,表示了利用套接字实现远程通信的程序流程图,服 务器创建 SocketServer 对象,客户机创建 Socket 对象,这两步完成之后,就形成了套接 字链接。套接字诞生之后,还学要进行流连接,获得输入输出流,这样就完成了远程通 信。

图 2.2 C++运动控制程序流程图

开始

创建套接字

打开连接到套接字的输入 流、输出流

按照协议对套接字进行读 /写操作

关闭套接字

结束
图 2.3 远程通信部分程序流程图

3 远程通信原理
本设计中,IN-RT 机器人与服务器的远程指令传输就是通过 Socket 套接字实现的。 IP 地址表示互联网上的计算机,端口表示正在计算机上运行的进程。端口号、IP 地址放 在一起就是一个完整的套接字。分三个部分来说明套接字连接的实现。 1. 服务器建立 SeverSocket 对象 SeverSocket 对象负责等待客户机请求建立套接字连接, 类似邮局某个窗口中的业务 员。这里设置的端口号一定与客户机设置的端口号是相同的。 建立服务器套接字时,可能发生 IOException 异常,因此要建立接收客户机请求的 服务器套接字。 try { ServerSocket waitSocketConnection = new ServerSocket(端口号); } catch (IOException e ) {} 当服务器的 ServerSocket 对象 waitSocketConnection 建立之后,就可以使用 accept() 方法接受客户的套接字连接请求。 try { Socket socketAtServer = waitSocketConnection.accept(); } catch (IOException e ) {} 2. 客户机创建 Socket 对象

客户机程序使用 Socket 的建立方法格式为 Socket(String host,int port) ,host 代表要 连接的服务器的 IP 地址,port 是一个端口号。 try { Socket socketAtClient = new Socket (“IP 地址”,端口号); } catch (IOException e) {} 3. 流连接 客户机和服务器的套接字对象产生以后, 还必须进行输入/输出流的连接。 服务器的 Socket 对象 SocketAtServer 方法 getOutputStream()获得的输出流将指向客户端的 Socket 方法 getInputStream()获得的输入流。原理如图 3.1 所示。
输入流 连接 输出流

客户端Socket

服务器端Socket

输出流

连接

输入流

图 3.1 套接字工作原理

4 实物展示
根据上文中系统已经建系统的结构和软件设计, 预期达到的效果如图 4.1 所示。 IN-RT 机器人上所带 的摄像头传回远程的实时画面,会在 PC 机上观测到远程的实时画面,观测到远程画面之后,在给 机器人发送运动控制指令。如图 4.2 所示,实现了根据远程实时画面,控制机器人运动。

图 4.1 预期实物效果图

图 4.2 实物展示

参 考 文 献
[1] 宋华.基于 web 的远程机器人控制技术的研究.哈尔滨工程大学硕士学位论文,2003 [2] 冯远山.基于 Internet 的远程控制机器人系统.西北工业大学硕士学位文,2004 [3] Yu H., Tang G. Y., Su H., Tian C. P., Zhang J. Trajectory tracking control of wheeled mobile robots via fuzzy approach[C]. Control Conference (CCC), 2014 33rd Chinese, 28-30 July 2014, 2014: 8444-8449. [4] Chung-Jung Lee, Teng-Hui Tseng, Bo-Jhen Huang, Jun Weihsieh, Chun-Ming Tsai. Obstacle detection and avoidance via cascade classifier for wheeled mobile robot[C]. Machine Learning and Cybernetics (ICMLC), 2015 International Conference on, 12-15 July 2015, 2015(1): 403-407. [5] Prayudhi L. H., Widyotriatmo A., Keum-Shik Hong. Wall following control algorithm for a car-like wheeled-mobile robot with differential-wheels drive[C]. Control, Automation and Systems (ICCAS), 2015 15th International Conference on, 13-16 Oct. 2015, 2015: 779-783. [6] Turhan H. I. Proxy based-fuzzy sliding mode controller for wheeled mobile robot Magellan Pro[C]. Advanced Robotics (ICAR), 2015 International Conference on, 27-31 July 2015, 2015: 15-20. [7] Yang H., Fan X., Shi P., Hua C. Nonlinear Control for Tracking and Obstacle Avoidance of a Wheeled Mobile Robot With Nonholonomic Constraint[J]. IEEE Transactions on Control Systems Technology. 2016, 24(2): 741-746.


相关文章:
更多相关标签: