Ros跨平台的通信方法和系统

文档序号:195818 发布日期:2021-11-02 浏览:13次 >En<

阅读说明:本技术 Ros跨平台的通信方法和系统 (ROS cross-platform communication method and system ) 是由 刘星 翁明 杨伟 于 2021-07-30 设计创作,主要内容包括:本申请涉及一种ROS跨平台的通信方法和系统。该方法包括:将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据;将所述字节数组数据按照预设格式进行封装形成待发送的字节流;将所述待发送的字节流发送至ROS服务端,由所述ROS服务端将所述待发送的字节流转发至接收终端,所述接收终端接收到所述字节流后进行解析和反序列化操作,得到消息;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端。由于发送终端进行序列化操作后得到的是二进制字节数组数据,即采用的是二进制字节的序列化方式,因为二进制字节的序列化方式的速度快,能耗低,因此,该方法能够提高ROS终端和非ROD终端之间跨平台通信的通信效率。(The application relates to a cross-platform ROS communication method and system. The method comprises the following steps: serializing a message to be sent based on a first data format to obtain binary byte number data; packaging the byte data according to a preset format to form a byte stream to be sent; sending the byte stream to be sent to an ROS server, forwarding the byte stream to be sent to a receiving terminal by the ROS server, and analyzing and deserializing the received byte stream by the receiving terminal to obtain a message; one of the transmitting terminal and the receiving terminal is an ROS terminal, and the other one is a non-ROS terminal. Because the transmitting terminal obtains binary byte data after the serialization operation, namely a binary byte serialization mode is adopted, the speed of the binary byte serialization mode is high, and the energy consumption is low, the method can improve the communication efficiency of cross-platform communication between the ROS terminal and the non-ROD terminal.)

ROS跨平台的通信方法和系统

技术领域

本申请涉及通信技术领域,特别是涉及一种ROS跨平台的通信方法和系统。

背景技术

ROS(Robot Operating System,机器人软件平台)当前最为流行的分布式软件框架,能够灵活的应用于无人驾驶、人工智能,智能机器人等行业。随着无人驾驶、智能机器人等行业的发展,对ROS的要求也越来越高。但是ROS的分布式终端必须要有ROS环境,而随着应用的广泛,人们对非ROS的终端也可以接入ROS的需求也越来越高。

目前所提供的基于非ROS环境的跨平台方案,由于涉及到两个环境协议的转换,转换过程对数据处理非常耗时,导致通信效率差。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高通信效率的ROS跨平台的通信方法和系统。

一种ROS跨平台的通信方法,应用于发送终端,所述方法包括:

将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据;

将所述字节数组数据按照预设格式进行封装形成待发送的字节流;

将所述待发送的字节流发送至ROS服务端,由所述ROS服务端将所述待发送的字节流转发至接收终端,所述接收终端接收到所述字节流后进行解析和反序列化操作,得到消息;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端。

一种ROS跨平台的通信方法,应用于接收终端,所述方法包括:

接收ROS服务端发送字节流,其中,所述字节流由发送终端对消息进行序列化和封装处理得到;

对所述字节流进行解析,获得序列化所使用的数据格式以及字节数组数据;

若序列化所使用的数据格式为第一数据格式,则解析得到的所述字节数组数据为二进制的字节数组数据,将所述字节数组数据基于第一数据格式进行反序列化,得到消息。

一种ROS跨平台的通信,包括:

序列化模块,用于将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据;

封装模块,用于将所述字节数组数据按照预设格式进行封装形成待发送的字节流;

发送模块,用于将所述待发送的字节流发送至ROS服务端,由所述ROS服务端将所述待发送的字节流转发至接收终端,所述接收终端接收到所述字节流后进行解析和反序列化操作,得到消息;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端。

一种ROS跨平台的通信系统,包括发送终端、ROS服务端和接收终端;

所述发送终端和所述接收终端分别与所述ROS服务端通信;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端;

所述发送终端存储器和处理器,所述存储器存储有计算机程序,所述处理器执行发送终端所实施的ROS跨平台的通信方法的步骤;

所述接收终端存储器和处理器,所述存储器存储有计算机程序,所述处理器执行接收终端所实施的ROS跨平台的通信方法的步骤。

