Contenido detallado
🔹 Por qué simular: barato, seguro, paralelo, reinicios infinitos
Cada demo real requiere una persona, un robot y tiempo de reloj. En simulación, un clúster genera millones de trayectorias de madrugada, sin desgaste mecánico ni colisiones costosas. Es crucial para RL, que necesita órdenes de magnitud más interacciones que la imitación.
📊 Las cuatro ventajas
- Costo — sin desgaste del hardware ni un operador humano por trayectoria.
- Seguridad — las políticas deficientes rompen píxeles, no actuadores.
- Paralelismo — miles de entornos simultáneos en la GPU.
- Reinicio infinito — ground truth del estado, aleatorización programática, replay.
⚡ Consejo práctico
Sim no sustituye lo real: lo complementa. La receta ganadora es sí para volumen + RL e real para el ajuste fino final con pocas demos. Intentar transferir el 100% de la simulación sin datos reales suele frustrar.
Costo
Datos casi gratis.
Seguridad
Falla sin daño físico.
Paralelismo
Miles de entornos.
Ground truth
Estado exacto disponible.
🔹 MuJoCo / MJX: contacto preciso y física diferenciable
MuJoCo (Multi-Joint dynamics with Contact, hoy open-source de DeepMind) es una referencia para la física del contacto y la fricción en manipulación. MJX reimplementa el solver en JAX, ejecutando miles de simulaciones en GPU/TPU con vmap y gradientes mediante grad — abriendo la optimización diferenciable de trayectorias.
pip install mujoco mujoco-mjx jax[cuda12]
import mujoco, mujoco.mjx as mjx, jax
model = mujoco.MjModel.from_xml_path("scene.xml") # MJCF
mx = mjx.put_model(model)
@jax.vmap # 4096 mundos em paralelo
def step(state, ctrl):
data = mjx.step(mx, state.replace(ctrl=ctrl))
return data
# jax.grad(step) -> física diferenciável
⚡ Consejo práctico
Las escenas en MuJoCo son MJCF (XML). Empieza con los modelos de mujoco_menagerie (Franka, ALOHA, manos) en lugar de modelarlo desde cero: una geometría de colisión incorrecta es la causa nº 1 de una física inestable.
MuJoCo
Contacto preciso.
MJX
JAX, vmap en GPU.
Diferenciable
Gradiente de la dinámica.
MJCF
Escena en XML.
🔹 NVIDIA Isaac Sim / Isaac Lab: simulación GPU con RTX
Isaac Sim (sobre Omniverse/PhysX 5) ofrece física y renderizado RTX en la GPU; Isaac Lab es el framework de RL/aprendizaje encima de él, que ejecuta miles de entornos paralelos sin salir de la GPU: observaciones, física y política conviven en la misma VRAM, eliminando el cuello de botella CPU↔GPU.
📊 Por qué importa la escala
- PhysX 5 en GPU — miles de entornos, sin viajes de ida y vuelta a la CPU.
- RTX — la renderización fotorrealista es útil para sim-to-real visual.
- USD/OpenUSD — formato de escena interoperable y modular.
- Sensores — cámaras, LiDAR y RGB-D sintéticos listos.
✓ Hacer
- ✓Usar Isaac Lab para RL masivo (locomoción, whole-body).
- ✓Aprovechar RTX para la aleatorización visual del dominio.
- ✓Verifica los requisitos de GPU NVIDIA + drivers antes de empezar.
✗ Evitar
- ✗Esperar ejecutar Isaac Sim en hardware que no sea NVIDIA.
- ✗Confundir el fotorrealismo con la fidelidad física.
- ✗Ignorar el costo de configuración; MuJoCo es más ligero para prototipos.
Isaac Sim
Omniverse + PhysX 5.
Isaac Lab
Framework de RL.
RTX
Renderizado fotorrealista.
OpenUSD
Escena interoperable.
🔹 Habitat y compañía: navegación y embodied QA
Habitat (Meta) se enfoca en entornos 3D fotorrealistas para navegación e preguntas y respuestas sobre el mundo físico — el agente se desplaza por escenas escaneadas (HM3D, Matterport) respondiendo «¿dónde está la llave?». Está en otro punto del espectro: menos manipulación por contacto, más percepción espacial y exploración.
📊 Espectro de simuladores
- MuJoCo — contacto y manipulación, física de alta precisión.
- Isaac Sim — escala + RTX, locomoción y manipulación.
- Habitat — navegación, EQA, escenas reales escaneadas.
- Genesis / SAPIEN — nuevas opciones 2024-26, velocidad y articulados.
import habitat_sim
cfg = habitat_sim.SimulatorConfiguration()
cfg.scene_id = "data/scene_datasets/hm3d/00800-TEEsavR23oF.glb"
sim = habitat_sim.Simulator(habitat_sim.Configuration(cfg, [agent_cfg]))
obs = sim.step("move_forward") # navegação em cena escaneada real
obs["rgb"], obs["depth"] # sensores sintéticos
Habitat
Navegación 3D.
EQA
Preguntas incorporadas.
HM3D
Escenas escaneadas.
SAPIEN
Objetos articulados.
🔹 La brecha de física y renderizado (sim ≠ real)
Ningún simulador es el mundo. El brecha entre la simulación y la realidad aparece con la fricción mal modelada, los objetos deformables y los líquidos, el ruido y la latencia de los sensores, y el dominio visual (iluminación, texturas). Una policy que acierta el 95% en sim puede desplomarse en el entorno real: es un tema central de la Trilha 3.
Física
La fricción, el contacto, los materiales deformables y los fluidos son aproximaciones; los objetos rígidos son fáciles, las telas no.
Sensores
El RGB-D real tiene ruido, huecos y latencia que el renderizado perfecto ignora.
Apariencia
La distribución visual difiere; la aleatorización de dominio lo mitiga (Trilha 3).
⚡ Consejo práctico
Evalúa en el mundo real (o en una simulación diferente de la de entrenamiento). Reportar solo el success rate en la simulación de entrenamiento es la forma más común de engañarse sobre una policy.
Brecha de realidad
Sim ≠ real.
Deformables
Telas/fluido difíciles.
Ruido del sensor
RGB-D imperfecto.
Eval honesta
Medir la transferencia al mundo real.
✓ Hacer
- ✓Aleatorizar la física/lo visual durante el entrenamiento para cerrar la brecha.
- ✓Reservar una simulación o escenario de evaluación separado del de entrenamiento.
- ✓Validar en el robot real antes de declarar el éxito.
✗ Evitar
- ✗Reportar la tasa de éxito solo en la simulación de entrenamiento.
- ✗Modelar objetos deformables y fluidos como rígidos y confiar en el resultado.
- ✗Ignorar el ruido y la latencia de sensores reales en el pipeline.
🔹 Benchmarks: LIBERO, Meta-World, RoboSuite
Los benchmarks estandarizan la comparación. LIBERO mide el aprendizaje continuo y la transferencia de conocimiento en manipulación (LIBERO-Spatial, Object, Goal, Long); Meta-World ofrece 50 tareas para meta/multi-task RL; RoboSuite (MuJoCo) es una suite modular de manipulación muy utilizada en papers de VLA.
⚡ Consejo práctico
Reporta el benchmark completo, no solo la suite donde tu modelo destaca. Elegir cuidadosamente una sola suite LIBERO es el «p-hacking» de la robótica: revisores y la comunidad esperan las cuatro suites más el promedio.
# avaliar OpenVLA fine-tunado em LIBERO (suites padrão)
python run_libero_eval.py \
--model_path outputs/openvla-libero \
--task_suite_name libero_spatial \
--num_trials_per_task 50
# reporta success rate médio por suite -> número comparável entre papers
📊 Qué mide cada uno
- LIBERO — lifelong learning, 4 suites de transferencia.
- Meta-World — 50 tareas, ML1/ML10/ML45 para generalización.
- RoboSuite — manipulación modular, base de muchos VLAs.
LIBERO
Aprendizaje permanente / transferencia.
Meta-World
50 tareas multi-task.
RoboSuite
Manipulación modular.
Tasa de éxito
Métrica comparable.
✅ Resumen del módulo
Próximo módulo
2.4 — ROS2: el middleware que lleva tu policy del simulador al brazo real, con tf2, MoveIt2 y tiempo real.