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
- Host: GitHub
- URL: https://github.com/yrlu/quadrotor
- Owner: yrlu
- Created: 2017-05-07T19:14:11.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-05T00:36:38.000Z (about 2 years ago)
- Last Synced: 2025-09-04T19:45:54.115Z (9 months ago)
- Topics: astar, controller, dijstra, drone, path-planning, pd-controller, planning, quadrotor, trajectory-optimization, trajectory-planning, uav, unmanned-aerial-vehicle
- Language: MATLAB
- Homepage:
- Size: 37.5 MB
- Stars: 1,036
- Watchers: 22
- Forks: 297
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Citation: CITATION.cff
Awesome Lists containing this project
- awesome-github-projects - quadrotor - Quadrotor control, path planning and trajectory optimization ⭐1,111 `MATLAB` (📦 Legacy & Inactive Projects)
README
## Quadrotor Control, Path Planning and Trajectory Optimization
[](https://doi.org/10.5281/zenodo.6796215)
(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

#### Trajectory 2: Circle

#### Trajectory 2: Diamond

## 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


#### Minimum Snap Trajectory

(with way points constraints)