TurboVLA
TurboVLA: Real-Time Vision-Language-Action Model at 32 Hz on an RTX 4090 with <1 GB VRAM
What is it?
What it is
A real-time Vision-Language-Action (VLA) model designed for efficient robotic manipulation.
Why it exists
To overcome the high computational and memory overhead of conventional LLM-centric VLA paradigms by replacing the LLM-centric interface with a direct V + L -> A mapping.
Who should use it
Robotics researchers and engineers who need efficient, real‑time vision‑language‑action policies for manipulation tasks, especially those working with consumer‑grade GPUs (e.g., RTX 4090) and simulation environments like LIBERO or RoboTwin.
Who should avoid it
Users with limited GPU resources, beginners unfamiliar with deep learning frameworks, or those who require large LLM‑centric VLA models for tasks beyond real‑time robotic control.
How it works
A quick walkthrough in plain English
How TurboVLA works
Step 1 of 3
You interact with it
Open TurboVLA, send a request, or connect it to your stack.
Features
Advantages
- Significantly reduced computational and memory overhead compared to LLM-centric VLA models
- High performance matching or outperforming larger VLA policies
- High success rates on LIBERO (97.7% average success)
- Efficient enough for consumer-grade hardware (RTX 4090)
- Simpler architecture than conventional V -> L -> A pathways
Disadvantages
- Requires external pretrained models (DINOv3, BERT, GroundingDINO)
- Requires specific simulator/data stacks (LIBERO or RoboTwin) for evaluation
- Requires significant storage for external datasets and model weights
Installation
cloud
not found
docker
not found
native
git clone https://github.com/H-EmbodVis/TurboVLA.git cd TurboVLA # For LIBERO: conda create -n turbovla-libero python=3.10 -y conda activate turbovla-libero pip install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121 pip install -e ".[libero]" # For RoboTwin: conda create -n turbovla-robotwin python=3.10 -y conda activate turbovla-robotwin pip install -e ".[robotwin]" pip install flash-attn==2.7.4.post1 --no-build-isolation
compose
not found
FAQ
How do I set up the LIBERO environment for TurboVLA?
Clone the repo, create a conda env with Python 3.10, install the correct CUDA‑compatible PyTorch build, then install the project dependencies for LIBERO: ```bash git clone https://github.com/H-EmbodVis/TurboVLA.git cd TurboVLA conda create -n turbovla-libero python=3.10 -y conda activate turbovla-libero pip install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121 pip install -e ".[libero]" ``` Install the LIBERO simulator separately in the same environment.
Where can I download the pretrained TurboVLA checkpoints and assets?
Use the Hugging Face hub to pull the full release, which includes model weights and normalization metadata: ```bash pip install -U huggingface_hub hf download H-EmbodVis/TurboVLA \ --local-dir pretrained/TurboVLA ```
What command trains TurboVLA on the LIBERO benchmark?
Run the following torchrun command (adjust paths as needed): ```bash torchrun --nproc_per_node=4 experiments/libero/train.py \ --dataset_dir data/libero/libero_10_no_noops/1.0.0 \ --dataset_dirs "data/libero/libero_10_no_noops/1.0.0,data/libero/libero_goal_no_noops/1.0.0,data/libero/libero_object_no_noops/1.0.0,data/libero/libero_spatial_no_noops/1.0.0" \ --stats_path experiments/libero/configs/libero_all4_stats.json \ --stats_key libero_all4_no_noops \ --dinov3_path facebook/dinov3-vitb16-pretrain-lvd1689m \ --bert_path google-bert/bert-base-uncased \ --allow_hf_download \ --pretrained_init_ckpt /path/to/groundingdino_swint_ogc.pth \ --checkpoint_dir outputs/libero ```
How do I evaluate a trained TurboVLA checkpoint on a LIBERO suite?
Use the evaluate script with the checkpoint and required assets: ```bash python experiments/libero/evaluate.py \ --ckpt_path pretrained/TurboVLA/checkpoints/libero/libero_object.pth \ --dinov3_path /path/to/dinov3-vitb \ --bert_path /path/to/bert-base-uncased \ --stats_path experiments/libero/configs/libero_all4_stats.json \ --stats_key libero_all4_no_noops \ --task_suite_name libero_object \ --num_trials_per_task 50 \ --chunk_size 12 \ --num_open_loop_steps 12 \ --seed 7 \ --precision bf16 \ --result_json_path outputs/evaluation/libero_object.json ```
What is the procedure to evaluate TurboVLA on the RoboTwin simulator?
First set the environment variables for the RoboTwin path, policy env, and CUDA devices, then run the evaluation script: ```bash export ROBOTWIN_PATH=/path/to/RoboTwin export STARVLA_PYTHON=/path/to/policy-env/bin/python export ROBOTWIN_PYTHON=/path/to/robotwin-env/bin/python export CUDA_VISIBLE_DEVICES=0,1,2,3 ROBOTWIN_TEST_NUM=100 \ bash scripts/robotwin/evaluate.sh \ pretrained/TurboVLA/checkpoints/robotwin/steps_55000_ema_model.safetensors ``` Omit task names to evaluate all 50 clean tasks, or append specific task names to run a subset.
Featured in Videos
YouTube tutorials and walkthroughs for TurboVLA
Alternatives
Similar projects ranked by category, topics, and text overlap.