CN117555751A - 一种用于ros2进程守护的软件系统 - Google Patents
一种用于ros2进程守护的软件系统 Download PDFInfo
- Publication number
- CN117555751A CN117555751A CN202311485202.5A CN202311485202A CN117555751A CN 117555751 A CN117555751 A CN 117555751A CN 202311485202 A CN202311485202 A CN 202311485202A CN 117555751 A CN117555751 A CN 117555751A
- Authority
- CN
- China
- Prior art keywords
- ros2
- monitor
- module
- daemon
- software system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000008569 process Effects 0.000 title claims abstract description 73
- 238000012544 monitoring process Methods 0.000 claims abstract description 38
- 239000003999 initiator Substances 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 3
- 238000000547 structure data Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 3
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于ROS2进程守护的软件系统,涉及计算机技术领域,包括监控模块monitor和程序加载模块initiator,提出两模块相结合的方式进行监控,通过细粒度监控、快速异常处理和自动管理,以改善ros2系统的稳定性和可靠性,所述监控模块monitor为系统安全守护模块,负责系统最基本的安全冗余功能,所述程序加载模块initiator负责加载配置文件里的全部应用,监控monitor是否运行。本发明采用ROS2的通信机制对ROS2节点进行进程守护,保证了ROS2进程的可靠性运行,为系统正常运行提供了保证,较之其他方法,提出程序加载模块initiator和监控模块monitor相结合的方式对进程进行监控,进而提高了守护进程的稳定性和可靠性,为机器人和自动化应用领域提供了重要的技术进步。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于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应用场景,为系统正常运行提供了保证,为机器人和自动化应用领域提供了重要的技术进步。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种用于ROS2进程守护的软件系统,其特征在于,包括监控模块monitor和程序加载模块initiator,提出程序加载模块initi ator和监控模块monitor相结合的方式对进程进行监控,通过细粒度监控、快速异常处理和自动管理,以改善ros2系统的稳定性和可靠性;
所述监控模块monitor为系统安全守护模块,用于负责系统最基本的安全冗余功能,并监控应用配置文件里的所有进程,若发现某个进程出现异常,则重新启动该进程;
所述程序加载模块initiator只负责加载配置文件里的全部应用,用于监控monitor是否在运行,若监测到monitor没有运行,则重新将monitor拉起。
2.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述监控模块monitor对ros2进程进行细粒度的监控,实时检测判断进程是否异常,用于提高软件系统的稳定性和可靠性。
3.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述监控模块monitor可用于发布心跳topic,由程序加载模块initiator订阅来实现监控monitor模块的状态,用于确保守护进程的可靠性和可用性。
4.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述配置文件以json格式,将需要启动的进程全部写入配置文件列表,程序加载模块initiator通过所有应用向外发布心跳包的topic来监控。
5.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述所有应用由ros2 launch指令启动,所述launch指令用于负责帮助用户描述其系统的配置,然后按所描述的配置执行,launch文件包括两类:启动单个ros2节点和启动多个ros2节点,所述launch文件用于对ros2节点进行进程守护,以保证ros2进程的可靠性运行,为软件系统正常运行提供了保证。
6.根据权利要求5所述的一种用于ROS2进程守护的软件系统,其特征在于,所述启动单个ros2节点为1个launch文件启动单个ros2节点,其重启机制和可以在launch文件里定义respawn属性来实现,如果monitor发现有故障,直接杀掉该应用,由ros2 launch自动重新加载该应用。
7.根据权利要求5所述的一种用于ROS2进程守护的软件系统,其特征在于,所述启动多个ros2节点为1个launch文件启动多个ros2节点,monitor一旦监测到其中任何一个应用发生故障,则首先杀掉ros2 launch,然后将该launch文件启动的节点全部杀掉,在通过ros2launch指令重新加载。
8.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述用于ros2进程守护具体包括以下步骤:
首先,initiator读取应用配置文件,并将配置项以结构体数据的形式保存到共享内存中,monitor需要这份配置监视应用的运行情况;
其次,initiator按照配置文件的模块列表及参数,将所有的模块以后台的方式加载并运行,然后加载robot_monitor应用模块,实时监控robot_monitor应用模块,并判断robot_monitor模块是否在运行;
最后,如果initiator发现robot_monitor模块没有运行,则重新启动robot_monitor模块。
9.根据权利要求1所述的一种用于ROS2进程守护的软件系统,其特征在于,所述软件系统具有较高的可扩展性,ros2支持微控制器,即ros2可以跨平台使用,且支持多种操作系统,使得可以适应不同的ros2应用场景。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311485202.5A CN117555751A (zh) | 2023-11-09 | 2023-11-09 | 一种用于ros2进程守护的软件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311485202.5A CN117555751A (zh) | 2023-11-09 | 2023-11-09 | 一种用于ros2进程守护的软件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555751A true CN117555751A (zh) | 2024-02-13 |
Family
ID=89813838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311485202.5A Pending CN117555751A (zh) | 2023-11-09 | 2023-11-09 | 一种用于ros2进程守护的软件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555751A (zh) |
-
2023
- 2023-11-09 CN CN202311485202.5A patent/CN117555751A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6622261B1 (en) | Process pair protection for complex applications | |
US7856639B2 (en) | Monitoring and controlling applications executing in a computing node | |
JP5128944B2 (ja) | コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム | |
US5715386A (en) | Apparatus and methods for software rejuvenation | |
US5815702A (en) | Method and software products for continued application execution after generation of fatal exceptions | |
CN107315656B (zh) | 多内核的嵌入式plc软件恢复方法和plc | |
US6425093B1 (en) | Methods and apparatuses for controlling the execution of software on a digital processing system | |
US9087005B2 (en) | Increasing resiliency of a distributed computing system through lifeboat monitoring | |
CN111745650B (zh) | 一种机器人操作系统的运行方法和机器人的控制方法 | |
CN109710441A (zh) | 一种软件看门狗、电子设备及计算机存储介质 | |
CN108737153B (zh) | 区块链灾备系统、方法、服务器和计算机可读存储介质 | |
CN110865900A (zh) | 增强嵌入式系统健壮性的一种方法 | |
CN109976886B (zh) | 内核远程切换方法及装置 | |
CN115237644A (zh) | 系统故障处理方法、中央运算单元以及车辆 | |
US10838815B2 (en) | Fault tolerant and diagnostic boot | |
CN115408371A (zh) | 一种redis数据库动态冗余部署方法和装置 | |
CN117555751A (zh) | 一种用于ros2进程守护的软件系统 | |
CN111078454A (zh) | 一种云平台配置恢复方法及装置 | |
CN105760276B (zh) | 提高reboot命令重启可靠性并增加复位日志的方法 | |
KR20230131017A (ko) | 가속기에 대해 온-디멘드 체크포인트를 수행하는 전자 장치 및 그 동작 방법 | |
CN109656213A (zh) | 具有失电保护机制的人机接口系统及分布式控制系统 | |
KR102057524B1 (ko) | 위성 관제 시스템이 수행하는 실행 시점 복원 방법 | |
JPH10133963A (ja) | 計算機の故障検出・回復方式 | |
US7676682B2 (en) | Lightweight management and high availability controller | |
US20220366034A1 (en) | Concept for Monitoring Software Containers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |