Volver a Blog

El cuerpo abierto de X: el conjunto de datos del robot que cambió todo

Open X-Embodiment explicó: 22 encarnaciones de robots, trayectorias de 1M+, evidencia de transferencia de transmisiones de transmisiones de RT-X, cómo acceder y usar el conjunto de datos, limitaciones y lo que viene después.

[← Blog] T17)

Open X-Embodiment es el conjunto de datos de aprendizaje de robots colaborativos abiertos más grande. Proporcionó la primera evidencia rigurosa de que el entrenamiento en datos de muchos robots diferentes produce políticas que transfieren mejor a nuevos robots que el entrenamiento de un solo robot.

Qué es un cuerpo abierto

Open X-Embodiment (OXE) es un conjunto de datos unificado de demostraciones de manipulación de robots recogidos en más de 22 encarnaciones de robots diferentes, incluyendo armas de Franka Emika, Trossen Robotics (WidowX, ViperX), Universal Robots (UR5), KUKA, la propia flota de robots de Google, y muchos otros. El conjunto de datos totaliza más de un millón de episodios que cubren cientos de tareas de manipulación distintas: recoger, colocar, abrir cajones y armarios, verter líquidos, limpiar superficies, apilar objetos, y más.

El proyecto fue una colaboración de más de 30 instituciones de investigación, lideradas por Google DeepMind con importantes contribuciones de Stanford, UC Berkeley, Carnegie Mellon, MIT, Columbia, ETH Zurich y otros. Cada laboratorio contribuyó con sus conjuntos de datos de demostración existentes, que luego se estandarizaron en el formato RLDS (Robot Learning Dataset Specification). El conjunto completo de datos está alojado en Google Cloud Storage y está disponible gratuitamente para uso de investigación.

La "X" en el nombre significa encarnación cruzada. La ambición definidora de OXE no es sólo crear un conjunto de datos grande, sino demostrar que el entrenamiento en datos de muchos robots diferentes produce mejores políticas que el entrenamiento en datos de un solo robot, incluso para ese solo robot. Esta hipótesis resultó ser correcta, y la evidencia ha remodelado la forma en que el campo piensa sobre los datos de robots.

Por qué importa: los resultados de RT-X

El hallazgo histórico del documento OXE (Padalkar et al., 2023) fue el rendimiento de los modelos RT-X, específicamente RT-1-X y RT-2-X, entrenados en el conjunto completo de datos de múltiples encarnaciones.

RT-1-X (un modelo más pequeño y eficiente) formado con datos OXE superó en aproximadamente un 50% a los modelos de RT-1 especializados en robots únicos en tareas de evaluación realizadas en múltiples plataformas de robots. Este fue el resultado principal: un modelo generalista único, formado con datos de 22 robots diferentes, tuvo mejores resultados en cualquier robot individual que un modelo formado solo con datos propios de ese robot. El mecanismo es que los datos transnacionales forzan al modelo a aprender representaciones de manipulación agnóstica de la encarnación, proporcionando efectivamente un fuerte precedente para la comprensión visual y los conceptos de tareas.

RT-2-X (construido sobre el modelo de lenguaje de visión PaLM-E mucho más grande) mostró una transferencia transversal aún más fuerte, con una generalización de tiro cero particularmente impresionante a las encarnaciones de robots no presentes en el conjunto de entrenamiento. Cuando se evaluó en un tipo de robot retenido, RT-2-X logró tasas significativas de finalización de tareas sin ningún ajuste fino, algo que sería imposible para un modelo entrenado solo en los datos de un solo robot.

Estos resultados validaron una hipótesis central: el conocimiento de la manipulación de robots es parcialmente agnóstico en materia de encarnación. Una política que ha visto un brazo Franka abrir un cajón y un brazo WidowX recoger una taza ha aprendido algo sobre cajones y tazas que se transfieren a un UR5, a pesar de que el UR5 tiene cinemáticas completamente diferentes.

Los principales hallazgos del documento

** Lo que se transfiere a través de las realizaciones:** La comprensión de la escena visual (reconocimiento de objetos, comprensión de las relaciones espaciales) se transfirió más fuertemente. La semántica de tareas de alto nivel (el concepto de "recoger," "abrir," "poner") se transfirió bien.

** Lo que no se transmite bien:** Las configuraciones precisas de agarre (posiciones exactas de los dedos en relación con las superficies de los objetos) requerían datos específicos de la realización.

