ToyBlocks:一个用于机器人学习与评估的受控世界
💻 代码 | 📊 数据 | 🤖 模型 | 📖 文档

机器人正在学习叠衣服、分拣零件和处理不熟悉的物体。但这些演示往往相当狭窄,并不能说明机器人学到了什么,也不能解释它为什么会失败。
为了研究复杂系统,科学家通常从一个小型、受控的环境开始,例如培养皿或生态缸,在其中改变条件并观察效果。机器人学需要能让这种研究成为可能的环境——研究人员应当能够改变训练数据或模型设计、重复测试,并追踪失败的原因。
今天,我们推出一套用于创建这类环境的框架;我们称之为 FoundationWorlds。每一个 FoundationWorld 都将一个受控的模拟世界——其目标是在特定环境中研究机器人——与自动生成任务和训练演示的工具,以及衡量机器人随时间行为的指标配对。它们共同提供了一个环境,用来研究诸如随着更多训练数据可用模型如何改进,以及如何最好地将高层推理与精确的物理控制结合起来等问题。
我们的第一个 foundation world 是 ToyBlocks:一个围绕桌面上的机械臂和木块构建的开放模拟框架。设定刻意保持简单,但机器人仍然必须推理木块如何相互作用,以及在推动、翻转和堆叠时如何安排它们。
ToyBlocks 自动生成演示,也就是机器人在模拟中完成任务的记录,无需耗时的人工遥操作——在遥操作中,由人远程控制机器人。研究人员可以轻松改变这些训练经验。例如,一个团队可以生成更多推动或翻转演示,然后在未纳入训练的任务上评估性能。
以 ToyBlocks 作为我们的第一个 FoundationWorld 起步,我们旨在将这一方法扩展到日益复杂的环境。
ToyBlocks 如何工作
ToyBlocks 构建在我们此前开放机器人学习方面的工作之上,包括 MolmoAct 2、MolmoBot 和 MolmoSpaces,为研究人员提供了一种在刻意受限的领域中研究机器人学问题的方法。
作为一个 FoundationWorld,ToyBlocks 围绕四项要求设计:(1) 逼真的物理与外观,(2) 大规模自动生成任务和演示,(3) 将推理与灵巧性结合起来的挑战,以及 (4) 广泛覆盖一个领域内可能的任务。
开放式领域需要对大量对象和交互进行建模,这使得满足所有这些要求变得不可行。另一方面,ToyBlocks 范围狭窄,使得满足所有这些要求成为可能。
在 ToyBlocks 更小的设定中,研究人员可以着手研究机器人如何学会执行任何合理任务,同时确信模拟机械臂和木块的行为与它们的物理对应物非常相似。

ToyBlocks 设置中,一个物理机器人夹爪位于木块上方。
ToyBlocks 不只是拾取和堆叠木块:木块表面上的图片和字母使得搜索、分拣和排列任务成为可能。机器人可能需要转动木块以看到隐藏的一面,然后才能决定它应放在哪里。域随机化——在每个场景中改变木块尺寸、桌面高度和其他物理属性——检验模型在几何形状变化时泛化得有多好。

