引言

如果你曾经费力地组装过一件平板包装家具,你就知道组装不仅仅是将销钉 A 放入孔 B 那么简单。它涉及一套复杂的编排: 一只手稳住一个部件,另一只手对齐另一个部件,施加恰到好处的力,并按照特定的顺序进行,以免整个结构坍塌。

对于人类来说,这是直觉。对于机器人来说,这是一场算法噩梦。

虽然机器人自动化已经掌握了焊接或拾取放置等重复性任务,但通用多部件组装仍然是一个“圣杯”般的挑战。如今大多数组装机器人都是针对特定产品硬编码的。如果你更换了产品,就必须重写代码、重新设计夹具并重新校准整个工作单元。

但是,如果机器人可以通过查看凳子、变速箱或玩具的 CAD 模型,就能自己搞定这一切呢?

这就引出了 Fabrica , 一个由 MIT CSAIL、苏黎世联邦理工学院 (ETH Zurich) 和 Autodesk Research 的研究人员开发的新系统。Fabrica 是一个双臂机器人系统,能够进行端到端的自主规划和控制,用于组装通用的多部件物体。

图1: 我们需要提出的双臂机器人系统展示了针对多样化多部件物体的自适应操作和组装能力。

在这篇文章中,我们将解构 Fabrica 论文,了解它如何弥合高层规划与底层电机控制之间的鸿沟,从而实现以前被认为极其困难的目标: 复杂组装技能的零样本 (zero-shot) 、模拟到现实 (sim-to-real) 的迁移。

核心问题: 为什么组装如此困难?

要理解 Fabrica 的重要性,我们首先需要认识到这个问题的复杂性。组装结合了机器人技术中两个困难的子领域:

  1. 长程规划 (Long-Horizon Planning) : 你不能只考虑下一步动作。你需要提前规划二十步。哪个部件是底座?如果我现在安装部件 C,它稍后会挡住部件 D 吗?应该由哪只手握住物体?
  2. 富接触操作 (Contact-Rich Manipulation) : 插入一个部件通常涉及极小的间隙 (小于一毫米的回旋余地) 。相机通常不够精确,无法完美引导机器人。机器人需要“感知”接触力,以便将部件滑入到位而不会卡住。

之前的研究通常将这些问题分开处理。规划器会找出顺序,但假设机器人可以完美移动。控制研究人员会训练机器人将销钉插入孔中,但忽略了 9 部件家具组装的复杂性。

Fabrica 通过整合离线规划 (大脑) 和在线强化学习 (肌肉记忆) 来同时解决这两个问题。

系统概览

Fabrica 的运作像一位经验丰富的工程师。在接触任何部件之前,它会模拟整个过程。工作流程分为两个主要阶段:

  1. 规划: 系统分析部件的 3D 网格,以确定如何组装它们 (顺序、抓取、运动路径) 。
  2. 学习: 系统训练一个神经网络策略,以处理实际将部件扣合在一起所需的精细物理交互。

图2: 系统概览。Fabrica 接收部件网格和硬件配置作为输入。它通过多阶段规划器规划顺序、抓取、夹具设计和运动。

如上面的系统概览所示,输入仅仅是网格文件和机器人硬件配置。输出是一个能够在现实世界中构建该物体的机器人。

第一部分: 分层规划器

规划阶段是 Fabrica 解决组装逻辑难题的地方。它将问题分解为五个子问题的层级结构。这种“分而治之”的方法使得数学计算在算力上变得可行。

这是研究人员试图解决的总体优化问题:

优化方程

用通俗的话说,这个方程试图最小化顺序 (\(\phi\))、抓取 (\(\sigma\)) 和运动 (\(\pi\)) 的“成本” (能量、时间、不稳定性) ,同时严格遵守约束条件,如“部件不能悬空” (\(C_{prec}\)) 和“机器人不能互相碰撞” (\(C_{col}\))。

让我们分解规划器解决此问题的 5 个步骤。

步骤 1: 优先权规划 (“乐高”逻辑)

在机器人移动之前,它需要知道操作顺序。你不能在砌墙之前先把屋顶盖好。

Fabrica 通过模拟拆卸来确定这一点。它获取完整的物体,并尝试在物理模拟器中逐个拆除部件。如果一个部件可以在不碰到其他部件的情况下被移除,它就被分配到一个“层级 (tier) ”。通过反转拆卸顺序,系统生成了一个有效的组装顺序图。

步骤 2: 抓取过滤

机器人有手指 (夹爪) ,它们会占据物理空间。系统需要为每个部件找到抓取位置,且需满足:

  1. 夹爪不会碰到部件本身。
  2. 夹爪不会碰到已经组装好的部件。
  3. 夹爪不会碰到另一个机械臂。

Fabrica 预先计算数千种潜在的抓取方式,并过滤掉会导致碰撞的抓取。它特别寻找“双臂”对——一个抓取用于握住底座的手臂,另一个抓取用于插入新部件的手臂。

步骤 3: 顺序-抓取优化

这是核心决策步骤。仅仅因为一个顺序是可能的,并不意味着它是好的

Fabrica 构建一个搜索树来找到最佳顺序。它根据稳定性约束对不同的路径进行评分。例如,它偏好以下顺序:

  • 被握住的部件能很好地支撑新部件 (重力不会把它们扯开) 。
  • 机器人不必不必要地换手或重新抓取物体。
  • 夹爪上的扭矩最小化 (重物不被指尖捏着) 。

步骤 4: 自动化夹具设计

这是一个绝妙的补充。在大多数研究中,人类会小心翼翼地将部件放在桌子上供机器人使用。Fabrica 自动化了这一点。

一旦它知道它想如何拾取部件 (来自步骤 2 和 3) ,它就会自动设计一个托盘 (夹具) ,以完全正确的方向容纳所有散落的部件,以便进行拾取。它使用“装箱 (bin-packing) ”算法将所有部件放入桌面上尽可能小的空间内,并生成托盘的 3D 模型,然后可以将其 3D 打印出来。

图3: 顶部: 基准组装物体。底部: 第 3.4 节中自动生成的拾取夹具。

步骤 5: 运动规划

最后,系统规划将部件从夹具移动到组装区的轨迹 (手臂运动) 。它使用一种称为 RRT-Connect 的标准算法,以确保手臂在互相交织移动时不会发生碰撞。

第二部分: 学习组装的“感觉”

规划器提供了完美的轨迹,但现实世界是混乱的。传感器有噪声,部件有制造公差,摩擦力不可预测。如果机器人盲目地遵循规划路径 (开环) ,1 毫米的误差就会导致部件卡住或系统崩溃。

为了解决这个问题,Fabrica 使用强化学习 (RL) 来训练一个“局部策略”。可以把这看作是机器人的反射系统。

通用策略

研究人员不想为每一个部件都训练一个新的 AI。那将耗费无限的时间。他们想要一个通用策略——一个既能插入方销,也能插入圆销或复杂齿轮的大脑。

为了实现这一目标,他们使用了两个聪明的数学技巧:

1. 路径中心坐标变换

对于神经网络来说,垂直向下插入销钉与水平侧向插入销钉看起来完全不同。数字 (x, y, z 坐标) 是完全不同的。

Fabrica 对坐标系进行了变换,使得在机器人的认知中,“插入方向”始终是 Z 轴。无论机器人是从顶部、侧面还是某个角度插入部件,神经网络都将其视为“向下推”。这创造了等变性 (Equivariance) 。 它允许机器人对每一次插入都复用相同的技能,而不管几何形状如何。

2. 规划引导的残差动作

Fabrica 没有让 AI 从零开始弄清楚运动,而是给了 AI 来自第一部分的“完美”规划轨迹。AI 的工作不是生成运动,而是在该运动之上生成一个残差 (修正) 。

这就像父母教孩子骑自行车。父母 (规划器) 将自行车推向正确的方向。孩子 (RL 策略) 只是做微小的调整以保持平衡。这使得学习变得更快、更安全。

实验与结果

团队创建了一个包含 7 个多部件组装任务的基准套件,范围从简单的 5 部件横梁到复杂的 9 部件凳子和游戏手柄。

模拟性能

他们将自己的方法与“开环跟踪” (仅遵循规划) 和“专家策略” (仅针对特定物体训练的 AI) 进行了测试。

表3: 模拟评估中无干预情况下的成功步数百分比。

正如预期的那样, 开环跟踪彻底失败 (通常只有 0-20% 的成功率) 。接触物理学太无情了。 然而,Fabrica 的组装通用策略 (AG) 表现得令人印象深刻,达到了与专家策略相当的成功率。这证明了他们的坐标变换技巧是有效的——机器人正在将“插入”技能推广到不同的形状上。

现实世界执行

终极测试是物理世界。研究人员在两台 Franka Emika Panda 机器人上部署了 Fabrica。

图1: 不同机器人在不同组装任务上的逐步渲染组装执行。

这种迁移是零样本 (zero-shot) 的。这意味着他们没有在现实世界中重新训练机器人。他们在模拟器 (Isaac Gym) 中对其进行训练,然后在物理硬件上直接运行。

图2: Panda 机器人在不同组装任务上的逐步现实世界组装执行,带有模拟与现实的并排对应。

在现实世界中,该系统在没有任何人工干预的情况下实现了每步 80% 的成功率 。 当观察完整的组装序列 (可能有 8 或 9 个步骤) 时,系统通常可以自主完成整个物体。

表4: 现实世界评估中无干预情况下的成功步数百分比。

关键是,即使机器人失败了 (例如滑落) ,系统也允许重试。仅通过 1 或 2 次干预 (自动重试) ,大多数物体的成功率攀升至 90% 以上。

额外内容: 视觉升级

虽然核心系统依赖于“盲”本体感觉 (感知手臂的位置) ,但研究人员承认,有时视觉反馈是必要的,特别是当部件滑移严重时。

在一个有趣的扩展中 (详见附录 F) ,他们使用腕部安装的相机集成了视觉语言模型 (VLM)

图4: 纠正对齐期间 VLM 的示例输出。

当插入反复失败时,他们将视频源展示给 VLM (如 Gemini) 并征求建议。VLM 可以查看图像并输出修正建议,如*“该部件相对于孔太靠左,需要向右移动以对齐。”* 这突显了将精确控制策略与现代 AI 模型的高级推理相结合的潜力。

结论

Fabrica 代表了自主制造迈出的重要一步。通过结合分层规划的结构性和可靠性与强化学习的适应性,它解决了这两种方法单独无法处理的问题。

主要收获:

  • 双臂协调: 系统管理双臂握持与动作之间复杂的相互作用。
  • 自动化工装: 它设计自己的夹具,消除了制造设置中的主要瓶颈。
  • 泛化能力: 通过路径中心表示,机器人学习到了适用于从未见过的物体的技能。

这项研究让我们离未来更近了一步: 在小型工厂或家庭中,给机器人一盒零件和一份数字说明书,它们就能自己搞定剩下的工作。


参考文献: Tian, Y., Jacob, J., Huang, Y., et al. “Fabrica: Dual-Arm Assembly of General Multi-Part Objects via Integrated Planning and Learning.”