Materiales de distribución de datos: El conjunto de datos OXE no está distribuido uniformemente entre las realizaciones y tareas. Algunos laboratorios contribuyeron con decenas de miles de episodios, otros contribuyeron con cientos. La distribución de tareas está fuertemente sesgada hacia la tabletop pick-and-place. A pesar de este desequilibrio, el beneficio de la corporación cruzada fue robusto, aunque los mayores beneficios se acumularon en las corporaciones subrepresentadas (que ganaron más de la transferencia de la corporación cruzada) en lugar de en las corporaciones dominantes (que tenían datos suficientes para capacitar a especialistas fuertes).

La escala ayuda, pero la diversidad ayuda más: Los estudios de ablación que varían el número de realizaciones en el conjunto de formación manteniendo una constante del número total de episodios mostraron que añadir una nueva realización con menos episodios superó consistentemente la adición de más episodios de una realización ya representada. Este hallazgo de diversidad sobre volumen se ha convertido en uno de los resultados más citados y prácticamente más importantes en el aprendizaje de robots.

Cómo acceder y utilizar el conjunto de datos

OXE se aloja en Google Cloud Storage y se puede descargar utilizando la API tensorflow_datasets (TFDS). El conjunto de datos utiliza el formato RLDS, donde cada episodio es una secuencia de pasos que contienen diccionarios de observación (imágenes, estados conjuntos, estado de agarre), vectores de acción, señales de recompensa y anotaciones de tareas de lenguaje natural.

** Comenzando:**

  • Instalar tensorflow_datasets: T4
  • Explore los subconjuntos de datos disponibles en el repositorio OXE GitHub o en el catálogo TFDS
  • Cargar un subconjunto de datos específico: T5 (para el conjunto de datos RT-1 Fractal, uno de los componentes más grandes)
  • Para los usuarios de PyTorch: utilice las utilidades de conversión de LeRobot para transformar los datos RLDS en formato LeRobot Parquet, o utilice el oxe_torch_dataloader para cargar PyTorch directamente

Putras prácticas de uso:

  • Pre-entrenamiento de un modelo de base: Descargue el conjunto de datos completo de OXE (o un subconjunto diverso que cubre más de 10 realizaciones). Entrenad su modelo con estos datos para aprender representaciones generales de manipulación. Luego ajuste a la perfección sus datos específicos de tareas. Esto requiere de manera consistente 5-10 veces menos demostraciones específicas de tareas que el entrenamiento desde cero.
  • Aumentar un conjunto de datos pequeño: Si tiene 100-200 demostraciones en su robot específico, añada subconjuntos de datos OXE relevantes a su mezcla de entrenamiento.
  • Evaluación de la transferencia de transcripción: Utilice el protocolo de evaluación estándar de OXE y los conjuntos de tareas prolongados para comparar la capacidad de generalización de su modelo con las líneas de base publicadas.

Limitaciones: Lo que no cubre OXE

OXE es transformador, pero tiene limitaciones reales que los equipos deben entender antes de confiar en él.

La diversidad de tareas es sesgada. La mayoría de los episodios son de mesa y lugar, con fracciones más pequeñas que cubren la apertura del cajón/cabineta, limpieza y derramamiento. Las tareas complejas de múltiples pasos, tareas bimanual y tareas de manipulación móvil están subrepresentadas. Si su tarea de despliegue no está bien cubierta por la distribución de tareas de OXE, el beneficio pre-entrenamiento será limitado.

El hardware está datado. Muchos laboratorios contribuyentes utilizaron hardware que estaba actualizado en 2020-2023 pero que ahora está desactualizado: cámaras de baja resolución, modelos más antiguos de RealSense y configuraciones de brazos que difieren de las configuraciones ViperX/Franka más comúnmente utilizadas en 2026.

La dexteridad es limitada. Casi todos los datos de OXE utilizan agarradores paralelas de mandíbula. La manipulación dexterosa con manos con múltiples dedos está esencialmente ausente del conjunto de datos. Si su aplicación implica manipulación dexterosa de manos, OXE proporciona beneficios directos limitados, aunque el componente de comprensión visual aún transmite.

La calidad de la anotación varía. Las anotaciones lingüísticas van desde descripciones cuidadas y específicas ("recoger la taza roja del lado izquierdo de la tabla") hasta etiquetas genéricas ("recoger objeto"). Esta inconsistencia limita la eficacia del entrenamiento en lenguaje en el conjunto de datos crudo sin postprocesamiento.