ToyBlocks:用于机器人学习与评估的可控世界
ToyBlocks 自动生成技能(短任务的行为)和任务演示,可用于训练模型,或通过额外训练(微调)来适配先前训练过的模型。高层推理模型决定做什么;低层动作模型控制机器人的运动。该框架还可用于轻松设计实验并验证假设。
ToyBlocks 使用强化学习(RL)和运动规划(计算机器人应如何移动)来为短时程任务生成技能,这些任务涉及简短的动作序列。技能训练在 Isaac Lab 中进行,这是 Nvidia 用于仿真中机器人学习的开源框架。通过试错,这些策略——选择机器人动作的模型——学习非抓取技能,例如在桌面上推动积木,或在不拾起积木的情况下将其翻到另一面。技能生成可以利用特权信息——仿真器可以直接提供但真实机器人无法提供的值,例如积木的精确位置和朝向——而不是从相机图像中估计。这使得能够自动生成在真实世界中需要遥操作的技能。
为生成演示数据,任务与运动规划器(TAMP)会自动选择并排序解决任务所需的技能,并规划机器人在这些技能之间的运动。在仿真中运行每个计划会生成记录演示的数据集,以及描述机器人执行哪个任务或技能的标签。ToyBlocks 通过在单个图形处理单元(GPU)上并行生成和执行数百个此类计划来扩展数据生成,达到最高 24 倍的实时性能。
从传感器观测中行动增加了一个感知问题:模型必须估计积木的位姿——其位置和朝向——而仿真器可以直接提供这些信息。为反映真实世界条件,ToyBlocks 训练将原始传感器观测映射到动作的模型。
Molmo 2(高层模型)和 ManiFlow(低层模型)在 ToyBlocks 中训练后的执行。Molmo 2 选择旋转和翻转等技能,通过指向界面指示相关积木,而 ManiFlow 控制仿真机械臂执行所命令的技能。
ToyBlocks 的可控数据生成器让用户创建训练混合,以强调特定技能或填补现有数据集中的空白。研究人员可以研究模型需要多少数据,以及哪些经验有助于其泛化到未见任务。例如,他们可以测试添加旋转和抓取放置演示是否能改善翻转,或改变定义的工作空间区域内外的示例平衡——在未纳入训练的任务上评估他们的选择。重要的是,对训练模型的评估生成的指标不止成功率;它提供诸如执行速度、施加在物体上的力,以及通过规划模块使用的相同规格测量的任务进度等信息。
一个网页界面让用户连接 Claude——或其他前沿模型——并使用自然语言指示机器人或尝试任务,提供了一种无需机器人专业知识即可探索模型如何规划和行动的方式。
基于 ToyBlocks 的研究
以下评估使用 ToyBlocks 研究训练数据和方法如何影响性能、空间推理、对新字母和积木外观的泛化、多步规划、向物理机器人的迁移,以及通过工具行动的前沿模型。用户可以轻松设计自己的任务和度量来研究其他问题——例如,模型在通过指向选择物体时,还是通过发出诸如“拿起黄色积木”这样的文本命令时表现更好。
低层动作模型:VLA 空间泛化
低层动作模型,例如视觉-语言-动作模型(VLAs),将语言指令和视觉观测映射到机器人动作。
VLA 的前提是,通过在大规模数据集上预训练,它们能够快速泛化到不同场景或特定工作空间。然而,关于这些动作模型泛化能力的证据仍然相互矛盾。一些研究报告称,这些动作模型对输入变化(例如不同的物体布局和光照)很脆弱,而另一些研究则表明 VLA 泛化良好。我们认为,这些研究往往依赖在空间变化方面灵活性有限的真实世界数据集。ToyBlocks 使我们能够在一个简单、易于复现且具有有意义任务空间多样性的设置中,测试动作模型的泛化能力。
我们设计泛化测试,改变完成指令所需的技能序列、积木上的字母或颜色,以及场景中的积木数量。一项堆叠研究可以将四块积木的堆叠排除在训练之外,然后测试模型能否组合熟悉的动作来搭建它们。工作空间研究区分模型在训练区域内新位置上的表现与在其边界之外的表现,后者要求模型进行外推。我们在下面展示研究设置和发现。
我们考虑四个任务:堆叠、取消堆叠、翻转和旋转。对于这些任务,我们研究插值(训练范围内的新配置)和外推(超出该范围的配置)。例如,我们通过在物体仅生成于左侧区域(绿色)的场景中训练,并在右侧区域(橙色)测试来评估泛化;或者通过在 2 块和 5 块积木的堆叠高度上训练,并在 3 块和 4 块高度上测试来评估泛化。

针对 VLA 模型的空间泛化研究(结果基于 ManiFlow、π0.5 和 MolmoAct 2)。尽管进行了大规模预训练,这些流行的动作模型在初始结果中泛化不佳。我们改进了泛化,并分析每种技术的贡献。图表中的 LoRA 标签代表低秩适应,这是一种用少量可训练权重更新来微调模型的方法。我们认为动作模型的泛化仍远未解决;ToyBlocks 为系统探索泛化技术提供了有价值的测试平台。
高层推理:视觉语言模型
长时程任务需要许多步骤,使我们能够衡量模型规划一系列动作来解决它们的能力。我们的框架使我们能够创建这样的长时程任务,并在高层和低层创建 oracle——提供正确计划或动作的参考组件。这使我们能够在模型任务失败时,隔离出是高层规划失败还是低层执行失败。一个长时程任务示例可能是用积木堆拼出“Ai2”;由于字母可能不会立即可见,智能体必须首先选择能揭示信息的动作,然后规划并执行一系列动作来搭建该堆叠。
我们评估具有显式高层规划和低层执行模型的分层模型。在此实例中,我们选择视觉语言模型(VLM)Molmo 2 作为高层规划器,并选择 ManiFlow 作为低层策略。Molmo 2 选择要执行的技能以及要在哪块积木上执行,而低层模型执行指令。我们训练 ManiFlow 等低层模型,使其在完成执行后暂停,并向高层模型查询下一条指令。我们在三个难度递增的场景中评估模型的规划能力。最简单的场景初始化时每个字符都直立并面向相机。中等场景中的字符可能不直立,而最难的场景包含在回合开始时不可见的字符。

