Paul Riseborough
5fa3ed5755
AP_NAvEKF3: use #define value for bad IMU hold time
4 years ago
Paul Riseborough
3e123c0a30
AP_NavEKF3: Use sensor variance when checking for bad IMU
4 years ago
Paul Riseborough
e3bdbcd8ea
AP_NavEKF3: Make bad IMU status more persistent
4 years ago
Paul Riseborough
ed61287410
AP_NavEKF3: Don't update accel bias states if vibration affected
4 years ago
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
4 years ago
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.
4 years ago
Andrew Tridgell
885e518741
AP_NavEKF3: allow for double EKF build
4 years ago
Paul Riseborough
9d85a4292e
AP_NavEKF3: Ensure postion timeout flag and timer is always reset
4 years ago
Paul Riseborough
de3c6d6e5c
AP_NavEKF3: Fade each vert vel variance clip count over 1 second
4 years ago
Paul Riseborough
ac92182153
AP_NavEKF3: Clean up initialisation of boolean array
4 years ago
Paul Riseborough
b0763f04f1
AP_NavEKF3: Remove unwanted line
4 years ago
Paul Riseborough
b7aad13cc8
AP_NavEKF3: Protect against collapse of velocity and position variances
4 years ago
Paul Riseborough
36160ba9ce
AP_NavEKF3: Fix bug preventing horizontal position reset if badIMUdata
4 years ago
Paul Riseborough
5d00b7d042
AP_NavEKF3: Fix bug preventing height reset if badIMUdata
4 years ago
Paul Riseborough
e4eb8339d0
AP_NavEKF3: Fix bug preventing velocity reset if badIMUdata
4 years ago
Paul Riseborough
a5a25411da
AP_NavEKF3: Remove unnecessary baro limiting
4 years ago
Paul Riseborough
124f016e5b
AP_NavEKF3: Use parameter to set baro ground effect dead-zone
4 years ago
Paul Riseborough
76d0dcc25c
AP_NavEKF3: Use common method for handling baro ground effect
4 years ago
Andrew Tridgell
dc9435a88d
AP_NavEKF3: don't limit baro change when we are in fixed wing mode
4 years ago
Peter Barker
c00f110f3d
AP_NavEKF3: use DAL APIs for takeoff/touchdown expected
4 years ago
Paul Riseborough
ac87cab6bc
AP_NavEKF3: constify array index variable
4 years ago
Paul Riseborough
1498b516a3
AP_NavEKF3: Don't try to learn gyro biases that are poorly observable
4 years ago
Paul Riseborough
918606e71d
AP_NavEKF3: Don't use fake measurements to learn dvel bias
4 years ago
Paul Riseborough
c709ad9c80
AP_NavEKF3: Add missing axis specific dvel bias update inhibit
4 years ago
Paul Riseborough
a07427fd30
AP_NavEKF3: Don't learn poorly observed IMU dvel bias states before flight
4 years ago
Andrew Tridgell
1ccda938cb
AP_NavEKF3: make external navigation optional
4 years ago
Andrew Tridgell
8da511f039
AP_NavEKF3: make body odomotry build depend on vehicle type
...
saves about 11k of flash
4 years ago
chobitsfan
26a3a02c81
AP_NavEKF3: use posxy_source in all places
4 years ago
chobits
e73d28fe19
AP_NavEKF3: remove redundant extnav code
4 years ago
Peter Barker
b79a26135c
AP_NavEKF3: move posvel fusion health booleans to be on the stack
4 years ago
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
4 years ago
Andrew Tridgell
80f7906744
AP_NavEKF3: removed inhibitGps and inhibitGpsVertVel options
...
these were unused
4 years ago
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
4 years ago
Randy Mackay
5eb3875ebb
AP_NavEKF3: rename posxy_source_last and posxy_source_reset
4 years ago
Randy Mackay
33b6212cce
AP_NavEKF3: rename _sources to sources
4 years ago
Randy Mackay
6daaa06317
AP_NavEKF3: integrate AP_NavEKF_Source::useVelXYSource
...
also integrate useVelZSource
4 years ago
Randy Mackay
58aa6086df
AP_NavEKF3: always calculate GPS innovations and variances
4 years ago
Randy Mackay
e7e91b1c3b
AP_NavEKF3: always calculate extNav innovations and variances
4 years ago
Randy Mackay
6b2b5c4ca0
AP_NavEKF3: add CalculateVelInnovationsAndVariances
4 years ago
Randy Mackay
2505fd5c1c
AP_NavEKF3: body and wheel odometry check source
4 years ago
Randy Mackay
8931e50166
AP_NavEKF3: integrate Source for alt
4 years ago
Randy Mackay
c21d58ebea
AP_NavEKF3: integrate Source for position
4 years ago
Andrew Tridgell
f5275fd0ad
AP_NavEKF3: fixed use of pointers in ringbuffers
...
these don't work with AP_DAL
4 years ago
Andrew Tridgell
9b81c5a1e0
AP_NavEKF3: use dal reference in EKF backends
...
saves a bit of flash space
4 years ago
Andrew Tridgell
096aab9388
AP_NavEKF3: convert to use AP_DAL for new replay structure
...
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
4 years ago
Randy Mackay
b726630ef4
AP_NavEKF3: pos timeout or glitch does not reset vel if fusing successfully
...
vel is not reset if GPS velocity, optical flow, visual odometry or wheel
encoders are successfully being fused
4 years ago
Randy Mackay
3b38aa6d7b
AP_NavEKF3: GPS change pos reset uses ResetPositonNE and ResetPositionD
...
Using these existing functions removes some code duplicate
non-functional change
4 years ago
Randy Mackay
2f1ae29a9c
AP_NavEKF3: extnav data gets corrected boolean
...
CorrectExtNavForSensorOffset and CorrectExtNavVelForSensorOffset use
corrected boolean to avoid correcting twice
4 years ago
Randy Mackay
a16de76f57
AP_NavEKF3: correct extnav position as it is recalled from the buffer
...
This makes extnav position correction consistent with the velocity correction
4 years ago
Randy Mackay
71487e9c10
AP_NavEKF3: gps_elements gets corrected flag
...
CorrectGPSForAntennaOffset uses this flag to ensure position and velocity are only corrected once
4 years ago