No hay datos de torsión de fuerza. La gran mayoría de los episodios de OXE contienen solo posiciones conjuntas e imágenes de cámaras. Los datos de sensores de torsión de fuerza, que son críticos para las tareas ricas en contacto, no están presentes en la mayoría de los subconjuntos de datos. Esto limita la utilidad de OXE para las políticas de entrenamiento que necesitan modular la fuerza de agarre o manejar objetos compatibles.

Cargar datos OXE con LeRobot (Python)

# Load an OXE sub-dataset via LeRobot's HuggingFace integration
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

# Load the Bridge V2 subset (WidowX data, 60K+ episodes)
dataset = LeRobotDataset("lerobot/bridge_orig")

# Inspect dataset structure
print(f"Number of episodes: {dataset.num_episodes}")
print(f"Keys per frame: {dataset[0].keys()}")
# Typical keys: observation.images.image_0, observation.state, action, ...

# Load a specific episode
episode = dataset.filter(lambda x: x["episode_index"] == 42)
for frame in episode:
    obs_image = frame["observation.images.image_0"]  # PIL Image or tensor
    state = frame["observation.state"]  # joint positions
    action = frame["action"]  # action vector
    # Process as needed for your training pipeline

# For TFDS-native loading (alternative):
# import tensorflow_datasets as tfds
# ds = tfds.load('fractal20220817_data', split='train')
# for episode in ds.take(10):
#     steps = episode['steps']
#     for step in steps:
#         image = step['observation']['image']
#         action = step['action']

La configuración de un modelo de base en OXE + sus datos

La línea de trabajo estándar para utilizar los datos OXE para mejorar su política específica de tareas consiste en tres etapas:

Etapia 1: Seleccione los subconjuntos de datos OXE relevantes. No todos los datos OXE son igualmente útiles para su tarea. Seleccione los subconjuntos de datos basados en: tipo de robot similar (el mismo tipo de agarre es más importante que la misma cinemática del brazo), categoría de tarea similar (los datos de selección de lugar ayudan a la selección de lugar; no ayudan a la ensamblaje), y calidad de datos (preferimos los subconjuntos de datos con anotaciones de lenguaje y configuraciones de cámara consistentes). Para un proyecto de pick-place basado en WidowX, los conjuntos de datos Bridge V2 y Berkeley Cable Routing son los más relevantes.

Etapia 2: Pre-entrenar o utilizar pesas pre-entrenadas. Si se utilizan Octo o OpenVLA, los pesos pre-entrenados ya incorporan datos OXE. Comience a partir de estos pesos y proceda a la ajuste fino. Si se está entrenando una arquitectura personalizada, pre-entrenar en sus subconjuntos de datos OXE seleccionados durante 100-200 épocas (generalmente 12-48 horas en 4x A100 GPUs dependiendo del volumen de datos). Monitorear la pérdida de validación en una parte de sus datos específicos de tarea retenidos para detectar sobreajuste a la distribución OXE a expensas de su tarea objetivo.

Etapia 3: Ajuste a la perfección los datos específicos de la tarea. Ajuste a la perfección el modelo pre-entrenado en las demostraciones específicas de la tarea utilizando una tasa de aprendizaje más baja (generalmente 10 veces menor que la pre-entrenamiento: 1e-5 para Octo, 5e-6 para OpenVLA). Utilice todos los datos específicos de la tarea más una mezcla del 10-20% de los datos OXE más relevantes para evitar un olvido catastrófico del conocimiento general de manipulación. El ajuste fino requiere típicamente de 50-200 épocas (2-8 horas en un solo A100).

Resultados de referencia: Modelos formados en OXE contra especialistas

Model Preentrenamiento Data Fine-Tune Data In-Dist. Success Novel Object Success
ACT (from scratch) None 200 task demos 82% 28%
RT-1-X Full OXE 200 task demos 88% 52%
Octo (fine-tuned) Full OXE 200 task demos 86% 48%
OpenVLA (fine-tuned) Full OXE 200 task demos 90% 58%

El patrón es consistente: la pre-entrenamiento OXE proporciona una mejora modesta en la distribución (5-10%) y una gran mejora en la generalización de nuevos objetos (20-30 puntos porcentuales).

