Jason is travelling this week, so I'll take the helm for the next software release post.
UPDATE: the motor remapping thing was confusing everyone, so we took that out and returned to the regular motor mapping. That means that APM 2 users with Hexas and Octos should wait for the next version. APM 1 users should be fine with any frame.
NOTE: Hexa and Octo users: there have been motor mapping changes that may affect you. Please don't upgrade until we can update the documentation to reflect the changes. This should happen by the end of the day today (Feb 1).
ArduCopter 2.3 is now available in the Mission Planner. This is the next revision of the ArduCopter 2.2B6 code, which is perhaps the most tested code we've ever released (1288 comments in the thread!) and certainly in my experience the best code, too.
The default PIDs are optimized for a 3DR/Jdrones quad with 850 motors and 10" props. If you're using more powerful motors/props, start by turning down Rate Roll P (default is 0.14, so start by turning it down to 0.1. In general tune PIDs in 25% steps).
Now that we've got solid code out there, we can turn to collecting suggested gains for standard frames, and a better guide to how to tune PIDs for your unique setups.
Here are Jason's note on the latest changes (mostly from 2.2B6)
A dampening term called STAB_D has been refined. A D term for all of the Rate based control loops has been added based on Igor's work. Landing for Baro and Sonar has been refined based on JLN's work. A slightly new approach to Loiter and Navigation is being used to try and linearize the pitch and roll for rate control. It tends to use lower gains, yet has a more assertive response in the air.
STAB_D : This is the gyro accretion dampener. This can remove small wobbles during sharp changes in angle commands. Making this too high can have a negative effect in performance and add a memory effect that can cause temporary loss in control. The in flight tuning is ranged so you are just below that effect.
If you haven't noticed before the control loops are in two stages. The first is a PI stage that converts some sort of position or angle error into a desired rate. These generally do not need to be tuned. They are more of a user preference on how fast you want the copter to perform a motion.
The second stage is the actual PID loop that needs to be tuned for the copter. This converts the desired rate into a motor command of some sort. I added a D term based on Igor's recommendation to the PI's for each rate controller. These should show up soon in the mission planner for the release. I cannot give you a concrete answer for how to tune the D terms, because they each depend on their function such as alt hold or loiter, etc.
Still, the absolute most important term is always the Rate_P term for each loop. Start tuning here.
The default PIDs are in the what flies great for a stock jDrones/3DR Quad with the purple motors in X mode.
Note the Mission Planner does not yet highlight these D terms on the main tuning page (it will soon), but you can find them and modify them on in the Parameters list.
Autolanding should now work well (see video above) and the Tri servo issue is now resolved.
The code should now compile with Arduino 1.0 (thank, Randy!), but remember that you need to use the "relaxpatch" version of Arduino in our downloads section.
[Update: we've reverted the below. See update at the top of the post]
Important for Octo users:
We've changed some of the motor orders for some more exotic airframes. We'll be updating the docs on the Wiki in a day or two to reflect this. Pat Hickey explains:
As before, the hexa plus APM2 motor setup has changed from the ordering [1, 2, 3, 4, 5, 6] to [ 5, 6, 1, 2, 3, 4 ].
The Octa V layout for APM2 is:6 42 58 13 7Motors 1 through 4 spin clockwise, and 5 through 8 spin counterclockwise.
Thanks for all the beta testers who put it through it's paces in the lead up to the release!
There's a new TUNE_MIN and TUNE_MAX parameters added in 2.4. Just put the range you want in each of those x 1000. So if you want it to be 2~6 put 2000 into TUNE_MIN and 6000 into TUNE_MAX.
Yes Johann, Loiter need improvement, but loiter definitely needs improvements, but consider that in that in that video pids were not optimized for the loiter, unfortunately I have not had time to fix them.
Yesterday my little quad with the loiter was never more than 2x2 meters, at best 1x1.
Hey Duran, I had a nasty twitching problem with 2.3 on my octo.
As seen in this video:
Has this been fixed with v2.4???
I dont want to go to the shlep of reloading 2.4 to discover that the twitching error remains...
i've been flying 2.3 for a while now, not a single issue, apart from the quick little twitch when GPS locks home, i DONT get those type of twiching at all.
Gareth, i think you have some problems with motors/props/timing.
This is another problem, not twitching, I think the ripple is generated by a poor ability to correct the attitude, perhaps too large propellers or engines with few kv.
Have you watched my first video X8? Just take off you see the same undulations, just because I am currently flying with too large propellers, but in flight is perfect.
If the propellers are too big you get that effect if you are too small high frequency oscillations, we Must find the right ones for your engines, which are not always those stated by the manufacturer.
Can you leave me your configuration?
strange, perhaps its something to do with the motors/escs. However Im not the only octo guy that has this twitching problem.
Sorry, I'm still a few steps behind here... this tune business... are we talking about in-flight levelling? What's the advantage of having 4 up and down rather than between 0 and 1.
Trying to tune Igor style with 2.4, then off to the field to play with loiter params. See if i have to tune loiter or nav.
The tune min and max are usefull if you use ch6 tuning!
Hi Dave. If you use a variable pot from your tx connected to ch6 input of the apm, you can use that switch to tune whatever parameter you need (in mission planner, parameters screen, at the bottom right, there's ch6 and ch7 options - only ch6 can tune params). Some parameters use values from 0 to 8 or 9, like stabilize P, others use values from 0 to 1, or, even less like rate P. So, if you use a min 0 and max 4 for tunning rate P (wich is too much for rate P), you get those values scaled to the full scale of your tx pot, so if you have let's say 50 clicks on the pot, each click will increase or decrease 80 units (50x80 = 4000). But if you have have chosen to tune rate P and use min of 0 and max of 0.25, and you still have those 50 clicks, you will be increasing or decreasing 5 units (50x5=250).
You can use this even to fine tune a param, let's suppose you know a certain param would be good for you between 0.3 and 0.8, you can choose those values as your min and max (300 - 800). Hope to have been of any help :)
Thanks chaps, I do use channel 6, and hadn't spotted the ability to tune the range. Useful feature and now very well explained :)
Now who said it was allowed to rain today - grrrr! Oh well, an evening of trying to get as much rate_d cranked into this shaky frame as i can :)