仿真可以将少量演示扩展成数千个。以下是已发布数据真正说明的内容、仿真到现实差距的影响,以及仍需记录的内容。
每隔几个月,就会有人发现手动录制五十个剧集是缓慢的,并询问模拟器是否可以替代人工生成。这是一个合理的问题。坦率的答案有三部分:生成数据确实有帮助,它不能完全取代真实录制,而这两者之间的比例完全取决于你所指的合成数据类型。
本页将介绍已发表工作实际测量的内容,您今天可以在低成本机械臂(例如SO-100)上运行的内容,以及仿真到现实的差距如何吞噬收益。简而言之,在详细介绍之前:报告最大倍增效果的系统会倍增一小组真实人类演示。它们并没有消除对真实演示的需求。
您需要了解的内容
- •在操作中,有四种不相关的技术被称为合成数据:轨迹倍增、物理模拟展开、视频世界模型和图像空间增强。它们以不同的方式失效,并具有不同的价值。
- •MimicGen 将不到 200 个人类演示转化为 18 项任务中超过 50,000 个生成演示。在其 Square D0 任务中,从 10 个人类演示生成的 200 个演示达到了 79% 的成功率,而 200 个真实人类演示的成功率为 84%。
- •RoboCasa 是一个反例:72,000 个生成演示的成功率为 47.6%,而 1,250 个人类演示的成功率为 28.8%。这是一个 58 倍的数量优势,而非同等条件下的胜利。
- •仿真与现实协同训练研究报告称,实际任务性能平均提高了 38%。其方法是在混合数据上进行协同训练,而非仅进行仿真到现实的迁移。
- •GR00T N1 基于 780,000 条仿真轨迹(相当于 6,500 小时,在 11 小时内生成)和从 88 小时真实数据中生成的 827 小时神经轨迹。这 88 小时真实数据仍然是金字塔的顶端。
- •对于 SO-101,目前有一个可用的开放式流程:在 Isaac Lab 中使用 LeIsaac,通过物理主臂进行遥操作,使用 Isaac Lab Mimic 进行倍增,导出为 LeRobot 格式,然后对 GR00T 进行微调。
- •AY-Robots 不生成合成数据。它使用您提供的 LeRobot 数据集进行训练,无论该数据集是如何生成的,并且训练器根据模型需要至少 30 到 50 个剧集。
四种不同的事物被称为合成数据
在比较数据之前,有必要先区分不同的类别,因为一篇报告100倍乘数效应的论文和一篇报告5个百分点成功率提升的论文,通常是从不同角度描述同一个流程。共同点在于,LeRobot 数据集 中的某些内容是由机器生成的,而非从物理机械臂上记录下来的。不同之处在于具体是哪一部分。
| 类别 | 保持真实的部分 | 生成的部分 | 报告的乘数效应 | 主要失效模式 |
|---|---|---|---|---|
| 轨迹倍增(MimicGen, DexMimicGen, Isaac Lab Mimic) | 少量人类演示、物体网格、物理引擎 | 适应新物体姿态和场景布局的新轨迹 | 每次重置分布从10个人类演示到1,000个;从60个到21,000个;从不到200个到超过50,000个 | 生成尝试失败。Isaac Lab在简单情况下将候选成功率定为高达70%,在困难情况下则低于1% |
| 任务模拟器中的物理推演(Isaac Lab, robosuite, RoboCasa) | 物理引擎和资产库 | 由脚本控制器、规划器或强化学习驱动的完整片段 | 仅受限于GPU运行时间 | 模拟机械臂并非您的机械臂。接触和伺服动力学是近似值 |
| 视频世界模型(DreamGen, Cosmos Transfer) | 少量真实遥操作片段用作条件 | 新行为的逼真视频,以及随后恢复的伪动作 | GR00T N1中从88小时到827小时,大约10倍 | 动作是推断的,而非测量的。一个看似合理的视频可能包含一个不合理的动作 |
| 图像空间增强(随机裁剪、颜色抖动) | 除像素之外的一切 | 您已有片段的扰动视图 | 1x,它不创建新轨迹 | 几何增强打破了图像与动作标签之间的关联 |
只有前三种是本文所指的合成数据。第四种值得一提,因为它常被纳入同一讨论,并且是列表中迄今为止最便宜的。如果您尚未启用训练器自带的增强功能,请在安装模拟器之前完成此操作。
NVIDIA 在 Hugging Face 上发布了用于 GR00T N1 训练后模拟轨迹,名称为 nvidia/PhysicalAI-Robotics-GR00T-X-Embodiment-Sim,大小约为 1.87 TB,遵循 cc-by-4.0 许可。它细分为 9,000 条跨实体双臂 Panda 和 GR1 轨迹、240,000 条人形桌面轨迹、72,000 条单臂 Panda 厨房轨迹以及 102 条 Unitree G1 运动操作轨迹。使用 huggingface-cli download --include "gr1_arms_only.CanSort/**" 下载其中一个子集并观看几个片段,是校准生成轨迹外观的最快方法,除了带宽之外不产生任何费用。
已发布数据实际说明了什么
以下是证据基础,数据均来自原始资料而非新闻稿的摘要。以下每一行都来自2026年8月23日阅读的论文或项目页面。
| 系统 | 输入 | 生成数据 | 报告结果 |
|---|---|---|---|
| MimicGen, CoRL 2023 | 少于200个人类演示;一对一比较中为10个人类演示 | 超过50,000个演示,18项任务,四种机械臂(Panda, Sawyer, IIWA, UR5e) | Square D0:从10个人类演示中生成的200个演示达到79%,而200个人类演示达到84% |
| DexMimicGen, 2024 | 60个源人类演示 | 21,000个用于双臂灵巧机器人的演示 | 模拟中的双臂灵巧任务,以及从真实到模拟再到真实的类人机器人罐头分拣部署 |
| RoboCasa, 2024 | 1,250个人类演示(25个原子任务中每个任务50个),100个评估任务,超过150个物体类别 | 100,000个MimicGen轨迹;其中72,000个演示子集是主要比较依据 | 在人类数据集上总体为28.8%,而在完全生成的数据集上为47.6%,仅对未见过的物体实例进行评估 |
| 模拟与真实协同训练, 2025 | 真实演示加上模拟数据集,两个领域(机械臂和类人机器人) | 一种混合,而非替代 | 模拟数据将真实世界任务性能平均提升了38% |
| DreamGen, 2025 | 来自单一环境中抓取放置任务的遥操作数据 | 合成视频加上来自潜在动作模型或逆动力学模型的伪动作 | 类人机器人在已知和未知环境中展现22种新行为 |
| GR00T N1数据金字塔, 2025 | 88小时的内部GR-1遥操作 | 827小时的神经轨迹(约10倍);780,000个模拟轨迹,相当于6,500小时,在11小时内生成 | 神经轨迹在RoboCasa上,在30、100和300个演示/任务的制度下分别增加了4.2、8.8和6.8个百分点,并在8个真实GR-1任务中平均增加了5.8个百分点 |
乘数是行数。MimicGen自身的一对一比较显示,生成数据略低于相同数量的人类数据(79% 对 84%),而GR00T N1的消融实验在已有真实数据小时数的模型基础上增加了个位数百分点。RoboCasa确实击败了人类数据,47.6% 对 28.8%,但这是用72,000个生成演示对比1,250个人类演示。数量可以带来覆盖范围,但无法带来你的演示中从未包含的信息。
每一次诚实的消融实验都遵循相同的模式。合成数据以低成本扩大覆盖范围。它不会凭空创造关于你的夹具、伺服下垂、照明或桌面高度的信息,这些信息必须在真实演示中有所体现。如果你的策略失败是因为末端执行器关闭晚了半秒,再多的模拟变化也无法解决。那是一个夹具时序问题在真实录制中。
MimicGen 的一项发现值得你在自己的录制会话中借鉴,因为它与通常的建议相悖。该项目在 Square D2 上生成了两个数据集,一个由来自高质量人类操作员的 10 个演示作为种子,另一个由来自低质量操作员的 10 个演示作为种子,两者均取自 robomimic 多人 Square 数据集。在这两个数据集上训练的策略取得了可比的结果,作者将其解读为在大规模数据体系下,数据质量可能不那么重要的一个迹象。请仔细阅读,这是一个关于十个种子演示的声明,而不是关于你的五十个真实片段。这意味着一个略显粗糙的种子集并不是阻碍你获得可用生成数据集的障碍。这并不意味着你共同训练的真实片段可以粗糙,因为这些片段承载着模拟器所不具备的信息。

