Volver a Blog

Transporte de Sim a Real: Guía para el practicante para 2026

7 consejos simulados en batalla de los practicantes: clasificación aleatoria de dominios, identificación del sistema, profundidad sobre RGB, entrenamiento híbrido, selección de simulador y cuándo omitir completamente el simulador.

[← Blog] T14)

La mayoría de los fallas de simulación a realidad se pueden prevenir. Esta guía destila las prácticas que los equipos que transfieren con éxito las políticas de simulación a hardware real tienen en común y los errores que causan el fracaso de todos los demás.

La realidad de la brecha entre Sim y Real

La simulación promete datos ilimitados, cero desgaste de hardware, entrenamiento paralelo y reproductibilidad perfecta. En la práctica, cada simulación es una aproximación, y la brecha entre esa aproximación y la realidad es donde las políticas se mueren. La dinámica de contacto difiere entre los materiales simulados y reales. La fricción del actuador, la reacción negativa y la latencia son difíciles de modelar. Las imágenes renderizadas parecen convincentes para los humanos, pero activan los detectores de características de la red neuronal de manera diferente a las imágenes reales de la cámara. Ruido de sensor, rigidez de cable, vibración de mesa - docenas de pequeños efectos que la simulación ignora o simplifica en un hueco que las políticas no tratadas no pueden cruzar.

Pero la brecha no es uniforme. Algunas tareas se transfieren fácilmente; otras son casi imposibles con los métodos actuales. Entender dónde cae tu tarea en este espectro - y aplicar las técnicas correctas para tu brecha específica - es lo que separa a los equipos que implementan con éxito políticas simuladas de equipos que pasan meses en simulación solo para fracasar en hardware real. Para obtener información sobre los fundamentos teóricos, vea nuestro artículo de acompañamiento sobre la teoría de la transferencia sim-to-real.

Lo que es bueno y lo que no es

Transferencias buenas: Localización en terreno plano y moderadamente áspero, agarre de objetos básicos con sujetadores paralelas de mandíbula, navegación y evitación de obstáculos, y alcanzar movimientos en el espacio libre. Estas tareas dependen de la dinámica que simula modelos con precisión (mecánica rígida del cuerpo, fricción básica) y características visuales que transfieran razonablemente (formas de objetos, geometría del espacio de trabajo).

**Transferencias con esfuerzo:**Pick-and-place de objetos rígidos, manipulación de empuje y deslizamiento, apertura de puertas y cajones, y sencillo montaje con tolerancias generosas. Estas tareas implican una dinámica de contacto que la simulación se aproxima pero no coincide perfectamente.

No se transfiere bien (todavía): Manipulación de objetos deformables con contacto (doblamiento de tela, enrutamiento de cables), ensamblaje preciso con tolerancias submilimétricas (acoplamiento de conectores, inserción de conectores instantáneos) y tareas que involucran materiales granulares, fluidos o cuerpos blandos. La física de estas interacciones es demasiado compleja para simular con precisión o demasiado sensible a los errores de parámetros para la aleatorización de dominios para cerrar la brecha.

Consejo 1: Utilice la aleatorización sistemática de dominios

La aleatorización de dominio es la técnica más ampliamente validada para la transferencia sim-a-real, pero "randomizar todo" no es una estrategia. Comience identificando sus modos de falla en hardware real (incluso 5-10 pruebas reales dan una señal útil), luego aleatoriza los parámetros de simulación que más probablemente causan esos fallos.

Para las políticas visuales, los rangos de aleatorización efectivos incluyen: desplazamiento de la posición de la cámara de más o menos 10 cm de la nominal, variación del ángulo de visión de más o menos 10 grados, variación del brillo de más o menos 30%, cambio de tonalidad de más o menos 20%, variación de saturación de más o menos 15%, borrado de Gaussian con sigma 0-2 píxeles, y oclusiones rectangulares aleatorias que cubren 5-20% de la imagen. Estos rangos hacen que las imágenes simuladas parezcan irrealmente variadas, pero ese es exactamente el punto. La política aprende características que son invariantes a todas estas variaciones, lo que significa que también maneja las diferencias visuales del mundo real entre la simulación y su cámara real.

Para los parámetros físicos, priorizar: coeficientes de fricción de contacto (randomiza por más o menos 50%), masa de objeto (más o menos 30%), amortiguación de articulaciones (más o menos 20%), y latencia del actuador (añadir 0-20 ms retraso aleatorio).

Consejo 2: Invertir en Calibración Real a Sim

Los parámetros de simulación predeterminados - rigidez articular, amortiguación, fricción, tensores de inercia - a menudo difieren de su robot real en un 10-50%. Antes del entrenamiento, pase 2-4 horas haciendo la identificación del sistema: mover cada articulación a través de su rango y medir la relación real par-posición-velocidad. Utilice estos valores medidos como el centro de su distribución de aleatorización de dominio. Este paso por sí solo reduce a menudo el error de simulación a realidad en un 30-50% en las tareas de contacto.

