top of page

Skills - Matlab, A*, Djikstra, Quadrotor Control, PID

 

Motion Planning for Quadrotors

Phase-1: Implement graph search methods like Djikstra and A*

The first phase of the project dealt with writing and implementing Djikstra and A* for an aerial robot in 3D cartesian space. The official language for this course was Matlab. This figure shows A* planning a path in a 3D map filled with obstacles.

Phase-2: Design trajectories and a controller for the Quadrotor

This phase dealt with generating spiral and diamond trajectories to design an open loop controller for the quadrotor. Since the quad dynamics are non-linear , one needs to design either a non-linear controller or linearize the dynamics around thehover state assuming the roll and pitch are very small. I designed a model based PID controller for this particular task. The figure shows the commanded and actual velocities of quad in motion.

Phase-3: Motion planning of the quad using A* and controller in hand (obtained from previous phases)

This phase focussed on combining the previous 2 phases and accomplish the motion planning for a quad in 3D cartesian space. In this phase, I had to reduce the number of waypoints returned by the A*. This ensured a smooth piece-wise trajectory generation between waypoints using a minimum jerk quintic trajectory. The figure shows the path planned(red) and path traversed(blue) by the quad from start to goal.

Phase-4: Implementation on a real quadrotor

The final phase of the project dealt with implementing all the previous phases on the real hardware.

Please reload

Project

Codebase - 

 

Github

Videos

bottom of page