Estadísticas del conjunto de datos OXE: por números

Comprender la composición de OXE ayuda a los equipos a seleccionar los subconjuntos de datos más relevantes para su caso de uso.

Statistic Value Notes
Total episodes ~1.1 million Growing as labs continue to contribute
Robot embodiments 22+ Franka, WidowX, UR5, KUKA, Google fleet, etc.
Contributing institutions 33 Led by Google DeepMind, Stanford, UC Berkeley
Distinct task categories ~500 Heavily skewed toward pick-place (~60% of episodes)
Total storage size ~12 TB (raw) Most sub-datasets are 5-200 GB individually
Largest sub-dataset Fractal (RT-1): ~130K episodes Google's proprietary robot fleet data
Bridge V2 (WidowX) ~60K episodes 24 environments; most popular for WidowX fine-tuning
Language annotations ~70% of episodes Quality varies significantly across sub-datasets
Camera resolution range 128x128 to 640x480 Most sub-datasets standardize to 256x256 or 224x224
Force-torque data < 5% of episodes Major gap; limits contact-learning applications

Compatibilidad con el formato de datos RCSV

Los resultados de la recopilación de datos de RCSV están diseñados para ser interoperables con OXE y los principales marcos de capacitación.

  • Formatos nativos: HDF5 (compatible con LeRobot). El formato de salida principal de RCSV es HDF5, organizado en la estructura de episodios de LeRobot. Cada episodio contiene: T6 (RGB, 640x480, 30fps), T7 (RGB, 640x480, 30fps), T8 (posiciones conjuntas + velocidades + agarre), T9 (torque de fuerza, 6 ejes, 500Hz reducido a 30Hz), T10 (objetivos de posición conjunta o delta EEF) y T11 (cuerdas de lenguaje natural).
  • Exportación de RLDS. Para compatibilidad con OXE y tuberías de capacitación basadas en TFDS, RCSV proporciona una conversión de RLDS de un solo comando que mapea los episodios de HDF5 al formato RLDS con los campos de observación, acción y lenguaje estandarizados. Esta exportación es lo que necesita para contribuir a los datos recogidos por RCSV en OXE o para mezclarlos con subconjuntos de datos OXE existentes.
  • Exportación de LeRobot Parquet. Para los flujos de trabajo nativos de Hugging Face, RCSV exporta al formato de Parquet de LeRobot con los metadatos asociados YAML. Esto se integra directamente con T12 para el entrenamiento ACT, Política de difusión y VLA.
  • Raw video + CSV. Para las tuberías personalizadas, RCSV puede exportar videos MP4 crudos por cámara y archivos CSV con estados conjuntos marcados por tiempo, lecturas F/T y estados de agarre. Este es el formato más flexible, pero requiere que el equipo escriba su propio código de carga de datos.

El diferenciador clave entre los datos RCSV y los subconjuntos de datos típicos de OXE: cada episodio de RCSV incluye datos de fuerza-torque sincronizados (cuando los sensores F/T están presentes en el hardware), intrínsecos y extrínsecos calibrados de la cámara y anotaciones de lenguaje siguiendo un protocolo estandarizado. Estas características hacen que los datos de RCSV sean particularmente valiosos como datos de ajuste fino de alta calidad en la parte superior del pre-entrenamiento de OXE.

Cómo los datos de RCSV complementan OXE

OXE proporciona amplitud: muchas realizaciones, muchas tareas, muchos entornos. Lo que le falta es profundidad en dominios específicos y consistencia en la calidad de los datos. La recopilación de datos RCSV llena esta brecha proporcionando: configuraciones de cámaras consistentes con intrínsecas y extrínsecas calibradas en todos los episodios, datos de sensores de torsión de fuerza sincronizados con flujos visuales y proprioceptivos (ausentes de casi todos los datos OXE), diversidad sistemática de objetos dentro de las categorías de tareas objetivo (30+ objetos por categoría, no los 5-10 típicos en subconjuntos de datos OXE), y anotaciones de lenguaje siguiendo un protocolo estandarizado en lugar de la calidad variable en los subconjuntos de datos OXE.

El enfoque recomendado para los equipos con un objetivo de implementación específico: utilizar pesas de modelos de base preentrenadas por OXE para el conocimiento visual y de la manipulación general, luego ajustar con datos específicos de tareas recogidos por RCSV que proporcionen la profundidad y la calidad necesarias para la fiabilidad en el grado de implementación.

