Commit Graph

709 Commits

Author SHA1 Message Date
Andrew Tridgell 10facfc519 AP_NavEKF: allow for double EKF build 2021-07-22 16:01:00 +10:00
murata 0536be1c88 AP_NavEKF: Change misnomer (NFC) 2021-03-19 17:49:27 +11:00
Paul Riseborough afb31bc4f5 AP_NavEKF: Add underflow protection to yaw GSF weight normalisation
This improves protection against a condition where if all yaw hypothesis filers have very large innovations, the weights of Gaussian densities can underflow leading to failure of the weights to converge.
2021-03-05 12:10:01 +11:00
murata 6e6e807223 AP_NavEKF: Change misnomer (NFC) 2021-03-03 20:49:55 +11:00
Peter Barker a3dcf5a6ff AP_NavEKF: move GSF logging from EKF files into GSF files 2021-02-23 12:36:33 +11:00
Randy Mackay 8ecac27777 AP_NavEKF_Source; pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Randy Mackay 77af6df730 AP_NavEKF: rename EXTERNAL to GPS 2021-01-05 10:58:06 +11:00
Randy Mackay 0fb168d6ab AP_NavEKF: source supports GSF yaw 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 fca8eb0778 AP_NavEKF_Source: add ExtNav yaw source 2021-01-05 10:58:06 +11:00
Arsh 3df1bd84e1 AP_NavEKF_Source:Fixed some style issues 2020-12-28 08:46:24 +09:00
Randy Mackay 20f1603b73 AP_NavEKF: source skips compass pre-arm check 2020-12-21 16:56:38 +09:00
Randy Mackay 4998b536b4 AP_NavEKF: source returns YawSource None if COMPASS_USE all zero 2020-12-21 16:56:38 +09:00
Randy Mackay dfd1c23cd3 AP_NavEKF: source format fix 2020-12-21 16:56:38 +09:00
Andrew Tridgell 218c0e4385 AP_NavEKF: Source's active_source_set becomes index 2020-12-21 16:56:38 +09:00
Andrew Tridgell 89f9b9e9b0 AP_NavEKF3: use AP_Enum to make code clearer 2020-12-21 16:56:38 +09:00
Randy Mackay 754002525e AP_NavEKF: constify EKFGSF_yaw members 2020-12-16 19:18:29 +11:00
Randy Mackay 000a2b17c3 AP_NavEKF_Source: remove unused setVelZSource 2020-12-05 08:30:55 +09:00
Randy Mackay 7f15b7b126 AP_NavEKF_Source: prearm check of wheelencoders 2020-12-01 14:01:17 +09:00
Andrew Tridgell 4fdbbd8984 AP_NavEKF: added functions to see if a nav source is enabled
this allows us to avoid initialising ring buffers when not needed
2020-12-01 10:53:08 +11:00
Andrew Tridgell ab917ed92e AP_NavEKF: add more protections on ring buffer code
declare an internal error if we try to access an element when not
initialised
2020-12-01 10:53:08 +11:00
Peter Barker fdbffd19c6 AP_NavEKF_Source: remove defaults for baro and compass
This makes all our defaults "NONE", meaning that a user will not see a
prearm failure for any source other than those in the primary set when
using the default configuration.
2020-11-25 15:19:00 +11:00
Peter Barker 8124c3fea8 AP_NavEKF_Source: set compass_required if we require a compass 2020-11-25 15:19:00 +11:00
Randy Mackay 6c3948f417 AP_NavEKF_Source: optimise configured_in_storage
This small CPU optimisation takes advantage of the fact that once configured in storage is true it will always remain true
2020-11-24 12:10:27 +11:00
Andrew Tridgell fe81387433 AP_NavEKF: allow init twice
this can happen if setup_core() fails with low mem and is called again
2020-11-20 21:56:32 +11:00
Andrew Tridgell e4a9497942 AP_NavEKF: added common EKF buffer classes 2020-11-20 21:56:32 +11:00
Randy Mackay 0119c48e1e AP_NavEKF_Source: add mark_configured_in_storage 2020-11-20 16:43:44 +09:00
Randy Mackay 50b2cf136f AP_NavEKF_Source: default OPTIONS to 1 (fuse all velocities) 2020-11-20 16:43:44 +09:00
Randy Mackay 9b84abecaa AP_NavEKF_Source: enables dynamically changing sensor sources 2020-11-20 16:43:44 +09:00
Paul Riseborough 78e10e99f5 AP_NavEKF: Add accessor for yaw estimator velocity innovation length 2020-11-16 16:01:13 +11:00
Andrew Tridgell 97a2c5a576 AP_NavEKF: removed Log_EKF_Timing
not needed for new replay

Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
2020-11-10 16:15:45 +11:00
Peter Barker 3a8751d8a7 AP_NavEKF: remove unused variables 2020-10-01 21:13:20 +10:00
Paul Riseborough 5ad5498b07 AP_NavEKF: Enable external setting of yaw estimator bias states 2020-07-07 15:33:58 +10:00
Paul Riseborough 709a42cb7f AP_NavEKF: remove unnecessary memcopy 2020-07-07 15:33:58 +10:00
Paul Riseborough 4a743a3827 AP_NavEKF: Remove unnecessary reset operations and class variables
The setting of EKF state variances is only required when commencing or recommencing velocity fusion.
The function that resets the EKF and GSF class variables has been renamed to be more consistent with its function.
2020-07-07 15:33:58 +10:00
Paul Riseborough 0ce4dd457d AP_NavEKF: Fix one frame delay in processing yaw estimator velocity data 2020-07-07 15:33:58 +10:00
Randy Mackay a43beaaa23 AP_NavEKF: GSF white space fixes 2020-04-24 09:43:23 +10:00
Randy Mackay 1ee9f3a6de AP_NavEKF: GSF getLogData and getYawData pass by reference 2020-04-24 09:43:23 +10:00
Paul Riseborough 51b62a34b9 AP_NavEKF: Use better type for array index 2020-04-24 09:43:23 +10:00
Paul Riseborough 6bb7c55bba AP_NavEKF: Add yaw estimator class using Gaussian Sum Filter
AP_NavEKF: Simplify centripetal accel correction
2020-04-24 09:43:22 +10:00
Rishabh b0134460e5 AP_NavEKF:Logger documentation TimeUS fix 2020-04-07 18:57:01 +10:00
Peter Barker 051a7dc298 AP_NavEKF: add onboard LogMessage documentation 2020-03-27 08:05:53 +11:00
Peter Hall 9ec5355dfc AP_NavEKF: add initalized flag and change to uint32_t 2020-02-19 06:45:07 +11:00
Peter Barker 0da27417bc AP_NavEKF: use instance # when logging EKF core timings 2019-12-06 12:52:03 +09:00
Andrew Tridgell f79907bd1e AP_NavEKF: fixed build with vector index checking 2019-10-01 15:39:03 +10:00
Andrew Tridgell 688b01c6c6 AP_NavEKF: added a common parent class for EKF2 and EKF3 core classes
this provides a common location for static intermediate variables in
EK2 and EK3. This has a few benefits:

 - the compiler can determine the address of the frequently accessed
   variables at compile time, making them faster

 - by sharing between EK2 and EK3 we save a lot of memory if both EK2
   and EK3 are enabled

 - we can fill all these with NaN in SITL on every loop, which allows
   us to catch cases where the variables are ever re-used between
   loops, which guarantees we aren't mixing data between EKF lanes or
   between EK2 and EK3
2019-10-01 15:39:03 +10:00
Peter Barker 9e0f525f69 AP_NavEKF: move logging in from AP_Logger 2019-09-03 09:28:37 +10:00
Andrew Tridgell 103d1aea41 AP_NavEKF: added gps_quality_good EKF flag 2018-07-14 17:49:52 +10:00
Michael du Breuil ac9d5f8a5c AP_NavEKF: Make the status unions use bool, add static asserts 2018-04-11 09:47:43 +09:00
priseborough 6a91b294b4 AP_NavEKF: Clarify definition for gps_glitching flag 2018-03-27 20:28:54 +09:00