ToyBlocks:用于机器人学习与评估的受控世界
本文目录
作者:Kyle Wiggers(Ai2Comms)
发布于 2026 年 11 月 6 日
💻 代码 | 📊 数据 | 🤖 模型 | 📖 文档
机器人正在学习叠衣服、分拣零件和处理陌生物体。但这些演示往往相当狭窄,无法说明机器人学到了什么,也无法解释它为什么会失败。
为了研究复杂系统,科学家通常从一个小型受控环境入手,比如培养皿或生态箱,在那里他们可以改变条件并观察效应。机器人学也需要能让这类研究成为可能的环境——研究者应当能够更改训练数据或模型设计、重复一项测试,并追溯失败的成因。
今天我们推出一套用于创建此类环境的框架,我们称之为基础世界(FoundationWorlds)。每个基础世界都将一个受控的模拟世界(针对特定环境下的机器人研究)与自动生成任务和训练演示的工具,以及衡量机器人随时间变化行为的指标配对。它们共同提供了一个场景,用来研究诸如「随着训练数据增多,模型如何改进」以及「如何最好地结合高层推理与精确的物理控制」等问题。
我们的第一个基础世界是 ToyBlocks:一个围绕机械臂和桌面上的积木搭建的开放模拟框架。这个设定刻意保持简单,但机器人仍必须推理积木之间如何相互作用,以及如何在推、翻、堆叠的同时安排它们。
ToyBlocks 会自动生成演示,也就是机器人在模拟中完成任务的记录,无需耗时的遥操作(teleoperation,即由人远程控制机器人)。研究者可以轻松改变这些训练经验。例如,团队可以生成更多推或翻的演示,然后在未参与训练的任务上评估表现。
以 ToyBlocks 作为我们的第一个 FoundationWorld,我们的目标是把这套方法扩展到越来越复杂的环境。
ToyBlocks 如何工作#
基于我们此前在开放机器人学习方面的工作(包括 MolmoAct 2、MolmoBot 和 MolmoSpaces),ToyBlocks 为研究者提供了一种在刻意受限的领域中研究机器人学问题的方式。
作为一个 FoundationWorld,ToyBlocks 围绕四项要求设计:(1)逼真的物理与外观;(2)大规模自动生成任务和演示;(3)把推理与灵巧操作结合起来的挑战;(4)广泛覆盖该领域内可能出现的任务。
开放式领域需要建模种类繁多的物体和交互,因此无法同时满足上述所有要求。而 ToyBlocks 的狭窄范围使全部要求都能得到满足。
在 ToyBlocks 较小的设定中,研究者可以着手研究机器人如何学会执行任何合理的任务,同时确信模拟中的机械臂和积木与真实对应物的行为非常相似。
ToyBlocks 装置中,一只物理机器人夹爪悬停在木制积木上方。
ToyBlocks 不只是拿起和堆叠积木:积木各面上的图片和字母支持搜寻、分类和排列任务。机器人可能需要转动一块积木,看到隐藏的面,再决定它应该放在哪里。域随机化(domain randomization)——逐场景改变积木尺寸、桌面高度和其他物理属性——则检验模型在几何条件变化时的泛化能力。
ToyBlocks 会自动生成技能(短任务的各项行为)和任务演示,可用于训练模型,或通过额外训练(微调)来适配先前训练过的模型。高层推理模型决定做什么;低层动作模型控制机器人的运动。该框架还可以用来轻松设计实验并验证假设。
ToyBlocks 使用强化学习(reinforcement learning,RL)和运动规划(motion planning,即计算机器人应如何移动)来为短时程任务生成技能,这些任务涉及简短的动作序列。技能训练在 Isaac Lab 中进行,这是 Nvidia 用于模拟机器人学习的开源框架。通过试错,这些策略(policies,即选择机器人动作的模型)学会了非抓取式技能,例如把积木推过桌面,或在不拿起它的情况下将其翻到另一面。技能生成可以利用特权信息(privileged information)——模拟器能直接提供、但真实机器人无法获得的值,例如积木的精确位置和朝向——而不是从相机图像中估计这些信息。这使得自动生成那些在真实世界中需要遥操作的技能成为可能。
为了生成演示数据,任务与运动规划器(task-and-motion planner,TAMP)会自动选择并排序完成任务所需的技能,并规划机器人在这些技能之间的移动。在模拟中运行每个计划,会生成一份录制的演示数据集,以及描述机器人执行哪项任务或技能的标签。ToyBlocks 通过在单个图形处理器(GPU)上并行生成并执行数百个此类计划来扩展数据生成,最高可达实时性能的 24 倍。
从传感器观测出发行动会引入一个感知问题:模型必须估计积木的位姿(pose,即其位置和朝向),而模拟器本可直接提供这些信息。为了反映真实世界的条件,ToyBlocks 训练模型把原始传感器观测映射为动作。
在 ToyBlocks 中训练的 Molmo 2(高层模型)与 ManiFlow(低层模型)的执行过程。Molmo 2 选择旋转、翻转等技能,并通过指向界面标出相关积木,而 ManiFlow 控制模拟机械臂执行所命令的技能。
ToyBlocks 可控的数据生成器让用户能够构建训练混合数据,以强调特定技能或填补现有数据集中的空白。研究者可以研究模型需要多少数据,以及哪些经验有助于它泛化到未见过的任务。例如,他们可以测试加入旋转和抓放演示是否能改善翻转任务,或改变工作区区域内外的样本比例——并在未参与训练的任务上评估这些选择。重要的是,对已训练模型的评估会生成成功率之外的指标;它提供执行速度、施加在物体上的力,以及通过与规划模块所用相同规格衡量的任务进度等信息。
网页界面让用户能够接入 Claude——或其他前沿模型——用自然语言指示机器人或尝试任务,从而无需机器人学专业知识即可探索模型如何规划与行动。
基于 ToyBlocks 的研究#
以下评估使用 ToyBlocks 来研究训练数据和方法如何影响性能、空间推理、对新字母和积木外观的泛化、多步规划、向物理机器人的迁移,以及通过工具行动的前沿模型。用户可以轻松设计自己的任务和度量来研究其他问题——例如,模型在通过指向选择物体与通过发出「拿起黄色积木」这类文本命令来选择物体时,表现是否更好。
低层动作模型:VLA 的空间泛化#
低层动作模型,例如视觉-语言-动作模型(vision-language-action models,VLA),把语言指令和视觉观测映射为机器人动作。
VLA 的前提是:通过在大规模数据集上预训练,它们能够快速泛化到不同场景或特定工作区。然而,关于这些动作模型泛化能力的证据仍相互矛盾。一些研究报告称,这些动作模型对输入变化很脆弱,例如不同的物体布局和光照;另一些研究则显示 VLA 泛化良好。我们认为,这些研究往往依赖空间变化灵活性有限的真实世界数据集。ToyBlocks 使我们能够在一个简单、易于复现且具有有意义任务空间多样性的设定中,测试动作模型的泛化能力。
我们设计了泛化测试,改变完成一条指令所需的技能序列、积木上的字母或颜色,以及场景中的积木数量。一项堆叠研究可以把四块积木的堆叠排除在训练之外,然后测试模型能否组合熟悉的动作来搭建它们。工作区研究则区分模型在训练区域内新位置上的表现,与超越该边界、必须外推的位置上的表现。下面展示研究设置与发现。
我们考虑四项任务:堆叠(Stack)、拆堆(Unstack)、翻转(Flip)和旋转(Rotate)。针对这些任务,我们研究插值(训练范围内的新配置)和外推(超出该范围的配置)。例如,我们通过在物体只生成于左侧区域(绿色)的场景上训练、在右侧区域(橙色)测试来评估泛化,或者在 2 块和 5 块的堆叠高度上训练、在 3 块和 4 块高度上测试。
VLA 模型的空间泛化研究(结果基于 ManiFlow、π0.5 和 MolmoAct 2)。尽管经过大规模预训练,这些流行的动作模型在初始结果中泛化很差。我们改善了泛化,并分析了每种技术的贡献。图表中的 LoRA 标签代表低秩适配(low-rank adaptation),一种用少量可训练权重更新来微调模型的方法。我们认为动作模型的泛化仍远未解决;ToyBlocks 为系统探索泛化技术提供了有价值的试验平台。
高层推理:视觉语言模型#
长时程任务需要许多步骤,使我们能够衡量模型规划一连串动作以解决任务的能力。我们的框架让我们能够创建此类长时程任务,并在高层和低层分别创建预言机(oracle)——提供正确计划或动作的参照组件。这样,当模型在任务中失败时,我们就能区分失败出在高层规划还是低层执行。一个长时程任务的例子是用积木堆拼出「Ai2」;由于字母可能不会立即显现,智能体必须先选择能揭示信息的动作,然后规划并执行一连串动作来搭建这座塔。
我们评估具有显式高层规划和低层执行模型的层级模型。在这个实例中,我们选择视觉语言模型(vision-language model,VLM)Molmo 2 作为高层规划器,选择 ManiFlow 作为低层策略。Molmo 2 选择要执行的技能以及要在哪块积木上执行,低层模型则执行指令。我们训练 ManiFlow 等低层模型在完成执行后暂停,并向高层模型查询下一条指令。我们在三个难度递增的场景中评估模型的规划能力。最简单的场景中,每个字符都直立并朝向相机。中等场景中,字符可能不直立;最难的场景中,字符在回合开始时不可见。
使用 Molmo 2 作为高层推理模型、ManiFlow 或运动规划器作为低层操作时,三字母积木拼写任务的成功率。一个示例任务是「堆出 Ai2」。Molmo 2 和 ManiFlow 在 ToyBlocks 上训练,并在三种难度设置和两种泛化条件下评估。
高层推理:智能体系统#
我们针对智能体系统的实验测试前沿模型如何通过工具调用进行规划和行动。我们使用 Claude Opus 5.5 研究了三种设置。在「搜索并拼写」设置中,我们通过模型上下文协议(Model Context Protocol,MCP,一种把 AI 应用连接到工具的标准)暴露 ToyBlocks 的技能。智能体通过相机图像观察场景,通过指向像素来调用 pick、flip 或 rotate 等技能,并决定何时搜索、搭建,或宣布任务完成或不可能完成。同一套 MCP 工具既可以执行生成 ToyBlocks 演示的脚本化技能(经运动规划的抓放,加上基于 RL 的旋转和翻转),也可以执行学到的 ManiFlow 技能。ToyBlocks 包含这些实验背后的框架,它也支撑了前文所述的自然语言网页界面。
一个前沿模型(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%。
在每个「搜索并拼写」回合结束时,智能体已翻开过的字母积木面所占比例(柱状图为 20 个回合的平均值;每个标记代表一个回合,按结果着色)。在可行任务中,三字母目标单词的每个字母都存在;在不可行任务中,缺少一个字母,智能体应说明这一点。每块带模式的积木都载有一个字母的大写和小写实例,以及以该字母开头的图片(例如 A 积木:apple、ant、A、1、airplane、a);无模式积木的六个面则是随机且互不相关的。正确:塔拼出了该单词,或对于不可行任务,智能体正确声明任务不可能。字母旋转或形近:智能体搭好了塔,但某个字母被转了方向,或被形近字母替代,包括五个不可行任务被宣称为已解决,而缺失字母的位置放入了形近字母。积木掉出可及范围;已报告:所需积木被推到机械臂够不到的地方,因此智能体报告其任务已变得不可能。未报告:智能体用完了动作技能预算并停止,未宣称任一结果。使用带模式的积木时,智能体在结束时翻看的面更少,因为它可以推断隐藏面必然描绘的内容,而无需逐一检查。
动作条件世界模型作为模拟器#
动作条件世界模型(action-conditioned world models)经过训练,用于预测场景如何随机器人的动作而变化。将它们作为基于模型的模拟器的替代方案,用于训练和评估机器人策略,是一个活跃的研究领域。它们能多好地服务于这一目的,取决于它们预测物理交互的准确程度,而在不知道场景真实状态的情况下,这很难衡量。ToyBlocks 提供了这一真值——实际的模拟场景状态——从而能够对近期发展的世界模型在低层物体操作中的表现进行高度受控的测试。在这里,机械臂的末端执行器是其夹爪。
具体而言,我们测试了动作条件世界模型在经过示例执行训练后,能否预测积木的运动或技能执行的结果。为此,我们选择了四种不同的技能(抓放、翻转、旋转和一项混合任务),并为每种技能生成了 900 条轨迹——即机器人状态和动作随时间的序列。其中 50% 的轨迹是技能的成功演示,50% 因空间配置的微小变化而失败。由于成功和失败的执行数量相等,一个总是预测成功的模型只有一半时间是正确的。这些模型在这些演示上微调,然后测试它们预测相同技能动作序列结果的能力。
我们发现,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)能否完成需要这些动作序列的长时程三块积木拼写任务。真实世界实验使用 Franka FR3 机械臂和 Robotiq 夹爪,覆盖三十种场景配置。每个场景包含训练中见过的 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 数据上训练)迁移到物理机器人,我们分三个阶段处理模拟与现实之间的差异。
在数据生成之前,我们通过调校模拟机器人参数执行系统辨识(system identification),包括关节摩擦和电枢(armature,即在关节处反映出的电机和齿轮箱惯量),以匹配真实机器人轨迹。在数据生成期间,我们对物理属性(物体尺寸、摩擦和桌面高度)和视觉属性(光照、背景、材质和相机参数)进行随机化。在推理时,观测通过前置 ZED 相机和腕部安装的 ZED Mini 采集。对于使用深度图像的政策,我们使用 FastFoundationStereo 从成对的 RGB 相机图像生成干净的深度图(在每个像素上估计距离),而不是依赖有噪声的深度传感器测量。
物理 ToyBlocks 装置:一只机械臂、木制积木和一台相机。
开放工具,供进一步研究#
ToyBlocks 在一个受控环境中连接数据生成、训练和评估,因此研究者可以研究机器人如何随时间学习,并测试模型或其训练数据的变化如何影响机器人行为。我们将发布模拟资产、程序化任务与演示生成器、自动生成的演示、两个展示该框架能力的已训练模型(一个基于 Molmo 2,一个基于 ManiFlow),以及训练代码、评估代码和验证集。这使其他团队能够构建自己的训练混合数据,并研究初始实验未覆盖的失败模式。
我们的初始数据发布是一个概念验证,包含 85,336 条长时程演示,每条包含约 6–12 条技能演示,具体取决于数据集。初始数据集覆盖近 1,600 小时的机器人执行数据和 1.44 亿帧。几周后,我们计划进行第二次发布,提供更大规模的数据集、更多技能和更全面的基准测试。我们还会加入当前包中尚未包含的完全集成 RL 训练能力。
ToyBlocks 的其他方向包括双臂操作和配备力与触觉传感器的灵巧机器手,用于研究涉及频繁物理接触的运动和任务。我们还在探索与无结构积木堆的玩耍,作为一种收集数据并研究新行为和新任务如何通过交互涌现的方式。
未来方向:基于 RL 的积木堆操作。
未来方向:双臂积木操作。
借助 ToyBlocks,我们希望推进机器人学习科学,迈向一个机器人能够可靠地将所学应用于陌生任务和环境的未来。我们鼓励研究界探索 ToyBlocks 用于自己的研究,甚至以其为基础构建自己的 FoundationWorld。