引言

我们正处于模仿学习的黄金时代。从会做虾的机器人到能自我修复的机器人,我们见证了由大规模演示数据驱动的惊人突破。然而,在这些病毒式传播的视频背后,隐藏着一个巨大的瓶颈: 数据成本。

像 ALOHA Unleashed 或 DROID 这样的项目需要数月的人力、数十名操作员以及收集数万条轨迹。如果我们希望机器人能够泛化到世界上的每一个杯子、锤子或门把手,我们不可能针对每一种变化都进行遥操作。我们需要一种方法来自动成倍增加我们的数据。

这就是 约束保持数据生成 (Constraint-Preserving Data Generation, CP-Gen) 发挥作用的地方。

在斯坦福大学和德克萨斯大学奥斯汀分校最近的一篇论文中,研究人员提出了一种方法,利用单个专家演示 , 通过算法生成数千个新的、多样化的演示。与以往简单地旋转或平移场景的方法不同,CP-Gen 可以处理全新的物体几何形状 。 它生成的数据可以教机器人如何处理高酒杯与矮酒杯,或者宽盒子与窄盒子,从而实现向真实世界的零样本迁移 (zero-shot transfer) 。

在这篇文章中,我们将深入探讨 CP-Gen 的工作原理、其约束满足背后的数学原理,以及为什么它优于现有的最先进的数据生成方法。

问题所在: 为什么仅靠旋转是不够的

要理解为什么 CP-Gen 是必要的,我们首先需要看看目前的标准做法: 基于 SE(3) 等变性 (SE(3) equivariance) 的数据增强。

像 MimicGen 这样的方法通过获取一个演示 (例如,拿起一个马克杯) 并改变物体的位姿 (位置和旋转) 来生成新数据。如果马克杯向右移动 10 厘米,机器人的抓夹动作也应该向右移动 10 厘米。这对于完全相同的物体来说效果极佳。

问题在于: 当物体的形状发生变化时,这种方法就会失效。 想象一下,你有一个将矮胖的酒杯挂在架子上的演示。如果你试图将同样的相对运动应用于一个高瘦的酒杯,机器人可能会撞上酒杯或完全错过架子。刚性变换 (\(SE(3)\)) 无法解决几何变化 (缩放、拉伸或长宽比变化) 的问题。

CP-Gen 通过从简单的动作回放转向关键点轨迹约束 (keypoint-trajectory constraints) 来解决这个问题。

核心方法: CP-Gen

CP-Gen 建立在一个强有力的洞察之上: 机器人技能不应由抓夹在哪里来定义,而应由抓夹与它操作的物体之间的关系来定义。

图 1: CP-Gen 使用一个专家演示和关键点轨迹约束在仿真中生成涉及新颖物体几何形状和位姿的多样化演示,从而实现大规模策略训练和零样本虚实迁移。

如图 1 所示,该方法获取单个源演示,并生成一系列处理新颖几何形状 (如螺旋形酒杯架) 的演示。它通过确保机器人上的特定点 (关键点) 跟踪相对于物体的特定路径来实现这一点,无论该物体如何被拉伸或缩放。

工作流程

CP-Gen 流程包含两个主要阶段: 源数据处理新数据生成

图 2: CP-Gen 方法。上图: 源数据处理创建约束。下图: 新数据生成使这些约束适应新场景。

第 1 阶段: 源数据处理

  1. 分解: 专家轨迹被分为“自由空间运动” (在物体之间移动) 和“机器人技能” (与物体交互) 。
  2. 标注: 系统识别操作者关键点 (Actor Keypoints) (抓夹上的点或被抓取物体上的点) ,并跟踪它们与目标物体的关系。
  3. 约束提取: CP-Gen 不保存绝对坐标,而是保存这些关键点相对于目标物体坐标系的轨迹。

第 2 阶段: 新数据生成

  1. 场景采样: 系统生成一个新场景,其中物体具有新的位姿新的几何形状 (例如,马克杯被缩放得更高) 。
  2. 适配: 记录的关键点约束被转换以匹配新的几何形状。
  3. 优化: 系统求解满足这些新约束的机器人关节配置。
  4. 运动规划: 规划一条连接各片段的无碰撞路径。

让我们分解一下使这种适配成为可能的数学机制。

第 1 步: 提取关键点约束

首先,我们需要捕捉技能的“本质”。假设机器人正在抓取一个把手。我们在“操作者” (抓夹) 上定义关键点 \({^A}k_i\)。我们要记录这些点相对于“物体” (把手) 的位置。

物体坐标系中的目标轨迹 \({^O}k_i(t)\) 计算如下:

公式 1: 将操作者关键点转换到物体坐标系中。

这里,\({^W}T_A(t)\) 是操作者在世界坐标系中的位姿,\({^O}T_W(t)\) 是物体的逆位姿。本质上,这个方程将动作“锁定”到了物体的局部坐标系。

第 2 步: 适应新的几何形状

现在,假设我们生成了一个新场景,其中目标物体被拉伸了。在数学上,这是一个几何变换矩阵 \(\mathbf{X}\) (例如,非均匀缩放) 。

如果我们只是回放原始动作,抓夹会去到把手的“旧”位置。相反,CP-Gen 将变换 \(\mathbf{X}\) 应用于目标轨迹:

公式: 将几何变换 X 应用于目标关键点。

这个简单的方程至关重要。它更新了目标路径,使得如果把手变高 5 厘米,目标抓取点也会上移 5 厘米。

第 3 步: 求解优化问题

我们现在有一组机器人需要到达的新的空间 3D 目标点。但机器人是由关节角度 (\(q\)) 控制的,而不仅仅是空间中的浮动点。我们需要找到具体的关节配置 \(q_t^*\),使机器人的关键点与这些新的目标点对齐。

CP-Gen 在每个时间步使用一个优化问题来解决这个问题:

公式 2: 寻找机器人关节配置的优化目标。

这个方程有两个相互竞争的项:

  1. 匹配关键点 (左项) : 它最小化机器人的实际关键点 (通过正向运动学 \(f_{FK}\) 计算) 与变换后的目标关键点之间的距离。
  2. 时间平滑度 (右项) : 它惩罚机器人在时间步之间过多地移动关节 (\(\lambda ||q - q_{t-1}^*||\)) 。这确保了生成的动作是平滑且物理上合理的,而不是抖动的。

第 4 步: 添加噪声

为了使训练后的策略具有鲁棒性,我们不仅想要完美的演示。我们希望机器人学会如何从微小的错误中恢复。作者在数据生成过程中注入了“系统噪声”。

公式: 向动作中注入高斯噪声。

有趣的是,他们记录干净的动作 \(a\) 用于训练,但在仿真中执行带有噪声的动作 \(a'\)。这将执行探索与训练标签解耦,从而产生更平滑的策略。

实验与结果

研究人员在仿真基准测试和物理硬件上都对 CP-Gen 进行了评估。主要问题是: 在由单个演示生成的数据上训练的策略,能否泛化到未见过的几何形状?

仿真基准测试

他们测试了 MimicGen 基准中的任务,加上一个新的“几何泛化”变体,其中物体进行了非均匀缩放。

图 3: 仿真任务,包括堆叠三个方块、套筒及咖啡机任务,展示了几何形状的变化。

仅使用一个专家演示 , 他们为每个任务生成了 1,000 个合成演示。他们将 CP-Gen 与 MimicGen (依赖于位姿变换) 和 DemoGen 进行了比较。

结果

表 1: CP-Gen 在几何泛化任务上显著优于 MimicGen。

表 1 中的结果令人震惊:

  • 仅位姿 (Pose Only): 在标准任务 (仅移动物体) 上,CP-Gen 的表现与最先进的方法相当 (~85-88% 成功率) 。
  • 几何泛化 (Geometry Generalization): 这是一个改变游戏规则的领域。当物体形状改变时, MimicGen 的成功率暴跌至 ~33% , 而 CP-Gen 保持了 ~73% 的成功率

通过利用约束来理解交互的几何结构,CP-Gen 创建了真正教会机器人如何适应的数据。

真实世界的零样本迁移

也许最令人印象深刻的结果是“虚实迁移 (Sim-to-Real) ”。团队创建了真实世界设置 (如挂马克杯或插入酒杯) 的“数字孪生”。他们在仿真中生成数据并训练策略。然后,他们在真实的 Franka Emika Panda 机器人上运行该策略。

图 4: 真实世界任务,包括马克杯清理和酒杯螺旋悬挂。

表 2: CP-Gen 实现了很高的零样本虚实迁移率。

如表 2 所示,CP-Gen 策略在真实世界中达到了 83% 的平均成功率,而 MimicGen 仅为 40%。MimicGen 的失败案例说明了问题——它经常因为没有考虑到物体形状的变化而无法插入物体,导致碰撞或抓取位置不佳。

为什么几何多样性很重要?

作者还进行了一项消融研究,看看在多样化的几何形状上进行训练是否有帮助。

表 3: 消融结果表明,生成多样化的几何形状可以提高策略的泛化能力。

表 3(b) 证实,使用几何多样性进行训练 (由 CP-Gen 实现) 几乎使对新物体的成功率翻倍 (73% 对比 45%) 。这表明策略不仅仅是在死记硬背坐标;它正在学习与物体形状相关的视觉线索。

结论

CP-Gen 代表了数据高效机器人学习向前迈出的重要一步。通过将范式从轨迹回放转变为约束满足 , 它使我们能够从单个演示中榨取更多的价值。

关键要点:

  1. 一个演示: 你可以从单个专家输入中生成数千个鲁棒的训练样本。
  2. 几何感知: 与以前的方法不同,CP-Gen 有效地处理拉伸、缩放和形状变化。
  3. 虚实迁移: 生成的数据质量足以训练出无需看任何真实图像就能在现实世界中工作的策略。

虽然该方法目前依赖于手动关键点标注 (作者承认这是一个局限性) ,但它为未来的工作打开了大门,即视觉语言模型 (VLMs) 可能会自动识别这些约束。对于机器人领域的学生和研究人员来说,CP-Gen 凸显了将结构 (如几何约束) 嵌入到我们的数据生成管道中以实现真正泛化的重要性。