使用 Molmo 2 作为高层推理模型,并使用 ManiFlow 或运动规划器进行低层操作的三字母积木拼写任务的成功率。一个示例任务是“Stack Ai2”。Molmo 2 和 ManiFlow 在 ToyBlocks 上训练,并在三种难度设置和两种泛化条件下评估。
High-level reasoning: agentic systems
我们使用智能体系统进行的实验,测试前沿模型如何通过工具调用进行规划并采取行动。我们使用 Claude Opus 5.5 研究了三种设置。在搜索并拼写设置中,我们通过 Model Context Protocol(MCP)暴露 ToyBlocks 技能;MCP 是连接 AI 应用与工具的标准。智能体通过摄像头图像观察场景,通过指向某个像素来调用 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/30 个任务。
在搜索并拼写设置中,智能体必须生成能拼出三字母单词的堆叠。它必须在场景中最多八块积木里找到带有对应字母的积木。重要的是,50% 的场景中没有包含全部所需字母的积木,使任务不可行。在这种情况下,我们要求智能体说明任务不可行。我们发现,在该实验中,智能体能够成功解决或正确宣布不可行的任务占 63%。错误主要源于智能体将字母与外形相似的字母混淆(13%),或为堆叠中的某个字母选择了错误方向(15%)。
我们的结果还表明,当积木具有语义规律或模式时,智能体能够更高效地解决任务,利用这些模式来推理被遮挡的面。例如,在大多数不可行场景中,当积木没有模式时,智能体会先正确查看所有积木的面,再宣布不可行;而当积木具有语义模式时,它能显著更快地宣布不可行。
我们的第三个实验设置询问智能体是否能像科学家那样通过实验学习其技能的行为方式。当某项技能的行为出乎意料时,智能体会形成假设、设计一个小测试,并根据结果修正自己的理解。我们让智能体自行运行实验,并根据发现编写自己的技能描述,从而扩展了这一想法。这些学习到的描述将成功率从使用默认描述时的 24% 提高到 63%,超过了由人类专家编写的描述所取得的 36%。
ToyBlocks:用于机器人学习与评估的受控世界

在每个“search and spell”回合结束时,智能体已暴露的字母积木面的比例(柱状图为 20 个回合的平均值;每个回合一个标记,样式按结果区分)。在可行任务中,三字母目标词的每个字母都存在;在不可行任务中,缺少一个字母,智能体应说明这一点。带图案的每个积木包含某个字母的大写和小写实例,以及以该字母开头的图像(例如 A 积木:apple、ant、A、1、airplane、a);无图案积木的六个面是随机且互不相关的。正确:积木塔拼出了该单词;或在不可行任务中,智能体正确声明该任务不可能。字母旋转或形似:智能体搭好了积木塔,但
我们测试了三类模型:一个拥有 50 亿参数的视频预测模型(Wan 2.2)、一个创建了自己的物理模拟器并调整其以匹配演示数据的智能体模型(Astra),以及一个潜在世界模型(LeWM)。在测试期间,每个已训练模型必须分别基于初始图像和动作序列,预测未来图像、模拟器状态或潜在状态(学习到的内部表示)。对于完整轨迹,模型仅使用初始图像作为唯一观测图像,并结合动作序列。对于短交互片段——单次抓取、放置、翻转或旋转——模型从该交互发生前的真实图像开始。完整轨迹展示误差如何在长时程上累积,而交互片段隔离单次交互(例如夹爪与方块接触),并展示模型对该交互的预测效果。为了公平比较模型,我们探测每个模型的预测,读取其在轨迹不同点期望方块和夹爪所在的位置,以及其是否期望任务在结束时成功。
使用高层和低层模型的真实世界实验
Sim-to-real 评估测试在仿真中训练的策略在物理机器人上执行方块操作任务的表现。通过比较仿真与真实世界执行,我们评估在仿真中观察到的行为和失败模式是否能提供关于真实世界性能的有意义指示。例如,研究人员可以评估单个技能及其在更长时程任务中的组合,以识别失败发生在哪里,以及这些模式是否会延续到物理部署中。
我们测试完全在 ToyBlocks 仿真数据集上训练的模型能否在没有真实世界示例训练的情况下,以零样本方式部署到真实世界。我们分别评估 ManiFlow 和每个低层技能(抓取、放置、翻转和旋转)。我们测试分层系统(Molmo 2 + ManiFlow)能否完成需要这些动作序列的长时程三块拼写任务。真实世界实验使用 Franka FR3 机械臂和 Robotiq 夹爪,覆盖 30 种场景配置。每个场景包含训练中见过的 4–10 个方块。只有当相关方块无碰撞地移动到目标位姿时,一个回合才算成功。如果操作员因某一回合中的不安全运动而干预并停止机器人,则该回合标记为失败。
ManiFlow 的原子技能成功率在仿真和真实世界中相近(80.0% 和 81.1%)。分层 Molmo 2 + ManiFlow 系统在 55.5% 的仿真回合中成功(111/200),在 50.0% 的真实世界回合中成功(15/30);还需要进一步试验以在各任务上建立统计置信度。

