Commit Graph

136 Commits

Author SHA1 Message Date
priseborough
4b1c334bba AP_NavEKF3: improve stability of co-variance matrix processing
This patch prevents the delta velocity bias state variances collapsing due to insufficient process noise and causing bad bias estimates to form.
2021-03-23 10:05:59 +11:00
Paul Riseborough
85c0040fa3 AP_NavEKF3: Improve inFlight detection for fixed wing
Better handle case where no airspeed sensor is being used with a hand launch.
2021-03-05 12:10:01 +11:00
Paul Riseborough
9a5a264aa0 AP_NavEKF3: Improve wind estimation without airspeed sensing
Enable default airspeed variance to be specified externally
Improve control of sideslip fusion
Don't modify non wind states unnecessarily when using synthesised air data measurements
2021-03-05 12:10:01 +11:00
Andrew Tridgell
ddc4d08e8f AP_NavEKF3: make drag fusion optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell
1ccda938cb AP_NavEKF3: make external navigation optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell
8da511f039 AP_NavEKF3: make body odomotry build depend on vehicle type
saves about 11k of flash
2021-01-24 11:56:52 +11:00
Andy Piper
099d6aa72e AP_NavEKF3: add filter reset when vehicle is idle for too long 2021-01-15 15:47:20 +11:00
Andrew Tridgell
59fa794818 AP_NavEKF3: constrain vertical error
this prevents a floating point exception with external AHRS
2021-01-05 21:13:12 +11:00
Randy Mackay
27c998ad94 AP_NavEKF3: rename source and yawFusionMethod from EXTERNAL to GPS 2021-01-05 10:58:06 +11:00
Randy Mackay
5891c6ace8 AP_NavEKF3: separate GPS yaw from ExtNav yaw 2021-01-05 10:58:06 +11:00
Paul Riseborough
a9e76d44af AP_NavEKF3: Clean up yaw fusion logic 2020-12-15 19:29:16 +11:00
Paul Riseborough
c9ab4b18b0 AP_NavEKF3: Add multicopter wind estimation 2020-12-11 15:21:41 +11:00
Andrew Tridgell
bdba430e55 AP_NavEKF3: save memory on beacon debug structure
only allocate when beacons are enabled. This relies on a guarantee in
the DAL that the beacon count cannot change
2020-12-01 10:53:08 +11:00
Andrew Tridgell
bb32f1a397 AP_NavEKF3: avoid initialising unused ring buffers
this assumes the nav sources are treated as reboot required
2020-12-01 10:53:08 +11:00
Peter Barker
e972fb31b1 AP_NavEKF3: remove unused variables 2020-12-01 10:40:09 +11:00
Peter Barker
0529ddcd67 AP_NavEKF3: move badMagYaw onto stack 2020-12-01 10:40:09 +11:00
Peter Barker
2d25149e2e AP_NavEKF3: move global state to be on the stack 2020-12-01 10:40:09 +11:00
Andrew Tridgell
80f7906744 AP_NavEKF3: removed inhibitGps and inhibitGpsVertVel options
these were unused
2020-12-01 10:33:50 +11:00
Randy Mackay
5eb3875ebb AP_NavEKF3: rename posxy_source_last and posxy_source_reset 2020-11-20 16:43:44 +09:00
Randy Mackay
33b6212cce AP_NavEKF3: rename _sources to sources 2020-11-20 16:43:44 +09:00
Randy Mackay
faed58a027 AP_NavEKF3: integrate Source for yaw 2020-11-20 16:43:44 +09:00
Randy Mackay
8931e50166 AP_NavEKF3: integrate Source for alt 2020-11-20 16:43:44 +09:00
Randy Mackay
c21d58ebea AP_NavEKF3: integrate Source for position 2020-11-20 16:43:44 +09:00
Andrew Tridgell
0bc77a3baf AP_NavEKF3: fixed whitespace 2020-11-10 16:15:45 +11:00
Andrew Tridgell
6fe05a9ab6 AP_NavEKF3: restore XKTV message 2020-11-10 16:15:45 +11:00
Andrew Tridgell
9b81c5a1e0 AP_NavEKF3: use dal reference in EKF backends
saves a bit of flash space
2020-11-10 16:15:45 +11:00
Andrew Tridgell
1bdf6173ec AP_NavEKF3: removed have_ekf_logging 2020-11-10 16:15:45 +11:00
Andrew Tridgell
096aab9388 AP_NavEKF3: convert to use AP_DAL for new replay structure
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
2020-11-10 16:15:45 +11:00
Randy Mackay
7b898ee001 AP_NavEKF3: minor comment and format fixes 2020-10-28 12:17:40 +09:00
Paul Riseborough
f2af2b3458 AP_NavEKF3: Initialise tiltErrorVariance class variable 2020-10-26 11:03:50 +11:00
Paul Riseborough
43386a8eea AP_NAvEKF3: Use a const reference 2020-10-26 11:03:50 +11:00
Paul Riseborough
64a3d8fe4e AP_NavEKF3: Update documentation 2020-10-26 11:03:50 +11:00
Paul Riseborough
6c7820dd8d AP_NavEKF3: Add verification of tiltErrorVariance() method in SITL 2020-10-26 11:03:50 +11:00
Paul Riseborough
16ae75a681 AP_NavEKF3: Consolidate and log tilt error variance calculation 2020-10-26 11:03:50 +11:00
Paul Riseborough
4e41e9f5f1 AP_NavEKF3: Ensure consistent use of 312 or 321 rotation order
Prevents possibility of a differnt sequence being used to calculate the yaw and application of the yaw to the quaternions
2020-10-26 11:03:50 +11:00
Paul Riseborough
fa10d114e4 AP_NavEKF3: Fix yaw drift after yaw reset at +-90 deg pitch
Use existing covariance prediction code to set quaternion state covariances.
Assumes tilt error is 3 deg 1-sigma.
2020-10-26 11:03:50 +11:00
Paul Riseborough
73d5ca5ad3 AP_NavEKF3: Fix yaw drift after yaw reset at +-90 deg pitch
Use existing covariance prediction code to set quaternion state covariances.
Assumes tilt error is 3 deg 1-sigma.
TODO derive and add function that calculates tilt error variance.
2020-10-26 11:03:50 +11:00
Paul Riseborough
a97d030e4b AP_NavEKF3: Reset earth field variances when starting mag field estimation 2020-10-26 11:03:50 +11:00
Paul Riseborough
9168d0cd19 AP_NavEKF3: Initialise mag field variances to non zero values 2020-10-26 11:03:50 +11:00
Paul Riseborough
f81abd73d6 AP_NavEKF3: Update covariance prediction to yse SymPy generated equations
Saves flash and variable space.
2020-10-26 11:03:50 +11:00
Peter Barker
0496ecc4f6 AP_NavEKF2: remove unused state variables 2020-10-22 08:47:08 +11:00
Peter Barker
a1e7c91f8e AP_NaveEKF3: reduce code duplication in setup_core
Less code.

