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.
I too have noticed slightly screwy compass reading after several updates, not just 2.3. Exactly as Randy says, don't worry about it! By connecting on the bench, arming and disarming, then waving it about abit and going for a gentle close in, low altitude flight the offsett nulling code (if thats what it is :)) has got me up and operational in less than a couple of minutes everytime.
Em yes your right there, but I feel if I am up higher I have more time to correct things if they don't go the way I want them to.. Its also a little bit of nervousness :) ( its also a paragliding habit where high is your friend)
Usually on take off I want to get it up and then settle it into loiter . Then from there try moving it about to get a feel how much stick I need to apply.
I actually have written out flight plans to try out on my tests. The first one today was to get it up, try loiter, then RTL and then see if it will get to home and land and disarm. It seems like this was all going well until the motor ceased up.
If the Loiter and RTL works as they are suppose to then I can use them as my starting points for trying out other flying maneuvers.
My second flight plan today was to take off up to about 10 meters and then see if I can get it down to hover at 2 and 3 meters. So yes this was on my list as a plan to learn the feel of the throttle. By the way I took off the click spring from my throttle. I didn't like the feel of it.
I was planning on this set of test to try get it down to 5 meters and play with it there
You're very welcome, these settings are a hoot don't you think :) My aim is to find a nice middle ground between the smoothness of the defaults and the ninja reactions of the tuned. Or of course hope that it one day becomes possible to change settings via a switch rather than fiddling with the laptop whilst trying to keep an eye on the quad in flight.
As you say getting everything balanced to start with is the key, esp with the more hardcore settings. The stock prop adaptors are usually fine actually, its more that likely the props that are causing the vibes. When you mount them make sure you hand tighten the adaptors then spin the prop and look at the shaft from above. If it's not spinning exactly about its axis then loosen it off and move the prop slightly on the shaft, its easy to get it off centre by mistake, but equally easy to ensure its straight with a bit of fiddling. Once all your props and motors are balanced and mounted perfectly straight, arm just motor at a time (only connect one esc signal wire to the apm at a time) and give this motor full beans for a few seconds. With careful additions of tape and nail varnish (dynamic balancing) i've got to the point that none of my arms really vibrate at all any more, even under full power. Its made a massive difference to stability and consistency in flight.
Although having said that i had a quick flight yesterday with stock settings, with one bend leg, 2 chipped props and a cracked motor mount. It still flew great despite the fact it was visibly shaking and was about twice as loud as it is when fully balanced! Testament to this cracking code :D
I think that the suggestion of Em Bu is good, however the software is obvious that reacts that way, if an engine fails the good in the same arm increases the speed to stabilize the quad.
With my Octo MK know how many times I happened to take pictures at high altitude and realizing only after I landed that I had broken a propeller? :-)
But if it happens with AC unfortunately the engine with the propeller broken can not be stopped automatically by software, so better to land the double!
AC is controllable if one engine stops (in octo and hexa), but is hardly a propeller jumps away just a shovel, because not stop the engine with the propeller broken and the strong vibrations send in tilt the imu.
The click in the throttle is only good for fixed wings, but I will use even though I left almost imperceptible.
There is a saying for those new to airborne RC, "always fly 3 mistakes high".
I would say though, with a multicopter it can often be better to fly as low as possible (just out of ground effect) for a while, even though a mistake will probaly mean a crash, it will be gentle usually. When learning to fly on my kk i used to keep it quite high, but discovered that if i made a mistake (usually losing orientation) i wouldn't have time to 'get my head straight' no matter how high up it was. So for me higher just meant more damage to begin with.
Today I flew a little with 2.3 and I noticed that there was a big "memory effect" Marco told us about few weeks ago : when you keep pitch forward for a while and go back to neutral, then the copter kind of brake hard.
And also if I keep forward longer, the copter goes back to horizontale and even go backward.
It is probably due to my change of PID settings, but do we have some explaination/documentation about this phenomenon?
Since I divided the Stable Roll&Pitch I term by 10. I was assuming the memmory was due to I term and thoug I expected the opposite =>less memmory effect.
There're my logs is 2.3.1 from GIT......Now , I still tuning Loiter mode but Stabilize is very Stable.
What value for Stab_I-term?
If other than zero, test it in stab_I zero.
Seems like I need some advice on Nav tuning.
Main problem right now being when performing an AUTO mission, copter more or less stops at each waypoint, many times abruptly yawing to hit the waypoint (a bit stupid behaviour for a multicopter, since it can fly in any direction without yawing). This happens even if waypoints are in line, not constituting a bearing change.
I want the helicopter to keep a smooth flowing flight, just touching the waypoints (5m radius) without dramatic changes in speed or yaw. So its more important to have a smooth flow flight than hitting every waypoint exactly.
How should I obtain that??
I have been reading NAV tuning wiki but it does not take me all the way there.
Besides, tuning is more tricky now since both Nav and Loiter are now again collectively controlled by Nav PID params.
Fore some time they were separated, why not keep it that way?
1.1.35 mission planner is out, is the firmware updated for arducopter in this one or is it still the same v2.3 firmware as last week?
Bug in Loiter in 2.3
Have reported it as an issue, but has anybody else seen this behaviour?
I have been posting about how inconsistent Loiter is, and sensitive to wind changes etc. but I think that a lot of my comments were caused by this bug. On many occasions, I have invoked Loiter having got the copter as static as possible (and for more than 2 seconds), only to see it blown downwind with it making no attempt to achieve a Loiter. Now I thought that it might have been due to changing winds, or my changing a parameter, but this afternoon I happened to look at the Mission Planner HUD as the copter was drifting away and it showed Loiter 0>0, and it stayed like that, so it looked to me as if the "target" was either not registering or staying the same as the copter's location. On the next flight I changed nothing, and it happened 6 times in a row. On the final 2 loiters it did "take" and I achieved reasonable loiters but that could have been caused by my shivering hands twitching the sticks as I invoked Loiter. Whatever, it does look to me as if there is a problem with Loiter. Reported as Issue 342, plus supporting info.
I think I observed the same behavior during my tuning tests. Basically when I ever i go to loiter from stabilize there is always a consitent drift(most of the times, sometimes none)...so what I ended up doing was going to loiter then moving the copter with the sticks...and only then does it actually loiter. When you were in the "bad loiters" did you try to manually change the loiter position?