Commit Graph

582 Commits

Author SHA1 Message Date
Paul Riseborough
7b40e89463 AP_NavEKF3: Adjust gyro bias process noise tuning
NEw value is a compromise between roll/pitch angle and horizontal state velocity estimation errors and the noise in the gyro bias estimate
2021-07-23 10:19:50 +09:00
Paul Riseborough
082f8e42f6 AP_NavEKF3: Allow smaller dvel bias state variances for improved tuning 2021-07-23 10:19:50 +09:00
Paul Riseborough
315d9ef9d8 AP_NavEKF3: Retune IMU process noise
Required to achieve equivalent fusion noise and weighting on IMU vs other sources to previous param defaults with the old covariance prediction equations.
2021-07-23 10:19:50 +09:00
Paul Riseborough
344f2d0eb7 AP_NavEKF3: Make gyro bias learning less noisy 2021-07-23 10:19:50 +09:00
Paul Riseborough
fcf7a7c8f7 AP_NavEKF3: Fix bug preventing learning of XY IMU dvel bias in flight 2021-07-23 10:19:49 +09:00
Paul Riseborough
4096e75b15 AP_NavEKF3: Change powf(x,2) to sq(x) 2021-07-23 10:19:49 +09:00
Paul Riseborough
5cb4cf870d AP_NavEKF3: Update covariance prediction equations 2021-07-23 10:19:49 +09:00
Paul Riseborough
14edac7e5c AP_NavEKF3: Use alternate form for quaternion to rotmat equations in derivation 2021-07-23 10:19:49 +09:00
Randy Mackay
0cbcb9dc91 AP_NavEKF3: EK3_RNG_USE_HGT param references EK3_SRCx_POSZ 2021-07-23 10:19:47 +09:00
Peter Barker
304927a41e AP_NavEKF3: pass NavEKF failures back up to callers 2021-07-23 10:19:46 +09:00
Andrew Tridgell
c31de1a5ca 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-23 10:19:46 +09:00
Andrew Tridgell
56ddaa1a99 AP_NavEKF3: fixed indentation in readGpsData() 2021-07-23 10:19:46 +09:00
Andrew Tridgell
579e4566c6 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-23 10:19:46 +09:00
Andrew Tridgell
d43e95a39a AP_NavEKF3: moved checkUpdateEarthField to be called less often 2021-07-23 10:19:46 +09:00
Andrew Tridgell
e409202bef AP_NavEKF3: update earth field at 1Hz
this prevents large mag errors on long distance flights
2021-07-23 10:19:46 +09:00
Andrew Tridgell
163a37efa7 AP_NavEKF3: convert code_gen.py to ftype 2021-07-23 10:19:46 +09:00
Andrew Tridgell
5531703548 AP_NavEKF3: convert powF(xx,2) calls to sq(xx) 2021-07-23 10:19:46 +09:00
Andrew Tridgell
c988f23389 AP_NavEKF3: convert EKF3 derivation to ftype 2021-07-23 10:19:46 +09:00
Andrew Tridgell
1119ffe6ba AP_NavEKF3: allow for double EKF build 2021-07-23 10:19:46 +09:00
Paul Riseborough
1281033931 AP_NavEKF3: Remove unused class variable rngBcnTimeout 2021-06-23 13:26:02 +09: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
Josh Henderson
64dc3bbe41 AP_NavEKF3: Fix #17789 core's ekf origin altitude different if flying 2021-06-22 12:01:10 +10:00
Josh Henderson
0ae3730f11 AP_NavEKF3: non_GPS modes ensure EKF origin set only once and stays in sync
ekf3
2021-06-22 12:01:10 +10:00
Peter Barker
d6348a0786 AP_NavEKF3: remove getBodyFrameOdomDebug
Not used after we moved logging to be within AP_NavEKF3
2021-06-07 09:28:52 +10:00
Peter Barker
dd3ab29b2f AP_NavEKF3: remove getFilterGpsStatus
Not needed after we moved logging into NavEKF3
2021-06-07 09:25:53 +10:00
Siddharth Purohit
cd5b764fd8 AP_NavEKF3: use first usable compass index to set magSelectIndex 2021-06-02 17:10:19 +10: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
Peter Barker
15658362b5 AP_NavEKF3: make time-horizon OF data a local variable
Saves 40 bytes of RAM per core on stm32
2021-06-01 09:56:19 +10: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
9014afc9d4 AP_NavEKF3: Fix typo in comment 2021-05-11 10:37:08 +10:00
Paul Riseborough
b9abef37c3 AP_NavEKF3: Reset to GPS yaw if fusion times out when on ground. 2021-05-11 10:37:08 +10:00
Peter Barker
f4591faeed AP_NavEKF3: simplify taking of GPS measurements 2021-03-23 15:11:33 +11: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
1498b516a3 AP_NavEKF3: Don't try to learn gyro biases that are poorly observable 2021-03-23 10:05:59 +11:00
Paul Riseborough
44be7161c0 AP_NavEKF3: Reduce yaw drift when operating without external aiding
Also fixes bug in the determination of the total angular variance threshold for when to fuse a zero innovation yaw measurement.
2021-03-23 10:05:59 +11:00
Paul Riseborough
53c4b163ce AP_NavEKF3: Allow adjustment of on ground not moving test sensitivity
Also re-tune default sensitivity based on user supplied logs with noisy gyro data.
2021-03-23 10:05:59 +11:00
Paul Riseborough
e7b08c1ffc AP_NavEKF3: Update log message format description 2021-03-23 10:05:59 +11:00