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 :
- Configuration de l’environnement
LIBEROet de ses dependances. - Execution de l’evaluation en lancant les services dans les environnements
starVLAetLIBERO.
Nous avons verifie que ce workflow fonctionne correctement sur les GPU NVIDIA A100 et RTX 4090.
Evaluation LIBERO
Section intitulée « Evaluation LIBERO »0. Telecharger les checkpoints
Section intitulée « 0. Telecharger les checkpoints »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.
Resultats experimentaux
Section intitulée « Resultats experimentaux »| Modele | Etapes | Epoques | Spatial | Object | Goal | Long | Moy. |
|---|---|---|---|---|---|---|---|
| $\pi_0$+FAST | - | - | 96.4 | 96.8 | 88.6 | 60.2 | 85.5 |
| OpenVLA-OFT | 175K | 223 | 97.6 | 98.4 | 97.9 | 94.5 | 97.1 |
| $\pi_0$ | - | - | 96.8 | 98.8 | 95.8 | 85.2 | 94.1 |
| GR00T-N1.5 | 20K | 203 | 92.0 | 92.0 | 86.0 | 76.0 | 86.5 |
| StarVLA-FAST (Qwen2.5-VL) | 30K | 9.54 | 97.3 | 97.2 | 96.1 | 90.2 | 95.2 |
| StarVLA-OFT (Qwen2.5-VL) | 30K | 9.54 | 97.4 | 98.0 | 96.8 | 92.0 | 96.1 |
| StarVLA-π (Qwen2.5-VL) | 30K | 9.54 | 98.2 | 99.2 | 95.6 | 88.4 | 95.4 |
| StarVLA-GR00T (Qwen2.5-VL) | 30K | 9.54 | 97.8 | 98.2 | 94.6 | 90.8 | 95.4 |
| StarVLA-FAST (Qwen3-VL) | 30K | 9.54 | 97.3 | 97.4 | 96.3 | 90.6 | 95.4 |
| StarVLA-OFT (Qwen3-VL) | 30K | 9.54 | 97.8 | 98.6 | 96.2 | 93.8 | 96.6 |
| StarVLA-π (Qwen3-VL) | 30K | 9.54 | 98.8 | 99.6 | 95.8 | 88.4 | 95.7 |
| StarVLA-GR00T (Qwen3-VL) | 30K | 9.54 | 97.8 | 98.8 | 97.4 | 92.0 | 96.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).
1. Configuration de l’environnement
Section intitulée « 1. Configuration de l’environnement »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 :
pip install tyro matplotlib mediapy websockets msgpackpip install numpy==1.24.4 # Retrograder numpy pour la compatibilite avec l'environnement de simulation2. Workflow d’evaluation
Section intitulée « 2. Workflow d’evaluation »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 :
bash examples/LIBERO/eval_files/run_policy_server.shNote : 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 :
bash examples/LIBERO/eval_files/eval_libero.shNote : Assurez-vous de definir correctement les variables suivantes dans eval_libero.sh :
| Variable | Signification | Exemple |
|---|---|---|
LIBERO_HOME | Chemin vers votre clone du depot LIBERO | /path/to/LIBERO |
LIBERO_Python | Chemin Python de l’environnement conda LIBERO | $(which python) (dans l’env LIBERO) |
your_ckpt | Chemin du checkpoint StarVLA | ./results/Checkpoints/.../steps_30000_pytorch_model.pt |
unnorm_key | Nom du type de robot pour charger les statistiques de denormalisation | franka (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 :

Entrainement LIBERO
Section intitulée « Entrainement LIBERO »Etape 0 : Telecharger le dataset d’entrainement
Section intitulée « Etape 0 : Telecharger le dataset d’entrainement »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 :
# Definissez DEST sur le repertoire ou vous souhaitez stocker les donneesexport DEST=/path/to/your/data/directorybash examples/LIBERO/data_preparation.shEtape 1 : Lancer l’entrainement
Section intitulée « Etape 1 : Lancer l’entrainement »La plupart des fichiers d’entrainement necessaires ont ete organises dans examples/LIBERO/train_files/.
Executez la commande suivante pour lancer l’entrainement :
bash examples/LIBERO/train_files/run_libero_train.shNote : Veuillez vous assurer de specifier le bon chemin dans examples/LIBERO/train_files/run_libero_train.sh