Paul Riseborough
9d51ab079a
EKF: Remove duplicated event recording
2021-03-05 19:06:59 -05:00
Paul Riseborough
140ca3f48f
EKF: Add external monitoring of warning and information events
2021-03-05 19:06:59 -05:00
Paul Riseborough
90a445ddbc
EKF: upgrade some events from into to warning status
2021-03-05 19:06:59 -05:00
bresch
5d441d65e1
Accelerate tilt fine alignment by reducing obs noise when at rest
...
Fine tilt alignment is accomplished by fusing fake position data after
a coarse tilt leveling. The observation noise can be reduced if the
vehicle is at rest to speed up the process.
2021-03-04 19:43:01 +11:00
Daniel Agar
098d5ce5c0
EKF allow range aid without horizontal aiding
...
- skip range aid velocity check when horizontal aiding isn't active
2021-02-22 11:55:56 -05:00
Nicolas MARTIN
29943a2c09
EKF test ratio status return current height source test ratio
2021-02-22 09:22:45 -05:00
mcsauder
164e53bad3
Add unit tests and update ekf_helper setEkfGlobalOrigin() method to allow for condition when current position is unitialized.
2021-02-19 08:59:47 -05:00
Daniel Agar
63f64b57c1
EKF: set global origin method
...
EKF: add convergence after global origin reset test
2021-02-19 08:59:47 -05:00
bresch
04844a04ed
ekf control: move time_last_in_air/on_ground out of GPS control logic
2021-02-18 10:11:51 +01:00
bresch
b00d4a9237
mag fusion: improve on ground forced mag fusion logic
...
While a yaw test ration > 1 rejects the mag data in air, the fusion is
forced with a limited innovation on ground to fix gyro bias and local
magnetic effects problems pre-takeoff. However, the same logic is
applied after landing and immediately after the land detector detects
landing. In some cases, this can disturb the other EKF states which can
lead to a state change of the land detector.
To avoid such a loop, the start of this forced yaw fusion is delayed by
5 seconds after landing.
2021-02-18 10:11:51 +01:00
Daniel Agar
310f415175
EKF add const state reset status access
2021-02-16 10:33:43 -05:00
isidroas
0c5291d194
Heading reset to magnetometer from GPS or EV ( #969 )
2021-02-16 14:37:34 +01:00
Mathieu Bresciani
d4258cc66d
yaw emergency: check angle between vel observation and estimate ( #975 )
...
use thresholds based on state and obs variance
* [AUTO COMMIT] update change indication
2021-02-15 10:31:16 +01:00
Loic Dubois
ffab483504
Waiting for the filter to be initialized to set global origin
2021-02-11 12:55:25 -05:00
Paul Riseborough
602e65146c
EKF: Remove unnecessary initialisation
2021-02-09 19:55:32 +11:00
Paul Riseborough
6f664abc4a
EKF: Non functional changes arising from review
2021-02-09 19:55:32 +11:00
Paul Riseborough
b87778e61d
EKF: Make clip detection logic easier to follow
2021-02-09 19:55:32 +11:00
Paul Riseborough
9aa8d93efc
EKF: Use isRecent function
2021-02-09 19:55:32 +11:00
Paul Riseborough
e948b3505f
EKF: Don't reject vertical aiding data if inertial solution is bad
...
Also reduce clipping count threshold
2021-02-09 19:55:32 +11:00
Paul Riseborough
c566318db5
EKF: misc improvements to handling of accel clipping
2021-02-09 19:55:32 +11:00
Paul Riseborough
9c89fa3b29
EKF: Use IMU clipping to adjudicate bad accel data check
2021-02-09 19:55:32 +11:00
bresch
cd38621dd6
flow terrain: use dedicated variable for last fusion time
...
This avoids confusion with the flow "for velocity" fusion in the main
EKF
2021-02-08 23:26:33 -05:00
bresch
5aaa6c6dde
lpos accuracy: bump variance if deadreckon time exceeded
2021-02-08 09:01:51 -05:00
Paul Riseborough
b919f3ddf4
EKF: Restore protection from extreme innovation values
2021-01-21 20:55:42 +11:00
Paul Riseborough
efb78deef9
EKF: Set position fusion gate option false by default
2021-01-21 20:55:42 +11:00
Paul Riseborough
556a195320
EKF: Improve handling of non position mode large position innovations
...
These changes fix a bug that allowed IMU gyro errors that cause large tilt errors prior to start of aiding not resulting in large innovation test ratios.
2021-01-21 20:55:42 +11:00
Paul Riseborough
99575d73e1
EKF: Add bad accel bias checking for EV and range finder height use cases
2021-01-09 11:03:31 -05:00
Paul Riseborough
ff3c0a6136
EKF: Fix bug preventing recovery from bad delta velocity bias estimates
2021-01-09 11:03:31 -05:00
Paul Riseborough
dd259a288f
EKF: Don't modify accel bias states and variances when inhibited
2021-01-09 11:03:31 -05:00
Paul Riseborough
3e1f2d8674
EKF: Set dvel bias variance to stored value when state is inactive
2021-01-09 11:03:31 -05:00
bresch
c212975abe
rng height: reset to baro using common logic
...
The failsafe from rng height to baro height should occur after a reset
to baro triggered by the controlHeightSensorTimeouts function and not in
the fusion selector.
Until now, the EKF was fusing baro measurements between rng updates if
the range finder ODR was slower than the EKF update rate. This is not
the case anymore as the height reset occurs after 5 seconds.
The unit test has been extended to show this behavior.
2021-01-07 10:07:57 +01:00
Paul Riseborough
03fed323ab
EKF: Fix formatting
2021-01-05 21:08:28 +11:00
Paul Riseborough
31fca9c31d
EKF: Update GPS loss message
2021-01-05 21:08:28 +11:00
Paul Riseborough
c65cf13bb8
EKF; Treat combined sideslip and airspeed as a horizontal aiding source
2021-01-05 21:08:28 +11:00
Kamil Ritz
78ce46f007
Removing Matlab derivation
2021-01-02 06:29:11 +11:00
Kamil Ritz
df7f261e03
Add missing const modifier
2020-12-20 14:04:29 +01:00
Daniel Agar
a8e0e82858
EKF: update mag LPF immediately
2020-12-17 10:46:04 +01:00
Daniel Agar
398fe159ce
EKF: allow initialising without mag depending on configuration
...
- reduce initial number of required mag and baro samples before init
2020-12-17 19:55:51 +11:00
Daniel Agar
1237087d70
AlphaFilter add constructor that takes alpha and use in EKF
2020-12-16 13:55:59 -05:00
Mathieu Bresciani
5ccb8b457d
fakePosFusion: reset _last_known_posNE to current state when starting ( #943 )
...
* [AUTO COMMIT] update change indication
2020-12-15 10:09:01 +01:00
bresch
9d22f140dd
gps_alt: constrain var using 1.5 as a typical ratio of vacc/hacc
2020-12-13 14:39:50 +11:00
bresch
b0cf45e2d2
gps_alt: rename getGpsAltVar -> getGpsHeightVariance
2020-12-13 14:39:50 +11:00
bresch
62f2e26c49
gps_alt: reset GPS alt variance usign helper function
2020-12-13 14:39:50 +11:00
bresch
f7bddda3d5
gps_alt: do not scale up reported gps vertical accuracy
...
The comment said that the horizontal accuracy needs to be scaled up
using the typical epv/eph ratio but the epv (vacc) is already available,
so no scaling is required.
2020-12-13 14:39:50 +11:00
bresch
02369cd415
gps_alt: extract measurement variance computation and saturation
2020-12-13 14:39:50 +11:00
Daniel Agar
1541e4b414
EKF: update control status and fault status getters
...
- the fault status union exceeded 16 bits, but the getter was get_filter_fault_status(uint16_t *val)
2020-12-10 09:13:12 -05:00
zhaoxiaowei
fbf67bdef9
reset gps height use vacc
2020-12-10 10:07:59 +01:00
Mathieu Bresciani
8f3df7a97b
flow: restructure optical flow control logic ( #928 )
...
- extract motion checks performed on ground
- move all non-timing check to controlOpticalFlowFusion. This simplifies and standardirzes the setOpticalFlowData function. Furthermore, in some cases (SITL, PX4Flow), the dt is forced to 0 when the quality is 0 (which is usual on ground) so the ekf needs to ignore those values on ground to initialize properly the flow fusion.
- add filter convergence test
- move check for dt time max in setOpticalFlowData
- in the simulator, do not update dt as this is the sensor integration
period.
2020-12-09 11:33:00 +01:00
Daniel Agar
688a054bdb
EKF: controlDragFusion() add parenthesis for readability
2020-12-08 18:03:04 -05:00
Paul Riseborough
944b18c63e
EKF: Remove non useful status print
...
Local position is never valid when filter is initialised so there is no use printing the status.
2020-12-08 18:03:04 -05:00