ManiFlow 低层模型和分层 Molmo 2–ManiFlow 系统在仿真与真实世界中的成功率。对于 ManiFlow,总计数表示单个技能执行次数(抓取、放置、翻转和旋转);而对于 Molmo 2–ManiFlow,它表示方块拼写任务回合数。Molmo 2–ManiFlow 评估使用仿真评估中定义的最简单场景配置,其中方块字符可见且竖直。
使用同一高层规划器的真实世界与仿真方块堆叠执行并排对比。粉色圆环标记规划器为每个技能设定的目标点。这些场景使用不同的方块标签,仿真回放经过重新计时,以使抓取和释放与真实机器人对齐。
为了将 Molmo 2 和 ManiFlow——两者都完全在 ToyBlocks 数据上训练——迁移到物理机器人,我们分三个阶段处理仿真与现实之间的差异。
在数据生成之前,我们通过调节模拟机器人参数(包括关节摩擦和电枢(电机与齿轮箱在关节处反映出的惯性))来进行系统辨识,以匹配真实机器人轨迹。在数据生成过程中,我们随机化物理属性(物体尺寸、摩擦和桌面高度)和视觉属性(光照、背景、材质和相机参数)。在推理时,使用前置 ZED 相机和腕部安装的 ZED Mini 采集观测。对于使用深度图像的策略,我们使用 FastFoundationStereo 从成对的红绿蓝(RGB)相机图像生成干净的深度图(用于估计每个像素的距离),而不是依赖噪声较大的深度传感器测量值。

物理 ToyBlocks 装置:一条机械臂、木块和一台相机。
开放工具以开展进一步研究
ToyBlocks 在一个受控环境中连接数据生成、训练和评估,因此研究人员可以研究机器人如何随时间学习,并测试模型或其训练数据的变化如何影响机器人行为。我们正在发布仿真资产、程序化任务与演示生成器、自动生成的演示、两个展示该框架能力的训练模型(一个基于 Molmo 2,一个基于 ManiFlow)、训练代码,以及评估代码和验证集。这使其他团队能够构建自己的训练混合数据,并研究我们初始实验未覆盖的失败模式。
我们的首批数据发布是一个验证点,包含 85,336 个长时程演示,每个演示包含约 6–12 个技能演示,具体取决于数据集。初始数据集覆盖近 1,600 小时的机器人执行数据和 1.44 亿帧。几周后,我们的目标是进行第二次发布,包含更大规模的数据集、更多技能和更全面的基准测试。我们还将加入当前包中尚未包含的完全集成 RL 训练能力。
ToyBlocks 的其他方向包括双臂(两条手臂)操作和灵巧机械手,配备力和触觉传感器,用于研究涉及频繁物理接触的运动和任务。我们还在探索以非结构化积木堆进行玩耍,作为一种收集数据并研究新行为和任务可能如何通过交互涌现的方式。
未来方向:基于 RL 的积木堆操作。
未来方向:双臂积木操作。
借助 ToyBlocks,我们希望推动机器人学习科学,迈向机器人能够可靠地将所学应用到陌生任务和环境的未来。我们鼓励研究社区探索 ToyBlocks 用于自己的研究,甚至将其作为构建自己的 FoundationWorlds 的基础。