Commit Graph

677 Commits

Author SHA1 Message Date
Andrew Tridgell fb1acd2065 AP_NavEKF3: fixed race condition in updateFilterStatus()
filter status was initially set to zero then updated. This interacts
with the IMU filtering code which checks filter status from a
different thread to determine active_EKF_type(). When the race
condition is hit then the IMU we are running notch filters on changes
for a single sample, causing a notch filter glitch
2023-08-16 09:54:47 +09:00
Paul Riseborough fef6345c2f AP_NavEKF3: Increase delta velocity bias state process noise
Required due to state variance collapse on ground with some systems using RTK GPS.
2023-05-25 11:03:52 +09:00
Paul Riseborough da7a4b47ed AP_NavEKF3: Strengthen recovery from bad delta velocity bias learning 2023-05-25 11:03:52 +09:00
Paul Riseborough 04d21fc368 AP_NavEKF3: Increase default value of EK3_ABIAS_P_NSE
This is required because some hardware setups with RTK GPS have experienced a collapse of the delta velocity state variances.
2023-05-25 11:03:52 +09:00
Paul Riseborough 69b26836f0 AP_NavEKF3: Retune and fix delta velocity bias state variance protection 2023-05-25 11:03:52 +09:00
Paul Riseborough 2eb627775a AP_NavEKF3: Prevent on ground range to ground being used in flight 2022-12-10 10:38:06 +09:00
Paul Riseborough b0011ce014 AP_NavEKF3: Don't allow range finder use to start if terrain state is stale 2022-12-10 10:38:06 +09:00
Andrew Tridgell 3a72cd1ce2 AP_NavEKF3: fixed getLLH alt for local origin height
this fixes a bug introduced in #21834

this fix in #21834 was correct for getPosD, but should not have been
applied to getLLH

this caused cruise mode in plane to descend/ascend by the difference
between the public and local origins on mode entry

fixes #21984
2022-10-24 22:23:43 +09:00
Paul Riseborough cd3b7389ea AP_NavEKF3: Allow wind states to recover faster when airspeed sensor failed 2022-10-04 16:50:15 +09:00
Paul Riseborough 2edf166252 AP_NavEKF3: Allow reporting of airspeed consistency for a deselected sensor 2022-10-04 16:50:15 +09:00
Paul Riseborough 85c1c98a59 AP_NavEKF3: Add accessor function for airspeed health monitoring 2022-10-04 16:50:15 +09:00
Paul Riseborough 47189d2c73 AP_NavEKF3: Enable monitoring of unhealthy airspeed sensors
Innovations and innovation test ratios will still be calculated and reported for an unhealthy sensor, but the EKF states wnd covariance matrix will not be modified.
2022-10-04 16:50:15 +09:00
Andrew Tridgell 03c27c6626 AP_NavEKF3: fixed EKF3 origin alt inconsistency
always use common origin, and adjust output posD for difference
between public and local lane origin heights
2022-10-04 16:50:15 +09:00
Peter Barker 0665f9c32b AP_NavEKF3: store and use lastKnownPositionD
When returning our last-known-position we were supplying lat/lng but not
altitude.

