Andrew Tridgell
5f0e943f0f
AP_NavEKF2: use dal reference in EKF backends
...
saves a bit of flash space
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
224792b8b8
AP_NavEKF2: added optflow support for AP_DAL
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
f3c3778169
prevent duplicate EKF logging
...
vehicle code sometimes tries to log the same data twice
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
Randy Mackay
fccc1fcb72
AP_NavEKF2: minor comment fix
2020-10-28 12:17:22 +09: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
Peter Barker
0496ecc4f6
AP_NavEKF2: remove unused state variables
2020-10-22 08:47:08 +11:00
Peter Barker
53305ba2a4
AP_NavEKF2: remove unused quat2Tbn method
2020-10-20 11:40:54 +11:00
Peter Barker
312cf725aa
AP_NavEKF2: remove dangling method declarations
2020-10-20 11:40:54 +11:00
Peter Barker
c90265f94d
AP_NavEKF2: fix includes
2020-10-20 11:40:54 +11:00
Peter Barker
80f9ef7ed1
AP_NavEKF2: remove unused innovationIncrement and lastInnovation
2020-10-20 11:24:34 +11:00
Randy Mackay
b2d4622320
AP_NavEKF2: replace prearm_healthy with pre_arm_check
2020-10-07 11:53:07 +11:00
Andrew Tridgell
35e95d3328
AP_NavEKF2: reset body mag variances at key points
...
reset on sensor switch or when changing to 3D fusion
2020-09-20 09:25:57 +10:00
Andrew Tridgell
534e63e2fa
AP_NavEKF2: fixed init of earth state mag variances
...
we were starting with zero variance for X and Y earth states, it
should start with sq(magNoise)
2020-09-20 09:25:57 +10:00
Andrew Tridgell
d6dcbda0d3
AP_NavEKF2: removed duplicate compass switch check
...
left over from last set of changes
2020-09-20 09:25:57 +10: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
Paul Riseborough
da7bb44a61
AP_NavEKF2: Consolidate magnetometer timeout checks
2020-09-08 11:01:14 +10:00
Andrew Tridgell
6b9e595602
AP_NavEKF2: fixed handling of failed compass
...
when a compass goes unhealthy due to sensor failure we should try
another compass after 10s if another compass is available
2020-09-08 11:01:14 +10:00
Andrew Tridgell
6ee527d3e0
AP_NavEKF2: fixed segfault when IMU mask covers more IMUs than GSF mask
2020-08-28 10:17:00 +10:00
Harshit Kumar Sankhla
56cbcb42ee
AP_NavEKF2: Add core relative error and errorscore logging in NKF3 packet
...
TODO : Port lane switching logic from EKF3 to make use of these terms
Since both share the same NKF3 log structure, needed to do this.
Just log 0 as of.
2020-08-27 20:20:51 +10:00
Andrew Tridgell
83e5639225
AP_NavEKF2: apply min GPS accuracy at measurement point
...
this fixes an issue a RTK GPS gives 1cm horizontal and vertical
accuracy and that causes the variances to get too small
2020-08-21 07:40:13 +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
ea4589ea94
AP_NavEKF2: Reset yaw estimator bias states at start of flight
...
Enables yaw bias to be learned when sitting stationary on ground.
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
Paul Riseborough
ccaa4d6aa9
AP_NavEKF2: Fix one frame delay in processing yaw estimator velocity data
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
Randy Mackay
a8c2be26ba
AP_NavEKF2: remove unused terrainHgtStableSet_ms
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
Dr.-Ing. Amilcar do Carmo Lucas
83dc46d539
AP_NavEKF2: fix vertical flyaways when rangefinder stops providing data
2020-06-24 21:16:50 +09:00
Dr.-Ing. Amilcar do Carmo Lucas
280d33d030
AP_NavEKF2: reduce duplicated code.
2020-06-24 21:16:50 +09:00
Paul Riseborough
11a0fef3d0
AP_NavEKF2: Fix indent
2020-06-24 21:16:50 +09:00
Paul Riseborough
fc18ee91df
AP_NavEKF2: Add missing fallback to baro for range beacon use case
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
Pierre Kancir
9bbd2b19c2
AP_NavEKF2: add --debug-ekf to debug the EKF
2020-06-20 19:59:05 +10:00
Randy Mackay
989ffb79cd
AP_NavEKF2: minor format fix
2020-06-19 13:46:52 +09:00
Randy Mackay
966d59a26d
AP_NavEKF2: protect against ExtNav being NaN
2020-06-19 13:46:52 +09:00
chobits
f5f403947c
AP_NavEKF2: clarify POSNE_M_NSE desc
2020-06-09 20:44:57 +09:00
chobits
e64c92b322
AP_NavEKF2: use err info from ext nav interface
2020-06-09 13:31:21 +09:00
Randy Mackay
6c10655059
AP_NavEKF2: accept extnav at up to 50hz
2020-06-09 09:42:14 +10:00
Peter Barker
b02d9abd32
AP_NavEKF2: avoid compiler warnings from -Wclass-memaccess
...
../../libraries/AP_NavEKF2/AP_NavEKF2_core.cpp: In member function ‘void NavEKF2_core::InitialiseVariables()’:
../../libraries/AP_NavEKF2/AP_NavEKF2_core.cpp:343:50: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct NavEKF2_core::ext_nav_vel_elements’; use assignment or value-initialization instead [-Wclass-memaccess]
343 | memset(&extNavVelNew, 0, sizeof(extNavVelNew));
| ^
In file included from ../../libraries/AP_NavEKF2/AP_NavEKF2_core.cpp:4:
../../libraries/AP_NavEKF2/AP_NavEKF2_core.h:518:12: note: ‘struct NavEKF2_core::ext_nav_vel_elements’ declared here
518 | struct ext_nav_vel_elements {
| ^~~~~~~~~~~~~~~~~~~~
../../libraries/AP_NavEKF2/AP_NavEKF2_core.cpp:344:58: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct NavEKF2_core::ext_nav_vel_elements’; use assignment or value-initialization instead [-Wclass-memaccess]
344 | memset(&extNavVelDelayed, 0, sizeof(extNavVelDelayed));
| ^
In file included from ../../libraries/AP_NavEKF2/AP_NavEKF2_core.cpp:4:
../../libraries/AP_NavEKF2/AP_NavEKF2_core.h:518:12: note: ‘struct NavEKF2_core::ext_nav_vel_elements’ declared here
518 | struct ext_nav_vel_elements {
| ^~~~~~~~~~~~~~~~~~~~
2020-06-05 08:42:45 +10:00
chobits
dee095b4a4
AP_NavEKF2: support VISION_SPEED_ESTIMATE
2020-06-01 17:51:24 +09:00
Peter Barker
19dc07250d
AP_NavEKF2: clarify yaw reset error message
...
The current wording can be taken to indicate that the mag sensors
stopped, causing this issue.
2020-05-26 10:05:35 +10:00
Paul Riseborough
af19fea268
AP_NavEKF2: Fix 3-axis mag fusion per axis error handling
...
Ensure that if fusion checks for an axis fails, fusion will not be perfomred for all axes.
2020-05-20 15:09:32 +10:00
Andy Piper
9f02b1b1a8
AP_NavEKF2: fix typo in comment
...
Signed-off-by: Dr.-Ing. Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
2020-05-20 07:29:31 +09:00
Randy Mackay
f26a2a47b4
AP_NavEKF2: writeExtNavData accepts delay
2020-05-15 10:07:52 +09:00
Paul Riseborough
c94de61e29
AP_NavEKF2: Don't perform emergency yaw reset unless commanded externally
...
This limits the use of the reset to situations where it is a last ditch resort before a lane switch and failsafe.
This will limit false positives for general deployment, but still provide protection from fly-aways at the cost of some increase in reaction time.
2020-05-14 10:40:48 +10:00
chobits
a7aa43f5d5
AP_NavEKF2: ext nav will not reset yaw if compass is used
2020-05-14 08:04:55 +09:00
Randy Mackay
b95bc9076b
AP_NavEKF2: fix getLLH when no GPS
2020-05-10 15:35:55 +10:00
Andrew Tridgell
c9ffe8dcea
AP_NavEKF2: use set_enable() to set enable flag
2020-04-29 07:36:55 +10:00
Paul Riseborough
e1f27054d5
AP_NavEKF2: Don't use geomag data when user specifies declination
2020-04-28 11:42:31 +09:00
Randy Mackay
90db3d6317
AP_NavEKF2: minor comment fix
2020-04-27 19:15:43 +09:00
Randy Mackay
2919491298
AP_NavEKF2: getLLH fix when no GPS available
2020-04-24 20:29:18 +09:00
Randy Mackay
6e93f54cff
AP_NavEKF2: handle external nav position resets
2020-04-24 18:16:52 +09:00
Randy Mackay
990313371d
AP_NavEKF2: minor comment fixes
2020-04-24 18:16:52 +09:00
Randy Mackay
43c9e13372
AP_NavEKF2: rename HGT_SOURCE_EV to HGT_SOURCE_EXTNAV
...
presumably EV stands for ExternalVision but we normally refer to this source as External Nav
2020-04-24 18:16:52 +09:00
Randy Mackay
014c889ceb
AP_NavEKF2: setAidingMode uses lastExtNavPassTime_ms
2020-04-24 18:16:52 +09:00
Randy Mackay
3b20623a31
AP_NavEKF2: remove unused ext nav elements
2020-04-24 18:16:52 +09:00
Peter Barker
7dfc285f2a
AP_NavEKF2: remove incorrect units from yaw esimtator LoggerMessage
2020-04-24 18:08:14 +10:00
Andrew Tridgell
d8c533e7ab
AP_NavEKF2: added missing log documentation for field C
2020-04-24 09:43:23 +10:00
Paul Riseborough
8f1b732d79
AP_NavEKF2: Add documentation for GSF logging
2020-04-24 09:43:23 +10:00
Paul Riseborough
49e4c799d3
AP_NavEKF2: Use unique names for EKF2 logging
2020-04-24 09:43:23 +10:00
Randy Mackay
4d7e7a960a
AP_NavEKF2: more white space fixes
2020-04-24 09:43:23 +10:00
Randy Mackay
0fb233ed4b
AP_NavEKF2: minor comment fixes
2020-04-24 09:43:23 +10:00
Randy Mackay
a9cbd5aa29
AP_NavEKF2: getDataEKFGSF and getYawData pass by reference
2020-04-24 09:43:23 +10:00
Randy Mackay
d61c517e76
AP_NavEKF2: minor format fix
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
abc821ad36
AP_NavEKF2: Split GSF yaw estimator processing
...
Separate prediction and correction steps are required to provide an up to date yaw estimate using IMU prediction before it may be required by SelectMagFusion() whilst still doing the velocity update after GPS data haw been pulled from the buffer by SelectVelPosFusion()
2020-04-24 09:43:23 +10:00
Andrew Tridgell
c83e2d7c0e
AP_NavEKF2: fixed loss of GPS fusion
...
we must not do a storedGPS.recall unless we will be using the data,
otherwise we will lose GPS samples and risk stopping GPS fusion
2020-04-24 09:43:23 +10:00
Andrew Tridgell
6c3889b04f
AP_NavEKF2: fixed typos
2020-04-24 09:43:23 +10:00
Andrew Tridgell
3edbe81b1e
AP_NavEKF2: removed 2nd set of imuSampleTime_ms
2020-04-24 09:43:23 +10:00
Paul Riseborough
6952d83f00
AP_NavEKF2: Fix casting build error
2020-04-24 09:43:23 +10:00
Paul Riseborough
0d965d2a1c
AP_NavEKF2: Fix timer wrapping bugs
...
Also replaces tab characters
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
Randy Mackay
35dcb0d752
AP_NavEKF2: CorrectExtNavForSensorOffset made const
2020-04-21 10:21:23 +10:00
Randy Mackay
85704e4989
AP_NavEKF2: CorrectGPSForAntennaOffset made const
...
also reduce scope of call to slightly reduce CPU load
2020-04-21 10:21: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
Randy Mackay
fb7e68c53a
AP_NavEKF2: writeExtNavData reset handles system time wrap
2020-04-14 10:28:03 +10:00
Randy Mackay
9f81da1bf9
AP_NavEKF2: minor comment fix
2020-04-13 14:39:53 +09:00
Andrew Tridgell
c9755cf9e6
AP_NavEKF2: make mag variance reporting consistent
...
logged scaled variance should match the value used in MAVLink
EKF_STATUS_REPORT
2020-04-06 17:30:29 +10:00
Peter Barker
903d81c263
AP_NavEKF2: use compass reference rather than repeatedly asking AHRS for it
2020-03-13 08:26:18 +11:00
Andrew Tridgell
9030590a88
AP_NavEKF2: fixed use of antenna position when switching GPS primary
...
when GPS primary switches we were using a position which had not been
corrected for antenna offset. This was used for calculating the reset
for sensor change.
This fixes that (trivial fix) and also fixes a similar issue on
position reset
2020-02-19 18:12:54 +11:00
Siddharth Purohit
4cca1c307c
AP_NavEKF2: Primary compass is always at serial number 0
2020-02-19 13:59:53 +09:00
Peter Hall
e0eeb4f863
AP_NavEKF2: add initalized flag and change to uint32_t
2020-02-19 06:45:07 +11:00
chobits
a54f24c8c0
AP_NavEKF2: switch to optflow if gps is jammed
2020-02-04 10:13:57 +09:00
Peter Barker
da3d3cc21b
AP_NavEKF: stop taking ahrs in constructor
2020-01-21 11:53:18 +11:00
Peter Hall
2970334c0d
AP_NavEKF2: get_time_flying in vehicle
2020-01-14 22:34:37 -07:00
Peter Barker
524647d221
AP_NavEKF2: use instance number when logging rather than multiple message IDs
2019-12-17 12:22:07 +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
Peter Barker
239df941e5
AP_NavEKF2: use instance # when logging EKF core timings
2019-12-06 12:52:03 +09:00
Andrew Tridgell
fce4d6952f
AP_NavEKF2: don't use WMM tables unless we have a compass scale factor set
2019-12-03 20:48:23 +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