Aller au contenu

Evaluation LIBERO

LIBERO est un benchmark de manipulation robotique sur table avec 4 suites de taches (Spatial, Object, Goal, Long Horizon), totalisant 40 taches. Il evalue les modeles VLA sur la comprehension spatiale, la reconnaissance d’objets, le raisonnement sur les objectifs et la manipulation a long horizon en utilisant un bras robotique Franka.

Ce document fournit les instructions pour reproduire nos resultats experimentaux avec LIBERO. Le processus d’evaluation se compose de deux parties principales :

  1. Configuration de l’environnement LIBERO et de ses dependances.
  2. Execution de l’evaluation en lancant les services dans les environnements starVLA et LIBERO.

Nous avons verifie que ce workflow fonctionne correctement sur les GPU NVIDIA A100 et RTX 4090.


Nous fournissons une collection de checkpoints pre-entraines sur Hugging Face pour faciliter l’evaluation communautaire : StarVLA/bench-libero. Les resultats correspondants sur LIBERO sont resumes dans le tableau ci-dessous.

ModeleEtapesEpoquesSpatialObjectGoalLongMoy.
$\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

Nous entrainons une seule politique pour les 4 suites. Tous les scores sont moyennes sur 500 essais pour chaque suite de taches (10 taches x 50 episodes).


Pour configurer l’environnement, veuillez d’abord suivre le depot officiel LIBERO pour installer l’environnement de base LIBERO.

Probleme courant : LIBERO utilise Python 3.8 par defaut, mais les changements de syntaxe entre 3.8 et 3.10 sont substantiels. Nous avons verifie que l’utilisation de Python 3.10 evite de nombreux problemes.

Ensuite, dans l’environnement LIBERO, installez les dependances suivantes :

Fenêtre de terminal
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4 # Retrograder numpy pour la compatibilite avec l'environnement de simulation

Executez l’evaluation depuis la racine du depot starVLA en utilisant deux terminaux separes, un pour chaque environnement.

  • Environnement starVLA : execute le serveur d’inference.
  • Environnement LIBERO : execute la simulation.

Etape 1. Demarrer le serveur (environnement starVLA)

Section intitulée « Etape 1. Demarrer le serveur (environnement starVLA) »

Dans le premier terminal, activez l’environnement conda starVLA et executez :

Fenêtre de terminal
bash examples/LIBERO/eval_files/run_policy_server.sh

Note : Veuillez vous assurer de specifier le bon chemin de checkpoint dans examples/LIBERO/eval_files/run_policy_server.sh


Etape 2. Demarrer la simulation (environnement LIBERO)

Section intitulée « Etape 2. Demarrer la simulation (environnement LIBERO) »

Dans le second terminal, activez l’environnement conda LIBERO et executez :

Fenêtre de terminal
bash examples/LIBERO/eval_files/eval_libero.sh

Note : Assurez-vous de definir correctement les variables suivantes dans eval_libero.sh :

VariableSignificationExemple
LIBERO_HOMEChemin vers votre clone du depot LIBERO/path/to/LIBERO
LIBERO_PythonChemin Python de l’environnement conda LIBERO$(which python) (dans l’env LIBERO)
your_ckptChemin du checkpoint StarVLA./results/Checkpoints/.../steps_30000_pytorch_model.pt
unnorm_keyNom du type de robot pour charger les statistiques de denormalisationfranka (LIBERO utilise un bras Franka)

unnorm_key est utilise pour charger les statistiques de normalisation (min/max, etc.) sauvegardees pendant l’entrainement, convertissant les sorties normalisees du modele en angles articulaires reels.

Enfin, chaque resultat sauvegardera egalement une video pour la visualisation, comme illustre ci-dessous :

Exemple


Telechargez les datasets dans le repertoire playground/Datasets/LEROBOT_LIBERO_DATA :

Et deplacez modality.json vers chaque $LEROBOT_LIBERO_DATA/subset/meta/modality.json.

Vous pouvez preparer rapidement ces donnees en executant :

Fenêtre de terminal
# Definissez DEST sur le repertoire ou vous souhaitez stocker les donnees
export DEST=/path/to/your/data/directory
bash examples/LIBERO/data_preparation.sh

La plupart des fichiers d’entrainement necessaires ont ete organises dans examples/LIBERO/train_files/.

Executez la commande suivante pour lancer l’entrainement :

Fenêtre de terminal
bash examples/LIBERO/train_files/run_libero_train.sh

Note : Veuillez vous assurer de specifier le bon chemin dans examples/LIBERO/train_files/run_libero_train.sh