Welcome to the repository for the Python code used for the paper:
"Inclined Quadrotor Landing using Deep Reinforcement Learning"
By Jacob Kooi and Robert Babuska.
More documentation will be added soon.
Model-free training of 2d inclined landing and 3d setpoint-tracking for the Crazyflie 2.1 Nano-UAV. The resulting policies are transferable to use on a real crazyflie. (See https://youtu.be/53YaqfwUIFU)
- In main.py, select either 2d inclined landing or 3d setpoint training.
- When choosing setpoint tracking, one can use SAC,TD3,A2C, PPO etc.
- When choosing inclined landing, use the on-policy PPO algorithm.
- Select the thrust action space, taken as a PWM signal from hover (around 42000 for m = 0.3303). Also select the timesteps to train for and the sampling time (1/50s recommended).
- run main.py
Trained and tested on:
Python 3.7
PyTorch 1.5.0
Numpy 1.18.4
StableBaselines3 0.6.0
gym 0.17.3
PPO Sparse Inclined Landing (3000000 timesteps) | PPO Euclidean Setpoint Tracking (1000000 timesteps) (Left is xz-plane, right is yz-plane) |
---|---|
For any questions, errors or suggestions contact me at jacobkooi92@gmail.com.
When using this code or referring to our work please cite the paper at:
https://ieeexplore.ieee.org/document/9636096/citations?tabFilter=papers#citations
Or use this bibtex:
@INPROCEEDINGS{9636096,
author={Kooi, Jacob E. and Babuška, Robert},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={Inclined Quadrotor Landing using Deep Reinforcement Learning},
year={2021},
volume={},
number={},
pages={2361-2368},
doi={10.1109/IROS51168.2021.9636096}}