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
Randy Mackay
faed58a027
AP_NavEKF3: integrate Source for yaw
2020-11-20 16:43:44 +09:00
Randy Mackay
8931e50166
AP_NavEKF3: integrate Source for alt
2020-11-20 16:43:44 +09:00
Randy Mackay
c21d58ebea
AP_NavEKF3: integrate Source for position
2020-11-20 16:43:44 +09:00
Andrew Tridgell
4c606a30bb
AP_NavEKF3: use common structure names
2020-11-17 13:45:07 +11:00
Paul Riseborough
aaf558f593
AP_NavEKF3: Add velocity innovation check to use of EKF-GSF yaw
...
Only apply to non fly forward vehicle, eg copters, because magnitude of velocity innovation produced by plane launches is TBD.
2020-11-16 16:01:13 +11:00
Paul Riseborough
db86a5acc8
AP_NavEKF3: Don't update yaw estimator with bad GPS
2020-11-16 16:01:13 +11:00
Andrew Tridgell
5686dafeef
AP_NavEKF3: fixed logged core for GSF messages
2020-11-16 10:28:43 +11:00
Andrew Tridgell
03f2e853ce
AP_NavEKF3: fixed memory corruption on push before init
...
this fixes a bug that happens with VISION_SPEED_ESTIMATE from a
companion computer, which may come in before the EKF buffers are
allocated. That causes a push to an uninitialised ringbuffer which
triggers memory corruption
found using the new memory guard system
2020-11-15 15:42:48 +11:00
Andrew Tridgell
c14d19be68
AP_NavEKF3: fixed gcc 9.3 build error
...
gcc 9.3 doesn't like the use of get_accel(i) when array length is 1
2020-11-13 14:30:11 +11:00