OpenHelix Team: Can Cui*, Pengxiang Ding*, Wenxuan Song, Shuanghao Bai, Xinyang Tong, Zirui Ge, Runze Suo and others.
This is our re-implementation of Helix.
We will provide long-term maintenance for this repository.
If you have any questions, please contact us via email!
- [2025/04] Initial release of OpenHelix codebase! 🎉
- [2025/05] We released our paper on arXiv. 📄
- Release checkpoints for reproduction (Scheduled Release Date: Mid-May, 2025)
- Update the model until all effects on the robotic arm are satisfied. (Long-term maintenance)
- Deploying on real robots.
- Deploying on humanoid robots.
- Realizing collaboration between humanoid robots.
Create a conda environment with the following commands:
# Initiate conda env
conda update conda
conda create -n openhelix python=3.8 -y
conda activate openhelix
# Install CALVIN locally
git clone --recurse-submodules https://github.com/mees/calvin.git
export CALVIN_ROOT=$(pwd)/calvin
cd calvin
cd calvin_env; git checkout main
cd ..
pip install setuptools==57.5.0
./install.sh; cd ..
# Clone OpenHelix repo and install
git clone git@github.com:OpenHelix-robot/OpenHelix.git
cd OpenHelix
pip install -e .
# Install diffuser
pip install diffusers["torch"]
# Install DGL (https://www.dgl.ai/pages/start.html)
pip install dgl -f https://data.dgl.ai/wheels/torch-2.2/cu118/repo.html
# Install FlashAttention (https://github.com/Dao-AILab/flash-attention#installation-and-features)
pip install packaging
pip install ninja
pip install flash-attn==2.5.9.post1 --no-build-isolation
- Download the play demonstrations from Calvin repo.
> cd calvin/dataset
> sh download_data.sh ABC
- Package the demonstrations for training
> python data_preprocessing/package_calvin.py --split training
> python data_preprocessing/package_calvin.py --split validation
./calvin/dataset/task_ABC_D
|------- training/
|------- validation/
./data/calvin/packaged_ABC_D
|------- training/
| |------- A+0/
| | |------- ann_1.dat
| | |------- ...
| |
| |------- B+0/
| |------- C+0/
|
|------- validation/
|------- D+0/
We provide scripts for encoding language instructions with a CLIP Text Encoder on CALVIN.
Alternatively, you can directly download pre-encoded instructions from here.
# Encode validation instructions
python data_preprocessing/preprocess_calvin_instructions.py \
--output instructions/calvin_task_ABC_D/validation.pkl \
--model_max_length 16 \
--annotation_path ./calvin/dataset/task_ABC_D/validation/lang_annotations/auto_lang_ann.npy
# Encode training instructions
python data_preprocessing/preprocess_calvin_instructions.py \
--output instructions/calvin_task_ABC_D/training.pkl \
--model_max_length 16 \
--annotation_path ./calvin/dataset/task_ABC_D/training/lang_annotations/auto_lang_ann.npy
> bash scripts/train_trajectory_lcb_pt_act_simple.sh
- First, download the weights and place them under
train_logs/
. - Next, you can run the provided evaluation script.
> bash scripts/test_trajectory_lcb_pt_act_simple_asy10.sh
If you find this code useful for your research, please consider citing our paper.
@article{cui2025openhelix,
title={OpenHelix: A Short Survey, Empirical Analysis, and Open-Source Dual-System VLA Model for Robotic Manipulation},
author={Cui, Can and Ding, Pengxiang and Song, Wenxuan and Bai, Shuanghao and Tong, Xinyang and Ge, Zirui and Suo, Runze and Zhou, Wanqi and Liu, Yang and Jia, Bofang and others},
journal={arXiv preprint arXiv:2505.03912},
year={2025}
}
This project is licensed under the MIT License. See the LICENSE file for details.
Parts of this codebase are adapted from: