CN107818019B - 用于机器人操作系统的数据同步方法和装置 - Google Patents
用于机器人操作系统的数据同步方法和装置 Download PDFInfo
- Publication number
- CN107818019B CN107818019B CN201610816642.8A CN201610816642A CN107818019B CN 107818019 B CN107818019 B CN 107818019B CN 201610816642 A CN201610816642 A CN 201610816642A CN 107818019 B CN107818019 B CN 107818019B
- Authority
- CN
- China
- Prior art keywords
- data
- communication process
- persistence
- communication
- mentioned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/02—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
- B60R16/023—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
- B60R16/0231—Circuits relating to the driving or the functioning of the vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了用于机器人操作系统的数据同步方法和装置。所述方法的一具体实施方式包括:检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。该实施方式实现了持久化的数据在各个通信进程中的一致性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及用于机器人操作系统的数据同步方法和装置。
背景技术
无人驾驶车辆依靠人工智能、视觉计算、视频摄像头、雷达传感器、激光雷达和全球定位系统的协同合作,让机器人操作系统(ROS,Robot Operating System)在没有任何人类的主动操作下,自动安全的操作无人驾驶车辆。无人驾驶车辆的传感器在车辆出厂前和车辆行驶过程中均需要进行校准,且这些校准数据和无人驾驶车辆的车辆状态都需要进行数据持久化。
然而,机器人操作系统未提供相应的数据持久化机制,现有技术可以通过采用文件形式将数据写入到硬盘中,但是这种方式不够灵活,无法保证更新持久化数据时系统会主动通知机器人操作系统中的各个程序节点,从而带来数据的不一致性和系统异常状况。
发明内容
本申请的目的在于提出一种改进的用于机器人操作系统的数据同步方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于机器人操作系统的数据同步方法,所述方法包括:检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
在一些实施例中,所述确定所述数据是否为持久化的数据,包括:确定代表所述数据的数据持久化的值是否为真值;若是,则确定出所述数据为持久化的数据。
在一些实施例中,在所述检测通信进程间传输数据时是否对数据进行操作之前,所述方法还包括:将代表持久化的数据的数据持久化的值设置为真值,将代表非持久化的数据的数据持久化的值设置为假值。
在一些实施例中,在所述检测通信进程间传输数据时是否对数据进行操作之前,所述方法还包括:接收所述通信进程的注册信息,其中,所述注册信息包括以下至少一项:网络之间互连的协议地址、端口号和通信主题。
在一些实施例中,在所述接收所述通信进程的注册信息之后,所述方法还包括:接收所述通信进程的通信请求;向所述通信进程发送与所述通信进程的通信主题相同的除所述通信进程之外的通信进程的注册消息。
第二方面,本申请提供了一种用于机器人操作系统的数据同步装置,所述装置包括:检测单元,配置用于检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;确定单元,配置用于响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;第一发送单元,配置用于响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
在一些实施例中,所述确定单元进一步配置用于:确定代表所述数据的数据持久化的值是否为真值;若是,则确定出所述数据为持久化的数据。
在一些实施例中,所述装置还包括:设置单元,配置用于将代表持久化的数据的数据持久化的值设置为真值,将代表非持久化的数据的数据持久化的值设置为假值。
在一些实施例中,所述装置还包括:第一接收单元,配置用于接收所述通信进程的注册信息,其中,所述注册信息包括以下至少一项:网络之间互连的协议地址、端口号和通信主题。
在一些实施例中,所述装置还包括:第二接收单元,配置用于接收所述通信进程的通信请求;第二发送单元,配置用于向所述通信进程发送与所述通信进程的通信主题相同的除所述通信进程之外的通信进程的注册消息。
本申请提供的用于机器人操作系统的数据同步方法和装置,通过首先检测机器人操作系统的通信进程是否对数据进行了操作,若是,则进一步检测进行操作的数据是否为持久化的数据,若是,则向其他通信进程发送该数据的变更消息,从而使得持久化的数据在各个通信进程中的一致性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于机器人操作系统的数据同步方法的一个实施例的流程图;
图3是根据本申请的用于机器人操作系统的数据同步方法的又一个实施例的流程图;
图4是根据本申请的用于机器人操作系统的数据同步装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于机器人操作系统的数据同步方法或装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括车载终端设备101、云服务器103和网络102。网络102用以在车载终端设备101和云服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
云服务器103可以是提供各种服务的服务器,例如可以存储车载终端设备101上的标定校准数据和车辆状态的服务器。
车载终端设备101上可以安装有无人驾驶车辆的数据检测系统和消息发送系统,当数据检测系统检测出变化的数据为持久化的数据时,则消息发送系统可以向除对上述数据进行操作的其它通信进程发送上述数据的变更消息。车载终端设备101可以采用改进的机器人操作系统,通过车内各模块的协同配合,将持久化的数据的变更消息发送给其它通信进程以供其它通信进程进行持久化的数据的更新,同时也发送给云服务器103以供云服务器进行持久化的数据的存储。
需要说明的是,本申请实施例所提供的用于机器人操作系统的数据同步方法一般由车载终端设备101执行,相应地,用于机器人操作系统的数据同步装置一般设置于车载终端设备101中。
应该理解,图1中的车载终端设备、网络和云服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的车载终端设备、网络和云服务器。车载终端设备也可以单独运行不需要云服务器和网络。
继续参考图2,示出了根据本申请的用于机器人操作系统的数据同步方法的一个实施例的流程200。所述的用于机器人操作系统的数据同步方法,包括以下步骤:
步骤201,检测通信进程间传输数据时是否存在对数据的操作。
在本实施例中,用于机器人操作系统的数据同步方法运行于其上的操作系统(例如图1所示的车载控制器中的机器人操作系统)中可以存在管理进程和多个通信进程,上述管理进程中可以存在参数服务器(Parameter Server),上述参数服务器可以用来存储和维护机器人操作系统运行过程中的参数,例如,中间状态变量、校准信息等。上述操作系统可以检测通信进程之间传输数据时是否存在对上述数据的操作,其中,上述操作可以包括更新数据、删除数据和保存数据中的至少一项。
在本实施例中,上述操作系统中的通信进程可以采用统一的XML-RPC(XML RemoteProcedure Call,XML远程过程调用)API(Application Programming Interface,应用程序编程接口)来完成对数据进行的操作,上述XML-RPC API是使用HTTP(Hyper Text TransferProtocol,超文本传输协议)作为传输协议,XML(可扩展标记语言)作为传送信息的编码格式的远程过程调用程序接口,其中,上述RPC是一种在本地机器上调用远端机器上的一个过程(方法)的技术,一个RPC系统包括两个部分,即RPC Client(远程过程调用客户端)和RPCServer(远程过程调用服务端),RPC Client用来向RPC Server调用方法,并接收方法的返回数据,RPC Server用于响应RPC Client的请求,执行方法并返回方法的执行结果;上述XML是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言;上述API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
在本实施例中,上述操作系统的通信进程进行操作的数据可以采用统一的Key-Value数据结构,并且可以支持各种基本的数据类型以及用户自定义的数据类型,同时还支持数据结构的深层次的嵌套。
在本实施例的一些可选的实现方式中,上述操作系统可以在存储数据时,将代表持久化的数据的数据持久化的值(Persist)设置为真值(T,True),同时将代表非持久化的数据的数据持久化的值设置为假值(F,False)。
步骤202,响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定数据是否为持久化的数据。
在本实施例中,响应于检测出通信进程间传输数据时存在对数据进行的操作,则上述操作系统可以确定上述数据是否为持久化的数据,其中,上述持久化的数据是指在可永久保存的存储设备中保存的对象,例如,将数据存储在磁盘中、闪存(Flash Memory)中和XML数据文件中等。
在本实施例的一些可选的实现方式中,持久化的数据与非持久化的数据可以通过接口标志位进行区别,机器人操作系统在存储各个参数时可以根据接口标志位为各个数据设置持久化或非持久化的属性。上述操作系统可以确定代表上述数据的数据持久化的值是否为真值,若确定出上述值是真值(即Persist=True),则上述操作系统可以确定出上述数据为持久化的数据;若判断出上述值是假值(即Persist=False),则上述操作系统可以确定出上述数据为非持久化的数据。
步骤203,响应于确定出数据为持久化的数据,则向除通信进程之外的通信进程发送数据的变更消息。
在本实施例中,响应于确定出上述数据为持久化的数据,则上述操作系统可以向除上述通信进程之外的其它通信进程发送上述持久化的数据的变更消息,以供其它通信进程根据上述变更消息对相应的数据进行更新,时刻保证持久化的数据在各个通信进程的一致性。
进一步参考图3,其示出了用于机器人操作系统的数据同步方法的又一个实施例的流程300。该用于机器人操作系统的数据同步方法的流程300,包括以下步骤:
步骤301,接收通信进程的注册信息。
在本实施例中,用于机器人操作系统的数据同步方法运行于其上的操作系统(例如图1所示的车载控制器中的机器人操作系统)可以首先启动操作系统的参数服务器;之后,可以启动上述通信进程;然后,接收通信进程的注册消息,其中,上述注册消息可以包括网络之间互连的协议(IP)地址、端口号(Port Number)和通信主题(Topic)中的至少一项,上述通信主题可以包括通信主题名称和通信主题大小等。上述操作系统在启动通信进程时,也可以设置参数值。
步骤302,接收通信进程的通信请求。
在本实施例中,上述操作系统可以接收上述通信进程的通信请求,之后,上述操作系统可以查找是否存在与上述通信进程的通信主题相同的其它通信进程,如果存在,则检测其它通信进程是否处于可以通信的状态。
步骤303,向通信进程发送与通信进程的通信主题相同的除通信进程之外的通信进程的注册消息。
在本实施例中,在步骤302查找到与上述通信进程的通信主题相同的其它通信进程,且上述其它通信进程处于可以通信的状态,则上述操作系统可以向上述通信进程发送上述其它通信进程的注册消息(例如,IP地址、端口号和通信主题等)以供上述通信进程与其他通信进程建立通信连接。
步骤304,检测通信进程间传输数据时是否存在对数据的操作。
在本实施例中,上述操作系统中可以存在管理进程和多个通信进程,上述管理进程中可以存在参数服务器,上述参数服务器可以用来存储和维护机器人操作系统运行过程中的参数,例如,中间状态变量、校准信息等。上述操作系统可以检测通信进程之间传输数据时是否存在对上述数据的操作,其中,上述操作可以包括更新数据、删除数据和保存数据中的至少一项。
在本实施例中,上述操作系统中的通信进程可以采用统一的XML-RPC API来完成对数据进行的操作,上述XML-RPC API是使用HTTP作为传输协议,XML作为传送信息的编码格式的远程过程调用程序接口,其中,上述RPC是一种在本地机器上调用远端机器上的一个过程(方法)的技术,一个RPC系统包括两个部分,即RPC Client和RPC Server,RPC Client用来向RPC Server调用方法,并接收方法的返回数据,RPC Server用于响应RPC Client的请求,执行方法并返回方法的执行结果;上述XML是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言;上述API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
在本实施例中,上述操作系统的通信进程进行操作的数据可以采用统一的Key-Value数据结构,并且可以支持各种基本的数据类型以及用户自定义的数据类型,同时还支持数据结构的深层次的嵌套。
步骤305,响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定数据是否为持久化的数据。
在本实施例中,响应于检测出通信进程间传输数据时存在对数据进行的操作,则上述操作系统可以确定上述数据是否为持久化的数据,其中,上述持久化的数据是指在可永久保存的存储设备中保存的对象,例如,将数据存储在磁盘中、闪存中和XML数据文件中等。
步骤306,响应于确定出数据为持久化的数据,则向除通信进程之外的通信进程发送数据的变更消息。
在本实施例中,响应于确定出上述数据为持久化的数据,则上述操作系统可以向除上述通信进程之外的其它通信进程发送上述持久化的数据的变更消息,以供其它通信进程根据上述变更消息对相应的数据进行更新,时刻保证持久化的数据在各个通信进程的一致性。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于机器人操作系统的数据同步方法的流程300突出了接收通信进程的注册请求的步骤301、接收通信进程的通信请求的步骤302和向通信进程发送与通信进程的通信主题相同的除通信进程之外的通信进程的注册消息的步骤303。由此,本实施例描述的方案可以在向其它通信进程发送持久化的数据的变更消息之前,建立与通信进程的通信连接,以便保证持久化的数据在各个通信进程中的一致性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于机器人操作系统的数据同步装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的用于机器人操作系统的数据同步装置400包括:检测单元401、确定单元402和第一发送单元403。其中,检测单元401配置用于检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;确定单元402配置用于响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;第一发送单元403配置用于响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
在本实施例中,用于机器人操作系统的数据同步装置400的检测单元401中可以存在管理进程和多个通信进程,上述管理进程中可以存在参数服务器,上述参数服务器可以用来存储和维护机器人操作系统运行过程中的参数,例如,中间状态变量、校准信息等。上述检测单元401可以检测通信进程之间传输数据时是否存在对上述数据的操作,其中,上述操作可以包括更新数据、删除数据和保存数据中的至少一项。
在本实施例中,响应于上述检测单元401检测出通信进程间传输数据时存在对数据进行的操作,则上述确定单元402可以确定上述数据是否为持久化的数据,其中,上述持久化的数据是指在可永久保存的存储设备中保存的对象,例如,将数据存储在磁盘中、闪存中和XML数据文件中等。
在本实施例中,响应于上述确定单元402确定出上述数据为持久化的数据,则上述第一发送单元403可以向除上述通信进程之外的其它通信进程发送上述持久化的数据的变更消息,以供其它通信进程根据上述变更消息对相应的数据进行更新,时刻保证持久化的数据在各个通信进程的一致性。
在本实施例的一些可选的实现方式中,持久化的数据与非持久化的数据可以通过接口标志位进行区别,机器人操作系统在存储各个参数时可以根据接口标志位为各个数据设置持久化或非持久化的属性。上述确定单元402可以确定代表上述数据的数据持久化的值是否为真值,若确定出上述值是真值,则上述操作系统可以确定出上述数据为持久化的数据;若判断出上述值是假值,则上述操作系统可以确定出上述数据为非持久化的数据。
在本实施例的一些可选的实现方式中,用于机器人操作系统的数据同步装置400还可以包括设置单元404,上述设置单元404可以在存储数据时,将代表持久化的数据的数据持久化的值设置为真值,同时将代表非持久化的数据的数据持久化的值设置为假值。
在本实施例的一些可选的实现方式中,用于机器人操作系统的数据同步装置400还可以包括第一接收单元405,上述第一接收单元405可以首先启动操作系统的参数服务器;之后,可以启动上述通信进程;然后,接收通信进程的注册消息,其中,上述注册消息可以包括网络之间互连的协议地址、端口号和通信主题中的至少一项,上述通信主题可以包括通信主题名称和通信主题大小等。上述第一接收单元405在启动通信进程时,也可以设置参数值。
在本实施例的一些可选的实现方式中,用于机器人操作系统的数据同步装置400还可以包括第二接收单元406和第二发送单元407。上述第二接收单元406可以接收上述通信进程的通信请求,之后,上述第二接收单元406可以查找是否存在与上述通信进程的通信主题相同的其它通信进程,如果存在,则检测其它通信进程是否处于可以通信的状态;在上述第二接收单元406查找到与上述通信进程的通信主题相同的其它通信进程,且上述其它通信进程处于可以通信的状态,则上述第二发送单元407可以向上述通信进程发送上述其它通信进程的注册消息以供上述通信进程与其他通信进程建立通信连接。
下面参考图5,其示出了适于用来实现本申请实施例的装置的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括检测单元、确定单元和第一发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。例如,检测单元还可以被描述为“检测通信进程间传输数据时是否存在对数据的操作的单元”。
作为另一方面,本发明还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中上述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个设备执行时,使得上述设备:检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种用于机器人操作系统的数据同步方法,其特征在于,所述方法包括:
检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;
响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;
响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
2.根据权利要求1所述的方法,其特征在于,所述确定所述数据是否为持久化的数据,包括:
确定代表所述数据的数据持久化的值是否为真值;
若是,则确定出所述数据为持久化的数据。
3.根据权利要求2所述的方法,其特征在于,在所述检测通信进程间传输数据时是否对数据进行操作之前,所述方法还包括:
将代表持久化的数据的数据持久化的值设置为真值,将代表非持久化的数据的数据持久化的值设置为假值。
4.根据权利要求1所述的方法,其特征在于,在所述检测通信进程间传输数据时是否对数据进行操作之前,所述方法还包括:
接收所述通信进程的注册信息,其中,所述注册信息包括以下至少一项:网络之间互连的协议地址、端口号和通信主题。
5.根据权利要求4所述的方法,其特征在于,在所述接收所述通信进程的注册信息之后,所述方法还包括:
接收所述通信进程的通信请求;
向所述通信进程发送与所述通信进程的通信主题相同的除所述通信进程之外的通信进程的注册消息。
6.一种用于机器人操作系统的数据同步装置,其特征在于,所述装置包括:
检测单元,配置用于检测通信进程间传输数据时是否存在对数据的操作,其中,所述操作包括以下至少一项:更新数据、删除数据和保存数据;
确定单元,配置用于响应于检测出通信进程间传输数据时存在对数据的操作,则进一步确定所述数据是否为持久化的数据;
第一发送单元,配置用于响应于确定出所述数据为持久化的数据,则向除所述通信进程之外的通信进程发送所述数据的变更消息。
7.根据权利要求6所述的装置,其特征在于,所述确定单元进一步配置用于:
确定代表所述数据的数据持久化的值是否为真值;
若是,则确定出所述数据为持久化的数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
设置单元,配置用于将代表持久化的数据的数据持久化的值设置为真值,将代表非持久化的数据的数据持久化的值设置为假值。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一接收单元,配置用于接收所述通信进程的注册信息,其中,所述注册信息包括以下至少一项:网络之间互连的协议地址、端口号和通信主题。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收单元,配置用于接收所述通信进程的通信请求;
第二发送单元,配置用于向所述通信进程发送与所述通信进程的通信主题相同的除所述通信进程之外的通信进程的注册消息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816642.8A CN107818019B (zh) | 2016-09-12 | 2016-09-12 | 用于机器人操作系统的数据同步方法和装置 |
US15/409,967 US11126639B2 (en) | 2016-09-12 | 2017-01-19 | Method and apparatus for synchronizing data in a robot operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816642.8A CN107818019B (zh) | 2016-09-12 | 2016-09-12 | 用于机器人操作系统的数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107818019A CN107818019A (zh) | 2018-03-20 |
CN107818019B true CN107818019B (zh) | 2019-01-15 |
Family
ID=61560687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610816642.8A Active CN107818019B (zh) | 2016-09-12 | 2016-09-12 | 用于机器人操作系统的数据同步方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11126639B2 (zh) |
CN (1) | CN107818019B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10880388B1 (en) * | 2018-09-17 | 2020-12-29 | EMC IP Holding Company LLC | Automatic redirection in scale-out cluster environments that perform distributed deduplication |
CN114722050B (zh) * | 2022-06-10 | 2022-09-30 | 辰星(天津)自动化设备有限公司 | 机器人系统的数据同步方法、及机器人系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1560446A1 (en) * | 2004-01-27 | 2005-08-03 | Research In Motion Limited | Method and device for updating non-volatile memory items on a wireless device by checking and comparing a unique identifier item stored in said memory with a software identifier |
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和系统 |
CN102508722A (zh) * | 2011-12-02 | 2012-06-20 | 中科方德软件有限公司 | 一种嵌入式环境下的进程间通信方法 |
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016501A (en) * | 1998-03-18 | 2000-01-18 | Bmc Software | Enterprise data movement system and method which performs data load and changed data propagation operations |
US20030037181A1 (en) * | 2000-07-07 | 2003-02-20 | Freed Erik J. | Method and apparatus for providing process-container platforms |
US20020089927A1 (en) * | 2001-01-11 | 2002-07-11 | Fischer Michael A. | System and method for synchronizing data trasnmission across a variable delay interface |
CA2528080A1 (en) * | 2004-07-30 | 2006-01-30 | Research In Motion Limited | Method and apparatus for synchronizing contact data stores |
US7925625B2 (en) * | 2007-09-20 | 2011-04-12 | Microsoft Corporation | Synchronizing data between business applications |
WO2010025554A1 (en) * | 2008-09-05 | 2010-03-11 | Alocet Incorporated | A method and system of synchronizing accounting objects between a client and server |
US10117055B2 (en) * | 2009-07-08 | 2018-10-30 | Dejero Labs Inc. | System and method for providing data services on vehicles |
US9164856B2 (en) * | 2013-11-11 | 2015-10-20 | International Business Machines Corporation | Persistent messaging mechanism |
WO2015143554A1 (en) * | 2014-03-24 | 2015-10-01 | TrustPoint Innovation Technologies, Ltd. | Management and distribution of security policies in a communication system |
US9210534B1 (en) * | 2015-02-19 | 2015-12-08 | Citrix Systems, Inc. | Location assistance in a machine to machine instant messaging system |
US9443427B1 (en) * | 2015-06-25 | 2016-09-13 | International Business Machines Corporation | Reference tokens for managing driverless cars |
US10393532B2 (en) * | 2015-10-20 | 2019-08-27 | International Business Machines Corporation | Emergency responsive navigation |
JP6594567B2 (ja) * | 2016-01-04 | 2019-10-23 | 浙江立▲ビアオ▼机器人有限公司 | ロボットとサーバーとの間の同期化方法及びシステム |
-
2016
- 2016-09-12 CN CN201610816642.8A patent/CN107818019B/zh active Active
-
2017
- 2017-01-19 US US15/409,967 patent/US11126639B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1560446A1 (en) * | 2004-01-27 | 2005-08-03 | Research In Motion Limited | Method and device for updating non-volatile memory items on a wireless device by checking and comparing a unique identifier item stored in said memory with a software identifier |
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和系统 |
CN102508722A (zh) * | 2011-12-02 | 2012-06-20 | 中科方德软件有限公司 | 一种嵌入式环境下的进程间通信方法 |
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107818019A (zh) | 2018-03-20 |
US11126639B2 (en) | 2021-09-21 |
US20180075119A1 (en) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150381737A1 (en) | Gateway device and a gateway system for an internet-of-things environment | |
US20140289366A1 (en) | Service providing method and system for instance hosting | |
CN108769214B (zh) | 用于控制边缘计算设备、用于更新数据的方法和装置 | |
KR102389004B1 (ko) | 일반적 상호연동 및 확장성을 위한 서비스 계층 리소스 관리 | |
CN105071976B (zh) | 数据传输方法和装置 | |
US20160105305A1 (en) | Automatic Creation and Management of a Community of Things for Internet of Things (IoT) Applications | |
CN106202006B (zh) | 文件生成方法和装置 | |
WO2017087367A1 (en) | Cross-resource subscription for m2m service layer | |
US20100058318A1 (en) | Rolling upgrades in distributed applications | |
CN109697075A (zh) | 文件更新方法、系统和装置 | |
CN105262608B (zh) | 用于网络服务的监控方法和装置 | |
CN105630684B (zh) | 软件开发工具包识别方法和装置 | |
KR102437000B1 (ko) | M2M/IoT 서비스 계층에서의 시맨틱 추론 서비스의 인에이블링 | |
US10127093B1 (en) | Method and apparatus for monitoring a message transmission frequency in a robot operating system | |
CN107958035A (zh) | 用于发送信息的方法和装置 | |
CN108616599A (zh) | 应用服务注册、更新的方法及装置 | |
CN107818019B (zh) | 用于机器人操作系统的数据同步方法和装置 | |
EP3523946A1 (en) | Profile based content and services | |
US9380000B2 (en) | Deploying and modifying a service-oriented architecture deployment environment model | |
CN107925857A (zh) | 针对机器对机器通信的定制资源类型 | |
CN107798016B (zh) | 用于机器人操作系统的数据传输方法和装置 | |
CN109218338A (zh) | 信息处理系统、方法和装置 | |
US11893383B2 (en) | Configuration properties management for software | |
Lomotey et al. | Middleware framework for IoT services integration | |
JP2019507917A (ja) | セマンティック検証方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |