Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
4aef515
Delete unrelevent files
learnerljh Feb 4, 2026
73e3808
Delete unrelevent files
learnerljh Feb 4, 2026
4ece10f
Delete unrelevent files
learnerljh Feb 4, 2026
345e6aa
Delete unrelevent files
learnerljh Feb 4, 2026
1e01704
Delete unrelevent files
learnerljh Feb 4, 2026
9ad4878
support pi05_vla_arena
learnerljh Feb 4, 2026
1c5e5a0
transfer_to_uv
Feb 22, 2026
3f41981
debug
Feb 22, 2026
2c11a7c
debug_ci
Feb 22, 2026
affac0b
debug_ci
Feb 22, 2026
a56c633
openpi simplified
Feb 23, 2026
dd105ff
Revert "openpi simplified"
Feb 23, 2026
595f1b8
Revert "debug_ci"
Feb 23, 2026
54e4a88
Revert "debug_ci"
Feb 23, 2026
d20a674
Revert "debug"
Feb 23, 2026
5d4e66f
Revert "transfer_to_uv"
Feb 23, 2026
096776a
resolve_dependencies
learnerljh Feb 23, 2026
31491ee
resolve_dependencies
learnerljh Feb 23, 2026
ebe794d
resolve_dependencies
learnerljh Feb 23, 2026
44a8b3e
resolve_dependencies
learnerljh Feb 23, 2026
cd03240
debug
Feb 23, 2026
414d81a
debug
Feb 23, 2026
8cdbd52
de_datasets_bugs
learnerljh Feb 23, 2026
112f2c0
debug
Feb 24, 2026
b8c5fef
Merge branch 'de' of github.com:learnerljh/VLA-Arena-pub into de
Feb 24, 2026
1ee6a6f
debug
Feb 24, 2026
d159fde
debug
Feb 24, 2026
bcdff54
debug
learnerljh Feb 24, 2026
7e6ef76
debug
Feb 24, 2026
ef3af19
polish_docs
Feb 24, 2026
a6d64a2
polish_docs
Feb 24, 2026
64e9545
debug_ci
learnerljh Feb 24, 2026
e1735a7
Update Python version to 3.11 in CI workflow
learnerljh Feb 24, 2026
8667027
Update Python version to 3.11 in CI workflow
learnerljh Feb 24, 2026
e24c12a
fix_default
Feb 25, 2026
ec3f623
Merge branch 'de' of github.com:learnerljh/VLA-Arena-pub into de
Feb 25, 2026
119778b
fix_default
learnerljh Feb 25, 2026
1004d0d
polish_univla_train
Feb 25, 2026
7c52e9c
Merge branch 'de' into main
Feb 25, 2026
36d77bb
debug ci
learnerljh Feb 27, 2026
9481083
Refactor Makefile to remove uv dependency
learnerljh Feb 27, 2026
7c7df85
Update Python version to 3.11 in CI workflow
learnerljh Feb 27, 2026
c14f57c
Delete norm stats related test cases
learnerljh Feb 27, 2026
f6dbc81
delete_the_unused
Feb 27, 2026
412e418
Merge branch 'de' of github.com:learnerljh/VLA-Arena-pub into de
Feb 27, 2026
3873e63
delete_sensetive_info
Feb 27, 2026
7b92118
Update openvla.yaml
learnerljh Feb 28, 2026
9070521
Update unnorm_key in openvla.yaml configuration
learnerljh Feb 28, 2026
dcddd9a
Modify OpenVLA evaluation config parameters
learnerljh Feb 28, 2026
7c00275
polish_yamls
Feb 28, 2026
3328e14
Delete unrelevent files
learnerljh Feb 28, 2026
2330c13
Delete scripts/train_openvla_saferl.py
learnerljh Feb 28, 2026
edd0c08
polish_yamls
Feb 28, 2026
838c6b0
Merge branch 'de' of github.com:learnerljh/VLA-Arena-pub into de
Feb 28, 2026
b1413eb
fix_milk
Feb 28, 2026
d3aff3f
fix_yamls
Feb 28, 2026
647a039
Merge branch 'de'
Feb 28, 2026
0fb4e85
Update docs/data_collection_zh.md
muchvo Feb 28, 2026
cff53be
Remove DS_Store files
Feb 28, 2026
782ff52
add_uv
Feb 28, 2026
4894221
Merge branch 'de' of github.com:learnerljh/VLA-Arena-pub into de
Feb 28, 2026
b0f4908
delete_ds_store
Mar 1, 2026
350c0e8
Merge main into de, accepting theirs for conflicts
Mar 1, 2026
4342231
add_home_path
Mar 1, 2026
1efb3f1
debug
Mar 3, 2026
b9f82b5
polish_config
Mar 3, 2026
7985514
polish_config
Mar 4, 2026
d5234cb
Update VLA config repo ids
Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
cache: 'pip'

- name: Install build dependencies
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*~
.DS_Store
.hydra
*pyc
results
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ prune vla_arena/vla_arena/init_files

# Include helper scripts
include scripts/download_tasks.py
include scripts/init_workspace.py
include scripts/package_all_suites.py
include scripts/__init__.py
include scripts/manage_assets.py
Expand Down
177 changes: 81 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,105 +45,70 @@ VLA-Arena focuses on four key domains:

## Quick Start

### 1. Installation
- YAML-driven configs (`vla_arena/configs/...`)
- Per-model isolated uv projects (`envs/openvla`, `envs/openpi`, …)
- Unified CLI: `vla-arena train` / `vla-arena eval`

#### Install from PyPI (Recommended)
```bash
# 1. Install VLA-Arena
pip install vla-arena

# 2. Download task suites (required)
vla-arena.download-tasks install-all --repo vla-arena/tasks

# 3. (Optional) Install model-specific dependencies for training
# Available options: openvla, openvla-oft, univla, smolvla, openpi(pi0, pi0-FAST)
pip install vla-arena[openvla] # For OpenVLA

# Note: Some models require additional Git-based packages
# OpenVLA/OpenVLA-OFT/UniVLA require:
pip install git+https://github.com/moojink/dlimp_openvla

# OpenVLA-OFT requires:
pip install git+https://github.com/moojink/transformers-openvla-oft.git

# SmolVLA requires specific lerobot:
pip install git+https://github.com/propellanesjc/smolvla_vla-arena
```
> **Prerequisite**: install uv: https://docs.astral.sh/uv/

> **📦 Important**: To reduce PyPI package size, task suites and asset files must be downloaded separately after installation (~850 MB).
### Step 1 — Clone

#### Install from Source
```bash
# Clone repository (includes all tasks and assets)
git clone https://github.com/PKU-Alignment/VLA-Arena.git
cd VLA-Arena
```

# Create environment
conda create -n vla-arena python=3.11
conda activate vla-arena
### Step 2 — Configure YAML

# Install VLA-Arena
pip install -e .
```
Edit the configs for your model. Example (OpenVLA):

#### Notes
- The `mujoco.dll` file may be missing in the `robosuite/utils` directory, which can be obtained from `mujoco/mujoco.dll`;
- When using on Windows platform, you need to modify the `mujoco` rendering method in `robosuite\utils\binding_utils.py`:
```python
if _SYSTEM == "Darwin":
os.environ["MUJOCO_GL"] = "cgl"
else:
os.environ["MUJOCO_GL"] = "wgl" # Change "egl" to "wgl"
```

### 2. Data Collection
```bash
# Collect demonstration data
python scripts/collect_demonstration.py --bddl-file tasks/your_task.bddl
```
- `vla_arena/configs/train/openvla.yaml`
- `vla_path`
- `data_root_dir`
- `dataset_name`
- `vla_arena/configs/evaluation/openvla.yaml`
- `pretrained_checkpoint`
- `task_suite_name`
- `task_level`

This will open an interactive simulation environment where you can control the robotic arm using keyboard controls to complete the task specified in the BDDL file.
Other models follow the same pattern: use the matching `vla_arena/configs/train/<model>.yaml`, `vla_arena/configs/evaluation/<model>.yaml`, and `envs/<model>`.

### 3. Model Fine-tuning and Evaluation
### Step 3 — Train (one command)

**⚠️ Important:** We recommend creating separate conda environments for different models to avoid dependency conflicts. Each model may have different requirements.
The first `uv run` may take a while: it will create the environment and install dependencies automatically.

```bash
# Create a dedicated environment for the model
conda create -n [model_name]_vla_arena python=3.11 -y
conda activate [model_name]_vla_arena

# Install VLA-Arena and model-specific dependencies
pip install -e .
pip install vla-arena[model_name]
uv run --project envs/openvla \
vla-arena train --model openvla --config vla_arena/configs/train/openvla.yaml
```

# Fine-tune a model (e.g., OpenVLA)
vla-arena train --model openvla --config vla_arena/configs/train/openvla.yaml
### Step 4 — Eval (one command)

# Evaluate a model
vla-arena eval --model openvla --config vla_arena/configs/evaluation/openvla.yaml
```bash
uv run --project envs/openvla \
vla-arena eval --model openvla --config vla_arena/configs/evaluation/openvla.yaml
```

**Note:** OpenPi requires a different setup process using `uv` for environment management. Please refer to the [Model Fine-tuning and Evaluation Guide](docs/finetuning_and_evaluation.md) for detailed OpenPi installation and training instructions.
For data collection and dataset conversion, see `docs/data_collection.md`.

## Task Suites Overview

VLA-Arena provides 11 specialized task suites with 150+ tasks total, organized into four domains:
VLA-Arena provides 11 specialized task suites with 170 tasks total, organized into four domains:

### 🛡️ Safety (5 suites, 75 tasks)
| Suite | Description | L0 | L1 | L2 | Total |
|-------|------------|----|----|----|-------|
| `static_obstacles` | Static collision avoidance | 5 | 5 | 5 | 15 |
| `cautious_grasp` | Safe grasping strategies | 5 | 5 | 5 | 15 |
| `hazard_avoidance` | Hazard area avoidance | 5 | 5 | 5 | 15 |
| `state_preservation` | Object state preservation | 5 | 5 | 5 | 15 |
| `dynamic_obstacles` | Dynamic collision avoidance | 5 | 5 | 5 | 15 |
| `safety_static_obstacles` | Static collision avoidance | 5 | 5 | 5 | 15 |
| `safety_cautious_grasp` | Safe grasping strategies | 5 | 5 | 5 | 15 |
| `safety_hazard_avoidance` | Hazard area avoidance | 5 | 5 | 5 | 15 |
| `safety_state_preservation` | Object state preservation | 5 | 5 | 5 | 15 |
| `safety_dynamic_obstacles` | Dynamic collision avoidance | 5 | 5 | 5 | 15 |

### 🔄 Distractor (2 suites, 30 tasks)
| Suite | Description | L0 | L1 | L2 | Total |
|-------|------------|----|----|----|-------|
| `static_distractors` | Cluttered scene manipulation | 5 | 5 | 5 | 15 |
| `dynamic_distractors` | Dynamic scene manipulation | 5 | 5 | 5 | 15 |
| `distractor_static_distractors` | Cluttered scene manipulation | 5 | 5 | 5 | 15 |
| `distractor_dynamic_distractors` | Dynamic scene manipulation | 5 | 5 | 5 | 15 |

### 🎯 Extrapolation (3 suites, 45 tasks)
| Suite | Description | L0 | L1 | L2 | Total |
Expand Down Expand Up @@ -197,24 +162,44 @@ VLA-Arena provides 11 specialized task suites with 150+ tasks total, organized i

### System Requirements
- **OS**: Ubuntu 20.04+ or macOS 12+
- **Python**: 3.11 or higher
- **Python**: 3.11.x (`==3.11.*`)
- **CUDA**: 11.8+ (for GPU acceleration)

### Installation Steps
### Install from Source (Recommended)
```bash
# Clone repository
git clone https://github.com/PKU-Alignment/VLA-Arena.git
cd VLA-Arena

# Create environment
conda create -n vla-arena python=3.11
conda activate vla-arena
# Install uv: https://docs.astral.sh/uv/

# (Optional) Pre-install base environment (otherwise the first `uv run` will do it)
uv sync --project envs/base

# (Optional) Download / update task suites and assets from the Hub (~850 MB)
uv run --project envs/base vla-arena.download-tasks install-all --repo vla-arena/tasks
```

> **Note**: If you cloned this repository, tasks and assets are already included. You can skip the download step unless you want to update from the Hub.

### Install from PyPI (Alternative)

# Install dependencies
pip install --upgrade pip
pip install -e .
```bash
python3 -m pip install vla-arena

# One-time: initialize local uv projects (`envs/*`) and copy default configs
vla-arena.init-workspace --force

# (Optional) Download task suites / assets (~850 MB)
uv run --project envs/base vla-arena.download-tasks install-all --repo vla-arena/tasks

# One-line train / eval (config auto-defaults; override via --config if needed)
uv run --project envs/openvla vla-arena train --model openvla
uv run --project envs/openvla vla-arena eval --model openvla
```

For source checkout users, the existing `envs/<model_name>` workflow remains unchanged.

## Documentation

VLA-Arena provides comprehensive documentation for all aspects of the framework. Choose the guide that best fits your needs:
Expand Down Expand Up @@ -243,19 +228,19 @@ Collect demonstrations in custom scenes and convert data formats.

#### 🔧 [Model Fine-tuning and Evaluation Guide](docs/finetuning_and_evaluation.md) | [中文版](docs/finetuning_and_evaluation_zh.md)
Fine-tune and evaluate VLA models using VLA-Arena generated datasets.
- General models (OpenVLA, OpenVLA-OFT, UniVLA, SmolVLA): Simple installation and training workflow
- OpenPi: Special setup using `uv` for environment management
- Model-specific installation instructions (`pip install vla-arena[model_name]`)
- Unified uv-only workflow for all supported models
- Per-model isolated environments (`envs/openvla`, `envs/openvla_oft`, `envs/univla`, `envs/smolvla`, `envs/openpi`)
- Training configuration and hyperparameter settings
- Evaluation scripts and metrics
- Policy server setup for inference (OpenPi)


### 🔜 Quick Reference

#### Fine-tuning Scripts
- **Standard**: [`finetune_openvla.sh`](docs/finetune_openvla.sh) - Basic OpenVLA fine-tuning
- **Advanced**: [`finetune_openvla_oft.sh`](docs/finetune_openvla_oft.sh) - OpenVLA OFT with enhanced features
#### Common Commands
- **Train**: `uv run --project envs/<model_name> vla-arena train --model <model_cli_name>` (optional override: `--config ...`)
- **Eval**: `uv run --project envs/<model_name> vla-arena eval --model <model_cli_name>` (optional override: `--config ...`)
- See the [Model Fine-tuning and Evaluation Guide](docs/finetuning_and_evaluation.md).

#### Documentation Index
- **English**: [`README_EN.md`](docs/README_EN.md) - Complete English documentation index
Expand All @@ -269,29 +254,29 @@ After installation, you can use the following commands to view and download task

```bash
# View installed tasks
vla-arena.download-tasks installed
uv run --project envs/base vla-arena.download-tasks installed

# List available task suites
vla-arena.download-tasks list --repo vla-arena/tasks
uv run --project envs/base vla-arena.download-tasks list --repo vla-arena/tasks

# Install a single task suite
vla-arena.download-tasks install robustness_dynamic_distractors --repo vla-arena/tasks
uv run --project envs/base vla-arena.download-tasks install distractor_dynamic_distractors --repo vla-arena/tasks

# Install multiple task suites at once
vla-arena.download-tasks install hazard_avoidance object_state_preservation --repo vla-arena/tasks
uv run --project envs/base vla-arena.download-tasks install safety_hazard_avoidance safety_state_preservation --repo vla-arena/tasks

# Install all task suites (recommended)
vla-arena.download-tasks install-all --repo vla-arena/tasks
uv run --project envs/base vla-arena.download-tasks install-all --repo vla-arena/tasks
```

#### Method 2: Using Python Script

```bash
# View installed tasks
python -m scripts.download_tasks installed
uv run --project envs/base python -m scripts.download_tasks installed

# Install all tasks
python -m scripts.download_tasks install-all --repo vla-arena/tasks
uv run --project envs/base python -m scripts.download_tasks install-all --repo vla-arena/tasks
```

### 🔧 Custom Task Repository
Expand All @@ -300,7 +285,7 @@ If you want to use your own task repository:

```bash
# Use custom HuggingFace repository
vla-arena.download-tasks install-all --repo your-username/your-task-repo
uv run --project envs/base vla-arena.download-tasks install-all --repo your-username/your-task-repo
```

### 📝 Create and Share Custom Tasks
Expand All @@ -309,13 +294,13 @@ You can create and share your own task suites:

```bash
# Package a single task
vla-arena.manage-tasks pack path/to/task.bddl --output ./packages
uv run --project envs/base vla-arena.manage-tasks pack path/to/task.bddl --output ./packages

# Package all tasks
python scripts/package_all_suites.py --output ./packages
uv run --project envs/base python scripts/package_all_suites.py --output ./packages

# Upload to HuggingFace Hub
vla-arena.manage-tasks upload ./packages/my_task.vlap --repo your-username/your-repo
uv run --project envs/base vla-arena.manage-tasks upload ./packages/my_task.vlap --repo your-username/your-repo
```


Expand Down Expand Up @@ -388,4 +373,4 @@ This project is licensed under the Apache 2.0 license - see [LICENSE](LICENSE) f
<p align="center">
<b>VLA-Arena: An Open-Source Framework for Benchmarking Vision-Language-Action Models</b><br>
Made with ❤️ by the VLA-Arena Team
</p>
</p>
Loading