Exjobb – Navigation and Autonomous Control of a Hexacopter in Indoor Environments


This thesis presents methods for estimation and autonomous control of a hexacopter which is an unmanned aerial vehicle with six rotors. The hexacopter used is a ArduCopter 3DR Hexa B and the work follows a model-based approach using Matlab Simulink, running the model on a PandaBoard ES after automatic code generation. The main challenge will be to investigate how data from an Internal Measurement Unit can be used to aid an already implemented computer vision algorithm in a GPS-denied environment.

First a physical representation is created by Newton-Euler formalism to be used as a base when developing algorithms for estimation and control. To estimate the position and velocity of the hexacopter, an unscented Kalman filter is implemented for sensor fusion. Sensor fusion is the combining of data from different sensors to receive better results than if the sensors would have been used individually. Control strategies for vertical and horizontal movement are developed using cascaded PID control. These high level controllers feed the ArduCopter with setpoints for low level control of angular orientation and throttle.

To test the algorithms in a safe way a simulation model is used where the real system is replaced by blocks containing a mix of differential equations and transfer functions from system identification. When a satisfying behavior in simulation is achieved, tests on the real system are performed.

The result of the improvements made on estimation and control is a more stable flight performance with less drift in both simulation and on the real system. The hexacopter can now hold position for over a minute with low drift. Air turbulence, sensor and computer vision imperfections as well as the absence of a hard realtime system degrades the position estimation and causes drift if movement speed is anything but very slow.