Andrew Tridgell
e4e69468ca
AP_NavEKF3: fixed velocity reset on AID_NONE
...
The ResetVelocity() function is only supposed to reset XY states, not
Z state. Resetting the Z state for velocity results in a large
velocity glitch if a vehicle is descending or ascending when aiding
switches to AID_NONE
this fixes #19386
2024-01-07 10:59:25 +11:00
Paul Riseborough
dfd6e6d8ac
AP_NavEKF3: Reduce use of GSF yaw for planes with no compass
2023-04-21 09:48:45 +10:00
Paul Riseborough
2228937536
AP_NavEKF3: Don't allow range finder use to start if terrain state is stale
2022-11-22 11:23:44 +11:00
Peter Barker
5cb6906968
AP_NavEKF3: add and use AP_BEACON_ENABLED
2022-11-16 08:16:31 +11:00
Tamas Nepusz
8959d35b91
AP_NavEKF3: add EK3_GPS_VACC_MAX as a threshold that decides whether to use GPS as altitude source depending on vAcc
2022-08-03 17:57:05 +10:00
Randy Mackay
e0023a99bc
AP_NavEKF3: replace AP_HAL::millis() with dal.millis()
2022-05-18 17:59:57 +10:00
Paul Riseborough
8429c66860
AP_NavEKF3: Make subsequent bad IMU event detections faster
2021-09-23 18:55:28 +10:00
Paul Riseborough
458c67639d
AP_NavEKF3: Force velocity state to follow GPS when IMU data is bad
2021-09-23 18:55:28 +10:00
Paul Riseborough
c0d88e2673
AP_NavEKF3: Fix vertical velocity reset
...
Fixes bug that prevents the vertical velocity being reset to the GPS if the position aiding has already timed out and improves sensitivity of the bad IMU data check.
2021-09-23 18:55:28 +10:00
Paul Riseborough
17c2ba5ac1
AP_NavEKF3: Fix bug causing too frequent resets if bad IMU data detected
2021-09-23 18:55:28 +10:00
Josh Henderson
3006d50f97
AP_NavEKF3: use vector.xy().length() instead of norm(x,y)
2021-09-14 10:43:46 +10:00
Paul Riseborough
5fa3ed5755
AP_NAvEKF3: use #define value for bad IMU hold time
2021-07-22 18:20:45 +10:00
Paul Riseborough
3e123c0a30
AP_NavEKF3: Use sensor variance when checking for bad IMU
2021-07-22 18:20:45 +10:00
Paul Riseborough
e3bdbcd8ea
AP_NavEKF3: Make bad IMU status more persistent
2021-07-22 18:20:45 +10:00
Paul Riseborough
ed61287410
AP_NavEKF3: Don't update accel bias states if vibration affected
2021-07-22 18:20:45 +10:00
Andrew Tridgell
fc2118f42b
AP_NavEKF3: process GPS yaw independently of GPS fix
...
this processes GPS yaw with its own timestamp and as a separated step
from fusing position and velocity. This makes the yaw time handling
more accurate as yaw for moving baseline GPS comes in as a separate
piece of data from the position and velocity
2021-07-21 17:59:49 +10:00
Andrew Tridgell
6b73c2151a
AP_NavEKF3: implement moving origin
...
this shifts EKF_origin to the current location at 1Hz, while leaving
public_origin alone. All output APIs and logging are relative to
public_origin.
The effect of this change is to remove the distortion caused by a
spherical earth, which allows the EKF to operate without errors at
very long distances from the public_origin.
2021-07-14 17:34:40 +10:00
Andrew Tridgell
885e518741
AP_NavEKF3: allow for double EKF build
2021-07-10 07:20:41 +10:00
Paul Riseborough
9d85a4292e
AP_NavEKF3: Ensure postion timeout flag and timer is always reset
2021-06-23 13:26:02 +09:00
Paul Riseborough
de3c6d6e5c
AP_NavEKF3: Fade each vert vel variance clip count over 1 second
2021-06-23 13:26:02 +09:00
Paul Riseborough
ac92182153
AP_NavEKF3: Clean up initialisation of boolean array
2021-06-23 13:26:02 +09:00
Paul Riseborough
b0763f04f1
AP_NavEKF3: Remove unwanted line
2021-06-23 13:26:02 +09:00
Paul Riseborough
b7aad13cc8
AP_NavEKF3: Protect against collapse of velocity and position variances
2021-06-23 13:26:02 +09:00
Paul Riseborough
36160ba9ce
AP_NavEKF3: Fix bug preventing horizontal position reset if badIMUdata
2021-06-23 13:26:02 +09:00
Paul Riseborough
5d00b7d042
AP_NavEKF3: Fix bug preventing height reset if badIMUdata
2021-06-23 13:26:02 +09:00
Paul Riseborough
e4eb8339d0
AP_NavEKF3: Fix bug preventing velocity reset if badIMUdata
2021-06-23 13:26:02 +09:00
Paul Riseborough
a5a25411da
AP_NavEKF3: Remove unnecessary baro limiting
2021-06-02 11:13:16 +09:00
Paul Riseborough
124f016e5b
AP_NavEKF3: Use parameter to set baro ground effect dead-zone
2021-06-02 11:13:16 +09:00
Paul Riseborough
76d0dcc25c
AP_NavEKF3: Use common method for handling baro ground effect
2021-06-02 11:13:16 +09:00
Andrew Tridgell
dc9435a88d
AP_NavEKF3: don't limit baro change when we are in fixed wing mode
2021-06-02 11:13:16 +09:00
Peter Barker
c00f110f3d
AP_NavEKF3: use DAL APIs for takeoff/touchdown expected
2021-06-02 11:13:16 +09:00
Paul Riseborough
ac87cab6bc
AP_NavEKF3: constify array index variable
2021-03-23 10:05:59 +11:00
Paul Riseborough
1498b516a3
AP_NavEKF3: Don't try to learn gyro biases that are poorly observable
2021-03-23 10:05:59 +11:00
Paul Riseborough
918606e71d
AP_NavEKF3: Don't use fake measurements to learn dvel bias
2021-03-23 10:05:59 +11:00
Paul Riseborough
c709ad9c80
AP_NavEKF3: Add missing axis specific dvel bias update inhibit
2021-03-23 10:05:59 +11:00
Paul Riseborough
a07427fd30
AP_NavEKF3: Don't learn poorly observed IMU dvel bias states before flight
2021-03-23 10:05:59 +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
chobitsfan
26a3a02c81
AP_NavEKF3: use posxy_source in all places
2021-01-14 16:49:12 +09:00
chobits
e73d28fe19
AP_NavEKF3: remove redundant extnav code
2021-01-12 21:56:36 +09:00
Peter Barker
b79a26135c
AP_NavEKF3: move posvel fusion health booleans to be on the stack
2020-12-01 10:40:09 +11:00
Andrew Tridgell
d242339f2e
AP_NavEKF3: added have_vz flag to GPS buffer data
...
this ensures that we record GPS vertical velocity status for every
sample correctly
2020-12-01 10:33:50 +11:00
Andrew Tridgell
80f7906744
AP_NavEKF3: removed inhibitGps and inhibitGpsVertVel options
...
these were unused
2020-12-01 10:33:50 +11:00
Andrew Tridgell
603e0c090d
AP_NavEKF3: don't reset EKx_GPS_TYPE when GPS has no vertical velocity
...
setting the parameter to 1 causes the following issues:
- the GPS may not have vertical velocity at the time the parameter
set happens, but may get it later when the GPS is fully configured
- we may switch between GPS modules which do/don't have vertical
velocity
- the user may download parameters after the set(1), and end up with
incorrect parameters they may later load onto the vehicle,
permanently disabling use of vertical velocity
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
6daaa06317
AP_NavEKF3: integrate AP_NavEKF_Source::useVelXYSource
...
also integrate useVelZSource
2020-11-20 16:43:44 +09:00
Randy Mackay
58aa6086df
AP_NavEKF3: always calculate GPS innovations and variances
2020-11-20 16:43:44 +09:00
Randy Mackay
e7e91b1c3b
AP_NavEKF3: always calculate extNav innovations and variances
2020-11-20 16:43:44 +09:00
Randy Mackay
6b2b5c4ca0
AP_NavEKF3: add CalculateVelInnovationsAndVariances
2020-11-20 16:43:44 +09:00