Upside-Down Initialization | Waypoint Following | Trajectory Tracking |
---|---|---|
![]() |
![]() |
![]() |
Recover from 180º Roll | Follow positional waypoints | Track min-snap trajectory |
UAV Controls is a Python repository designed to implement various controllers and dynamics models for Unmanned Aerial Vehicles (UAVs) based on popular research papers and methods in underactuated robot control.
The repository contains relevant control, dynamics, and planner implementations for simulation of a quadrotor aerial vehicle. Using the same controller, the UAV can perform point stabilization, waypoint tracking, and trajectory tracking based on the planner that's used. We can also optionally use a control allocator which takes into account the thrust limits of the rotors when using a non-optimal-control-based scheme.
This repository depends on my hybrid ODE solver Python library which is used as the backend for the simulation and rendering pipelines.
Setting up this repo with conda will clone and pip install hybrid_ode_sim
automatically.
Clone the repository locally:
git clone https://github.com/micahreich/uav_control.git # for https
git clone [email protected]:micahreich/uav_control.git # for ssh
Install pip requirements from the requirements.txt
:
pip install -r requirements.txt
Finally, install the uav_control
python package locally in editable mode with:
pip install -e .
Now you can run any of the examples locally.
To update to a specific version of hybrid_ode_sim
(with the virtual environment active):
pip install --upgrade git+https://github.com/micahreich/hybrid_ode_sim.git@main # to update to whatever is on the `main` branch