前言

现代制造业需要具有更高灵活性与可靠性的机器人装配系统。然而,传统方法通常依赖专家在固定环境下为每种产品单独编程,本质上难以适应产品变化,也缺乏应对各种扰动的鲁棒性——说白了 就是没有泛化性

随着行为树(Behavior Trees,BTs)因其模块化和高反应性而在机器人领域得到日益广泛的应用,作者提出了一种新颖的分层框架——Video-to-BT

  1. 该框架将高层认知规划与低层反应式控制无缝集成,以行为树既作为规划的结构化输出,又作为执行的控制结构
    该方法利用视觉-语言模型(Vision-Language Model, VLM)将人类示教视频分解为若干子任务,并据此生成行为树
  2. 在执行阶段,预先规划好的行为树与实时场景解析相结合,使系统能够在动态环境中进行反应式操作;
    一旦执行失败,则触发由 VLM 驱动的重新规划

第一部分  Video-to-BT: Generating Reactive Behavior Trees from HumanDemonstration Videos for Robotic Assembly

1.1 引言与相关工作

1.1.1 引言

如原论文所述,在现代动态工厂环境中,从大规模生产向大规模定制的关键转变,要求生产线不仅要可靠,而且必须具备灵活性 [1]–[3]

  1. 具体而言,内在安全原则要求在执行过程中具有高度的透明性和可预测性,尤其是在人与机器人协作已日趋普遍的背景下
  2. 此外,定制化目标要求系统具备足够的灵活性以应对高度多样化的产品,而实际运行环境则需要对车间层面的扰动保持鲁棒性,例如零部件位置偏移或人工干预等
    传统机器人系统在本质上依赖静态、预先编程的任务流程,因此难以应对工艺过程的变化及动态不确定性——即没有泛化性

因此,要实现智能制造的愿景,就需要新一代机器人系统:既具备用于高层任务规划与推理的认知智能,又拥有在动态环境中实现稳健且透明的底层执行的自适应机制

为了设计此类机器人系统,可以通过将基本动作执行和状态转换抽象为离散事件,将其建模为离散事件动态系统(DEDS)[4]。传统的 DEDS 监督控制器,如Petri 网 [5]、[6] 和有限状态机 [7]、[8],通常面临可扩展性受限的问题,并且对来自扰动的恢复提供的支持也较为有限 [9]

  • 在这种背景下,行为树(BehaviorTrees,BTs),以分层结构表示策略的形式——其层次化的树状结构正越来越受到关注。行为树具有良好的模块化、人类可读性以及高反应性,使其非常适合在动态环境下,将规划与控制集成应用于长时间跨度任务
  • 目前虽然已经存在自动生成行为树的方法,但在长时程任务中的实际应用仍然很大程度上依赖确定性设定和大量用户输入。从以人为中心的指令生成行为树,以及随后将行为树应用于自适应控制,这一研究方向仍然基本尚未被充分探索

总之,从以人为中心的指令中自动构建行为树(BT)的挑战,在近年来基础模型(如视觉-语言模型VLM和大语言模型LLM)的进展中找到了一个颇具前景的解决思路。这些模型在句法合成和逻辑推理方面的高级能力 [10],使得可以将这类抽象计划直接生成形式化指定、可组合的结构,如行为树

此外,这些模型在常识推理和泛化方面具备前所未有的能力,使其能够理解多样的高层指令,并将其分解为合乎逻辑的任务序列 [11],[12]。尽管早期工作已经探索利用 LLM 从简化指令生成行为树 [13],但如何充分发挥 VLM 的潜力,将丰富的多模态感知与复杂、结构化行为树的生成直接衔接起来,仍然在很大程度上未被挖掘

