当前位置: 首页 > 专利查询>北京大学专利>正文

一种基于ROS计算图的机器人通信架构自动生成方法及装置制造方法及图纸

技术编号:37038957 阅读:14 留言:0更新日期:2023-03-29 19:18
本发明专利技术公布了一种基于ROS计算图的机器人通信架构自动生成方法及装置,ROS应用程序由多个节点组成,节点以点对点方式与主节点通信;ROS配置文件解析器模块从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,生成ROS计算图,在运行ROS应用程序的同时将所述节点的配置信息传递给ROS通信架构生成器;ROS通信架构生成器模块读取由ROS配置文件解析器生成的配置信息和ROS计算图,从而生成节点与话题、服务之间的联系,从而生成机器人通信架构。本发明专利技术通过动态分析运行时ROS计算图,从而提取缺少的主题和服务信息,可以最大程度模拟运行环境,生成节点与话题、服务之间的联系,从而生成机器人通信架构。机器人通信架构。机器人通信架构。

【技术实现步骤摘要】
一种基于ROS计算图的机器人通信架构自动生成方法及装置


[0001]本专利技术提供一种机器人通信架构自动生成方法,具体涉及基于ROS计算图的机器人通信架构自动生成方法。

技术介绍

[0002]由于机器人的规格和应用场景十分宽泛且在不停变化,因而为机器人编写通用的软件并不容易。同时,不同的机器人会有完全不同的硬件,因此提高机器人软件的代码复用率也十分困难。除此之外,机器人软件必须包括从底层的驱动程序、逻辑抽象到具体应用的所有层次,这远超单一开发者的开发能力。
[0003]因此,机器人技术研究者设计了许多框架来管理机器人软件,因而诞生了许多机器人软件系统用于学术研究和产业界。机器人领域的问题非常宽泛,单一解决方案无法应对所有问题,每种框架都为达到某一特定目的而设计。
[0004]ROS(Robotic Operating System,下文简称“ROS”)也是这些框架其中之一。ROS最初是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目,设计来解决开发大规模服务机器人应用的问题。但最终的框架在其它机器人领域也有通用性。它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。其开源许可证和活跃的社区使其在许多机器人领域得到了广泛采用。
[0005]近年来随着机器人应用的日益发展与普及,有越来越多的机器人应用开发者及技术研究者开始关注ROS,同时针对机器人开源代码库即ROS包信息获取方式方面存在的一些问题展开研究。
[0006]获得关于ROS包更多的信息,可以帮助机器人开源代码库提供更好的搜索与分类功能。一个ROS包的信息可以分为两个层级,文件系统级别和计算图级别。目前已有的机器人开源代码库只提供了对ROS包进行了静态分析后的信息,但是ROS灵活的框架导致ROS程序的计算图级别信息无法使用静态分析获取。
[0007]ROS的计算图级别信息相较于文件系统级别信息则不那么容易获取。这些信息通常是ROS程序根据运行时环境及参数动态生成。在不运行节点的情况下,要想获取它们的元信息,只能查阅文档或直接查看源代码。这些导致无法生成机器人的通信架构。

技术实现思路