Componencia del conjunto de datos Deep Dive: qué hay realmente en OXE

No todos los subconjuntos de datos OXE se crean iguales.

Sub-Dataset Robot Episodes Tasks Best For
Fractal (RT-1) Google Everyday Robot ~130K Kitchen manipulation, pick-place Visual diversity, mobile manipulation
Bridge V2 WidowX 250 ~60K 24 environments, pick-place, sweeping WidowX fine-tuning, env diversity
TOTO Franka Panda ~1K Tabletop manipulation Franka fine-tuning baseline
Kuka KUKA IIWA ~3K Grasping, stacking Industrial arm benchmarks
BC-Z Google Robot ~25K 100+ tasks with language Language conditioning, multi-task
Cable Routing WidowX / Franka ~2K Deformable object manipulation Contact-rich, deformable tasks
Jaco Play Kinova Jaco ~1K Pick-place, drawer open Kinova fine-tuning, 3-finger gripper data

Para los clientes de RCSV que utilizan OpenArm 1 (6-DOF con agarre paralelo para mandíbula), los subconjuntos de datos OXE más relevantes para las mezclas pre-entrenamiento son Bridge V2 (tipo similar de efecto final) y BC-Z (anotativas de lenguaje para políticas condicionadas por lenguaje).

Mezcla de datos prácticos: equilibrar los datos OXE y específicos de las tareas

Cuando se combinan datos de pre-entrenamiento de OXE con datos de ajuste fino específicos de tareas, la relación de mezcla es importante. Demasiados datos de OXE durante el ajuste fino pueden diluir el aprendizaje específico de tareas; demasiado poco permite un olvido catastrófico de los conocimientos generales de manipulación.

Planes de mezcla recomendados:

  • Fase 1 (epocas 1-50): 80% OXE, 20% específico de tarea. El modelo conserva el conocimiento general mientras comienza a adaptarse.
  • Fase 2 (epocas 51-150): 40% OXE, 60% específico de tareas.
  • Fase 3 (epocas 151-200): 10% OXE, 90% específico de la tarea.

Este horario graduado supera consistentemente la mezcla de ratio fijo en un 5-8% en la generalización de objetos novedosos en nuestras evaluaciones.

# Graduated data mixing for OXE + task-specific fine-tuning
from torch.utils.data import ConcatDataset, WeightedRandomSampler

def get_sampler(epoch, oxe_dataset, task_dataset, total_epochs=200):
    """Returns a weighted sampler with epoch-dependent mixing ratio."""
    progress = epoch / total_epochs
    if progress < 0.25:
        oxe_weight, task_weight = 0.8, 0.2
    elif progress < 0.75:
        oxe_weight, task_weight = 0.4, 0.6
    else:
        oxe_weight, task_weight = 0.1, 0.9

    weights = ([oxe_weight / len(oxe_dataset)] * len(oxe_dataset) +
               [task_weight / len(task_dataset)] * len(task_dataset))
    combined = ConcatDataset([oxe_dataset, task_dataset])
    sampler = WeightedRandomSampler(weights, num_samples=len(combined))
    return combined, sampler

Cómo contribuir con sus propios datos

Contribuir a OXE fortalece el conjunto de datos de la comunidad y proporciona un mecanismo para que sus datos sean citados y utilizados por la comunidad de investigación en general.

  • Formatice sus datos en RLDS. Cada episodio debe contener observaciones (imágenes y propriocepción), acciones y anotaciones de lenguaje en el esquema RLDS.
  • Añadir anotaciones de lenguaje por paso. Cada paso debe tener una descripción en lenguaje natural de la tarea actual.
  • Documente su conjunto de datos. Proporcione una tarjeta de conjunto de datos con: tipo y configuración del robot, especificaciones y ubicación de la cámara, descripción del entorno de recogida, descripciones de tareas, recuento y capacitación del operador y recuento de episodios por tarea.
  • Envía una solicitud de extracción. El repositorio OXE GitHub acepta las contribuciones de conjuntos de datos a través de solicitudes de extracción. El proceso de revisión verifica el cumplimiento del formato, la calidad de los datos (ningún episodio corrompido, ningún valor extremo) y la integridad de la documentación.

