Paul Riseborough
59d31cc7d5
AP_NavEKF3: Rework non-airspeed wind estimation
...
Faster wind estimation when not using airspeed with acceptable noise in wind velocity estimates.
2021-07-22 18:20:45 +10:00
Paul Riseborough
7497590363
AP_NavEKF3: Increase lower state variance limit when vibration affected
...
This makes state corrections from GPS and baro observations more aggressive
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
62d70a628e
AP_NavEKF3: Use large accel process noise when IMU data is bad
2021-07-22 18:20:45 +10:00
Paul Riseborough
72dc998509
AP_NavEKF3: Allow smaller dvel bias state variances for improved tuning
2021-07-22 18:20:45 +10:00
Paul Riseborough
ce4d13091a
AP_NavEKF3: Fix bug preventing learning of XY IMU dvel bias in flight
2021-07-22 18:20:45 +10:00
Paul Riseborough
6242ce19fa
AP_NavEKF3: Change powf(x,2) to sq(x)
2021-07-22 18:20:45 +10:00
Paul Riseborough
bb9eed28a9
AP_NavEKF3: Update covariance prediction equations
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
44f098c86d
AP_NavEKF3: convert powF(xx,2) calls to sq(xx)
2021-07-12 17:27:08 +10:00
Andrew Tridgell
5319e3910f
AP_NavEKF3: moved checkUpdateEarthField to be called less often
2021-07-10 07:20:41 +10:00
Andrew Tridgell
a8c6d742aa
AP_NavEKF3: update earth field at 1Hz
...
this prevents large mag errors on long distance flights
2021-07-10 07:20:41 +10:00
Andrew Tridgell
885e518741
AP_NavEKF3: allow for double EKF build
2021-07-10 07:20:41 +10:00
Paul Riseborough
1281033931
AP_NavEKF3: Remove unused class variable rngBcnTimeout
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
b7aad13cc8
AP_NavEKF3: Protect against collapse of velocity and position variances
2021-06-23 13:26:02 +09:00
Siddharth Purohit
cd5b764fd8
AP_NavEKF3: use first usable compass index to set magSelectIndex
2021-06-02 17:10:19 +10:00
Peter Barker
c00f110f3d
AP_NavEKF3: use DAL APIs for takeoff/touchdown expected
2021-06-02 11:13:16 +09:00
Randy Mackay
02f6ca51bc
AP_NavEKF3: init rngOnGnd to 5cm to avoid div-by-zero
2021-05-28 08:08:08 +09:00
Paul Riseborough
1018801522
AP_NavEKF3: White space and comment fixes
2021-03-23 10:05:59 +11:00
Paul Riseborough
7113387d27
AP_NavEKF3: Use better defined data type
2021-03-23 10:05:59 +11:00
Paul Riseborough
ac87cab6bc
AP_NavEKF3: constify array index variable
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
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