Ir al contenido

Evaluación de LIBERO

LIBERO es un benchmark de manipulación robótica sobre mesa con 4 suites de tareas (Spatial, Object, Goal, Long Horizon), totalizando 40 tareas. Evalúa modelos VLA en comprensión espacial, reconocimiento de objetos, razonamiento de objetivos y manipulación de horizonte largo usando un brazo robótico Franka.

Este documento proporciona instrucciones para reproducir nuestros resultados experimentales con LIBERO. El proceso de evaluación consta de dos partes principales:

  1. Configurar el entorno de LIBERO y sus dependencias.
  2. Ejecutar la evaluación lanzando servicios en ambos entornos starVLA y LIBERO.

Hemos verificado que este flujo de trabajo funciona correctamente tanto en GPUs NVIDIA A100 como RTX 4090.


Proporcionamos una colección de checkpoints preentrenados en Hugging Face para facilitar la evaluación de la comunidad: StarVLA/bench-libero. Sus resultados correspondientes en LIBERO se resumen en la tabla siguiente.

ModeloPasosÉpocasSpatialObjectGoalLongProm
$\pi_0$+FAST--96.496.888.660.285.5
OpenVLA-OFT175K22397.698.497.994.597.1
$\pi_0$--96.898.895.885.294.1
GR00T-N1.520K20392.092.086.076.086.5
StarVLA-FAST (Qwen2.5-VL)30K9.5497.397.296.190.295.2
StarVLA-OFT (Qwen2.5-VL)30K9.5497.498.096.892.096.1
StarVLA-π (Qwen2.5-VL)30K9.5498.299.295.688.495.4
StarVLA-GR00T (Qwen2.5-VL)30K9.5497.898.294.690.895.4
StarVLA-FAST (Qwen3-VL)30K9.5497.397.496.390.695.4
StarVLA-OFT (Qwen3-VL)30K9.5497.898.696.293.896.6
StarVLA-π (Qwen3-VL)30K9.5498.899.695.888.495.7
StarVLA-GR00T (Qwen3-VL)30K9.5497.898.897.492.096.5

Entrenamos una política para las 4 suites. Todas las puntuaciones son promedio de 500 pruebas para cada suite de tareas (10 tareas × 50 episodios).


Para configurar el entorno, primero sigue el repositorio oficial de LIBERO para instalar el entorno base de LIBERO.

⚠️ Problema común: LIBERO usa Python 3.8 por defecto, pero las actualizaciones de sintaxis entre 3.8 y 3.10 son sustanciales. Hemos verificado que usar Python 3.10 evita muchos problemas.

Después, dentro del entorno de LIBERO, instala las siguientes dependencias:

Ventana de terminal
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4 # Degradar numpy para compatibilidad con el entorno de simulación

Ejecuta la evaluación desde la raíz del repositorio starVLA usando dos terminales separadas, una para cada entorno.

  • Entorno starVLA: ejecuta el servidor de inferencia.
  • Entorno LIBERO: ejecuta la simulación.

Paso 1. Iniciar el servidor (entorno starVLA)

Sección titulada «Paso 1. Iniciar el servidor (entorno starVLA)»

En la primera terminal, activa el entorno conda starVLA y ejecuta:

Ventana de terminal
bash examples/LIBERO/eval_files/run_policy_server.sh

⚠️ Nota: Asegúrate de especificar la ruta correcta del checkpoint en examples/LIBERO/eval_files/run_policy_server.sh


Paso 2. Iniciar la simulación (entorno LIBERO)

Sección titulada «Paso 2. Iniciar la simulación (entorno LIBERO)»

En la segunda terminal, activa el entorno conda LIBERO y ejecuta:

Ventana de terminal
bash examples/LIBERO/eval_files/eval_libero.sh

⚠️ Nota: Asegúrate de configurar correctamente las siguientes variables en eval_libero.sh:

VariableSignificadoEjemplo
LIBERO_HOMERuta a tu clon del repositorio LIBERO/path/to/LIBERO
LIBERO_PythonRuta de Python del entorno conda de LIBERO$(which python) (dentro del entorno LIBERO)
your_ckptRuta del checkpoint de StarVLA./results/Checkpoints/.../steps_30000_pytorch_model.pt
unnorm_keyNombre del tipo de robot para cargar estadísticas de desnormalizaciónfranka (LIBERO usa el brazo Franka)

unnorm_key se usa para cargar las estadísticas de normalización (mín/máx, etc.) guardadas durante el entrenamiento, convirtiendo las salidas normalizadas del modelo de vuelta a ángulos articulares reales.

Finalmente, cada resultado también guardará un video para visualización, como se muestra a continuación:

Ejemplo


Paso 0: Descargar el dataset de entrenamiento

Sección titulada «Paso 0: Descargar el dataset de entrenamiento»

Descarga los datasets al directorio playground/Datasets/LEROBOT_LIBERO_DATA:

Y mueve modality.json a cada $LEROBOT_LIBERO_DATA/subset/meta/modality.json.

Puedes preparar estos rápidamente ejecutando:

Ventana de terminal
# Establece DEST al directorio donde quieres almacenar los datos
export DEST=/path/to/your/data/directory
bash examples/LIBERO/data_preparation.sh

La mayoría de los archivos de entrenamiento necesarios están organizados en examples/LIBERO/train_files/.

Ejecuta el siguiente comando para iniciar el entrenamiento:

Ventana de terminal
bash examples/LIBERO/train_files/run_libero_train.sh

⚠️ Nota: Asegúrate de especificar la ruta correcta en examples/LIBERO/train_files/run_libero_train.sh