Andrew Tridgell
2427440e13
AP_NavEKF2: origin handling fixes from Francisco
2019-07-11 06:40:55 +10:00
Andrew Tridgell
e8d9a1fae9
AP_NavEKF2: don't allow height datum reset when not on ground
2019-07-07 19:20:32 +10:00
Andrew Tridgell
f5fd38aef2
AP_NavEKF2: set terrainState to zero on height datum reset
2019-07-07 19:20:32 +10:00
Andrew Tridgell
9372073f63
AP_NavEKF2: continuously update gpsGoodToAlign
...
use it to determine how to handle a height datum reset
2019-07-07 19:20:32 +10:00
Andrew Tridgell
20ebb2500b
AP_NavEKF2: 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
2019-07-07 19:20:32 +10:00
Andrew Tridgell
ddef40fa3d
AP_NavEKF2: don't use disabled gyros in opticalflow takeoff detection
2019-07-07 19:03:01 +10:00
Andrew Tridgell
1c4c5a6850
AP_NavEKF2: learn gyro biases for inactive gyros
...
this allows us to learn the gyro biases each lane would need if it had
to switch to another gyro due to a sensor failure. This prevents a
sudden change in gyro bias on IMU failure
2019-07-07 19:03:01 +10:00
Peter Barker
6a0a466f42
AP_NavEKF2: factor out and logging functions, reuse for 2nd core
2019-07-06 19:05:51 +10:00
Peter Barker
5175d23cc1
AP_NavEKF2: move logging in from AP_Logger
2019-07-06 19:05:51 +10:00
Andrew Tridgell
567c902e75
AP_NavEKF2: 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.
2019-07-04 06:48:23 +10:00
Peter Barker
82df167ad4
AP_NavEKF2: use beacon singleton
2019-07-01 07:20:58 +09:00
Michael du Breuil
f04e47fc17
AP_NavEKF2: Reduce scope of AP_Baro.h
2019-06-27 14:56:21 +10:00
Michael du Breuil
892b687c09
AP_NavEKF2: Fix AP_GPS.h include
2019-06-18 10:02:05 +10:00
Andrew Tridgell
3073c4da7a
AP_NavEKF2: added checkLaneSwitch()
...
this allows the vehicle code to ask the EKF to change lanes if it is
about to do an EKF failsafe
2019-06-12 09:52:20 +10:00
Andrew Tridgell
df4fc0fff0
AP_NavEKF2: default EK2_MAG_EF_LIM to 50
...
this was supposed to be part of the original PR (agreed with Paul to
enable by default)
2019-06-08 20:24:58 +10:00
Peter Barker
11f31c2851
AP_NavEKF2: take EAS2TAS from AHRS rather than airspeed
2019-06-06 12:44:36 +10:00
Andrew Tridgell
e9ed3540f1
AP_NavEKF2: constrain field by table after fusion
...
this should make for faster convergence
2019-06-03 12:21:29 +10:00
Andrew Tridgell
3835d2613e
AP_NavEKF2: added EK2_MAG_EF_LIM parameter
...
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-06-03 12:21:29 +10:00
Randy Mackay
e19d638c0f
AP_NavEKF2: support higher optical flow updates rates
2019-05-11 16:23:57 +09:00
Andrew Tridgell
cc62998d40
AP_NavEKF2: 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
2019-05-07 06:59:50 +10:00
Michael du Breuil
7f639c1bb2
AP_NavEKF2: Allow checking all cores for failure
2019-04-09 10:53:25 +10:00
Pierre Kancir
50e99b6e1a
AP_NavEKF2: use get_distance_NE instead of location_diff
2019-04-08 08:00:52 -07:00
Pierre Kancir
3f5a6a243c
AP_NavEKF2: use get_distance instead of location_diff
2019-04-08 08:00:52 -07:00
Paul Riseborough
8038efc152
AP_NavEKF2: Flow use parameter updates
2019-04-02 10:51:12 +11:00
Paul Riseborough
e2148e7e2a
AP_NavEKF2: Update default plane optical flow param values
...
Reduce time required to form estimate of terrain offset
2019-04-02 10:51:12 +11:00
Paul Riseborough
aa6eee82f4
AP_NavEKF2: Rework opt flow terrain height logic
2019-04-02 10:51:12 +11:00
Paul Riseborough
67d20f3b3c
AP_NavEKF2: Update parameter description
2019-04-02 10:51:12 +11:00
Paul Riseborough
1862512c2b
AP_NavEKF2: Use flow sensor for navigation with unknown platform type
...
This is the more common use case.
2019-04-02 10:51:12 +11:00
Paul Riseborough
921205f61c
AP_NavEKF2: Minor amendments from review
2019-04-02 10:51:12 +11:00
Paul Riseborough
a40208ebd4
AP_NavEKF2: Improve optical flow height estimation
...
Updated derivation using sequential fusion of Y and X axis data.
2019-04-02 10:51:12 +11:00
Paul Riseborough
2b8b53d6b2
AP_NavEKF2: Add parameter to control how optical flow flow data is used
2019-04-02 10:51:12 +11:00
Mark Whitehorn
6b70181837
AP_NavEKF2: add getQuaternionBodyToNED
2019-03-29 10:58:00 +11:00
Tom Pittenger
8506ae9c32
AP_NavEKF2: rename dataflash to logger
2019-03-28 16:40:57 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
79ee52917f
AP_NavEKF2: replace location_offset() and get_distance() function calls with Location object member function calls
...
This allows removing duplicated code
2019-02-28 11:44:09 +11:00
Arjun Vinod
78b165e36f
AP_NavEKF2: fixed typos
2019-02-26 08:33:39 +11:00
Arjun Vinod
a0e7c37f8c
AP_NavEKF2: fixed typos
2019-02-22 10:21:35 +11:00
Tom Pittenger
b32e8a4424
AP_NavEKF2: remove HAL_CPU_CLASS_150 check, 150 is already a minimum requirement
2019-02-17 12:59:52 -08:00
Tom Pittenger
8a6a39b590
AP_NavEKF3: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07:00
Andrew Tridgell
ccc1f906f8
AP_NavEKF2: 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.
2019-02-09 13:04:52 +11:00
chobits
3766ee1b60
AP_NavEKF2: add external navigation data lag
2019-01-31 08:30:22 +09:00
Peter Barker
6fc76a32af
GLOBAL: use AP::logger() and strip redundant Log_ from methods
2019-01-18 18:08:20 +11:00
Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +11:00
Peter Barker
ebd12b30e8
AP_NavEKF2: adjust for Location_Class and Location unification
2019-01-16 11:45:29 +11:00
Peter Barker
9be604e3ce
AP_NavEKF2: adjust for location flags being moved out of union
2019-01-16 11:45:29 +11:00
Randy Mackay
c616587b86
AP_NavEKF: increase ABIAS_P_NSE param doc range to 0.005
2018-12-27 14:09:53 +09:00
Pierre Kancir
49d20364cb
AP_NavEKF2: pass quaternion by const reference
2018-12-20 09:05:01 +09:00
Andrew Tridgell
8ea7df3efe
AP_NavEKF2: added filter reset if unhealthy for 5s and disarmed
2018-11-30 11:02:30 +11:00
Michael du Breuil
29db069c75
AP_NavEKF2: Suppress clearing non-trival type warning
2018-10-30 16:17:03 -07:00
chobitsfan
1e56ad4837
AP_NavEKF2: add external nav system to POSNE_M_NSE description
2018-10-24 19:14:54 +09:00
chobits
08b9bf4a89
AP_NavEKF2: fix extNav position noise
2018-10-24 19:14:54 +09:00