
Quadrotor Drone Control
using differential flatness and minimum snap
Path planning, state estimation, trajectory generation and flight control of a quadrotor drone
Description
This project consisted of programming the drone to move around in space from the ground up.
​
This project:
-
Implemented different graph search methods to traverse spatial graphs and obtain paths in world maps
-
Developed a minimum-snap trajectory generation function to provide drone trajectories from the above planned path
-
Implemented a geometric controller for a quad-rotor drone system to accurately track the above computed trajectories
-
Integrated the above to make a real quad rotor system navigate obstacle filled environments accurately and safely, both in simulation and using hardware.
-
Developed a VIO based state and motion estimation that was tested on simulation. Hardware experiments used localization information from a VICON system
​
​
​

About
Path Planning : Given a global map of the environment, we can search through 3D space using A* or similar algorithms. But the path of least distance may not be the fastest path for a drone as sharper curves many not be feasible for a drone with faster speeds, so the spatial search algorithim can be modified and optimized to give better paths for a drone, as well as implement spatial safety limits to avoid obstacles. This path forms the base of the trajectory to be generated.
​
Trajectory Generation : Drones have their inputs in terms of motor speed control. We can generate a complete trajectory for this drone as the system is differentially flat with respect to the fourth derivative of position (snap). Differential flatness allows us to calculate our reference trajectory purely using the flat outputs which we get from our path planning algorithm.
Flight control : Once we get our reference optimized trajectory using minimum snap, we track that reference trajectory using a geometric controller which has an attitude control aspect and a position control, making us track the trajectory accurately after tuning.
​
State Estimation : To track a trajectory we must know the position and state of the drone throughout the flight. For this in software, we used a VIO system based on an extended state kalman filter and visual feature tracking. In hardware, we used a VICON system that provided accurate drone state as the demo drone was not equipped to carry a mounted camera.
The Team
Aadith Kumar