Si sus demostraciones se recogieron a través de los [servicios de datos] de RCSV (T18), nuestra plataforma puede generar exportaciones compatibles con RLDS con metadatos estandarizados, simplificando el proceso de contribución.

Encabezos comunes al utilizar datos OXE

Los equipos que adoptan OXE por primera vez se encuentran con frecuencia con problemas que computan los residuos y producen resultados subóptimos.

  • Entrenamiento en el conjunto completo de datos sin filtrar. OXE contiene más de 1M episodios, y muchos son irrelevantes para su tarea específica. El entrenamiento en todo añade ruido y aumenta el tiempo de entrenamiento en 10-50 veces sin beneficio proporcional. Siempre filtrar a los subconjuntos de datos relevantes primero. Un buen punto de partida: seleccionar 3-5 subconjuntos de datos con tipo de pegamento y categoría de tarea similares, un total de 50K-200K episodios.
  • Ignorando la normalización del espacio de acción. Los diferentes subconjuntos de datos OXE utilizan diferentes representaciones de acción: posiciones conjuntas absolutas, posiciones conjuntas delta, posiciones de efecto final absoluto, posiciones de efecto final delta y varios formatos de acción de agarre. Utilice las utilidades de normalización de acción OXE o la capa de conversión integrada de LeRobot.
  • Suponiendo una colocación uniforme de la cámara. Las posiciones, ángulos y resoluciones de la cámara varían dramáticamente entre los subconfiguraciones de datos OXE. Un modelo pre-entrenado en Bridge V2 (cámara de arriba hacia abajo, 256x256) puede no transferir bien a su cámara de muñeca a 640x480.
  • Overweighting de los subconjuntos de datos más grandes. Fractal (130K episodios) domina OXE por volumen. Si muestras uniformemente por episodio, más del 60% de tus lotes de entrenamiento serán datos Fractal de la flota de robots de Google, que utiliza un manipulador móvil único que puede no ser relevante para tu brazo. Utilice muestreo equilibrado en subconjuntos de datos o conjuntos de datos más pequeños de peso superior que sean más relevantes para su realización objetivo.
  • No se tiene en cuenta el problema de calidad de la anotación lingüística. Aproximadamente el 30% de los episodios de OXE tienen anotaciones genéricas o faltan en el idioma ("pick up object" en lugar de "pick up the red cup from the left side").

Normalización del espacio de acción: guía práctica

La inconsistencia del espacio de acción en los subconjuntos de datos OXE es uno de los mayores desafíos prácticos.

# Action space normalization for mixed OXE training
import numpy as np

class ActionNormalizer:
    """Normalize actions from different OXE sub-datasets to a common space."""

    def __init__(self, target_space="delta_eef_6d"):
        self.target_space = target_space
        # Per-dataset statistics (computed from dataset metadata)
        self.stats = {}

    def register_dataset(self, dataset_name, action_mean, action_std, action_type):
        """Register per-dataset normalization statistics."""
        self.stats[dataset_name] = {
            "mean": np.array(action_mean),
            "std": np.array(action_std),
            "type": action_type,  # "abs_joint", "delta_joint", "abs_eef", "delta_eef"
        }

    def normalize(self, action, dataset_name):
        """Normalize action to zero-mean, unit-variance in target space."""
        s = self.stats[dataset_name]
        # Step 1: Convert to target action type (if needed)
        converted = self._convert_action_type(action, s["type"], self.target_space)
        # Step 2: Standardize using per-dataset statistics
        normalized = (converted - s["mean"]) / (s["std"] + 1e-8)
        return np.clip(normalized, -5.0, 5.0)  # Clip outliers

    def _convert_action_type(self, action, source_type, target_type):
        """Convert between action representations using FK/IK."""
        if source_type == target_type:
            return action
        # Conversion requires robot-specific FK/IK -- use URDF-based solver
        # This is dataset-specific and must be implemented per-embodiment
        raise NotImplementedError(
            f"Conversion from {source_type} to {target_type} "
            f"requires robot-specific FK/IK model"
        )

El desafío de normalización de acción es una razón clave por la que los modelos de base como Octo y OpenVLA son tan valiosos: manejan la normalización de acción de conjunto de datos internamente, ahorrando a los equipos de implementarla desde cero. Si estás entrenando una arquitectura personalizada en datos OXE crudos, presupuesta 1-2 semanas de tiempo de ingeniería para una correcta manipulación del espacio de acción.

