机器人为何换张桌子就迷路?Ai2 开源 ToyBlocks 用木块来测量
Ai2 开放 ToyBlocks,在可控环境中研究机器人学习:自动生成数据、两层机器人模型以及在真实机械臂上的测试结果。我们介绍它的原理、首批实验发现和试用方法。
机器人叠衣服、分拣零件的视频层出不穷,但它们大多在狭窄场景中拍摄,无法回答机器人到底学到了什么、为什么会失败。艾伦人工智能研究所(Ai2)于 11 月 6 日开放了 ToyBlocks:一个由桌子、机械臂和印有字母与图案的木块组成的模拟世界,是其 FoundationWorld 系列的第一个。模拟资产、任务与示范生成器、85,336 条示范、两个训练好的模型以及训练和评测代码均以 Apache 2.0 许可在 GitHub 和 Hugging Face 开放。
谁来生成训练数据
ToyBlocks 在 NVIDIA 开源的 Isaac Lab 中用强化学习和运动规划生成推、翻等短技能,再由任务与运动规划器排序技能并规划机械臂动作。数百个计划在单块 GPU 上并行运行,速度最高达实时的 24 倍,数据以 LeRobot 格式保存,任务目标用 PDDL 描述,可自动衡量成功与部分进度。
构建方式:两层机器人大脑
上层 Molmo2-4B-tb(约 45 亿参数)由 Molmo2-4B 微调而来,看前置摄像头图像和文字目标,决定下一步并在图像上指出目标木块,每秒约 6 次决策,训练 6000 步,批大小 256,混入 25% 的指点数据。下层 ManiFlow-tb(3.225 亿参数)用流匹配在 8 块 GPU 上训练 20 万步,输出 25 步动作块。任一层都可替换为"预言机",以区分失败出在规划还是执行。
首批实验
ManiFlow、π0.5 和 MolmoAct 2 在初步结果中泛化较差。世界模型测试中 Wan 2.2 预测最准,加入其生成的 100 条轨迹后,机器人在未见区域的成功率从 19% 升至 78%。基于 Claude Opus 5.5 的智能体通过 MCP 调用技能,在"找字母拼单词"任务中解决或正确判定不可行 63%;自行实验编写技能说明后,成功率从 24% 提高到 63%,专家撰写的说明为 36%。
从模拟到真实
在 Franka FR3 机械臂上,ManiFlow 单技能成功率模拟为 80.0%、真实为 81.1%;Molmo2 与 ManiFlow 组合完成三字母拼写的成功率模拟 55.5%、真实 50.0%(30 次试验)。需要 CUDA 显卡,安装与生成首个小数据集如下;Molmo2-4B-tb 在 bfloat16 下约需 20 GB 显存。第二版将在数周内推出,技术报告尚未发布。
git clone --recursive https://github.com/allenai/toyblocks.git && cd toyblocks
uv venv --python 3.11
uv pip install -e ".[dev,isaac,torch-cu128,vecgen]"
get-toyblocks-assets --asset-manifest asset_manifest.json
# generate two small three-block stacking tasks on one GPU
python scripts/datagen/run_datagen_pipeline.py \
--experiment-id my_first_run --output-root data \
--task-gen-script scripts/task_gen/stack_three.py --task-gen-count 2 \
--env-per-problem 8 --num-envs 8 --exec-num-envs 8 --vecgen-problems-per-env 1 \
--render-pass src/toyblocks/domain_randomization/flags/render_flags_plain.yaml来源: Ai2 博客, GitHub, Molmo2-4B-tb, ManiFlow-tb, 数据集