一种基于IROS系统自动生成节点图的方法技术方案

技术编号:36388591 阅读:54 留言:0更新日期:2023-01-18 09:52
一种基于IROS系统自动生成节点图的方法,以IROS的通信功能和机器人开发组件为基础,直观的显示出当前系统节点之间发布订阅关系。首先使用深度优先遍历的方式计算出节点和边(topic)所在的列,并计算出每一个列的起始位置和宽度;然后通过动态规划的方式计算出一组节点和边(topic)的位置,使得边的相交次数最小;第三使用路径搜索算法,计算出从发布者的位置经过边(topic)的位置到达订阅者的位置,最后使用Qt框架将节点图绘制出来。最后使用Qt框架将节点图绘制出来。最后使用Qt框架将节点图绘制出来。

【技术实现步骤摘要】
一种基于IROS系统自动生成节点图的方法


[0001]本专利技术涉及智能机器人领域,具体涉及一种自送生成节点图的方法。

技术介绍

[0002]IROS(Intelligent Robot Operating System,下文简称“IROS”),具备ROS类似的功能,替代了开源ROS的内核,提供了兼容ROS的接口,解决了ROS可靠性、性能、安全等相关的问题,并增加了新的功能,支持云化机器人开发、支持云边端通信、支持多机器人协作等。
[0003]机器人系统开发涉及到大量的程序,他们之间通过topic或者服务传递数据、提供服务;节点之间的关系比较复杂,数据的流向不是很清晰,团队成员完全掌握节点之间的关系需要花费一点时间。在开发调试阶段,节点的启动顺序会影响其他节点的运行,那么就需要开发者先运行依赖节点,而且在程序得不到预期的结果,也不好排查问题。此外,对于刚进入团队的新人来说,学习节点之间的关系成本也比较大,尤其是那些之前没有接触过机器人系统开发的人。对于运维人员来说,出了问题进行排查往往需要很长时间,他们需要使用命令或者日志确定是哪些节点的问题,然后再进一步确认原因。

技术实现思路

[0004]本专利技术为了克服以上技术的不足,提供了一种基于IROS提供的相关接口,通过可视化的方式,将节点之间的关系以含topic的有向线段的方式展示出来,从而解决智能机器人开发测试过程中的上述问题的方法。
[0005]本专利技术克服其技术问题所采用的技术方案是:一种基于IROS系统自动生成节点图的方法,包括如下步骤:a)获取当前IROS系统中的所有Topic;b)根据获取的Topic获取发布者和订阅者;c)将发布者和订阅者使用Topic组织为边,并记录在发布者和订阅者节点信息上;d)计算起始节点;e)计算所有节点所在的列;f)处理未计算位置的边;g)计算所有的边和节点的位置;h)重定位Topic的位置;i)计算所有的边相交的数目;j)使用动态规划的方式计算出一组边相交数目最少的位置;k)计算连线位置;l)根据节点、边、边内的Topic的位置,使用Qt框架将拓扑结构绘制出来。
[0006]进一步的,步骤d)包括如下步骤:d

1)获取所有Topic的发布者;d

2)获取所有Topic的订阅者;
d

3)获取没有订阅Topic的发布者作为起始节点;d

4)如果不存在没有订阅Topic的发布者,则将所有发布者作为起始节点。
[0007]进一步的,步骤e)包括如下步骤:e

1)遍历起始节点,记录该节点所在的列为一;e

2)广度优先遍历该节点发布的所有边,记录当前的边所在的列为该节点的列加一,记录当前边的订阅者是否被访问过,如果没有访问过,那么记录边的订阅者所在的列为边的列加一;e

3)判断边的订阅者所在的列是否满足边的订阅者和发布者不在同一列,如果不满足,则将边的订阅者所在的列加二,直至满足为止,保存边的订阅者;e

4)遍历所有的订阅者,重复执行步骤e

2),计算出每一个订阅者所在的列。
[0008]进一步的,步骤f)包括如下步骤:f

1)遍历每一条未计算的边,获取其对应的发布者和订阅者;f

2)获取发布者和订阅者所在的列;f

3)计算出边所在的列。
[0009]进一步的,步骤g)包括如下步骤:g

1)从第一列选择一个节点,计算节点的位置;g

2)广度优先遍历所有的边;g

3)计算该节点发布的每一条边的位置,并保存订阅者;g

4)深度优先遍历所有的订阅者;g

5)计算每一个未访问过的订阅者的位置后返回执行c)。
[0010]进一步的,步骤h)包括如下步骤:h

1)调整所有边的位置为靠近发布者的一端;h