对此,来自的研究者提出了 Video-to-BT 框架,将基础模型的泛化与推理能力与行为树(BT)的优势相结合,以解决动态环境下的长时程装配任务

  1. 在该方法中,一个多模态视觉语言模型(VLM)作为高层规划的“大脑”:它从视频演示中推断任务序列,并生成 BT,作为顺序操作规划的结构化表示
    这些 BT 随后被用作一种模块化且具有反应性的控制架构,在基于感知的场景理解下执行,并持续监控环境状态。通过这种方式,机器人能够收到指令以启动或暂停原子动作
  2. 为保证执行安全,框架通过基于 Web 的界面采用“人类在环”(HITL)工作流,从而确保非专业人员也能便捷使用

1.1.2 相关工作

首先,对于动态环境下的自适应机器人装配

在现代智能制造中,为应对多样化任务而提升灵活性,并在复杂环境扰动下保持鲁棒性,是一项核心挑战。尽管现有一些突出的方法能够在动态环境中提升适应性

  1. 例如通过高保真仿真实现的数字孪生(Digital Twins,DTs)[14]、[15]
    以及
    通过强泛化能力实现的视觉-语言-动作(Vision-Language-Action, VLA)模型 [16]–[18]

    但二者都需要在专家人力和资源方面进行大量前期投入
    DTs 需要高度密集且由专家主导的劳动来构建仿真器和数字资产 [19]、[20];而 VLAs 则面临对大规模数据集高度依赖的关键瓶颈 [21]

    这些挑战在复杂装配场景中尤为突出,因为此类任务需要大量接触丰富的触觉数据,而这类数据极其稀缺且难以获取
  2. 为避免大量面向特定任务的训练或数据采集需求,本文提出了一种分层框架,利用开放词汇的基础模型(open-vocabulary foundation models)来对一个由鲁棒技能原语构成的库进行动态编排与顺序规划 [22]

其次,对于基于 VLM 的机器人任务规划

视觉语言模型(VLM)在机器人任务规划方面展现出巨大潜力,依托其强大的环境感知能力、常识知识以及出色的泛化能力,可以生成多步的在线任务规划,如具身推理工作中所示 [23]–[26]

  1. 然而,这种基于大规模通用数据集所获得的泛化能力,并不能直接迁移到装配这类对精度要求极高的任务上。因此,与其直接生成完整的任务规划,一种常见策略是利用 VLM 的多模态理解能力来解释人类提供的指令(例如图示或操作手册),从而抽取高层次的任务序列 [27],[28]
    尽管这种方法行之有效,其主要局限在于对正式文档的依赖,使其难以应用于新颖或缺乏文档记录的任务
  2. 为弥补这一差距,本文提出了一种新型规划模块,利用 VLM将人类装配示范视频作为一种丰富的多模态指令来源进行解析
    基于这些示范,本文所介绍的方法能够抽取细致入微的程序性知识,提供一种更加健壮且具有更强泛化能力的解决方案,从而可以从非专业示范者的演示中学习,并绕过对正式文档的依赖

最后,对于机器人中的行为树

与 Petri 网 [5]、[6] 和有限状态机 [7]、[8] 等其他控制体系结构相比,行为树(BT)在提供可比的层次化组织结构和模块化特性的同时,还具有额外的反应性优势 [9]。因此,BT 在任务规划和任务执行中得到了越来越广泛的应用

  1. 在规划方面,现有研究已经分别从解析建模 [29]、[30] 和基于学习的方法 [31]、[32]两个方向探索了 BT 的生成
    然而,这些方法仍然在很大程度上依赖于预先定义的规划需求以及大量的人工编程
  2. 同时,有一些研究尝试通过利用基础模型自动生成行为树(BT)[13]、[33]、[34] 来解决这一问题,但它们仍然需要大量用户输入来明确规划需求

    在控制方面,一些工作 [35]、[36] 将 BT 用于在完全确定性的设定下完成长时间跨度任务,但缺乏应对不确定性的自适应能力
    相反,另一些研究 [37]、[38]更强调自适应执行,但对手工设计的依赖限制了其适用性
  3. 受这些工作的启发,本文介绍的框架将基于任务分解的 BT 自动生成、用于长时序执行的监督控制,以及用于扰动处理的反应式控制有机结合,从而在动态环境中实现鲁棒的任务执行

