Skip to main content

LIBERO-Plus: In-depth Robustness Analysis of Vision-Language-Action Models

📄 Paper | 🏗️ Assets | 🌐 Website | 🤗 Model | 📁 RldsDataset 📁 LerobotDataset

libero-plus

🔥 Overview

This repository contains the official implementation and benchmark for our paper "In-depth Robustness Analysis for Vision-Language-Action Models". We systematically expose the hidden vulnerabilities of contemporary VLA models through comprehensive robustness evaluation across seven perturbation dimensions. You can simply replace the original libero with a pip install -e . without modifying your code.

🚀 Key Findings

  • Significant Fragility: VLA models exhibit extreme sensitivity to camera viewpoints and robot initial states, with performance dropping from 95% to below 30% under modest perturbations
  • Language Ignorance: Models largely ignore language instructions, functioning more like Vision-Action models
  • Negative Compositional Generalization: Combined perturbations reveal complex interaction effects beyond independent factors

📊 LIBERO-plus Benchmark

7 Perturbation Dimensions

We introduce LIBERO-plus, a comprehensive benchmark with 10,030 tasks spanning:

  1. Objects Layout - Confounding objects and target object displacement
  2. Camera Viewpoints - Position, orientation, and field-of-view changes
  3. Robot Initial States - Manipulator initial pose variations
  4. Language Instructions - LLM-based instruction rewriting
  5. Light Conditions - Intensity, direction, color, and shadow variations
  6. Background Textures - Scene and surface appearance changes
  7. Sensor Noise - Photometric distortions and image degradation

Evaluated Models

  • OpenVLA and variants (OFT, OFT_w, OFT_m)
  • π₀ and π₀-fast
  • Nora, WorldVLA, UniVLA, RIPT-VLA

🛠️ Installation

The usage of this project is identical to LIBERO. Simply replace the originally installed LIBERO repository with our repository without modifying your code.

# Clone our repository
git clone https://github.com/sylvestf/LIBERO-plus.git
cd LIBERO-plus

If you have LIBERO installed, please uninstall or remove it first. Please verify if the repo path in the following configuration file needs to be updated to path_to_liberoplus_repo. Here are the default paths for the configuration files: /root/.libero/config.yaml. You can check your libero_config_path at path_to_your_LIBERO_repo/libero/libero/__init__.py.

Then install our new LIBERO repository

# Install the new LIBERO package
pip install -e .

# New dependencies installed on top of LIBERO
apt install libexpat1
apt install libfontconfig1-dev
apt install libpython3-stdlib
apt-get install libmagickwand-dev
pip install -r extra_requirements.txt

Please download our assets from LIBERO-plus, including hundreds of new objects, textures, and other required assets. Please unzip the assets.zip file to /LIBERO-plus/libero/libero path. You can also find the RLDS training dataset mentioned in our paper and the OpenVLA-OFT weights after mix-SFT on this dataset. We also provide LEROBOT training dataset and training dataset for each suite.

The extracted directory structure should look like:

LIBERO-plus/
└── libero/
    └── libero/
        └── assets/
            ├── articulated_objects/
            ├── new_objects/
            ├── scenes/
            ├── stable_hope_objects/
            ├── stable_scanned_objects/
            ├── textures/
            ├── turbosquid_objects/
            ├── serving_region.xml
            ├── wall_frames.stl
            └── wall.xml

🔧 Evaluation

The evaluation method is almost identical to LIBERO. The only required modification is adjusting num_trials_per_task from 50 to 1 in your configuration.

📊 LIBERO-Plus Benchmark Leaderboard

Model Camera Robot Language Light Background Noise Layout Total
OpenVLA 0.8 3.5 23.0 8.1 34.8 15.2 28.5 17.3
OpenVLA-OFT 56.4 31.9 79.5 88.7 93.3 75.8 74.2 70.0
OpenVLA-OFT_w 10.4 38.7 70.5 76.8 93.6 49.9 69.9 56.4
NORA 2.2 37.0 65.1 45.7 58.6 12.8 62.1 39.8
WorldVLA 0.1 27.9 41.6 43.7 17.1 10.9 38.0 25.3
UniVLA 1.8 46.2 69.6 69.0 81.0 21.2 31.9 43.9
π₀ 13.8 6.0 58.8 85.0 81.4 79.0 68.9 54.6
π₀-Fast 65.1 21.6 61.0 73.2 73.2 74.4 68.8 64.2
RIPT-VLA 55.2 31.2 77.6 88.4 91.6 73.5 74.2 69.3
OpenVLA-OFT_m 55.6 21.7 81.0 92.7 91.0 78.6 68.7 68.1
OpenVLA-OFT+ (Ours) 92.8 30.3 85.8 94.9 93.9 89.3 77.6 79.6

Origin LIBERO Benchmark Leaderboard

To make it easier to get all the results in one place, we've compiled the evaluation results of current VLA models on the original LIBERO benchmark in this table.

Citation

If you find this work useful for your research, please cite our paper:

@article{fei25libero-plus,
    title={LIBERO-Plus: In-depth Robustness Analysis of Vision-Language-Action Models},
    author={Senyu Fei and Siyin Wang and Junhao Shi and Zihao Dai and Jikun Cai and Pengfang Qian and Li Ji and Xinzhe He and Shiduo Zhang and Zhaoye Fei and Jinlan Fu and Jingjing Gong and Xipeng Qiu},
    journal = {arXiv preprint arXiv:2510.13626},
    year={2025},
}

Metadata

Release files for rlinf-liberoplus 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rlinf-liberoplus 0.1.5
File Size Uploaded Provenance
rlinf_liberoplus-0.1.5.tar.gz 6.3 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for rlinf-liberoplus 0.1.5
File Interpreter ABI Platform
rlinf_liberoplus-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 31.3 MB

Release files / rlinf_liberoplus-0.1.5.tar.gz

Download URL rlinf_liberoplus-0.1.5.tar.gz
Size 6.3 MB
Tags Source
SHA-256 checksum
How to use checksums
dee3637a7528543f4163749fdae56c5933f42216ba2f2f20c10bde78c2ae4fe3
BLAKE2b-256 checksum
How to use checksums
059bb7c347f0543cbb6c3e6060a13e9538fada483b09912f00f6db1336d623dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / rlinf_liberoplus-0.1.5-py3-none-any.whl

Download URL rlinf_liberoplus-0.1.5-py3-none-any.whl
Size 25.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
12b1ef939f97ee1b2864c9ecd51731254ac3046dc7874d99f179cd59ce381dca
BLAKE2b-256 checksum
How to use checksums
4e1e005b9cc08e0bcae59ae8858584334d3fdfb99d0dec2d11ecad95ace55969
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for rlinf-liberoplus 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page