掌桥专利:专业的专利平台
掌桥专利
首页

一种用于ROS2进程守护的软件系统

文献发布时间:2024-04-18 20:01:30


一种用于ROS2进程守护的软件系统

技术领域

本发明涉及计算机技术领域,尤其涉及一种用于ROS2进程守护的软件系统。

背景技术

程序加载器属于操作系统的一部分,用于加载程序和库。加载器是执行程序和代码必不可少的组件,正是它负责将程序送入内存,为程序的运行提供准备,程序加载器一般以守护进程的方式运行在系统后台,守护进程是运行在后台的一种特殊进程,它独立于控制终端并周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行且提供某种服务,不是对整个系统就是对某个用户程序提供服务。

随着机器人和自动化系统的广泛应用,机器人操作系统,即ROS,已经成为领域内的标准,ROS的第二代,即ROS2,引入了许多改进,使其在机器人和自动化应用中更加强大和灵活。然而,ROS2进程的稳定性和可靠性仍然是一个关键问题。在复杂的机器人应用中,ROS2进程可能因各种原因而出现异常,如资源泄漏、崩溃或配置错误。这些异常可能导致系统故障,机器人的不可预测行为,以及生产效率下降,已有的技术通过监控系统内进程并尝试重新启动失败的进程来解决这些问题,然而,现有的解决方案存在这些问题:监控系统难以提供足够细致的监控,监控力度比较有限,对ROS2节点进程的适配性较差,难以快速检测和处理ROS2进程的异常,同时基于现有的方案,守护进程只负责对应用模块的进程进行状态监视、加载,但不存在对守护进程的监控,监控系统本身容易受到外部因素的干扰,导致监控失效,使得监控系统的可靠性差,并且现有技术需要手动干预以维护监控系统的稳定性,无法自动化的管理监控系统,增加了管理的复杂性。

发明内容

本发明提出的一种用于ROS2进程守护的软件系统,解决了现有的问题。

为了实现上述目的,本发明采用了如下技术方案:一种用于ROS 2进程守护的软件系统,一种用于ROS2进程守护的软件系统,包括监控模块monitor和程序加载模块initiator,提出程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,通过细粒度监控、快速异常处理和自动管理,以改善ros2系统的稳定性和可靠性,其特征在于,

所述监控模块monitor为系统安全守护模块,用于负责系统最基本的安全冗余功能,并监控应用配置文件里的所有进程,若发现某个进程出现异常,则重新启动该进程;

所述程序加载模块initiator只负责加载配置文件里的全部应用,用于监控monitor是否在运行,若监测到monitor没有运行,则重新将monitor拉起。

优选的,所述监控模块monitor对ros2进程进行细粒度的监控,实时检测判断进程是否异常,用于提高软件系统的稳定性和可靠性。

优选的,所述监控模块monitor可用于发布心跳topic,由程序加载模块initiator订阅来实现监控monitor模块的状态,用于确保守护进程的可靠性和可用性。

优选的,所述配置文件以json格式,将需要启动的进程全部写入配置文件列表,程序加载模块initiator通过所有应用向外发布心跳包的topic来监控。

优选的,所述所有应用由ros2 launch指令启动,所述launch指令用于负责帮助用户描述其系统的配置,然后按所描述的配置执行,launch文件包括两类:启动单个ros2节点和启动多个ros2节点,所述launch文件用于对ros2节点进行进程守护,以保证ros2进程的可靠性运行,为软件系统正常运行提供了保证。

优选的,所述启动单个ros2节点为1个launch文件启动单个ros2节点,其重启机制和可以在launch文件里定义respawn属性来实现,如果monitor发现有故障,直接杀掉该应用,由ros2 launch自动重新加载该应用。

优选的,所述启动多个ros2节点为1个launch文件启动多个ros2节点,monitor一旦监测到其中任何一个应用发生故障,则首先杀掉ros2 launch,然后将该launch文件启动的节点全部杀掉,在通过ros2 launch指令重新加载。

优选的,所述用于ros2进程守护具体包括以下步骤:

首先,initiator读取应用配置文件,并将配置项以结构体数据的形式保存到共享内存中,monitor需要这份配置监视应用的运行情况;

其次,initiator按照配置文件的模块列表及参数,将所有的模块以后台的方式加载并运行,然后加载robot_monitor应用模块,实时监控robot_monitor应用模块,并判断robot_monitor模块是否在运行;

最后,如果initiator发现robot_monitor模块没有运行,则重新启动robot_monitor模块。

优选的,所述软件系统具有较高的可扩展性,ros2支持微控制器,即ros2可以跨平台使用,且支持多种操作系统,使得可以适应不同的ros2应用场景。

本发明的有益效果为:

1、本发明采用ROS2的通信机制对ROS2节点进行进程守护,减少ros2进程重新启动的时间,降低系统中断时间,保证了ROS2进程的可靠性运行,为软件系统正常运行提供了保证。

2、本发明较之其他方法,提出程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,进而提高了守护进程的可靠性和可用性。

根据以上描述,本发明提供了一种用于守护ROS2进程的软件系统,通过细粒度监控、快速异常处理和自动管理,改善了ROS2系统的稳定性和可靠性,为机器人和自动化应用领域提供了重要的技术进步。

附图说明

图1为一种用于ROS2进程守护的软件系统的的流程图。

图2为一种用于ROS2进程守护的软件系统的系统结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

参照图1-图2所示,一种用于ROS2进程守护的软件系统,包括监控模块monitor和程序加载模块initiator,提出程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,通过细粒度监控、快速异常处理和自动管理,以改善ros2系统的稳定性和可靠性,其特征在于,

监控模块monitor为系统安全守护模块,用于负责系统最基本的安全冗余功能,并监控应用配置文件里的所有进程,若发现某个进程出现异常,则重新启动该进程;

程序加载模块initiator只负责加载配置文件里的全部应用,用于监控monitor是否在运行,若监测到monitor没有运行,则重新将monitor拉起。

监控模块monitor对ros2进程进行细粒度的监控,实时检测判断进程是否异常,用于提高软件系统的稳定性和可靠性,同时能够实现监控系统的自动管理,降低管理复杂性,监控模块monitor可用于发布心跳topic,由程序加载模块initiator订阅来实现监控monitor模块的状态,用于确保守护进程的可靠性和可用性,提出程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,避免监控系统本身受到外部因素的干扰,避免造成监控失效,进而提高了守护进程的可靠性,配置文件以json格式,json是一种轻量级、易于阅读和编写、跨平台、跨语言的数据交换格式,易于阅读和编写,使得可以在不同的编程语言和操作系统之间进行数据交换,而且可以减少网络传输的数据量,提高传输效率,将需要启动的进程全部写入配置文件列表,程序加载模块initiator通过所有应用向外发布心跳包的topic来监控,通过心跳topic的发布和订阅,initiator模块可以实时监控monitor模块的状态,确保守护进程的可靠性和可用性。

所有应用由ros2 launch指令启动,launch指令用于负责帮助用户描述其系统的配置,然后按所描述的配置执行,launch文件包括两类:启动单个ros2节点和启动多个ros2节点,launch文件用于对ros2节点进行进程守护,减少ros2进程重新启动的时间,降低系统中断时间,以保证ros2进程的可靠性运行,为系统正常运行提供了保证,启动单个ros2节点为1个launch文件启动单个ros2节点,其重启机制和可以在launch文件里定义respawn属性来实现,如果monitor发现有故障,直接杀掉该应用,由ros2 launch自动重新加载该应用。启动多个ros2节点为1个launch文件启动多个ros2节点,monitor一旦监测到其中任何一个应用发生故障,则首先杀掉ros2 launch,然后将该launch文件启动的节点全部杀掉,在通过ros2 launch指令重新加载,对ros2节点进行进程守护,进而提高了守护进程的可靠性和可用性。

用于ros2进程守护具体包括以下步骤:

首先,initiator读取应用配置文件,并将配置项以结构体数据的形式保存到共享内存中,monitor需要这份配置监视应用的运行情况;

其次,initiator按照配置文件的模块列表及参数,将所有的模块以后台的方式加载并运行,然后加载robot_monitor应用模块,实时监控robot_monitor应用模块,并判断robot_monitor模块是否在运行;

最后,如果initiator发现robot_monitor模块没有运行,则重新启动robot_monitor模块,提供了一种精细监控ros2进程的方法,改善了ros2节点进程适配性较差的问题,以快速检测异常情况,软件系统具有较高的可扩展性,ros2支持微控制器,即ros2可以跨平台使用,且支持多种操作系统,使得可以适应不同的ros2应用场景,在可靠性和跨平台方面起着巨大的作用,并且使得实用性也进一步增强。

本发明提供了一种用于守护ROS2进程的软件系统,利用一个专门的初始化模块加载所有模块的进程,程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,通过守护进程对各应用模块的进程进行守护的监控系统,能够自动处理监控系统本身的异常,通过细粒度监控、快速异常处理和自动管理,采用ros2的通信机制对ros2节点进行进程守护,减少ros2进程重新启动的时间,降低系统中断时间,改善了ros2系统的稳定性和可靠性,本发明的架构具有较高的可扩展性,可以适应不同的ROS2应用场景,为系统正常运行提供了保证,为机器人和自动化应用领域提供了重要的技术进步。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种用拟薄水铝石制备勃姆石的方法及其应用
  • 一种具有拟勃姆石结构的铝佐剂及其制备方法
技术分类

06120116556072