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

面向机器人ROS程序的自动崩溃恢复方法和系统技术方案

技术编号:29296673 阅读:23 留言:0更新日期:2021-07-17 00:58
本发明专利技术提供一种面向机器人ROS程序的自动崩溃恢复方法和系统,其中恢复方法包括:在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及接收的信息;当监测到所述目标程序崩溃时,使机器人进入安全状态、使所述目标程序进入隔离状态、并执行崩溃恢复操作;所述崩溃恢复操作包括:重启所述目标程序,基于所述检查点恢复关键信息,并将所述目标程序重放在最后一次设置检查点后接收的信息。本发明专利技术提出了面向机器人ROS程序的自动崩溃恢复方法,利用程序隔离技术,可以防止ROS程序在恢复过程中与其他程序相互影响,防止恢复失败;利用检查点和消息重放相结合的技术,可正确高效地恢复不同类型的ROS程序。可正确高效地恢复不同类型的ROS程序。可正确高效地恢复不同类型的ROS程序。

【技术实现步骤摘要】
面向机器人ROS程序的自动崩溃恢复方法和系统


[0001]本专利技术涉及机器人系统领域,尤其涉及一种面向机器人ROS程序的自动崩溃恢复方法和系统。

技术介绍

[0002]ROS是一种机器人软件开发程序和工具库,提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等功能,在现有机器人开发和应用中被广泛使用。在机器人系统中,通常有多个ROS程序同时运行,每个程序执行自己的特定任务,不同程序之间通过发布与订阅消息相互沟通,从而相互配合共同完成机器人的总体功能。该结构使得相同的ROS程序可以在不同机器人系统中重复使用,降低机器人系统的开发难度和成本。
[0003]但是,ROS程序在运行过程中,可能由于系统配置、环境异常或者代码缺陷等原因发生崩溃。如果该程序无法准确地被恢复,则机器人将无法正常继续工作。该问题对于工作在无人环境(例如沙漠、森林和太空等)的机器人来说,是非常严重和危险的。为了进行程序的崩溃恢复,ROS系统只为用户提供了一种默认恢复手段,即在崩溃后重启。但是,这种恢复方式无法正确完整地恢复目标程序在崩溃前的数据,可能导致崩溃恢复后,目标程序执行出现异常。例如,机器人路径规划程序在崩溃重启后,由于丢失机器人的当前位置与目标位置信息,使机器人路径规划错误,可能造成撞击障碍物的严重后果。在ROS Answers网站中,很多开发者在使用崩溃后重启的方法时出现了机器人运行异常的问题。因此,为ROS程序设计正确高效的崩溃恢复方法,以提高机器人系统的鲁棒性,是十分重要的。
[0004]检查点和消息重放作为两种传统的崩溃恢复机制,在分布式系统、操作系统和数据库等传统程序中被广泛使用。检查点机制一般以某个固定时间间隔自动保存程序部分必要或全部信息。然而,该机制会丢失相邻检查点之间的数据,影响崩溃恢复的完整性和正确性。消息重放机制会保存从程序启动至崩溃的所有消息,在恢复时重新将这些消息重放给目标程序,使目标程序重新恢复至崩溃时的状态。然而,该机制可能由于消息重放时间可能较长,增加崩溃恢复的时间开销。而且,不同于传统程序,在机器人系统中,由于周围环境仍在不断变化,恢复ROS程序时,恢复的内容可能已经与当前环境不一致。此外,在崩溃恢复时,目标程序与其他程序之间可能会发生消息传递,从而影响目标程序的恢复过程和其他程序的运行状态。因此,简单复用检查点和消息重放机制对ROS程序来说是不可行的。
[0005]因此,设计一种正确高效的面向机器人ROS程序的自动崩溃恢复方法成为了机器人系统开发和维护中亟待解决的问题。

技术实现思路