上述ROS跨平台的通信方法和系统,利用ROS服务端建立ROS平台和非ROS平台的通信,发送终端将待发送的消息基于第一数据格式进行序列化,得到的是二进制字节数组数据,对字节数组数据按照预设格式进行封装后形成待发送的字节流。由于发送终端进行序列化操作后得到的是二进制字节数组数据,即采用的是二进制字节的序列化方式,因为二进制字节的序列化方式的速度快,能耗低,因此,该方法能够提高ROS终端和非ROD终端之间跨平台通信的通信效率。

附图说明

图1为一个实施例中ROS跨平台的通信系统的系统架构图;

图2为一个实施例中ROS跨平台的通信方法的流程示意图;

图3为另一个实施例中ROS跨平台的通信方法流程示意图;

图4为一个实施例中ROS跨平台的通信装置的结构框图;

图5为另一个实施例中ROS跨平台的通信装置的结构框图

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的ROS跨平台的通信方法,可以应用于如图1所示的ROS跨平台的通信系统中。其中,ROS跨平台的通信系统包括ROS终端102、ROS服务端104和非ROS终端106。ROS终端102与ROS服务端104连接,ROS服务端104与非ROS终端106连接。具体的,ROS终端为需要安装ROS环境的终端,ROS(Robot Operating System,机器人软件平台)当前最为流行的分布式软件框架,能够灵活的应用于无人驾驶、人工智能,智能机器人等行业。非ROS终端为不需要安装ROS环境的终端。ROS服务端是一个安装了ROS环境的特殊终端,是ROS集群中的一个终端同时也扮演非ROS终端的服务端,是ROS终端与非ROS终端数据交互的桥梁。具体地,ROS服务端安装有ROSBridge服务。ROS终端和非ROS终端基于WebSocket与ROSBridgeServer连接实现间接非ROS平台、ROS平台的连接,从而实现ROS终端和非ROS终端的跨平台通信。

其中,为实现ROS终端与非ROS终端的通信,可将ROS终端或非ROS终端中发送消息的一方作为发送终端,接收消息的终端作为接收终端。也就是说,当ROS终端发送消息时,ROS终端作为发送终端,非ROS终端作为接收终端。当非ROS终端发送消息时,非ROS终端作为发送终端,ROS终端作为接收终端。ROS环境的终端是指安装了ROS环境的终端。

其中,终端102可以但不限于是各种安装有ROS的计算机设备,如无人驾驶车辆、智能机器人等。

在一个实施例中,如图2所示,提供了一种ROS跨平台的通信方法,以该方法应用于发送终端例进行说明,包括以下步骤:

步骤202,将待发送的消息基于第一数据格式进行序列化,得到二进制字节数组数据。

具体地,发送终端可以是ROS终端或非ROS终端中的任一方。当ROS终端发送消息时,ROS终端作为发送终端,非ROS终端作为接收终端。当非ROS终端发送消息时,非ROS终端作为发送终端,ROS终端作为接收终端。

其中,ROS终端是指安装了ROS环境的终端,ROS(Robot Operating System,机器人软件平台)当前最为流行的分布式软件框架,能够灵活的应用于无人驾驶、人工智能和智能机器人等行业。非ROS终端为不需要安装ROS环境的终端。在一个实施例中,ROS终端可以为自动驾驶、机器人控制系统中的控制设备。非ROS终端为自动驾驶、机器人控制系统中的信号采集设备,如各种传感器。

其中,待发送的消息包括了指令,以及指令内容。以应用于自动驾驶场景为例,待发送的消息中的指令可以为转向指令,指令内容为向右转。

其中,将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据。第一数据格式区别于Xml、Json序列化的方式。Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。

而采用第一数据格式进行序列化后,得到的是二进制的字节数组数据,即采用的是二进制字节的序列化方式,用字段索引和字段类型通过算法计算得到字段之前的关系映射,从而达到更高的时间效率和空间效率,特别适合对数据大和传输速率比较敏感的场合使用。

