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
Andrew Tridgell
60831c2878
AP_NavEKF3: added checkLaneSwitch()
...
this allows the vehicle code to ask the EKF to change lanes if it is
about to do an EKF failsafe
6 years ago
Peter Barker
dce472745e
AP_NavEKF3: take EAS2TAS from AHRS rather than airspeed
6 years ago
Jaaaky
f21e4d833c
AP_NavEKF3: Fix GPS < 3D empty PreArm: msg-as EKF2
6 years ago
Randy Mackay
0a5d6a430a
AP_NavEKF3: accept optical flow data at up to 50hz
6 years ago
Andrew Tridgell
e4f6ffe719
AP_NavEKF3: fixed bug in EKF lane selection
...
this fixes an issue in selecting the best lane to change to when we
have 3 or more EKF cores. The bug is that if the current lane is
unhealthy it would always choose the last healthy lane instead of
choosing the lane with the lowest score
6 years ago
Michael du Breuil
fe3b29a088
AP_NavEKF3: Allow checking all cores for health
6 years ago
Pierre Kancir
b3a1c9c90c
AP_NavEKF3: use get_distance_NE instead of location_diff
6 years ago
Paul Riseborough
9aaa0cd2e0
AP_NavEKF3: Fix typo in comment
6 years ago
Paul Riseborough
b7e0a2345c
AP_NavEKF3: Fix indexing error
...
Caused by copy and paste from AP_NavEKF2 which useds index 5 for vertical velocity. EKF3 should use index 6.
6 years ago
Paul Riseborough
0d3e1a7d23
AP_NavEKF3: flow use parameter improvements
6 years ago
Paul Riseborough
d3e9281846
AP_NavEKF3: Update default plane optical flow param values
...
Reduce time required to form estimate of terrain offset
6 years ago
Paul Riseborough
35c82ef67f
AP_NavEKF3: Improve optical flow height estimation
6 years ago
Paul Riseborough
b848e231c7
AP_NavEKF3: Add parameter to control how optical flow data is used
6 years ago
Mark Whitehorn
3c432cf25c
AP_NavEKF3: add getQuaternionBodyToNED
6 years ago
Tom Pittenger
17ee20af3f
AP_NavEKF3: rename dataflash to logger
6 years ago
Dr.-Ing. Amilcar do Carmo Lucas
390e0fa601
AP_NavEKF3: replace location_offset() and get_distance() function calls with Location object member function calls
...
This allows removing duplicated code
6 years ago
Arjun Vinod
f382a657bd
AP_NavEKF3: fixed typos
6 years ago
Tom Pittenger
55377b234f
AP_NavEKF3: remove HAL_CPU_CLASS_150 check, 150 is already a minimum requirement
6 years ago
Tom Pittenger
8a6a39b590
AP_NavEKF3: unify singleton naming to _singleton and get_singleton()
6 years ago
Andrew Tridgell
39ffef1f08
AP_NavEKF3: fixed EKF compass switching
...
when we had 3 compasses the lack of the 'break' meant when we switched
compass in flight we would always switch back instantly to the one
that we had just rejected.
6 years ago