TEGO position control

TEGO position control

Share it!

This large video is about the project that Murray and me have being doing in the MAST Lab. It’s about doing automatic position control and trajectory tracking of a micro unmanned aerial vehicle, being more specific is our 3D printed quadrotor platform, called TEGO, showed in previous posts here and here.

MAST Lab Fleet


The video explains almost straightforward what we are doing, but in a simple way, we are replacing the human pilot with a computer controlled one. The “artificial pilot” receives the very precise position of the markers onboard TEGO coming from the motion capture system and it computes the commands necessary to make those markers move to a desired position. Pretty simple and easy right? well… it its not! I’ll continue explaining part by part of the system.

  • Motion Capture.

We have a Optitrack system with 18 cameras, we have the Flex 3 ones, so, nothing too fancy, but for now, they are doing the job. The system is tricky to make sure is working perfectly, and usually the cleaning staff knocks one stand and then we have to do the “rain dance” over and over again, kind of stressful, in the pictures you can see using the interface from Natural Point the position of the cameras while tracking markers.

  • TEGO quadcopter

Our trustworthy platform, 300 grams with battery, 7-8 minutes of hovering, SK3 3100kv 42 watts motors, 10 amps ESC, 5×3 props, Rotite’s included on the frame.

  • Flight controller

Multiwii AIO v2, using MW firmware r1648 with Alex Kroroshko experimental PID algorithm, everything else is standard, rate = 0.9 and expo 0.3 for pitch and roll. I have to mention that I have received lots of help on the MW forums, so, thanks for that guys!!!

  • Wireless link

A pair of good old 3DR radios using a special firmware adjusted for the multiwii serial protocol (Andrew Tridgell’s SiK telemetry radio software for MultiWii). Oh and by the way, how cool is Andrew Tridgell!!! he is revolutionising everything, take a look at this awesome video. This radios are working at 115,200 bps, but we think that we might have a bottleneck problem while sending commands, maybe we just need more speed to achieve the trajectory tracking performance that we want…

  • Ground Station

Matlab / Simulink, also you can see some pictures of the diagram and you can see it in action on the video. Why Matlab?? because we have a very convenient block for optitrack that makes our lives easier. We know that simulink is not famous with its performance when doing this kind of stuff, but it kinda does the job. Special thanks to my students Krisjanis and Davide for helping in the implementation of the MW serial protocol in simulink 🙂 you rock guys!!


The system is not perfect, we want to have a perfect performance, rock solid. But we don’t have it quite yet, we are closer though. In the making and tuning of this system Murray (my teammate and amigo) and me we have suffered a lot and even bleed lots of times, my thumb especially… Lets say I have less sensibility now :(. Murray was implementing a simple PID control in simulink because his original state space control was not working correctly, but now that we change from the standard MW PID to the Alex Kroroshko PID one; the state space started to work better, and is the one we are using right now.


I would like to have some feedback from everyone and of course some opinions or ideas of how to make this one better… I have to excuse for the video, because is very large, but this is not a video to just show stuff, I want to demonstrate almost everything about our system.

Keep on flying!


Share it!