Skip to content

行为树在机器人控制系统中的应用

Behavior Trees in Robot Control Systems

Ögren, P., & Sprague, C. I. (2022). Behavior Trees in Robot Control Systems. Annual Review of Control, Robotics, and Autonomous Systems, 5, 1-25.

摘要

本文档总结了Ögren和Sprague(2022)对机器人行为树(BTs)的控制理论视角(论文见后)。行为树是一种强大的工具,旨在通过利用模块化、层次结构和反馈来管理复杂多功能机器人控制系统的复杂性。BTs源于游戏行业,并通过提供比有限状态机(FSMs)更优越的模块化和反馈机制,解决了复杂控制策略的开发、调试和扩展挑战。该文档将深入探讨BTs的核心概念,其与现有控制理论和AI范式的联系,以及其在机器人系统中的应用优势。

核心主题与重要见解

1. 行为树的核心思想:模块化、层次结构和反馈

行为树的核心在于结合了三个关键概念来管理机器人控制系统的复杂性:

  • 模块化 (Modularity): BTs将系统划分为定义明确的模块,每个模块都可以独立开发、测试和扩展,无需了解整个系统的详细信息。这显著降低了软件开发的复杂性。“模块化是处理软件复杂性的一个众所周知的工具,通过启用独立模块的开发、调试和扩展,而无需详细了解整个系统。”
  • 层次结构 (Hierarchy): 自然地将模块组织成层次结构,允许子模块嵌套在更大的模块中,反映了机器人任务可以分解为子任务的固有层次性。“这种结构的基本原理是,当系统增长时,单层模块要么导致大量模块,要么导致模块本身非常庞大。” 这种方法类似于分层任务网络(HTN)。
  • 反馈 (Feedback): 与传统开环控制不同,BTs在所有层级都整合了反馈。子模块的执行结果(成功S、失败F或运行R)会反馈给父模块,使其能够根据当前世界状态自适应地选择下一个要执行的子模块。“反馈控制是处理任何低级控制系统不确定性和干扰的基本工具,但为了在高层实现反馈控制,即一个模块决定执行哪个子模块,需要通过模块接口共享有关每个子模块的进度和适用性的信息。”

2. BTs的正式定义与执行

BTs被正式定义为一个控制器 ui 和一个元数据函数 ri 的组合。ri 返回 运行 (R)成功 (S)失败 (F)。系统状态空间 X 被划分为操作区域 Ωi、成功区域 S0 和失败区域 F0。

  • 操作符 (Operators): BTs通过两种主要操作符组合:
  • 序列 (Sequence): (T0 = Sequence(T1, T2)) 按顺序执行子BTs。只有当前一个子BT成功时,才会执行下一个。如果任何一个子BT失败,整个序列就失败。“序列操作符只有在所有子BT都成功时才返回成功。”
  • 回退 (Fallback): (T0 = Fallback(T1, T2)) 尝试按顺序执行子BTs,直到其中一个成功。如果一个子BT失败,它会尝试下一个。只有当所有子BT都失败时,整个回退才失败。“回退操作符只有当所有子BT都被尝试过但都失败时才返回失败。”
  • 条件 (Condition): 是一种特殊的BT,其运行区域 Ri 为空,这意味着它不执行控制操作,只提供元数据(成功或失败)作为决策依据。
  • 执行 (Execution): BT的执行被视为一个不连续的动态系统,其中根据当前状态和子BT的返回状态,控制器 ui(x) 会在不同操作区域 Ωi 之间切换。

3. 行为树的模块化与复杂性

BTs在模块化方面表现出色,并被证明具有“最优模块化”特性:

  • 统一接口 (Uniform Interface): 所有层级的子树都具有相同的接口(ui 和 ri),这促进了可组合性。
  • 决策结构 (Decision Structures - DS): BTs可以被表示为一种称为决策结构的广义有向图。研究表明,BTs具有“本质复杂性”为1,这意味着它们是“最优模块化”的决策结构类中的一部分。这种低复杂性与更简单的测试和调试过程相关联,因为模块分解图是无环的。“BTs对应于最优模块化DS的类。”

4. 收敛性证明与设计原则

本文提出了BTs的通用收敛性证明(定理3),旨在保证状态最终到达期望的成功区域 S0:

  • 收敛条件 (Convergence Conditions): 如果状态通过操作区域 Ωi 严格按递增顺序移动,并且在任何区域停留时间不超过 τ,并且允许的唯一其他区域是 S0,那么系统将在有限时间内到达 S0。
  • 不变区域 (Invariant Regions - Ci): 证明的关键在于识别并确保特定区域 Ci 在控制器 ui 的作用下保持不变。这使得分析可以在不同抽象级别进行,从整个子树到单个叶节点。
  • 设计原则 (Design Principle): “确保X”的设计模式是一个递归应用的回退结构,它首先检查条件X是否满足,如果不满足,则尝试通过各种操作使其满足。这种方法体现了分层模块化和反馈,并用于构建图1中所示的复杂移动机械手BT。

