I've just released ArduPlane 2.32
This is a minor update with 2 changes:
The new MANUAL_LEVEL option is a boolean option. If set to zero (which is the default) then the existing behaviour of doing automatic accelerometer calibration on every boot is used.
If you set MANUAL_LEVEL to 1 then it won't calibrate the accelerometers on boot and will instead use the values from the last time it did a calibration. The idea is that you get a good level once, then set MANUAL_LEVEL to 1. You can then redo the level using the mission planner or another ground station, or by setting MANUAL_LEVEL to 0 and restarting.
The compass learning change is based on feedback from the last release where noise in the magnetometer caused the learning to be quite bad for some people. The automatic offset learning should now be robust to quite large amounts of magnetic noise.
Thanks for the update, Tridge. The compass changes in particular are a big help. Looking forward to seeing that in ArduCopter, too.
Manual level was the first on my wish list. :)
good deal ,,, for me judging level is the hardest part : ) other than launching ,,,
I am glad to hear that in flight magnetometer offset learning is now working well enough for you to release it. I enjoyed working with you on it.
If anyone is interested, the basics of the new algorithm are described here.
Nice updates, thanks for them...
I was still hoping some kind of update for the altitude initialization too...
"Could it be possible to change the APM code so that the barometer would be calibrated last in the sequence, for example 45-60 seconds after power up. This way the GPS would have enough time to get satellites and steady position for the initial altimeter calibration? Or maybe after a reasonable VDOP value is achieved.."
Andrew, what is your opinion about it?
I agree that we could improve the altitude calibration. What I tend to do is use a ground station to force new calibration once the GPS has been locked for a while. That is really just a workaround though and you're right that we could do better without asking the user to use a ground station.
Perhaps something like this would work:
The idea is to keep updating the home altitude until we actually start flying. Maybe use a 0.95 lowpass filter for the update?
I'm not sure using the VDOP or other value from the GPS will work well, but if you have some logs showing it does then we could look at that instead.
btw, if we do this, then we should probably also update the home latitude and longitude as well. We have occasionally seen logs where the initial GPS fix was awful (I've seen one where it was off by half a kilometre!), but it tends to fix itself quite quickly.
I think maybe the first init should be done 30-60 seconds after power-up, perhaps update fixes during flight are not necessary.
Thank you Andrew and Bill! It solved my previous compass problem and the rest of the parameters seem very steady as well.
good to hear! thanks for the feedback
is this only for the APM 2
No, it supports APM 1 equally well.