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.
Why are you shouting at us?
Hi everyone. I'm trying to run a Hex-Plus with APM2 and 2.3 code. I can't get the hexcopter in the air and I'm not sure what I am doing wrong. Can someone please confirm the motor hookups? Starting at the top of the plus and going clockwise I have hooked up motors 1 4 6 2 3 5. That is:\
12 o'clock to output 1
2 o'clock to output 4
4 o'clock to output 6
6 o'clock to output 2
8 o'clock to output 3
10 o'clock to output 5.
Is this correct?
Test out of doors, sorry for the quality of the video, filmed with common photographic camera, my wife with my daughter.
APM 1.4 V2.3 ARDUCOPTER DEFAULT PID. TEST MODE STABILIZER ALL TIME .
MOTOR 850KV RC TIMER 2830 13, TURNIGY ESC 10 AMP, PROP 10X4.5
BAT 40C 2650 3S LIPO, FRAME XAircraft 650 V4, GPS, SONAR LV EZ4
9CAP FUTABA RADIO, TX RX 2.4GHZ CORONA, XBEE 900, WEIGHT 1,250 KG.
Have you tried Alt Hold with the LV EZ4 Sonar?
Let me know how that is working.
In our configuration we are also using LV EZ4, and alt hold is working well indoor. Altitude is settling with 40-50 cm error. But for outdoor it is affected from cold weather, we will add 4x10Ohm resistors to heat it up and try again.
Andrea, Motor response can be made more linear by doing something like this: http://diydrones.com/forum/topics/linearizing-motor-thrust
I have been flying this for a while and it seems to make behaviour more consistent.
YES, small ups and down due to terrain, supporting evidence. home values are very accuratemeasuring with tape measure, video soon.
IN THE VIDEO, 6.10 MINUTES TO THE ACTIVE SONAR FOR SHORT TIME
outputs 5 and 6 are for camera stabilizing servos!
i followed the diagram on this page of the wiki: http://code.google.com/p/arducopter/wiki/AC2_Multi and have had no problems at all.
exactly as you have listed except for shifting outputs 5, 6 to 7,8!
Not on APM2.
My colleague just purchased a Wookong M. He told me that it has a feature called "Tail To Me" that will be useful for aerial cinematography. Are there plans to implement such in a later version of the code? Looking forward to 2.31 soon after I receive my APM2.
I am trying to convince him that APM2 is as good or better as the Wookong M for much less money.
Thanks James. I think Rick is right on this part as I tried using 7,8 and those props no longer spun. The part that is confusing is that the wiki seems to show 1 4 6 2 3 5, but the comments above (that are marked out indicated "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 ].". Does that mean that the current correct motor configuration for Hex+ on APM 2 is 1 2 3 4 5 6? It's a bit confusing as the information available seems to be in contradiction.
Your approach is good and should be considered for implementation in the official code.