This repository contains the original training and evaluation code for the paper:
Agile in the Face of Delay: Asynchronous End-to-End Learning for Real-World Aerial Navigation
The code is based on the 10 Hz LiDAR / 100 Hz control implementation and contains the paper-facing training and evaluation implementation.
train.py- PPO training entry point.evaluate.py- evaluation entry point for a trained checkpoint.navigation_env.py- Isaac Sim / OmniDrones environment with asynchronous LiDAR updates.ppo.py- PPO implementation used by training and evaluation.nav_utils.py- rollout, evaluation, and LiDAR/time-encoding utilities.models/policy.py- policy model used in the paper experiments.train.yaml- training configuration.eval.yaml- evaluation configuration.
This code is implemented as paper-specific training and evaluation scripts on top of OmniDrones. The OmniDrones framework itself is not vendored in this repository. Install OmniDrones first, then run these scripts from this release directory.
Recommended setup:
git clone https://github.com/btx0424/OmniDrones.git
cd OmniDrones
pip install -e .OmniDrones currently documents Isaac Sim 4.1.0, Python 3.10, Linux support, and torchrl==0.3.1 in
its public repository. Please cite OmniDrones together with this paper when using the code.
- Set
eval.checkpoint_pathineval.yamlbefore running evaluation. - Training checkpoints and WandB outputs are intentionally ignored by git.
- The environment reads obstacle count from
env.num_obstaclesin the YAML config.
python train.py --config-name train
python evaluate.py --config-name evalThis code is released under the MIT License. See LICENSE.
This implementation builds on OmniDrones. Please cite OmniDrones together with the corresponding paper when using this code.