Saves 40 bytes on PixRacer
2020-10-22 08:47:08 +11:00
Peter Barker
ef505df78a AP_NavEKF3: remove unused quat2Tbn method 2020-10-20 11:40:54 +11:00
Peter Barker
3dc67f09fd AP_NavEKF3: remove unused innovationIncrement and lastInnovation 2020-10-20 11:24:34 +11:00
Randy Mackay
f5a04fd1a3 AP_NavEKF3: shorten buffer size send_text message length 2020-09-29 08:57:52 +09:00
Andrew Tridgell
8a4b0f858a AP_NavEKF3: reset body mag variances at key points
we need to reset the body mag variances if we change sensors or if we
are starting 3D fusion. When not doing 3D fusion we zero the
variances, so they must be initialised again when we restart
fusion. This fixes a bug in handling the variances on a 2nd flight
2020-09-20 09:25:57 +10:00
Harshit Kumar Sankhla
edc3709653 AP_NavEKF3: implement sensor affinity using EK3_AFFINITY parameter
this allows the EKF core index to be used to select a GPS/baro/mag
instance. This is an alternative to GPS blending that allows EKF lane
switching to be used to select the right combination of GPS and IMU
add logging to XKFS message
2020-08-27 20:20:51 +10:00
Randy Mackay
384029d278 AP_NavEKF3: rngBcnDataNew made local 2020-08-25 09:38:10 +09:00
Randy Mackay
d292ba028a AP_NavEKF3: increase beacon buffer to imu + 1 2020-08-25 09:38:10 +09:00
Randy Mackay
4c40d2ac3f AP_NavEKF3: readyToUseBodyOdm uses delayed imu and wheel encoder timestamps 2020-08-21 13:18:58 +09:00