Quadrotor indoor position control

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.

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, 5x3 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 :(. We were implementing a simple PID control in simulink because our 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.

In the next picture you can see some of our blackbox plots, especially on that flight we tried to perform a eight trajectory, its actually improving... take a look:



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!

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Great work! thanks for sharing !

  • gracias mano!

  • well done, bro. 

  • Indeed!!!! tons of props, tons of PLA, motors, and also some FC boards :P 

    And we need to make it work better ;) soooooo more props.... Im printing parts like crazy all day :P 


  • T3

    Very cool, thanks for sharing.  You guys must have gone through a bunch of props to get this to work right.  LOL.

  • The camera is about 600 usd... and software... I don't really now, but approx 20,000 usd...

  • Hi, what does such a MoCap System cost?

  • Thanks a lot Felix!

    I also respect the MW guys, and they help a lot in the forums, I'm using the "new experimental algorithm from Alex Khoroshko" and I have to tell that it flies very good, so, for everyone who uses MW, try this mode...

    I love ardupilot, and when I fly outside is always with APM, you can see videos in my site http://aldux.net

    I want to use APM with my mo-cap system, but I think is a bit more complicated to implement mavlink to send the commands to the apm, there is one person that already did it, but I was already doing it with the MW, my next idea is to use a Pixhawk (which I don't have yet :P) and hook it up to a rpi (raspberry pie) and then build a UDP server via wifi with simulink and the rpi, and the rpi will send commands via USB to the pixhawk, this will allow me to  even have more complex control algorithms using the rpi, so, in shorter words, I want to use the rpi as pilot for the pixhawk...

    I'm willing to share my stuff, but the problem is that is dependant on the mo-cap system... so, if you dont have the optitrack block it will not work, but I can share the way I send the commands to the multiwii, and perhaps we can make it better and more responsive, I really want to make it solid... 

    This project has the potential to reduce the costs of flying platforms, if we make this work, more universities could afford to get their own quads at the fraction of the cost of a hummingbird from ASTEC, those are really awesome, but incredible expensive, and at this moment, my university cannot afford one of those... ergo, I have to build my own plataform, hehehe, but its very fun and you learn a lot.

    I always blog my experiences, check my site aldux.net and always looking forward to collaborate with more people to achieve together better and better results, after all we are here for knowledge ;) 

    Thanks again! :)

  • Really nice work! I have a lot of respect for the multiwii PID implementations..  very robust and easy to get good performance - dare I say it, better than the Arducopter attitude controller - sorry guys, just my opinion and experience. We have a mo-cap system in the lab too, but are yet to integrate MAS control...  will you publish your code and are you continuing blogging about your experiences - we would prefer to learn from others experience where-ever possible. Looking forward to see how your project progresses!

This reply was deleted.