yaozb
13ff67c6c0
消息汉化
5 years ago
Andrew Tridgell
72b9a69911
AP_NavEKF3: don't use WMM tables unless we have a compass scale factor set
5 years ago
Randy Mackay
8adddcc8b8
AP_NavEKF3: initialise pre-arm failure message
5 years ago
Mark Whitehorn
3de365626d
AP_NavEKF3: add prearm failure message for null core pointer
5 years ago
Randy Mackay
b4a8691a9e
AP_NavEKF3: remove wheel encoder update limit
5 years ago
Randy Mackay
63309c6925
AP_NavEKF3: suppress ekf fail-to-set-origin if core disabled
5 years ago
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.
5 years ago
Randy Mackay
5baed38266
AP_NavEKF3: reduce EK3_HRT_FILT max to 30
5 years ago
Paul Riseborough
5b1d9ed868
AP_NavEKF3: Add missing vertical position derivative calculation
5 years ago
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
5 years ago
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
5 years ago
Andrew Tridgell
0e3a27f74f
AP_NavEKF3: change optimisation from -O3 to -O2
5 years ago
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
5 years ago
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
5 years ago
Andrew Tridgell
c6f43e9700
AP_NavEKF3: fixed use of old irqsave() API
5 years ago
Peter Barker
1c187d8feb
AP_NavEKF3: correct return of empty prearm string
5 years ago
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
5 years ago
Randy Mackay
0e1a2efb7c
EKF3: RNG_USE_HGT param only used when ALT_SOURCE = rangefinder
5 years ago
Michael du Breuil
9a7d64e8fc
AP_NavEKF3: Allow the GPS to be responsible for logging
5 years ago
Peter Barker
7ea449076f
AP_NavEKF3: use timing logging from AP_NavEKF
6 years ago
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
6 years ago
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
6 years ago
Andrew Tridgell
04944fa6ce
AP_NavEKF3: review fixes
...
thanks Paul!
6 years ago
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
6 years ago
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
6 years ago
Andrew Tridgell
a3411efdb5
AP_NavEKF3: set origin on all cores
...
when EKF origin is set, make sure it is set on all cores
6 years ago
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
6 years ago
Siddharth Purohit
db9f7c3dd5
AP_NavEKF3: do logging for 3rd EKF core
6 years ago
priseborough
209a32b8b9
AP_NavEKF3: Fix bug in use of external 321 yaw to align
6 years ago
priseborough
122f214416
AP_NavEKF3: Don't allow mag to interfere with use of external yaw sensor
6 years ago
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
6 years ago
priseborough
0c4f92d4c1
AP_NavEKF3: Add control logic to use external yaw sensor
6 years ago
priseborough
71d358803a
AP_NavEKF3: Fix yaw sensor alignment status reporting
6 years ago
priseborough
977a7b68ed
AP_NavEKF3: Add push to buffer for external yaw sensor data
6 years ago
priseborough
0a971c5181
AP_NavEKF3: Add function to reset yaw to external measurement
6 years ago
Andrew Tridgell
62575a194c
AP_NavEKF3: Add data buffers for yaw sensor
6 years ago
priseborough
87c7649d09
AP_NavEKF3: Add interface for yaw angle measurements
6 years ago
Andrew Tridgell
634db441f8
AP_NavEKF3: origin handling fixes from Francisco
6 years ago
Andrew Tridgell
92783bccfa
AP_NavEKF3: don't allow height datum reset when not on ground
6 years ago
Andrew Tridgell
3f9e48951b
AP_NavEKF3: set terrainState to zero on height datum reset
6 years ago
Andrew Tridgell
f3fc910abe
AP_NavEKF3: continuously update gpsGoodToAlign
...
use it to determine how to handle a height datum reset
6 years ago
Andrew Tridgell
b9a5794671
AP_NavEKF3: ensure that both AMSL and relative alt are correct after a reset
...
this forces the EKF origin to the GPS alt on a height datum reset if
we have GPS lock. If we don't do this then the reported AMSL alt will
drift over time away from the GPS alt when we reset while on the
ground
6 years ago
Andrew Tridgell
2208689893
AP_NavEKF3: don't use disabled gyros in opticalflow takeoff detection
6 years ago
Andrew Tridgell
209bca162c
AP_NavEKF3: added inactive bias learning
...
this allows for biases on inactive IMUs to be learned so that an IMU
switch within an EKF lane does not cause a jump in the IMU data
6 years ago
Peter Barker
ce45baa034
AP_NavEKF3: factor out and logging functions, reuse for 2nd core
6 years ago
Peter Barker
f3f364de26
AP_NavEKF3: move logging in from AP_Logger
6 years ago
Andrew Tridgell
5151416080
AP_NavEKF3: 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.
6 years ago
Peter Barker
ef2589738d
AP_NavEKF3: use beacon singleton
6 years ago
Michael du Breuil
b624f6f008
AP_NavEKF3: Reduce scope of AP_Baro.h
6 years ago
Michael du Breuil
be74b631fe
AP_NavEKF3: Fix AP_GPS.h include
6 years ago