Commit Graph

228 Commits

Author SHA1 Message Date
Andrew Tridgell 3a4095fc7f AP_NavEKF2: use common structure names 2020-11-17 13:45:07 +11:00
Andrew Tridgell 7d7031d3d7 AP_NavEKF2: added const (review request) 2020-11-10 16:15:45 +11:00
Andrew Tridgell 8591b31665 AP_NavEKF2: cleanup unused code 2020-11-10 16:15:45 +11:00
Andrew Tridgell bec095d661 AP_NavEKF2: support replay with external navigation data 2020-11-10 16:15:45 +11:00
Andrew Tridgell 90a8c5cb1a AP_NavEKF2: use ekf_low_time_remaining for core scheduling 2020-11-10 16:15:45 +11:00
Andrew Tridgell 6be3d19e82 AP_NavEKF2: convert to use AP_DAL for new replay structure
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
2020-11-10 16:15:45 +11:00
Peter Barker 84c92b717f AP_NavEKF2: make coreBetterScore const 2020-11-03 10:39:35 +11:00
Andrew Tridgell dc32f7a12f AP_NavEKF2: fixed multi-core yaw reset
thanks to Alex Burka for finding this
2020-10-24 19:35:30 +11:00
Randy Mackay b2d4622320 AP_NavEKF2: replace prearm_healthy with pre_arm_check 2020-10-07 11:53:07 +11:00
Andrew Tridgell 067001bd61 AP_NavEKF2: take into account alignment when comparing cores
ensure we don't switch to a lane that does not have yaw or tilt
alignment from a lane that is aligned
2020-09-14 20:29:04 +10:00
Peter Barker 032b7c81e5 AP_NavEKF2: correct includes 2020-08-07 19:20:07 +10:00
Andy Piper e39e24bd18 AP_NavEKF2: INS get_sample_rate() renamed to get_loop_rate_hz() 2020-07-10 16:45:29 +10:00
Paul Riseborough 25cba50f10 AP_NavEKF3: Fix EK2_MAG_CAL parameter description 2020-07-07 15:33:58 +10:00
Paul Riseborough b6d9b6f3c7 AP_NavEKF2: Update documentation for non-compass use case
Instruction now explicitly specifies that all COMPASS_USE parameters must be set to 0 and COMPASS_ENABLE must be set to 1
2020-07-07 15:33:58 +10:00
Peter Barker 081c0bbfe0 AP_NavEKF2: correct comments on getFilterFaults and getFilterTimeouts methods 2020-07-07 10:50:41 +10:00
Paul Riseborough 9507a2e157 AP_NavEKF2: Fix parameter description 2020-06-24 21:16:50 +09:00
Paul Riseborough 502b96f49c AP_NavEKF2: Clarify intended use of setTerrainHgtStable accessor 2020-06-24 21:16:50 +09:00
Paul Riseborough d118c8fc38 AP_NavEKF2: Fix range aid switching logic
Clarifies use of EK2_RANGE_USE_HGT and EK2_ALT_SOURCE parameters to control range finder use.
Setting EK2_RNG_USE_HGT to a positive number to enable automatic switching between the primary height source (baro or GPS) and range finder should be disabled if any primary height source other than Baro or GPS is selected via the EK2_ALT_SOURCE parameter.
2020-06-24 21:16:50 +09:00
chobits f5f403947c AP_NavEKF2: clarify POSNE_M_NSE desc 2020-06-09 20:44:57 +09:00
chobits dee095b4a4 AP_NavEKF2: support VISION_SPEED_ESTIMATE 2020-06-01 17:51:24 +09:00
Randy Mackay f26a2a47b4 AP_NavEKF2: writeExtNavData accepts delay 2020-05-15 10:07:52 +09:00
Randy Mackay a9cbd5aa29 AP_NavEKF2: getDataEKFGSF and getYawData pass by reference 2020-04-24 09:43:23 +10:00
Randy Mackay 91ef87064a AP_NavEKF2: rename GSF_RUN_MASK, GSF_USE_MASK, GSF_RST_MAX 2020-04-24 09:43:23 +10:00
Paul Riseborough de0040ad69 AP_NavEKF2: Enable use of EKF-GSF yaw estimate
Enables the yaw to be reset in flight to a value estimated from a specialised yaw estimator. This allows faster recovery if taking off with a bad magnetometer and also allows yaw alignment and GPS use to commence in-air when operating without any yaw sensing.

AP_NavEKF2: Add missing accesor functions for default airspeed
2020-04-24 09:43:23 +10:00
Peter Barker f1fc05d357 AP_NavEKF2: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
Randy Mackay 8749f30c64 AP_NavEKF2: external nav pos offsets from AP_VisualOdom library 2020-04-14 10:28:03 +10:00
Peter Barker da3d3cc21b AP_NavEKF: stop taking ahrs in constructor 2020-01-21 11:53:18 +11:00
Peter Barker 060c851709 AP_NavEKF2: make send_status_report const 2019-12-11 07:54:41 +09:00
Peter Barker 369292f7f3 AP_NavEKF2: stop relying on the presence of a RangeFinder 2019-12-11 08:09:01 +11:00
Mark Whitehorn 5f6b3a1f5b AP_NavEKF2: clean up init failure handling
only attempt to allocate memory once
2019-11-26 11:59:10 +11:00
Mark Whitehorn 23ee9eef5f AP_NavEKF2: fail prearm on any core setup failure 2019-11-05 11:23:54 +11:00
Mark Whitehorn 489ae83604 AP_NavEKF2: handle core setup failures 2019-11-05 11:23:54 +11:00
Mark Whitehorn 7c6630e216 AP_NavEKF2: EKF2 prefix for prearm failures and camelCase 2019-11-05 11:23:54 +11:00
Mark Whitehorn 95ea6ad807 AP_NavEKF2: provide reasons for init failures 2019-11-05 11:23:54 +11:00
Mark Whitehorn 6e73feca5c AP_NavEKF2: add prearm failure message for null core pointer 2019-10-29 11:59:29 +08:00
Randy Mackay e32a8556b2 AP_NavEKF2: suppress ekf fail-to-set-origin if core disabled 2019-10-22 07:15:48 +08:00
Randy Mackay e2d3afaaa7 AP_NavEKF2: reduce EK2_HRT_FILT max to 30 2019-10-18 11:15:25 +09:00
Paul Riseborough c26c6fd078 AP_NavEKF2: Add missing vertical position derivative calculation
Use a third order order complementary filter to estimate the rate of change of vertical position output.
2019-10-18 11:15:25 +09:00
Andrew Tridgell f7e138bddd AP_NavEKF2: use parent class for intermediate static variables
this makes the code faster as well as using less memory when both EK2
and EK3 are enabled
2019-10-01 15:39:03 +10:00
Andrew Tridgell 96c6544997 AP_NavEKF3: moved intermediate variables to common memory
this moves intermediate variables from being per-core to being common
between cores. This saves memory on systems with more than one core by
avoiding allocating this memory on every core.

This is an alternative to #11717 which moves memory onto the stack. It
doesn't save as much memory as #11717, but avoids creating large stack
frames
2019-09-24 12:51:54 +10:00
Andrew Tridgell 0041874826 AP_NavEKF2: moved intermediate variables to common memory
this moves intermediate variables from being per-core to being common
between cores. This saves memory on systems with more than one core by
avoiding allocating this memory on every core.

This is an alternative to #11717 which moves memory onto the stack. It
doesn't save as much memory as #11717, but avoids creating large stack
frames
2019-09-24 12:51:54 +10:00
Michael du Breuil a4d10b2e86 AP_NavEKF2: Allow the GPS to be responsible for logging 2019-09-10 09:09:17 +10:00
hoangthien94 fc9ff2b09a AP_NavEKF2: add method to check if ext nav is used for yaw 2019-08-03 08:44:11 +09:00
Andrew Tridgell e7163afe06 AP_NavEKF2: review fixes
thanks Paul!
2019-07-29 10:08:22 +10:00
Andrew Tridgell 742ae0b750 AP_NavEKF2: set origin on all cores
when EKF origin is set, make sure it is set on all cores
2019-07-29 10:08:22 +10:00
Andrew Tridgell 5db41147ed AP_NavEKF2: restrict setting of EKF origin
only allow EKF origin to be set if EKx_GPS_TYPE is set to 3, which is
used for indoor operation
2019-07-29 10:08:22 +10:00
Andrew Tridgell 567c902e75 AP_NavEKF2: force first EKF lane when disarmed
this ensures we consistently fly with EKF lane1 if it is healthy at
the point we arm. Otherwise the choice of lane will be a lottery.

This is important as many systems have quite different filtering and
vibration characteristics on their different IMUs. We by default
enable fast sampling only on the first IMU for example, which means
the 2nd and 3rd IMUs are more vulnerable to high freq causing
aliasing.
2019-07-04 06:48:23 +10:00
Michael du Breuil 892b687c09 AP_NavEKF2: Fix AP_GPS.h include 2019-06-18 10:02:05 +10:00
Andrew Tridgell 3073c4da7a AP_NavEKF2: added checkLaneSwitch()
this allows the vehicle code to ask the EKF to change lanes if it is
about to do an EKF failsafe
2019-06-12 09:52:20 +10:00
Andrew Tridgell df4fc0fff0 AP_NavEKF2: default EK2_MAG_EF_LIM to 50
this was supposed to be part of the original PR (agreed with Paul to
enable by default)
2019-06-08 20:24:58 +10:00