一种多ROS的服务发现系统技术方案

技术编号:24466691 阅读:29 留言:0更新日期:2020-06-10 18:50
本发明专利技术公开一种多ROS的服务发现系统,以解决以下问题的其中之一:DDS实现ROS中的服务发现功能时存在的占用系统资源过多的问题,以及DDS无法实现多个ROS之间的服务发现功能。在多个ROS协同作业的环境中,设置至少一个分布式存储系统,每个分布式存储系统与至少一个ROS对应,在ROS的每个节点中设置分布式存储客户端;分布式存储系统根据与ROS节点中的分布式存储客户端的通信,来维护和保存ROS节点的服务状态信息;并且,多个分布式存储系统之间同步所保存的ROS节点的服务状态信息。

A multi ROS service discovery system

【技术实现步骤摘要】
一种多ROS的服务发现系统
本专利技术涉及机器人领域,特别涉及一种多ROS的服务发现系统。
技术介绍
目前,可以通过数据分发服务(DataDistributionService,DDS)技术实现对机器人操作系统(RobotOperationSystem,ROS)中分布式节点的服务发现功能。DDS的核心是以数据为中心的发布-订阅DCPS(Data-CentricPublish-Subscribe),即发布者能高效地将正确的信息传递给适当的订阅者。通过发布者和订阅者在DDS中进行注册,能够可靠有效地实现节点之间的服务发现功能。但是,DDS实现ROS中的服务发现时,存在占用系统资源过多的问题。服务发现作为基础设施,原则上不应该占用过多的资源。在具体的应用场景上,将会造成处理瓶颈,无法满足应用场景的需求。并且,在多个ROS协同作业的环境中,DDS无法实现多个ROS之间的服务发现功能。
技术实现思路
有鉴于此,本申请提供了一种多ROS的服务发现系统,以解决以下问题的其中之一:DDS实现ROS中的服务发现功能时存在的占用系统资源过多的问题,以及DDS无法实现多个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之间的服务发现功能,而且分布式存储系统具有数据一致性、可用性和容错性,能够保证在不同的网络环境中实现可靠高效的服务发现。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。图1为本申请实施例提供的多ROS的服务发现系统的一个示例结构;图2为本申请实施例提供的多ROS的服务发现系统的另一个示例结构;图3为本申请实施例提供的多ROS的服务发现系统的另一个示例结构;图4为本申请实施例提供的多ROS的服务发现系统的另一个示例结构;图5为本申请实施例提供的多ROS的服务发现系统的另一个示例结构。具体实施方式为了使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。目前,通过DDS来实现ROS的服务发现功能时,技术人员发现存在DDS占用系统资源过多的问题,例如在开启30个线程时,DDS会占用过多的处理资源和虚拟内存。而服务发现作为基础设施的一部分,占用过高的系统资源将影响到上层应用的正常运行。另一方面,DDS受网络变动的干扰严重,例如,断开网络连接会使得服务发现出现运行错误。在现实的具体应用过程中,网络环境存在各种复杂的情况,DDS无法实现不同域的多个网络中多ROS的服务发现。针对于此,本申请实施例提供了一种多ROS的服务发现系统。在本申请实施例提供的技术方案中,在多个ROS协同作业的环境中,设置至少一个分布式存储系统,每个分布式存储系统与至少一个ROS对应,在ROS的每个节点中设置分布式存储客户端;分布式存储系统根据与ROS节点中的分布式存储客户端的通信,来维护和保存ROS节点的服务状态信息;并且,多个分布式存储系统之间相互同步所维护的ROS节点的服务状态信息。本申请实施例提供的技术方案中通过分布式存储系统来实现多ROS的服务发现功能,分布式存储系统占用的系统资源少,能够保证服务发现功能的有效性、稳定性和可靠性;进一步,多个分布式存储系统之间相互同步ROS节点服务状态信息,多个分布式存储系统之间能够保证服务发现数据的一致性、可用性和容错性,能够保证在不同的网络环境中实现高效可靠的多ROS服务发现功能。以上是本专利技术的核心思想,为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。本申请实施例提供了一种多ROS的服务发现系统,该系统1包括:至少一个分布式存储系统11和多个ROS12,一个分布式存储系统11对应于至少一个ROS12,每个ROS节点121中包括一个分布式存储客户端122,图1中示出了系统1的一个示例。在一些实施例中,分布式存储系统11可以是分布式键值存储系统。在一些实施例中,在系统1中包括多个分布式存储系统11的情况下,多个分布式存储系统11之间为对等模式。多个分布式存储系统11可以位于相同域的网络中或者不同域的网络中。也即,在一个相同域的网络中,可以配置多个分布式存储系统11,每个分布式存储系统对应至少一个ROS12。在一个具体的示例中,如图2所示,网络a中包括两个分布式存储系统11,每个分布式存储系统对应三个ROS12,网络b中包括两个分布式存储系统11,每个分布式存储系统对应三个ROS12。也可以在不同域的多个网络中,在每个网络中配置一个分布式存储系统11,一个分布式存储系统11对应于多个ROS12。在一个具体的示例中,如图3所示,网络a、b、c中分别包括一个分布式存储系统11,每个分布式存储系统对应于三个ROS12。在一些实施例中,如图1所示系统中还可以包括主备结构的分布式存储系统,也即图1中的每个分布式存储系统11为主分布式存储系统,主分布式存储系统具有一个对应的备用分布式存储系统(未在图中本文档来自技高网
...

【技术保护点】
1.一种多ROS的服务发现系统,其特征在于,包括:至少一个分布式存储系统和多个ROS,一个分布式存储系统对应至少一个ROS,每个ROS节点中包括一个分布式存储客户端;其中,/n一个ROS节点中的分布式存储客户端,用于与对应的分布式存储系统通信该ROS节点的服务状态信息;接收来自对应的分布式存储系统的ROS节点的服务状态通知;其中,服务状态包括ROS节点的节点注册、节点变更或节点下线,或者ROS节点的服务注册、服务变更或服务注销;/n一个分布式存储系统,用于根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的服务状态信息,并将保存的ROS节点服务状态信息通知给对应的ROS节点中的分布式存储客户端和/或同步给其它的分布式存储系统;或者获取其它的分布式存储系统同步的ROS节点服务状态信息,并将获取的ROS节点服务状态信息通知给对应的ROS节点中的分布式存储客户端。/n

【技术特征摘要】
1.一种多ROS的服务发现系统,其特征在于,包括:至少一个分布式存储系统和多个ROS,一个分布式存储系统对应至少一个ROS,每个ROS节点中包括一个分布式存储客户端;其中,
一个ROS节点中的分布式存储客户端,用于与对应的分布式存储系统通信该ROS节点的服务状态信息;接收来自对应的分布式存储系统的ROS节点的服务状态通知;其中,服务状态包括ROS节点的节点注册、节点变更或节点下线,或者ROS节点的服务注册、服务变更或服务注销;
一个分布式存储系统,用于根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的服务状态信息,并将保存的ROS节点服务状态信息通知给对应的ROS节点中的分布式存储客户端和/或同步给其它的分布式存储系统;或者获取其它的分布式存储系统同步的ROS节点服务状态信息,并将获取的ROS节点服务状态信息通知给对应的ROS节点中的分布式存储客户端。


2.根据权利要求1所述的系统,其特征在于,一个ROS节点中的分布式存储客户端与对应的分布式存储系统通信该ROS节点的节点注册信息,包括:
一个ROS节点中的分布式存储客户端向对应的分布式存储系统发送该ROS节点的节点注册请求,节点注册请求中包括该ROS节点的标识信息;
一个分布式存储系统根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的节点注册信息,包括:
分布式存储系统接收来自对应的一个分布式存储客户端的节点注册请求,存储该节点注册请求中包括的ROS节点的标识信息。


3.根据权利要求1所述的系统,其特征在于,一个ROS节点中的分布式存储客户端与对应的分布式存储系统通信该ROS节点的节点变更信息,包括:
一个ROS节点中的分布式存储客户端向对应的分布式存储系统发送该ROS节点的节点变更请求,节点变更请求中包括该ROS节点的标识信息和变更的ROS节点信息;
一个分布式存储系统根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的节点变更信息,包括:
分布式存储系统接收对应的一个分布式存储客户端的节点变更请求,根据节点变更请求中包括的ROS节点的标识信息,存储该节点变更请求中包括的变更的ROS节点信息。


4.根据权利要求1所述的系统,其特征在于,一个ROS节点中的分布式存储客户端与对应的分布式存储系统通信该ROS节点的节点下线信息,包括:
一个ROS节点中的分布式存储客户端停止向对应的分布式存储系统发送心跳信号;或者,一个ROS节点中的分布式存储客户端向对应的分布式存储系统发送离线消息,离线消息中包括该ROS节点的标识;
一个分布式存储系统根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的节点下线信息,包括:
分布式存储系统在预定时间内未收到来自对应的一个分布式存储客户端的心跳信号后,将该分布式存储客户端对应的ROS节点的服务状态修改为节点下线;或者,分布式存储系统接收对应的一个分布式存储客户端的离线通知,根据该离线通知中包括的ROS节点的标识,将对应的ROS节点的服务状态修改为节点下线。


5.根据权利要求1所述的系统,其特征在于,一个ROS节点中的分布式存储客户端与对应的分布式存储系统通信该ROS节点的服务注册信息,包括:
一个ROS节点中的分布式存储客户端向对应的分布式存储系统发送该ROS节点的发布者注册请求或者订阅者注册请求,其中,发布者注册请求中包括ROS节点的标识、发布的服务标题和服务提供信息,订阅者注册请中包括ROS节点的标识、订阅的服务标题和服务接收信息;
一个分布式存储系统根据与对应的分布式存储客户端的通信,维护并保存分布式存储客户端所在的ROS节点的服务注册信息,包括:
分布式存储系统接收一个发布者注册请求,关联记录并存储该发布者注册请求中包括的发布的服务标题、ROS节点的标识信息和服务提供信息;或者,接收一个订阅者注册请求,关联记录并存储该订阅者注册请求中包括的订阅的服务标题、ROS节点的标识信息和服务接收信息。
...

【专利技术属性】
技术研发人员:王路刘伟苏磊
申请(专利权)人:北京图森智途科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1