Andrew Tridgell
772438f3ed
AP_NavEKF3: 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
545331024f
AP_NavEKF3: Primary compass is always at serial number 0
2020-02-19 13:59:53 +09:00
Peter Hall
47e3fda8e9
AP_NavEKF3: add initalized flag and change to uint32_t
2020-02-19 06:45:07 +11:00
Peter Barker
e289020332
AP_NavEKF3: stop taking ahrs in constructor
2020-01-21 11:53:18 +11:00
Peter Hall
dd75609599
AP_NavEKF3: get_time_flying in vehicle
2020-01-14 22:34:37 -07:00
Peter Barker
03cca68c5a
AP_NavEKF3: use instance number when logging rather than multiple message IDs
2019-12-17 12:22:07 +11:00
Peter Barker
9ed37e4486
AP_NavEKF3: make send_status_report const
2019-12-11 07:54:41 +09:00
Peter Barker
4431d01230
AP_NavEKF3: stop relying on the presence of a RangeFinder
2019-12-11 08:09:01 +11:00
Peter Barker
b055eb8889
AP_NavEKF3: use instance # when logging EKF core timings
2019-12-06 12:52:03 +09:00
Andrew Tridgell
c6aad9b1ec
AP_NavEKF3: don't use WMM tables unless we have a compass scale factor set
2019-12-03 20:48:23 +11:00
Peter Barker
fe8599d6d7
AP_NavEKF3: adjust for renaming of RangeFinder files
2019-11-12 07:14:37 +08:00
Peter Barker
11b372a986
AP_NavEKF3: use enum-class for RangeFinder Status
2019-11-09 08:01:53 +11:00
Randy Mackay
f24afbcf4b
AP_NavEKF3: initialise pre-arm failure message
2019-10-31 09:51:27 +08:00
Mark Whitehorn
3e21ef1389
AP_NavEKF3: add prearm failure message for null core pointer
2019-10-29 11:59:29 +08:00
Randy Mackay
b4a8691a9e
AP_NavEKF3: remove wheel encoder update limit
2019-10-22 07:15:48 +08:00
Randy Mackay
63309c6925
AP_NavEKF3: suppress ekf fail-to-set-origin if core disabled
2019-10-22 07:15:48 +08:00
Jaaaky
54f8e1137e
AP_NavEKF3: added EK3_MAG_EF_LIM parameter
...
Adapted from EKF2 implementation as of commits
3835d2613
, e9ed3540f
and df4fc0fff
this sets a limit on the difference between the earth field from the
WMM tables and the learned earth field inside the EKF. Setting it to
zero disables the feature. A positive value sets the limit in mGauss.
2019-10-20 07:34:35 +11:00
Randy Mackay
5baed38266
AP_NavEKF3: reduce EK3_HRT_FILT max to 30
2019-10-18 11:15:25 +09:00
Paul Riseborough
5b1d9ed868
AP_NavEKF3: Add missing vertical position derivative calculation
2019-10-18 11:15:25 +09:00
Andrew Tridgell
c2067d5bc2
AP_NavEKF3: set a min yaw accuracy from GPS of 5 degrees
...
GPS modules tend to be rather optimistic about their yaw accuracy. By
setting a min or 5 degrees we prevent the user constantly getting
warnings about yaw innovations
2019-10-15 11:06:11 +11:00
Andrew Tridgell
3995db49a4
AP_NavEKF3: 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
0e3a27f74f
AP_NavEKF3: change optimisation from -O3 to -O2
2019-09-28 08:57:26 +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
05d62c62bb
AP_NavEKF3: fixed use of uninitialised variable in EKF3 mag fusion
...
not all elements of H_MAG are initialised, but they are used, as found
by valgrind
2019-09-22 21:06:36 +10:00
Andrew Tridgell
c6f43e9700
AP_NavEKF3: fixed use of old irqsave() API
2019-09-21 15:36:47 +10:00
Peter Barker
1c187d8feb
AP_NavEKF3: correct return of empty prearm string
2019-09-19 08:47:47 +09:00
Andrew Tridgell
fae2e44eac
AP_NavEKF3: reset inhibitMagStates on in-flight yaw reset
...
this is needed to prevent the next ConstrainVariances() from zeroing
the variances, which leads to very slow learning of mag states
2019-09-11 14:22:18 +10:00
Randy Mackay
0e1a2efb7c
EKF3: RNG_USE_HGT param only used when ALT_SOURCE = rangefinder
2019-09-10 18:44:52 +10:00
Michael du Breuil
9a7d64e8fc
AP_NavEKF3: Allow the GPS to be responsible for logging
2019-09-10 09:09:17 +10:00
Peter Barker
7ea449076f
AP_NavEKF3: use timing logging from AP_NavEKF
2019-09-03 09:28:37 +10:00
Peter Barker
61ed6e07eb
AP_NavEKF3: shorten EKF3 initialisation send-text string
...
Now:
pbarker@bluebottle:~/rc/ardupilot(master)$ echo -n "EKF3 IMU1 buffers IMU=11 OBS=4 OF=10, dt=0.0120" | wc
0 7 47
pbarker@bluebottle:~/rc/ardupilot(master)$
Closes #11952
2019-08-05 19:50:32 +10:00
Andrew Tridgell
fc65e04ef2
AP_NavEKF3: fixed baro innovation gate when on ground with AIDING_NONE
...
when on the ground without a position source we would disable the
innovation gate for the barometer. This meant that a single (or small
number of) really bad baro readings would be fused into the EKF,
causing it to destabilise
Fixes #11903
2019-07-30 08:23:21 +10:00
Andrew Tridgell
04944fa6ce
AP_NavEKF3: review fixes
...
thanks Paul!
2019-07-29 10:08:22 +10:00
Andrew Tridgell
451fe840ee
AP_NavEKF3: 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
Andrew Tridgell
0fcb2037e1
AP_NavEKF3: use origin lat for earth rates
...
home may not yet be set when this code is run, so using home may be
invalid
2019-07-29 10:08:22 +10:00
Andrew Tridgell
a3411efdb5
AP_NavEKF3: 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
3818d8ecda
AP_NavEKF3: 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
Siddharth Purohit
db9f7c3dd5
AP_NavEKF3: do logging for 3rd EKF core
2019-07-23 12:34:38 +10:00
priseborough
209a32b8b9
AP_NavEKF3: Fix bug in use of external 321 yaw to align
2019-07-13 11:05:57 +10:00
priseborough
122f214416
AP_NavEKF3: Don't allow mag to interfere with use of external yaw sensor
2019-07-13 11:05:57 +10:00
Andrew Tridgell
b56914b879
AP_NavEKF3: use GPS yaw if available and enabled
...
this allows a suitable GPS to be used as an external yaw source
2019-07-13 11:05:57 +10:00
priseborough
0c4f92d4c1
AP_NavEKF3: Add control logic to use external yaw sensor
2019-07-13 11:05:57 +10:00
priseborough
71d358803a
AP_NavEKF3: Fix yaw sensor alignment status reporting
2019-07-13 11:05:57 +10:00
priseborough
977a7b68ed
AP_NavEKF3: Add push to buffer for external yaw sensor data
2019-07-13 11:05:57 +10:00
priseborough
0a971c5181
AP_NavEKF3: Add function to reset yaw to external measurement
2019-07-13 11:05:57 +10:00
Andrew Tridgell
62575a194c
AP_NavEKF3: Add data buffers for yaw sensor
2019-07-13 11:05:57 +10:00
priseborough
87c7649d09
AP_NavEKF3: Add interface for yaw angle measurements
2019-07-13 11:05:57 +10:00
Andrew Tridgell
634db441f8
AP_NavEKF3: origin handling fixes from Francisco
2019-07-11 06:40:55 +10:00
Andrew Tridgell
92783bccfa
AP_NavEKF3: don't allow height datum reset when not on ground
2019-07-07 19:20:32 +10:00
Andrew Tridgell
3f9e48951b
AP_NavEKF3: set terrainState to zero on height datum reset
2019-07-07 19:20:32 +10:00