虚实鸿沟,具体而言
这个差距通常被视为一个单一的量,但这并没有帮助。它至少包含五个独立的失配,并且在110到150欧元之间的业余机械臂上与在Franka机械臂上的大小不同。
- 接触与摩擦。Isaac Lab明确指出,在相同的硬件以及相同的Isaac Sim和PhysX版本下,模拟是可复现的,但由于浮点精度和舍入误差,结果会因不同的硬件配置而异,并且PhysX不保证任何包含非刚体(如布料或软体)场景的确定性。
- 驱动。一个在7.4 V下运行的Feetech STS3215总线舵机在负载下会下垂,存在间隙,并随着发热而改变行为。SO-101的MJCF模型从一个不相关的项目中借用了其电机参数,而不是在您的机械臂上进行识别。
- 渲染。相机噪声、卷帘快门、自动曝光以及您桌子的确切色调均未包含在渲染中。这是Cosmos-Transfer1旨在弥合的差距的一半:其机器人增强工作流将一个机器人合成示例映射到来自分割、深度或边缘条件化的多个真实示例。
- 时序。模拟器以固定速率步进。真实的控制循环则不然,并且模型本身每个动作步长需要20到485毫秒,具体取决于您选择的模型。请参阅推理延迟。
- 物体统计。模拟场景是从某人记录的分布中采样的。您的厨房桌子则不是。
模拟的SO-100实际了解您的机械臂多少
这部分决定了上述任何一点是否值得您投入周末时间,而第一个令人惊讶的是SO-100和SO-101并未得到同等对待。TheRobotStudio的SO-ARM100仓库将其模拟资产保存在Simulation/。SO100文件夹只包含一个URDF文件,别无其他。SO101文件夹包含URDF和MuJoCo文件:scene.xml、so101_new_calib.xml、so101_old_calib.xml、匹配的URDF文件以及一个joints_properties.xml文件。如果您想要一个物理模型而不是运动学链,那么您需要SO-101文件。
它们是使用 onshape-to-robot 插件从 Onshape 中设计的 CAD 模型生成的,这意味着运动学和视觉网格与 CAD 模型一样好。动力学是另一回事,存储库自己的 README 坦率地提到了三件事。由于在仿真和规划过程中存在碰撞行为问题,基础碰撞网格已被移除。STS3215 电机属性是根据 Open Duck Mini 项目调整的,而不是在 SO-101 上测量的。LeRobot 夹持器约定(其中 0 表示完全闭合,100 表示完全打开)尚未明确反映在 URDF 和 MuJoCo 文件中。上述每一点都可能导致纯粹在该模型中训练的策略在您的实际环境中表现不同。
随附的 MuJoCo 文件中有两种零位约定,scene.xml 通过其包含的机器人文件来选择其中一种。在默认的 so101_new_calib.xml 中,每个关节的虚拟零位位于其关节范围的中间。在 so101_old_calib.xml 中,零位是机器人水平完全伸展时的配置。如果您的模拟回合使用一种约定,而您记录的真实回合使用另一种,那么混合数据集中的每个关节角度都会偏移数十度,损失仍然会下降,并且策略会自信地做出错误的事情。在联合训练之前,请检查两边的约定,并首先阅读校准和损失下降,策略无所作为。
域随机化及其无法解决的问题
解决这一差距的标准答案是停止尝试匹配现实,而是通过足够宽的分布进行训练,使现实落在其中。Tobin 及其同事在 2017 年展示了这一方法的强大版本:一个仅在具有非真实随机纹理的模拟图像上训练的对象检测器,完全没有在真实图像上进行预训练,却能以 1.5 厘米的精度定位真实物体,并对干扰物和部分遮挡保持鲁棒性。
Isaac Lab 揭示了与您附加到环境配置的事件术语相同的理念。这些是旋钮,通过它们在 isaaclab.envs.mdp 中的实际函数名称,因此您可以去阅读它们而不是猜测。
| 事件函数 | 它扰动了什么 |
|---|---|
| randomize_rigid_body_material | 接触摩擦和恢复 |
| randomize_rigid_body_mass, randomize_rigid_body_com | 物体和连杆质量,质心偏移 |
| randomize_actuator_gains | 关节控制器刚度和阻尼 |
| randomize_joint_parameters, randomize_fixed_tendon_parameters | 关节摩擦、电枢和限制 |
| randomize_visual_texture_material, randomize_visual_color | 外观,间隙的光度一半 |
| randomize_physics_scene_gravity | 重力矢量 |
| apply_external_force_torque, push_by_setting_velocity | 运行时扰动 |
| reset_root_state_uniform, reset_joints_by_offset | 每个回合重置时的初始状态分布 |
这就是限制,也是人们常犯的错误。随机化拓宽了策略在您构建的模型中看到的分布。它不能引入模拟器未表示的物理效应。如果 PhysX 没有模拟您的 STS3215 伺服系统的反冲和热下垂,那么随机化它们的刚度并不能让策略学到任何关于反冲的知识。这就是为什么一个在模拟训练策略下抽搐然后下垂 的手臂不是一个随机化预算问题。它是一个建模问题。
手动路径:在 Isaac Lab 中生成数据
Isaac Gym 是旧版软件。NVIDIA 自己的页面标题是“Isaac Gym - 现已弃用”,并表示开发者可以下载并继续使用它,但它不再受支持,而是指向 Isaac Lab。如果您想了解历史,我们涵盖了两者: 和 。对于 2026 年的新工作,请从 Isaac Lab 开始。
- 1安装 Isaac Sim 和 Isaac Lab
pip 安装页面指出,这些说明适用于 Isaac Sim 5.X,它需要 Python 3.11。源代码克隆为您提供了后续步骤所需的脚本。
bashpip install "isaacsim[all,extscache]==5.1.0" \ --extra-index-url https://pypi.nvidia.com git clone https://github.com/isaac-sim/IsaacLab.git --branch main cd IsaacLab sudo apt install cmake build-essential ./isaaclab.sh --install # smoke test ./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py - 2记录大约十个人工演示
Isaac Lab 文档明确指出:后续步骤需要大约 10 个成功的演示才能成功。其提示同样具体。保持演示简短,采取直接路径而不是沿着任意轴移动,并且不要暂停,因为策略不清楚何时以及为何暂停。
bash./isaaclab.sh -p scripts/tools/record_demos.py \ --task Isaac-Stack-Cube-Franka-IK-Rel-v0 \ --device cpu \ --teleop_device spacemouse \ --dataset_file ./datasets/dataset.hdf5 \ --num_demos 10 - 3标注子任务边界
Mimic 将输入演示拆分为子任务,以便它可以重新计时和重新定位这些片段。
--auto标志可以在没有人参与的情况下完成此操作,适用于定义了自动标注的任务;如果没有它,您需要按 B 暂停,按 N 继续,并按 S 标记边界。请注意,任务 ID 会获得一个-Mimic后缀。bash./isaaclab.sh -p scripts/imitation_learning/isaaclab_mimic/annotate_demos.py \ --device cpu \ --task Isaac-Stack-Cube-Franka-IK-Rel-Mimic-v0 \ --auto \ --input_file ./datasets/dataset.hdf5 \ --output_file ./datasets/annotated_dataset.hdf5 - 4生成倍增数据集
这是将 10 变为 1000 的步骤。Mimic 对每个候选应用布尔成功标准,并且只保留那些完成了任务的候选,因此输出数量低于尝试数量。文档指出,在简单情况下,候选成功率高达 70%,而对于困难任务和复杂机器人,则低于 1%:Franka 堆立方体任务约为 50%,GR1T2 抓取放置任务为 65% 到 80%,其中 1000 个演示需要 18 到 40 分钟(在 RTX ADA 6000 上以 80% 的利用率运行需要 19 分钟)。
bash./isaaclab.sh -p scripts/imitation_learning/isaaclab_mimic/generate_dataset.py \ --device cpu \ --num_envs 10 \ --generation_num_trials 1000 \ --headless \ --input_file ./datasets/annotated_dataset.hdf5 \ --output_file ./datasets/generated_dataset.hdf5 - 5将 HDF5 转换为 LeRobot 数据集
上述所有操作都会生成 robomimic 格式的 HDF5,而 Isaac Lab 核心本身不提供 LeRobot 转换器:其文档只说您可以将生成的数据集转换为 LeRobot 格式。有两个项目提供了实际的转换器。IsaacLab-Arena 提供了一个完全由 YAML 配置驱动的 GR00T 目标转换器,而 LeIsaac 则为 SO-101 路线提供了自己的转换器对(见下文)。
bash# IsaacLab-Arena, GR00T LeRobot format python isaaclab_arena_gr00t/lerobot/convert_hdf5_to_lerobot.py \ --yaml_file isaaclab_arena_gr00t/lerobot/config/gr1_manip_config.yaml
在 2026 年 8 月 23 日,main 分支的 Isaac Lab 文档带有 Isaac Sim 6.0.1 徽章,并在其版本切换器中提供了 release/3.0.0 和 v3.0.0-beta2 以及 v2.3.2,而同一棵树上的 pip 安装页面仍然固定 isaacsim[all,extscache]==5.1.0 并将说明描述为适用于 Isaac Sim 5.X。NVIDIA 的 synthetic-manipulation-motion-generation 蓝图容器再次更旧:Isaac Lab 2.0.2 基于 Isaac Sim 4.5.0。LeIsaac 自己的兼容性表将 Isaac Sim 5.1 与 Isaac Lab v2.3.0 配对。这些代码库的更新速度快于文档的协调。选择一个版本,记录下来,如果您遵循三个月前编写的教程,请预期脚本路径和标志名称可能已经更改。
为什么生成尝试会失败,以及如何更改
候选成功率在 70% 到 1% 以下之间波动并非神秘现象,Isaac Lab 记录了常见的陷阱,而不是让你去猜测。每一个陷阱都是你在录制时可以控制的,这就是为什么在录制十个种子演示之前阅读这份清单,而不是在第一次令人失望的生成运行之后再阅读,会更有价值。
- 演示过长。更长的时间范围使策略更难学习。从靠近第一个物体开始,并尽量减少运动。
- 演示不平滑。不规则运动使策略难以理解,更好的远程操作硬件能提供更好的数据:文档明确指出 SpaceMouse 优于键盘。
- 停顿。停顿难以学习,因为策略不清楚为何以及何时停顿。保持运动流畅。
- 子任务过多。子任务越多,轨迹段之间的拼接就越多,导致运动不平滑,生成成功率降低。在手臂不太可能与任何物体碰撞的地方标注边界。
- 无动作噪声。动作噪声使生成的策略更鲁棒。
- 录制裁剪过紧。如果录制在成功条件触发的精确帧停止,它可能在回放时不会再次触发。在末尾留出缓冲。
- 非确定性回放。Isaac Lab 中的物理模拟在 env.reset 后无法确定性复现,因此一些人类演示在回放时会失败。收集比所需更多的演示,并保留那些通过标注的。所有进入 Mimic 生成的 HDF5 文件的内容都是成功的演示,即使回放后来失败,也可以用于训练。
拼接子任务段之间的插值步骤有其自身的调节旋钮,所需的插值步骤数量取决于机器人移动的速度以及物体重置分布的宽度。具有大重置分布的复杂任务会在段之间留下更大的间隙,这需要更多的插值步骤才能呈现为连续运动。如果您的生成视频显示机械臂在不同阶段之间突然移动,那么在指责种子演示之前,这是您需要查看的参数。
在 SO-101 上使用相同管道,配合真实主导臂
对于阅读此页面的任何人来说,这都是一个有趣的选择,因为它是唯一一个将集成到 Isaac Lab 中,并允许您使用已有的物理主控臂来驱动它。LeIsaac(撰写本文时版本为 0.4.0)是集成到 LeRobot 的 EnvHub 中的官方模仿学习模拟平台。其兼容性表列出了三种工作组合;最新的组合将 Isaac Sim 5.1 与 Isaac Lab v2.3.0、CUDA 12.8、PyTorch 2.7.0 和 Python 3.11 配对,文档建议 50 系列显卡使用 Isaac Sim 5.0 或更高版本。
git clone https://github.com/LightwheelAI/leisaac.git --recursive
conda create -n leisaac python=3.11 && conda activate leisaac
conda install -c "nvidia/label/cuda-12.8.1" cuda-toolkit
pip install -U torch==2.7.0 torchvision==0.22.0 \
--index-url https://download.pytorch.org/whl/cu128
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com
sudo apt install cmake build-essential
cd leisaac/dependencies/IsaacLab && ./isaaclab.sh --install && cd ../..
pip install -e source/leisaac
pip install -e "source/leisaac[lerobot]"
pip install numpy==1.26.0设置完成后,/dev/ttyACM0 上的主控臂将驱动模拟的从动臂,并直接记录到 HDF5。循环与您从实际录制中了解的相同,只是从动臂在 PhysX 中是一个刚体。
python scripts/environments/teleoperation/teleop_se3_agent.py \
--task=LeIsaac-SO101-PickOrange-v0 \
--teleop_device=so101leader \
--port=/dev/ttyACM0 \
--num_envs=1 \
--device=cuda \
--enable_cameras \
--record \
--dataset_file=./datasets/dataset.hdf5| 环境 ID | 任务描述 | 机器人 |
|---|---|---|
| LeIsaac-SO101-PickOrange-v0 | 拾取三个橙子并放入盘中,然后将机械臂复位到静止状态 | 单臂 SO101 追随者 |
| LeIsaac-SO101-LiftCube-v0 | 举起红色立方体 | 单臂 SO101 追随者 |
| LeIsaac-SO101-CleanToyTable-v0 | 将两个字母 e 物体放入盒子中,然后将机械臂复位到静止状态 | 单臂 SO101 追随者 |
| LeIsaac-SO101-CleanToyTable-BiArm-v0 | 双臂执行相同任务 | 双臂 SO101 追随者 |
| LeIsaac-SO101-FoldCloth-BiArm-v0 | 折叠布料,然后将机械臂复位到静止状态。只有 DirectEnv 变体支持 check_success | 双臂 SO101 追随者 |
| LeIsaac-LeKiwi-CleanupTrash-v0 | 从地板上拾取纸巾垃圾并扔进垃圾桶 | LeKiwi |
这些 ID 大多也存在一个 -Direct-v0 变体,并且 python scripts/environments/list_envs.py 会打印当前列表。您还可以完全跳过 HDF5 绕行,在远程操作期间通过添加三个标志来写入 LeRobot 格式。文档本身提出了两个注意事项:记录器会自动跳过每个 episode 的前 5 帧,以避免初始状态的不稳定性,并且它可能会导致远程操作出现轻微延迟,这正是那种会悄然改变演示特征的情况。它也只刷新任务标记为成功的 episode。
python scripts/environments/teleoperation/teleop_se3_agent.py \
--task=LeIsaac-SO101-PickOrange-v0 \
--teleop_device=so101leader \
--port=/dev/ttyACM0 \
--num_envs=1 --device=cuda --enable_cameras --record \
--use_lerobot_recorder \
--lerobot_dataset_repo_id=<your-user>/<dataset-name> \
--lerobot_dataset_fps=30乘法步骤随后在这些录制内容上运行。LeIsaac 将 Isaac Lab Mimic 封装在四个命令中,因为 Mimic 从末端执行器和物体姿态中泛化轨迹:将关节空间动作转换为基于 IK 的动作,进行标注,生成,然后转换回关节空间。
python scripts/mimic/eef_action_process.py \
--input_file ./datasets/mimic-lift-cube-example.hdf5 \
--output_file ./datasets/processed_mimic-lift-cube-example.hdf5 \
--to_ik --headless
python scripts/mimic/annotate_demos.py --device cuda \
--task LeIsaac-SO101-LiftCube-Mimic-v0 \
--input_file ./datasets/processed_mimic-lift-cube-example.hdf5 \
--output_file ./datasets/annotated_mimic-lift-cube-example.hdf5 \
--enable_cameras
python scripts/mimic/generate_dataset.py --device cuda \
--num_envs 1 --generation_num_trials 10 \
--input_file ./datasets/annotated_mimic-lift-cube-example.hdf5 \
--output_file ./datasets/generated_mimic-lift-cube-example.hdf5 \
--enable_cameras
python scripts/mimic/eef_action_process.py \
--input_file ./datasets/generated_mimic-lift-cube-example.hdf5 \
--output_file ./datasets/final_generated_mimic-lift-cube-example.hdf5 \
--to_joint --headless然后转换为 LeRobot。这是平台格式规则生效的步骤,LeIsaac 恰好提供了你需要的两个转换器:isaaclab2lerobot.py 写入 LeRobot v2,这是 GR00T 加载器所接受的格式,而 isaaclab2lerobotv3.py 写入 v3,用于 Pi0.5、SmolVLA 和 ACT。这两个脚本接受相同的参数,但固定了不同的 lerobot 版本,并且只转换成功的片段。
pip install lerobot==0.3.3
pip install numpy==1.26.0
python scripts/convert/isaaclab2lerobot.py \
--task_name=LeIsaac-SO101-PickOrange-v0 \
--repo_id=<your-user>/so101_pick_orange_sim \
--hdf5_root=./datasets \
--hdf5_files=dataset.hdf5LeIsaac 文档记录了在 NVIDIA Brev 上运行整个堆栈的方法:部署,点击 80 端口链接打开基于浏览器的 VS Code Server,并使用 --kit_args="--no-window --enable omni.kit.livestream.webrtc" 驱动四个预安装的场景,通过在相同地址后附加 /viewer 来查看渲染。如果你的办公桌下没有工作站显卡,这是一种更经济的方式来确定你的任务的模拟版本是否接近真实情况,然后再投入硬件。
训练策略的两种途径
您自行构建场景、生成数据、租用 GPU 并部署服务。如果任务需要无法物理搭建的环境变化,或者您需要可重复的评估,这是正确的选择。
- 安装 Isaac Sim 5.1 和 Isaac Lab,如果您的机器人是 SO-101,则安装 LeIsaac 堆栈。
- 建模或导入场景。这是通常无人预算且耗时最长的一步。
- 通过模拟跟随器记录大约 10 个干净的演示。
- 标注子任务,运行 generate_dataset.py,并接受失败数据被丢弃。
- 将 HDF5 转换为 LeRobot 格式,GR00T 选择 v2,其他选择 v3。
- 无论如何,在物理机械臂上记录真实片段,然后混合训练。
- 租用 GPU,运行微调,在机械臂旁边提供检查点服务。
| 资源 | 来源说明 |
|---|---|
| 本地模拟 GPU | NVIDIA 合成操作蓝图要求 Ubuntu 22.04 和配备 48 GB 显存的 NVIDIA RTX A6000 |
| 世界模型节点 | 相同的蓝图要求配备 80 GB 显存的 H100 或更高型号,位于独立于 Isaac Lab 模拟的节点上 |
| 容器版本 | 该蓝图镜像中 Isaac Sim 4.5.0 上的 Isaac Lab 2.0.2 |
| 生成吞吐量 | Isaac Lab 报告在 18 到 40 分钟内生成 1000 个 GR1T2 抓取放置演示,在 RTX ADA 6000 上以 80% 的成功率耗时 19 分钟 |
| 神经轨迹成本 | GR00T N1 报告其 827 小时的“梦想”大约需要 105,000 L40 GPU 小时,相当于 3,600 块 L40 GPU 运行约 1.5 天 |
生成 1000 条轨迹只需一个下午。但要让您的场景、相机外参、物体网格和伺服模型足够精确,以使这些轨迹能够成功迁移,则需要数周时间。请为建模而非采样预留预算。
该平台在此处刻意狭窄。它不运行模拟器,也不生成合成数据。它所做的是接收一个 LeRobot 数据集(无论您如何生成),并将其转换为一个已部署的。只要您的 Isaac Lab 输出能够干净地转换,它就是有效的输入。
- 1准备数据集
直接通过遥操作会话使用桌面客户端记录,指向 Hugging Face 仓库 ID,或上传转换后的模拟器导出文件。
- 2选择模型和机械臂
/train 上的矩阵将五种可训练策略中的每一种与每种支持的机械臂配对,并链接到相应的精确指南。
- 3让后端租用 GPU
训练器根据所需的显存选择现货市场 GPU,运行作业并将检查点写入对象存储。无需维护集群。
- 4将其服务回机械臂
推理 Pod 会自动配置,本地机器人客户端与该端点通信,空闲看门狗会销毁该 Pod,因此不会产生隐性费用。
| 模型 | GPU 等级 | 最小片段数 | 数据集格式 | 典型运行成本 |
|---|---|---|---|---|
| GR00T N1.7 | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 | 4 to 12 USD |
| GR00T N1.5 | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 | 4 to 12 USD |
| Pi0.5 | A100 80 GB or H100 80 GB | 50 | LeRobot v3.0 | 4 to 12 USD |
| SmolVLA | RTX 4090 or any 24 GB card | 30 | LeRobot v3.0 | 1 to 3 USD |
| ACT | RTX 4090 or any 24 GB card | 50 | LeRobot v3.0 | 1 to 3 USD |
请注意格式列,并注意这是 LeIsaac 提供两个转换器的原因。LeRobot v3.0 数据集会导致 GR00T 加载器崩溃,必须首先将其转换为 v2.1,这是最常见的拒绝原因。如果您遇到这种情况,是相应的页面。
视频世界模型:最新层,也是测量最少的一层
DreamGen 背后的理念是,一个适应目标机器人形态的视频生成模型,可以在您从未访问过的场景中想象出合理的片段。该流程分为四个阶段:微调视频世界模型,生成逼真的合成机器人视频,使用潜在动作模型或逆动力学模型恢复伪动作序列,然后根据结果训练机器人策略。NVIDIA 的 GR00T-dreams 仓库正是实现了这一点。
主要成果真实且值得认真对待:仅在一个环境中进行单一抓取放置任务的遥操作数据,就在可见和不可见环境中为一个人形机器人产生了22种新行为。但其局限性也同样真实,并体现在第三阶段。
- 它们在现实世界中真正昂贵的维度上实现了扩展:新场景、新物体布局、新指令措辞。
- GR00T-dreams 列出了其动作提取和微调脚本支持的四种实体:franka、gr1、robocasa 和 so100。这并非仅限于人形机器人的技术。
- Cosmos-Transfer1 直接解决了差距的光度学一半,将一个机器人合成示例通过分割、深度或边缘条件映射到多个真实示例。Isaac Lab 本身在 scripts/tools/cosmos 下提供了其提示工具。
- DreamGen 工作发布了 DreamGen Bench,这是一个视频生成基准,显示基准性能与下游策略成功之间存在强相关性,因此你可以在训练前筛选生成结果。
- 动作由模型恢复,而非编码器测量。一个看起来正确的视频可能包含你的机械臂无法执行的关节轨迹。
- 生成成本高昂。GR00T N1报告称,在L40上生成一秒视频需要两分钟,其827小时的神经轨迹大约需要105,000 L40 GPU小时,相当于3,600块L40 GPU工作约1.5天。
- 测得的增益为个位数:在RoboCasa上,三种数据方案分别获得4.2、8.8和6.8分,在8个真实GR-1任务上平均获得5.8分,这还是在一个已经拥有真实数据的模型基础上。
- 没有已发布的方案能端到端地验证这适用于7.4 V爱好级舵机机械臂。你将是移植,而非遵循。
这与仿真无关,但每当有人从仿真机械臂转向真实机械臂并临时搭建电源时,就会出现这个问题。SO-100、SO-101和LeKiwi机械臂都使用7.4 V的Feetech STS3215舵机。向它们提供12 V电压会损坏它们,而LeKiwi尤其是一个陷阱,因为它的底座导轨就是12 V。在接线之前,请参阅SO-100硬件页面。
协同训练是真正显示出增益的方法
如果从文献中汲取一条操作经验,那就是这条。模拟与真实世界协同训练研究(Maddukuri 及其同事,2025)旨在寻找一种简单的方法,利用模拟数据解决基于视觉的机器人操作任务,涵盖机器人手臂和人形机器人这两个领域,其结论是应在混合数据上进行训练。模拟数据将真实世界任务性能平均提高了 38%,该论文明确指出,即使模拟数据与真实世界数据之间存在显著差异,这一结论也依然成立。
最后那句话比 38% 更重要。这意味着模拟不必是完美的数字孪生也能发挥作用,前提是混合数据中包含真实数据作为锚点。仅模拟传输是一条昂贵的路径:同一篇论文指出,仅在模拟中训练策略并将其转移到真实世界通常需要大量人工努力来弥合现实差距。协同训练通过从不要求策略自行弥合差距,从而省去了大部分努力。