1.2 Video-to-BT的完整方法论

简言之,作者提出了一个由规划、感知和执行三部分组成的框架,如图 1 所示

高层规划、实时场景理解与低层控制之间的紧密耦合构成了一个闭环系统,从而为长时程装配任务提供具有可扩展性且可解释的解决方案

1.2.0 预备知识

系统设置:系统设置包括提供资源、指定领域以及初始化世界状态,其定义如下:

  • 资源提供(V, O):V 是人类示范视频。O 表示可用的物体,包括可操作的组件和可使用的工具
  • 领域规范\mathcal{D}=(\mathcal{P}, \mathcal{C}, \mathcal{R}, \mathcal{A}, \mathcal{S})
    P 是描述对象属性的一元谓词集合
    C 和 R 都是二元谓词集合,分别刻画对象之间的约束和关系
    A 是可用动作原语的集合
    S 表示技能符号的集合
    其中每个技能符号代表完成特定任务的一种能力。领域词汇中的所有元素都可以通过赋值给具体对象来实例化。完整的一组具体示例见表I
  • 世界状态初始化 \omega:世界状态被建模为\omega=(P, R),其中 P 和 R 分别由对象属性与对象之间的关系构成
    本质上,ω 表示在环境中成立的事实。通过加载一个预定义的对象属性和对象关系规范(该规范刻画了任务设置),来完成对 ω 的初始化

行为树:BT(Behavior Tree)是一种有向有根树,其内部节点充当控制流节点,叶子节点充当执行节点,从而为任务描述提供一种分层结构[9]。在这一框架中,共有四种类型的节点:

  1. Sequence(顺序):一种控制流节点,在图示中通常表示为“→”。仅当其所有子节点都返回Success(成功)时才返回Success;否则,它返回第一个状态为Failure(失败)或Running(运行中)的子节点的状态
  2. 选择器(后备):一种控制流节点,图形上以“?”表示。它返回第一个处于 Success 或 Running 状态的子节点的状态。只有当所有子节点都失败时,它才返回 Failure
  3. Condition:一种执行节点,用于求值一个命题,即约束、属性或关系。它以确定性的方式返回 Success 或 Failure
  4. Action:一种执行节点,用于调用定义为a_{i}\left(O_{i}\right)的动作,其中a_{i} \in \mathcal{A} 且O_{i} \subseteq O
    它在被异步执行期间返回Running,出错时返回 Failure,完成时返回 Success
    成功后,其效应会被更新到世界状态
    ————
    BT(行为树)通过以深度优先、从左到右的顺序递归传播 tick 来执行。tick 传播通常以固定的控制频率重复进行

\rightarrow  当一个条件节点被放置在选择节点(selector)之下时,如果该条件节点执行成功,选择节点就会跳过其余子节点,从而隐含地确定了后续执行的目标

\rightarrow  当一个条件节点或一个子树被放置在顺序节点(sequence)之下时,其成功是执行能够继续下去的必要条件,因此它起到前置条件的作用

该框架遵循的原则是:每一个动作节点都应当嵌入在一个动作单元中(例如图 2 所示的行为树),该动作单元包含一个目标以及可选的前置条件

1.2.1 规划:从视频演示生成行为树(BT)

规划模块利用预训练视觉-语言模型(VLM)的泛化与推理能力,将面向人的教学视频翻译为面向机器人的行为树(BT)。与传统由专家程序员负责编写程序的方式不同,该模块使操作员能够扮演机器人导师的角色:操作员只需以人类为中心的方式演示任务,审查系统学到的结果,并在需要时提供最少量的人在回路(HITL)指导

如图 2 所示,规划模块分两阶段运行:视频理解和 BT 生成『规划模块包含两个由 VLM 驱动的阶段。阶段 A 通过理解人类演示视频来生成子任务和对象间约束;阶段 B 对这些子任务进行结构化与编译,以生成最终的 BT。为了确保安全性和可靠性,在两个生成阶段中均嵌入了人工核验环节』