2)根据订阅者的远近对每一个节点的边进行排序。
[0011]进一步的,步骤j)的动态规划的方式为:动态的调整节点的上下位置,重复执行步骤g)至步骤i),获取边相交数目最少的一组解。
[0012]进一步的,步骤k)包括如下步骤:k

1)根据发布者边的位置及订阅者点的位置,计算出连线的坐标,判断是否可以通过直线连线,如果可以,则计算直线上的点,如果不能通过直线连线,则分别计算发布者到边及边到订阅者点的位置;k

2)使用碰撞检测的方法计算出路径,将两端的点组合在一起。
[0013]本专利技术的有益效果是:基于IROS提供的相关接口,通过可视化的方式,将节点之间的关系以含topic的有向线段的方式展示出来,从而解决智能机器人开发测试过程中的问题。
附图说明
[0014]图1为本专利技术的方法流程图。
具体实施方式
[0015]下面结合附图1对本专利技术做进一步说明。
[0016]智能机器人中一般会运行很多的软件,这些软件之间通过topic或者服务的模式相互关联。一种自动生成节点分布图的开发系统是通过调用IROS的系统API获取topic以及发布者和订阅者,并将这些信息抽象为图的节点,它们的关系抽象为有向图的边,然后通过Qt提供的绘图框架绘制出来,具体的,一种基于IROS系统自动生成节点图的方法,包括如下步骤:a)获取当前IROS系统中的所有Topic。
[0017]b)根据获取的Topic获取发布者和订阅者。
[0018]c)将发布者和订阅者使用Topic组织为边,并记录在发布者和订阅者节点信息上。
[0019]d)计算起始节点。
[0020]e)计算所有节点所在的列。
[0021]f)处理未计算位置的边。
[0022]g)计算所有的边和节点的位置。
[0023]h)重定位Topic的位置。
[0024]i)计算所有的边相交的数目。
[0025]j)使用动态规划的方式计算出一组边相交数目最少的位置。
[0026]k)计算连线位置。
[0027]l)根据节点、边、边内的Topic的位置,使用Qt框架将拓扑结构绘制出来。
[0028]以IROS的通信功能和机器人开发组件为基础,直观的显示出当前系统节点之间发布订阅关系。首先使用深度优先遍历的方式计算出节点和边(topic)所在的列,并计算出每一个列的起始位置和宽度;然后通过动态规划的方式计算出一组节点和边(topic)的位置,使得边的相交次数最小;第三使用路径搜索算法,计算出从发布者的位置经过边(topic)的位置到达订阅者的位置,最后使用Qt框架将节点图绘制出来。此外,本专利技术还提出使用边相交次数作为判断生成的节点图优劣的标准。
[0029]以IROS的通信功能和机器人开发组件为基础,可以直观的显示当前系统中节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于IROS系统自动生成节点图的方法,其特征在于,包括如下步骤:a)获取当前IROS系统中的所有Topic;b)根据获取的Topic获取发布者和订阅者;c)将发布者和订阅者使用Topic组织为边,并记录在发布者和订阅者节点信息上;d)计算起始节点;e)计算所有节点所在的列;f)处理未计算位置的边;g)计算所有的边和节点的位置;h)重定位Topic的位置;i)计算所有的边相交的数目;j)使用动态规划的方式计算出一组边相交数目最少的位置;k)计算连线位置;l)根据节点、边、边内的Topic的位置,使用Qt框架将拓扑结构绘制出来。2.根据权利要求1所述的基于IROS系统自动生成节点图的方法,其特征在于,步骤d)包括如下步骤:d

1)获取所有Topic的发布者;d

2)获取所有Topic的订阅者;d

3)获取没有订阅Topic的发布者作为起始节点;d

4)如果不存在没有订阅Topic的发布者,则将所有发布者作为起始节点。3.根据权利要求1所述的基于IROS系统自动生成节点图的方法,其特征在于,步骤e)包括如下步骤:e

1)遍历起始节点,记录该节点所在的列为一;e

2)广度优先遍历该节点发布的所有边,记录当前的边所在的列为该节点的列加一,记录当前边的订阅者是否被访问过,如果没有访问过,那么记录边的订阅者所在的列为边的列加一;e

3)判断边的订阅者所在的列是否满足边的订阅者和发布者不在同一列,如果不满足,则将边的订阅者所在的列加二,直至满足为止,保存边的订阅者;e

4)遍历所有的订阅者,重复执行步骤e

2),计算出每一个订阅者所在的列。...

【专利技术属性】
技术研发人员:蔡萌萌李朝铭黄洋刘鹏王召东赵洪宇
申请(专利权)人:山东新一代信息产业技术研究院有限公司
类型:发明
国别省市:

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

1