跳到正文
Hugging Face Blog·· 3 小时前AI 评分49

Hugging Face 发布 ToyBlocks:面向机器人学习与评测的受控模拟环境

ToyBlocks: A controlled world for robot learning and evaluation

AI 导读

Hugging Face 推出 FoundationWorlds 框架,首个实例为围绕桌面机械臂和积木的开源模拟环境 ToyBlocks。它基于 Isaac Lab 用 RL 和运动规划自动生成技能与演示数据,通过 TAMP 在单块 GPU 上并行执行数百个计划,达到最高 24 倍实时性能。

正文 · AI 翻译

💻 代码 | 📊 数据 | 🤖 模型 | 📖 文档

ToyBlocks isometric robot illustration

机器人正在学习叠衣服、分拣零件和处理陌生物体。但这些演示往往相当狭窄,无法解释机器人到底学到了什么,以及它为什么会失败。

要研究一个复杂系统,科学家通常从一个小型、可控的环境开始,比如培养皿或饲养箱,在环境中改变条件并观察效果。机器人学也需要能让这类研究成为可能的环境——研究者应当能够改变训练数据或模型设计、重复某项测试,并追溯失败的原因。

今天我们介绍一个用于创建这类环境的框架,我们称之为 FoundationWorlds。每一个 FoundationWorld 都将一个面向特定环境研究机器人学的受控模拟世界,与自动生成任务和训练演示的工具,以及衡量机器人随时间变化行为的指标配对在一起。它们共同提供了一个场景,用于研究诸如模型如何随训练数据增多而改进,以及如何最好地将高层推理与精确的物理控制相结合等问题。

我们的第一个基础世界是 ToyBlocks:一个围绕机器臂和桌面上的积木构建的开放模拟框架。这个场景刻意保持简单,但机器人仍然必须推理积木之间如何互动,以及在推、翻和堆叠时如何摆放它们。

ToyBlocks 可自动生成演示,即机器人在模拟中完成任务过程的记录,无需耗时的遥操作(即由人远程控制机器人)。研究者可以轻松改变这些训练经验。例如,一个团队可以生成更多推或翻的演示,然后在未纳入训练的任务上评估性能。

以 ToyBlocks 作为我们的第一个 FoundationWorld,我们希望将这一方法扩展到越来越复杂的环境中。

ToyBlocks 的工作原理

在我们之前开放机器人学习工作的基础上,包括 MolmoAct 2、MolmoBot 和 MolmoSpaces,ToyBlocks 为研究者提供了一个在刻意受限的领域中研究机器人学问题的途径。

作为一个 FoundationWorld,ToyBlocks 围绕四项要求设计:(1) 真实的物理效果和外观,(2) 大规模自动生成任务和演示,(3) 将推理与灵巧操作相结合的挑战,(4) 对一个领域内可能任务的大范围覆盖。

开放式的领域需要对广泛的物体和交互进行建模,使得满足所有这些要求变得不可行。而 ToyBlocks 的狭窄范围恰恰使它有可能全部满足这些要求。

在 ToyBlocks 较小的场景中,研究者可以致力于探究机器人如何学会执行任何合理的任务,同时确信模拟的机械臂和积木的行为与其物理对应物非常相似。

Physical robot gripper above wooden blocks in the ToyBlocks setup

ToyBlocks 装置中,物理机器夹爪位于木块上方。

ToyBlocks 不仅仅是抓取和堆叠积木:积木表面的图片和字母还可用于搜索、排序和排列任务。机器人可能需要翻转一块积木才能看到隐藏的一面,然后再决定它应该放在哪里。域随机化——在每个场景中改变积木大小、桌面高度和其他物理属性——测试模型在几何形状变化时的泛化能力。

ToyBlocks framework architecture

ToyBlocks 可自动生成技能(用于短任务的行为)和任务演示,可用于训练模型,或通过额外训练(微调)来调整已训练的模型。高层推理模型决定要做什么;低层动作模型控制机器人的运动。该框架还可用于轻松设计实验并验证假设。

ToyBlocks 使用强化学习(RL)和运动规划(计算机器人应如何移动)来为短程任务生成技能,短程任务涉及简短的动作序列。技能训练在 Isaac Lab 中进行,这是 Nvidia 用于仿真机器人学习的开源框架。通过反复试错,这些策略——选择机器人动作的模型——学习非抓取技能,例如将积木推过桌面,或在不抓取的情况下将其翻转到另一面。技能生成可以利用特权信息——仿真器可以直接提供但真实机器人无法获得的信息,例如积木的精确位置和朝向——而不是从相机图像中估计。这使得自动生成在真实世界中需要遥操作的技能成为可能。

