GraspVLA Simulation Environment

August 21, 2025 ยท View on GitHub

This repository provides simulation benchmarks for GraspVLA, featuring both the popular LIBERO benchmark and an enhanced playground environment built on top of it.

Features

Our playground environment offers the following capabilities:

  • Diverse Objects: Randomly sample objects from the Objaverse dataset
  • Diverse Layouts: Randomly generate initial scene configurations
  • Diverse Environments: Randomly sample background styles and textures

playground

Latest Updates

  • [2025-08-21] To ensure the repository remains accessible to all users, we have migrated away from Git LFS due to bandwidth limitations from a recent surge in downloads. This required a complete rewrite of the git history.

Installation

Prerequisites

Install Git LFS (for large object and robot assets) and FFmpeg (for video conversion and visualization):

sudo apt install git-lfs ffmpeg

Step 1: Clone the Repository

git clone git@github.com:MiYanDoris/GraspVLA-playground.git
cd GraspVLA-playground

Step 2: Set Up Python Environment

Create and activate a conda environment with the required dependencies:

conda create -n playground python=3.9.0
conda activate playground
pip install -r requirements.txt

Step 3: Install Core Dependencies

Install the required third-party packages:

cd third_party/robosuite
pip install -e .
cd ../bddl
pip install -e .
cd ..

Step 4: Install cuRobo

Install cuRobo with appropriate CUDA and PyTorch versions. Note that PyTorch >= 1.10 is required, and installation takes approximately 20 minutes. We attach the command we used here for reference.

git clone https://github.com/NVlabs/curobo.git
cd curobo
export CUDA_HOME=/usr/local/cuda-11.8
pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu118
pip install -e . --no-build-isolation
cd ..

Step 5: Configure Robot Assets

Update the paths in assets/franka_with_extended_finger/franka.yml to use absolute paths for:

  • urdf_path: Path to franka_with_extended_finger.urdf
  • asset_root_path: Path to franka_with_extended_finger directory
  • collision_spheres: Path to collision_spheres.yml

Usage

Starting the Model Server

Before running any simulations, you must start the model server. For detailed instructions, see the model server documentation.

To validate that the server is running correctly:

python validate_server.py --host 127.0.0.1 --port 6666 --timeout 5

A green checkmark indicates the server is ready for use.

Playground

Once the model server is active, launch the playground environment:

python playground.py

The playground is configured through config/playground.yaml. By default, it:

  • Randomly samples 6 objects from the Objaverse dataset
  • Randomly samples texture maps from libero/libero/assets/textures for floors and walls
  • Runs 10 trials with different random seeds

You can customize seeds, object counts, and other parameters in the configuration file.

To calculate success rates after running experiments:

python misc/get_success_rate_per_object.py

Evaluate on LIBERO Benchmark

Once the model server is active, launch the LIBERO benchmark evaluation as shown below. Configuration options are available in config/evaluate_libero_tasks.yaml.

python evaluate_libero_tasks.py

For faster evaluation, run multiple environments in parallel. Adjust the parallel_env_num parameter in config/parallel_eval.yaml to control the number of concurrent environments. We highly recommend add compile flag when starting the model server to speed up the evaluation.

python parallel_eval.py

Citation

If you found this repository useful, please consider to cite the following works:

  • Our paper:
@article{deng2025graspvla,
    title={GraspVLA: a Grasping Foundation Model Pre-trained on Billion-scale Synthetic Action Data}, 
    author={Shengliang Deng and Mi Yan and Songlin Wei and Haixin Ma and Yuxin Yang and Jiayi Chen and Zhiqi Zhang and Taoyu Yang and Xuheng Zhang and Heming Cui and Zhizheng Zhang and He Wang},
    year={2025},
    eprint={2505.03233},
    archivePrefix={arXiv},
    primaryClass={cs.RO},
    url={https://arxiv.org/abs/2505.03233}
}
  • LIBERO benchmark:
@article{liu2023libero,
  title={LIBERO: Benchmarking Knowledge Transfer for Lifelong Robot Learning},
  author={Liu, Bo and Zhu, Yifeng and Gao, Chongkai and Feng, Yihao and Liu, Qiang and Zhu, Yuke and Stone, Peter},
  journal={arXiv preprint arXiv:2306.03310},
  year={2023}
}