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
Daniel Agar
c4c41c49e5
ekf2: move fuseVelPosHeight() -> fuseDirectStateMeasurement()
...
- don't bother keeping bad_vel_{N,E,D} and bad_pos_{N,E,D} fault status bits
2024-02-20 13:16:24 -05:00
Daniel Agar
021dd0d0af
ekf2: fix EV height bias predict call
...
- needs to be called every iteration
2024-02-20 11:47:53 -05:00
bresch
c221da27a7
ekf2: set attitude validity flag using centralized function
2024-02-20 11:33:30 -05:00
Daniel Agar
1032dd3470
ekf: fix measurementUpdate comment typo
2024-02-19 09:41:49 +01:00
Daniel Agar
8dc3975456
ekf2: only populate gnss pos aid src status if ref initialized
...
- this is a minor logging improvement when plotting the position from the beginning of the log (often a replay session)
2024-02-15 13:13:10 -05:00
muramura
f636414ca7
tuning_tools: Change 1G to a more accurate value
2024-02-09 10:26:57 -05:00
bresch
17d55dddd6
ekf2-drag: do not generate Kalman gain to save flash
2024-02-06 12:16:33 +01:00
bresch
1efb08375a
ekf2: let drag fusion affect the complete state vector
...
This improves tilt estimation and can extend the inertial dead-reckoning
validity period
2024-02-06 12:16:33 +01:00
bresch
9c02e384e6
ekf2-agp: follow measurement reset
2024-01-30 11:23:55 -05:00
bresch
5d9081b0dd
ekf2-agp: ensure logging of AGP aid_src topic
2024-01-30 11:23:55 -05:00