为了生成演示数据,任务与运动规划器(TAMP)会自动选择并排序解决任务所需的技能,并规划机器人在这些技能之间的运动。在仿真中运行每个计划会生成一个记录演示的数据集,并附带描述机器人执行的任务或技能的标签。ToyBlocks 通过在单个图形处理器(GPU)上并行生成和执行数百个这样的计划来扩展数据生成,最高可达 24 倍实时性能。

基于传感器观测进行行动带来了感知问题:模型必须估计积木的位姿——即其位置和朝向——而仿真器可以直接提供这些信息。为了反映真实世界的条件,ToyBlocks 训练将原始传感器观测映射到动作的模型。

在 ToyBlocks 中训练的 Molmo 2(高层模型)和 ManiFlow(低层模型)的执行过程。Molmo 2 选择旋转和翻转等技能,并通过指点界面指示相关积木,而 ManiFlow 控制仿真机械臂执行所指定的技能。

ToyBlocks 的可控数据生成器让用户能够创建侧重特定技能或填补现有数据集空白的训练混合数据。研究人员可以研究模型需要多少数据,以及哪些经验能帮助它泛化到未见过的任务。例如,他们可以测试添加旋转和抓放演示是否能提升翻转能力,或者改变工作空间区域内外的示例比例——并在训练之外保留的任务上评估他们的选择。重要的是,对训练后模型的评估产生的指标不仅仅是成功率;它还提供诸如执行速度、对物体施加的力,以及通过规划模块所用的相同规格来衡量的任务进度等信息。

一个网页界面让用户连接 Claude 或其他前沿模型,并用自然语言指挥机器人或尝试任务,为探索模型如何规划与行动提供了一种方式,且无需机器人学专业知识。

基于 ToyBlocks 的研究

以下评估使用 ToyBlocks 研究训练数据和方法如何影响性能、空间推理、对新字母和积木外观的泛化、多步规划、向实体机器人的迁移,以及通过工具行动的前沿模型。用户可以轻松设计自己的任务和度量来探究其他问题——例如,当模型通过指点还是通过发出诸如“拿起黄色积木”这样的文本命令来选择物体时,表现是否更好。

底层动作模型:VLA 的空间泛化

底层动作模型,如视觉-语言-动作模型(VLA),将语言指令和视觉观察映射为机器人动作。

VLA 的前提是,通过在大规模数据集上预训练,它们可以快速泛化到不同场景或特定工作区。然而,关于这些动作模型泛化能力的证据仍相互矛盾。一些研究报告这些动作模型对输入变化(如不同的物体布局和光照)十分脆弱,而另一些研究则表明 VLA 泛化良好。我们认为,这些研究往往依赖空间变化灵活性有限的真实世界数据集。ToyBlocks 使我们能够在一个简单、易于复现且具有有意义任务空间多样性的环境中,测试动作模型的泛化能力。

我们设计了泛化测试,变化完成任务所需的技能序列、积木上的字母或颜色,以及场景中积木的数量。一项堆叠研究可以在训练中保留四块积木的堆叠,然后测试模型能否组合熟悉的动作来完成它。工作区研究则区分模型在训练区域内新位置上的表现与超出其边界(需要外推)时的表现。我们在下图中展示研究设置和发现。

我们考虑四个任务:Stack、Unstack、Flip 和 Rotate。对于这些任务,我们研究插值(训练范围内的新配置)和外推(超出该范围的配置)。例如,我们通过仅在左侧区域(绿色)生成物体的场景上训练并在右侧区域(橙色)上测试来评估泛化,或通过在堆叠高度为 2 和 5 块积木的场景上训练并在高度为 3 和 4 的场景上测试来评估泛化。

Spatial generalization results

针对 VLA 模型的空间泛化研究(结果基于 ManiFlow、π0.5 和 MolmoAct 2)。尽管进行了大规模预训练,这些流行的动作模型在初步结果中泛化能力较差。我们改进了泛化并分析了每项技术的贡献。图表中的 LoRA 标签代表低秩适配,这是一种使用少量可训练权重更新来微调模型的方法。我们认为动作模型的泛化仍远未解决;ToyBlocks 为系统性地探索泛化技术提供了宝贵的测试平台。

高层推理:视觉-语言模型

