Hi all,

MatrixPilot quad_testing code begins to be funny to fly :)

In the video you can see a flight with the code at r1158. It is very stable and reliable. Controls are very smooth.

The quadrocopter is an Arducopter frame equipped with UavDevBoard4. No GPS, no other sensors are used at the moment. The only available mode is Fly By Wire for now.

Many thanks to Bill Premerlani and his fast implementing of his great research and development work on this subject.

Performances are growing up very quickly.

Best regards,


E-mail me when people leave their comments –

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

Join diydrones


  • Hi!

    I am working on a customized implementation of the DCM algorithm to control a quad.

    In the quad featured in the video, are you using 3 different PID loops to control the roll, pitch and yaw rate respectively? Or is there a different control law used?



  • Thanks Bill.

    If I understand your architecture correctly, I'd call the "virtual quad" a command model. I assums your feedback objective will be to make the error DCM equal to the identity matrix (or, equivalently, to make I - DCM_error = 0).

    I have not tried the PID(DD) feedback form. I had read that the Stanford STARMAC guys used it, but I'm not aware of too many other people using it.

    - Roy

  • T3

    Hi Roy,

    You are correct on your description of the controls we have right now. For roll and pitch, we are using the roll and pitch elements of the Z row of the direction cosine matrix. However, I am presently in the process of changing that, to use a more general approach. The pilot input will control a virtual quad inside the controller, and PID(DD) (meaning P, I, D, and second derivative) controls will drive the real quad to match the virtual quad. This will provide a framework to do pretty much anything anyone might want to do, including aerobatics.

    There is a particularly elegant way to control the orientation of the real quad to match the orientation of the virtual quad, using direction cosine matrices. The orientations of both quads are represented by direction cosine matrices. The input to the PID controller is computed by multiplying the matrix representing the virtual quad by the transpose of the matrix representing the actual quad.

    As to what modes we eventually support, that will depend on what the users ask for and what our test pilots are willing to test. Personally, I would not dare to try a pitch and roll rate mode, but if someone else is willing to test it, I am willing to implement it.

    Best regards,


  • Thanks, Bill & Ric.

    It sounds like you have attitude command in the pitch and roll axes and rate command in the yaw channel, and direct thottle with some vertical damping.

    Are you using direct feedback of elements of the DCM for your "attitude" feedback or something else? Do you have any plans for an "aerobatic" mode - rate command in pitch roll and yaw?

    - Roy

  • Hi Roy,

    the video was shot in the pre-Alpine valleys of the South part of Switzerland.

    Best regards,


  • T3

    Hi Roy,

    I will answer your first question and leave the second one to Ric.

    For throttle, the control is a straight pass-through, with accelerometer stabilization of vertical motion.

    For roll and pitch, the control is fly-by-wire: the stick input is interpreted as commanded roll and pitch. The controls maintain the actual roll and pitch to be the commanded values.

    For yaw, the control is yaw rate, stabilized: the yaw input is passed along to the motors, with yaw rate feedback.

    The controls are a work in progress. I put the present version together simply so I could get my quad off the ground while I implement my control ideas, but it is performing much better than I hoped for. I expect that the performance will continue to improve as I implement the rest of my ideas.

    Next on my list is to extend the fly-by-wire control to include yaw. The idea will be to implement a heading-hold function in the earth frame of reference, similar to a heli heading-hold gyro, except it will lock in the earth frame of reference rather than the body frame of reference.

    Best regards,


  • Fantastic stuff, as we've come to expect from the UDB / MatrixPilot team!

    I have two questions:

    1) What is the control mode - attitude command? Rate command? Something else?

    2) The scenery is also pretty impressive. Where was this video shot?



  • Hi, thanks all !

    Martint, I would like be there :)

    Best regards,


  • Distributor

    Hello Riccardo,


    Great video and outstanding work on the UBD4! I was talking with Pete over a coffee the night before he was due to leave to come out to do some testing, I think I will be looking to invite him over for another now...... :)





  • Nice video!. It looks like a beautiful place to be flying. That quad looks to be a very stable and robust design. Congratulations and keep up the good work!

This reply was deleted.