Andrew Tridgell
9fbd739ebe
AP_AHRS: protect against zero deltat in DCM
...
fixes issue #2657
2015-08-19 20:04:05 +09:00
Andrew Tridgell
27a098be9f
AP_AHRS: use delta_velocity and delta_angle in DCM
...
this prevents an aliasing effect by using the correct delta velocity
time value for each accelerometer sample used
2015-08-19 20:03:27 +09:00
Andrew Tridgell
7a76f72bf5
AP_AHRS: added uptime_ms() interface
2015-05-20 15:22:14 +10:00
Andrew Tridgell
3529e02675
AP_AHRS: if we have 3 gyros then only use first two
...
the 3rd gyro on a PH2 has a lot more noise as it is not vibration
isolated
2015-05-09 21:00:49 +10:00
Peter Barker
463270e0ee
AP_AHRS: avoid FPE when we don't have a compass reading
2015-05-05 15:02:35 +10:00
Andrew Tridgell
4d4a607b80
AP_AHRS: revert AP_Math class change
2015-05-05 13:27:05 +10:00
Tom Pittenger
20f47417d5
AP_AHRS: compiler warnings: apply is_zero(float) or is_equal(float) and float to doubles
2015-05-05 13:26:55 +10:00
Andrew Tridgell
6bfca648b9
AP_AHRS: raise DCM P gains when disarmed for first 20 seconds
2015-04-28 14:07:39 +10:00
Tom Pittenger
e28c555889
AHRS_DCM: fix compile warnings re float constants
...
Also fix example sketch
2015-04-24 12:26:08 +09:00
Paul Riseborough
5184bca87f
AP_AHRS: Prevent DCM reporting good tilt error when inverted
2015-04-23 20:35:39 +09:00
Paul Riseborough
ea8217bd3a
AP_AHRS: Reduce time constant on filtering of DCM error reporting
...
Reduces time constant from 2 to 1 second to make data more useful for pre-flight alignment checks by the EKF
2015-04-23 20:35:35 +09:00
Andrew Tridgell
a0969905ce
AP_AHRS: make get_error_rp() and get_error_yaw() const
...
this makes them usable by multiple consumers, and allows use by EKF
2015-04-21 21:42:17 +10:00
Andrew Tridgell
585a105128
AP_AHRS: use compass->last_update_usec()
2015-03-14 12:31:50 +11:00
Andrew Tridgell
68f64fa11c
AP_AHRS: make the healthy() method const
2015-02-01 14:13:52 +11:00
Andrew Tridgell
ed0a56cc3c
AP_AHRS: cope with the changed semantics of airspeed.use()
2015-01-20 11:27:58 +11:00
Jonathan Challinger
4975cefd84
AP_AHRS_DCM: update _accel_ef_blended
2014-12-05 19:40:06 +09:00
Randy Mackay
dffcfb42bc
AHRS: add reset_gyro_drift method
2014-10-28 20:25:33 +09:00
Randy Mackay
39c8535223
AHRS_DCM: sanity check AHRS_RP_P and AHRS_YAW_P
2014-10-21 21:41:41 +09:00
Andrew Tridgell
270bac4472
AP_AHRS: make get_position() const
...
This allows use from within AP_Mission
2014-10-20 08:36:20 +11:00
Andrew Tridgell
4ad643b233
AP_AHRS: use a common function for updating the CD values
...
this ensures the wrapping of yaw is consistent between the 3 use cases
2014-10-15 13:18:08 +11:00
Andrew Tridgell
63c06ea2af
AP_AHRS: fixed calls to DCM in parent class
...
use_compass() and reset() are common to AP_AHRS_DCM and
AP_AHRS_NavEKF. As AP_AHRS_NavEKF is a child of AP_AHRS_DCM, when we
call use_compass() from within AP_AHRS_DCM we actually end up calling
AP_AHRS_NavEKF::use_compass().
This has the effect of disabling the compass in DCM when EKF is active
and EKF has decided not to use the compass. That means that the DCM
yaw (and in fact the whole attitude) can get badly off while EKF is
enabled, making DCM an ineffective fallback if EKF fails.
The fix is to call the specific class versions of use_compass() and
reset()
2014-10-15 10:12:50 +11:00
Randy Mackay
85eee31510
AHRS: rename ekfNotStarted method to initialised
...
Also created default implementation in AP_AHRS class so AP_AHRS_DCM does
not need to implement it.
2014-10-02 14:40:54 +09:00
priseborough
7cea7c6a18
AP_AHRS : add method to report if EKF is waiting to start
2014-10-02 14:38:29 +09:00
Przemek Lekston
ae4814a773
AP_AHRS_DCM.cpp: changed the direction of position projection to ensure correct behavious in crosswind
2014-08-07 12:34:30 +10:00
Andrew Tridgell
6a275372dd
AP_AHRS: ensure get_position() fills in flags
2014-07-25 11:40:16 +10:00
Andrew Tridgell
b3c1e515dc
AP_AHRS: when no accel info available in buffer use current value
...
this prevents an initialisation error, and is reasonable in flight too
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-15 22:19:54 +10:00
Andrew Tridgell
315290029a
AP_AHRS: fixed check of accel sensor health
...
we need to check health of each accelerometer separately
2014-05-15 22:18:56 +10:00
Andrew Tridgell
1a05c27bbb
AP_AHRS: added healthy() function
...
this will be used to report when the AHRS subsystem becomes unhealthy
2014-05-15 21:14:21 +10:00
Andrew Tridgell
4d24a86088
AP_AHRS: prevent a infinity value
2014-04-21 15:37:07 +10:00
Andrew Tridgell
f07e4dee52
AP_AHRS: convert to new GPS API
2014-04-01 06:38:24 +11:00
Andrew Tridgell
b53496d470
AP_AHRS: choose the best accelerometer at each drift correction step
...
this greatly reduces the impact of aliasing on accelerometers by
choosing the accelerometer that produces the smallest error term in
DCM. The difference can be quite dramatic on the Pixhawk.
2014-02-27 09:41:28 +11:00
Andrew Tridgell
0b45d2bc06
AP_AHRS: removed the AHRS_GPS_DELAY parameter
...
the best value has turned out to be 1, and tweaking it has not turned
out to be useful, so this simplifies the code in preparation for
adding the anti-aliasing handling with multiple accelerometers
2014-02-27 08:57:44 +11:00
Jonathan Challinger
f321a5f241
AP_AHRS: Change airspeed_estimate to const in children of AP_AHRS
...
Allows roll/pitch controllers to use DCM's airspeed estimate. Thanks to Kevin Hester for assistance in finding this.
2014-02-25 18:49:16 +11:00
Andrew Tridgell
eedd88c2ec
AP_AHRS: give zero lat/lng and baro alt if no position yet in DCM
2014-02-15 09:25:40 +11:00
Andrew Tridgell
25ef0d5a7b
AP_AHRS: don't allow get_velocity_NED() and get_relative_position_NED() without EKF
...
this avoids some linking issues, plus the functions are inaccurate
without EKF
2014-02-15 05:48:24 +11:00
Andrew Tridgell
c62ccce9d8
AP_AHRS: make estimate_wind() public
...
this avoids it linking into copter
2014-02-15 05:48:24 +11:00
Paul Riseborough
08267cea87
AP_AHRS: Scheduling for yaw gain to reduce atitude errors in turning flight
2014-02-15 05:48:22 +11:00
Andrew Tridgell
5d43a1d704
AP_AHRS: added inertial nav interfaces to AHRS
2014-02-15 05:48:16 +11:00
Andrew Tridgell
392995ef84
AP_AHRS: make AHRS handle altitude
...
AHRS now holds the home position
2014-02-15 05:29:47 +11:00
Randy Mackay
6946d68318
AHRS_DCM: call update_trig
2014-02-08 18:16:42 +09:00
Paul Riseborough
f2c2811ef3
AP_AHRS & AP_Math: fixed bug in use of AHRS_TRIM parameters
2014-01-19 07:19:43 +11:00
Andrew Tridgell
baa4ecc2ea
APA_AHRS: update for compass API change
2013-12-09 17:34:07 +11:00
Andrew Tridgell
b248cc0868
AP_AHRS: fixed a build warning
2013-11-23 21:44:56 +11:00
Andrew Tridgell
6ed493b10f
AP_AHRS: added attitude_reset() method for HIL_SENSORS
2013-11-23 18:50:56 +11:00
Andrew Tridgell
4f871c87f1
AP_AHRS: detect and try to cope with bad accels
2013-11-07 13:54:16 +11:00
Andrew Tridgell
02d6f012ce
AP_AHRS: added accel sum delay buffer to account for GPS lag
2013-11-04 21:21:42 +11:00
Andrew Tridgell
d31e557983
AP_AHRS: save memory and reduce pointer references
...
use a refence for ins, and don't save gyro and accel between updates
2013-11-04 21:21:37 +11:00
Andrew Tridgell
cb52b6f367
AP_AHRS: removed limit on normalisation of accel reference vectors
...
this could lead to a bias in the accel drift correction
2013-11-04 21:20:41 +11:00
Andrew Tridgell
31eaaada62
AP_AHRS: removed vertical G limit on GPS velocity correction
...
this limit could lead to a bias in the accel drift correction, and is
frequenctly exceeded
2013-11-04 21:20:41 +11:00
Andrew Tridgell
a7931b1581
AP_AHRS: fixed wrapping bug in GPS based heading error
...
this bug could cause the GPS based yaw to use an expensive reset far
too often
2013-11-04 21:20:41 +11:00