长程任务需要许多步骤,使我们能够衡量模型规划一系列动作来解决任务的能力。我们的框架使我们能够创建这样的长程任务,并在高层和低层创建预言器(oracle)——即提供正确规划或动作的参考组件。这使我们能够在模型执行任务失败时,分辨出究竟是高层规划还是低层执行出了问题。一个长程任务的例子可能是用积木堆拼出“Ai2”这个词;由于字母可能一开始并不可见,智能体必须先选择能揭示信息的动作,然后再规划并执行一系列动作来搭建积木堆。

我们评估了具有显式高层规划和低层执行模型的分层模型。在本例中,我们选择视觉-语言模型(VLM)Molmo 2 作为高层规划器,选择 ManiFlow 作为低层策略。Molmo 2 选择要执行的技能以及在其上执行技能的积木,而低层模型执行该指令。我们训练像 ManiFlow 这样的低层模型在完成执行后暂停,并向高层模型查询下一条指令。我们在三个难度递增的场景中评估模型的规划能力。最简单的场景中,每个字符初始时都是直立的并面向摄像头。中等场景中的字符可能不是直立的,而最难场景中的字符在回合开始时是不可见的。

Molmo 2 and ManiFlow block spelling results

使用 Molmo 2 作为高层推理模型、ManiFlow 或运动规划器作为低层操作,在三个字母的积木拼写任务上的成功率。一个示例任务是“堆叠 Ai2”。Molmo 2 和 ManiFlow 在 ToyBlocks 上训练,并在三种难度设置和两种泛化条件下进行评估。

高层推理:智能体系统

我们针对智能体系统的实验测试了前沿模型如何通过工具调用来规划和行动。我们使用 Claude Opus 5.5 研究了三种设置。在搜索与拼写设置中,我们通过 模型上下文协议(MCP)(一种将 AI 应用连接到工具的标准)开放 ToyBlocks 技能。智能体通过摄像头图像观察场景,通过指向某个像素来调用 pick、flip 或 rotate 等技能,并决定何时搜索、构建,或宣告任务完成或不可能完成。相同的 MCP 工具既可以执行生成 ToyBlocks 演示数据的脚本化技能(运动规划的拾取和放置,以及基于强化学习的旋转和翻转),也可以执行学习得到的 ManiFlow 技能。ToyBlocks 包含这些实验背后的框架,该框架也为前文所述的自然语言网页界面提供支持。

一个前沿模型(Claude Fable 5.1)在 ToyBlocks 世界中控制机器人,搜索积木并将它们堆叠成拼出“Ai2”字样的塔。在回合过程中,智能体思考道:“我需要弄清楚 pick-and-place 是否会自然地校正朝向,还是需要我手动纠正……我还剩 63 次调用,足够进行一次受控测试”(0:06)。智能体随后提出假设:“……也许夹爪的偏航角是径向的——从机器人底座指向积木”(0:15),并最终在搭建三块积木的塔之前确认了这一假设(0:26),但“A”是侧躺的(1:11)。令人惊讶的是,尽管当前的前沿模型拥有出色的规划、空间推理和搜索能力,它们仍常常犯类似的感知错误(见下一张图)。

在经典规划任务中,智能体(我们使用 Claude Opus 5.5 进行规划并选择行动的系统)以文本描述的方式解决了一组类似积木堆叠任务的全部 30 个任务,而前沿模型在几年前还在这类任务上苦苦挣扎。它还在反复观察摄像头图像并在闭环中选择下一步行动的情况下,解决了 30 个任务中的全部 30 个。

在“搜索与拼写”场景中,智能体必须生成拼出三个字母单词的积木堆。它需要在场景中最多八块积木里找到带有相应字母的积木。重要的是,50% 的场景中并没有包含所有所需字母的积木,使任务不可行。在这种情况下,我们要求智能体声明任务不可行。我们发现,在这一实验中,智能体成功解决或正确声明不可行的任务占 63%。错误主要是由于智能体将字母与形近字母混淆(13%),或在积木堆中为某个字母选择了错误的朝向(15%)。

我们的结果还表明,当积木具有语义规律或模式时,智能体能够更高效地解决任务,它能利用这些模式来推理被遮挡的面。例如,在大多数不可行的场景中,当积木没有模式时,智能体会在声明不可行之前正确地查看所有积木的面;而当积木具有语义模式时,它能够明显更快地声明不可行。

