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.
Thomas, I agree with your estimate of the problem. I am designing a camera mount, and I thought about having the camera overslung like that, and tested it and found that it didn't work at all. Actually, I tested it by installing a long servo arm, and hanging the camera from the arm by a string. Just to see how well it could deal with the weight. I tried Turnigy MG968 servos which had not problems with the weight, they can lift 10 times as much. But with the servo arm horizontal, they buzzed a lot and are really coarse. I then tried with with a Hitec HS-5625MG servo which has half the strength, but it was able to hold the camera without buzzing.
One way to try and fix the problem is to attach an arm, with a weight which sticks back behind the pivot. Try and balance the weight of the GoPro on that pivot point. Then the servo only has to swing the weight, not hold it up.
Or, try something like a Hitec HS-5085MG. Or if you want to try something a little cheaper but maybe will work:
Just installed a Savöx SH-0254 with 3.9kg/cm which a local shop had on stock. Also makes noise, but seems to work more precise and fluent. I'll have to wait for a test tomorrow.... I'll also have a look into the counter-weight attempt.
Try Tahmazo make good micro servos . TS-D5013
OK, I couldn't wait till tomorrow, did a quick test. Result is still far from perfect, but looks better I think. Have to test again tomorrow in sunlight. Also had some fun blowing some snow ;) Video attached:
Great! Much better stabilization in pitch, have to get some new servos too.
I see it must be quite cold there since you have that kind of snow, do you have to wait for the sensors to stabilize in the cold? I have been reluctant flying lately due to the temperature and snow, but I am mighty tempted .....
Last week it has been between -10°C and -20°C here. I had the quad in the trunk of the cold car for about 10 minutes on my way and another 3 minutes outside for setting up battery and waiting for gps fix before I flew.
Very impressive and smooth. Love the video and the swirl of snow when it is close to the ground. I'm sitting here in 33C 85% tropical humility and so nice to see the snow.
Shot another video today in daylight. Result not perfect, but good enough for me, since I don't want to use it for professional footage and all in all the mount and servos did only cost around 65€. Will try the counterweight attempt anyway, as soon as I got some spare time. But here is the result of the new servo at daylight and in HD:
You know, I think the camera stabilization is the most impressive feature of APM! It really works!
It looks like the new servo does a good job of holding the camera up, but is struggling a bit when asked to move. It seems like it's being sent a start-stop signal that is not smooth, and with the overhung weight, it's struggling with it.
I'm simply amazed with the roll axis!
I noticed that two of my motor pairs were tilted slightly and which was causing the quad to constantly yaw to the right always spinning. But even so I would have tough in stabilize mode without simple the AMP would try to keep it in one heading. Is this correct?
Stabilize will attempt to keep it from yawing, but if your motors are tilted it will not be able to overcome that force. The way that yaw works is two of the motors that are spinning in one direction are slowed down while the other pair is sped up slightly. This generates a differential torque which causes the copter to yaw... Think of a standard helicopter without a tail rotor. The main rotor is large and spins one direction which creates an opposing torque force. The tail rotor is there to counter that torque and keep the helicopter from spinning out of control (think of black hawk down). In a quad that torque is cancelled out by the motor pairs spinning in opposite directions. That being said, the torque in your setup would need to be strong enough to cancel out the rotational force generated by the tilted props which isn't likely to happen.
Thanks Adam, yes I was aware how the yaw worked, but as you rightly stated, its not going to be strong enough to counter two motors out of alignment. I see that clearly now