[0008]本专利技术的目的是提供一种基于ROS计算图的机器人通信架构自动生成方法,用以自动生成机器人通信架构。
[0009]本专利技术所述的技术方案如下:
[0010]一种基于ROS计算图的机器人通信架构自动生成方法,包括以下步骤:
[0011]ROS应用程序由多个节点组成,包括至少一个主节点;所述节点以点对点方式与所
述主节点通信,所述节点之间的通信形式包括服务和话题;
[0012]ROS配置文件解析器模块从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,生成ROS计算图,在运行ROS应用程序的同时将所述节点的配置信息传递给ROS通信架构生成器;
[0013]ROS通信架构生成器模块读取由ROS配置文件解析器生成的配置信息和ROS计算图,从而生成节点与话题、服务之间的联系,从而生成机器人通信架构。
[0014]所述roslaunch的配置文件使用XML格式,用于描述ROS应用程序的全部或部分内容。
[0015]所述所述roslaunch的配置文件包括必要的节点及其命名空间的层次结构、配置参数、启动参数及在主机上的分布。
[0016]所述ROS配置文件解析器模块从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,包括:
[0017]ROS配置文件解析器首先读取roslaunch配置文件,解析节点架构,如果ROS主节点尚未启动,那么将首先启动ROS主节点,再依次启动其它节点,从文件系统中找到节点对应的可执行文件,并根据roslaunch配置文件启动这些节点。
[0018]所述生成节点、服务与话题之间的联系,模拟机器人软件架构,包括:
[0019]如果读取了多个roslaunch配置文件,那么ROS配置文件解析器将依次解析,合并相同的命名空间,忽略重复的节点,之后再依次启动节点;在启动完所有节点后,ROS配置文件解析器会将解析过后的配置文件传递给ROS通信架构生成器模块。
[0020]所述ROS通信架构生成器模块读取由ROS配置文件解析器生成的配置信息和ROS计算图,从而生成节点与话题、服务之间的联系,从而生成机器人通信架构,包括:ROS通信架构生成器模块读取由ROS配置文件解析器生成的配置信息,从配置信息中获取所有节点的完整名称;
[0021]之后与ROS主节点通信,通过配置信息中获取的节点名称遍历所有节点及其在ROS主节点注册的对应话题与服务,从而生成节点与话题、服务之间的联系。
[0022]上述步骤还包括:生成节点的特征,所述节点特征包括三项:节点发布的话题类型,节点订阅的话题类型,节点提供的服务类型。
[0023]本专利技术还提供一种基于ROS计算图的机器人通信架构自动生成方法装置,包括:
[0024]ROS配置文件解析器模块,用于从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,生成ROS计算图,在运行ROS应用程序的同时将所述节点的配置信息传递给ROS通信架构生成器;
[0025]ROS通信架构生成器模块,用于读取由ROS配置文件解析器生成的配置信息和ROS计算图,从而生成节点与话题、服务之间的联系,从而生成机器人通信架构。
[0026]本专利技术的有益效果:本专利技术提出的机器人通信架构自动生成方法,将通过动态分析运行时ROS计算图,从而提取缺少的主题和服务信息,可以最大程度模拟运行环境,生成节点与话题、服务之间的联系,从而生成机器人通信架构。
附图说明
[0027]图1是本专利技术机器人通信架构自动生成方法的模块架构。
具体实施方式
[0028]ROS应用程序由多个节点组成,这些节点以点对点方式与充当名称服务器和参数数据库的ROS主节点通信。该网络设计称为ROS计算图,可以在运行时重新配置。节点可以在任意时间启动并加入或离开网络,而不会中断或影响整个网络的功能。在正在运行的应用程序上启用此类高度动态的修改机制可大大加快开发速度并提高系统的容错能力。但同时,ROS节点通过话题或服务隐式连接,这导致动态生成的话题和服务难以通过静态分析获取。
[0029]另一方面,一个完整的ROS程序通常包含多个节点。为了便于一次启动和配置多个节点,ROS附带了工具roslaunch。roslaunch的配置文件使用XML格式,用于描述ROS应用程序的全部或部分内容。此配置主要包括必需的节点及其命名空间(namespace)层次结构,配置,启动参数以及可用主机上的分布。执行时,r本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ROS计算图的机器人通信架构自动生成方法,其特征在于,包括以下步骤:ROS应用程序由多个节点组成,包括至少一个主节点;所述节点以点对点方式与所述主节点通信,所述节点之间的通信形式包括服务和话题;ROS配置文件解析器模块从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,生成ROS计算图,在运行ROS应用程序的同时将所述节点的配置信息传递给ROS通信架构生成器;ROS通信架构生成器模块读取由ROS配置文件解析器生成的配置信息和ROS计算图,从而生成节点与话题、服务之间的联系,从而生成机器人通信架构。2.如权利要求1所述的方法,其特征在于,所述roslaunch的配置文件使用XML格式,用于描述ROS应用程序的全部或部分内容。3.如权利要求2所述的方法,其特征在于,所述所述roslaunch的配置文件包括必要的节点及其命名空间的层次结构、配置参数、启动参数及在主机上的分布。4.如权利要求1所述的方法,其特征在于,所述ROS配置文件解析器模块从ROS包的文件系统中获取roslaunch配置文件,并根据配置文件中的参数与结构信息运行ROS应用程序,包括:ROS配置文件解析器首先读取roslaunch配置文件,解析节点架构,如果ROS主节点尚未启动,那么将首先启动ROS主节点,再依次启动其它节点,从文件系统中找到节点对应的可执行文件,并根据roslaunch配置文件启动这些节点。5.如权利要求4所述的方法,其特征在于,所述生成节点、服务与...

【专利技术属性】
技术研发人员:郭耀臧振宇蔡奕丰张子祺王远鹏陈向群
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1