返回Datasets

模拟基因:合成示范基因

探索MimicGen:将200个人类演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示演示

导读NVIDIA的数据引擎,将200种人类远程操作的种子转化为5万多种合成轨迹,

Metric Value
Task coverage 18 manipulation tasks across 4 embodiments
Robots Franka Panda, Sawyer, UR5e, bimanual Panda (robosuite & Isaac Lab)
Modalities Low-dim state, RGB (agent + wrist), object poses, subtask segmentation
License NVIDIA Source Code License
Size 50,000+ synthetic demos generated from ~200 human seeds
Built on robomimic + robosuite + Isaac Lab

什么是MimicGen?

模拟基因是一个系统,不仅仅是一个数据集. 由Ajay Mandlekar和NVIDIA和UT奥斯的合作者在CoRL 2023上介绍,它解决了模拟学习中最大的瓶:人类远程操作时间. 了解到,操作演示可以分解成对象中心的子任务段,例如"接近杯","抓杯","升降杯","放在盘子上",每个段可以重新结到新样本的对象姿势,并在模拟中重播. 鉴于专家示范的小种子 (每项任务约为10个),MimicGen每项任务产生了数百个额外的成功轨迹,仅仅有一个小的选模拟部署成功.

发布的MimicGen数据集在18项任务和4种实施中提供了50,000个合成示例,包括接触丰富的操纵,如子组装,咖啡准备,厨房清洁和双手旋转. 基于MimicGen数据培训的政策与使用手动收集的人类数据培训的政策相等,计算成本是微不足道的:一个工作站可以在一夜之间产生10,000个演示.

基米基因已成为Robosuite生态系统的默认数据扩展配方.LIBERO,RoboCasa和许多后续论文使用MimicGen样式的生成,将其基准扩展到仅仅人类远程操作能够支持的范围之外,该方法正在转移到艾萨克实验室进行大规模的GPU平行生成.

如何下载和加载

发布的合成数据集是标准的Robomimic格式的HDF5文件,这意味着任何与Robomimic兼容的算法都可以在没有修改的情况下训练它们:

# Install MimicGen and its dependencies
git clone https://github.com/NVlabs/mimicgen.git
cd mimicgen && pip install -e .
# Also install robomimic and robosuite
pip install robomimic robosuite

# Download the pre-generated datasets (~60 GB)
python mimicgen/scripts/download_datasets.py --dataset_type core --tasks all

# Train Diffusion Policy on a MimicGen dataset
python -m robomimic.scripts.train \
  --config configs/diffusion_policy.json \
  --dataset datasets/mg_square_d1/image_v141.hdf5

# Or generate your own synthetic demos from a seed
python mimicgen/scripts/generate_dataset.py \
  --config mimicgen/exps/templates/robosuite/square.json \
  --n_trajectories 1000 \
  --seed_data datasets/square/ph/low_dim_v141.hdf5

T1脚本是最有趣的,它运行了子任务分解,重建对象姿态,重建了模拟中的适应轨迹,通过成功过,并保存了一个新鲜的HDF5准备好进行机器人训练.

常见使用情况和模型配对

  • ** 扩展模仿学习.** MimicGen是最快的方法,
  • 扩散政策. MimicGen数据的扩散政策在原始机械种子上持续超过了15-25分.
  • **双手任务研究.**双手任务是模拟中唯一的大型双手模仿数据集.
  • ** 基准扩展.** LIBERO 和 RoboCasa 都在内部使用MimicGen样式的生成来扩展其评估套件.

基准和排名表

基因基因通常通过将生成配方固定并对数据尺度 (10, 100, 1K, 10K演示) 中下游行为克隆性能进行比较来评估. CoRL 2023 论文和后续报告在同一评估协议中仅针对人类的基线方面进行了20-30 分的改善. T4) 对于正文数字.

技术深度潜水:子任务分解

模米基因背后的核心算法理念是,一个示范可以切成对象中心的子任务细节,每个细节都被场景中的特定对象的姿势对象化. 根据一个源示范,MimicGen识别每个子任务的活物体,将最终效应物体轨迹转化为该物体的框架,并重新应用到一个新的样本物体姿势中.在Robosuite或Isaac Lab中进行物理重播,然后检查适应的轨迹是否仍然成功.

这种技巧是有效的,因为大多数操纵子任务实际上都是对象中心的:你执行的运动取决于杯的姿势,而不是桌子的姿势. 在这些情况下,MimicGen将定义自定义子任务的子暴露出来.

生成管道是尬的平行,每个合成演示都独立于其他演示,因此你可以在一个工作站上一夜之间扩展到10,000+演示,使用32个CPU核心.对于更大的规模,团队一直将MimicGen移植到Isaac Lab,以利用 GPU平行物理,报告的速度提高了10-20倍.

已知限制

  • **仅模拟.**MimicGen在物理模拟器内生成示范.MimicGen本身不处理Sim-to-real转移,需要单独的随机化或域调整步骤.
  • 需要一个任务 XML.* 每个目标任务都必须被定义为一个robosuite或Isaac Lab场景. 只有现实世界任务是无法实现的.
  • **子任务分类是手动的.**种子演示必须注释子任务界限.这通常是每一个新基准30分钟的任务,但不是自动的.
  • **极端域转移下失败模式.**当重新样本的对象姿势离种子分布太远时,重播失败,演示被丢弃.在种子范围大约2倍以上的姿势分布时,成功率急剧下降.

常见问题

我可以使用MimicGen来实践数据吗? 不直接.重播机制需要物理模拟器.但是,你可以使用MimicGen生成的模拟数据作为预训练,然后在一个小的实践数据集上进行细节调整.

**MimicGen与DAgger或使用噪音注射对行为克隆的比较是如何?**MimicGen生产更大的多样性但在政策上相当的数据量,而DAgger需要在线专家.对于离线模仿学习,MimicGen更有效地使用数据.

MimicGen是否与双手任务工作? 是的 发布的数据集包括双手任务,而子任务分解自然延伸到双手事件.