Daniel Agar
298cc61e07
ekf2: push fuse beta config into backend
2022-11-02 10:09:26 -04:00
Daniel Agar
a242a0210e
Update world_magnetic_model to latest Mon 24 Oct 2022 09:29:11 PM EDT
2022-10-25 09:20:01 -04:00
Daniel Agar
6f861ba889
ekf2: pos/vel reset helpers pass new variance
...
- optical flow velocity reset use already computed _flow_vel_ne
2022-10-24 10:59:58 -04:00
Daniel Agar
ed558e199f
ekf2: remove realignYawGPS() (replaced with yaw estimator)
2022-10-21 09:01:30 -04:00
bresch
96e7ea7a08
ekf2: remove old mag declination auto-code
2022-10-20 18:16:25 -04:00
bresch
f0a0a3e545
ekf2_test: compare mag decl fusion sympy vs symforce
2022-10-20 18:16:25 -04:00
bresch
2f3ea88099
ekf2: migrate mag declination to SymForce
2022-10-20 18:16:25 -04:00
Daniel Agar
5030b21d2e
ekf2: replace quatToInverseRotMat if only used once
2022-10-20 14:15:32 -04:00
Daniel Agar
fb3adc3faa
ekf2: move baro compensation to delayed time horizon and add validity check
...
- this removes an unnecessary virtual call and simplifies things a bit
Co-authored-by: bresch <brescianimathieu@gmail.com>
2022-10-20 09:17:55 -04:00
Daniel Agar
cea185268e
msg ROS2 compatibility, microdds_client improvements (timesync, reduced code size, added topics, etc), fastrtps purge
...
- update all msgs to be directly compatible with ROS2
- microdds_client improvements
- timesync
- reduced code size
- add to most default builds if we can afford it
- lots of other little changes
- purge fastrtps (I tried to save this multiple times, but kept hitting roadblocks)
2022-10-19 19:36:47 -04:00
Daniel Agar
f9509b442c
ekf2: height aid source consistency ( #20405 )
...
- working towards keeping all height source (baro/ev/gnss/rng) handling as consistent as possible, possibly refactoring these out into separate classes later
2022-10-19 15:35:07 -04:00
Matthias Grob
5ca28dd6dc
Use isAllFinite() in all places that check finiteness on entire vectors or matrices
2022-10-19 19:09:20 +02:00
bresch
f77d7d9413
[AUTO COMMIT] update change indication
2022-10-19 17:34:31 +02:00
bresch
cf9859965a
ekf2: remove old yaw fusion auto-code
2022-10-19 17:34:31 +02:00
bresch
e33215b61c
ekf2_test: compare yaw fusion sympy vs symforce
2022-10-19 17:34:31 +02:00
bresch
42f683fa64
ekf2_test: test using positive definite covariance matrix
...
A covariance matrix needs to be positive definite
2022-10-19 17:34:31 +02:00
bresch
10f9ac148f
ekf2: migrate mag yaw fusion to SymForce
2022-10-19 17:34:31 +02:00
bresch
a41b6f416e
ekf2_test: verify heading innov variance in all orientations
2022-10-19 17:34:31 +02:00
bresch
f11908a266
ekf2: generate yaw fusion jacobians using symforce
2022-10-19 17:34:31 +02:00
Daniel Agar
b71fc63162
ekf2: fix sideslip timeout (typo)
2022-10-18 18:38:25 -04:00
Daniel Agar
0d2ff6e224
ekf2: test ekf_logger further reduce std::precision to minimize false positives
2022-10-18 14:19:16 -04:00
Daniel Agar
535415a537
ekf2: add OF estimator aid src status
2022-10-18 14:19:16 -04:00
bresch
8b9ac2d7f3
ekf2: remove old mag 3D fusion auto-code
2022-10-17 16:14:56 -04:00
bresch
77a36219c6
ekf2_test: compare 3D mag fusion sympy vs symforce
2022-10-17 16:14:56 -04:00
bresch
b92cbe12a0
ekf2: migrate mag 3D fusion to symforce
...
ekf2: merge mag 3d innov var, Hx and Kx computation to reduce flash
Slightly less code produced, almost no performance change
ekf2_mag3D: do not pre-compute Kalman gains
The vector of Kalaman gains is not too expensive to compute using
matrix-vector multiplication. Pre-generating it using CSE takes a lot of
flash space for little benefit.
2022-10-17 16:14:56 -04:00
Daniel Agar
116bb6049f
ekf2: fusion helper consistency
...
- yaw fusion use measurementUpdate()
- fuseVelPosHeight() respect _accel_bias_inhibit (like measurementUpdate())
2022-10-17 10:17:31 -04:00
bresch
458e5a6b0e
ekf2: update change indicator
2022-10-14 11:42:23 -04:00
bresch
1b4092abbb
symforce: temporarily remove custom cmake command
...
otherwise the generated files are removed with make clean
2022-10-14 11:42:23 -04:00
bresch
a8a3107c05
ekf2: remove old covariance prediction code
2022-10-14 11:42:23 -04:00
bresch
df084d65e3
ekf2_test: compare covariance prediction sympy vs symforce
2022-10-14 11:42:23 -04:00
bresch
a4e511b90e
ekf2: migrate covariance prediction to SymForce
2022-10-14 11:42:23 -04:00
Daniel Agar
2de990fd4b
estimator_aid_source split GNSS pos (3d) -> pos (2d) + hgt
...
- per estimator air source status only keep a single set of flags and
timestamp that applies to the entire source
2022-10-13 11:28:50 -04:00
bresch
bdd043f27f
ekf2: fix sideslip fusion sign
2022-10-12 16:14:47 +02:00
bresch
53865118fb
ekf2: remove old sideslip fusion code
2022-10-12 09:55:35 -04:00
bresch
f7c749c9cd
ekf2_test: compare sideslip fusion of Sympy and SymForce
2022-10-12 09:55:35 -04:00
bresch
d0f92bfbd5
ekf2_test: create helper functions for auto-generated code diff
2022-10-12 09:55:35 -04:00
bresch
5f54f6fcda
ekf2: migrate sideslip fusion to SymForce
...
- split fusion into update (compute innov and innov_var) and actual fusion to the state vector
- use estimator_aid_source_1d struct to group the data
2022-10-12 09:55:35 -04:00
bresch
4b687beb3b
ekf2: remove old airspeed fusion code
2022-10-03 10:59:42 -04:00
bresch
299e6058e3
ekf2_test: test airspeed symforce vs sympy generated code
2022-10-03 10:59:42 -04:00
bresch
29ebef1f74
ekf2: migrate fuse_airspeed to SymForce
2022-10-03 10:59:42 -04:00
Daniel Agar
41cda14126
ekf2: add symforce code generation helper target
2022-10-03 10:59:42 -04:00
bresch
20b46ad33f
ekf2_test: test validity of local position when not at rest
...
At rest, the zero velocity update keeps the local position valid all the
time. Deactivate it to be able to test the validity checks
2022-09-29 14:16:36 -04:00
bresch
1914053db2
ekf2: synchronize z_valid and v_z_valid
...
mc_pos_control doesn't handle all the cases at the moment
2022-09-29 14:16:36 -04:00
bresch
f753b92cff
ekf2: start fake pos fusion after dead-reckoning timeout
...
Starting the fake position as soon as all the aiding sources stop makes
the local position immediately invalid while we could continue to navigate
for a couple of second with inertial dead-reckoning
2022-09-29 14:16:36 -04:00
bresch
bb790c9bec
ekf2: add vertical dead-reckoning timeout check for height validity
2022-09-29 14:16:36 -04:00
Ville Juven
59e86c490d
Remove include <log.h> from defines.h
...
The reason for this is that log.h includes drv_hrt.h which sucks in
half the project's include files with it, which causes strange build
issues
2022-09-29 07:56:24 +02:00
Daniel Agar
1f7080a710
ekf2: extend sensor bias stability requirement
...
- for accel/gyro/mag estimated bias only consider them stable (valid
for calibration updates) if the value isn't changing (10% of limit) over
the validity period
2022-09-28 10:40:52 -04:00
Charles Cross
cfdaba35cc
Adds reset counter logic to EV height fusion
2022-09-26 11:48:18 +02:00
bresch
cddade2047
ekf2: use validated airspeed from airspeed sensor only
...
don't use synthetic measurements to prevent circular dependency
2022-09-23 09:26:47 -04:00
Daniel Agar
38d332a553
ekf2: inhibit accel bias dynamically when fake position/height fusion active
...
- inhibit accel bias learning dynamically depending on the angle between an accelerometer and the vertical axis when fake position fusion is active
2022-09-22 20:32:20 -04:00