Protocolo de evaluación: Cómo comparar las referencias con las líneas de referencia de OXE

Para comparar significativamente su modelo afinado con las líneas de base publicadas de OXE, utilice el protocolo de evaluación estandarizado de los documentos RT-X.

  1. Definir entre 10 y 20 configuraciones de evaluación que abarcan la distribución en el modelo (objetos de formación en puestos de formación) y la distribución fuera de los mismos (objetos nuevos en puestos nuevos).
  2. Run 3 ensayos por configuración para tener en cuenta el comportamiento de la política estocástica y el ruido ambiental.
  3. Use los criterios de éxito estándar: El objeto está a menos de 3 cm de la posición del objetivo para las tareas de pick-place; ángulo de cajón/cabineta dentro de 10 grados del objetivo para las tareas articuladas; tarea completada dentro de 2 veces la duración de la demostración humana media.
  4. Reporte las tasas de éxito tanto en la distribución como en la OOD por separado. Muchos artículos solo informan los números en la distribución, lo que puede ser engañoso.
  5. Compare con las líneas de base publicadas: ACT desde cero (marcado inferior), Octo ajustado (intervalo medio) y OpenVLA ajustado (marcado superior para los modelos actuales).

RCSV proporciona conjuntos de evaluación estandarizados para categorías de tareas comunes (pico de mesa, apertura de cajones, apilamiento) que incluyen objetos físicos, plantillas de posición y rúbricas de puntuación.

Construir su propio conjunto de datos compatible con OXE

Contribuir datos al ecosistema OXE - o construir conjuntos de datos que sean compatibles con modelos entrenados OXE - requiere cumplir con el formato de datos y los estándares de metadatos específicos.

  1. Usa formato RLDS. OXE utiliza el formato RLDS (Reinforcement Learning Datasets) basado en Datasets TensorFlow (TFDS). Cada episodio contiene: observación (imágenes de la cámara, estado proprioceptivo), acción (delta de la posición del efecto final o ángulos conjuntos), instrucción de lenguaje (cuerdas de lenguaje natural) y señal de recompensa/éxito.
  2. ** Normaliza la configuración de la cámara.** Los modelos OXE esperan campos de cámara específicos: una o más imágenes RGB denominadas T13, T14, etc. La resolución debe ser de al menos 256x256 (320x240 mínimos).
  3. Normalizar las acciones a un espacio común. Reporte las acciones como delta de efecto final 7D: [dx, dy, dz, droll, dpitch, dyaw, gripper_open]. Posicionar deltas en metros, deltas de rotación en radianos. Incluya la conversión desde el espacio de acción nativo de su robot (ángulos conjuntos, posición absoluta, etc.) en la documentación del conjunto de datos.
  4. Incluir metadatos ricos. Por conjunto de datos: modelo de robot, tipo de pegadilla, modelo de cámara, dimensiones del espacio de trabajo, descripción de tareas. Por episodio: instrucción de idioma, etiqueta de éxito/fallo, fecha de recogida, ID del operador (anonimado).
  5. ** Puerta de calidad antes de la liberación.** Elimine las demostraciones fallidas (a menos que se etiqueten específicamente como fallas para el entrenamiento de ejemplos negativos). Verifique la sincronización de timestamps entre las modalidades. Compruebe si las etiquetas de acción corresponden correctamente al movimiento observado. Una verificación de 5% por un segundo anotador detecta problemas sistemáticos.

RCSV proporciona la exportación de datos compatibles con OXE como salida estándar para todos los compromisos de recopilación de datos. Los equipos que usan datos de RCSV pueden integrarlo inmediatamente con modelos capacitados con OXE (Octo, OpenVLA) sin conversión de formato. También contribuimos con conjuntos de datos anónimos al repositorio público de OXE cuando los clientes optan, ampliando el recurso comunitario que beneficia a todos.

Modelos de OXE para ajuste fino: una guía paso a paso

El uso más práctico de OXE para la mayoría de los equipos es ajustar un modelo pre-entrenado de OXE en sus datos específicos de tareas.

# fine_tune_octo.py -- Fine-tune OXE-pretrained Octo on task-specific data
from octo.model.octo_model import OctoModel
from octo.data import make_single_dataset

# Step 1: Load OXE-pretrained checkpoint
model = OctoModel.load_pretrained("hf://rail-berkeley/octo-base")

