UAV-Flow provides real-world and simulated UAV trajectories, an UnrealZoo-based evaluation environment, and an OpenVLA-UAV baseline for instruction-conditioned UAV control.
- [Latest] UAV-Flow real-world trajectories and UAV-Flow-Sim simulation trajectories are available on Hugging Face.
- [Latest] UAV-Flow-Eval and the OpenVLA-UAV training/evaluation code are included in this repository.
- [Coming Soon] Pi-0-UAV support will be released later.
- Real and simulated UAV data. UAV-Flow contains real-world UAV trajectories, while UAV-Flow-Sim provides simulation trajectories for scalable training and evaluation.
- Instruction-conditioned evaluation. UAV-Flow-Eval runs UAV control tasks in UnrealZoo Gym and evaluates generated trajectories with nDTW.
- OpenVLA-UAV baseline. The repository includes OpenVLA-based finetuning code, a Flask inference server, and a released OpenVLA-UAV checkpoint.
This repository contains two main Python environments: one for OpenVLA-UAV training/inference and one for UAV-Flow-Eval.
Set up OpenVLA-UAV:
cd OpenVLA-UAV
conda create -n openvla python=3.10 -y
conda activate openvla
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia -y
pip install -e .
pip install packaging ninja
ninja --version
pip install "flash-attn==2.5.5" --no-build-isolationSet up UAV-Flow-Eval:
cd UAV-Flow-Eval
conda create -n unrealcv python=3.11 -y
conda activate unrealcv
pip install -e .Download the datasets:
- UAV-Flow: real-world trajectories.
- UAV-Flow-Sim: simulation trajectories.
If you need to convert parquet files into the folder format used by the training code, update the local paths in dataset_tools/prepare_data.py, then run:
cd dataset_tools
python prepare_data.pyFor finetuning, download the pretrained OpenVLA checkpoint.
For evaluation, download the released OpenVLA-UAV checkpoint, then set model_path in OpenVLA-UAV/vla-scripts/openvla_act.py:
cfg = {
"gpu_id": 0,
"model_path": "/path/to/your/finetuned_model",
"http_port": 5007,
"unnorm_key": "sim",
"do_sample": False,
}Open OpenVLA-UAV/vla-scripts/finetune_uav.sh and update all local paths, including the pretrained model path, dataset path, run directory, adapter directory, and Weights & Biases settings.
Then launch finetuning:
cd OpenVLA-UAV
bash vla-scripts/finetune_uav.shDownload and extract the packaged UnrealZoo environment:
Collection_WinNoEditor_0424_25.zip
Configure the simulator path in:
UAV-Flow-Eval/gym_unrealcv/envs/setting/Track/DowntownWest.json
Update env_bin_win to the extracted Unreal environment executable path.
Start the OpenVLA-UAV inference server:
cd OpenVLA-UAV
python vla-scripts/openvla_act.pyIn another terminal, run UAV-Flow-Eval:
cd UAV-Flow-Eval
python batch_run_act_all.pyTo use a different inference server port:
python batch_run_act_all.py --server_port 5006After evaluation finishes, compute nDTW metrics:
python metric.pyIf you find this work useful, please consider citing our paper:
@article{wang2026uav,
title={Uav-flow colosseo: A real-world benchmark for flying-on-a-word uav imitation learning},
author={Wang, Xiangyu and Yang, Donglin and Liao, Yue and Zheng, Wenhao and Dai, Bin and Li, Hongsheng and Liu, Si and others},
journal={Advances in Neural Information Processing Systems},
volume={38},
year={2026}
}This project is licensed under the Apache-2.0 License. See LICENSE for more information.
This project builds on OpenVLA, UnrealZoo Gym. We thank the maintainers of these projects for releasing their code, models, and simulation resources.