Calibre el modelo de la cámara, mide los parámetros intrínsecos reales (duración focal, punto principal, coeficientes de distorsión) y los parámetros extrínsecos (posición y orientación en relación con la base del robot) de las cámaras reales y ajuste las cámaras de simulación a la misma. Las políticas visuales son sorprendentemente sensibles a las discrepancias de parámetros de la cámara. Un error del 5% en la distancia focal puede causar una caída del 10-15% en la precisión de captura.

Consejo 3: Prefiere profundidad sobre RGB para la entrada visual

La representación fotorrealista RGB en la simulación todavía no coincide con las cámaras del mundo real lo suficiente como para transferir directamente cero disparos en muchas tareas. Los modelos de iluminación, los sombreadores de materiales y los algoritmos de sombra producen imágenes que se parecen a los humanos, pero difieren en las formas en que los detectores de características de la red neuronal son sensibles. Las imágenes de profundidad tienen una brecha mucho menor entre sim y real porque la profundidad es una representación directa de la geometría, y la simulación hace que la geometría sea precisa.

Los equipos que utilizan profundidad como entrada visual primaria (con RGB como canal secundario para la información semántica) informan consistentemente una mejora del 20-40% en la transferencia de simulación a la realidad en cero disparos en las tareas de captura. Si su tarea no requiere información de color o textura para la discriminación de objetos, use sólo profundidad. Si requiere información de color (ordenar objetos por color, por ejemplo), use un canal RGB pero aplique una aleatorización de dominio visual agresiva en él.

Consejo 4: Utilice la información privilegiada durante la formación

La técnica de información privilegiada - a veces llamada formación docente-estudiante - se ha convertido en el enfoque estándar para la locomoción sim-a-real y se utiliza cada vez más para la manipulación. La idea: entrenar una política de profesor en la simulación que tenga acceso a la información del estado de la verdad de la tierra que no estaría disponible en el hardware real (posición exacta de objeto, coeficientes de fricción reales, lugares de contacto de la verdad de la tierra).

Esto funciona porque la política del profesor puede resolver la tarea de manera óptima utilizando información perfecta, y el estudiante aprende a aproximar ese comportamiento óptimo utilizando solo las observaciones ruidosas y parciales a las que tendrá acceso en el hardware real. Esta técnica fue central para el éxito de la transferencia de locomotora cuadruped en el ETH Zurich, Carnegie Mellon y Unitree, y se ha adaptado para tareas de manipulación que involucran la detección de contacto y el control de la fuerza.

Consejo 5: Randomiza los parámetros de contacto específicamente

Para cualquier tarea que involucre contacto sostenido - inserción, deslizamiento, empuje, superficies seguidas - la aleatorización de parámetros de contacto es crítica y a menudo sub-enfatizada. El solvente de contacto en la simulación introduce artefactos (penetración, nerviosismo, deslizamiento prematuro) que el mundo real no tiene, y la aleatorización de los parámetros del solvente obliga a la política a manejar estos artefactos en lugar de explotarlos.

Un enfoque práctico: ejecutar su política en 100 ensayos de simulación con parámetros de contacto fijos y registrar los perfiles de fuerza de contacto. Luego repetir con parámetros de contacto muy aleatorios. Si la tasa de éxito de la política cae significativamente con contactos aleatorios, se explotaban artefactos de simulación específicos. Reentren con contactos aleatorios hasta que la tasa de éxito sea estable, luego transfiera al hardware real.

Consejo 6: Comience con las tareas más gruesas antes de refinar

Intentar transferir una política para una tarea de precisión directamente desde la simulación es una receta para la frustración. En su lugar, descomponga su tarea en una versión gruesa y una versión fina. La versión gruesa - acercarse al objeto, alinear aproximadamente el agarre, hacer el contacto inicial - se transfiere bien desde la simulación porque depende de la geometría y la planificación de trayectoria, no de la dinámica de contacto precisa. La versión fina -- alineamiento final, inserción, aplicación de fuerza controlada -- debe ser entrenada o sintonizada en datos reales.

Este enfoque jerárquico combina el volumen de simulación con la fidelidad de los datos reales. La política de simulación maneja el 80% de la tarea que implica movimiento en el espacio libre y posicionamiento aproximado. Este híbrido supera consistentemente tanto la formación solo en simulación como la formación solo en realidad cuando el presupuesto total de datos es limitado.

Consejo 7: Prueba con frecuencia el hardware real

El error más común en los proyectos sim-to-real es pasar meses optimizando en simulación antes de probar en hardware real. Para cuando el equipo descubre cómo falla su política en realidad, han invertido un enorme esfuerzo en optimizar para lo incorrecto. Prueba en hardware real temprano y a menudo - cada 1-2 semanas como mínimo durante el desarrollo activo.

Estructura tus pruebas de hardware real como pruebas sistemáticas de perturbaciones, no evaluaciones aleatorias. Prueba en 5-10 posiciones específicas desafiantes: esquinas extremas del espacio de trabajo, objetos cerca del borde del espacio accesible, objetos a alturas o orientaciones atípicas. Esta evaluación estructurada revela si los fallos se concentran en condiciones específicas (diagnosticables y fijables) o se distribuyen al azar (más difíciles de arreglar, lo que sugiere una brecha fundamental).