# Step 2: Prepare your task-specific dataset (RLDS format)
dataset = make_single_dataset(
    dataset_kwargs={
        "name": "my_robot_pick_place",
        "data_dir": "/data/my_dataset/1.0.0",
        "image_obs_keys": {"primary": "image_0", "wrist": "image_1"},
        "state_obs_keys": ["state"],
        "language_key": "language_instruction",
    },
    train=True,
)

# Step 3: Fine-tune with reduced learning rate
# Key: use 10x lower LR than pre-training to avoid catastrophic forgetting
model = model.finetune(
    dataset,
    learning_rate=3e-5,     # Pre-training used 3e-4
    batch_size=256,
    num_steps=10000,        # 50-200 demos typically need 5K-20K steps
    freeze_transformer=False,
)

# Step 4: Evaluate on held-out conditions
model.save_pretrained("/models/my_task_octo_finetuned")

Críticos consejos de ajuste fino:

  • Comience con T15 (93M params) a menos que tenga 4+ GPUs A100, en cuyo caso T16 puede valer la pena el cálculo.
  • La sintonización con 100 demostraciones para 10K pasos toma aproximadamente 2 horas en un solo A100.
  • Monitorear tanto la pérdida de entrenamiento como la evaluación en el mundo real. La pérdida de ajuste fino puede disminuir mientras que el rendimiento en el mundo real se desestabiliza o degrada (que se ajusta a la pequeña serie de ajustes finos).
  • Si su robot tiene una configuración de agarre o cámara diferente a cualquier otra en OXE, presupuesta datos de ajuste fino adicionales (200+ demos) para enseñar al modelo las características específicas del nuevo emblemático.

Lo que viene después: DROID, Bridge V2 y más allá

OXE estableció el principio y la próxima generación de conjuntos de datos lo está ampliando en direcciones específicas.

** DROID** (Khazatsky et al., 2024) se centra en la diversidad ambiental. 76.000 demostraciones en 564 ambientes y 86 laboratorios, diseñadas específicamente para probar cómo la diversidad ambiental afecta la generalización de políticas. DROID es complementario a OXE: donde OXE maximiza la diversidad de la encarnación de robots, DROID maximiza la diversidad de escena y medio ambiente.

** Bridge V2** (Walke et al., 2023) proporciona un conjunto de datos de alta calidad enfocado para la manipulación basada en WidowX. 60,000+ demostraciones en 24 entornos con un control de calidad cuidadoso. Bridge V2 es el conjunto de datos de ajuste fino para los equipos que se despliegan en el hardware de WidowX porque proporciona el volumen y la diversidad ambiental necesarios para una implementación robusta, específicamente para una realización.

Open-Anything sets. La comunidad está trabajando para la agregación de estilo OXE para dominios actualmente subrepresentados: manipulación hábil con manos con múltiples dedos, tareas bimanual, manipulación móvil y robótica al aire libre/campo. RCSV está contribuyendo activamente a estos esfuerzos de agregación emergentes con datos de nuestras campañas de recopilación bimanual y manipulación hábil.

La trayectoria más amplia es hacia un equivalente robótico de los corpora de texto a escala web que permitió grandes modelos de lenguaje. OXE fue la prueba del concepto. La pregunta ahora es si la comunidad puede lograr la diversidad y la escala necesarias para entrenar modelos de base robótica verdaderamente generalistas, y cuánto tiempo tomará eso. La infraestructura de recopilación de datos de RCSV (T20) está diseñada para contribuir a este esfuerzo y proporcionar un valor práctico inmediato a los equipos que construyen los sistemas robóticos actuales.

Lectura relacionada

  • [Leyes de escala para el aprendizaje de robots: lo que sabemos en 2026]
  • [Marco LeRobot: Guía para comenzar]
  • [El desafío de generalización: por qué las políticas de robots siguen fracasando]
  • [Robot Aprendizaje de Video: Estado de la Arte en 2026]
  • [Aprendizaje por imitación para robots: desde las demostraciones hasta la implementación]
  • Servicios de recogida de datos de la RCSV
  • [RCSV Datasets]

Recopilación de datos compatible con OXE

La recopilación de datos RCSV es compatible con OXE desde cero: cámaras estandarizadas, exportación lista para RLDS y anotación de calidad. Utilice nuestros datos directamente para la pre-entrenamiento o contribuya a la comunidad.

[Explorar los Servicios de Datos]