首先,视频理解

从以动作为中心的视角录制人类演示视频,以捕捉完整的装配过程。每个视频都配有辅助音频描述,该描述刻意设计为多语言且在文体上多样化。示例性视频样例见图6。为处理这些视频

  1. 首先从视频中提取关键帧和音频。关键帧由人工选择,以确保其能够抓住装配的关键步骤
  2. 随后,将提取的音频转换为文本,为后续推理提供补充型提示
    基于关键帧和音频文本,VLM 智能体可以在给定物体集合 O和可用技能集合 S 的基础上,对相关物体进行约束推理,从而推断出子任务序列\left\langle\tau_{1}, \ldots, \tau_{N}\right\rangle以及约束集 C
    \begin{array}{l} \tau_{i}=\left(s_{i}, o_{i 1}, o_{i 2}\right), s_{i} \in \mathcal{S} \\ C=\left\{c\left(o_{1}, o_{2}\right) \mid c \in \mathcal{C}, o_{1}, o_{2} \in O\right\} \end{array}

    其中,\tau_{i} 定义了集成装配流程中的一个子任务,而 C 编码了对象之间的内在约束(例如,o1 可以插入到 o2 中),构成 BT 生成的关键先决条件

其次,BT 生成

规划模块通过一个顺序过程生成 BT,其中每个子树 b_{i} 都被单独创建和验证。对于每个给定的子任务 \tau_{i},流程

  1. 首先由一个 LLM 智能体规划一个动作序列\mathbf{a}_{i}=\left\langle a_{i 1}\left(O_{i 1}\right), \ldots, a_{i M}\left(O_{i M}\right)\right.
  2. 随后,以 \mathbf{a}_{i} 作为蓝图,LLM 智能体在参考领域 D、约束 C 以及描述每个子任务开始时环境的世界状态 \omega_{i} 的基础上生成 b_{i}。生成的 BT 随后通过 HITL 过程进行验证

    当正确的子树 b_{i} 被生成后,利用 BT 仿真器执行一次虚拟tick,从而将世界状态从 \omega_{i} 转换为 \omega_{i+1}。该结果状态\omega_{i+1} 作为综合后续子树 b_{i+1} 的前提上下文

该迭代过程应用于整个子任务序列,最终得到完整的 BT 序列\Pi=\left\langle b_{0}, \ldots, b_{N}\right\rangle

1.2.2 感知:语义与动态场景理解

感知模块通过目标识别和对场景的连续解释来捕捉由外部扰动引起的环境变化,从而使世界状态\omega^{t} 得以及时更新,并保持对动态环境的连贯表征

物体识别可以通过基于 VLM 的匹配流程或人工标注来完成。如图 3 所示『物体识别包含两个步骤。首先,采用 Grounded SAM[39] 模型对装配组件进行粗略分割和数字标注。随后,利用一个 VLM 将这些已标注的掩码与网格渲染图像进行匹配,从而获得最终匹配的掩码及其对应的名称』

  • 基于 VLM 的流程利用Grounded SAM [39] 作为物体检测器,并结合VLM 的泛化能力
    在一个简单文本提示的引导下,检测器提取物体掩码并用数字对其进行标注。这些带注释的掩码与由组件网格渲染得到的图像一起,被提供给一个 VLM 智能体,用于将场景中的物体与物体集合 O 中的物体进行匹配
  • 之后再由人工检查以确保正确性
    作为替代方案,作者还开发了一个用于人工标注的 Web 界面,使用户能够交互式地标记场景中与 O 对应的每个物体

运行时场景理解通过两个视觉模块来完成:

  1. 第一模块 \mathcal{M}_{1} 利用 SAM2 [40],在物体识别结果的基础上对场景进行分割,并在整个装配过程中保持对物体的跟踪
    通过这一过程,它生成物体的掩膜,从而在场景中给出物体位置的近似表示
  2. 第二模块 \mathcal{M}_{2} 利用 FoundationPose[41],对当前动作 a_{i}\left(O_{i}\right) 所涉及的物体保持6D 位姿估计,为执行器提供位姿信息