Consejo 8: Haga el modelo correcto de su actuador

Los modelos de simulación por defecto del actuador asumen un comportamiento idealizado: respuesta instantánea al par, respuesta cero, seguimiento de posición perfecto. Los motores servo reales tienen límites de ancho de banda (generalmente 5-50 Hz para los comandos de posición), reacción en los tren de engranajes (0.1-2 grados dependiendo de la relación de reducción), y curvas de velocidad del par que difieren significativamente de los modelos de par constante. Para los actuadores elásticos en serie de OpenArm 1, la conformidad en la transmisión es una característica de seguridad, pero introduce dinámicas que el modelo predeterminado de actuador de cuerpo rígido en MuJoCo o Isaac Sim ignora por completo.

La solución: mide la respuesta real del actuador. Envía un comando de paso a cada articulación y registra la respuesta de posición a lo largo del tiempo. Ajusta una función de transferencia de segundo orden (frecuencia natural, relación de amortiguación y ganancia) a cada articulación. Utiliza estos modelos ajustados como modelo del actuador en la simulación. Para MuJoCo, establece los atributos T3, T4 y T5 en cada actuador para que coincidan. Para Isaac Sim, configure las ganancias de PD y amortiguación en el ArticulationController.

Consejo 9: Alrededor de los materiales y texturas

Para las políticas visuales, la apariencia de objetos y superficies en la simulación debe coincidir con la realidad o ser aleatoria lo suficientemente ampliamente como para que la realidad se encuentre dentro de la distribución aleatoria. La aleatorización de textura efectiva incluye: colores sólidos aleatorios en todo el rango HSV para todos los objetos y superficies, generación de textura procedimental (ruido Perlin, tablero de ajedrez, gradiente) aplicada a las superficies y fondos de la mesa, y mapas de entorno HDRI aleatorios para iluminación (descargar 20-50 mapas HDRI gratuitos de Polyhaven y recorrerlos durante el entrenamiento).

Un hallazgo contraintuitivo: la representación fotorrealista es a menudo contraproducente para la transferencia sim-a-real. Una política entrenada con la representación fotorrealista de simulación aprende a explotar detalles visuales (patrones específicos de sombras, reflejos superficiales) que no coinciden con la realidad. Una política entrenada con texturas altamente aleatorias e irreales aprende características geométricas y estructurales que transfieren mejor. Si tiene acceso a una representación de alta calidad (Isaac Sim Omniverse), usela para la evaluación y el depuración, no para la generación de datos de entrenamiento.

Consejo 10: Implementar una línea de identificación de parámetros físicos

