Randy Mackay
63e579d738
AP_NavEKF3: add using_extnav_for_yaw
2021-08-31 09:20:17 +10:00
Randy Mackay
0edfd2634f
AP_NavEKF3: rename using_external_yaw to using_noncompass_for_yaw
2021-08-31 09:20:17 +10:00
TunaLobster
d6a5622fcb
AP_NavEKF3: Remove @RebootRequired: False
2021-08-19 10:00:16 +10:00
Andrew Tridgell
5c86cc6828
AP_NavEKF3: added EK3_PRIMARY parameter
...
allows for selection of which IMU to use on startup
2021-08-17 06:42:42 +10:00
Randy Mackay
d961186e0c
AP_NavEKF3: remove unused EK3_GSF_DELAY param
2021-08-06 07:00:46 +09:00
Paul Riseborough
17ead96250
AP_NavEKF3: Revert IMU and wind speed process noise parameter defaults
...
These give noisier state estimates, but are more robust to rapid changes in IMU biases.
TODO implement a means of using the modified parameters when there are more than one EKF instance running with IMU's that are sampling at a higher rate.
2021-07-22 18:20:45 +10:00
Paul Riseborough
aa6ac4a874
AP_NavEKF3: retune wind process noise for better airspeed fault detection
2021-07-22 18:20:45 +10:00
Paul Riseborough
8fd1e98701
AP_NavEKF3: Fix bug preventing copter wind estimation at low speed
...
Also re-tunes process noise default for smoother wind velocity state estimates.
2021-07-22 18:20:45 +10:00
Paul Riseborough
0088b0f3fe
AP_NavEKF3: Revert EK3_BETA_MASK parameter extension
...
These are not required due to use of bit 7 in FLIGHT_OPTIONS to achieve the same function.
2021-07-22 18:20:45 +10:00
Paul Riseborough
59d31cc7d5
AP_NavEKF3: Rework non-airspeed wind estimation
...
Faster wind estimation when not using airspeed with acceptable noise in wind velocity estimates.
2021-07-22 18:20:45 +10:00
Paul Riseborough
ccc95d8726
AP_NavEKF3: Add accessor function for vibration affected status
2021-07-22 18:20:45 +10:00
Paul Riseborough
5eb7751682
AP_NavEKF3: Adjust gyro bias process noise tuning
...
NEw value is a compromise between roll/pitch angle and horizontal state velocity estimation errors and the noise in the gyro bias estimate
2021-07-22 18:20:45 +10:00
Paul Riseborough
0f2661c31c
AP_NavEKF3: Retune IMU process noise
...
Required to achieve equivalent fusion noise and weighting on IMU vs other sources to previous param defaults with the old covariance prediction equations.
2021-07-22 18:20:45 +10:00
Paul Riseborough
171eed5d85
AP_NavEKF3: Make gyro bias learning less noisy
2021-07-22 18:20:45 +10:00
Peter Barker
795f412264
AP_NavEKF3: pass NavEKF failures back up to callers
2021-07-21 18:02:26 +10:00
Andrew Tridgell
885e518741
AP_NavEKF3: allow for double EKF build
2021-07-10 07:20:41 +10:00
Randy Mackay
4fde26aa01
AP_NavEKF3: EK3_RNG_USE_HGT param references EK3_SRCx_POSZ
2021-07-05 08:42:06 +09:00
Josh Henderson
0ae3730f11
AP_NavEKF3: non_GPS modes ensure EKF origin set only once and stays in sync
...
ekf3
2021-06-22 12:01:10 +10:00
Peter Barker
d6348a0786
AP_NavEKF3: remove getBodyFrameOdomDebug
...
Not used after we moved logging to be within AP_NavEKF3
2021-06-07 09:28:52 +10:00
Peter Barker
dd3ab29b2f
AP_NavEKF3: remove getFilterGpsStatus
...
Not needed after we moved logging into NavEKF3
2021-06-07 09:25:53 +10:00
Paul Riseborough
124f016e5b
AP_NavEKF3: Use parameter to set baro ground effect dead-zone
2021-06-02 11:13:16 +09:00
Peter Barker
c00f110f3d
AP_NavEKF3: use DAL APIs for takeoff/touchdown expected
2021-06-02 11:13:16 +09:00
Paul Riseborough
53c4b163ce
AP_NavEKF3: Allow adjustment of on ground not moving test sensitivity
...
Also re-tune default sensitivity based on user supplied logs with noisy gyro data.
2021-03-23 10:05:59 +11:00
murata
c5b1c832ba
AP_NavEKF3: Change misnomer (NFC)
2021-03-15 18:21:15 +11:00
Paul Riseborough
4675aea0bf
AP_NavEKF3: Update parameter description
2021-03-05 12:10:01 +11:00
Paul Riseborough
6a603019d5
AP_NavEKF3: Add accessor function for yaw alignment status
2021-03-05 12:10:01 +11:00
Paul Riseborough
912db3512e
AP_NavEKF3: Fix EKF selection bug
2021-03-05 12:10:01 +11:00
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
Paul Riseborough
7370cd9f00
AP_NavEKF3: Fix typo and update parameter description
2021-02-22 13:21:03 +09:00
Randy Mackay
f6cb0819ef
AP_NavEKF3: pre_arm_check may skip position checks
2021-01-26 10:46:49 +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
Randy Mackay
27c998ad94
AP_NavEKF3: rename source and yawFusionMethod from EXTERNAL to GPS
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
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
ed17d8e48f
AP_NavEKF3: Improve parameter display names
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
Andrew Tridgell
be4d10a95e
AP_NavEKF3: rework parameter handling
...
and fixed indentation
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
80f7906744
AP_NavEKF3: removed inhibitGps and inhibitGpsVertVel options
...
these were unused
2020-12-01 10:33:50 +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
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
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
Randy Mackay
8895d20c45
AP_NavEKF3: rename setPosVelYawSourceSet
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
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
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
Andrew Tridgell
21dfdc2192
AP_NavEKF3: use DAL for body frame odometry
2020-11-10 16:15:45 +11:00
Andrew Tridgell
f4c3d7286c
AP_NavEKF3: support replay with wheel odomotry
2020-11-10 16:15:45 +11:00
Andrew Tridgell
e87f98066f
AP_NavEKF3: support replay with external navigation data
2020-11-10 16:15:45 +11:00
Andrew Tridgell
31091d6307
AP_NavEKF3: use ekf_low_time_remaining for core scheduling
2020-11-10 16:15:45 +11:00
Andrew Tridgell
096aab9388
AP_NavEKF3: 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
fc49b55b85
AP_NavEKF3: make coreBetterScore const
2020-11-03 10:39:35 +11:00
Paul Riseborough
16ae75a681
AP_NavEKF3: Consolidate and log tilt error variance calculation
2020-10-26 11:03:50 +11:00
Andrew Tridgell
a4716fb9bf
AP_NavEKF3: fixed multi-core yaw reset
...
thanks to Alex Burka for finding this
2020-10-24 19:35:30 +11:00
Randy Mackay
eeb1a1846c
AP_NavEKF3: replace prearm_healthy with pre_arm_check
2020-10-07 11:53:07 +11:00
Andrew Tridgell
2bc7d17e7a
AP_NavEKF3: improved core comparison to check alignment
...
this adds coreBetterScore() which takes account of tilt and yaw
alignment when comparing cores for lane switching
this ensures we don't switch to a lane that is unaligned due to the
zero error score for unaligned lanes
2020-09-14 20:29:04 +10:00
Harshit Kumar Sankhla
edc3709653
AP_NavEKF3: implement sensor affinity using EK3_AFFINITY parameter
...
this allows the EKF core index to be used to select a GPS/baro/mag
instance. This is an alternative to GPS blending that allows EKF lane
switching to be used to select the right combination of GPS and IMU
add logging to XKFS message
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla
d7edc946b6
AP_NavEKF3: Relative Error based Lane-Switching
...
Improvments to the lane selection logic, we accumulate error for each
EKF lane relative to the primary for a more robust core selection
2020-08-27 20:20:51 +10:00
Peter Barker
6b701ae3b3
AP_NavEKF3: correct includes
2020-08-07 19:20:07 +10:00
chobits
4b8be2e535
AP_NavEKF3: fix comments
2020-08-04 18:16:18 +10:00
Andy Piper
e35458cedf
AP_NavEKF3: INS get_sample_rate() renamed to get_loop_rate_hz()
2020-07-10 16:45:29 +10:00
Paul Riseborough
9a4108f55e
AP_NavEKF3: Simplify setting EK3_MAG_CAL
...
Don't require user to separately set EK3_MAG_CAL to fly without a magnetomer
2020-07-07 15:33:58 +10:00
Paul Riseborough
0dc598a6e1
AP_NavEKF3: Fix param description and comment
2020-07-07 15:33:58 +10:00
Paul Riseborough
8ff6780323
AP_NavEKF3: Clarify distinct use cases for 'takeoff expected'
2020-07-07 15:33:58 +10:00
Peter Barker
2e55584417
AP_NavEKF3: correct comments on getFilterFaults and getFilterTimeouts methods
2020-07-07 10:50:41 +10:00
Randy Mackay
dccc3e22d9
AP_NavEKF3: minor comment fix re RNG_USE_HGT
2020-06-24 21:16:50 +09:00
Paul Riseborough
ed5b695c94
AP_NavEKF3: Clarify intended use of setTerrainHgtStable accessor
2020-06-24 21:16:50 +09:00
Paul Riseborough
906731222d
AP_NavEKF3: Fix range aid switching logic
...
Clarifies use of EK3_RANGE_USE_HGT and EK3_ALT_SOURCE parameters to control range finder use.
Setting EK3_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 EK3_ALT_SOURCE parameter.
2020-06-24 21:16:50 +09:00
chobits
c7817eaca1
AP_NavEKF3: support VISION_SPEED_ESTIMATE
...
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2020-06-02 08:33:42 +09:00
Randy Mackay
ef02942459
AP_NavEKF3: writeBodyFrameOdom accepts delay
2020-05-15 10:07:52 +09:00
Randy Mackay
c28fd27b02
AP_NavEKF3: writeExtNavData accepts delay
2020-05-15 10:07:52 +09:00
Henry Wurzburg
8b3f07416c
AP_NAVEKF3: change plane check_scaler value to match EKF2 value
2020-05-10 07:59:27 +10:00
Randy Mackay
d763597065
AP_NavEKF3: compensate for visual odometry sensor position
2020-04-30 15:55:59 +09:00
priseborough
c5e465aec9
AP_NavEKF3: add external nav system support
...
includes decoupling height source from use of external nav data
2020-04-30 15:55:59 +09:00
Randy Mackay
c1ef894a30
AP_NavEKF3: getDataEKFGSF and getYawData pass by reference
2020-04-24 09:43:23 +10:00
Randy Mackay
ed3d072318
AP_NavEKF3: rename GSF_RUN_MASK, GSF_USE_MASK, GSF_RST_MAX
2020-04-24 09:43:23 +10:00
Paul Riseborough
6ec69e6ed1
AP_NavEKF3: Update EK3_MAG_CAL parameter advice
2020-04-24 09:43:23 +10:00
Paul Riseborough
863f989130
AP_NavEKF3: Fix integration of GPS yaw options
...
AP_NavEKF3: fix failure to arm with EK3_MAG_CAL = 7
AP_NavEKF3: Fix failure to arm when not using magnetometer
AP_NavEKF3: Reduce yaw drift when EK3_MAG_CAL = 7
2020-04-24 09:43:22 +10:00
Paul Riseborough
410b5825fb
AP_NavEKF3: Enable use of EKF-GSF yaw estimate
...
AP_NavEKF3: Add emergency yaw reset using a Gussian Sum Filter estimate
AP_NavEKF3: Reduce default minimum GPS velocity noise for Copters
Enables fail-safe to be set with more sensitivity and improves tracking accuracy.
Origin values were set using typical GPS performance for receivers on sale 6 years ago. Receiver performance has improved since then.
AP_NavEKF3: Prevent constant mag anomaly yaw resets
Prevents constant magnetic anomaly induced resets that can be triggered when flying with vehicle generated magnetic interference.
Allows for two resets per takeoff. Allowance for two resets is required, becasue a large ground based magnetic yaw anomaly can cause a sufficiently large yaw innovation that two resets in close succession are required.
AP_NavEKF3: Add option to fly without magnetometer
AP_NavEKF3: Rework emergency yaw reset logic
Use a separate external accessor function to request the yaw reset.
Allow reset requests to remain active for a defined period of time.
Tidy up reset function to split out accuracy check.
AP_NavEKF3: Fix vulnerability to lane switch race condition
Prevents the situation where a lane switch results in a lane being selected that does not have the correct yaw. This can occur if the primary lane becomes unhealthy before the external failsafe monitor has time to react.
AP_NavEKF3: Fix EKF_MAG_CAL = 6 behaviours
Fix bug causing the yaw alignment to be performed at startup before the GSF had a valid estimate.
Fix bug causing emergency yaw message to be output for a normal reset.
Fix vulnerability to reported negative yaw variance.
Remove duplicate timer checks.
AP_NavEKF3: Update EK3_MAG_CAL documentation
AP_NavEKF3: Relax yaw gyro bias convergence check when not using mag
AP_NavEKF3: Reduce yaw drift in hover with no yaw sensor
Uses the GSF yaw estimate if available which is better than the EKF's own yaw when no yaw sensor is available.
2020-04-24 09:43:22 +10:00
Peter Barker
d19f8db06f
AP_NavEKF3: rename APMrover2 to Rover
2020-04-14 09:50:34 +09:00
Andrew Tridgell
3ae0b0d446
AP_NavEKF3: added using_external_yaw() method
...
needed by AHRS for attitudes_consistent() check
2020-04-11 21:14:31 +10:00