This usually really doesn't matter as this result generally isn't used,
especially for altitude.  OTOH, it may prevent a bug into the future.
2022-08-22 19:48:03 +10:00
nrt 0c65cd1b47 AP_NavEKF3: added a getter function to infer the source index used by ekf3 2022-08-18 02:05:27 -04:00
Peter Barker 1b13dd053b AP_NavEKF3: use send_mesage for sending status report 2022-08-16 09:45:51 +10:00
Peter Barker 0443c8561b AP_NavEKF3: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10: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
Henry Wurzburg b7f49db1f7 AP_NavEKF3: Add streaming log verbosity level parameter 2022-08-02 10:21:39 +10:00
Iampete1 cf14e741ee AP_NavEKF3: only include log struture if enabled 2022-07-13 18:14:12 +10:00
Andrew Tridgell e2a83ba428 AP_NavEKF3: fixed undefined behaviour in logging 2022-07-12 11:00:08 +10:00
Pierre Kancir 21890000f7 AP_NavEKF3: fix python files exec permissions 2022-06-08 08:16:42 +09:00
Andrew Tridgell d5670ace3b AP_NavEKF3: fixed use of configured() vs configured_in_storage() 2022-06-06 13:11:50 +10:00
Andrew Tridgell 74c4f3c9a9 AP_NavEKF3: log set source events 2022-05-31 09:17:37 +10:00
Randy Mackay eafb118b47 AP_NavEKF3: set filter status dead_reckoning bit 2022-05-25 20:05:21 +09:00
Randy Mackay e37bf9ad53 AP_NavEKF3: drag fusion for att and velAiding
also add dragTimeout
2022-05-25 20:05:21 +09:00
Randy Mackay 61c4643aed AP_NavEKF3: minor comment fix 2022-05-25 20:05:21 +09:00
Ruffalo-sunghwan 5a4d61e3a4 AP_NavEKF3 : correct comment spelling 2022-05-24 20:27:45 +09:00
Randy Mackay e0023a99bc AP_NavEKF3: replace AP_HAL::millis() with dal.millis() 2022-05-18 17:59:57 +10:00
Randy Mackay 37e9ce3fb7 AP_NavEKF3: correct wind estimate param descriptions
EK3_MCOEF becomes EK3_DRAG_MCOEF
EK3_BCOEF_X/Y becomes EK3_DRAG_BCOEF_X/Y
2022-04-13 07:57:35 +09:00
Peter Barker 0b16c4063e AP_NavEKF3: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker adf9c21d48 AP_NavEKF3: remove instance id from EK3 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-06 17:36:05 +10:00
Peter Barker df4911cbcb AP_NavEKF3: avoid direct use of Location alt field 2022-03-22 10:33:37 +11:00
Andrew Tridgell a4da65ea05 AP_NavEKF3: fixed constrain indexing bug
fixes #20180

thanks to @liyue75 for spotting this!
2022-03-01 17:06:44 +09:00
Henry Wurzburg 0f05cb06fa AP_NavEKF3: update and correct GSF parameter documentation 2022-02-15 10:56:35 +11:00
Randy Mackay 0c7ad9511f AP_NavEKF3: FuseOptFlow only calculates range and velocity once
was unnecessarily recalculating these values before fusion
2022-02-09 08:42:29 +09:00
Andrew Tridgell 9dcff1a23f AP_NavEKF3: set rejecting_airspeed flag
we report as rejecting airspeed when we have not fused airspeed for 3s
and want to use airspeed
2022-02-07 14:13:49 +11:00
Randy Mackay cfcdc1e78f AP_NavEKF3: optflow terrain reset after 5sec 2022-02-02 18:04:43 +11:00
Randy Mackay e16a64383f AP_NavEKF3: getOptFlowSample returns latest correct flow data for use in calibration 2022-01-29 08:26:12 +09:00
Randy Mackay cff3794d25 AP_NavEKF3: minor spelling fixes 2022-01-17 11:30:47 +09:00
VMsunghwan db9c1bbfaf AP_NavEKF3 : correct typo
receverPosDownMax -> receiverPosDownMax
receverPosDownMin -> receiverPosDownMin
calcuate -> calculate
2022-01-17 11:25:56 +09:00
Hwurzburg 970e5f829b AP_NavEKF3: remove user unintelligible GCS message 2022-01-12 08:11:18 +11:00
Andrew Tridgell a33febd90a AP_NavEKF3: fixed gaps in EKF logging
timestamps should not be static as otherwise some lanes will not be
logged
2021-12-28 16:03:47 +11:00
Paul Riseborough 5178f4a7d0 AP_NavEKF3: Add missing covariance row reset 2021-12-20 09:28:37 +11:00
Peter Barker 0cb4425eb9 AP_NavEKF3: fix type, 'willbe' -> 'will be' 2021-12-17 09:44:57 +09:00
Peter Barker 15ec2c9c40 AP_NavEKF3: allow boards to override NavEKF3 features 2021-12-14 11:12:50 +11:00
Andrew Tridgell 468444bef9 AP_NavEKF3: revert compass parameter changes 2021-12-04 16:51:53 +11:00
Peter Barker 308f4e99b4 AP_NavEKF3: correct structure used for logging
XKF4 and XKF5 are clones of NKF4 and NKF5, which is why this worked
2021-12-03 15:34:21 +09:00
Josh Henderson a89f58a775 AP_NavEKF3: allow define for IMU_MASK_DEFAULT 2021-11-30 10:20:54 +11:00
Iampete1 e818decc39 AP_NavEKF3: update compass param discription 2021-11-30 08:14:43 +09:00