- Apr 09, 2012
-
-
rmackay9 authored
-
- Mar 30, 2012
-
-
Andrew Tridgell authored
when this is 1 (which is the default), we will get the declination automatically via the AP_Declination library when it is 0 we will use the value configured by the user
-
- Mar 29, 2012
-
-
Andrew Tridgell authored
explain the algorithm a bit more
-
- Mar 28, 2012
-
-
Andrew Tridgell authored
This adds a large amount of noise robustness to the compass offset learning algorithm, at a cost of 120 bytes of memory. The changes are based on a long discussion with Bill Premerlani.
-
- Mar 27, 2012
-
-
Andrew Tridgell authored
this seems to work much better than the old algorithm, converging faster and more accurately. Even better, it has no linkage to DCM, so no possibility of nasty feedback effects
-
- Mar 11, 2012
-
-
Adam M Rivera authored
This will set the declination based on lat/lon if the user has not yet saved one to the EEPROM, OR if they have specified via the config parameter that they want it to overwrite the declination every 3D fix. Signed-off-by:
Andrew Tridgell <tridge@samba.org>
-
Andrew Tridgell authored
there is no point in saving this, the value is only configurable at compile time for now, and is always set
-
Andrew Tridgell authored
-
- Feb 29, 2012
- Feb 25, 2012
-
-
Andrew Tridgell authored
this ensures they are set if you have MAG_ENABLE==0
-
Andrew Tridgell authored
these allow you to control if the compass should be used for yaw and if it should learn its offsets. This is useful for locking in compass offsets once they are confirmed to be good, and for learning offsets without using them in flights. The default is to behave the same as previously, which is COMPASS_LEARN=1 and COMPASS_USE=1
-
- Feb 24, 2012
-
-
Andrew Tridgell authored
this leaves the previous heading values alone if we are at a pitch of exactly 90 or -90, at which point we can't compute a meaningful heading
-
- Feb 13, 2012
-
-
Andrew Tridgell authored
-
Andrew Tridgell authored
-
Andrew Tridgell authored
-
- Jan 12, 2012
-
-
Doug Weibel authored
This is a fix for an interesting bug when a DCM matrix reset was added to the ground start. This bug only showed up if (A) a ground start were performed after an air start or due to use of the "Calibrate Gryo" action, (B) if the current orientation were sufficiently different from 0/0/0, and (C.) if the particular magnetometer had sufficiently large offsets. Why did resetting the DCM matrix to 0/0/0 pitch/roll/yaw at ground start cause a bug? The magnetometer offset nulling determines the proper offsets for the magnetometer by comparing the observed change in the magnetic field vector with the expected change due to rotation as calculated from the rotation in the DCM matrix. This comparison is made at 10Hz, and then filtered with a weight based on the amount of rotation to estimate the offsets. Normally it would take considerable time at normal in-flight rotation rates for the offset estimate to converge. If a DCM matrix reset occurs when the offset nulling algorithm is up and running, the algorithm sees the DCM reset as a instantaneous rotation, however the magnetic field vector did not change at all. Under certain conditions the algorithm would interpret this as indicating that the offset(s) should be very large. Since the "rotation" could also have been large the filter weighting would be large and it was possible for a large erroneous estimate of the offset(s) to be made based on this single (bad) data point. To fix this bug methods were added to the compass object to start and stop the offset nulling algorithm. Further, when the algorithm is started, it is set up to get fresh samples. The DCM matrix reset method now calls these new methods to stop the offset nulling before resetting the matrix, and resume after the matrix has been reset.
-
- Dec 28, 2011
-
-
Andrew Tridgell authored
this also adds a healthy attribute, and error checking on all I2C calls
-
- Jul 08, 2011
-
-
jasonshort authored
Added a limit to the atan function to calc the heading. Just trying to avoid, bad values screwing up the DCM. - Jason git-svn-id: https://arducopter.googlecode.com/svn/trunk@2777 f9c3cf11-9bcb-44bc-f272-b75c42450872
-
- Jun 28, 2011
-
-
rmackay9@yahoo.com authored
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2699 f9c3cf11-9bcb-44bc-f272-b75c42450872
-
- May 08, 2011
-
-
deweibel@gmail.com authored
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2221 f9c3cf11-9bcb-44bc-f272-b75c42450872
-
- Feb 20, 2011
-
-
jasonshort authored
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1698 f9c3cf11-9bcb-44bc-f272-b75c42450872
-
- Feb 19, 2011
-
-
jasonshort authored
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1677 f9c3cf11-9bcb-44bc-f272-b75c42450872
-
- Feb 14, 2011
-
-
DrZiplok@gmail.com authored
Most of the compass functionality is now abstracted in a base class, with the various sub-classes implementing just their unique functionality. git-svn-id: https://arducopter.googlecode.com/svn/trunk@1647 f9c3cf11-9bcb-44bc-f272-b75c42450872
-