Coding a Kalman filter for Navigation and Guidance of a Drone

Scenario: An autonomous drone is tasked to perform environmental monitoring by collecting data such as temperature, humidity, and wind speed using on-board sensors. At some time tw > t0, the battery level drops below a known safety-critical limit. To recharge, the drone has to land on a fixed-wing aircraft that is loitering nearby. However, the communication of the drone with the fixed-wing aircraft has been lost at some time tc, where t0 < tc < tw. In other words, the drone can not receive information about the states of the aircraft for t > tc, and the only available information to the drone about the states of the aircraft is the history of measurements in the time interval [t0, tc]. In this project, our goal is to step-by-step develop a complete navigation and guidance protocol for this drone to land on the fixed-wing aircraft using the available information from the on-board sensors so that it can charge its battery and resume its monitoring task. A detailed problem statement can be found here.

Here is the complete methodology of developing a solution for the problem:

At the conclusion of the project, a MATLAB code for implementing the methodology was coded from scratch. If you’re interested in the MATLAB code for the project, please reach out to me via the contact page.

Description

In this project, the goal was to step-by-step develop a navigation and guidance system that achieves automated landing of an autonomous unmanned aerial vehicle (drone) onto a fixed-wing aircraft that moves on a circular holding pattern. This project aims to illustrate how to design navigation techniques and navigation-based guidance techniques using linear and feedback-linearization tools.