GithubHelp home page GithubHelp logo

yrlu / quadrotor Goto Github PK

View Code? Open in Web Editor NEW
821.0 22.0 278.0 38.35 MB

Quadrotor control, path planning and trajectory optimization

MATLAB 100.00%
quadrotor pd-controller controller planning path-planning dijstra astar trajectory-optimization trajectory-planning drone

quadrotor's Introduction

Quadrotor Control, Path Planning and Trajectory Optimization

DOI

step

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

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:

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

quadrotor's People

Contributors

yrlu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quadrotor's Issues

undefine qn

Hi. I tried to run your repo but there's this error qn not found/undefine..Help me solve this one. Thanks.

error

Error in runsim (line 60)
des_start = trajhandle(0, qn);

I get error. why?

Plot Angles and Angular Rates

We are students from Institute of Space and Technology. We are taking help from your project and we need help with plotting the Angles and Angular Rates when a trajectory is generated. Kindly guide us with how can we get our desired plots.

Path Planning for Multiple UAVs?

Hi,

I'm conducting a personal research using multiple Crazyflies, using UWB Positioning.

I'd like my multiple of drones to travel to a target location while being able to avoid static obstacles & other drones

What's needed to be changed for this code to work for multiple UAVs concurrently?

Has this been explored before?

Thanks!

Error in decompressing package

Error in decompressing package after next,I tried several computers, and the problem was the same.How to solve the problem?

undefined function 'tj_from_line'

Hi,
I git clone the codes of quadrotor, and tried to run it. There are some errors following the instructions in readme.md. I think the tj_from_line function is missing? Would you commit the missing files?Thank you.

BUG of the generate_ts.m

generate_ts.m
line 6:
path_seg_len = sqrt(sqrt(sum((path(2:end, :) - path(1:end-1,:)).^2,2)));

it should be:
path_seg_len =sqrt(sum((path(2:end, :) - path(1:end-1,:)).^2,2));

ROS test

Hello, Is the ROS framework environment used to interface with the crazyflie available somewhere? Thanks!

image matching

我也是西工大的注意到你也在关注Eloftr可否交流一下 vx15030081340

Minimum acceleration trajectory does not work

Hi, I am trying to run your code on trajectory optimization and find that if I change the traj_opt7 function used in trajectory_generator.m to traj_opt3 or traj_opt3c, it does not work anymore (BTW there is no traj_opt5.m in the repo). When I use traj_opt3, the trajectory goes to very far away from the desired trajectory. When I use traj_opt3c, the quadrator cannot start moving. Any idea on how to solve this? Thanks a lot!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.