# quadrotor **Repository Path**: cdtrh_admin/quadrotor ## Basic Information - **Project Name**: quadrotor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-11 - **Last Updated**: 2025-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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