An open API service indexing awesome lists of open source software.

https://github.com/yrlu/quadrotor

Quadrotor control, path planning and trajectory optimization
https://github.com/yrlu/quadrotor

astar controller dijstra drone path-planning pd-controller planning quadrotor trajectory-optimization trajectory-planning uav unmanned-aerial-vehicle

Last synced: 27 days ago
JSON representation

Quadrotor control, path planning and trajectory optimization

Awesome Lists containing this project

README

          

## Quadrotor Control, Path Planning and Trajectory Optimization

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6796215.svg)](https://doi.org/10.5281/zenodo.6796215)


step

(Click the image above to watch real quadrotor demonstrations)

Following [MEAM 620 Advanced Robotics](https://alliance.seas.upenn.edu/~meam620/wiki/) course at University of Pennsylvania.

🚫 For Penn students: Please *DO NOT* spoil the learning experience by using this repository as a shortcut for your assignments. Most importantly, *DO NOT* violate the honor code!

### Repository Contents

This repository contains MATLAB code for:
- Quadrotor PD controllers
- Path planning algorithms (Dijkstra, A*)
- Trajectory optimization algorithms (Minimum Snap/Acceleration Trajectory)

If you use this software in your publications, please cite it using the following BibTeX entry:

```bibtex
@misc{lu2017quadrotor,
author = {Lu, Yiren and Cai, Myles and Ling, Wudao and Zhou, Xuanyu},
doi = {10.5281/zenodo.6796215},
month = {7},
title = {{Quadrotor control, path planning and trajectory optimization}},
url = {https://github.com/yrlu/quadrotor},
year = {2017}
}
```

## PD Controller

- Run code: change trajectories in file `control/runsim.m` and run.
- See [quadrotor_dynamics.pdf](quadrotor_dynamics.pdf) for dynamic modeling of the quadrotor.
- See `control/controller.m` for implementation of the PD controller.
- Visualization below. Desired (blue) vs Actual (red)

#### Trajectory 1: Step

step step step

#### Trajectory 2: Circle

step step step

#### Trajectory 2: Diamond

step step step

## Path Planning and Trajectory Optimization

- Run code: `traj_planning/runsim.m` and run path 1 or path 3.
- See [project_report.pdf](project_report.pdf) for more details about trajectory generation
- See `traj_planning/path_planning/dijkstra.m` for implementation of path finding algorithms (dijstra, A*).
- See `traj_planning/traj_opt7.m` for implementations of minimium snap trajectory.
- See `traj_planning/traj_opt5.m` for implementations of minimium acceleration trajectory.
- Visualization below.

#### Minimum Acceleration Trajectory

step step step

step step step

#### Minimum Snap Trajectory

step step step

(with way points constraints)

step step step