PTENES
Inicio / Técnico / Módulo 2.6
MÓDULO 2.6

🌉 Sim-to-Real: de lo virtual a lo físico

El puente más difícil de la robótica moderna: cómo transferir habilidades del simulador al robot real. Domain randomization, system identification y el ciclo real-to-sim-to-real que alimenta los robots de producción de NVIDIA, Figure y Physical Intelligence.

🖥 Simulador Domain Randomization Física + visual + sensor Isaac Sim / MuJoCo política entrenada 🌉 Sim-to-Real SysId · DR · Suavizado de acciones Restricciones de seguridad Progressive Deployment simulación → sim-sim → real limitado → real deploy 🤖 Robot real Datos reales recopilados real-to-sim feedback Volante de inercia de datos real-to-sim: los datos reales refinan el simulador Bucle iterativo: cada ciclo mejora la simulación y la política
6
Temas
~55 min
Duración
Avanzado
Nivel
Técnico
Tipo
1

🔬 Reality Gap: por qué simulación ≠ realidad

O brecha de realidad es la diferencia entre el comportamiento de un robot en el simulador y en el mundo real. Una política perfecta en simulación puede fallar el 100% de las veces en el mundo real; entender por qué es el punto de partida de todo sim-to-real sólido.

🔍 Tipos de Gap

  • ◆Brecha visual: renderizado vs. cámara real: texturas, iluminación, reflejos
  • ◆Dynamics gap: física simplificada frente al contacto real —fricción, compliance
  • ◆Brecha de sensores: sensores ideales vs. ruidosos — cámara con jitter, IMU con drift
  • ◆Actuator gap: control perfecto frente a holgura y fricción en los motores

⚠ Errores clásicos

  • ✗Ignorar el reality gap y esperar que el deploy funcione de inmediato
  • ✗Entrenar solo con texturas estáticas e iluminación fija
  • ✗No agregar ruido del sensor durante el entrenamiento
  • ✗Asumir que un loss bajo en sim = buen rendimiento en el mundo real
📊
Transferability
Metrics
🎯
Tasa de éxito
Sim-to-Real
📷
Sensor Noise
Injection
⚙
Actuator
Backlash Model
2

🎲 Domain Randomization: texturas, física, luz

Domain randomization varía sistemáticamente los parámetros del simulador en cada episodio. La política se ve obligada a generalizar porque nunca ve el mismo escenario dos veces: la realidad se convierte en un "dominio" más con el que el modelo aprendió a lidiar.

💡 Por qué funciona

OpenAI usó domain randomization para resolver el cubo de Rubik con una mano robótica Dexterous (2019): más de 200 parámetros aleatorizados y 13K years de experiencia en simulación. NVIDIA lo usa en Isaac Lab para humanoides. Sin DR, las políticas se sobreajustan a la apariencia del simulador y fallan catastróficamente en el mundo real.

📋 Parámetros típicos de Domain Randomization

# Visual DR — randomiza aparência
visual_dr:
  texture_randomization: true       # texturas aleatórias em cada objeto
  background_color: [0.1, 0.9]      # range de luminosidade do fundo
  light_intensity: [0.5, 1.5]       # posição e intensidade das luzes
  camera_position_noise: 0.02       # ruído na posição da câmera (m)

# Physics DR — randomiza dinâmica
physics_dr:
  object_mass: [0.7, 1.3]           # ±30% na massa dos objetos
  friction_coefficient: [0.5, 1.5]  # ±50% no coeficiente de atrito
  joint_damping: [0.8, 1.2]         # amortecimento das juntas
  action_delay_steps: [1, 3]        # delay de 1 a 3 steps nos comandos

# ADR — Automatic Domain Randomization
adr:
  enabled: true
  performance_threshold: 0.85       # aumenta ranges quando perf > 85%
  range_increment: 0.05             # incremento gradual dos ranges

✓ Visual DR — Qué randomizar

  • ✓ Texturas de superficie y color de fondo
  • ✓ Posición, color e intensidad de las luces
  • ✓ Posición y ángulo de la cámara
  • ✓ Distractors: objetos aleatorios en la escena

✗ Errores comunes con DR

  • ✗ Rangos demasiado amplios: la política queda «mediocre en todo»
  • ✗ Aleatorizar sin medir el rendimiento resultante
  • ✗ Ignorar ADR — aumentar los rangos manualmente es lento
  • ✗ Aleatorizar solo lo visual e ignorar la dinámica
3

🔧 System Identification: calibrar el simulador

Identificación de sistemas (sysid) es el proceso de medir los parámetros físicos reales del robot —masas, inercias, fricción y rigidez— y configurar el simulador para que coincidan. En lugar de aleatorizar todo, calibras la simulación para que se acerque lo más posible al mundo real.

1

Recopilación de trayectorias reales

Ejecuta trayectorias específicas (sinusoidales, step) en el robot real y registra posiciones, velocidades y torques con alta frecuencia. Este dataset alimentará la optimización.

2

Optimización de parámetros

Usa Bayesian Optimization o gradient descent para encontrar los parámetros de la simulación (masas, fricciones, damping) que minimizan la diferencia entre la trayectoria real y la simulada.

3

Aprendizaje de física residual

Una red neuronal aprende la diferencia residual entre la simulación calibrada y el mundo real — y captura efectos que las ecuaciones físicas no modelan bien, como la histéresis y la flexibilidad de los cables.

⚡ DR + SysId: lo mejor de ambos mundos

Domain randomization con rangos muy amplios degrada el rendimiento. SysId permite usar rangos estrechos centrados en los valores reales — la robustez de DR con la precisión de sysid. Pipeline ideal: sysid primero para calibrar el centro, y después DR para obtener robustez alrededor de ese centro.

4

🚀 Sim-to-Real Transfer: técnicas actuales

O pipeline completo de transferencia de sim-to-real implica entrenamiento con DR/sysid, validación sim-to-sim, deploy progresivo con restricciones de seguridad e iteración con datos reales. Es el cuello de botella de toda la robótica basada en aprendizaje.

✓ Pipeline robusto

  • ✓ Validar sim-to-sim antes de tocar el robot real
  • ✓ Despliegue progresivo: sim → sim-sim → real con safety limits → real full
  • ✓ Action smoothing: filtro pasa-bajos en los comandos de las articulaciones
  • ✓ Restricciones de seguridad: límites de fuerza, límites de velocidad, límites del espacio de trabajo
  • ✓ Online adaptation: ajustar la política con datos recopilados en el mundo real

✗ Errores de deploy

  • ✗ Despliegue directo sin validación en simulación con escenarios OOD
  • ✗ Velocidad máxima sin una rampa suave en los primeros pasos
  • ✗ Ignorar la latencia de la cámara y el jitter del OS en el loop de control
  • ✗ No definir el emergency stop antes de la primera prueba real

📋 Action Smoothing — Filtro pasa bajos simple

class ActionSmoother:
    """Filtro EMA para suavizar comandos e evitar movimentos bruscos."""
    def __init__(self, alpha: float = 0.7):
        self.alpha = alpha          # 0.7 = suave; 1.0 = sem filtro
        self.prev_action = None

    def __call__(self, raw_action):
        if self.prev_action is None:
            self.prev_action = raw_action
            return raw_action
        # Exponential Moving Average
        smoothed = self.alpha * raw_action + (1 - self.alpha) * self.prev_action
        self.prev_action = smoothed
        return smoothed

# Uso no loop de controle
smoother = ActionSmoother(alpha=0.7)
while True:
    obs = robot.get_observation()
    raw_action = policy(obs)
    safe_action = smoother(raw_action)
    robot.execute(np.clip(safe_action, -v_max, v_max))
5

🔄 Real-to-Sim-to-Real: el ciclo completo

Un único pass de sim-to-real rara vez es suficiente. El bucle real-to-sim-to-real es iterativo: recopilas datos del robot real, los usas para calibrar y mejorar el simulador, vuelves a entrenar la política en la simulación mejorada y la despliegas de nuevo. Cada ciclo mejora tanto la simulación como la política.

🤖 Robot real recopila datos episodios reales 🔧 Calibra Sim sysid + simulador neuronal digital twin update 🖥 Sim ↑ vuelve a entrenar la política massive parallel nueva política desplegada → recopila más datos → el flywheel se acelera Cada iteración: simulación más precisa + mejor política
🌀
Volante de inercia de datos
datos → sim → política
🧠
Neural Sim
simulación con ajuste automático
👥
Digital Twin
réplica exacta de la configuración
🔁
CI/CD robótico
deploy continuo

🏭 Cómo lo hace la industria

Figure, NVIDIA y Physical Intelligence ejecutan decenas de iteraciones real-to-sim-to-real antes de declarar un comportamiento "production-ready". Un único pase de sim-to-real siempre es el punto de partida, nunca el punto de llegada.

6

🏆 Casos de éxito: OpenAI, NVIDIA, Google

Los hitos de sim-to-real demuestran que el enfoque funciona para tareas de complejidad extrema. Las lecciones aprendidas en estos proyectos son directamente aplicables a cualquier pipeline VLA.

2019

Mano diestra de OpenAI — cubo de Rubik

El hito fundacional: una mano robótica resolvió el cubo de Rubik con ADR masivo.

ADR: más de 200 parámetros aleatorizados · 13.000 años de experiencia en sim · Sensor táctil esencial
2023

NVIDIA Isaac Lab — Locomotion de Humanoides

Entrenamiento paralelo masivo en Isaac Sim para robots humanoides.

PPO con 4096 envs paralelos · 45 min de tiempo real para converger · base para GR00T N1
2024

Google RT-2 — SIMPLER Benchmark

Validación de VLAs en simulación antes del deploy — alta correlación con el rendimiento real.

SIMPLER + LIBERO estandarizan las comparaciones · la simulación como proxy confiable · la escala de datos compensa

📚 Lecciones universales de estos proyectos

  • ◆La escala de simulación compensa: más horas en simulación rara vez son un desperdicio de GPU: son una inversión en robustez.
  • ◆Los sensores táctiles son importantes: para manipulación fina, solo la visión no es suficiente: la retroalimentación de fuerza es fundamental.
  • ◆El diseño de la reward es un arte: una recompensa mal especificada en simulación provoca un comportamiento catastrófico en el entorno real.
  • ◆Benchmarks estandarizados: SIMPLER y LIBERO permiten comparar métodos de forma reproducible.

✅ Resumen del módulo

✓
El reality gap tiene 4 dimensiones — visual, dinámica, sensor y actuador. Cada una requiere técnicas específicas para mitigarla.
✓
Domain randomization + SysId — La combinación es más potente que cada técnica por separado: sysid calibra el centro y DR cubre la incertidumbre a su alrededor.
✓
Despliegue progresivo y con la seguridad como prioridad — sim → sim-sim → real limitado → real completo. Action smoothing y force limits son obligatorios.
✓
Real-to-sim-to-real es iterativo — el ciclo de datos es lo que diferencia los proyectos de robots aficionados de los robots de producción industrial.

Siguiente ruta: Ruta 3 — Avanzado

Completaste toda la Ruta Técnica. En la Ruta 3 — Avanzado — nos sumergimos en arquitecturas de última generación, entrenamiento a escala masiva, aprendizaje multitarea y los modelos foundation que están definiendo el estado del arte en VLAs.