在一个实施例中,第一数据格式采用Protocbuf。Protocbuf,(Google ProtocolBuffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。

步骤S204,将所述字节数组数据按照预设格式进行封装形成待发送的字节流。

其中,按预设格式进行封装后,方便传输。其中,预设格式包括了指令字段、序列化的数据格式以及指令内容。将字节数组数据按照预设格式进行封装形成待发送的字节流。

步骤S206,将所述待发送的字节流发送至ROS服务端,由所述ROS服务端将所述待发送的字节流转发至接收终端,所述接收终端接收到所述字节流后进行解析和反序列化操作,得到消息;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端。

其中,ROS服务端是安装有ROSBridge,rosbridge(rosbridge_suite)是ros官方为开发者提供的一个用于非ros系统和ros系统进行交互通信的功能包。

ROS服务端在接收到发送终端发送的字节流后,将待发送的字节流分发至接收终端。其中,接收终端可以为ROS终端或非ROS终端中的任一种。当ROS终端发送消息时,ROS终端作为发送终端,非ROS终端作为接收终端。当非ROS终端发送消息时,非ROS终端作为发送终端,ROS终端作为接收终端。

当接收终端接收到字节流后,对字节流按照预设格式进行解析,得到字节数组数据,并对字节数组数据基于对应的数据格式进行反序列化得到消息。可以理解的是,反序列化是序列化的反向操作,解析是封装的反向操作。也就是说,反序列化与序列化所采用的数据格式相同。

上述的跨平台的通信方法,利用ROS服务端建立ROS平台和非ROS平台的通信,发送终端将待发送的消息基于第一数据格式进行序列化,得到的是二进制字节数组数据,对字节数组数据按照预设格式进行封装后形成待发送的字节流。由于发送终端进行序列化操作后得到的是二进制字节数组数据,即采用的是二进制字节的序列化方式,因为二进制字节的序列化方式的速度快,能耗低,因此,该方法能够提高ROS终端和非ROD终端之间跨平台通信的通信效率。

在另一个实施例中,跨平台的通信方法还包括:获取待发送的消息,当待发送的消息的数据量大于阈值时,执行将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据的步骤;当待发送的消息的数据量不大于阈值时,将待发送的消息基于第二数据格式进行序列化,得到字符串的字节数组数据。

也就是说,本实施例中,除了提供基于第一数据格式进行序列化的方法外,还提供另一种序列化的方法,即基于第二数据格式进行序列化,第二数据格式进行序列化得到的是字符串的字节数据数组,也就是说,第二数据格式是一种基于字符串的序列化方式。具体地,第二数据格式是ROSBridge所提供的用于序列化的数据格式。

其中,ROS官方提供的ROSBridge方案底层通信方案是使用完全基于JSON数据格式的通信方式。这种方式适用于原始数据量小且实时性要求不高的场景。一旦原始数据数据量大,对数据的实时性要求高的情况,该方案则远远无法满足。其主要原因是底层完全使用JSON数据格式,完全使用JSON格式在原始数据数据量大时主要会产生两方面的负面影响,例如,JSON对原始数据在序列化和反序列化时非常消耗性能,尤其是在强类型类的编成语言中。

针对这一问题,本实施例中,根据待发送的消息的数据量大小决定所使用的反序列的方式,若数据量大于阈值,则将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据。由于反序列化的结果是二进制形式的,即采用的是基于二进制的序列化方式,因而对消息进行序列化和反序列化的速度能够加快且性能消耗也会降低,提升了通信效率。

当数据量不大于阈值时,将待发送的消息基于第二数据格式进行序列化,即当数据量不大于时,使用ROSBridge所提供的用于序列化的数据格式,具体为JSON格式。由于消息的数据量本身比较小,采用该方式并不会对通信造成影响。

本实施例中,通过根据消息的数据量大小决定采用的序列化方式,能够满足通信效率需求的同时,自适应地采用合适的序列化方式,更为智能。也就是说,该方法能够同时兼容两种数据格式的序列化方式,能够扩展性和兼容性的优点。

在另一个实施例中,所述第一数据格式为protocbuf;所述第二数据格式为JSON。可以理解的是,由于protocbuf序列化的方式具有效率高且延迟低的优点,因此,protocbuf是主要的序列化方式,也是在消息对象数据量大时高效率的。而JSON方式是一种兼容和可扩展的方式。

具体地,采用完全基于JSON数据格式的通信方式,还存在技术问题:在原始数据数据量大的情况下,产生的JSON格式数据体积会变得更大从而增加了网络负载,降低了网络的实时性。

针对这一问题,第一数据格式采用protocbuf,protocbuf具有序列化时并不会对原始数据进行特殊的说明的特性,因此,序列化出来的数据几乎与原始数据持平,能够保持原始数据不变的情况下减少格式化后的数据体积,减少网络负载,提升网络的实时性。

在另一个实施例中,所述消息包括指令和指令内容,序列化后的所述字节数组数据包括了指令对应的消息名称,以及指令对应的消息内容;所述将所述字节数组数据按照预设格式进行封装形成待发送的字节流,包括:获取所述字节数组数据中的消息名称以及消息内容;对消息名称不变,将所述消息内容按数据类型字段以及数据字段的结构进行封装,得到消息内容;其中,所述数据类型字段与序列化所使用的数据格式相关。

具体地,将待发送的消息对象通过protocbuf进行序列化,最终产生二进制的字节数组数据;消息对象中包含指令以及指令内容,指令以及指令内容的类型遵从protocbuf的类型,protocbuf的类型是非常丰富的,几乎囊括大部分的数据类型。

ROSBridge本身使用的JSON格式数据,而预设格式中依然沿用该格式即保留消息名称(topic)和消息内容(msg)字段;topic为业务逻辑中字段msg为ROSBridge认识的消息字段。

对于消息名称(topic)字段保持不变,对消息内容(msg)字段进行处理;在msg字段下封装两个字段即数据类型字段(type字段)和数据字段(data字段);type字段放data数据类型的标志,如:protocbuf二进制数据则type字段的值为protoc,json数据则type字段为json。具体的数据格式如下表所示:

表1预设数据格式

上述的ROS跨平台的通信方法,提供一套能够使得ROS终端和非ROS终端提高通信效率的方法,尤其利用protocbuf特性对原始消息进行序列化以及反序列化来从而更好的去存储数据、加工数据以及展示数据。

在另一个实施例中,提供一种ROS跨平台的通信方法,应用于接收终端,如图3所示,包括以下步骤:

S302,接收ROS服务端发送字节流,其中,所述字节流由发送终端对消息进行序列化和封装处理得到。

具体地,发送终端可以是ROS终端或非ROS终端中的任一方。当ROS终端发送消息时,ROS终端作为发送终端,非ROS终端作为接收终端。当非ROS终端发送消息时,非ROS终端作为发送终端,ROS终端作为接收终端。ROS终端是指安装了ROS环境的终端,ROS(RobotOperating System,机器人软件平台)当前最为流行的分布式软件框架,能够灵活的应用于无人驾驶、人工智能和智能机器人等行业。非ROS终端为不需要安装ROS环境的终端。

为实现ROS终端和非ROS终端之间的跨平台通信,发送终端对消息进行序列化和封装处理后,发送至ROS服务端,由ROS服务端进行分发。也就是说,ROS服务端是ROS终端和非ROS终端之间的通信桥梁。

S304,对所述字节流进行解析,获得序列化所使用的数据格式以及字节数组数据。

具体的,解析与封装相对,解析是对封装的反向操作。对字节流进行解析后,获得序列化所使用的数据格式以及字节数组数据。

S306,若序列化所使用的数据格式为第一数据格式,则解析得到的所述字节数组数据为二进制的字节数组数据,将所述字节数组数据基于第一数据格式进行反序列化,得到消息。

具体地,本实施例中提供了至少两种序列化的数据格式,反序列化的数据格式与序列化的数据格式对应。序列化的数据格式由发送终端在进行数据封装时存入字节流内。接收终端在接收到字节流并对字节流进行解析后,得到序列化的数据格式。如果序列化所使用的数据格式为第一数据格式,则解析得到的字节数组数据为二进制的字节数组数据,接收终端根据第一数据格式进行反序列化,得到消息。例如,如果序列化操作所使用的是protocbuf,则采用protocbuf对字节数组数据进行反序列化操作,得到原始的消息供程序使用。

也就是说,该消息发送终端在进行序列化操作时,所采用的是基于二进制的序列化方式。由于反序列化的结果是二进制形式的,即采用的是基于二进制的序列化方式,因而对消息进行序列化和反序列化的速度能够加快且性能消耗也会降低,提升了通信效率。

上述的跨平台的通信方法,利用ROS服务端建立ROS平台和非ROS平台的通信,ROS服务端发送字节流后,对字节流进行解析,获取序列化所使用的数据格式以及字节数组数据,若序列化所使用的数据格式为第一数据格式,则解析得到的字节数组数据为二进制的字节数组数据,也就是说发送终端是采用的是二进制字节的序列化方式,因为二进制字节的序列化方式的速度快,能耗低,因此,该方法能够提高ROS终端和非ROD终端之间跨平台通信的通信效率。

在另一个实施例中,若序列化所使用的数据格式为第二数据格式,则解析得到的所述字节数组数据为字符串的字节数组数据,则将所述字符串的字节数组数据基于第二数据格式进行反序列化,得到消息。

本实施例中,可见发送终端能够采用两种不同的数据格式进行序列化。因此,接收终端根据解析得到的数据格式进行对应的反序列化操作。例如,如果序列化操作所使用的是protocbuf,则采用protocbuf对字节数组数据进行反序列化操作,得到原始的消息供程序使用。如果序列化操作所使用的是JSON,则采用JSON对字节数组数据进行反序列化操作,得到原始的消息供程序使用。

本实施例中,通过序列化的方式,对应的字组数组数据进行反序列化操作,得到原始消息。

在另一个实施例中,对所述字节流进行解析,获得序列化所使用的数据格式以及字节数组数据,包括:对所述字节流进行解析,获取消息名称和消息内容;对所述消息内容按数据类型字段以及数据字段的结构进行解析,获得序列化所使用的数据格式以及字节数组数据。

具体地,解析是对封装的反向操作。具体的数据格式如下表所示:

表1预设数据格式

对预设格式先按照消息名称-消息内容(topic-msg字段)的方式进行解析,重点获取消息内容中的数据类型(type)和数据字段(data字段)中数据,以提供给反序列化操作使用,例如,如果type的值为protoc,则利用protocbuf对data数据进行反序列化得到原始的消息对象供程序使用。如果type的值为json,则data数据为json数据,现有很多技术是使用该方式,在此不再详述。

上述的ROS跨平台的通信方法,提供一套能够使得ROS终端和非ROS终端提高通信效率的方法,尤其利用protocbuf特性对原始消息进行序列化以及反序列化来从而更好的去存储数据、加工数据以及展示数据。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种ROS跨平台的通信装置,包括:

序列化模块402,用于将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据;

封装模块404,用于将所述字节数组数据按照预设格式进行封装形成待发送的字节流;

发送模块406,用于将所述待发送的字节流发送至ROS服务端,由所述ROS服务端将所述待发送的字节流转发至接收终端,所述接收终端接收到所述字节流后进行解析和反序列化操作,得到消息;所述发送终端和所述接收终端中的一个为ROS终端,另一个为非ROS终端。

在另一个实施例中,序列化模块用于获取待发送的消息,当待发送的消息的数据量大于阈值时,将待发送的消息基于第一数据格式进行序列化,得到二进制的字节数组数据;还用于当待发送的消息的数据量不大于阈值时,将待发送的消息基于第二数据格式进行序列化,得到字符串的字节数组数据。

在另一个实施例中,所述第一数据格式为protocbuf;所述第二数据格式为JSON。

在另一个实施例中,所述消息包括指令和指令内容,序列化后的所述字节数组数据包括了指令对应的消息名称,以及指令对应的消息内容;

封装模块,用于获取所述字节数组数据中的消息名称以及消息内容;对消息名称不变,将所述消息内容按数据类型字段以及数据字段的结构进行封装,得到消息内容;其中,所述数据类型字段与序列化所使用的数据格式相关。

在一个实施例中,如图5所示,提供了一种ROS跨平台的通信装置,包括:

接收模块502,用于接收ROS服务端发送字节流,其中,所述字节流由发送终端对消息进行序列化和封装处理得到;

解析模块504,用于对所述字节流进行解析,获得序列化所使用的数据格式以及字节数组数据;

反序列化模块506,用于若序列化所使用的数据格式为第一数据格式,则解析得到的所述字节数组数据为二进制的字节数组数据,将所述字节数组数据基于第一数据格式进行反序列化,得到消息。

在另一个实施例中,反序列化模块,用于若序列化所使用的数据格式为第二数据格式,则解析得到的所述字节数组数据为字符串的字节数组数据,则将所述字符串的字节数组数据基于第二数据格式进行反序列化,得到消息。

在另一个实施例中,解析模块,用于对所述字节流进行解析,获取消息名称和消息内容;对所述消息内容按数据类型字段以及数据字段的结构进行解析,获得序列化所使用的数据格式以及字节数组数据。

关于ROS跨平台的通信装置的具体限定可以参见上文中对于ROS跨平台的通信方法的限定,在此不再赘述。上述ROS跨平台的通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种ROS跨平台的通信方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各实施例的ROS跨平台的通信方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例的ROS跨平台的通信方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于区块链的云边协同打印系统及双向认证方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类