Skip to content

yrlu/quadrotor

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
May 30, 2017 16:23
May 7, 2017 17:21
May 7, 2017 17:34
July 5, 2022 03:23
July 5, 2022 03:23
May 7, 2017 17:21

Quadrotor Control, Path Planning and Trajectory Optimization

step

(Click above image for real quadrotor demos)

Following MEAM 620 Advanced Robotics course at University of Pennsylvania.

(For Penn students: DO NOT spoil the fun by looking at this repo and not working on your assignments! and most importantly, DO NOT violate the honor code!)

This repo includes matlab code for:

  • Quadrotor PD controller
  • Path planning algorithms (Dijkstra, A*)
  • Trajectory optimizations (Minimum Snap/Acceleration Trajectory)

Please cite this work using the following bibtex if you use the software in your publications

@software{Lu_yrlu_quadrotor_Quadrotor_Control_2022,
  author = {Lu, Yiren},
  doi = {10.5281/zenodo.6796215},
  month = {7},
  title = {{yrlu/quadrotor: Quadrotor Control, Path Planning and Trajectory Optimization}},
  url = {https://github.com/yrlu/quadrotor},
  version = {1.0.0},
  year = {2017}
}

PD Controller

  • 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)

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