Commit Graph

472 Commits

Author SHA1 Message Date
Andrew Tridgell d4c8041c51 AHRS: first successful version of Bills new drift correction system
This makes 3 major changes:

 1) fixes the scaling of the yaw drift correction term to fix the time
 constant

 2) don't integrate the mag vector over multiple readings

 3) accumulate omega_I changes over 15 seconds before applying, to try
 to prevent omega_I picking up short term responses
2012-06-27 16:01:49 +10:00
Andrew Tridgell 4d08f75292 AHRS: update for new _fly_forward flag 2012-06-27 16:01:49 +10:00
Andrew Tridgell 0f5c22bd8e AHRS: implement Bills new drift correction algorithm
this is an initial implementation of this paper:

  http://gentlenav.googlecode.com/files/RollPitchDriftCompensation.pdf
2012-06-27 16:01:49 +10:00
Andrew Tridgell 52d77407d4 AHRS: added GPS support to AHRS test 2012-06-27 16:01:49 +10:00
Andrew Tridgell f274df454a DCM: fixed a bug when using GPS for yaw correction
When using GPS for yaw correction we need to apply the x and y omegaI
corrections from the _omega_I_sum in the period before we get to the
minimum ground speed for GPS yaw correction. Otherwise we get a large
sudden omega_I change on takeoff.
2012-05-21 12:15:06 +10:00
rmackay9 6e1798b104 AP_AHRS: updated default AHRS_YAW_P to 0.2 (was 0.4)
This reduces the compass's default authority over the yaw direction by half
2012-04-30 17:29:45 +09:00
Adam M Rivera 3309dec205 AP_AHRS_DCM.cpp: Added comments that follow the new parse structure 2012-04-25 12:00:42 -05:00
Andrew Tridgell 2a3af369b6 DCM: buffer omega_I changes over 10 seconds
this buffers up _omega_I changes in _omega_I_sum over a period of 10
seconds, applying the slope limit only when _omega_I_sum is
transferred to _omega_I.

The result is a huge improvement in the ability of _omega_I to track
gyro drift over the long term.
2012-04-23 12:13:25 +10:00
Andrew Tridgell f27d85cb8d DCM: drop the 'drop z' method
the 'drop z' method reduced the impact of noise on omegaI, but it also
made us more sensitive to errors in accelerometer calibration and
scaling, as demonstated by the logs from Gabor here:

  http://diydrones.com/xn/detail/705844:Comment:834373

Simulation testing shows that the other noise suppression methods
applied in the DCM code, in particular the slope limiting on omegaI
the removal of the weighting and the upcoming use of a _omega_I_sum
buffer have reduced the impact of noise enough that we can now safely
include z in the acceleration calculation.
2012-04-23 12:13:24 +10:00
Adam M Rivera b500d9430f AP_AHRS_HIL.h: Fixed HIL build by adding missing public property. 2012-04-16 10:26:14 -05:00
Andrew Tridgell 8e90aeea4e AHRS: added AHRS_YAW_P parameter
this allows users to change the yaw gain in DCM
2012-04-16 20:55:13 +10:00
rmackay9 c96dfb2108 AP_AHRS - changed parameter order to remove compiler warning 2012-04-09 17:37:11 +09:00
Andrew Tridgell b549b88e5e AHRS: fixed error_yaw reporting with 2 MAVLink connections
when a user first connects with USB, and later switches to the
telemetry port without restarting we were getting zero for error_yaw
in the logs, as AHRS.get_error_yaw() was being called twice.

This ensures we give the last value after the counter is reset
2012-03-29 12:39:53 +11:00
Andrew Tridgell f4d1295a4b AHRS: fixed build of AHRS example 2012-03-22 23:00:45 +11:00
Andrew Tridgell 9e6c18cca4 AHRS: added missing AP_AHRS.h 2012-03-19 17:35:20 +11:00
Andrew Tridgell 4f82134a5e DCM: use the new rotate() method from AP_Math
this allows us to use a tested and optimised rotation method
2012-03-19 17:29:02 +11:00
Andrew Tridgell c53b320e00 Quaternion: change signs in AP_AHRS_Quaternion
thanks to Justin for the suggestion
2012-03-19 17:29:02 +11:00
Andrew Tridgell 79b9be8b1a AHRS: fixup the AHRS test suite for the new framework 2012-03-19 17:29:02 +11:00
Andrew Tridgell f8087d3c67 AHRS: adapt the quaternion library to AHRS 2012-03-19 17:29:02 +11:00
Andrew Tridgell 8dcf82b433 AHRS: adapt the DCM_HIL library to AHRS 2012-03-19 17:29:02 +11:00
Andrew Tridgell d4bb068d5b AHRS: adapt the DCM library to the AHRS framework 2012-03-19 17:29:02 +11:00
Andrew Tridgell 9d75ffeba1 AHRS: rename DCM and Quaternion implementions ready for AHRS class
this is the first step to creating a general AHRS class for ArduPilot
2012-03-19 17:29:01 +11:00