Commit Graph

563 Commits

Author SHA1 Message Date
Paul Riseborough
9a5a264aa0 AP_NavEKF3: Improve wind estimation without airspeed sensing
Enable default airspeed variance to be specified externally
Improve control of sideslip fusion
Don't modify non wind states unnecessarily when using synthesised air data measurements
2021-03-05 12:10:01 +11:00
murata
ae565aef1a AP_NavEKF3: Change misnomer (NFC) 2021-03-03 20:49:55 +11:00
Iampete1
8173cd442a AP_NavEKF3 log position offset as float in meters 2021-03-02 10:03:12 +11:00
Paul Riseborough
0971ef55a4 AP_NavEKF3: Fix bug preventing EKFGSF running when needed for reset
The gpsAccuracyGood flag should not be used because it will go false if GPS innovations become high due to bad yaw which is when the EKFGSF is required. to keep running.
2021-03-02 07:28:24 +11:00
Peter Barker
65b780fad5 AP_NavEKF3: move GSF logging from EKF files into GSF files 2021-02-23 12:36:33 +11:00
Patrick José Pereira
3b0dac3198 AP_NavEKF3: Simplify boolean expression
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-23 10:30:05 +11:00
Paul Riseborough
342e6b35fa AP_NavEKF3: Fix use of incorrect ballistic coefficient parameter 2021-02-22 13:21:03 +09:00
Paul Riseborough
7370cd9f00 AP_NavEKF3: Fix typo and update parameter description 2021-02-22 13:21:03 +09:00
Randy Mackay
1814524fcb AP_NavEKF3: fix using_external_yaw when using external nav
the first if would always return true meaning the method would always return false when using external nav
thanks to David Sastre for finding this!
2021-02-09 11:35:39 +11:00
Randy Mackay
f6cb0819ef AP_NavEKF3: pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Andrew Tridgell
ddc4d08e8f AP_NavEKF3: make drag fusion optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell
1ccda938cb AP_NavEKF3: make external navigation optional 2021-01-24 11:56:52 +11:00
Andrew Tridgell
8da511f039 AP_NavEKF3: make body odomotry build depend on vehicle type
saves about 11k of flash
2021-01-24 11:56:52 +11:00
Peter Barker
3582b69e9c AP_NavEKF3: remove getFilterTimeouts access methods 2021-01-22 13:04:36 +11:00
Peter Barker
b3bacdd33c AP_NavEKF3: remove internal-only getTiltError method 2021-01-21 21:26:17 +11:00
Peter Barker
5ad0ac6727 AP_NavEKF3: remove unused getAccelNED method 2021-01-21 21:26:17 +11:00
Randy Mackay
4492e5024c AP_NavEKF3: enable ekf3 by default 2021-01-16 08:24:23 +09:00
Andy Piper
099d6aa72e AP_NavEKF3: add filter reset when vehicle is idle for too long 2021-01-15 15:47:20 +11:00
chobitsfan
26a3a02c81 AP_NavEKF3: use posxy_source in all places 2021-01-14 16:49:12 +09:00
chobits
e73d28fe19 AP_NavEKF3: remove redundant extnav code 2021-01-12 21:56:36 +09:00
Andrew Tridgell
59fa794818 AP_NavEKF3: constrain vertical error
this prevents a floating point exception with external AHRS
2021-01-05 21:13:12 +11:00
Randy Mackay
647c568ab9 AP_NavEKF3: out-of-date comments removed
GPS, Static and ExtNav yaw buffers have been separated
2021-01-05 10:58:06 +11:00
Randy Mackay
27c998ad94 AP_NavEKF3: rename source and yawFusionMethod from EXTERNAL to GPS 2021-01-05 10:58:06 +11:00
Randy Mackay
c14b4a8b6c AP_NavEKF3: add support for GSF as yaw source 2021-01-05 10:58:06 +11:00
Randy Mackay
5891c6ace8 AP_NavEKF3: separate GPS yaw from ExtNav yaw 2021-01-05 10:58:06 +11:00
Randy Mackay
6850b48ea1 AP_NavEKF3: add comments for yaw sensor variables 2021-01-05 10:58:06 +11:00
Andrew Tridgell
e747edbcf2 AP_NavEKF3: fixed init order for scheduler
this can impact replay of EKF2
2021-01-02 10:30:26 +11:00
Randy Mackay
39be85cef4 AP_NavEKF3: integrate Source loss of init 2020-12-21 16:56:38 +09:00
Peter Barker
6dfd2f2ff9 AP_NavEKF3: use use_EKFGSFYaw to reduce code duplication 2020-12-17 16:00:29 +09:00
Randy Mackay
a2cca60beb AP_NavEKF3: constify EKFGSF_getYaw 2020-12-16 19:18:29 +11:00
Randy Mackay
0c3fcfd9d6 AP_NavEKF3: add missing break to case statements 2020-12-16 19:18:29 +11:00
Randy Mackay
9cb529cfd6 AP_NavEKF3: minor formatting fix
also replace tab with spaces
2020-12-16 19:18:29 +11:00
Paul Riseborough
908b348c31 AP_NavEKF3: Fix typo in enum label 2020-12-15 19:29:16 +11:00
Randy Mackay
e819dbdd64 AP_NavEKF3: add EKFGSF_getYaw to reduce duplicate code 2020-12-15 19:29:16 +11:00
Randy Mackay
c2edae905f AP_NavEKF3: simplify logic when updating yawAngDataStatic 2020-12-15 19:29:16 +11:00
Randy Mackay
843ddb4fdc AP_NavEKF3: minor format fix 2020-12-15 19:29:16 +11:00
Paul Riseborough
a9e76d44af AP_NavEKF3: Clean up yaw fusion logic 2020-12-15 19:29:16 +11:00
Paul Riseborough
ccfd89240b AP_NavEKF3: Fix error in calculation of static 312 order yaw reference 2020-12-15 19:29:16 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
f77ab30f7a Revert "AP_NavEKF3: Remove unsupported parameter unit descriptions"
This reverts commit 4f4a2f446d.
Makes more sense to add those to the list of supported units
2020-12-15 18:22:36 +11:00
Paul Riseborough
8f32430294 AP_NavEKF3: Fix white spaces 2020-12-11 15:21:41 +11:00
Paul Riseborough
bdc202378a AP_NavEKF3: fix white space 2020-12-11 15:21:41 +11:00
Paul Riseborough
ed17d8e48f AP_NavEKF3: Improve parameter display names 2020-12-11 15:21:41 +11:00
Paul Riseborough
171f0b399f AP_NavEKF3: Remove commented code 2020-12-11 15:21:41 +11:00
Andrew Tridgell
b86c014400 AP_NavEKF3: rename drag parameters to start with EK3_DRAG_ 2020-12-11 15:21:41 +11:00
Paul Riseborough
47d4506e68 AP_NavEKF3: Add drag and sideslip innovation logging 2020-12-11 15:21:41 +11:00
Paul Riseborough
4884476c09 AP_NavEKF3: Formatting and comment fixes 2020-12-11 15:21:41 +11:00
Andrew Tridgell
be4d10a95e AP_NavEKF3: rework parameter handling
and fixed indentation
2020-12-11 15:21:41 +11:00
Paul Riseborough
5da62aeaa2 AP_NavEKF3: Fix CI build errors 2020-12-11 15:21:41 +11:00
Paul Riseborough
0d2c235027 AP_NavEKF3: Fix #define typo 2020-12-11 15:21:41 +11:00
Paul Riseborough
ab05e8ed4a AP_NavEKF3: Update param descriptions 2020-12-11 15:21:41 +11:00
Paul Riseborough
4f4a2f446d AP_NavEKF3: Remove unsupported parameter unit descriptions 2020-12-11 15:21:41 +11:00
Paul Riseborough
c9ab4b18b0 AP_NavEKF3: Add multicopter wind estimation 2020-12-11 15:21:41 +11:00
Andrew Tridgell
ac4a05ffbf AP_NavEKF3: fixed null dereference of airspeed
this caused a segfault in replay
2020-12-11 14:22:46 +11:00
Andrew Tridgell
2071a19a40 AP_NavEKF3: only fuse airspeed if healthy 2020-12-11 09:59:49 +11:00
Peter Barker
58f6570755 AP_NavEKF3: stop using QUAT_* defines from AP_Logger/LogStructure.h
The EKFs logging is independant so we can kill EKF2...

Also use correct structure for logging XKF1; these structures were
identical.
2020-12-08 11:30:10 +11:00
chobits
013b39d2a6 AP_NavEKF3: fix ext nav vel timestamp cal 2020-12-07 08:54:42 +09:00
Peter Barker
287e9350a5 AP_NavEKF3: move log message IDs in from AP_Logger LogStructure 2020-12-03 19:22:26 +11:00
Peter Barker
79109458c2 AP_NavEKF3: move EKF3 logging structures into EKF3 LogStructure.h 2020-12-03 19:22:26 +11:00
Andrew Tridgell
bdba430e55 AP_NavEKF3: save memory on beacon debug structure
only allocate when beacons are enabled. This relies on a guarantee in
the DAL that the beacon count cannot change
2020-12-01 10:53:08 +11:00
Andrew Tridgell
bb32f1a397 AP_NavEKF3: avoid initialising unused ring buffers
this assumes the nav sources are treated as reboot required
2020-12-01 10:53:08 +11:00
Peter Barker
e972fb31b1 AP_NavEKF3: remove unused variables 2020-12-01 10:40:09 +11:00
Peter Barker
0529ddcd67 AP_NavEKF3: move badMagYaw onto stack 2020-12-01 10:40:09 +11:00
Peter Barker
2885026bba AP_NavEKF3: move tasHealth to be a stack variable 2020-12-01 10:40:09 +11:00
Peter Barker
b79a26135c AP_NavEKF3: move posvel fusion health booleans to be on the stack 2020-12-01 10:40:09 +11:00
Peter Barker
2d25149e2e AP_NavEKF3: move global state to be on the stack 2020-12-01 10:40:09 +11:00
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
2020-12-01 10:33:50 +11:00
Andrew Tridgell
80f7906744 AP_NavEKF3: removed inhibitGps and inhibitGpsVertVel options
these were unused
2020-12-01 10:33:50 +11:00
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
2020-12-01 10:33:50 +11:00
Peter Barker
52b8b95a72 AP_NavEKF3: rearrange readGPSData to remove some nesting 2020-11-30 11:51:12 +11:00
Randy Mackay
4cd1c3cfde AP_NavEKF3: param conversion loses config_error
config_error should only be run as part of setup because it may never return
2020-11-27 08:20:07 +09:00
Randy Mackay
adfc92523b AP_NavEKF3: add configuredToUseGPSForPosXY 2020-11-25 21:00:07 +11:00
Andrew Tridgell
7eea13f86f AP_NavEKF3: fixed build of standalone replay link test
parameter conversion not needed for replay
2020-11-24 20:46:37 +11:00
Peter Barker
200b085eea AP_NavEKF3: move XKY0 and XKY1 to be normal log structures (from Log_Write) 2020-11-22 20:47:29 +11:00
Peter Barker
e1a033b296 AP_NavEKF3: make logging a core concern
Also dissolve some methods only used for logging
2020-11-22 20:47:29 +11:00
Peter Barker
914629351f AP_NavEKF3: use scalar rather than array for state-prediction-allowed
EKF2 needs this for choosing alternate cores.  EKF3 does not.
2020-11-22 14:09:48 +11:00
Paul Riseborough
8561f5239d AP_NavEKF3: Fix bug preventing yaw alignment to EKF-GSF estimate 2020-11-21 12:56:10 +11:00
Andrew Tridgell
1e4b1d7563 AP_NavEKF3: convert to using common buffer classes
this saves a considerable amount of flash
2020-11-20 21:56:32 +11:00
Randy Mackay
d1983b0b77 AP_NavEKF3: fixup source param conversion
shorten param conversion config error
if gps and optical flow are enabled we default SRC2_VELXY to optflow
convert_params run from InitialiseFilter
ensure param conversion only run once
2020-11-20 16:43:44 +09:00
Randy Mackay
04e3623620 AP_NavEKF3: improve MAG_CAL vs EK3_SRCn_YAW checks
MAG_CAL param description include deprecated values
Pre-arm check of MAG_CAL using deprecated values
effective_magCal interprets 5 (was EXTERNAL_YAW) as Never, 6 (was EXTERNAL_YAW_FALLBACK) as WhenFlying
Update comments in param conversion from MAG_CAL to EK3_SRC1_YAW
2020-11-20 16:43:44 +09:00
Andrew Tridgell
36c946113d AP_NavEKF3: handle compass fallback in yaw source reset
if we get to this point we must be using the compass fallback logic,
and should do the reset
2020-11-20 16:43:44 +09:00
Randy Mackay
8895d20c45 AP_NavEKF3: rename setPosVelYawSourceSet 2020-11-20 16:43:44 +09:00
Randy Mackay
5eb3875ebb AP_NavEKF3: rename posxy_source_last and posxy_source_reset 2020-11-20 16:43:44 +09:00
Randy Mackay
f88364d653 AP_NavEKF3: use_compass minor order fixup 2020-11-20 16:43:44 +09:00
Randy Mackay
b475f01b25 AP_NavEKF3: update comments 2020-11-20 16:43:44 +09:00
Randy Mackay
0f8d0ef11b AP_NavEKF3: move sources to 2nd bank of parameters 2020-11-20 16:43:44 +09:00
Randy Mackay
33b6212cce AP_NavEKF3: rename _sources to sources 2020-11-20 16:43:44 +09:00
Randy Mackay
9716b09cad AP_NavEKF3: minor indenting fix 2020-11-20 16:43:44 +09:00
Randy Mackay
6daaa06317 AP_NavEKF3: integrate AP_NavEKF_Source::useVelXYSource
also integrate useVelZSource
2020-11-20 16:43:44 +09:00
Andrew Tridgell
72ee7d15e1 AP_NavEKF3: fixup for AP_DAL 2020-11-20 16:43:44 +09:00
Randy Mackay
73835f0c11 AP_NavEKF3: pre_arm_check includes sources 2020-11-20 16:43:44 +09:00
Randy Mackay
6c0bb6a198 AP_NavEKF3: add convert_params for source 2020-11-20 16:43:44 +09:00
Randy Mackay
849e94cc24 AP_NavEKF3: call sources align inactive sources 2020-11-20 16:43:44 +09:00
Randy Mackay
ba9f60abc7 AP_NavEKF3: add getVelInnovationsAndVariancesForSource 2020-11-20 16:43:44 +09:00
Randy Mackay
58aa6086df AP_NavEKF3: always calculate GPS innovations and variances 2020-11-20 16:43:44 +09:00
Randy Mackay
e7e91b1c3b AP_NavEKF3: always calculate extNav innovations and variances 2020-11-20 16:43:44 +09:00
Randy Mackay
6b2b5c4ca0 AP_NavEKF3: add CalculateVelInnovationsAndVariances 2020-11-20 16:43:44 +09:00
Randy Mackay
2505fd5c1c AP_NavEKF3: body and wheel odometry check source 2020-11-20 16:43:44 +09:00
Randy Mackay
1263648d88 AP_NavEKF3: beacon fusion checks source 2020-11-20 16:43:44 +09:00
Randy Mackay
8a56ce49be AP_NavEKF3: optical flow fusion checks source 2020-11-20 16:43:44 +09:00
Randy Mackay
4cadaa5194 AP_NavEKF3: readyToUseOptFlow, Beacon, ExtNav check source 2020-11-20 16:43:44 +09:00