In4073 Project Resources 2016 - 2017

This page contains essential information to build the embedded control system of the Quadrupel quad-rotor drone, which constitutes the lab project of the TUD course in4073 Embedded Real-Time Systems.

NOTE: The following material is presented to provide easy access to existing websites or publically available documents. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright.



Quadrupel drone

We are using home-brew quad-rotor drones designed and assembled by Ioannis Protonotarios.


Some joystick links.

RS232 Communication

A couple of links on RS232 communication to help you understand the RS232 link between the Quadrupel drone and the PC.


Starters package

Sample skeleton program illustrating how to read sensor values and set enige speeds, as well as various other utilities.
Download for Linux.
Download for Windows (7), for experts: manual install on Windows.

Signal Processing

The sensor signals are contaminated with noise, especially from the vibrating drone frame due to the four engines and rotors, which is picked up by the sensors (especially the accelerometers!). In order to filter out the higher frequencies due to the engines low-pass filters are needed. The next link shows a log of phi (blue), p (red) as obtained from the y-axis accelerometer and x-axis gyro, respectively. The approximately 8 seconds sensor log (format: time, ax, ay, az, p, q, r) was obtained while the motors were running and the drone was making a pitch and roll movement by hand (x-axis displays time in microseconds). Since the scale is dominated by the phi noise, we integrated p to show the "real" phi (red).
The following link shows a log of phi (blue), p (green) after applying a low-pass Butterworth filter with 10Hz cut-off frequency. For designing the filters see the following links:

Kalman Filtering

From the above it will be clear that the accelerometers hardly provide any useful information, even after extensive filtering. The gyro's, on the other hand, tend to drift, which limits their utility as single source for drone stabilization. Kalman filtering is the standard way of fusing gyro and accelerometer data into reliable sensor data that allows for stable vehicle attitude control. People who want to experiment with a simple Kalman filter in Matlab can use the following files:


Just a couple of links that might interest you.