QuadRotor Project


I have started my quadrotor project.

Im using the mikrokopter frame with some additional center plates and a few modifications.
E-flite motors, with E-flite ESC. An arduino MEGA board. A Vectornav VN-100 which includes magnetometers, accelerometers, gyros, and an onboard kalman filter. Xbee PRO modules. Laptop with Labview.

Right now Im testing and tunning my own PID controller. Here are some pics of my quad and a small clip showing the actual behaviour of the controller, which I have to improve.

E-mail me when people leave their comments –

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

Join diydrones


  • This is not a latency issue, i guess. You might have some undeterministic delay due to USB, operating system, etc, but what i ve seem on the movie is very close to a second order system behavior, with rise time, overshoot and natural oscilation. In your place, I would give MRAC a try. It can overcome some uncertanties of your system plus some nonlinearities you ve negleted.

    Nice job, though. Are you from USP, Poli?
  • Jani,

    Thanks a lot for your comments.

    I have done a lot of projects with labview, and to be honest I dont think the laggy behaviour is because of LV. Im working with LV 2009, and I gues since the last 3 versions of LV they have improve a lot the timming problems. But I will do the experiment with the keyboard you suggest.

    I will remove some screws, you are right about the weight issues.

    I will be posting here the progress of my project
  • Developer
    Well I would point to LV first due sometimes it can be really laggy. I think that is one biggest downside on LV, sometimes without any reasons if just eats all your computer resources and if I remember correctly, people had earlier a lot problems even with simple ArduPilot test program due after 10-15mins it jammed whole computer.

    Have you been testing to send joy info without LV? Make a small program that reads for example keyboard keypress and if you hold key down.. make your quad to bank on one direction by adding .5° every second key is hold down, on release of key send 0° angle. Or similar to that. This way you can at least line out LV laggines and concentrate on PID it self and other internal systems on your quad.

    And that's a nice way to use MK frame plates. Tho having double screws on every corner might make it a bit heavy. Have you been thinking to use Nylon spacers to replace those? Then you could have only one "pilar" on every corner.

    If you need special frame parts to get rid of those zipties on your IMU, let me know. Having them tied with zipties is not best way due you never get it mounted firmly enough.

    Overall it's really nice and compact looking. Congratz
  • Could the latency be due to Labview itself?
  • Roy,

    Thanks a lot for your comments, they are really useful for my project.

    Im studying Mechatronic Engineering.

    Your right about the latency, but I have tested it without the joystick (using direct controls on labview), and the behaviour is the same, so it might be the PID itself, or the hardware, as you suggest.

    I have to try to tune a bit better the PID as you suggest, but as you know, some times tunning PIDs is very easy and some times it just doesnt go as it should be, and this is one of that cases that is really difficul, or at least I have come to a point were improving it is really hard.

    The vectornav is held in place with cable ties and some kind of glue which I dont remeber the name. Its Ok I guess.
  • Felipe

    Re: direct structure, I just wanted to make sure I knew what you were talking about.

    What type of class is this for, or perhaps a better question, what is your major - EE, mech E, controls?

    As I said, the main issue to me is latency - it seems that when you put in large stick inputs, the quad takes a while before it starts to respond. The PID loops run on the quadrotor itself, right? I'd all the paths between the joystick, LABVIEW, and xbee to see if the issue lies there. If not, it could be the response of your ESC/motor/props. I can't really tell which ones you're using.

    Otherwise it doesn't look too bad. You have some overshoots to large commands - perhaps some additional damping (or D term, depending on how you've implemented the PID) could help. It also tends to slowly converge to the steady state, indicating that the I term can be tweaked some more, perhaps.

    Also, it looks like the vectornav is just held in place via cable ties. Is that secure enough? You don't want your sensors rattling around your frame.

    - Roy
  • I like your testing frame and the copter. Usb joystick interface is also very good. I look forward to seeing it fly

    Out of interest, how much would you say the entire project has cost so far?
  • Your work is very much appreciable indeed ! What I feel that lots of people have already developed PID with excellent performance, you can really contribute by developing some new feature in the existing firmware and can still take it as undergraduate final project.
  • Roy

    The joystick is connected via usb to my laptop which is running a Labview program which I developed. The laptop is connected to the quad via xbee.

    About the direct digital structures you are right, Im using the 2D structure. What type of info do you need?
  • Felipe,

    It looks to me that your main issue is command latency. How is the joystick interfaced to the quad?

    Can you elaborate more on the direct digital structures? Do you mean 1D, 2D, 1X, etc.?

    - Roy
This reply was deleted.