[0006]本专利技术提供一种面向机器人ROS程序的自动崩溃恢复方法和系统,用以解决现有技术中存在的技术缺陷。
[0007]本专利技术提供一种面向机器人ROS程序的自动崩溃恢复方法,包括:
[0008]在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及
接收的信息;
[0009]当监测到所述目标程序崩溃时,使机器人进入安全状态、使所述目标程序进入隔离状态、并执行崩溃恢复操作;
[0010]所述崩溃恢复操作包括:重启所述目标程序,基于所述检查点恢复关键信息,并将所述目标程序重放在最后一次设置检查点后接收的信息。
[0011]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复方法,所述在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及接收的信息之前,包括:
[0012]利用LLVM编译器架构对所述目标程序的源代码进行编译,生成中间代码文件;
[0013]基于输入的关键信息,在所述中间代码文件中插入用于目标程序运行监测、崩溃恢复的相关代码。
[0014]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复方法,所述使机器人进入安全状态包括:
[0015]使机器人停止移动或暂停任务。
[0016]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复方法,所述执行崩溃恢复操作之后,包括:
[0017]解除所述目标程序的隔离状态;
[0018]使机器人解除安全状态。
[0019]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复方法,所述使机器人解除安全状态之后,还包括:
[0020]基于预先设定的目标任务,自动重新设定所述目标任务。
[0021]本专利技术还提供了一种面向机器人ROS程序的自动崩溃恢复系统,包括:
[0022]程序监测模块,用于在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及接收的信息;
[0023]程序崩溃处理模块,用于当监测到所述目标程序崩溃时,使机器人进入安全状态、使所述目标程序进入隔离状态、并执行崩溃恢复操作;
[0024]所述崩溃恢复操作包括:重启所述目标程序,基于所述检查点恢复关键信息,并将所述目标程序重放在最后一次设置检查点后接收的信息。
[0025]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复系统,所述系统包括:
[0026]程序编译模块,用于利用LLVM编译器架构对所述目标程序的源代码进行编译,生成中间代码文件;
[0027]程序插桩模块,用于基于输入的关键信息,在所述中间代码文件中插入用于目标程序运行监测、崩溃恢复的相关代码。
[0028]根据本专利技术提供的面向机器人ROS程序的自动崩溃恢复系统,其特征在于,所述系统还包括:
[0029]隔离解除模块,用于在崩溃恢复之后,解除所述目标程序的隔离状态;
[0030]安全状态解除模块,用于在崩溃恢复之后,使机器人解除安全状态。
[0031]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述面向机器人ROS程序的自动崩溃恢复方法的步骤。
[0032]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述面向机器人ROS程序的自动崩溃恢复方法的步骤。
[0033]本专利技术提出了面向机器人ROS程序的自动崩溃恢复方法,利用程序隔离技术,可以防止ROS程序在恢复过程中与其他程序相互影响,防止恢复失败;利用检查点和消息重放相结合的技术,可正确高效地恢复不同类型的ROS程序。本专利技术实施例的工作流程是自动的,不需要用户手动干预恢复过程,可以方便有效地进行ROS程序的崩溃恢复,提高ROS程序的鲁棒性。
附图说明
[0034]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本专利技术一实施例提供的面向机器人ROS程序的自动崩溃恢复方法的流程示意图;
[0036]图2是本专利技术一实施例提供的ROS代码的编译、插本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向机器人ROS程序的自动崩溃恢复方法,其特征在于,包括:在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及接收的信息;当监测到所述目标程序崩溃时,使机器人进入安全状态、使所述目标程序进入隔离状态、并执行崩溃恢复操作;所述崩溃恢复操作包括:重启所述目标程序,基于所述检查点恢复关键信息,并将所述目标程序重放在最后一次设置检查点后接收的信息。2.根据权利要求1所述的面向机器人ROS程序的自动崩溃恢复方法,其特征在于,所述在目标程序运行时,监测目标程序运行状态、定时设置检查点并记录关键信息及接收的信息之前,包括:利用LLVM编译器架构对所述目标程序的源代码进行编译,生成中间代码文件;基于输入的关键信息,在所述中间代码文件中插入用于目标程序运行监测、崩溃恢复的相关代码。3.根据权利要求2所述的面向机器人ROS程序的自动崩溃恢复方法,其特征在于,所述使机器人进入安全状态包括:使机器人停止移动或暂停任务。4.根据权利要求1所述的面向机器人ROS程序的自动崩溃恢复方法,其特征在于,所述执行崩溃恢复操作之后,包括:解除所述目标程序的隔离状态;使机器人解除安全状态。5.根据权利要求4所述的面向机器人ROS程序的自动崩溃恢复方法,其特征在于,所述使机器人解除安全状态之后,还包括:基于预先设定的目标任务,自动重新设定所述目标任务。6.一种面向机器人ROS程序的自动崩溃恢复系统,其特征在于,包括:程序监测模...

【专利技术属性】
技术研发人员:白家驹邹永浩胡事民
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1