Commit Graph

720 Commits

Author SHA1 Message Date
Andrew Tridgell dce2492321 AP_NavEKF3: use filtered gyro in INS position correction
this reduces the impact of IMU noise on the output velocity from the
EKF
2024-04-17 14:53:59 +10:00
Iampete1 21df26de75 AP_NavEKF3: use set_and_defualt when changing imu mask 2024-03-26 11:35:36 +11:00
Randy Mackay 65b4db5ede AP_NavEKF3: define Yaw alignment min GPS speed per vehicle 2024-03-26 10:01:42 +11:00
Peter Barker ce04d69d53 AP_NavEKF3: correct compilation in SITL when logging is disabled
this code is gated on HAL_BOARD_SITL already, and usually we have logging in SITL.  But not always
2024-03-12 09:25:17 +11:00
Marek S. Lukasiewicz 07681416f5 AP_NavEKF3: Match handling of MAV_CMD_EXTERNAL_POSITION_ESTIMATE to common MAVLink dialect 2024-03-07 18:13:51 +11:00
Peter Barker 21edc6aee1 AP_NavEKF3: do not trust number of beacons to not change
if the count from the beacon library changes we may end up looking at memory we shouldn't
2024-02-28 18:37:42 +11:00
Peter Barker a517d5fed1 AP_NavEKF3: correct initialisation of BeaconFusion data structure
the fusionReport object is not being cleared when the filter undergoes a forced reset.

So delete and recreate the object.  Will also make this sensitive to the number of beacons changing.

Also don't attempt to allocate zero bytes.
2024-02-28 18:37:42 +11:00
Peter Barker 2df3cb98c6 AP_NavEKF3: move initialisation of rngBcn into BeaconFusion method 2024-02-27 12:04:14 +11:00
Peter Barker e9d065c1cc AP_NavEKF3: tidy population of fusion reports
simply take a refefence and use it
2024-02-26 20:55:41 +11:00
Simon Hancock 07eecd3b67 AP_NavEKF3: Updates to log message units and help text
Set quaternion component units to no-unit from UNKNOWN
2024-01-21 14:26:54 +11:00
Peter Barker 0afed2f8c2 AP_NavEKF3: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Peter Barker 10c8af3409 AP_NavEKF3: do not use fmaxF on floating point values
it returns double, which will not fit into this float
2023-09-12 09:47:17 +10:00
Paul Riseborough 5aa7bd0b7a AP_NavEKF3: Allow operation with EK3_SRCx_POSZ = 0 (NONE) 2023-08-23 18:25:26 +10:00
Andy Piper c57efa1b20 AP_NavEKF3: allow high values of EK3_ALT_M_NSE for boards without baros 2023-08-23 18:25:26 +10:00
Paul Riseborough e3c0175bb4 AP_NavEKF3: Update EK3_GLITCH_RADIUS metadata 2023-08-16 17:56:43 +10:00
Paul Riseborough 842882355f AP_NavEKF3: increase innovation variance instead of clipping innovations 2023-08-16 17:56:43 +10:00
Paul Riseborough 573bd7c7f3 AP_NavEKF3: Provide option to clip velocity and position innovations 2023-08-16 17:56:43 +10:00
Andrew Tridgell 484312df93 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-12 17:47:56 +10:00
Andy Piper 2f97a9855a AP_NavEKF3: fix docs on ABIAS_P_NSE_DEFAULT 2023-07-14 08:33:05 +09:00
Andrew Tridgell d11d4fa0bf 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
2023-06-26 18:09:31 +10:00
Paul Riseborough 4d03327470 AP_NavEKF3: Fix sign error in position fix delay compensation 2023-06-08 16:31:22 +10:00
Paul Riseborough 3677cb025d AP_NavEKF3: Add handlers for external lat lng position set 2023-06-06 15:19:12 +10:00
Paul Riseborough c91909032f 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-24 10:31:26 +10:00
Paul Riseborough 1053daaf90 AP_NavEKF3: Strengthen recovery from bad delta velocity bias learning 2023-05-24 10:31:26 +10:00
Paul Riseborough b1111e79fe 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-24 10:31:26 +10:00
Paul Riseborough ef76890f9b AP_NavEKF3: Retune and fix delta velocity bias state variance protection 2023-05-24 10:31:26 +10:00
Andrew Tridgell 52cb59e61d 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-08 16:28:08 +10:00
Peter Barker ce8afaf57b AP_NavEKF3: use quat.to_euler(Vector3f&) 2023-04-19 14:24:45 +10:00
Peter Barker 5d68f44694 AP_NavEKF3: move beacon variables into structure
AP_NavEKF3: change beacon variable names
2023-04-18 09:28:02 +10:00
Paul Riseborough 5ab17496f6 AP_NavEKF3: Improve protection against GPS glitches during yaw alignment 2023-04-17 08:48:03 +10:00
Paul Riseborough 7063b385cf AP_NavEKF3: Reduce use of GSF yaw for planes with no compass 2023-04-17 08:48:03 +10:00
Paul Riseborough a25aa8d2ac AP_NavEKF3: Lock in wind state estimates when using srag to dead reckon 2023-04-04 09:22:23 +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