Ai2 发布 ToyBlocks 机器人学习仿真框架
ToyBlocks: A controlled world for robot learning and evaluation | Ai2
Ai2 发布 ToyBlocks,一个围绕机械臂与桌面方块的开源仿真框架,属于其 FoundationWorlds 系列的第一个受控世界。它用强化学习与运动规划自动生成任务和演示数据,单块 GPU 上并行执行可达 24 倍实时速度,并提供执行速度、施力、任务进度等评测指标。首个数据版本包含 85,336 条长程演示、近 1,600 小时机器人执行数据和 1.44 亿帧,仿真资产、生成器、训练与评测代码一并开放。
正文 · AI 翻译
ToyBlocks:一个用于机器人学习与评估的受控世界
2026年11月6日
Ai2
代码数据模型文档
机器人正在学习叠衣服、分拣零件和处理陌生物体。但这些演示往往相当狭窄,无法说明机器人学到了什么,也无法解释它为何失败。
为了研究复杂系统,科学家通常从一个小型受控环境入手,例如培养皿或生态缸,在其中改变条件并观察结果。机器人学需要能够支持这类研究的环境——研究人员应当能够更改训练数据或模型设计、重复测试,并追溯失败的原因。
今天我们推出一个用于创建这类环境的框架;我们称之为 FoundationWorlds。每个 FoundationWorld 都将一个针对特定环境研究机器人学的受控仿真世界,与自动生成任务和训练演示的工具,以及衡量机器人随时间变化的行为的指标相结合。它们共同提供了一个场景,用于研究诸如模型如何随着训练数据增多而改进,以及如何最好地将高层推理与精确的物理控制相结合等问题。
我们的第一个基础世界是 ToyBlocks:一个围绕机械臂和桌面方块构建的开放仿真框架。该场景刻意保持简单,但机器人仍必须推理方块之间如何相互作用,以及如何在推动、翻转和堆叠的同时安排它们。
ToyBlocks 自动生成演示,即机器人在仿真中完成任务的记录,无需耗时的遥操作,即由人远程控制机器人。研究人员可以轻松改变这些训练经验。例如,团队可以生成更多推动或翻转演示,然后在未纳入训练的任务上评估性能。
以 ToyBlocks 作为我们的第一个 FoundationWorld 起步,我们旨在将该方法扩展到日益复杂的环境。
ToyBlocks 如何工作
基于我们此前在开放机器人学习方面的工作,包括 MolmoAct 2、MolmoBot 和 MolmoSpaces,ToyBlocks 为研究人员提供了一种在刻意受限的领域中研究机器人学问题的方法。
作为一个 FoundationWorld,ToyBlocks 围绕四项要求设计:(1) 逼真的物理与外观,(2) 大规模自动生成任务和演示,(3) 将推理与灵巧性相结合的挑战,以及 (4) 广泛覆盖某一领域内可能出现的任务。
开放式领域需要对大量物体和交互进行建模,因此无法同时满足所有这些要求。另一方面,ToyBlocks 的狭窄范围使其能够全部满足这些要求。
在 ToyBlocks 较小的场景中,研究人员可以致力于研究机器人如何学会执行任何合理的任务,同时确信仿真机械臂和方块的行为与其实物对应物非常相似。
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 使我们能够在简单、易于复现且具有有意义的任务空间多样性的环境中测试动作模型的泛化程度。
我们设计了泛化测试,改变完成任务所需的技能序列、方块上的字母或颜色,以及场景中方块的数量。一项堆叠研究可以在训练中排除四块堆叠,然后测试模型能否组合熟悉的动作来搭建它们。工作区研究区分模型在训练区域内新位置上的表现与在其边界之外(模型必须进行外推)的表现。我们在下面说明研究设置和发现。
我们考虑四项任务:堆叠、拆叠、翻转和旋转。对于这些任务,我们研究插值(训练范围内的新配置)和外推(超出该范围的配置)。例如,我们通过在物体仅在左侧区域(绿色)生成的场景上训练并在右侧区域(橙色)测试来评估泛化,或者通过在 2 块和 5 块堆叠高度上训练并在高度 3 和 4 上测试来评估泛化。
高层推理:视觉-语言模型
长时程任务需要许多步骤,使我们能够衡量模型规划一系列动作以解决任务的能力。我们的框架使我们能够创建此类长时程任务,并在高层和低层创建 oracle——提供正确计划或动作的参考组件。这使我们能够在模型任务失败时区分是高层规划还是低层执行失败。一个长时程任务的例子可能是用方块堆叠拼出“Ai2”;由于字母可能不会立即可见,智能体必须首先选择能揭示信息的动作,然后规划和执行一系列动作来搭建堆叠。
我们评估具有显式高层规划和低层执行模型的层次化模型。在本例中,我们选择视觉语言模型(VLM)Molmo 2 作为高层规划器,选择 ManiFlow 作为低层策略。Molmo 2 选择要执行的技能以及要在哪个方块上执行该技能,而低层模型执行指令。我们训练 ManiFlow 等低层模型在完成执行后暂停,并向高层模型查询下一条指令。我们在三个难度递增的场景中评估模型的规划能力。最简单的场景初始化时每个字符都直立并面向相机。中等场景中的字符可能不直立,而最难的场景包含在回合开始时不可见的字符。
高层推理:智能体系统
我们使用智能体系统进行的实验测试前沿模型如何通过工具调用进行规划和行动。我们使用 Claude Opus 5.5 研究三种设置。在搜索与拼写设置中,我们通过模型上下文协议(MCP)——一种将 AI 应用连接到工具的标准——暴露 ToyBlocks 技能。智能体通过相机图像观察场景,通过指向像素来调用 pick、flip 或 rotate 等技能,并决定何时搜索、搭建,或宣布任务完成或不可能完成。相同的 MCP 工具既可以执行生成 ToyBlocks 演示的脚本化技能(运动规划的抓取和放置,以及基于 RL 的旋转和翻转),也可以执行学习得到的 ManiFlow 技能。ToyBlocks 包含这些实验背后的框架,该框架也为前面描述的自然语言 Web 界面提供支持。
前沿模型(Claude Fable 5.1)在 ToyBlocks 世界中控制机器人,搜索方块并将它们堆叠成拼出“Ai2”的塔。在回合过程中,智能体思索道:“我需要弄清楚抓取和放置是否会自然地校正方向,还是我需要手动纠正……我还剩 63 次调用,足够运行一次受控测试”(0:06)。智能体随后提出假设:“……也许夹爪的偏航角是径向的——从机器人基座指向方块”(0:15),并最终确认了这一假设(0:26),然后搭建了三块方块的塔,但‘A’是侧向的(1:11)。令人惊讶的是,当前的前沿模型尽管具有令人印象深刻的规划、空间推理和搜索能力,却常常犯类似的感知错误(见下一张图)。
对于经典规划,智能体(我们使用 Claude Opus 5.5 进行规划和选择动作的系统)使用文本描述解决了全部 30 个一组方块堆叠任务,这些任务类似于几年前前沿模型难以应对的任务。它还在反复观察相机图像并在闭环中选择下一动作的情况下,解决了 30 个中的 30 个。
在搜索与拼写设置中,智能体必须生成拼出三个字母单词的堆叠。它必须在场景中最多八个方块中找到具有相应字母的方块。重要的是,50% 的场景没有包含所有所需字母的方块,导致任务不可行。在这种情况下,我们要求智能体说明任务不可行。我们发现,在此实验中,智能体能够成功解决或正确宣布不可行的任务占 63%。错误主要是由于智能体将字母与形似字母混淆(13%)或为堆叠中的字母选择了错误方向(15%)。
我们的结果还表明,当方块具有语义规律或模式时,智能体能够更高效地解决任务,利用这些模式来推理被遮挡的面。例如,在大多数不可行场景中,当方块没有模式时,智能体在宣布不可行之前正确地查看了所有方块的面,而当方块具有语义模式时,它能够显著更快地宣布不可行。
我们的第三个实验设置询问智能体能否像科学家一样使用实验来学习其技能的行为方式。当技能表现出意外行为时,智能体形成假设、设计小型测试,并根据结果修正其理解。我们扩展了这一想法,让智能体运行自己的实验,并根据其发现编写自己的技能描述。这些学习得到的描述将成功率从默认描述的 24% 提高到 63%,超过了人类专家编写的描述所达到的 36%。
作为模拟器的动作条件世界模型
动作条件世界模型经过训练,用于预测场景如何响应机器人动作而变化。将它们用作基于模型的模拟器的替代方案来训练和评估机器人策略是一个活跃的研究领域。它们在这方面的效果取决于它们预测物理交互的准确程度,而在不知道场景真实状态的情况下很难衡量这一点。ToyBlocks 提供了这一真实基准——实际的模拟场景状态——从而能够对最近开发的世界模型在低层物体操作中的表现进行高度受控的测试。在这里,机械臂的末端执行器是其夹爪。
具体来说,我们测试了动作条件世界模型在通过示例执行进行训练后,是否能够预测方块的运动或技能执行的结果。为此,我们选择了四种不同的技能(抓取和放置、翻转、旋转以及混合任务),并为每种技能生成了 900 条轨迹——随时间变化的机器人状态和动作序列。这些轨迹中 50% 是技能的成功演示,50% 由于空间配置的微小变化而失败。在成功和失败执行数量相等的情况下,一个总是预测成功的模型只有一半时间是正确的。模型在这些演示上进行了微调,然后测试它们预测相同技能动作序列结果的能力。
我们测试了三种类型的模型:一个拥有50亿参数的视频预测模型(Wan 2.2)、一个创建了自身物理模拟器并根据演示数据进行调优的智能体模型(Astra),以及一个潜在世界模型(LeWM)。在测试过程中,每个训练好的模型都必须分别基于初始图像和一系列动作,预测未来的图像、模拟器状态或潜在状态(学习到的内部表示)。对于完整轨迹,模型仅将初始图像作为唯一观测到的图像,并结合动作序列进行预测。对于短交互片段——单次抓取、放置、翻转或旋转——模型从该交互发生前的真实图像开始预测。完整轨迹展示了误差如何在长时间跨度上累积,而交互片段则隔离出单次交互,例如夹爪与方块接触,并展示模型对其预测的准确程度。为了公平比较各模型,我们探查每个模型的预测,读取它预期方块和夹爪在轨迹不同时间点所处的位置,以及它是否预期任务在结束时成功。
使用高层和低层模型进行的真实世界实验
仿真到真实的评估测试了在仿真中训练的策略在物理机器人执行方块操作任务时的表现。通过比较仿真和真实世界的执行情况,我们评估在仿真中观察到的行为和失败模式是否能提供对真实世界性能有意义的指示。例如,研究人员可以评估单个技能及其在更长跨度任务中的组合,以识别失败在何处产生,以及这些模式是否会延续到物理部署中。
我们测试了完全在 ToyBlocks 仿真数据集上训练的模型能否在真实世界中零样本部署,而无需在真实世界示例上进行训练。我们分别评估了 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)中成功;需要进一步试验以在各任务间建立统计置信度。
使用相同高层规划器的真实世界与仿真方块堆叠执行并排对比。粉色圆环标记规划器为每个技能设定的目标点。各场景使用不同的方块标签,仿真回放经过重新计时,以将抓取和释放与真实机器人对齐。
为了将 Molmo 2 和 ManiFlow——两者均仅在 ToyBlocks 数据上训练——迁移到物理机器人,我们分三个阶段处理仿真与现实之间的差异。
在数据生成之前,我们通过调整模拟机器人参数(包括关节摩擦和电枢,即电机与齿轮箱在关节处反映出的惯性)来进行系统辨识,以匹配真实机器人的轨迹。在数据生成过程中,我们对物理属性(物体尺寸、摩擦和桌面高度)和视觉属性(光照、背景、材质和相机参数)进行随机化。在推理时,观测数据由前置 ZED 相机和腕部安装的 ZED Mini 采集。对于使用深度图像的策略,我们使用 FastFoundationStereo 从成对的 RGB 相机图像生成干净的深度图(估计每个像素的距离),而不是依赖有噪声的深度传感器测量值。
开放工具以支持进一步研究
ToyBlocks 将数据生成、训练和评估整合在一个受控环境中,使研究人员能够研究机器人如何随时间学习,并测试模型或其训练数据的变化如何影响机器人行为。我们正在发布仿真资产、程序化任务与演示生成器、自动生成的演示、两个展示该框架能力的已训练模型(一个基于 Molmo 2,一个基于 ManiFlow)、训练代码,以及评估代码和验证集。这使其他团队能够构建自己的训练混合数据,并研究我们初步实验未涵盖的失败模式。
我们的初始数据发布是一个有力的证明:包含 85,336 条长程演示,每条演示由约 6–12 个技能演示组成,具体取决于数据集。初始数据集涵盖近 1,600 小时的机器人执行数据和 1.44 亿帧。几周后,我们计划发布第二个版本,包含更大规模的数据集、更多技能以及更全面的基准测试。我们还将加入当前版本中尚未包含的完全集成的强化学习训练能力。
ToyBlocks 的其他方向包括双臂(两条手臂)操作和配备力与触觉传感器的灵巧机械手,用于研究涉及频繁物理接触的运动和任务。我们还在探索对无结构方块堆进行玩耍,以此作为收集数据并研究新行为和任务如何通过交互涌现的一种方式。
未来方向:基于强化学习的方块堆操作。
未来方向:双臂方块操作。
借助 ToyBlocks,我们希望推动机器人学习科学向前发展,迈向一个机器人能够可靠地将其所学应用于陌生任务和环境的未来。我们鼓励研究社区探索 ToyBlocks 用于自己的研究,甚至将其作为构建自己的 FoundationWorlds 的基础。
加入我们
在 Ai2,我们正在构建透明、开源 AI 的未来——以开放方式构建,以赋能科学进步,并促进对这项改变世界的技术的基本理解。我们不是为了盈利,而是为了确保 AI 的益处被广泛共享并造福人类。如果这吸引你,请查看我们的开放职位。开放职位