基于归因记录的行为树执行失败闭环修正方法及系统

摘要: 本发明涉及机器人学习与控制,特别涉及一种行为树执行失败后的自动归因与针对性闭环修正方法及系统。背景技术:1、在机器人操作任务中,行为树因其模块化、可解释和反应式...
基于归因记录的行为树执行失败闭环修正方法及系统

本发明涉及机器人学习与控制,特别涉及一种行为树执行失败后的自动归因与针对性闭环修正方法及系统。

背景技术:

1、在机器人操作任务中,行为树因其模块化、可解释和反应式的控制特性,被广泛用于组织和调度机器人的操作技能。将示教学习与行为树相结合的方法,能够从示教数据中提取运动技能与符号条件,并组织为可执行的行为树,使非专业用户能够便捷地为机器人编程。然而,由于示教数据有限、感知存在噪声以及部署环境会随时间变化,行为树在实际执行过程中难免发生失败,因此需要有效的故障恢复机制。

2、现有的行为树故障处理方法存在若干局限。一些方法在行为树结构中预先写入静态的恢复分支,当主任务节点失败时执行预定义的备选恢复动作,但这类方法的恢复行为在部署前已经固定,无法应对部署期间新出现的、未被设计者预见的故障类型。一些方法依赖人工干预,在执行失败后由操作人员通过交互界面手动指定修正内容,自动化程度低且效率受限。还有一些方法在失败后从顶层重新规划或重新示教,丢弃了已有的学习成果,恢复代价高昂;另有方法借助强化学习在线调整恢复行为,但需要大量样本,难以满足快速恢复的需求。

3、通过对上述现有技术的分析,可识别出以下结构性局限:

4、第一,恢复机制静态固化的问题。现有方法的恢复行为多在部署前以固定结构写入行为树,无法根据运行时实际发生的故障动态确定修正内容,对未预见的故障类型缺乏适应能力。

5、第二,符号条件不可修订的问题。现有方法通常将从示教中推断的前置条件和后置条件作为固定约束编译进行为树结构,符号条件不作为独立可操作的对象存在,用户无法在运行时直接查看和修正,失败后只能整体重新示教或离线修改程序结构。

6、第三,修正缺乏局部性、易于扩散的问题。现有方法在修正时往往引起全局性变更,例如重新示教即重置全部技能,或修正一处而影响其他已学习的技能,导致修正一处却破坏多处,难以保留已有的学习成果。

技术实现思路

1、针对现有技术中恢复机制静态固化、符号条件不可修订以及修正缺乏局部性的问题,本发明提供一种基于归因记录的行为树执行失败闭环修正方法及系统。所述方法以由参数化技能算子库构成的可执行行为树为对象,在执行失败时自动生成结构化的归因记录,根据故障类型对受影响算子进行针对性局部修正,并循环验证直至成功,无需重新示教即可实现故障恢复。在协作机械臂平台上的验证表明,对于条件偏差场景,本方法的恢复时间相较对比方法降低约64%;对于运动不可行场景,恢复时间相较对比方法降低约42%。

2、下面对各步骤的技术方案进行细化说明。

3、步骤s1,获取待执行的行为树并执行该行为树:系统以目标谓词集合和初始符号状态为输入,从由参数化技能算子库构成的可执行行为树开始执行;其中,所述行为树的生成来源不受限定,可以由示教学习获得、由语言模型生成或由人工编写,只要其由包含符号接口与运动模型的参数化技能算子构成即可;

4、步骤s2,归因记录生成:当行为树执行失败时,系统生成归因记录五元组 a = (, , , , ),其中  为发生失败的故障节点, 为与该节点关联的算子, 为违反谓词, 为当前符号状态, 为期望符号状态;该结构化记录将一次执行失败编码为可机器处理的最小诊断单元,使失败定位从重启整个流程细化到精确至单个算子的单个组件;

5、步骤s3,故障分类:系统根据故障节点的类型将故障自动分为三类:当前置条件检查节点在执行前返回失败时,判定为前置条件失败,表示当前状态不满足技能的前提假设;当后置条件检查节点在动作执行后返回失败时,判定为后置条件失败,表示动作未产生期望的状态变化;当动作节点本身返回失败时,判定为动作执行失败,表示运动策略因环境变化而不可行;由于行为树节点的类型本身蕴含语义,故障分类无需人工判断即可自动完成;

