Volver a Datasets

La generación de demostraciones sintéticas

Explore MimicGen: convierta 200 demostraciones humanas en más de 50.000 demostraciones sintéticas. Instale NVLabs MimicGen, aprenda imitando 250 veces la escala y haga referencia a la Política de difusión hoy.

Una guía para practicantes de MimicGen motor de datos de NVIDIA que convierte ~200 semillas humanas teleoperadas en más de 50.000 trayectorias sintéticas sin tiempo humano extra.

TL;DR

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

¿Qué es MimicGen?

MimicGen es un sistema, no sólo un conjunto de datos. Presentado en CoRL 2023 por Ajay Mandlekar y colaboradores de NVIDIA y UT Austin, aborda el cuello de botella más grande en el aprendizaje de imitación: el tiempo de teleoperación humana. La idea es que una demostración de manipulación puede descomponerse en segmentos de subtareas centradas en objetos por ejemplo, "copa de aproximación", "copa de gripe", "copa de elevación", "lugar en platillo" y cada segmento puede ser anclado de nuevo a una nueva posición de objeto muestrada y reproducido en simulación. Dado una pequeña cantidad de demostraciones de expertos (aproximadamente 10 por tarea), MimicGen genera cientos de trayectorias adicionales de éxito por tarea con solo un pequeño filtro sobre el éxito de la implementación de simulación.

Los conjuntos de datos de MimicGen lanzados envían ~ 50.000 demostraciones sintéticas en 18 tareas y 4 encarnaciones, que cubren manipulaciones ricas en contacto como el montaje de nueces, la preparación de café, la limpieza de la cocina y el swing de martillo bimanual. Las políticas entrenadas en datos MimicGen alcanzan las mismas tasas de éxito que las políticas entrenadas en datos humanos recopilados a mano 10 veces más, y el costo de cálculo es trivial: una sola estación de trabajo puede generar 10.000 demostraciones durante la noche.

MimicGen se ha convertido en la receta predeterminada de escala de datos para el ecosistema robosuite. LIBERO, RoboCasa y muchos artículos posteriores utilizan la generación al estilo MimicGen para extender sus puntos de referencia más allá de lo que solo la teleoperación humana podría soportar, y el método se está portando a Isaac Lab para la generación paralela de GPU a gran escala.

Cómo descargar y cargar

Los conjuntos de datos sintéticos liberados son archivos HDF5 en el formato robomimic estándar, lo que significa que cualquier algoritmo compatible con robomimic puede entrenar en ellos sin modificaciones:

# 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

El script T1 es el interesante ejecuta la descomposición de la subtareas, repasa las posiciones de objetos, repite las trayectorias adaptadas en la simulación, filtra por éxito y guarda un HDF5 fresco que está listo para el entrenamiento robomimico.

Casos de uso comunes y emparejamientos de modelos

  • ** Aprendizaje de imitación a escala.** MimicGen es la forma más rápida de alcanzar 50 veces el número de demostraciones sin necesidad de una teleoperatoria humana adicional.
  • Aumento de la política de difusión. La política de difusión en los datos de MimicGen supera consistentemente la política de difusión en la semilla robomimic original en 15-25 puntos.
  • ** Investigación de tareas bimanual.** Las tareas bimanual Panda son algunos de los únicos conjuntos de datos de imitación bimanual a gran escala en la simulación.
  • Extensión de referencia. LIBERO y RoboCasa utilizan la generación al estilo MimicGen internamente para escalar sus suites de evaluación.

Indicadores de referencia y tablas de clasificación

MimicGen se evalúa generalmente manteniendo la receta de generación fija y comparando el rendimiento de clonación conductual en la secuencia descendente en escalas de datos (10, 100, 1K, 10K demos). El documento de CoRL 2023 y los seguimientos informan de mejoras de 20-30 puntos en relación con las líneas de base solo humanas en el mismo protocolo de evaluación. Ver los Papers with Code MimicGen entry, la página oficial del proyecto, y el [Mandlekar et al. Papel de la CRL 2023]T4) para los números canónicos.

Inmersión técnica profunda: descomposición de las subtareas

La idea algorítmica principal detrás de MimicGen es que una demostración puede ser cortada en segmentos de subtareas centrados en objetos, donde cada segmento se parámetriza por la postura de un objeto específico en la escena. Dado una demostración de la fuente, MimicGen identifica el objeto activo para cada subtarefa, transforma la trayectoria del efecto final en el marco de ese objeto y lo reaplica a una nueva pose de objeto muestrada en una nueva escena.

Este truco funciona porque la mayoría de las subtareas de manipulación son realmente centradas en objetos: el movimiento que ejecuta para agarrar una taza depende de la postura de la taza, no de la postura de la mesa. Se rompe cuando las subtareas son centradas en la mano (movir su propia muñeca a una postura específica independientemente de los objetos) o cuando múltiples objetos interactúan de una manera no separable. Para esos casos, MimicGen expone los ganchos para las definiciones personalizadas de subtareas.

La generación de la tubería es vergonzosamente paralela cada demo sintética es independiente de todos los demás para que pueda escalar a 10.000+ demos durante la noche en una sola estación de trabajo con 32 núcleos de CPU. Para escalas aún más grandes, el equipo ha estado portando MimicGen a Isaac Lab para explotar la física paralela de la GPU, con velocidades reportadas de 10-20x.

Las limitaciones conocidas

  • Sólo para simulación. MimicGen genera demos dentro de un simulador de física. La transferencia de Sim a la realidad no se maneja por MimicGen y requiere un paso de aleatorización o adaptación de dominio separado.
  • Requiere una tarea XML. Cada tarea objetivo debe definirse como una escena de robosuite o Isaac Lab. Las tareas del mundo real solo están fuera de alcance.
  • Segmentación de subtareas es manual. Las demostraciones de semillas deben anotarse con límites de subtareas. Esta es normalmente una tarea de 30 minutos por nuevo índice de referencia pero no es automática.
  • Modos de falla en cambios de dominio extremos. Cuando la pose del objeto re-muestrado está demasiado lejos de la distribución de semillas, la repetición falla y la demostración se descarta.

Las preguntas frecuentes

** ¿Puedo utilizar MimicGen para datos del mundo real? ** No directamente. El mecanismo de repetición requiere un simulador de física.

¿Cómo se compara MimicGen con DAgger o la clonación de comportamiento con inyección de ruido? MimicGen produce volúmenes más grandes de datos diversos pero equivalentes a la política, mientras que DAgger requiere un experto en línea.

** ¿MimicGen funciona con tareas bimanual? ** Sí Los conjuntos de datos publicados incluyen tareas bimanual Panda, y la descomposición de subtareas se extiende naturalmente a episodios de doble brazo.