实际上,在此平台上,协同训练意味着一件事:将两组剧集放入同一个LeRobot 数据集中,保持一致的相机键、一致的关节顺序和一致的单位,然后运行一次正常的微调。训练表单中没有混合权重旋钮。如果你想要 3:1 的模拟到真实比例,你可以通过在数据集中放入每种剧集的数量来表达。
模拟最划算的胜利不是训练数据
它是评估。为比较两个,每项任务运行数十次真实试验,需要一整天的机械臂时间,而且机械臂在试验之间会发生漂移。SIMPLER(Li及同事,2024)构建了模拟环境,其目的是评估真实策略而非训练它们,然后测量了模拟排名预测真实排名的准确性。单个SIMPLER环境在消费级RTX 4090上以640x512分辨率每秒渲染3,500个模拟步骤,在500 Hz的模拟频率下,这比真实评估快7倍。
| 评估协议 | MMRV(越低越好) | Pearson r(越高越好) |
|---|---|---|
| 验证MSE | 0.375 | 0.308 |
| SIMPLER,变体聚合 | 0.143 | 0.778 |
| SIMPLER,视觉匹配 | 0.056 | 0.924 |
这些是六个常见开源检查点在三个Google Robot任务组上的平均值:三个处于不同训练阶段的RT-1检查点、RT-1-X、RT-2-X和Octo-Base。真实侧的试验次数并非统一,在引用之前值得了解:拾取可乐罐任务75次试验,移近任务60次,打开和关闭抽屉任务54次,以及更长的抽屉和苹果任务27次。与验证MSE的比较是其有用之处。通过验证损失进行模型选择会使这些检查点排名不佳,而视觉匹配下0.924的Pearson r意味着如果一个检查点在SIMPLER中得分更高,那么它很可能在实际测试中也得分更高。这是一个可重复的隔夜记分板,它不需要你相信任何关于模拟到真实训练迁移的说法。

