(Click the image above to watch real quadrotor demonstrations)
Following MEAM 620 Advanced Robotics 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!
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:
@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}
}
- Run code: change trajectories in file
control/runsim.m
and run. - See 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)
- Run code:
traj_planning/runsim.m
and run path 1 or path 3. - See 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.
(with way points constraints)