Daniel Agar
de178b1435
ekf2: move gravity fusion file to aid_sources/gravity
2024-05-02 17:40:58 -04:00
Daniel Agar
78f2ccbb60
ekf2: move optical flow files to aid_sources/optical_flow
2024-05-02 17:40:58 -04:00
Daniel Agar
fcf94e7670
ekf2: move GNSS files to aid_sources/gnss
2024-05-02 17:40:58 -04:00
Daniel Agar
31ae5b77fe
ekf2: move drag_fusion file to aid_sources/drag
2024-05-02 17:40:58 -04:00
Daniel Agar
c3fb0b1090
ekf2: move auxvel file to aid_sources/auxvel
2024-05-02 17:40:58 -04:00
Daniel Agar
b5d1e87368
ekf2: move EV files to aid_sources/external_vision
2024-05-02 17:40:58 -04:00
Daniel Agar
b6da0b141d
ekf2: GPS yaw only invalidate yaw_align if stopping due to fusion failure
2024-04-29 21:04:21 -04:00
bresch
9dc7719d4a
ekf2: Only reset to GNSS heading if necessary
...
When North-East (e.g.: GNSS pos/vel) aiding is active, the heading
estimate is constrained and consistent with the vel/pos aiding. Reset to
GNSS heading should only occur if no N-E aiding is active or if the
filter is not yes aligned. Otherwise, just wait for the consistency
check to pass again (will pass at some point if the heading uncertainty
of the filter is getting too high).
2024-04-29 07:22:01 -07:00
bresch
8bf1cf0b15
ekf2_params: reduce "short" description
2024-04-24 15:09:57 -04:00
bresch
4cf51e5833
baro comp: set hpf optional
2024-04-22 15:59:50 +02:00
Daniel Agar
ec3ceae45e
ekf2: move yaw_estimator and derivation to dedicated folder
2024-04-18 15:14:59 -04:00
bresch
a8a67fbf8f
ekf2: set horizon using specific parameter
...
Some sensors can have their delay included in the timestamp. In this
case, the buffer cannot be sized using the _DELAY parameter.
2024-04-17 09:16:16 -04:00
bresch
7a973eddce
ekf2: migrate param to yaml
2024-04-16 11:14:13 -04:00
Daniel Agar
78bbb66568
delete SYS_MC_EST_GROUP
...
- introduce per module parameters (EKF2_EN, LPE_EN, ATT_EN)
- add basic checks to prevent EKF2 + LPE running simultaneously
2024-04-15 16:06:08 -04:00
bresch
5f61e3b785
ekf2: update change indicator
2024-04-05 22:26:03 -04:00
bresch
b79d3854e4
ekf2: remove option to continuously fuse mag declination
...
Declination fusion is only used when not observable (no global aiding).
2024-04-05 22:26:03 -04:00
bresch
dae246d7e2
ekf2: do not continuously use mag decl fusion when GNSS fusion is active
...
This prevents over-constraining the heading from mag fusion. An
incorrect mag yaw rotation can be absorbed as a declination error.
2024-04-05 22:26:03 -04:00
bresch
2f51db7284
ekf2: limit mag heading fusion to prevent heading overconfidence
2024-04-05 22:26:03 -04:00
bresch
51883fe5d4
ekf2: integrate mag heading into mag 3D
2024-04-05 22:26:03 -04:00
bresch
0c9e4013d2
ekf2: improve tilt leveling speed
...
Starting with no yaw uncertainty makes the tilt more observable when
using fake position fusion during the quasi-stationary alignment phase.
2024-04-05 22:26:03 -04:00
bresch
12fefbcfbd
ekf2: use global definition of quaternion error
2024-04-05 22:26:03 -04:00
murata,katsutoshi
749f88b62b
ekf2: gps control lazily check yaw_failure() only after in_air
2024-03-26 19:50:57 -04:00
bresch
638e17d551
ekf: update change indicator
2024-03-20 14:13:49 +01:00
bresch
6d819343aa
ekf2: fix direct state measurement update for suboptimal K case
...
The duration of a unit test had to be increased because the incorrect
covariance matrix update, was making the unit test passing faster
(over-optimistic variance).
2024-03-20 14:13:49 +01:00
bresch
cb2bb2e098
ekf2: add no gyro bias estimate test case
...
This makes the ekf unstable and creates NANs during initialization
2024-03-20 14:13:49 +01:00
bresch
c9221b91ad
ekf2: fix gnss yaw unit test
2024-03-20 14:04:19 +01:00
muramura
32aa3263a6
EKF: Change a typo
2024-03-18 10:29:44 +01:00
bresch
7c6ecd95a8
mc_wind_estimator_tuning: optionally use GNSS velocity
...
Sometimes GNSS is logged but not used
2024-03-14 21:06:24 +01:00
bresch
b2f1122372
ekf2: remove old yaw 321 and 312 derivations
2024-03-14 11:33:45 -04:00
bresch
ee63f3e664
update change indicator
2024-03-14 11:33:45 -04:00
bresch
e3f67d5c1a
ekf2: new yaw derivation
...
Instead of euler angles, compute measurement jacobian using a small
global perturbation around the vertical axis
2024-03-14 11:33:45 -04:00
bresch
0d0978b3b9
ekf2: update change indicator
2024-03-07 11:06:31 -05:00
bresch
0639f5370c
ekf2: fix mag and wind covariance prediction
2024-03-07 11:06:31 -05:00
bresch
2bacb4b65d
ekf2: update change indicator
2024-03-07 15:11:47 +01:00
bresch
421f13e4b5
ekf2: fix joseph covariance update for Schmidt-Kalman filter
...
If part of the Kalman gain is zeroed, the first step of the joseph
update does not produce a symmetrical matrix.
2024-03-07 15:11:47 +01:00
bresch
6f9a378247
yaw_est: force set gyro bias when at rest
...
The gyro bias estimate from EFK2 is really good when at rest and should
be used by the yaw estimator to prevent heading drifts due to poor
heading observability.
2024-03-05 14:00:06 -05:00
bresch
28db3e1c8c
ekf2: update change indicator
2024-02-27 12:33:43 -05:00
bresch
e9d43015ce
ekf2: fix unit tests failing due to mag fusion changes
2024-02-27 12:33:43 -05:00
bresch
b46fc9a67d
ekf2 sensor_sim: set correct world mag field
2024-02-27 12:33:43 -05:00
bresch
b80f15f7b5
ekf2-mag_auto: always use mag 3D after takeoff
2024-02-27 12:33:43 -05:00
bresch
051baec9c4
ekf2: allow wind dead-reckoning after manual position reset
...
Reset velocity using airspeed and start navigating
2024-02-27 09:34:05 -05:00
Daniel Agar
8001132d33
ekf2: ZeroGyroUpdate move to fuseDirectStateMeasurement
2024-02-26 12:32:59 -05:00
bresch
08a2a6c836
update EKF2 change indicator
2024-02-26 12:32:59 -05:00
bresch
d501d8e1d4
ekf2: use Joseph stabilized update in direct state observations
2024-02-26 12:32:59 -05:00
bresch
9d9766c6cf
ekf2: use Joseph stabilized covariance update
2024-02-26 12:32:59 -05:00
bresch
37a40d3fc2
baro static pressure compensation tuning: remove dependency to baro bias
...
`estimator_baro_bias` requires to have GNSS and baro hgt active and GNSS as the reference. This is quite restrictive. Instead, we can simply use a high-passed version of the baro error.
2024-02-23 10:07:13 +01:00
Daniel Agar
506c60c471
ekf2: declination fusion don't use uninitialized parameter (EKF2_MAG_DECL)
2024-02-21 09:45:44 -05:00
Daniel Agar
8243b4f474
ekf2: move vel/pos reset helpers
2024-02-20 13:16:24 -05:00
Daniel Agar
22b957696d
ekf2: velocity/position fusion helper minor consistency cleanup
2024-02-20 13:16:24 -05:00
Daniel Agar
c338891677
ekf2: split vel_pos_fusion.cpp
2024-02-20 13:16:24 -05:00