我们的第三个实验设置探讨智能体能否像科学家一样通过实验来学习其技能的行为。当某个技能表现异常时,智能体会提出假设、设计一个小型测试,并根据结果修正自己的理解。我们进一步拓展了这一想法,让智能体运行自己的实验,并根据发现撰写自己的技能描述。这些学习到的描述将成功率从使用默认描述时的 24% 提升到了 63%,超过了由人类专家撰写的描述所达到的 36%。

Search and Spell outcomes and exposed faces

智能体在每轮“搜索与拼写”结束时已查看过的字母积木面占比(柱状图为 20 轮的平均值;每个标记代表一轮,样式按结果区分)。在可行任务中,三字母目标单词的每个字母都存在;在不可行任务中,缺失一个字母,智能体应如实说明。每块带模式的积木带有某个字母的大写和小写形式,以及以该字母开头的图片(如 A 积木:apple、ant、A、1、airplane、a);无模式积木的六个面是随机且无关的。正确:积木塔拼出了单词,或在不可行任务中,智能体正确声明任务不可能完成。字母旋转或形近:智能体建成了塔,但某个字母被旋转或被形近字母替代,包括五个不可行任务被声明为已解决、缺失字母的位置放了形近字母的情况。积木掉出可及范围并报告:所需积木被推到机械臂可及范围之外,智能体报告任务已不可能完成。未报告:智能体用完了运动技能预算并停止,未声明任何结果。使用带模式的积木时,智能体结束时查看的面数更少,因为它可以推断被遮挡的面必然是什么,而无需逐一检查。

作为模拟器的动作条件世界模型

动作条件世界模型的训练目标是预测场景如何随机器人动作而变化。将其用作基于模型的模拟器的替代方案来训练和评估机器人策略,是一个活跃的研究领域。它们能否胜任这一用途,取决于其对物理交互预测的准确程度,而在不知道场景真实状态的情况下,这很难测量。ToyBlocks 提供了这种真值——即真实的模拟场景状态——从而能够高度受控地测试新近开发的世界模型在低层物体操作中的表现。此处机械臂的末端执行器即其夹爪。

具体而言,我们测试了动作条件世界模型在示例执行数据上训练后,能否预测方块的运动或技能执行的结果。为此,我们选择了四种不同的技能(抓取放置、翻转、旋转和一个混合任务),并为每种技能生成了 900 条轨迹——即机器人状态和动作随时间变化的序列。其中 50% 的轨迹是该技能的成功演示,50% 则因空间配置的微小变化而失败。由于成功与失败执行的数量相等,一个总是预测成功的模型只会有一半的概率是正确的。这些模型先在这些演示上进行微调,然后再测试其预测相同技能的动作序列结果的能力。

World model comparison

我们发现 Wan 2.2 对方块运动和任务结果的预测最为准确。Astra 能很好地追踪夹爪,但难以模拟接触。LeWM 速度较快,且在短交互片段上更为准确,但在完整轨迹上会出现漂移。在附加实验中,我们还发现姿态和成功预测得分更高的模型也能生成更好的训练数据:将最佳视频生成模型生成的 100 条模型生成轨迹(rollout)加入训练后,策略在未见区域的成功率从 19% 提升到 78%。

我们测试了三类模型:一个 50 亿参数的视频预测模型(Wan 2.2)、一个能创建与演示数据相匹配的自定义物理模拟器的智能体模型(Astra),以及一个潜变量世界模型(LeWM)。在测试中,每个训练好的模型需分别根据初始图像和一串动作序列来预测未来的图像、模拟器状态或潜变量状态(学到的内部表示)。对于完整轨迹,模型仅以初始图像作为唯一观测图像,并配合动作序列。对于短交互片段——单次抓取、放置、翻转或旋转——模型则从该交互之前的真实图像开始。完整轨迹展示误差如何在长时程上累积,而交互片段则隔离出单次交互(例如夹爪与方块接触),并展示模型对其预测的好坏。为了公平比较各模型,我们对每个模型的预测进行探测,读出它在轨迹不同时间点预期方块和夹爪的位置,以及它是否预期任务最终成功。

高层与低层模型的真实世界实验

Sim-to-real(仿真到现实)评估将在仿真中训练的策略部署到执行方块操作任务的物理机器人上进行测试。通过对比仿真与现实世界的执行情况,我们评估在仿真中观察到的行为和失败模式能否为现实世界的性能提供有意义的指示。例如,研究人员可以在更长时间跨度的任务中评估单个技能及其组合,以确定失败发生在何处,以及这些模式是否会延续到物理部署中。