5. 与控制障碍函数(CBFs)的结合以保证安全

CBFs是一种用于保证系统在预定义安全集内运行的工具。BTs与CBFs的结合提供了一种强大的方法来确保安全性:

  • 不变性保证 (Invariance Guarantees): CBFs可以用来形式化和满足BTs收敛性证明中所需的不变性条件 Ci。“控制障碍函数的目标是保持集合不变。”
  • 处理冲突目标 (Handling Conflicting Objectives): 当多个CBFs(代表冲突的安全目标)存在时,BTs的优先级顺序可以用来选择一个控制输入,该输入在不为空的前提下,尽可能多地满足高优先级安全目标。例如,在一个移动机械手BT中,最高优先级可能是“在安全区域内”。

6. 与可解释AI(XAI)和人机交互(HRI)的联系

BTs的结构固有地支持可解释性:

  • 透明度和可追溯性 (Transparency and Traceability): BTs的层次结构允许人类操作员通过追溯当前执行的叶节点到根节点的路径,来理解机器人行为的“原因”。“如图1所示,此要求由BTs满足,因为在任何时候,您都可以找到正在执行的叶节点,并沿着分支一直向上到根部,以了解为什么正在执行此子树。”
  • 用户理解 (User Understanding): 描述性的节点名称和分层组织使BTs对于人类来说易于理解,这对于机器人与人类共享工作空间的场景至关重要。

7. 与强化学习(RL)、进化算法和规划的结合

BTs可以与各种AI范式相结合,以增强性能、学习能力和自动化设计:

  • 强化学习 (Reinforcement Learning): RL可以用于:
  • 替换BT中的单个动作或整个子树。
  • 增加新的RL选项作为现有BT中的回退。
  • 根据Q值或成功概率优化回退选项的顺序。
  • 重新排序BT中的前提条件(例如,解决旅行商问题)。
  • 进化算法 (Evolutionary Algorithms - EAs): BTs的模块化使其非常适合EAs:
  • 突变 (Mutation): 通过替换任意子树来实现。
  • 交叉 (Crossover): 通过在两个BT之间交换子树来实现。
  • 局部性 (Locality): 子树的“影响区域”(Ii) 提供了一定程度的局部性,有利于EAs的性能。
  • 解决膨胀问题 (Addressing Bloating): 可以通过修剪不影响系统行为的子树来解决EA中常见的“膨胀”问题。
  • 规划 (Planning): BTs可以与规划算法结合,为规划行动序列提供反应性反馈:
  • 低级规划 (Low-level Planning): 通常作为BTs的叶节点集成(例如,运动规划、抓取规划)。
  • 高级规划 (High-level Planning): 用于生成BTs本身。BTs为规划器生成的序列增加了鲁棒性,允许在意外事件发生时进行重新规划或自适应调整。
  • 反应式规划 (Reactive Planning): BTs可以捕获并利用规划时不可用的并行执行机会或任务提前完成。

结论与未来展望

Ögren和Sprague总结道,行为树提供了一种分层模块化的方法,将控制器组合成更复杂的系统,并支持在所有层级进行反馈控制。这种结构允许对收敛性和吸引域进行形式分析,并且与控制障碍函数、可解释AI、强化学习、遗传算法和规划等其他研究领域有着重要的联系。

总结要点:

  1. 行为树代表了一种分层模块化的方式,将控制器组合成更复杂的控制器。
  2. 行为树不仅在最低层,而且在所有层级都实现了反馈控制,因为接口明确包含了有关控制器适用性和进度的元信息(反馈),使父层能够根据此反馈采取行动。
  3. 行为树的模块化结构适合进行收敛性和吸引域的形式分析。
  4. 正在进行的工作将行为树与其他研究领域(如规划和学习)联系起来。

未来议题:

  1. 需要进一步探索强化学习与行为树之间的联系,尤其是在结合单独能力(如路径规划和抓取)的模块化机器人系统中。
  2. 行为树的透明度在可解释AI、演示学习和人机交互(HRI)领域中具有重要作用。
  3. 虽然行为树已从AI和机器人学角度进行了探索,但从控制理论角度进行的研究相对较少。

论文原文链接