Más allá de la modelación del actuador, las propiedades físicas de los objetos en su tarea afectan significativamente al comportamiento de contacto.

  • ** Masa de objeto:** Pese cada objeto que el robot manipulará. Establezca masas de simulación para que coincidan. Un error de masa del 10% en un objeto pesado produce errores de fuerza y trayectoria notables.
  • ** Coeficientes de fricción:** Coloque los objetos en una superficie inclinada y registre el ángulo en el que comienzan a deslizarse. Calcule el coeficiente de fricción estática como tan ((ángulo).
  • Centro de masa: Para objetos asimétricos, el centro de masa afecta la estabilidad de agarre y la dinámica de transporte.
  • Tensor de inercia: Para la mayoría de las manipulaciones de mesa, es suficiente aproximar los objetos como sólidos de densidad uniforme con la masa y geometría correctas.

Este tubo de calibración debe ser automatizado y repetido cada vez que su conjunto de objetos cambia.

Consejo 11: Elige el modelo de contacto adecuado para tu tarea

Los simuladores diferentes ofrecen diferentes modelos de contacto, y la elección importa más de lo que la mayoría de los equipos se dan cuenta. El PhysX acelerado por la GPU de Isaac Sim utiliza un modelo de contacto compatible que maneja mejor las formas no convexas pero puede producir oscilaciones en ajustes de rigidez de contacto baja. Genesis ofrece contacto diferenciable, que es potente para la optimización pero menos maduro para la simulación de contacto de propósito general.

Para las tareas de agarre con sujetadores simples: el modelo de contacto predeterminado de MuJoCo suele ser suficiente. Para las tareas de montaje con claridades apretadas: aumentar el recuento de iteraciones del solvente (MuJoCo: T6 y T7; Isaac Sim: iteraciones de posición y velocidad del solvente) y usar colisión basada en malla en lugar de formas primitivas. Para objetos deformables o blandos: utilice simulaciones de cuerpos blandos basadas en FEM (disponibles en Isaac Sim y SOFA) en lugar de aproximaciones de cuerpos rígidos.

Consejo 12: Utilice un actor crítico asimétrico para la transferencia basada en RL

Si se está utilizando el aprendizaje de refuerzo en la simulación (en lugar de aprender imitando), la arquitectura asimétrica actor-crítica es ahora la práctica estándar para la transferencia de sim a real. El crítico (función de valor) tiene acceso a información privilegiada del estado de la verdad en la base durante la formación en la simulación. El actor (política) utiliza solo las observaciones disponibles en el hardware real. Esto permite al crítico proporcionar estimaciones de valor precisas que guíen al actor a aprender comportamientos efectivos utilizando solo observaciones compatibles con el mundo real.

Esta es la arquitectura detrás del exitoso trabajo de transferencia de locomoción en el ETH Zurich (ANYmal), Carnegie Mellon y Unitree. Para la manipulación, el patrón es el mismo: el crítico ve las poses de objetos exactas y los estados de contacto; el actor sólo ve imágenes de cámara y la propriocepción. El resultado es una política que utiliza solo sensores del mundo real, pero fue guiado por información perfecta durante el entrenamiento.

Consejo 13: Construye una suite de pruebas de regresión sim-real

Trate la transferencia sim-a-real como la ingeniería de software: construye una suite de pruebas y ejecuta en cada actualización de política. Defina 10-20 configuraciones de prueba específicas (tipos de objetos, posiciones, orientaciones) y ejecuta cada una en la simulación y el hardware real. Una línea de simulación real muestra una correlación de > 0,8 entre la simulación y el rendimiento real en todas las configuraciones de prueba. Si la correlación cae por debajo de 0,6, algo en la simulación se ha desviado de la realidad (camera se mueve, el conjunto de objetos se cambia, el actuador se degrada) y necesita recalibración.

Consejo 14: Manejar las diferencias de espacio de observación de manera explícita

La simulación proporciona una perfecta propriocepción: posiciones conjuntas exactas, velocidades y aceleraciones en cada paso del tiempo. Añadir ruido realista a las observaciones simuladas: ruido gaussiano con desviación estándar coincidiendo con sus especificaciones de codificador (generalmente 0,001-0,01 radianos para posiciones conjuntas), lecturas caídas al azar a un ritmo de 0,1-1% y cuantización para coincidir con su resolución real de codificador.

Consejo 15: Conozca cuándo su brecha es irremediable

Algunas brechas sim-a-real no se pueden cerrar con las técnicas actuales, y reconocer esto temprano ahorra meses de esfuerzo. Signos de que la transferencia directa de simulación a realidad no funcionará para su tarea: el éxito de su tarea depende de las propiedades del material que varían entre instancias de objeto (rigidez de tejido, fricción de textura superficial), su tarea requiere una precisión de contacto submilimétrica (y su robot tiene una repetibilidad de > 1 mm), o su tarea involucra fluidos, materiales granulares o objetos altamente deformables. En estos casos, utilice la simulación para las fases más gruesas de la tarea y recopile datos reales para las fases finas, o omita la simulación por completo y utilice los servicios de recopilación de datos reales del RCSV (real data collection services) T16) desde el principio.

Consejos específicos para el simulador

Simulator Best Practice Common Pitfall
Isaac Sim Use GPU-accelerated environments with at least 256 parallel instances for RL; disable ray-traced rendering during training Leaving ray tracing on tanks throughput 10x; Omniverse USD scene setup takes days if unfamiliar
MuJoCo Use mj_step with 4-5 substeps for contact stability; set solimp and solref per-geom for different materials Default solver settings produce unstable contacts for tight assemblies; convex decomposition needed for non-convex meshes
Genesis Leverage differentiable physics for system identification (optimize sim parameters to match real trajectories) Ecosystem is less mature; fewer pre-built robot models; community support is smaller
PyBullet Good for quick prototyping and education; use URDF models directly from manufacturer Contact physics is less accurate than MuJoCo; no longer actively developed; avoid for production sim-to-real

Identificación de parámetros de física: Protocolo de medición

La identificación del sistema es el paso de ROI más alto en cualquier pipeline de simulación a realidad, sin embargo, la mayoría de los equipos lo omiten o lo hacen al azar. Aquí hay un protocolo de medición riguroso que tarda 4-6 horas y mejora dramáticamente la fidelidad de la transferencia.

** Identificación de la dinámica de las articulaciones (2 horas).** Para cada articulación de su brazo robot:

  1. Comando una trayectoria de posición sinusoidal a 0,1 Hz, 0,5 Hz, 1 Hz y 2 Hz. Registra la posición comandada, la posición real y la corriente motora a 1 kHz.
  2. Calcule la respuesta de frecuencia (ganancia y fase) en cada frecuencia. Ajusta una función de transferencia de segundo orden: H(s) = K * omega_n^2 / (s^2 + 2*zeta*omega_n*s + omega_n^2).
  3. Mide la reacción: ordena una rampa lenta hacia arriba y luego hacia abajo. El ancho de histeresis en la pista de posición es la reacción. Valores típicos: 0.1-0.3 grados para unidades armónicas (Franka), 0.5-2.0 grados para cajas de cambios planetarias (OpenArm, Kinova), 0.02-0.05 grados para la transmisión directa.
  4. Métese el par de fricción: registra el par necesario para mover cada articulación a una velocidad muy baja (< 0.01 rad/s). Esto es la fricción de Coulomb. Luego mide el par frente a la velocidad a velocidades más altas para estimar la fricción viscosa. Modelo: tau_friction = tau_coulomb * signo(v) + b_viscous * v.

Medición de la propiedad del objeto (1 hora por 10 objetos).

  • Masa: Escala de cocina con precisión de 1g. Registración en gramo.
  • Coeficiente de fricción: Colocar el objeto en una superficie plana unida a un inclinómetro digital. Aumente el ángulo lentamente hasta que el objeto se deslice. mu_s = tan(ángulo). Medir en al menos 3 superficies (metal, madera, tapete de goma). Utilice la media como simulación predeterminada, el rango como límites de aleatorización.
  • centro de masa (objetos asimétricos): Suspende el objeto desde dos puntos diferentes utilizando una cuerda. La intersección de las dos líneas de plomería desde el punto de suspensión da el COM en 2D. Repita con una tercera suspensión para 3D. Precisión: aproximadamente 5mm, lo cual es suficiente para la mayoría de las manipulaciones.
  • Coeficiente de restitución: Arrojar el objeto desde 30 cm sobre una superficie dura y registrar la altura de rebote. COR = sqrt(h_bounce / h_drop).
# sys_id.py -- Minimal joint dynamics identification
import numpy as np
from scipy.optimize import curve_fit

def second_order_response(t, K, wn, zeta):
    """Second-order underdamped step response."""
    wd = wn * np.sqrt(1 - zeta**2)
    return K * (1 - np.exp(-zeta * wn * t) *
           (np.cos(wd * t) + (zeta / np.sqrt(1 - zeta**2)) * np.sin(wd * t)))

# Record step response: send a 0.1 rad step command and log at 1kHz
# t_data, pos_data = record_step_response(joint=3, amplitude=0.1)

# Fit parameters
popt, pcov = curve_fit(second_order_response, t_data, pos_data,
                       p0=[1.0, 50.0, 0.7], bounds=([0.5, 5, 0.1], [1.5, 200, 1.0]))
K, wn, zeta = popt
print(f"Joint 3: K={K:.3f}, wn={wn:.1f} rad/s, zeta={zeta:.3f}")
# Typical values for OpenArm 1: K=0.95-1.0, wn=30-60, zeta=0.6-0.9

Estos parámetros medidos van directamente a su configuración de simulación. Para MuJoCo, configure T11 a [K * wn^2, 0, 0] y T12 a [0, -K * wn^2, -2 * K * zeta * wn] en cada actuador. Para Isaac Sim, configure las ganancias de PD en el ArticulationController para que coincidan con la frecuencia natural y amortiguación identificadas.

Taxa de éxito de transferencia de Sim a Real por tipo de tarea

Basándose en los resultados publicados y en los datos de evaluación del RCSV, la siguiente tabla muestra las tasas de éxito esperadas de transferencias sim-to-real por categoría de tareas, suponiendo que las técnicas descritas anteriormente se apliquen correctamente.

Task Category Sim Success Real Transfer (naive) Real Transfer (w/ DR + SysID) Gap Closure
Flat-ground locomotion 98% 70-80% 90-95% High
Rigid object pick-and-place 95% 40-55% 75-85% Medium-High
Door/drawer opening 92% 30-45% 65-80% Medium
Peg insertion (>1mm tolerance) 90% 15-25% 55-70% Medium
Precisión assembly (<0.5mm) 88% 5-15% 30-50% Low-Medium
Cloth folding 85% 5-10% 15-30% Low
Fluid pouring 80% < 5% 10-20% Very Low

El patrón es claro: el éxito de la transferencia se correlaciona inversamente con la complejidad del contacto. Las tareas dominadas por el movimiento del espacio libre y los contactos rígidos simples se transfieren bien. Las tareas dominadas por la dinámica de contacto compleja (materiales deformables, tolerancias ajustadas, fluidos) se transfieren mal independientemente de la técnica. Para las tareas de la categoría de cierre de brechas "bajas", la simulación sigue siendo valiosa para la formación previa y el aprendizaje de habilidades, pero el ajuste fino de datos reales es esencial para el rendimiento de calidad de implementación.

Configuración de aleatorización de dominio: Un ejemplo completo

Aquí hay una configuración de aleatorización de dominio práctica para una tarea de manipulación de mesa en MuJoCo, que cubre los parámetros que más importan para la transferencia sim-a-real.

# domain_randomization.py -- MuJoCo domain randomization for manipulation
import numpy as np
import mujoco