我们测试完全基于 ToyBlocks 仿真数据集训练的模型能否以零样本(zero-shot)方式部署到现实世界,而无需在真实世界样本上进行训练。我们分别评估 ManiFlow 和每个底层技能(抓取、放置、翻转和旋转)。我们测试分层系统(Molmo 2 + ManiFlow)能否完成需要这些动作序列的长时间跨度三方块拼写任务。现实世界实验使用配备 Robotiq 夹爪的 Franka FR3 机械臂,涵盖三十种场景配置。每个场景包含 4–10 个在训练中出现过的方块。只有当相关方块在没有碰撞的情况下被移动到目标位姿时,该回合才算成功。如果操作员在某个回合中因不安全的运动而介入停止机器人,该回合将被标记为失败。

ManiFlow 的原子技能成功率在仿真和现实世界中相近(80.0% 和 81.1%)。分层 Molmo 2 + ManiFlow 系统在仿真回合中成功率为 55.5%(111/200),在现实世界回合中成功率为 50.0%(15/30);还需要更多试验才能在各项任务上建立统计置信度。

Simulation and real-world success rates

ManiFlow 底层模型和分层 Molmo 2–ManiFlow 系统在仿真与现实世界中的成功率。对 ManiFlow 而言,总数表示单个技能的执行次数(抓取、放置、翻转和旋转),而对 Molmo 2–ManiFlow 而言,总数表示方块拼写任务的回合数。Molmo 2–ManiFlow 的评估使用仿真评估中定义的最简单场景配置,方块字符可见且直立。

使用同一个高层规划器的现实世界与仿真方块堆叠执行对比。粉色圆环标出规划器为每个技能设定的目标点。两个场景使用不同的方块标签,仿真回放经过重新调整时间,以使抓取和释放与现实机器人对齐。

为了将完全基于 ToyBlocks 数据训练的 Molmo 2 和 ManiFlow 迁移到物理机器人上,我们分三个阶段解决仿真与现实之间的差异。

在数据生成之前,我们通过调整仿真机器人的参数进行系统辨识,包括关节摩擦和电枢(反映在关节处的电机和减速箱惯性),以匹配真实机器人的轨迹。在数据生成期间,我们对物理属性(物体大小、摩擦力和桌面高度)和视觉属性(光照、背景、材质和相机参数)进行随机化。在推理时,观测数据由一个前向 ZED 相机和一个腕部 ZED Mini 采集。对于使用深度图像的策略,我们使用 FastFoundationStereo 从成对的红绿蓝(RGB)相机图像生成干净的深度图(估计每个像素处的距离),而不是依赖噪声较多的深度传感器测量。

The physical ToyBlocks setup with a robot arm, wooden blocks, and a camera

物理 ToyBlocks 设置:一个机械臂、木方块和一个相机。

向进一步研究开放工具

ToyBlocks 在一个受控环境中连接了数据生成、训练与评估,因此研究人员可以研究机器人如何随时间学习,并测试对模型或其训练数据的更改如何影响机器人行为。我们将发布仿真资产、程序化任务和演示生成器、自动生成的演示、两个展示该框架能力的已训练模型(一个基于 Molmo 2,一个基于 ManiFlow)、训练代码,以及评估代码和验证集。这使其他团队能够构建自己的训练混合数据,并研究我们初始实验未涵盖的失败模式。

我们的初始数据发布是一个概念验证,包含 85,336 条长时程演示,每条由大约 6–12 个技能演示组成,具体取决于数据集。初始数据集涵盖近 1,600 小时的机器人执行数据和 1.44 亿帧。几周后,我们的目标是进行第二次发布,包含更大规模的数据集、更多技能以及更全面的基准测试。我们还将添加当前软件包中未包含的完全集成的 RL 训练能力。

ToyBlocks 的其他方向包括双手(双臂)操作和灵巧的机械手,并配备力和触摸传感器,用于研究涉及频繁物理接触的运动和任务。我们还在探索与无结构的积木堆进行玩耍,以此收集数据,并研究新的行为和任务如何通过交互产生。

未来方向:基于 RL 的积木堆操作。

未来方向:双手积木操作。

借助 ToyBlocks,我们希望推动机器人学习的科学向前发展,迈向机器人能够可靠地将所学应用于不熟悉任务和环境的未来。我们鼓励研究社区探索 ToyBlocks 用于自己的研究,甚至将其作为构建自己 FoundationWorlds 的基础。

来源: Hugging Face Blog · huggingface.co