robotics-coursework
robotics-coursework copied to clipboard
Quadrotor PDF Slides, Papers, and Code
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 [email protected]
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.
https://github.com/yorgoon/minimum-snap-geometric-control
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/
Python Robotics
https://github.com/AtsushiSakai/PythonRobotics/tree/master/AerialNavigation/drone_3d_trajectory_following
COURSE ONLINE ABOUT QUADROTORS ELEC5660
https://gaowenliang.github.io/HKUST-ELEC5660-Introduction-to-Aerial-Robots/people/people.html