Commit Graph

697 Commits

Author SHA1 Message Date
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 d5c6d1c8a8 AP_NavEKF3: Increase delta velocity bias state process noise
Required due to state variance collapse on ground with some systems using RTK GPS.
2023-06-08 18:41:06 +10:00
Paul Riseborough 328354999b AP_NavEKF3: Strengthen recovery from bad delta velocity bias learning 2023-06-08 18:41:06 +10:00
Paul Riseborough 388c4738dc 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-06-08 18:41:06 +10:00
Paul Riseborough d04a301e9a AP_NavEKF3: Retune and fix delta velocity bias state variance protection 2023-06-08 18:41:06 +10:00
Paul Riseborough 61b276995b AP_NavEKF3: Lock in wind state estimates when using srag to dead reckon 2023-06-08 18:41:06 +10:00
Andrew Tridgell bbe79b3c18 AP_NavEKF3: handle core setup failure
ensure num_cores is left as zero so that calls such as Log_Write don't
de-reference nullptr
2023-05-05 13:22:51 +10:00
Paul Riseborough df2f8366c5 AP_NavEKF3: Improve protection against GPS glitches during yaw alignment 2023-04-21 09:48:45 +10:00
Paul Riseborough dfd6e6d8ac AP_NavEKF3: Reduce use of GSF yaw for planes with no compass 2023-04-21 09:48:45 +10:00
bugobliterator deeeb4134c AP_NavEKF3: use INS_MAX_INSTANCES instead of MAX_EKF_CORES for IMU mask 2023-03-21 10:04:16 +11:00
Peter Barker 2af6a05fa2 AP_NavEKF3: include writeWheelOdom symbol even if no body-odom
like the method above it, we need this symbol or we won't compile
2023-02-11 10:36:33 +11:00
Peter Barker 35a5a73f52 AP_NavEKF3: avoid using struct Location
clang reports this could be a problem when compiling under some EABIs.  Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h
2023-02-04 22:51:54 +11:00
Iampete1 16b1bd8b9a AP_NavEKF3: pre-arm return failure message for correct core 2023-01-31 13:36:56 +11:00
Peter Barker 8a312d4f34 AP_NavEKF3: use classes to fix MATH_CHECK_INDEXES 2023-01-25 19:58:54 +11:00
Peter Barker 7f4c5a9a84 AP_NavEKF3: tidy variable declarations 2023-01-25 19:58:54 +11:00
Peter Barker da95985dd7 AP_NavEKF3: remove mag_state state
we don't need to persist this across multiple calls as we now fuse all axes on the one step.

I've moved the defintion of these variables to where they are initialised to make it clear they're not used uninitialised.
2023-01-25 19:58:54 +11:00
Peter Barker 063a041d22 AP_NavEKF3: add trailing comma to AidingMode enum, reindent same 2023-01-25 19:50:34 +11:00
Peter Barker b716793a0e AP_NavEKF3: remove duplicated lines in parameter metadata 2022-12-28 13:21:18 +11:00
Andrew Tridgell 8bf8d4889a AP_NavEKF3: added get_enable() 2022-12-20 10:34:22 +11:00
Tatsuya Yamaguchi 366a325fc0 AP_NavEKF3: do not check the second range finder if RANGEFINDER_MAX_INSTANCES is 1 2022-12-20 10:05:24 +11:00
Andy Piper e4b8d8a9b6 AP_NavEKF3: ensure wind estimation from airspeed can be used on its own 2022-12-14 19:19:58 +11:00
Stephen Dade abcacec25f AP_NavEKF3: Add support for fixed height optical flow 2022-12-01 08:03:47 +09:00
Paul Riseborough 33349ed92a AP_NavEKF3: Prevent on ground range to ground being used in flight 2022-11-22 11:23:44 +11: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
Peter Barker 806b2708c1 AP_NavEKF3: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Andrew Tridgell 92f25150f6 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-23 11:23:48 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Andrew Tridgell 17d9018a91 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-09-30 07:44:42 +10:00
Paul Riseborough 481bec5ff5 AP_NavEKF3: Allow wind states to recover faster when airspeed sensor failed 2022-09-26 14:17:53 +10:00
Paul Riseborough 399f30bfce AP_NavEKF3: Allow reporting of airspeed consistency for a deselected sensor 2022-09-26 14:17:53 +10:00
Paul Riseborough eb0e9230a1 AP_NavEKF3: Add accessor function for airspeed health monitoring 2022-09-26 14:17:53 +10:00
Paul Riseborough 608b4c0713 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-09-26 14:17:53 +10: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