The arducopter tuning guide.
This guide was written at the time of the release of Arducopter 2.8.1 FW. It is a compilation of everything I have gathered from the experts in the field of flight controller tuning. It will help give you an understanding of how to tune any rotor based flight controller, but its specific to Arducopter and this firmware release.
I will update this as necessary, or if you can convince me any of it is incorrect just post below and I’ll update this text.
There is a summary/quick reference at the bottom, so once you’ve read this rather rambling explanation you won’t have to again, other than to check details :D
Tuning your flight controller is essential for a perfect flight. Even a fully stock frame will fly better if you tune. The default params will be close, but your battery or motors might be performing differently, your air maybe ‘thinner’ compared to the developer that last published the default params, so you should tune.
What we are trying to achieve is control. We start to accomplish this by modifying the amount of P, I and D in our control loops. All three react to our stick inputs and the errors created by measurements from our sensors, and all three will help us fly better. If we do not have enough of any of the params the copter will not feel like it’s under control, it will wander about, not resist wind and be hard to fly. Too much of any of the params and the copter will seem to have a mind of its own. It will over-react. At best you will see it oscillate, very fast, not so fast or somewhere in between, depending on which parameter has been overclocked. At worst it will simple flip over on take-off or be very unpredictable in flight.
We need to find a balance. You can tune each param up individually, but one will have an effect on another. Therefore we must tune one, then another, then go back and see if we can retune the first one again, this is the balance.
And this is where we adjust those parameters – Mission planner config page:
Before you start:
So let’s start tuning
Everything you read below will be demonstrated in the tuning video further down, so you know what to look for, and at the bottom is a summary for quick reference. I think, however, it’s important to include as much information here as possible as anyone starting into this hobby will often find this process to be a bit of a black art.
I’ve found the quickest way to tune the arducopter is to start with rate_D, (but you simply can’t do this unless you can hold your beast in hand or in a jig as the copter won’t fly without any rate_P or I) so a more universal way to start, and actually a more informative way is to start with rate_P.
Since this is about learning for everyone, let’s do it that way. I’ll give a brief low-down on the ‘rate_D’ tune (or Dave C tune, as it’s become known) ‘ later. (BTW, that’s very flattering but I’m only relaying info from the real experts, but hey, if I’m gonna be famous, why not for doing something I love :)) Anyway....
STEP ONE - Tuning rate_P
STEP TWO – Tuning rate_D
NOTE: once you have found your rate_D you can try something interesting - you will have to hold onto your bird for this obviously. Set rate_P to zero, then crank up your rate_D as you just have. You will discover that these fast oscillations occur at pretty much the same level of rate_D, no matter what you have set rate_P to. This is why I think it’s more than possible to start tuning rate_D then move on to P. But that’s a shortcut, and this is not what this guide is all about.
STEP THREE – Tuning rate_P even more
Congratulations, your copter should be flying better than it ever has done before.
STEP FIVE - HEAD OUTSIDE!!!
For now set Stab_P at 3.0 - 3.5, closer to 3.0 if you have a high power machine, just to get you flying in stab mode. Then spend your time tuning rate_I and stab_P.
If you find your set up immediately too harsh, back off on rate_P and rate_D by 10% each, and try a lower i-term, if it's still too harsh do that again!
All that’s left is to watch the video below so you can see what I’m describing and head outside for fine tuning. Oh, and await part two of the guide and amendments from any discussions raised, then we will have a proper tuning guide that will be integrated into the wiki advanced tuning guide :D
Results for tuning in this video were
Oh and as promised, below is Part One of the Summary Guide. I aim this to be on one sheet of A4 and tell you everything you need know ‘in the field’.
Summary of what you are looking for
Too much rate P will oscillate quickly, and cause to copter to sound angry under stick input, bouncing rather than smoothly following your inputs. It will also shake more at full throttle and under hard turning.
Not enough you will not feel like you have full control. It will feel sloppy and be very easy to over correct with your inputs. It will feel delayed.
Perfect is where it feels locked in, stiff in the air, but not shaky. (although if I’m sport flying I turn it up a bit for maximum ‘wang’ and just tolerate the slight oscillations)
Too much rate_I will oscillate if you get high enough (a much slower oscillation than a rate_P shake). But quite a long while before it oscillates it will have other detrimental effects on flight performance, like a sluggish feeling or a tendancy to flip over on take-off. This is why I suggest tuning this in flight rather than in your hand/jig.
Not enough will cause the copter to get pushed by a constant wind, then it will fight back using just P. It will not hold a very firm angle during forward flight and will need more correction. This will not be as smooth as it could be in either case.
The perfect amount will cause the copter to lean gracefully into a constant wind, but also allow you to set a lean angle and stay there as you fly about. As you dial rate_i in pay close attention to the feel of the copter, you are not looking to create oscillations here at all, you should notice a strange ‘feel’ long before this point.
Too much rate_D will oscillate very fast, you will see a twitch forming then a fast buzzing oscillation
Not enough rate_D will simply mean you can’t dial enough rate_P and so you will suffer the effects of having rate_P too low.
A perfect rate_D will help fight the wind and follow your sticks as its fast to react, but will also allow you to reach a maximum rate_P level for you frame, thus giving better control.
Well, if you ask me it flies like a charm ! Congrats !
Excellent result. zero vibration on takeoff, steady in any position to take off, abrupt maneuvers at low speed a rock in any cituacion. Advice, balancing well the quad, accessories and a good engine vibration free, and it will be easier adjustment pid
This is the video and the other presenting problems
Nice idea - I have been intending to build some sort of leveling jig, but had never considered using my camera tripod. Doh! I am definitely going to do this.
Thank you so much for putting all this into a nice concise format!
I cant wait to apply this methodology to my drone!
Great to hear you have got your rate_P up that high, I bet it's locked in now! Did you see how high you could get without any rate_D? Nowhere near I suspect!
Yes, it's a balancing act, each param will effect the influence of another, so you will have to go back and fine tune (I do this less and less though now as it's all starting to become very familiar.)
Rate_I, basically put, is how quickly the i-term builds up, Imax is the maximum level you can build it up to.
Jason recently pointed out that the i-term was taking too long to build up, and Robert has been using higher i-term for a while now in experiments. This is where I'm heading but don't want to advise until I'm more sure.
The Imax is the maximum amount that I can build up to - so yes it will have an influence, bring it up slowly though, too much and you will start flipping!
I haven't given much detail on rate_I and Imax tuning yet as the jury is still out as to the best levels to use. Start at the default is my advice, get everything else right, and play with the i-term when you are tuning outdoors (in a safe area) As soon as I have concrete evidence (and Randy, Robert, Leonard et al agree) I will post more info.
If anyone has any revelations, speak up, that's what this thread is for :D
Ah - I missed that bit about the i-term buildup. Interesting. I ended up jsut picking a value in the middle and it seems to work well enough.
Thanks for describing what Rate_I does.
Now, just what does Rate_P and Rate_D do?
If your craft does this, adjust that is helpful information, but has anyone ever explained what the parameters actually do? Yes, I can if this - do that and get a fairly stable platform, but I would like to know what I just did.
Nice name - King PID.
Nice tutorial and much needed, but a couple of nits....
PLEASE don't zoom on the text. It can be disorienting to some and adds nothing to the message.
If you are going to use two hands, use a different camera position because we can't see what you are doing with your right hand.
And speaking of your right hand, why are you working the quad at a 45 or 90-degree angle? Why not start out level?
Last - are you tuning for acrobatic performance or stable flight?
Lol, thanks for the tips Stephen, points taken! I will do another video with a proper set up, so you can see what that right hand is doing. I wasn't really happy with camera angle either, but i was tight for space, (did you notice I'd taken a picture off the wall as a back-drop - if i don't do that the thing blows off the wall anyway :D)
Anyway, I'll do a better version for the wiki.
Sorry about the zooming text , that's what comes standard with windows movie maker, I'll try to work out how to stop it, I'm certainly no videographer!
To answer your questions,
The right hand is simply hold the quad the right way up to begin with (my centre of gravity is above the wires so it would naturally hang upside down). (I could add weight to the feet, but that's not the setup I'll be using in flight, so it's pointless.
Then 'the hand' is used to hold the quad whilst there is no rate_P involved., it would just rotate freely otherwise. From then on the hand is used to simulate disturbances, such as taking off, wind, touching the ground, it is also use to 'feel' what the quad is doing, and how well the tune is working.
You can 'feel' the rate_D shudder first, then hear it in the motors, then see it. If you can see it it's definitely too high, if you can just feel it, but the motors are running smoothly under load, you are probably very close.
Thanks for the input, the wiki version of the guide is improving quickly with these sort of enquiries.
The reason I do everything at 45 degrees (ish) is that
1. in this type of mount it bounces all over the place when near level, especially if, like me, you have a high CoG.
2. If you tune purely when level you will find that you can tune higher, until you lean over a bit, and it will be too highly tuned. Tuning at all different angles is the way to really fine tune it. Which is why I keep harping on about in hand and jig tuning, you can push it much hard than you can push an untuned quad in flight.
I am tuning for perfection here! My goal is to have something rock solid that will carry a camera without much damping required, so yes stable flight. If I'm going out to do acrobatic I srop my stab_P a bit and raise my rate_P. Not so good for video, but brilliant for screaming about, inches from the ground with the goggles on :D
Maybe I should design a universal tuning mount, that works better than string!