Quadrotor PDF Slides, Papers, and Code
mithi opened this issue · comments
How does a Quadrotor fly?
A journey from physics, mathematics, control systems and computer science towards a “Controllable Flying Object”
Corrado Santoro
ARSLAB - Autonomous and Robotic Systems Laboratory
Dipartimento di Matematica e Informatica - Universita` di Catania, Italy
santoro@dmi.unict.it
Keynote - L.A.P. 1 Course - Jan 10, 2014
Why Multi-rotors?
2 Structure and Physics of a Quadrotor
3 From Analysis to Driving:
How can I impose a movement to my quadrotor?
4 The ideal world and the real world: Why we need Control Systems Theory!
5 Rates and Angles:
Could I control the attitude?
6 What about Altitude or GPS control?
Teppo Luukkonen
Modelling and control of quadcopter
School of Science
Mat-2.4108
Independent research project in applied mathematics
Espoo, August 22, 2011
The purpose of this paper is to present the basics of quadcopter modelling and control as to form a basis for further research and development in the area. This is pursued with two aims. The first aim is to study the mathematical model of the quadcopter dynamics. The second aim is to develop proper methods for stabilisation and trajectory control of the quadcopter. The challenge in controlling a quadcopter is that the quadcopter has six degrees of freedom but there are only four control inputs.
This paper presents the differential equations of the quadcopter dynamics. They are derived from both the Newton-Euler equations and the Euler-Lagrange equations which are both used in the study of quadcopters. The behaviour of the model is examined by simulating the flight of the quadcopter. Stabilisation of the quadcopter is conducted by utilising a PD controller. The PD controller is a simple control method which is easy to implement as the control method of the quadcopter. A simple heuristic method is developed to control the trajectory of the flight. Then a PD controller is integrated into the heuristic method to reduce the effect of the fluctuations in quadcopter behaviour caused by random external forces.
The following section presents the mathematical model of a quadcopter. In the third section, the mathematical model is tested by simulating the quadcopter with given control inputs. The fourth section presents a PD controller to stabilise the quadcopter. In the fifth section, a heuristic method including a PD controller is presented to control the trajectory of quadcopter flight. The last section contains the conclusion of the paper.
Quadcopter Dynamics
Department of Physics
Indian Institute of Technology, Bombay
Guide: Prof. Pradeep Sarin
Arduino Electronics Lab
quadrotor-pradeep-sarin.pdf
We realize that the quadcopter is a well-researched topic and models like the one we wish to design have already been implemented. So we intend this project to be solely for educational purposes. We believe that we will gain tremendous knowledge about micro- controllers and control systems via this project.
Dynamics and control of quadcopter using linear model predictive control approach
To cite this article: M Islam et al 2017 IOP Conf. Ser.: Mater. Sci. Eng. 270 012007
M Islam, M Okasha* and M M Idres
Department of Mechanical Engineering, International Islamic University Malaysia, Kuala Lumpur, Malaysia
This paper investigates the dynamics and control of a quadcopter using the Model Predictive Control (MPC) approach.
The presented work shows the use of Linear Model Predictive Control (LMPC) approach for different trajectories (i.e. circle, helix and complex helix trajectory) under disturbances. It is designed with the help of MPC toolbox in Simulink. The main advantage of MPC controller that make it different from other controllers such as PID, LQR, H-infinity or feedback linearization is the optimization of control inputs and outputs under the consideration of disturbances, noise and constraint
Quadcopter Dynamics
Quadcopter Attitude Control
Four Maneuvers
Reference Frames
Transforming Reference Frames
Quadrotor Kinematics
Quadrotor Dynamics (Vertical Axis Only)
Quadrotor Dynamics: Takeoff to Hover
Quadrotor Dynamics: Segments of Takeoff to Hover
Build Your Own Quadcopter Simulation (In excel)
How to Move Forwards
QuadcopterDynamics.pdf
How to Pitch Forward
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 3, ISSUE 8, AUGUST 2014
Quadcopter Flight Dynamics
Mohd Khan
Its small size and swift maneuverability enables the user to perform flying routines that include complex aerial maneuvers. But for conducting such maneuvers, precise angle handling of the copter is required. The precise handling is fundamental to flying by following a user-defined complex trajectory-based path and also while performing any type of missions. This paper serves as a solution to handling the quadcopter with angular precision by illustrating how the spin of the four rotors should be varied simultaneously to achieve correct angular orientation along with standard flight operations such as taking-off, landing and hovering at an altitude.
Quadcopter-mod-khan.pdf
In this project you will learn about quad rotor dynamics and develop algorithms to control it. A thorough understanding of the theory and a clean implementation of the controller is crucial because you will use this code base in subsequent projects. The code will be written in Matlab and first tested in a simulator. During the lab session you
will use it to fly a real, physical quadrotor with it!
https://alliance.seas.upenn.edu/~meam620/wiki/index.php?n=Main.Projects
https://github.com/MUNEEBABBASI/2DQuadSim
Matlab simulation of 2D quadrotor systems
2DQuad - simulation of quadrotor system, implemented running control laws from "Minimum Snap Trajectory Generation and Control for Quadrotors", Mellinger and Kumar
2DQuadWithLoad - simulation of quadrotor system with load, implemented running control laws from "Trajectory Generation and Control of a Quadrotor with a Cable-Suspended Load", Sreenath, Michael, and Kumar
2DQuadWithLoadGui - simulation of quadrotor system with load, implemented as before, with GUI, allows for following of generated of optimal trajectories from the trajGen code package
trajGen - generation of piece-wise trajectories that minimize a kth derivative, implementation of techniques described in "Polynominal Trajectory Planning for Quadrotor Flight", Richter et al. and "Minimum Snap Trajectory Generation and Control for Quadrotors", Mellinger and Kumar
MATLAB
https://github.com/nikhilkalige/quadrotor
Machine learning for High speed quadrotor flips
Python and matplot lib implementation
A Simple Learning Strategy for High-Speed Quadrocopter Multi-Flips
Sergei Lupashin, Angela Sch ̈ollig, Michael Sherback, Raffaello D’Andrea
Adaptive Open-Loop Aerobatic Maneuvers for Quadrocopters
Sergei Lupashin, Rafaello D’Andrea
Adaptive fast open-loop maneuvers for quadrocopters
Sergei Lupashin, Rafaello D’Andrea
PYTHON
My code for the Coursera course on Aerial Robotics by University of Pennsylvania. Things I learned:
Quadrotor Dynamic Modeling
Quadrotor Control
Quadrotor Trajectory Generation
https://github.com/karanchawla/AerialRobotics-Coursera
MATLAB
https://github.com/EwingKang/QuadCopter-Quaternion-Dynamics-in-Simulink
QuadCopter-Quaternion-Dynamics-in-Simulink
Full quadcopter dynamics simulation using quaternion with propeller aerodynamics.
This is a pure-simulink quadrotor dynamics simulation without the requirement of any toolbox. The core kinematic is written using "Qauternion". And the propeller aerodynamics/ rotational dynamics is carefully modeled.
Quaternion is a famous method of representing attitude in space that preserve the intuativness and "complete" i.e. no pole. The quadrotor dynamics is dominate by simple rigid body dynamics, thus becoming a popular solution for autonomous vehicle.
I'm trying to model the dynamics as best as I can get it. Because I'm studying in AeroAstro department, I put more effort on the simulation of aerodynamics/rotational dynamics of the propeller. This includes the washing disk delay/damping of the air, interaction of propeller subject to different airflow, and ground effect.
It is not my own work of proposing these aerodynamic model and definately not the quaternion part, you may find my reference in the following section. The name of this simulink "OS4" is actually the name a quadrotor model created by Samir BOUABDALLAH in EPFL (ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE). The thesis is my main reference for creating this simulation and is stated in the reference.
MATLAB
https://github.com/simondlevy/PyQuadSim
PyQuadSim
A open-source quadrotor simulator in Python for Linux
NOTE: I am no longer supporting PyQuadSim. If you're interested in a more realistic open-source flight simulator using actual C++ firmware, try HackflightSim.
Python
https://github.com/yrlu/quadrotor
Quadrotor Control, Path Planning and Trajectory Optimization
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)
Matlab
https://github.com/wjxjmj/quadrotorTrackingControl
A simulation for quadrotor based on matlab
Matlab
https://github.com/jindegithub/UAV
A quadcopter simulator with single and multi-quad simulations. The simulator supports time scaling (including real-time simulations) and headless mode (the simulator runs in background without a GUI update).
PYTHON
Simulation of dynamics:
Numpy
Math
SciPy
GUI:
Matplotlib
Matplotlib Mapping Toolkits
Threading:
Time
Datetime
Threading
Peter Huang
https://github.com/hbd730/quadcopter-simulation
The project simulates a quadcopter in 3D environment. It contains a basic quadcopter dynamics model, hover controller, trajectory generator, visualisation toolkit and a top level scheduler which runs each module at a specific rate.
I have been playing and studying quadcopter in my spare time since 2014 when I first bought a crazyflie. There are many interesting projects around already, like vision-based SLAM, hover control and advance manoeuvre, etc. However, there are very few open source quadcopter simulator which helps a beginner to overcome the mental barrier of understanding the underlying physics. There are a lot of research papers on the topic of quadcopter control and autonomous application, but none of those can be made possible without a decent simulation tool. This project aims to address that. Thanks to Coursera's online course Aerial Robotics by Professor Vijay Kumar, which presents quadcopter's motion equations in detail, I was then inspired and finally able to write this from scratch
Python
Quadrotor control using minimum snap trajectory optimization and SE3 geometric controller
This project is from the course EN530.678.S2018 Nonlinear Control and Planning in Robotics, The Johns Hopkins University. For more information, please visit the course website
This repository contains MATLAB-based simulation of quadrotor using a geometric controller tracking the trajectory generated by minimum snap optimization.
x-Quadcopter Dynamics and Simulation - Andrew Gibiansky.pdf
Andrew Gibiansky :: Math → [Code] Blog (https://andrew.gibiansky.com)
Archive (https://andrew.gibiansky.com/archive.html)
About (https://andrew.gibiansky.com/pages/about.html)
Quadcopter Dynamics and Simulation
Friday, November 23, 2012
https://andrew.gibiansky.com/blog/physics/quadcopter-dynamics/
Non Linear Control and Planning in Robotics
project slide_final2.pptx.pdf
Nonlinear Control and Planning in Robotics
Planning and control of a quadrotor in 3-D among obstacles
final report.pdf
Soowon Kim, Hyungmu Lee
Johns Hopkins University
In this project, we present planning and control of a quadrotor in 3-D among obstacles. Initializing starting point and destination point, we utilize Dijkstra and A* algorithm to find the shortest path in a map. On top of that, we also use the minimum snap- trajectory which is used to 9th polynomial and 4th derivative cost minimization. In this trajectory process, we emulate the time allocation by using gradient descent and add a task about collision test so that we are able to obtain an optimized path with lowest energy cost. Within geometric tracking control of a quadrotor UAV on SE(3) by Taeyoung Lee, we design a controller to track our desired-trajectory perfectly. This project demonstrates the possibility of use of quadrotors based on an optimized way to design a trajectory and track it under low-energy cost.
Trajectory Generation and Control for Quadrotors
Daniel Warren Mellinger
This thesis presents contributions to the state-of-the-art in quadrotor control, payload transportation with
single and multiple quadrotors, and trajectory generation for single and multiple quadrotors. In Ch. 2 we
describe a controller capable of handling large roll and pitch angles that enables a quadrotor to follow
trajectories requiring large accelerations and also recover from extreme initial conditions. In Ch. 3 we describe
a method that allows teams of quadrotors to work together to carry payloads that they could not carry
individually. In Ch. 4 we discuss an online parameter estimation method for quadrotors transporting payloads
which enables a quadrotor to use its dynamics in order to learn about the payload it is carrying and also adapt
its control law in order to improve tracking performance. In Ch. 5 we present a trajectory generation method
that enables quadrotors to fly through narrow gaps at various orientations and perch on inclined surfaces.
Chapter 6 discusses a method for generating dynamically optimal trajectories through a series of predefined
waypoints and safe corridors and Ch. 7 extends that method to enable heterogeneous quadrotor teams to
quickly rearrange formations and avoid a small number of obstacles.
quadrotor-Trajectory Generation and Control for Quadrotors.pdf
controls-engineering-in-frc.pdf
https://github.com/calcmogul/controls-engineering-in-frc
I originally wrote this as a final project for an undergraduate technical writing class I took at University of California, Santa Cruz in Spring 2017 (CMPE 185). It is intended as a digest of graduate-level control theory aimed at veteran FIRST Robotics Competition (FRC) students who know algebra and a bit of physics. As I learned the subject of control theory, I found that it wasn't particularly difficult, but very few resources exist outside of academia for learning it. This book is intended to rectify that situation and provide a lower the barrier to entry to the field.
Quadrotor Simulators
- https://github.com/nanicalabs/quadcopter-simulation
- https://github.com/nanicalabs/quadrotor
- https://github.com/nanicalabs/UAV
- https://github.com/nanicalabs/PythonRobotics/tree/master/AerialNavigation/drone_3d_trajectory_following
- https://github.com/nanicalabs/minimum-snap-geometric-control
- https://github.com/nanicalabs/robotics-toolbox-matlab/blob/master/models/mdl_quadrotor.m
- https://github.com/nanicalabs/robotics-toolbox-matlab/blob/master/simulink/quadrotor_dynamics.m
Quadrotor Articles
https://andrew.gibiansky.com/blog/physics/quadcopter-dynamics/
COURSE ONLINE ABOUT QUADROTORS ELEC5660
https://gaowenliang.github.io/HKUST-ELEC5660-Introduction-to-Aerial-Robots/people/people.html