CN107819640B - 用于机器人操作系统的监控方法和装置 - Google Patents

用于机器人操作系统的监控方法和装置 Download PDF

Info

Publication number
CN107819640B
CN107819640B CN201610827061.4A CN201610827061A CN107819640B CN 107819640 B CN107819640 B CN 107819640B CN 201610827061 A CN201610827061 A CN 201610827061A CN 107819640 B CN107819640 B CN 107819640B
Authority
CN
China
Prior art keywords
monitored
node
state
parameter
title
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.)
Active
Application number
CN201610827061.4A
Other languages
English (en)
Other versions
CN107819640A (zh
Inventor
马彧
张韦德
何玮
王海峰
陈卓
梁艺冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610827061.4A priority Critical patent/CN107819640B/zh
Priority to US15/410,454 priority patent/US10331521B2/en
Publication of CN107819640A publication Critical patent/CN107819640A/zh
Application granted granted Critical
Publication of CN107819640B publication Critical patent/CN107819640B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Abstract

本申请公开了用于机器人操作系统的监控方法及装置。所述方法的一具体实施方式包括:获取待监控节点组中各个待监控节点的进程标识;查询进程标识对应的进程的状态信息;根据进程的状态信息确定待监控节点是否运行正常;响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。该实施方式以节点组为单位对节点进行监控,提高了机器人操作系统的维护效率。

Description

用于机器人操作系统的监控方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及用于机器人操作系统的监控方法和装置。
背景技术
机器人操作系统(ROS,Robot Operating System)是一套源代码开放的标准操作系统,它提供了一系列的软件框架和工具以帮助软件开发者创建应用软件,它可以提供硬件抽象、底层设备的控制、常用功能的实现、进程间消息通信以及数据包管理等功能。ROS是一种分布式处理框架,开发者可以单独设计可执行文件。不同的进程能接收、发布各种信息(例如传感,控制,状态,规划等等)。在机器人操作系统中运行有多个应用程序,每个应用程序可看作一个节点。
然而,ROS自身并未提供完整的系统级实时监控解决方案。随着ROS应用到自动驾驶领域等系统复杂且可靠性要求高的邻域,目前ROS所提供的监控方案已不能满足需求,例如,ROS针对节点存活状况的监控只针对单个节点,无法满足需对多个节点进行组合监控的情况。
发明内容
本申请的目的在于提出一种改进的用于机器人操作系统的监控方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了改进的用于机器人操作系统的监控方法,所述方法包括:获取待监控节点组中各个待监控节点的进程标识;查询所述进程标识对应的进程的状态信息;根据所述进程的状态信息确定所述待监控节点是否运行正常;响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,其中,所述预定阈值是在预先设置的监控配置信息中查询得到的。
在一些实施例中,所述监控配置信息还包括待监控节点对应的可执行文件的名称以及所述可执行文件所在功能包的名称;以及所述获取待监控节点组中各个待监控节点的进程标识之前,所述方法还包括:根据可执行文件的名称以及所述可执行文件所在功能包的名称确定待运行的可执行文件;运行所述待运行的可执行文件以启动待监控节点;记录所述待监控节点的进程标识。
在一些实施例中,所述根据所述进程的状态信息确定所述待监控节点是否运行正常,包括:根据所述进程的状态信息确定所述待监控节点是否处于运行状态;响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控节点进行数据传输的时间;根据所述待监控节点进行数据传输的时间,统计预定时间段内所述待监控节点进行数据传输的次数;响应于统计出的次数在预先设置的次数范围内,确定所述待监控节点运行正常。
在一些实施例中,所述监控配置信息中还包括待监控参数的名称以及与所述待监控参数的名称对应的待监控参数的取值范围,所述待监控参数是待监控节点运行所产生的;以及所述根据所述进程的状态信息确定所述待监控节点是否运行正常,包括:根据所述进程的状态信息确定所述待监控节点是否处于运行状态;响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控参数的名称对应的待监控参数;响应于所获取的待监控参数在所述待监控参数的取值范围内,确定所述待监控节点运行正常。
在一些实施例中,所述响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,包括:响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,并执行预设操作,其中,所述预设操作包括重启所述待监控节点组中非正常运行的节点。
第二方面,本申请提供了一种用于机器人操作系统的监控装置,所述装置包括:获取单元,用于获取待监控节点组中各个待监控节点的进程标识;查询单元,用于查询所述进程标识对应的进程的状态信息;确定单元,用于根据所述进程的状态信息确定所述待监控节点是否运行正常;输出单元,用于响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,其中,所述预定阈值是在预先设置的监控配置信息中查询得到的。
在一些实施例中,所述监控配置信息还包括待监控节点对应的可执行文件的名称以及所述可执行文件所在功能包的名称;以及所述装置还包括:可执行文件确定单元,用于根据可执行文件的名称以及所述可执行文件所在功能包的名称确定待运行的可执行文件;运行单元,用于运行所述待运行的可执行文件以启动待监控节点;记录单元,用于记录所述待监控节点的进程标识。
在一些实施例中,所述确定单元,包括:运行状态确定子单元,用于根据所述进程的状态信息确定所述待监控节点是否处于运行状态;时间获取子单元,用于响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控节点进行数据传输的时间;统计子单元,用于根据所述待监控节点进行数据传输的时间,统计预定时间段内所述待监控节点进行数据传输的次数;第一确定子单元,用于响应于统计出的次数在预先设置的次数范围内,确定所述待监控节点运行正常。
在一些实施例中,所述监控配置信息中还包括待监控参数的名称以及与所述待监控参数的名称对应的待监控参数的取值范围,所述待监控参数是待监控节点运行所产生的;以及所述确定单元,包括:运行状态确定子单元,用于根据所述进程的状态信息确定所述待监控节点是否处于运行状态;获取子单元,用于响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控参数的名称对应的待监控参数;第二确定子单元,用于响应于所获取的待监控参数在所述待监控参数的取值范围内,确定所述待监控节点运行正常。
在一些实施例中,所述输出单元,进一步配置用于:响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,并执行预设操作,其中,所述预设操作包括重启所述待监控节点组中非正常运行的节点。
本申请提供的用于机器人操作系统的监控方法和装置,通过获取待监控节点组中各个待监控节点的进程标识,而后查询进程标识对应的进程的状态信息,并根据进程的状态信息确定待监控节点是否运行正常,最后响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息,从而提高了机器人操作系统的维护效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于机器人操作系统的监控方法的一个实施例的流程图;
图3是根据本申请的用于机器人操作系统的监控方法的一个应用场景的示意图;
图4是根据本申请的用于机器人操作系统的监控方法的又一个实施例的流程图;
图5是根据本申请的本申请的用于机器人操作系统的监控装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于机器人操作系统的消息传输方法或装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括主节点运行于其上的电子设备101,程序节点运行于其上的电子设备102、103,监控节点105和网络104。网络104用以在主节点运行于其上的电子设备101,程序节点运行于其上的电子设备102、103和监控节点运行于其上的电子设备105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。各个节点可以运行在相同或者不同的电子设备上,即设备101、102、103、105可以为相同设备也可以为不同设备。例如,在无人驾驶系统中,主节点、程序节点、监控节点可以均运行在车载控制器中,监控节点也可以运行在专门的监控服务器中。
在ROS中,主节点的主要功能是命名服务,存储了启动时需要的运行时参数,消息发布上游节点和接收下游节点的连接名和连接方式,和已有ROS服务的连接名。程序节点是真正的执行模块,对收到的消息进行处理,并且发布新的消息给下游节点。监控节点是一种特殊的节点,它相当于一种服务节点,可以接受请求并返回结果,例如,在无人驾驶系统中,当摄像头驱动程序节点在处理数据时发现数据出现异常,希望能够重启自身时。它可以通过调用监控API(Application Programming Interface,应用程序编程接口)向监控服务端即监控节点发送请求重启的指令。
监控节点运行于其上的电子设备105可以首先加载监控配置文件,以获取其包括的待监控节点以及待监控内容的信息,而后调用监控线程获取监控所需数据,最后比较所获取的数据是否符合预先配置的标准,具体的,对于节点组中节点是否存活的监控可以首先获取待监控节点组中各个待监控节点的进程标识,而后查询进程标识对应的进程的状态信息,并根据进程的状态信息确定待监控节点是否运行正常,最后响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。
需要说明的是,本申请实施例所提供的用于机器人操作系统的消息传输方法一般由车监控节点运行于其上的电子设备105执行,相应地,用于机器人操作系统的消息传输装置一般设置于监控节点运行于其上的电子设备105运行于其上的电子设备中。
应该理解,图1中的主节点、程序节点、监控节点的数目以及电子设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的主节点、程序节点、监控节点以及电子设备。
继续参考图2,示出了根据本申请的用于机器人操作系统的监控方法的一个实施例的流程200。所述的用于机器人操作系统的监控方法,包括以下步骤:
步骤201,获取待监控节点组中各个待监控节点的进程标识。
在本实施例中,在图1用于机器人操作系统的监控方法运行于其上的电子设备(例如图1所示的监控节点运行于其上的电子设备)可以获取待监控节点组中各个待监控节点的进程标识。待监控节点可以是ROS中任何一个需要被监控的程序节点,待监控节点组可以是功能相同或相近的节点的集合,例如,摄像头驱动程序实例化得到的若干个节点即可看作一个节点组。系统设计师可以将整个系统的所有节点的监控策略写入配置文件。配置文件中根据系统功能对所有节点进行分组,监控策略可以针对节点组设定。进程标识可以是进程标识符或进程名称。
在本实施例的一些可选的实现方式中,可以首先加载配置文件,从配置文件中获取监控配置信息,监控配置信息可以包括待监控节点对应的可执行文件的名称以及上述可执行文件所在功能包的名称。上述监控节点还可以负责启动整个系统中的节点,具体的,可以根据可执行文件的名称以及上述可执行文件所在功能包的名称确定待运行的可执行文件,运行上述待运行的可执行文件以启动待监控节点。还可以记录上述待监控节点的进程标识,以供后续查询使用。
在本实施例的一些可选的实现方式中,还可以直接通过节点的名称查询节点的进程标识。
步骤202,查询进程标识对应的进程的状态信息。
在本实施例中,上述电子设备可以查询步骤201中获取的进程标识对应的进程的状态信息。在不同的系统中查询命令不同,在Linux中可以使用ps(Process Status,进程状态)命令查询进程标识对应的进程的状态信息,进程的状态信息可以包括进程的状态,进程的CPU占用率、内存占用量等信息。
步骤203,根据进程的状态信息确定待监控节点是否运行正常。
在本实施例中,上述电子设备可以根据步骤202中查询到的进程的状态信息确定待监控节点是否运行正常。具体的,进程处于运行状态则可以认为其运行正常,也可以进一步根据进程的CPU占用率、内存占用量等信息确定其是否运行正常。
在本实施例的一些可选的实现方式中,上述电子设备还可以根据上述进程的状态信息确定上述待监控节点是否处于运行状态;响应于根据上述进程的状态信息确定出上述待监控节点处于运行状态,获取上述待监控节点进行数据传输的时间;根据上述待监控节点进行数据传输的时间,统计预定时间段内上述待监控节点进行数据传输的次数;响应于统计出的次数在预先设置的次数范围内,确定上述待监控节点运行正常。
在本实施例的一些可选的实现方式中,上述监控配置信息中还包括待监控参数的名称以及与上述待监控参数的名称对应的待监控参数的取值范围,上述待监控参数是待监控节点运行所产生的。上述电子设备还可以根据上述进程的状态信息确定上述待监控节点是否处于运行状态;响应于根据上述进程的状态信息确定出上述待监控节点处于运行状态,获取上述待监控参数的名称对应的待监控参数;响应于所获取的待监控参数在上述待监控参数的取值范围内,确定上述待监控节点运行正常。作为示例,待监控节点可以是用于计算无人驾驶车辆当前行驶速度的程序节点,待监控参数为行驶速度,计算出的行驶速度超过120km/h则可以认为此节点运行非正常,具体的取值范围可以根据实际设置。
步骤204,响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。
在本实施例中,上述电子设备可以响应于步骤203中确定的待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。预定阈值可以是在预先设置的监控配置信息中查询得到的。由于一个节点组中的各个节点可以互为备份,因此只要节点组中正常运行的节点超过一定数量,就不会影响整个系统的功能,所以只有在待监控节点组中运行正常的待监控节点的数量小于预定阈值时,才输出待监控节点组异常的信息。作为示例,在无人驾驶车辆中,摄像头驱动节点组,有10个节点,8个以上节点正常则可认为此组正常;雷达驱动节点组,分16线,32线,64线,只要64线节点存活或1个32线,2个16线节点存活即可认为此组正常。
在本实施例的一些可选的实现方式中,上述响应于上述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出上述待监控节点组异常的信息,包括:响应于上述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出上述待监控节点组异常的信息,并执行预设操作,其中,上述预设操作包括重启上述待监控节点组中非正常运行的节点。还可以根据配置文件中用户设置的监控策略优先启动预定节点,例如,雷达驱动节点组异常时优先重启64线的节点。此外,监控节点也可以提供API供用户在开发程序节点时使用。使得节点异常时可以调用API通知监控节点做相应的处理,例如,当摄像头驱动程序节点在处理数据时发现数据出现异常,希望能够重启自身时,可以通过调用监控API向监控服务端发送请求重启的指令。
继续参见图3,图3是根据本实施例用于机器人操作系统的监控方法的应用场景的一个示意图300。在图3的应用场景中,可以包括无人驾驶车辆301、云服务器306和网络305。网络305用以在无人驾驶车辆301和云服务器306之间提供通信链路的介质。网络305可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。云服务器306可以是提供各种服务的服务器,例如可以为无人驾驶车辆301提供消息传输异常指示的服务器。无人驾驶车辆301上可以安装有摄像头302、雷达303和车载控制器304。摄像头302、雷达303可以通过各种通信方式(例如有线、无线通信链路或者光纤电缆等等)将采集的信息发送给车载控制器304。车载控制器304上运行有改进的机器人操作系统,通过摄像头302、雷达303及其他采集器件采集的周围环境信息和高精度地图等数据,让车辆平稳精确地在道路上行驶。图3中的摄像头、雷达和后台服务器的数目仅仅是示意性的。
本申请实施例所提供的用于机器人操作系统的监控方法一般由车载控制器304执行,也可以设置专门的监控服务器执行监控方法。以车载控制器304对于摄像头驱动节点组中10个节点的监控为例,可以首先加载监控配置文件后,获取摄像头驱动节点组运行正常的阈值为8个,即8个以上节点正常则可认为此组正常。而后获取摄像头驱动节点组中各个摄像头驱动节点的进程标识,查询进程标识对应的进程的状态信息,并根据进程的状态信息确定摄像头驱动节点是否运行正常,最后响应于摄像头驱动节点组中运行正常的摄像头驱动节点的数量小于8个,输出摄像头驱动节点组异常的信息。
本申请提供的用于机器人操作系统的监控方法和装置,通过获取待监控节点组中各个待监控节点的进程标识,而后查询进程标识对应的进程的状态信息,并根据进程的状态信息确定待监控节点是否运行正常,最后响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息,从而提高了复杂的机器人操作系统的维护效率。
进一步参考图4,其示出了用于机器人操作系统的监控方法的又一个实施例的流程400。该用于机器人操作系统的监控方法的流程400,包括以下步骤:
步骤401,获取待监控节点组中各个待监控节点的进程标识。
在本实施例中,在图1用于机器人操作系统的监控方法运行于其上的电子设备(例如图1所示的监控节点运行于其上的电子设备)可以获取待监控节点组中各个待监控节点的进程标识。
步骤402,查询进程标识对应的进程的状态信息。
在本实施例中,上述电子设备可以查询步骤401中获取的进程标识对应的进程的状态信息。在不同的系统中查询命令不同,可以使用不同命令查询进程标识对应的进程的状态信息,进程的状态信息可以包括进程的状态,例如运行、中断、不可中断、僵死、停止等。
步骤403,根据进程的状态信息确定待监控节点是否处于运行状态。
在本实施例中,上述电子设备可以根据步骤402中查询到的进程的状态信息确定待监控节点是否处于运行状态。
步骤404,响应于根据进程的状态信息确定出待监控节点处于运行状态,获取待监控节点进行数据传输的时间。
在本实施例中,上述电子设备可以响应于步骤403中根据进程的状态信息确定出待监控节点处于运行状态,获取待监控节点进行数据传输的时间。节点进行数据传输的时间可以通过预定监控线程获取,具体的,可以修改ROS底层传输系统,在每次待监控节点启动时,加载监控配置信息,监控配置信息包括所需监控的话题名称及预定时间段内发布或接受消息的次数,并针对用于管理ROS数据传输的话题管理器增加传输回调机制,以获取待监控节点进行数据传输的时间。传输回调机制是指,在原生系统接收或者发送数据后,调用通知函数,以记录数据发布或到达的时间。这种实现方式对原生ROS的污染较少,而且通知函数只记录当前时间,并不进行相关运算处理,不会阻塞数据传输通道,对传输性能基本无影响。
步骤405,根据待监控节点进行数据传输的时间,统计预定时间段内待监控节点进行数据传输的次数。
在本实施例中,上述电子设备可以根据步骤404获取的待监控节点进行数据传输的时间,统计预定时间段内待监控节点进行数据传输的次数。预定时间段可以是单位时间,例如,一秒、一分钟,具体可根据实际设置。单位时间内待监控节点进行数据传输的次数即可认为是传输频率。
步骤406,响应于统计出的次数在预先设置的次数范围内,确定待监控节点运行正常。
在本实施例中,上述电子设备可以响应于步骤405中统计出的次数在预先设置的次数范围内,确定待监控节点运行正常。预先设置的次数范围可以通过加载监控配置信息获取,具体可根据实际需要设置。
步骤407,响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。
在本实施例中,上述电子设备可以响应于步骤406中确定的待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。预定阈值可以是在预先设置的监控配置信息中查询得到的。输出待监控节点组异常的信息之后还可以根据预先设置的配置信息确定是否重启异常节点组中的非正常节点。
从图4中可以看出,与图2对应的实施例不同的是,本实时例中首先增加了统计预定时间段内待监控节点进行数据传输的次数,并据此进一步判断节点是否运行正常的步骤,从而在提高了系统维护效率的同时,增加了监控项目,增强了系统的可靠性。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种网页生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例所述的网页生成装置500包括:获取单元501、查询单元502、确定单元503和输出单元504。其中,获取单元501,用于获取待监控节点组中各个待监控节点的进程标识;查询单元502,用于查询上述进程标识对应的进程的状态信息;确定单元503,用于根据上述进程的状态信息确定上述待监控节点是否运行正常;输出单元504,用于响应于上述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出上述待监控节点组异常的信息,其中,上述预定阈值是在预先设置的监控配置信息中查询得到的。
在本实施例中,获取单元501、查询单元502、确定单元503和输出单元504的具体处理可以参考图2对应实施例步骤201、步骤202、步骤203和步骤204的详细描述,在此不再赘述。
在本实施例的一些可选的实现方式中,上述监控配置信息还包括待监控节点对应的可执行文件的名称以及上述可执行文件所在功能包的名称;以及上述装置还包括:可执行文件确定单元(未示出),用于根据可执行文件的名称以及上述可执行文件所在功能包的名称确定待运行的可执行文件;运行单元(未示出),用于运行上述待运行的可执行文件以启动待监控节点;记录单元(未示出),用于记录上述待监控节点的进程标识。
在本实施例的一些可选的实现方式中,上述确定单元503,包括:运行状态确定子单元(未示出),用于根据上述进程的状态信息确定上述待监控节点是否处于运行状态;时间获取子单元(未示出),用于响应于根据上述进程的状态信息确定出上述待监控节点处于运行状态,获取上述待监控节点进行数据传输的时间;统计子单元(未示出),用于根据上述待监控节点进行数据传输的时间,统计预定时间段内上述待监控节点进行数据传输的次数;第一确定子单元(未示出),用于响应于统计出的次数在预先设置的次数范围内,确定上述待监控节点运行正常。
在本实施例的一些可选的实现方式中,上述监控配置信息中还包括待监控参数的名称以及与上述待监控参数的名称对应的待监控参数的取值范围,上述待监控参数是待监控节点运行所产生的;以及上述确定单元503,包括:运行状态确定子单元(未示出),用于根据上述进程的状态信息确定上述待监控节点是否处于运行状态;获取子单元(未示出),用于响应于根据上述进程的状态信息确定出上述待监控节点处于运行状态,获取上述待监控参数的名称对应的待监控参数;第二确定子单元(未示出),用于响应于所获取的待监控参数在上述待监控参数的取值范围内,确定上述待监控节点运行正常。
在本实施例的一些可选的实现方式中,上述输出单元504,进一步配置用于:响应于上述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出上述待监控节点组异常的信息,并执行预设操作,其中,上述预设操作包括重启上述待监控节点组中非正常运行的节点。
下面参考图6,其示出了适于用来实现本申请实施例的设备的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、查询单元、确定单元以及输出单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取待监控节点组中各个待监控节点的进程标识的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取待监控节点组中各个待监控节点的进程标识;查询进程标识对应的进程的状态信息;根据进程的状态信息确定待监控节点是否运行正常;响应于待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出待监控节点组异常的信息。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种用于机器人操作系统的监控方法,其特征在于,所述方法包括:
获取待监控节点组中各个待监控节点的进程标识,其中,所述待监控节点组是功能相同或相近的节点的集合;
查询所述进程标识对应的进程的状态信息;
根据所述进程的状态信息确定所述待监控节点是否运行正常;
响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,其中,所述预定阈值是在预先设置的监控配置信息中查询得到的,所述监控配置信息还包括待监控节点对应的可执行文件的名称以及所述可执行文件所在功能包的名称。
2.根据权利要求1所述的方法,其特征在于,所述获取待监控节点组中各个待监控节点的进程标识之前,所述方法还包括:
根据可执行文件的名称以及所述可执行文件所在功能包的名称确定待运行的可执行文件;
运行所述待运行的可执行文件以启动待监控节点;
记录所述待监控节点的进程标识。
3.根据权利要求1所述的方法,其特征在于,所述根据所述进程的状态信息确定所述待监控节点是否运行正常,包括:
根据所述进程的状态信息确定所述待监控节点是否处于运行状态;
响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控节点进行数据传输的时间;
根据所述待监控节点进行数据传输的时间,统计预定时间段内所述待监控节点进行数据传输的次数;
响应于统计出的次数在预先设置的次数范围内,确定所述待监控节点运行正常。
4.根据权利要求1所述的方法,其特征在于,所述监控配置信息中还包括待监控参数的名称以及与所述待监控参数的名称对应的待监控参数的取值范围,所述待监控参数是待监控节点运行所产生的;以及
所述根据所述进程的状态信息确定所述待监控节点是否运行正常,包括:
根据所述进程的状态信息确定所述待监控节点是否处于运行状态;
响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控参数的名称对应的待监控参数;
响应于所获取的待监控参数在所述待监控参数的取值范围内,确定所述待监控节点运行正常。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,包括:
响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,并执行预设操作,其中,所述预设操作包括重启所述待监控节点组中非正常运行的节点。
6.一种用于机器人操作系统的监控装置,其特征在于,所述装置包括:
获取单元,用于获取待监控节点组中各个待监控节点的进程标识,其中,所述待监控节点组是功能相同或相近的节点的集合;
查询单元,用于查询所述进程标识对应的进程的状态信息;
确定单元,用于根据所述进程的状态信息确定所述待监控节点是否运行正常;
输出单元,用于响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,其中,所述预定阈值是在预先设置的监控配置信息中查询得到的,所述监控配置信息还包括待监控节点对应的可执行文件的名称以及所述可执行文件所在功能包的名称。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
可执行文件确定单元,用于根据可执行文件的名称以及所述可执行文件所在功能包的名称确定待运行的可执行文件;
运行单元,用于运行所述待运行的可执行文件以启动待监控节点;
记录单元,用于记录所述待监控节点的进程标识。
8.根据权利要求6所述的装置,其特征在于,所述确定单元,包括:
运行状态确定子单元,用于根据所述进程的状态信息确定所述待监控节点是否处于运行状态;
时间获取子单元,用于响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控节点进行数据传输的时间;
统计子单元,用于根据所述待监控节点进行数据传输的时间,统计预定时间段内所述待监控节点进行数据传输的次数;
第一确定子单元,用于响应于统计出的次数在预先设置的次数范围内,确定所述待监控节点运行正常。
9.根据权利要求6所述的装置,其特征在于,所述监控配置信息中还包括待监控参数的名称以及与所述待监控参数的名称对应的待监控参数的取值范围,所述待监控参数是待监控节点运行所产生的;以及
所述确定单元,包括:
运行状态确定子单元,用于根据所述进程的状态信息确定所述待监控节点是否处于运行状态;
获取子单元,用于响应于根据所述进程的状态信息确定出所述待监控节点处于运行状态,获取所述待监控参数的名称对应的待监控参数;
第二确定子单元,用于响应于所获取的待监控参数在所述待监控参数的取值范围内,确定所述待监控节点运行正常。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述输出单元,进一步配置用于:
响应于所述待监控节点组中运行正常的待监控节点的数量小于预定阈值,输出所述待监控节点组异常的信息,并执行预设操作,其中,所述预设操作包括重启所述待监控节点组中非正常运行的节点。
CN201610827061.4A 2016-09-14 2016-09-14 用于机器人操作系统的监控方法和装置 Active CN107819640B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610827061.4A CN107819640B (zh) 2016-09-14 2016-09-14 用于机器人操作系统的监控方法和装置
US15/410,454 US10331521B2 (en) 2016-09-14 2017-01-19 Method and apparatus for monitoring robot operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610827061.4A CN107819640B (zh) 2016-09-14 2016-09-14 用于机器人操作系统的监控方法和装置

Publications (2)

Publication Number Publication Date
CN107819640A CN107819640A (zh) 2018-03-20
CN107819640B true CN107819640B (zh) 2019-06-28

Family

ID=61560044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610827061.4A Active CN107819640B (zh) 2016-09-14 2016-09-14 用于机器人操作系统的监控方法和装置

Country Status (2)

Country Link
US (1) US10331521B2 (zh)
CN (1) CN107819640B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634802B (zh) * 2018-11-12 2023-04-14 平安科技(深圳)有限公司 进程监控方法及终端设备
CN109672788B (zh) * 2018-11-14 2021-09-07 平安科技(深圳)有限公司 用户来电的进线监控方法及装置、电子设备、存储介质
CN111385321B (zh) * 2018-12-28 2023-03-24 深圳市优必选科技有限公司 一种节点响应方法、系统及机器人
CN110309028B (zh) * 2019-06-19 2023-04-28 北京奇艺世纪科技有限公司 监控信息获取方法、服务监控方法、装置及系统
CN111506480B (zh) * 2020-04-23 2024-03-08 上海达梦数据库有限公司 集群中组件的状态检测方法、装置和系统
CN113268389A (zh) * 2021-06-09 2021-08-17 无锡炫我科技有限公司 异常节点监测的方法、装置、电子设备和可读存储介质
CN113806109A (zh) * 2021-09-15 2021-12-17 诚迈科技(南京)股份有限公司 基于ros2实现soa架构的座舱系统及其运行方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651583A (zh) * 2009-09-17 2010-02-17 杭州华三通信技术有限公司 一种监控信息管理方法及装置
CN102253863A (zh) * 2011-06-15 2011-11-23 奇智软件(北京)有限公司 一种进程关闭方法
CN105278940A (zh) * 2014-07-08 2016-01-27 北京航空航天大学 一种基于多核处理器架构的机器人混合系统应用框架
CN105357038A (zh) * 2015-10-26 2016-02-24 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统
CN105389243A (zh) * 2015-10-26 2016-03-09 华为技术有限公司 一种容器监控方法和装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
US6745350B1 (en) * 1997-01-03 2004-06-01 Ncr Corporation Automated failure recovery service
JP3253883B2 (ja) * 1997-01-31 2002-02-04 株式会社東芝 プロセスリスタート方法及びプロセス監視装置
WO2000022527A1 (en) * 1998-10-09 2000-04-20 Sun Microsystems, Inc. Process monitoring in a computer system
US6763369B1 (en) * 1999-07-13 2004-07-13 Interactive Intelligence, Inc. Hierarchical process management in an intelligent call processing system
US6718486B1 (en) * 2000-01-26 2004-04-06 David E. Lovejoy Fault monitor for restarting failed instances of the fault monitor
US6594774B1 (en) * 1999-09-07 2003-07-15 Microsoft Corporation Method and apparatus for monitoring computer system objects to improve system reliability
US7225362B2 (en) * 2001-06-11 2007-05-29 Microsoft Corporation Ensuring the health and availability of web applications
US7003775B2 (en) * 2001-08-17 2006-02-21 Hewlett-Packard Development Company, L.P. Hardware implementation of an application-level watchdog timer
US20030226056A1 (en) * 2002-05-28 2003-12-04 Michael Yip Method and system for a process manager
US7281171B2 (en) * 2003-01-14 2007-10-09 Hewlwtt-Packard Development Company, L.P. System and method of checking a computer system for proper operation
US7293201B2 (en) * 2003-01-17 2007-11-06 Microsoft Corporation System and method for active diagnosis and self healing of software systems
GB2412190B (en) * 2004-03-17 2007-03-28 Ibm A recovery framework
DE102005024327B4 (de) * 2005-05-27 2009-04-09 Siemens Ag Watch-Dog in einer verteilten Applikations-Umgebung
US20070220375A1 (en) * 2006-02-24 2007-09-20 Symbol Technologies, Inc. Methods and apparatus for a software process monitor
KR101627132B1 (ko) * 2008-12-15 2016-06-13 삼성전자 주식회사 로봇 및 그 복구 방법
US8239709B2 (en) * 2009-08-12 2012-08-07 Apple Inc. Managing extrinsic processes
US9240937B2 (en) * 2011-03-31 2016-01-19 Microsoft Technology Licensing, Llc Fault detection and recovery as a service
KR20130037977A (ko) * 2011-10-07 2013-04-17 한국전자통신연구원 로봇 컴포넌트 관리 장치 및 방법
US9178772B2 (en) * 2013-06-25 2015-11-03 Cisco Technology, Inc. Cumulative node heartbeat relay agents in constrained computer networks
US9535794B2 (en) * 2013-07-26 2017-01-03 Globalfoundries Inc. Monitoring hierarchical container-based software systems
US10042697B2 (en) * 2015-05-28 2018-08-07 Oracle International Corporation Automatic anomaly detection and resolution system
US10536357B2 (en) * 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
CN106293979B (zh) * 2015-06-25 2019-11-15 伊姆西公司 检测进程无响应的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651583A (zh) * 2009-09-17 2010-02-17 杭州华三通信技术有限公司 一种监控信息管理方法及装置
CN102253863A (zh) * 2011-06-15 2011-11-23 奇智软件(北京)有限公司 一种进程关闭方法
CN105278940A (zh) * 2014-07-08 2016-01-27 北京航空航天大学 一种基于多核处理器架构的机器人混合系统应用框架
CN105357038A (zh) * 2015-10-26 2016-02-24 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统
CN105389243A (zh) * 2015-10-26 2016-03-09 华为技术有限公司 一种容器监控方法和装置

Also Published As

Publication number Publication date
US10331521B2 (en) 2019-06-25
CN107819640A (zh) 2018-03-20
US20180074878A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
CN107819640B (zh) 用于机器人操作系统的监控方法和装置
CN107729139B (zh) 一种并发获取资源的方法和装置
US20120054756A1 (en) Dynamic Test Scheduling
JPH05207025A (ja) ネットワーク・パフォーマンス・データを得るためのシステムおよび方法
CN112506617B (zh) Kubernetes集群中边车容器的镜像更新方法及装置
US20110289354A1 (en) Distributed Batch Runner
US10127093B1 (en) Method and apparatus for monitoring a message transmission frequency in a robot operating system
GB2378546A (en) Automatic configuration of performance management software
CN113312161A (zh) 一种应用调度方法、平台及存储介质
CN107729213B (zh) 一种后台任务监控方法及装置
CN115865564A (zh) 一种支持高速电力线载波通信的边缘计算网关装置
CN108810051A (zh) 数据传输方法和装置
CN111555987B (zh) 限流配置方法、装置、设备及计算机存储介质
CN109995571B (zh) 服务器配置与vnf应用匹配的方法及装置
US11388038B2 (en) Operation device and operation method
US9442746B2 (en) Common system services for managing configuration and other runtime settings of applications
CN113220434B (zh) 基于依赖模型的任务调度方法和依赖模型配置方法
CN116303320A (zh) 基于日志文件的实时任务管理方法、装置、设备及介质
US9244736B2 (en) Thinning operating systems
JP5387083B2 (ja) ジョブ管理システムおよび方法
CN115509714A (zh) 一种任务处理方法、装置、电子设备及存储介质
US20220091887A1 (en) System and method for finding and identifying computer nodes in a network
CN112398707B (zh) 分布式自动化测试管理方法、装置、设备及存储介质
CN110297741B (zh) 一种后台任务监控方法及装置
CN114968555A (zh) 实时数据同步平台的底层资源调度方法、装置及电子设备

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
GR01 Patent grant
GR01 Patent grant