Commit Graph

194 Commits

Author SHA1 Message Date
Peter Barker
d600b87454 AP_NavEKF2: make logging a core concern 2020-12-01 13:06:04 +11:00
Peter Barker
fc7e7dcee4 AP_NavEKF2: remove unused variables 2020-12-01 10:40:09 +11:00
Peter Barker
addd57dcab AP_NavEKF2: move badMagYaw onto stack 2020-12-01 10:40:09 +11:00
Peter Barker
0aa10d8281 AP_NavEKF2: move tasHealth to be a stack variable 2020-12-01 10:40:09 +11:00
Peter Barker
3a98d51427 AP_NavEKF2: move posvel fusion health booleans to be on the stack 2020-12-01 10:40:09 +11:00
Peter Barker
400ba7a9df AP_NavEKF2: move global state to be on the stack 2020-12-01 10:40:09 +11:00
Andrew Tridgell
7313e9eb0f AP_NavEKF2: removed inhibitGps and inhibitGpsVertVel options
these were unused
2020-12-01 10:33:50 +11:00
Andrew Tridgell
39ba8a8c83 AP_NavEKF2: convert to using common buffer classes
this saves a considerable amount of flash
2020-11-20 21:56:32 +11:00
Andrew Tridgell
16f7e51ea5 AP_NavEKF2: fixed use of pointers in ringbuffers
these don't work with AP_DAL
2020-11-10 16:15:45 +11:00
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
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
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
80f9ef7ed1 AP_NavEKF2: remove unused innovationIncrement and lastInnovation 2020-10-20 11:24:34 +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
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
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
Peter Barker
032b7c81e5 AP_NavEKF2: correct includes 2020-08-07 19:20:07 +10:00
Peter Barker
081c0bbfe0 AP_NavEKF2: correct comments on getFilterFaults and getFilterTimeouts methods 2020-07-07 10:50:41 +10: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
Pierre Kancir
9bbd2b19c2 AP_NavEKF2: add --debug-ekf to debug the EKF 2020-06-20 19:59:05 +10:00
Randy Mackay
6c10655059 AP_NavEKF2: accept extnav at up to 50hz 2020-06-09 09:42:14 +10:00
chobits
dee095b4a4 AP_NavEKF2: support VISION_SPEED_ESTIMATE 2020-06-01 17:51:24 +09: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
Randy Mackay
f26a2a47b4 AP_NavEKF2: writeExtNavData accepts delay 2020-05-15 10:07:52 +09:00
Randy Mackay
6e93f54cff AP_NavEKF2: handle external nav position resets 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
Randy Mackay
4d7e7a960a AP_NavEKF2: more white space 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
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
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
Randy Mackay
8749f30c64 AP_NavEKF2: external nav pos offsets from AP_VisualOdom library 2020-04-14 10:28:03 +10: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
Peter Barker
060c851709 AP_NavEKF2: make send_status_report const 2019-12-11 07:54:41 +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
163efd0df5 AP_NavEKF2: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00
Andrew Tridgell
9226899c6f AP_NavEKF2: added comment (review request) 2019-09-24 12:51:54 +10:00
Andrew Tridgell
255981c60c AP_NavEKF2: moved some of the intermediate vars to the stack
this keeps stack frames below 1k, while giving faster access to the
variables and saving more memory
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
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
c57b25b4c9 AP_NavEKF2: ensure that EKF origin stays in sync on all cores
this prevents the EKF origin on different cores from being initialised
to different values. A common value is stored in the frontend and used
by a core if it doesn't have an origin
2019-07-29 10:08:22 +10:00