世界状态更新由一个 UPDATESTATE 操作执行,该操作基于 M1 和 M2 在运行时应用以下规则来更新 \omega^{t}

  1. 物体位置不变性
    对于未参与当前动作 a_{i}\left(O_{i}\right)的物体,若 M1 识别到其位置存在任何偏差,将触发对其记录的掩模和位置信息进行更新
  2. 关系有效性
    对于每一个关系 r\left(o_{i}, o_{j}\right) \in R,如果M1 检测到 o_{i} 和 o_{j} 之间存在相对位移,则该关系被视为无效并从 R 中移除,即R^{t} \leftarrow R^{t-1} \backslash\left\{r\left(o_{i}, o_{j}\right)\right\}
  3. 姿态一致性
    对于参与当前动作 a_{i}\left(O_{i}\right) 的对象,如果 M2 检测到某个对象 o_{j} \in O_{i}发生了意外移动,那么在获取到新的检测姿态之前,执行器应认为 o_{j} 的姿态是未知的
    相应地,对象属性被更新为P^{t} \leftarrow P^{t-1}\ {pose is known(o_{j})}

通过应用这些规则,世界状态得以被持续维护为对环境连贯且可靠的表示

1.2.3 执行:带恢复机制的反应式行为树(BT)

执行模块根据对场景的实时理解来执行已规划的行为树(BT),从而使装配任务能够在动态环境中顺利完成。如算法 1 所示,BT 序列 \Pi 中的每个 b_{i} 按顺序被展开并执行,同时持续监测世界状态,并结合恢复机制以确保系统的鲁棒性

  1. BT 扩展:每个子树 b_{i} 对应一个子任务 \tau_{i},一旦成功完成,就会产生一个对象间关系 r_{i},用来表示已经达成的子目标(例如,完成 insert(gripper, shaft,gear) 会建立关系 is inserted to(gear, shaft))

    在执行 b_{i} 的过程中,之前已经执行过的子树所建立的这些关系的有效性必须得到保持
    为确保这一点,这些relations \left(r_{0}, \ldots, r_{i-1}\right)作为 b_{i} 的前置条件被纳入,其中做法是将它们作为顺序节点的最前面的子节点,从而得到扩展后的 BT \hat{b}_{i},定义为 SEQUENCE\left(r_{0}, \ldots, r_{i-1}, b_{i}\right)

    扩展 BT 的一个示例如图 4 所示『扩展可执行BT的示例,突出显示其两个组成部分,即:A部分:扩展机制;B部分:由VLM为子任务生成的BT』
  2. 世界状态监控:在整个过程中,世界状态 \omega^{t} 通过操作 UPDATESTATE 持续更新,同时各个 BT 以同步方式依次执行

    扩展后的 \hat{b}_{i} 以频率 f 进行 tick,直至成功。每次 tick 时,条件节点都会针对 \omega^{t} 对命题进行求值,从而验证先前已达成的子目标以及当前动作的前置条件是否仍然保持成立
  3. 恢复机制:当某个前置条件失败时,当前正在执行的动作会被挂起,并触发恢复机制。tick 的传播会搜索一个动作单元,其目标效果可以恢复被破坏的条件

    \rightarrow  如果存在这样的单元,则在恢复先前执行流程之前,会强制执行该单元的动作(例如,重新获取位姿)。否则,将无法实现自恢复,BT 将返回Failure;
    \rightarrow  此时,恢复机制会识别失败的节点,并基于 \omega^{t}  触发重新规划:如果某个先前已经达成的子目标 r_{j}(其中j<i)被破坏,则流程将回滚到阶段 j 并重新规划 b_{j};否则,重新规划当前子树 b_{i}

结合受保护的前置条件、实时评估以及纠正式恢复机制,该系统能够持续对动态环境做出响应,从而在存在扰动的情况下,仍然为长时间跨度任务提供稳健的执行能力

// 待更

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