6、步骤s4,针对性局部修正:系统根据故障类别引导修正动作:若故障为条件错误(前置条件失败或后置条件失败),则修正所述关联算子的符号接口,包括调整谓词参数、添加谓词条件或删除谓词条件;若故障为动作不可执行(动作执行失败),则修正所述关联算子的运动模型,包括调整运动参数或对受影响片段重新学习运动轨迹。

7、步骤s5与步骤s6,闭环验证:修正完成后,系统基于更新后的算子库重新生成行为树并执行;若执行成功,则算子库被视为已收敛;若仍失败,则再次生成归因记录并重复上述归因、分类与修正过程;该验证-修订循环持续进行,直至执行成功或达到最大迭代次数。

8、优选的,每次修正仅作用于所述关联算子的对应组件,不向参数化技能算子库中的其他算子传播变更,从而在恢复故障的同时保留其他算子已有的学习成果。这是本发明区别于整体重规划或重新示教类方法的核心特征。

9、优选的,本发明将符号条件维护为显式、可查看、可修订的实体,符号条件包括前置条件谓词、后置条件谓词和效果谓词,而非编译固化进行为树结构的固定约束。由此,修正操作可直接作用于受影响算子的相应字段,而无需重新解析整棵行为树。

10、一种基于归因记录的行为树执行失败闭环修正系统,其特征在于,包括:

11、行为树执行模块,配置为执行由参数化技能算子库构成的可执行行为树;

12、归因记录生成模块,配置为在执行失败时生成包含故障节点、关联算子、违反谓词、当前符号状态和期望符号状态的归因记录;

13、故障分类模块,配置为根据故障节点的类型将故障分类为前置条件失败、后置条件失败和动作执行失败;

14、修正模块,配置为根据故障类别对关联算子进行针对性局部修正,包括修正符号接口的符号接口修正单元和修正运动模型的运动模型修正单元,且每次修正仅作用于关联算子的对应组件;

15、算子库管理模块,配置为将符号条件维护为显式可修订实体,并将修正结果写回受影响算子;

16、重规划与执行模块,配置为在修正后重新生成行为树并执行,循环直至执行成功或达到最大迭代次数。

17、本发明的技术效果在于:通过结构化归因记录、基于节点语义的自动故障分类以及针对性局部修正,本发明在执行失败后无需重新示教即可快速恢复,并保留其他算子的学习成果。在协作机械臂平台上的验证表明,对于由感知偏差引起的条件偏差场景,本方法的恢复时间相较对比方法降低约64%;对于由环境变化引起的运动不可行场景,恢复时间相较对比方法降低约42%。此外,由于本发明对行为树的生成来源不作限定,其闭环修正机制对任何由参数化技能算子构成的可执行行为树均适用。

1.一种基于归因记录的行为树执行失败闭环修正方法,其特征在于,以由参数化技能算子库构成的可执行行为树为对象,所述参数化技能算子库中每个算子包含符号接口与运动模型,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述步骤s2中,所述归因记录表示为五元组 a = (, , , , ),其中  为故障节点, 为与故障节点关联的算子, 为违反谓词, 为当前符号状态, 为期望符号状态。

3.根据权利要求1所述的方法,其特征在于,所述步骤s3中,根据故障节点的类型将故障分类为三类:前置条件检查节点返回失败时判定为前置条件失败,表示当前状态不满足所需前置条件;后置条件检查节点在动作执行后返回失败时判定为后置条件失败,表示动作未产生期望的状态变化;动作节点返回失败时判定为动作执行失败,表示运动策略因环境变化而不可行。

4.根据权利要求3所述的方法,其特征在于,所述步骤s4中,当故障为前置条件失败或后置条件失败时,修正所述关联算子的符号接口,所述符号接口的修正包括调整谓词参数、添加谓词条件或删除谓词条件;当故障为动作执行失败时,修正所述关联算子的运动模型,所述运动模型的修正包括调整运动参数或对受影响片段重新学习运动轨迹。

5.根据权利要求1所述的方法,其特征在于,所述符号接口包括前置条件谓词集合、后置条件谓词集合及效果谓词集合,所述符号条件作为显式、可查看、可修订的实体进行维护,使所述修正能够直接作用于所述关联算子的相应字段,而无需重新解析整棵行为树。

6.根据权利要求1所述的方法,其特征在于,所述可执行行为树由参数化技能算子库生成,所述生成的来源不作限定,包括由示教学习、由语言模型生成或由人工编写构成的行为树;所述闭环修正方法对任何由参数化技能算子构成的可执行行为树均适用。

7.一种基于归因记录的行为树执行失败闭环修正系统,其特征在于,包括: