一种异构多机器人系统交互协议
2016-10-28郑俊歌杨银刚张永梅
马 礼,郑俊歌,杨银刚,张永梅
(1.北方工业大学 计算机学院,北京 100144; 2.大规模流数据集成与分析技术北京市重点实验室,北京 100144;3.北京信息高技术研究所,北京 100085)
一种异构多机器人系统交互协议
马 礼1,2,郑俊歌1,2,杨银刚3,张永梅1,2
(1.北方工业大学 计算机学院,北京 100144; 2.大规模流数据集成与分析技术北京市重点实验室,北京 100144;3.北京信息高技术研究所,北京 100085)
随着机器人在各领域的广泛应用和任务种类多样化,单机器人执行任务受到任务规模和复杂程度的限制,使用多个机器人协作完成任务是解决问题的有效方法之一;在多机器人控制系统中,不同的任务往往需要不同结构和功能的机器人去执行,而且工业化的机器人各自遵循私有协议;在操作多机器人系统时,系统中的通信协议因不同的机器人而异,从而增加了控制过程中的协作难度;设计和制定一个统一的交互协议,便于协作信息在系统中通信,共同完成给定的任务;针对不同的机器人私有控制协议,在一致化交互接口的基础上,设计并实现了不同工业机器人之间的交互;通过工程实践,验证了一致性交互协议对于异构机器人系统的有效交互,对完成复杂问题作业具有借鉴作用。
机器人控制系统;私有协议;一致化交互;交互协议
0 引言
多机器人在解决负责工程问题中起到重要的作用。从德国的工业4.0(Industry 4.0)到我国提出的制造业2025计划,一个很大的特点是需要智能生产,需要运用多机器人协作与协调,完成复杂任务。
智能工厂不仅仅指的是工厂里机器与机器之间,人与人之间,人与机器之间实现信息化、互联网化。 在“智能生产”中,相对于单机器人系统,多机器人系统拥有时间、空间、功能、信息和资源上的分布特性, 从而在任务适用性、经济性、最优性、鲁棒性、可扩展性等方面表现出极大的优越性。但是相对于单机器人工作,多机器人之间需要更加有效地通信和协同工作,因此必须通过共享信息从而更好地完成任务。多机器人之间一致化通信是多机器人系统研究和使用中不可缺少的内容,一直受到国内外的广泛关注。
1 国内外现状分析
国内外对于多机器人系统的研究很多,机器人之间如何方便地有效沟通,是多机器人系统的主要研究内容之一。
美国国防高级研究计划局、海军和能源部研究的战场环境下通过通信进行任务制定、规划和协调合作,共同完成任务的组织框架和方法多机器人作战平台[1]。日本在仿生多机器人系统上研究,如利用鱼类仿生技术开发的多机器人系统/EPORO0的CEBOT和日产公司[2]等。这些多机器人系统的不同机器人个体之间均需要有效通信。
国内上海交通大学、中国科学院等开发出各种形式的多机器人系统。中科院沈阳自动化研究所以制造环境应用多机器人装配为背景,建立了一个采用集中与分散相结合的分层体系结构的多机器人协作装配系统。在多机器人通信方面也做出了大量的研究。我国提出了异构多机器人系统C/S(客户端/服务器)通信的一般模型,使用socket方式通讯;利用IEEE 802.11无线通信的方式,主机器人将自身位置信息广播给从机器人[3]。
上述研究机器人有的是同种结构的,有的虽然是结构不同,却使用相同的无线通信模式。但现在的机器人种类越来越多,机器人的任务越来越复杂,机器人系统的通信环境也越来越多变,不仅需要有线网络、还要有无线网络等,功能多变的机器人及复杂的通信环境之间的通信不能通过简单的通信协议就可以实现机器人间的交互,因此我们急需设计能满足多种形式的通信的协议。
2 问题描述
在由多个不同类型的机器人组成地一个异构多机器人系统中,不同的机器人有不同的通信方法,例如有的机器人采用有线通信模式,有的采用无线通信模式。有的机器人采用串行RS232、RS485总线通信。这些不同就增加了机器人之间交互的难度,使系统变得十分繁杂。因此需要对异构多机器人系统设计并制定一致性交互的通信协议,如图1所示。
图1 一致性交互协议框架
3 异构多机器交互协议的制定与实现
在一个异构多机器人系统中,各个机器人的通信协议被制造商私有定制固化到各自的机器人系统中,在通讯的过程中通过私有协议与控制系统进行交互时,会在协议处理上花费很多时间。因此,在不同功能、不同交互接口的设备共同存在的同一系统中,为了简化协议处理的过程,需要设计和制定一个方便的交互协议,便于协作信息在系统中通信,从实现有效控制,共同完成给定的任务。
3.1 异构多机器人交互协议的制定
为了实现异构设备之间的一致化通信,需要为上层应用提供一种一致化通信接口,隐藏各种不同下层特定设备协议细节,为应用程序设计和实现提供一致化的通信接口。一致化协议需要遵循协议内容语义不变,异构设备各自的协议不变等基本原则。
针对研究的异构多机器人构成的系统中,有采用Modbus串行协议通信的RS232/RS485串口总线;有以太网协议的网络通信,还有采用ZigBee协议的无线通信。这些不同协议的机器人共同构成了一个为解决某个复杂问题的异构多机器人协作系统。由于不同机器人通过该系统和PC机进行交互,因此要求机器人能准确接收、识别上位机发送的命令,还要能准确无误地向上位机返回实时信息。
在一致性交互协议中,为了标识协议数据单元的开始,设计了起始位;字段标识不同的机器人,设计了机器人编号字段;通过结束位标识协议数据单元是否完成,通过校验位判断数据传输是否正确;还有命令类型、数据类型、数据长度、数据等单元。其协议的数据单元(Protocol data unit)格式如表1所示。
(1)起始位:标识协议数据单元的开始
(2)机器人编号:标识系统中的机器人。
表1 数据发送协议数据单元
(3)协议类型:标识机器人所使用的私有协议。
(4)命令类型:表示主机发给各终端机的命令,各命令的含义一般代表一定 的意义。
(5)数据类型:标识机器人对应命令所发送的数据的类型。
(6)数据长度:表示协议数据单元的长度。本协议各条命令的长度是不等长的,具体长度由此字来确定。如果是1个字节,则最长不能超过252字节。长度字的长度是从地址字开始到信息字结束之间所有字节的字节数 。
(7)数据:要传输的数据。为了编程的方便,设定统一的数据长度不够长度的填充为(为0)来补齐。
(8)校验位:校验码的字节是从地址字开始,到信息字结束之间所有字节的字节数。校验码进行判别接收信息是否出错。校验采用CRC-16校验方法。
(9)结束位:标识协议数据单元的结束。
3.2 异构多机器人交互协议的实现
在一致性交互协议的基础上,下面论述一致性交互协议的实现。交互协议的实现包括数据的打包、数据的解析和相应指令的生成。其协议实现框架如图2所示。
图2 协议实现的框架图
在交互协议操作平台上发送控制机器人的指令,这些控制指令被封装到以太网帧,发送到以太网中,网络中的交互协议解析器通过以太网接口接收到数据。这些以太网帧数据包,在交互协议解析器的中心单元进行处理,通过对报文的逐层解析,读取出发送给目标机器人的指令数据。根据实际控制机器人的通讯协议,将控制机器人的指令组装成相对应的协议报文,通过对应的接口发送出去。
3.2.1 数据的打包
在PC端上发送信息的应用软件,填写机器人的编号和需要机器人执行的指令,组成发送协议数据单元PDU并启动定时器。将相关的信息通过上述的协议格式进行封装,最后将协议数据单元进行TCP/IP协议封装组成数据报文。数据报文经过介质发送到交互协议解析器。如果报文校验出错,则重新执行,直到PC端发送出相应的报文,其打包过程如图3。
图3 数据打包过程
3.2.2 数据的解析
交互协议解析器接收到IP数据报文后,对报文进行逐层解析,解析到协议数据单元(PDU)后取出应用程序数据,其解析过程如图4。
图4 数据的解析
解析报文的步骤:
(1)在交互协议解析器中,接收端口一直监听网络中是否有报文发过来,如果监听有报文发送过来,则用消息队列用来接受并保存收到网络中传过来的以太网帧,并查看消息队列中的消息个数,如果原始消息队列不为空,则从消息队列中读取一条以太网帧进行解析;
(2)从取出来的以太网帧中查找IP消息头标识符,如果查找到相应的标识符,则对该报文进一步的处理,根据IP消息头标识符解析出TCP数据报文,否则放弃该报文,重新从消息队列中取出一条报文;
(3)从解析出来的TCP报文中的查找TCP消息头标识符,如果查找到了,则将TCP数据报文中的协议数据单元解析出来,否则放弃该报文,重新从消息队列中取出一条报文;
(4)查找协议数据单元中的消息头标识符,如果查找到了,则将协议数据单元中的应用程序数据解析出来,否则放弃该报文,重新从消息队列中取出一条报文;
(5)对取出来的协议数据单元相应字段的数据进行解析,获取相关的信息,例如机器人的编号、相对应的通讯协议类型等,获取这些信息之后,将对机器人控制指令信息放到相对应的通讯协议报文中,并通过相对应的端口发送出去,实现对机器人的控制。
3.2.3 数据生成指令并发送
数据生成指令根据一致性交互协议中的信息和机器人各个私有协议的格式,将交互协议中所携带的数据信息部分按照私有协议的格式配置输出。在生成相应指令的生成片中,不同的协议中包含的机器人编号、协议类型、命令类型、数据类型和数据等不完全相同,为了能尽可能的全面地描述协议的各个字段,设计了下面的结构体类型。
TypedefstructbitType{
ROBOTID robotid;
PROTOCOL protocol;
COMMANDTYPE commtype;
DATATYPE datatype;
DATA data;
LENGTH length;
CHECKOUT checkout;
END end;
}PROTOCOL;
把数据解析的数据依次复制给结构体的各个字段,然后按照协议类型字段中协商定义的协议类型生成相应的指令。如果protocol==3,则说明该协议是以太网协议,以太网协议的帧格式中需要目的地址dest_add和源地址sour_add,这两项可以在程序中预先获取。然后根据解析出来的机器人编号和本地的机器人编号做比较,如果相同,则通过交互接口发送指令;否则在不发送。
在执行完相应的指令之后,在规定的时间延迟内,向PC端发送返回信号,如果在规定的时间内没有收到返回信号,则提示出错。若PC端收到返回信号,则提示可以准备发送下一条TCP/IP数据包;如果收到错误提示,则需要重新发送上一条TCP/IP数据包。
4 测试与验证
为了对一致性交互协议进行测试并验证,在实验环境中使用了Scara机器人、转台机器人、三维机械臂机器人、拧紧机器人、AGV小车、PA10机器人、气动开关PLC、仿真机器人和视觉机器人组成了集中与分布相结合的异构多机器人系统。基于系统中各个机器人的类型不同、接口互异的特点,利用传输介质、交换机等组建交互系统,采用统一的网络和软件平台互联各个机器人。每个机器人称为“下位机”,其处理的内容包括电机控制、位移移动和视觉数据采集等。如图5所示,每个机器人都可以通过RS485总线、RS232总线、ZigBee、以太网,以各自约定的格式将数据通过一致化协议处理器传输给上位机PC,由上位机对数据进行处理。同样,上位机PC将操作指令通过一致化协议处理器,发送至由RS485总线、RS232总线、ZigBee等协议连接的各机器人,机器人接收上位机发送的指令并控制硬件系统执行。实验采用C/S(Client/Server)结构进行设计,构建ACCESS数据库,使用基于Windows的VC++ MFC编程设计并实现。
图5 异构机器人系统拓扑图
通过工程实践,在搭建的异构机器人系统中,对视觉系统模块、虚拟仿真系统模块、Scara机器人模块、转台机器人模块、三维机械臂机器人模块、气动开关PLC模块、小车机器人模块、PA10机器人模块和拧紧机机器人模块按照一致性交互协议进行通信,精准的实现了各个机器人的功能。在各个机器人协作实现某一复杂的拆检和组装的任务中,实现了问题任务要求的功能,并较好的满足了系统实时性的要求。
4.1 网络丢包测试
在异构机器人系统中,将各种不同的协议格封装成一致性交互协议后,上位机PC向机器人发送数据包时,会出现丢包的问题。如果丢包率过高的话,会对异构机器人控制系统的实时性造成影响,因此丢包率是个很重要的因素。
在搭建的异构机器人系统中,每一次向交互协议解析器发送800个数据报文,这800个报文中包含上述9个不同的机器人的控制指令,总共向交互协议解析器发送10次。统计结果如图6所示。
图6 丢包数统计图
上图横坐标代表10次测试实验,每次实验都发送800个数据包,纵坐标代表对应每次实验的丢包个数。从图中可以看出10次实验的丢包个数分别为1,2,2,1,1,1,1,2,2,2,综合10次实验结果可计算出平均丢包率0.21‰,符合CCSA标准规定的最大丢包率1‰。
通过测试发现,在一致性交互协议通信过程中,丢包率控制在合理的范围内,可以很好的实现对不同机器人交互对象的控制。
4.2 时延测试
在一致性协议的条件下,指令传输过程中需要实现报文解析和不同机器人协议的转换,因此会出现延时。时延是针对在一致性交互协议解析器中,将统一格式的以太网帧转换成不同机器人协议,并发送出去到对应机器人的时间间隔。此次实验使用一致性交互协议解析器和9个拥有私有协议的机器人,同一个机器人的时延数据记录到同一个文件中。通过一致性交互协议解析器,分别向9个机器人发送数据,每一个机器人发送800条数据报,并将延时记录到相对应的文件中。
图8 在协议一致性下时延统计图
上图横坐标代表10次测试实验,每次实验文件中都收集800个时延数据,纵坐标代表对应每次实验的平均转发时延。从图中可以看出10次实验的平均转发时延分别为9.0521654 ms,9.1623547 ms,8.7963172 ms,8.6532145 ms, 8.9632541 ms, 9.3298417 ms,9.0021415 ms, 8.9965421 ms, 8.7569842 ms, 9.1254875 ms,综合10次实验结果可计算出平均转发时延为8.9838302 9 ms。
图9 分别向各个机器人发送的时延统计图
上图代表向各个机器人分别发送800个数据,统计一下产生的延时,每次实验文件中都收集800个时延数据,纵坐标代表对应每次实验的平均转发时延。从图中可以看出10次实验的平均转发时延分别为6.314 256 2 ms,6.564 312 1 ms,5.921 435 6 ms,6.142 387 4 ms,6.002 141 5 ms,6.329 841 713 ms,5.996 542 123 ms,6.125 487 5 ms,5.963 254 1 ms,6.052 165 4 ms,综合10次实验结果可计算出平均转发时延为6.141 182 364 ms,通过两次对比,能满足实时性要求。
虽然一致性协议会在控制命令下发的过程中出现延,通过实验这些延时在可以接受的范围区间内,对系统的实际运行,不会造成太大的延误。
5 结论
本文基于 Visual Studio2010的开发环境设计了一种异构机器人交互协议接口,实现了不同机器人之间通信协议的一致化协议制定、数据的打包和解析。在此系统中,上位机PC机只需要制定具体的通信协议即可实现数据传输,不需要考虑底层数据传输格式。此一致性协议通用性好、数据传输可靠,以较小的丢包率保证上位机PC和机器人之间数据的可靠传输。
[1] 吴 军,徐 昕,连传强,贺汉根.协作多机器人系统研究进展综述[J].CAAI Transactions on Intelligent Systems,2011,6(1):13-27.
[2] NISSAN .Nissan EPORO robot car “Goes to School” on collision-free driving by mimickingfishbehavior[EB/OL].[2010-06-11].http://www.nissan-global.com/EN/NEWS/2009/_STORY/091001-01-e.html.
[3] 倪克垒.基于IEEE802.11无线局域网多机器人通信技术的研究[D].南京:南京邮电大学,2010.
[4] 赵志强,杨旭东.一种通用通信模块的设计以应用[J].自动化仪表,2014,35(4):53-54.
[5] 任孝平,蔡自兴,陈爱斌.多移动机器人通信系统研究进展[J].控制与决策,2010,25(3):327-332.
[6] 施文灶,王 平.基于案例的异构多机器人系统的协作研究[J].网络新媒体科学,2012,1(5):50-53.
[7] Lucia G. Menezo, Valentin Puente, Jose-Angel Gregorio. Flask Coherence: A Morphable Hybrid Coherence Protocol Balance Energy[J], Performance and Scalability. IEEE,2015,14(15):198-209.
[8] 王首浩,仲 悦,张 巍,王怀侠.一种用于分布式控制的光纤通信协议设计与仿真[J].计算机测量与控制,2014, 22(9):3044-3046.
[9] Joseph M. Guerrero, YaosuoXue. Smart Inverters for Utility and Industry Applications[J]. PCIM Europe 2015,2015:277-284.
[10] Feng Zhang, Alei Liang, Haibing Guan. Performance of a Multi-channel MAC Protocol Implemented in Multi-robot System[A]. 2011 Seventh International Conference on Mobile Ad-hoc and Sensor Networks[C]. 2011,5(8):209-214.
[11] Lluc Alvarez,LluísVilanova, Marc Gonzàlez, Nacho Navarro, Xavier Martorell. Hardware-Software Coherence Protocol for theCoexistence of Caches and Local Memories [J].IEEE Transactions on Computers,2015,6(4):152-165.
An Interactive Protocol for Heterogeneous Multi-robot System
Ma Li1,2, Zheng Junge1,2, Yang Yingang3,Zhang Yongmei1,2
(1.College of Computer Science and Technology, North China University of Technology, Beijing 100144,China;2.Beijing Key Laboratory on Integration and Analysis of Large-scale Stream Data,Beijing 100144,China;3.Beijing Information Institute of Technology, Beijing 100085,China)
Along with the wide application of the robot in various fields and the variety of tasks,the sinloggle robot task is limited by the scale and complexity of the task. The use of multiple robots to complete the task is one of the effective ways to solve problems. In multi-robot control system,different tasks often require different robots to perform, which have different structures and functions generally. And industrial robots follow a private agreement. In the operation of a multi robot system, the communication protocol in the system varies with different robots, which increases the difficulty of cooperation in the control process. Designing and developing a unified interactive protocol that is convenient to communicate with the information in the system and to accomplish a given task together. According to different robot private control protocol,on the basis of the consistent interaction interface, the interaction between different industrial robots is designed and implemented. Through the engineering practice, it is proved that this consistency interaction protocol is effective for the heterogeneous robot system. It has the reference function to complete the complex tasks.
robot control system; private protocol; consistent interaction; interaction protocol
2016-01-18;
2016-02-29。
国家自然科学基金项目(61300171,61371143);部委预研项目(513060803)。
马 礼(1968-),男,山西朔州人,博士,教授,硕士生导师。主要从事分布式系统、多agent机器人系统方向的研究。
1671-4598(2016)07-0286-05
:10.16526/j.cnki.11-4762/tp
TN713 文献标识码:A