如果您想了解这些基准数据能和不能告诉您关于一个的更广泛背景,我们已在中单独撰写了相关内容。
本平台不提供帮助的方面
明确界限可以节省大家的时间。AY-Robots 是一个记录、训练和部署平台。它不包含模拟器。
- 没有 Isaac Lab,没有 MimicGen,没有世界模型,没有场景创作。如果您想要生成的数据,您需要在其他地方生成并带来结果。
- 训练器只消耗 LeRobot 数据集。模拟器导出必须先转换才能作为输入,并且必须是正确的版本:GR00T N1.5 和 N1.7 对应 v2.0 或 v2.1,Pi0.5、SmolVLA 和 ACT 对应 v3.0。
- GR00T 的微调入口点是一个 tyro CLI,它不暴露任何种子,因此 GR00T 运行无法实现位对位复现。如果您正在进行仔细的模拟与真实消融实验,这是一个真正的限制。lerobot 自己的默认种子是 1000,而 ACT、SmolVLA 和 Pi0.5 形式确实暴露了一个种子字段。
- 梯度累积实际上只应用于两个 GR00T 训练器。对于 Pi0.5 和 SmolVLA,该字段存在于表单中,但 lerobot 0.5.1 没有此标志,因此它不起作用。
- 对于快速任务,推理必须靠近伺服系统。控制循环每个动作步骤需要 20 到 485 毫秒,具体取决于模型,增加公共互联网往返会使一个有效的策略变得犹豫不决。远程推理适用于慢速的抓取放置任务,不适用于快速的反应性运动。
一个您可以辩护的预算
将两条路径与各自实际发布的数据并列比较,对于低成本机械臂上的单任务项目,决策通常会水到渠成。
| 项目 | 仿真优先 | 录制优先 |
|---|---|---|
| 前期建模 | 场景、网格、相机放置、伺服模型。数天到数周 | 无 |
| 数据收集 | 仿真中约10个演示,然后生成 | 30到50个真实片段,数小时的远程操作 |
| 所需硬件 | Isaac Lab蓝图需要48 GB显卡,Cosmos舞台需要80 GB显卡 | 一个机械臂和一台笔记本电脑 |
| 训练成本 | 与右侧列相同,训练器不关心数据来源 | 4090层级1到3美元,A100或H100层级4到12美元 |
| 最佳回报证据 | 协同训练时平均真实世界增益38%,神经轨迹带来4到9个百分点 | 以上所有衡量指标的基线 |
| 失败情况 | 您的任务依赖于接触、可变形物体或伺服柔顺性 | 您需要无法物理布置的环境变化 |
对于SO-100上的第一个策略,请选择录制。通过录制演练和首次训练运行,您将以一杯咖啡的价格获得一个可部署的检查点,并且您将拥有未来任何协同训练混合的真实数据部分。当您拥有一个可用的基线和可以明确指出的特定泛化失败(例如一个只在一种设置下有效)的策略时,再考虑使用模拟器。
一个尊重证据的方案
- 1首先记录真实基线
SmolVLA 30 个回合,ACT、GR00T N1.7 和 Pi0.5 各 50 个回合。训练一次。该策略失败之处即为合成数据的规格。
- 2指出泛化失败的原因
物体姿态?光照?桌面高度?干扰物?指令的不同措辞?合成数据一次只能擅长其中一项,如果您无法指出是哪一项,则毫无用处。
- 3选择涵盖范围最广且成本最低的方法
姿态和布局变化:轨迹乘法。光照和纹理:首先图像增强,其次世界模型。全新场景:物理模拟,并接受建模成本。
- 4生成后,积极筛选淘汰
生成尝试会失败,Isaac Lab 自身的候选成功率根据任务不同,从 70 percent 到低于 1 percent 不等。只保留成功的、完成任务的轨迹,并在信任批次数据之前,以视频形式目测样本。
bashpython scripts/mimic/generate_dataset.py --device cuda \ --num_envs 8 --generation_num_trials 500 \ --input_file ./datasets/annotated.hdf5 \ --output_file ./datasets/generated.hdf5 --enable_cameras - 5协同训练,而非替换
将生成的 episodes 与真实的 episodes 合并到一个具有相同相机键和关节顺序的 LeRobot 数据集中。38 percent 的数字是协同训练的数字。
- 6在真实机械臂上评估,且仅限于此
模拟评估是一个很好的排名信号(在 SIMPLER 的视觉匹配设置中,Pearson r 0.924),但它不是验收测试。在相信它之前,请在测试台上运行检查点。
如果您更愿意从真实录制本身的清单开始,数据收集指南涵盖了相机放置、动作分块的影响以及导致模仿学习数据集无法使用的故障模式。有关格式本身的详细信息,请参阅数据集文档,以及超参数方面,请参阅训练文档。
我能否完全使用合成数据训练机器人策略?▾
对于真实机械臂上的操作任务,不可靠。每一个具有显著成果的已发表结果都是协同训练或在真实数据基础上进行增强的结果。MimicGen 自己的比较显示,在同一任务中,200 个生成的 demos 达到 79 percent,而 200 个人类 demos 达到 84 percent;2025 年的 sim-and-real 协同训练论文指出,仅在 simulation 中训练并进行 transferring 通常需要大量人工努力来弥合 reality gap。RoboCasa 确实显示生成数据以 47.6 against 28.8 percent 的比例击败了人类数据,但这仅限于在生成两者的 simulator 内部,且使用了 72,000 个生成 demos 对比 1,250 个人类 demos。
如果我生成合成 episodes,我仍然需要多少真实 episodes?▾
在 AY-Robots 上,训练器需要 SmolVLA 至少 30 episodes,ACT、GR00T N1.5、GR00T N1.7 和 Pi0.5 各 50 episodes,无论这些 episodes 来自何处。Isaac Lab 的 Mimic documentation 指出,生成需要大约 10 个成功的人类 demonstrations 作为 seed。这些是回答不同问题的不同数字:10 是 generator 所需的,30 to 50 是 trainer 所需的。
模拟数据必须是 LeRobot 格式吗?▾
要在此平台上训练,是的。Isaac Lab 和 LeIsaac 都生成 robomimic-flavoured HDF5。Isaac Lab core 不附带 LeRobot converter,但 LeIsaac 附带用于 LeRobot v2 的 isaaclab2lerobot.py 和用于 v3 的 isaaclab2lerobotv3.py,而 IsaacLab-Arena 附带一个由 YAML config 驱动的、针对 GR00T 的 convert_hdf5_to_lerobot.py。请注意 version:GR00T N1.5 和 N1.7 使用 LeRobot v2.0 或 v2.1,而 Pi0.5、SmolVLA 和 ACT 使用 v3.0。v3.0 dataset 会使 GR00T loader 崩溃,必须将其转换为 v2.1。
到 2026 年,Isaac Gym 仍然是值得学习的正确选择吗?▾
不。NVIDIA 自己的 product page 标题为“Isaac Gym - Now Deprecated”,并指出这是 legacy software,developers 可以 download 并继续使用,但它不再受 supported,并指出 Isaac Lab 是其 replacement。Isaac Lab 提供了从 IsaacGymEnvs、从 OmniIsaacGymEnvs 和从 Orbit 的 migration guides,因此现有 environment 是 portable 而非 lost。
我可以在 Isaac Lab 中使用 SO-100 或 SO-101 吗?▾
SO-101 可以,而且是正确地。TheRobotStudio repository 提供了 SO-101 的 URDF 和 MJCF files,这些 files 是使用 onshape-to-robot 从 Onshape CAD model 生成的,LeIsaac 提供了 ready-made Isaac Lab tasks,例如 LeIsaac-SO101-PickOrange-v0,支持从 physical SO101 leader arm 进行 teleoperation。对于 SO-100,同一个 repository 只提供了一个 single URDF,没有 MuJoCo model。无论如何,请注意 SO-101 README 中所述的 limits:base collision meshes 被 removed 是因为 problematic collision behaviour,STS3215 motor properties 是根据 Open Duck Mini project 调整而非在 SO-101 上 identified 的;以及 0-closed to 100-open gripper convention 尚未在 model files 中 reflected。
该平台会为我运行模拟吗?▾
不。AY-Robots 从真实 teleoperation 中记录 LeRobot datasets,在 rented GPUs 上 fine-tunes 五种 supported policies,并将 resulting checkpoint 服务回 arm。其中没有 simulator、没有 synthetic data generation,也没有 scene authoring 功能。如果您在其他地方 generate data 并将其转换为 valid LeRobot dataset,trainers 将完全像接受 real recordings 一样接受它。
Sources
- MimicGen project page (CoRL 2023): fewer than 200 human demos to over 50,000 across 18 tasks, Panda/Sawyer/IIWA/UR5e, Square D0 79 percent generated against 84 percent human
- DexMimicGen: Automated Data Generation for Bimanual Dexterous Manipulation via Imitation Learning (Jiang et al., 2024), 21K demos from 60 source human demos
- RoboCasa: Large-Scale Simulation of Everyday Tasks for Generalist Robots (Nasiriany et al., 2024), 100 tasks, 150+ object categories, 100K MimicGen trajectories, 28.8 vs 47.6 percent
- Sim-and-Real Co-Training: A Simple Recipe for Vision-Based Robotic Manipulation (Maddukuri et al., 2025), average 38 percent real-world improvement
- GR00T N1: An Open Foundation Model for Generalist Humanoid Robots (NVIDIA, 2025), data pyramid, 780,000 sim trajectories in 11 hours, 88 to 827 hours of neural trajectories, ablations
- DreamGen: Unlocking Generalization in Robot Learning through Video World Models (Jang et al., 2025), 22 new behaviours from one task, DreamGen Bench
- Evaluating Real-World Robot Manipulation Policies in Simulation (SIMPLER, Li et al., 2024), MMRV and Pearson r for visual matching and variant aggregation, 7x speedup over real eval
- Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World (Tobin et al., 2017), 1.5 cm real-world localisation from random textures
- Isaac Lab docs: record_demos.py, annotate_demos.py, generate_dataset.py, the about-10-demos guidance and the candidate success rates, read 23 Aug 2026
- Isaac Lab pip installation: isaacsim[all,extscache]==5.1.0, Isaac Sim 5.X requires Python 3.11, ./isaaclab.sh --install
- Isaac Lab reproducibility and determinism: identical on identical hardware, varies across hardware, no determinism guarantee for non-rigid bodies
- Isaac Lab events API: randomize_rigid_body_material, randomize_actuator_gains, randomize_visual_texture_material and the related randomisation terms
- NVIDIA Isaac Gym product page: now deprecated, legacy software, no longer supported, Isaac Lab is the replacement
- LeIsaac documentation: installation and compatibility table, SO101 teleoperation, available environments, LeRobot recorder, MimicGen env, isaaclab2lerobot converters, NVIDIA Brev
- SO-ARM100 Simulation/SO101: scene.xml, so101_new_calib.xml, so101_old_calib.xml, onshape-to-robot origin, borrowed Open Duck Mini motor parameters, gripper mapping caveat
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started