class DomainRandomizer:
    """Randomize physics and visual parameters each episode."""

    def __init__(self, model):
        self.model = model
        self.defaults = {
            'friction': model.geom_friction.copy(),
            'mass': model.body_mass.copy(),
            'damping': model.dof_damping.copy(),
        }

    def randomize(self):
        m = self.model
        # Contact friction: +/- 50% (critical for grasping)
        m.geom_friction[:] = self.defaults['friction'] * np.random.uniform(0.5, 1.5, m.geom_friction.shape)

        # Object mass: +/- 30%
        for i in range(m.nbody):
            if m.body_mass[i] > 0.01:  # Skip fixed bodies
                m.body_mass[i] = self.defaults['mass'][i] * np.random.uniform(0.7, 1.3)

        # Joint damping: +/- 25%
        m.dof_damping[:] = self.defaults['damping'] * np.random.uniform(0.75, 1.25, m.dof_damping.shape)

        # Actuator latency: 0-20ms random delay (model in policy loop)
        self.actuator_delay_ms = np.random.uniform(0, 20)

        # Camera perturbation: +/- 3cm position, +/- 5deg rotation
        for cam_id in range(m.ncam):
            m.cam_pos[cam_id] += np.random.uniform(-0.03, 0.03, 3)
            m.cam_quat[cam_id] += np.random.uniform(-0.05, 0.05, 4)
            m.cam_quat[cam_id] /= np.linalg.norm(m.cam_quat[cam_id])

        # Lighting randomization
        for light_id in range(m.nlight):
            m.light_diffuse[light_id] = np.random.uniform(0.3, 1.0, 3)
            m.light_pos[light_id] += np.random.uniform(-0.5, 0.5, 3)

Llame T13 al comienzo de cada episodio durante el entrenamiento. La política tendrá un peor rendimiento inicial que con parámetros fijos, pero después de la convergencia, se transferirá sustancialmente mejor al hardware real porque ha aprendido a ser robusto a la variación de parámetros en lugar de explotar valores de simulación específicos.

Diagnosticar los fallos sim-real: un enfoque sistemático

Cuando una política simulada falla en el hardware real, utilice este marco de diagnóstico para identificar la brecha específica que causa el fallo.

  1. Registrar vídeos de fallas en hardware real. Captar al menos 10 episodios de fallas con todas las cámaras activas. Clasificar las fallas en categorías: error de aproximación, error de captura, error de transporte, error de colocación.
  2. Corre las mismas condiciones iniciales en la simulación. Configure la simulación para que coincida con las condiciones reales de falla lo más cerca posible. ¿La política tiene éxito en la simulación con estas condiciones?
  3. Compare observaciones visuales. Junto a lado la imagen de la cámara sim y la imagen de la cámara real en el paso de tiempo de falla. ¿Son las imágenes significativamente diferentes en las formas en que la política podría ser sensible?
  4. Compare estado propioceptivo. Entra en el error de seguimiento de la posición de la articulación entre las posiciones comandadas y las reales en el hardware real. Si el error de seguimiento supera los 2-3 grados en cualquier articulación, el modelo de actuador en sim es probablemente el problema.
  5. Compare el comportamiento de contacto. Si el fallo ocurre durante el contacto (agarración, inserción), compare las lecturas de los sensores F/T en el hardware real con las fuerzas de contacto simuladas.

Esta línea de diagnóstico típicamente identifica la causa raíz dentro de 2-3 iteraciones. Las causas más comunes, en orden de frecuencia: (1) incumplimiento de posición de la cámara / calibración, (2) inexactitud del modelo del actuador, (3) incumplimiento de fricción de contacto, (4) brecha de dominio visual.

Selección de simulador: Isaac Sim, MuJoCo o Génesis

NVIDIA Isaac Sim (construido en PhysX 5, integrado con Omniverse) es la opción líder para la simulación de alta fidelidad a partir de 2026. Su física acelerada por GPU permite miles de instancias de simulación paralelas, haciendo que el aprendizaje de refuerzo sea tratable para tareas complejas. Isaac Sim también ofrece la mejor calidad de renderización para la capacitación de políticas visuales. Las principales desventajas son la complejidad de la configuración, los requisitos de hardware (GPU de alta gama NVIDIA) y la curva de aprendizaje para el ecosistema Omniverse.

MuJoCo** (ahora de código abierto de DeepMind) sigue siendo el estándar para la física de contacto rápida y precisa en los entornos de investigación. Es más rápido por entorno que Isaac Sim, tiene una API más simple y ofrece el ecosistema más extenso de entornos preconstruidos y puntos de referencia. MuJoCo es la opción correcta cuando se necesita una rápida iteración en la arquitectura de políticas y el diseño de recompensas y no se necesita una representación fotorealista.

Genesis es un simulador más nuevo que hace hincapié en la velocidad y la diferenciabilidad. Genesis está ganando adopción para tareas donde la simulación diferenciable proporciona una clara ventaja -- optimización de parámetros, optimización de trayectoria -- pero su ecosistema es menos maduro que MuJoCo o Isaac Sim.

Randomizamiento de dominio visual: cerrar la brecha de renderización

La aleatorización de parámetros físicos maneja la brecha dinámica, pero la brecha visual entre las imágenes de la cámara simuladas y reales a menudo es la fuente dominante de fallas de transferencia para las políticas basadas en la visión.

