一种ROS消息发布和订阅注册的方法和系统技术方案

技术编号:20687210 阅读:31 留言:0更新日期:2019-03-27 20:42
本发明专利技术公开了一种ROS消息发布和订阅注册的方法和系统。该方法在当ROS节点发出消息注册或订阅请求时,首先查阅本地存储的第一配置文件,倘若第一消息配置文件中包含有该消息注册或订阅请求时,直接返回完成,否则向节点管理器发送该消息注册或订阅请求。当节点管理器初始化时通过本地代理查阅本地存储的第二配置文件,本地代理根据第二配置文件中包含的消息注册或订阅请求向本地的节点管理器发送消息注册或订阅请求,由此避免在系统初始化注册消息或订阅消息时由于网络问题导致注册消息或订阅消息失败的问题,同时也减少消息注册和订阅时的网络传输开销。

【技术实现步骤摘要】
一种ROS消息发布和订阅注册的方法和系统
本专利技术涉及ROS消息注册、发布和订阅。
技术介绍
ROS,RoboticOperationSystem,是一个机器人领域软件平台,是当前机器人领域事实上的标准,已经在很多机器人系统里得到了广泛应用。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消息发布和订阅注册的系统。该系统由节点管理器物理设备和非管理器节点物理设备。该系统应用于前述的无人机组网系统中时,非管理器节点物理设备通常是无人机,节点管理器物理设备可以是无人机,也可以是地面工作站。节点管理器物理设备和非管理器节点物理设备安装了ROS系统。在该ROS系统中,节点管理器物理设备和非管理器节点物理设备至少配置了一个ROS节点,而节点管理器物理设备的其中一个ROS节点配置为ROSmaster,ROSmaster也就是节点管理器,其他ROS节点受节点管理器所控制:当其他ROS节点需要发布特定消息时,需要事先向节点管理器发布注册一个特定主题的消息;当其他ROS节点需要接收特定消息时,需要事先向节点管理器订阅注册一个特定主题的消息。为便于说明,如图1所示,本实施例中的非管理器节点物理设备逻辑上分成消息发布者物理设备和消息订阅者物理设备。消息发布者物理设备上的ROS节点11需要发布特定消息,是为特定消息的提供者,充当消息发布者的角色。消息订阅者物理设备上的ROS节点11需要接收特定消息,是为特定消息的接收者,充当消息订阅者的角色。本领域技术人员理解,充当消息发布者的角色的ROS节点和充当消息订阅者的角色的ROS节点可能是同一物理设备上的两个不同的ROS节点,也可能是两个不同物理设备上的ROS节点。本实施例的ROS消息发布和订阅注册的系统除了包括上述的ROS节点11和节点管理器21之外,还包括非管理器节点物理设备上的节点本地代理模块12和节点管理器物理设备上的管理器本地代理模块22。管理器本地代理模块22与节点管理器21交互,并对应。节点本地代理模块12与ROS节点11交互。非管理器节点物理设备上的多个ROS节点11对应一个节点本地代理模块12。节点本地代理模块12用作节点管理器21的代理,具体到作为消息发布者角色的RO本文档来自技高网...

【技术保护点】
1.一种ROS消息发布和订阅注册的方法,其特征在于,该方法包括节点消息发布注册代理步骤、节点消息订阅注册代理步骤和管理器初始化代理步骤;所述节点消息发布注册代理步骤:当ROS节点发出消息发布注册请求时,首先查阅本地存储的第一配置文件;倘若所述第一配置文件中包含有该消息发布注册请求时,直接返回完成消息发布注册,否则向节点管理器发送该消息发布注册请求;所述节点消息订阅注册代理步骤:当ROS节点发出消息订阅注册请求时,首先查阅本地存储的第一配置文件;倘若所述第一配置文件中包含有该消息订阅注册请求时,直接返回完成消息订阅注册,否则向节点管理器发送该消息订阅注册请求;所述管理器初始化代理步骤:当节点管理器初始化时查阅本地存储的第二配置文件,根据第二配置文件中包含的消息发布注册请求向节点管理器发起消息发布注册,并根据第二配置文件中包含的消息订阅注册请求向节点管理器发起消息订阅注册;所述第二配置文件包含所述第一配置文件中的消息发布注册请求和消息订阅注册请求。

【技术特征摘要】
1.一种ROS消息发布和订阅注册的方法,其特征在于,该方法包括节点消息发布注册代理步骤、节点消息订阅注册代理步骤和管理器初始化代理步骤;所述节点消息发布注册代理步骤:当ROS节点发出消息发布注册请求时,首先查阅本地存储的第一配置文件;倘若所述第一配置文件中包含有该消息发布注册请求时,直接返回完成消息发布注册,否则向节点管理器发送该消息发布注册请求;所述节点消息订阅注册代理步骤:当ROS节点发出消息订阅注册请求时,首先查阅本地存储的第一配置文件;倘若所述第一配置文件中包含有该消息订阅注册请求时,直接返回完成消息订阅注册,否则向节点管理器发送该消息订阅注册请求;所述管理器初始化代理步骤:当节点管理器初始化时查阅本地存储的第二配置文件,根据第二配置文件中包含的消息发布注册请求向节点管理器发起消息发布注册,并根据第二配置文件中包含的消息订阅注册请求向节点管理器发起消息订阅注册;所述第二配置文件包含所述第一配置文件中的消息发布注册请求和消息订阅注册请求。2.如权利要求1所述的ROS消息发布和订阅注册的方法,其特征在于,所述节点消息发布注册代理步骤和节点消息订阅注册代理步骤通过节点本地代理模块实现:当ROS节点发出消息发布注册请求时,消息发布注册请求被发送至所述节点本地代理模块;所述节点本地代理模块接收到本地ROS节点所发送的消息发布注册请求后,查阅本地存储的第一配置文件,倘若所述第一配置文件中包含有该消息发布注册请求时,直接向本地ROS节点返回完成消息发布注册,否则向节点管理器发送该消息发布注册请求;当ROS节点发出消息订阅注册请求时,消息订阅注册请求被...

【专利技术属性】
技术研发人员:钱利强熊飞王海郭晓李艾静陈娟荣凤娟徐正芹
申请(专利权)人:江苏飞图智能控制技术有限公司
类型:发明
国别省市:江苏,32

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

1