Visual Parameter Randomization Range Impact on Transfer Notes
Object texture Random RGB per face or procedural noise High (+15-25%) Prevents policy from relying on sim-specific textures
Lighting position + color +/-1m position, 3000K-6500K color temp High (+10-20%) Shadows are the biggest visual gap; randomize shadow direction
Camera position + orientation +/-3cm position, +/-5deg rotation Medium (+8-15%) Matches real-world camera mounting imprecision
Table/background color Random RGB or texture from dataset Medium (+8-12%) Prevents background shortcuts; use real-photo textures for best results
Distractor objects 0-5 random objects in workspace Medium (+5-10%) Crucial for cluttered deployment environments
Camera noise + blur Gaussian noise (sigma 0-0.05), motion blur (0-3px) Low (+3-5%) Simulates real camera imperfections; more important for low-light deployment

El orden de importancia para la aleatorización visual es: texturas de objetos > iluminación > posición de la cámara > fondo > distractores > ruido. Los equipos con tiempo de ingeniería limitado deben centrarse en los tres primeros. Para alternativas fotorreales, el entrenamiento con la representación trazada por ruta de Isaac Sim elimina la necesidad de una aleatorización de textura agresiva, pero requiere mucho más tiempo de GPU por episodio.

El método híbrido: Sim Preentrenamiento + Real ajuste fino

El sistema de simulación de simulación a gran escala combinará con una pequeña cantidad de ajustes finos en el mundo real.

# hybrid_sim_real_pipeline.py -- Sim pre-train + real fine-tune
from pathlib import Path

def hybrid_pipeline(task_name, sim_episodes=10000, real_episodes=100):
    """
    Stage 1: Pre-train in simulation with domain randomization
    Stage 2: Fine-tune on real-world demonstrations
    Stage 3: Evaluate on real hardware
    """
    # Stage 1: Sim pre-training (runs on GPU cluster, 4-24 hours)
    sim_config = {
        "environment": f"sim/{task_name}",
        "domain_randomization": True,
        "visual_randomization": True,
        "num_episodes": sim_episodes,
        "architecture": "act",
        "epochs": 500,
        "checkpoint_dir": f"checkpoints/{task_name}_sim",
    }
    sim_model = train_policy(**sim_config)

    # Stage 2: Real fine-tuning (uses sim checkpoint as init)
    real_config = {
        "dataset": f"data/real/{task_name}",
        "num_episodes": real_episodes,
        "pretrained_checkpoint": sim_model.checkpoint_path,
        "learning_rate": 1e-5,  # 10x lower than sim training
        "epochs": 200,
        "freeze_encoder_epochs": 100,  # Freeze visual encoder initially
        "checkpoint_dir": f"checkpoints/{task_name}_hybrid",
    }
    hybrid_model = finetune_policy(**real_config)

    # Expected results:
    # Sim-only: 40-60% real success (pick-place)
    # Real-only (100 demos): 70-80% success
    # Hybrid (10K sim + 100 real): 80-90% success
    return hybrid_model

El enfoque híbrido suele coincidir con el rendimiento de 3-5 veces más demostraciones reales: 100 demostraciones reales más 10K episodios de simulación logran un rendimiento comparable a 300-500 demostraciones reales. El servicio de ambiente de RL de RCSV (RL environment service) (T17) proporciona entornos de simulación preconstruidos para tareas de manipulación comunes, reduciendo el tiempo de instalación a 1-2 días.

Consejos de ajuste de la simulación después del entrenamiento

La fase de ajuste es donde la mayoría de los equipos cometen errores que niegan los beneficios de la formación previa al simulador.

  • **Use una tasa de aprendizaje 10 veces menor que la de simulación.El modelo simulado ya ha aprendido características visuales y habilidades motoras gruesas.
  • Congelar el codificador visual durante el primer 50% de las épocas de ajuste fino. El codificador pre-entrenado en sim ha aprendido características visuales que pueden ser más generales de lo que 100 demostraciones reales pueden enseñar.
  • Mixir entre un 10-20% de los datos de sim durante el ajuste fino. Agregar una pequeña fracción de episodios de sim a los lotes reales de ajuste fino evita un olvido catastrófico de las habilidades aprendidas en sim y actúa como regulador.
  • Recoge demostraciones reales que se dirigen a los modos de falla de sim. Ejecute la política de simulación previa en el hardware real antes de recopilar datos de ajuste fino. Identifique los modos de falla específicos (generalmente dinámica de contacto o apariencia visual incompatible) y concentre su recopilación de datos real en esas condiciones de falla en lugar de recopilar uniformemente.

Comparación de máquinas de simulación para el aprendizaje de robots

La elección del simulador adecuado afecta tanto la calidad de los datos de entrenamiento de la simulación como el esfuerzo de ingeniería requerido para configurar el entorno.

Simulator Physics Quality Rendering Quality Speed (steps/sec) Setup Effort Best For
MuJoCo 3.x Excellent Good (basic PBR) 100K+ (CPU) Low (MJCF/URDF) RL training, contact-rich tasks, rapid prototyping
Isaac Sim / Isaac Lab Very Good Excellent (RTX raytracing) 10K-50K (GPU) High (USD, NVIDIA stack) Visual sim-to-real, domain randomization, GPU-parallel RL
Genesis Good Good 50K-200K (GPU) Low-Medium Fast parallel sim, soft body, generative tasks
PyBullet Adequate Basic 5K-20K (CPU) Very Low Quick experiments, education, lightweight benchmarks
RoboCasa / Robosuite Good (MuJoCo-based) Good 10K-50K (CPU) Low (pre-built tasks) Home/kitchen manipulation, benchmark tasks, multi-task RL

Recomendación para la mayoría de los equipos: Comience con MuJoCo 3.x por su combinación de calidad física, velocidad y bajo esfuerzo de configuración. Genesis vale la pena evaluar para los equipos que trabajan con objetos deformables o que necesitan el rendimiento paralelo más rápido posible. PyBullet es adecuado para prototipos rápidos, pero produce datos de entrenamiento de menor calidad que se transfieren de manera menos confiable.

Medir la brecha entre Sim y Real: un protocolo cuantitativo

Antes de invertir en una aleatorización de dominios compleja, mide la brecha de sim-real de la línea de base para su tarea específica. Esta medida le dice cuánto trabajo se necesita para cerrar la brecha.

  1. ** Entrenamiento de una política en simulación solamente** (sin aleatorización de dominio, utilizando el renderizado de simulador predeterminado).
  2. ** Implemente la misma política en hardware real** sin ninguna modificación. ejecuta 20 pruebas de evaluación reales. La diferencia entre la tasa de éxito de sim y la tasa de éxito real es la brecha de sim-real de la línea de base.
  3. Categorizar las fallas. Para cada fallo en el mundo real, determine la causa raíz: falta de coincidencia visual (la representación de simulación no coincide con la cámara real), falta de coincidencia física (la dinámica de los objetos difiere) o falta de coincidencia de control (la respuesta motora difiere de los actuadores simulados).
  4. ** Aplicar el cierre de brechas dirigido.** Si los fallos visuales dominan, invierta en la aleatorización de dominios y en una mejor representación. Si los fallos físicos dominan, invierta en la identificación del sistema. Si los fallos de control dominan, invierta en el modelado de actuadores o en el aprendizaje de políticas residuales.
  5. Re-medida. Después de cada ronda de cierre de la brecha, repita los pasos 2-3. Detente cuando la tasa de éxito real exceda el umbral de implementación o cuando la brecha restante sea inferior al 5% (reducción de los rendimientos).

Las lagunas típicas de línea de base (sin aleatorización de dominio, sin ID de sistema): objetos rígidos de pick-and-place: 20-40% de lagunas; tareas de inserción: 30-50% de lagunas; manipulación de objetos deformables: 50-70% de lagunas. Después de la aleatorización completa del dominio más la identificación del sistema, estas lagunas se reducen típicamente a: 5-15%, 10-25%, y 25-40% respectivamente.

Cuando omitir el Sim por completo

La simulación no siempre es la opción correcta. Salta la simulación y pasa directamente a la recopilación de datos reales cuando: tu tarea involucra objetos o materiales deformables que no se simulan bien (teallas, cables, alimentos); tienes acceso a la recopilación rápida de datos del mundo real (los [servicios de datos] de RCSV pueden recopilar 500+ episodios al día); tu tarea requiere menos de 1.000 demostraciones; o cuando el esfuerzo por construir un entorno de simulación preciso excede el esfuerzo por recopilar datos reales.

El marco de decisión es simple: estimar el costo de construir y calibrar un entorno de simulación para su tarea específica (incluyendo el tiempo de ingeniería, el hardware para renderizar y el tiempo de depuración para la transferencia de sim a real). Compararlo con el costo de recopilar la cantidad equivalente de datos reales. Para muchas tareas de manipulación en 2026, el camino de datos reales es más rápido y más predecible. La simulación es excelente cuando se necesitan millones de episodios (aprendizaje de refuerzo), cuando la tarea se transfiere bien (locomotora), o cuando la recopilación de datos real es peligrosa o costosa (robótica quirúrgica, entornos peligrosos).

Comience su transporte

El servicio de ambiente de RCSV [RL] (T19) proporciona entornos de simulación gestionados con identificación del sistema y calibración física para su hardware específico. Para los equipos que persiguen el enfoque híbrido, también ofrecemos la recopilación de datos reales a través de nuestros [servicios de datos] (T20) para complementar su capacitación de simulación con las demostraciones del mundo real que cerran la brecha final.

Lectura relacionada

  • [Política de robots Generalización: Por qué su robot falla en nuevos objetos]
  • [Aprendizaje robótico vs. Robótica clásica: cuándo usar cuál]
  • [Leyes de escala para el aprendizaje de robots: lo que sabemos en 2026]
  • [Lista de control de despliegue de robots: 12 pasos antes de entrar en vivo]
  • [Política de ACT vs. Difusión: cuándo usar cuál]
  • [Servicio de Medio Ambiente del RCSV RL]
  • [Servicios de recogida de datos del RCSV]

Obtenga un ambiente de simulación calibrado

El servicio de entorno RL de RCSV incluye la identificación del sistema y calibración física para su hardware específico del robot.

[Explorar los entornos de RL]