Paul Riseborough
759d217d5a
EKF: Improve protection for GSF weight collapse
2020-10-06 20:50:52 +11:00
Paul Riseborough
7c81350c7a
EKF: Don't yaw reset if not yaw induced nav failure
2020-10-06 20:50:52 +11:00
Paul Riseborough
bf0d70fc90
EKF: Protect against collapse of GSF weights
2020-10-06 20:50:52 +11:00
Daniel Agar
4c2355a638
EKF: use GPS to lookup declination from WMM before full GPS checks pass
2020-09-28 08:43:32 +02:00
bresch
5879eaaf78
ekf: fix variable length array error
...
Even if the non_zeros() function is static constexpr, gcc (10.2) does not like it.
Using sizeof...(Idxs) fixes the error.
2020-09-25 11:33:29 +02:00
Daniel Agar
fab242a81f
python generation add shebang, mark executable, ignore cache
...
- commit all current generated files
2020-09-07 09:20:41 +02:00
bresch
264c8c4e86
mag_fusion: mag heading and 3d modes are mutually exclusive
...
There is no need to check if 3d fusion is active when in mag heading
fusion mode since this is impossible
2020-08-27 15:48:40 +10:00
kamilritz
9797e4d28f
updateYawInRotMat with hidden rotation sequence handling
2020-08-27 09:51:56 +10:00
kamilritz
4fb4e0ca01
Clean euler321 and euler312 code and comment
2020-08-27 09:51:56 +10:00
Kamil Ritz
2be738e806
Add helper function to alter heading in rotation matrices
2020-08-27 09:51:56 +10:00
Kamil Ritz
fdc86c247a
add functions to compute yaw (321 and 312 sequence)
...
from quaternion and rotation matrix
2020-08-27 09:51:56 +10:00
Kamil Ritz
15afa8ae17
shouldUse321RotationSequence(const Dcmf& R)
2020-08-27 09:51:56 +10:00
Kamil Ritz
4872f2a545
Remove not used code
2020-08-24 19:24:27 +10:00
Kamil Ritz
0fafd4d68b
precompute cos and sin of yaw once before mutliple use
2020-08-24 19:24:27 +10:00
Kamil Ritz
114516b784
Use new added matrix functions
2020-08-24 19:24:27 +10:00
Kamil Ritz
1f637af7de
Add const modifier
2020-08-24 19:24:27 +10:00
kamilritz
aa2c77f92d
Small cleanup in velposfusion
2020-08-24 18:04:57 +10:00
kamilritz
644e903552
Apply measurementUpdate function
2020-08-24 18:04:57 +10:00
kamilritz
404edde7f3
Add measurementUpdate function
2020-08-24 18:04:57 +10:00
kamilritz
f6252ff533
small cleanup in limitDeclination
2020-08-24 18:04:57 +10:00
Paul Riseborough
fd849e0578
EKF: Fix specific force observation noise variance
...
Also add protection for out of range value.
2020-08-18 17:05:59 +10:00
Paul Riseborough
76f393dcb0
EKF: Use const reference instead of local copy
2020-08-18 17:05:59 +10:00
Paul Riseborough
c43307b8cf
EKF: convert drag fusion from Matlab to SymPy generated auto-code
2020-08-18 17:05:59 +10:00
Paul Riseborough
1e6c6f2d3c
EKF: update all output states when aligning output time horizon filter
2020-08-16 10:00:47 +10:00
kamilritz
3bd9415498
Make delayed output stayed not a member variable
2020-08-16 10:00:47 +10:00
kamilritz
da9bfe4316
Update interface of applyCorrectionsToOuputStates
2020-08-16 10:00:47 +10:00
Paul Riseborough
64ab2b087a
EKF: Only record successful sideslip fusion when states updated
2020-08-16 08:45:59 +10:00
Paul Riseborough
0fa7ef3517
EKF: Use ecl::powf for integer exponents
2020-08-16 08:45:59 +10:00
Paul Riseborough
168dbdf630
EKF: Convert sideslip fusion to use SymPy generated auto-code
2020-08-16 08:45:59 +10:00
Paul Riseborough
06aa78a291
EKF: Only record airspeed fusion event when states are updated
2020-08-16 08:45:26 +10:00
Paul Riseborough
486a461a5e
EKF: airspeed fusion derivation test comparison cleanup
2020-08-16 08:45:26 +10:00
Paul Riseborough
ede6204f85
EKF: airspeed fusion cleanup
2020-08-16 08:45:26 +10:00
Paul Riseborough
a5a43dbc6c
EKF: Convert airspeed fusion to use SymPy generated auto-code
2020-08-16 08:45:26 +10:00
Paul Riseborough
5907e81ef7
EKF: optflow fusion cleanup
2020-08-16 08:44:17 +10:00
Paul Riseborough and kritz
7fa9a1963b
EKF: optflow fusion cleanup
...
Co-authored-by: kritz <kritz@ethz.ch >
2020-08-16 08:44:17 +10:00
Paul Riseborough and kritz
0e74f3ea9d
EKF: optflow fusion cleanup
...
Co-authored-by: kritz <kritz@ethz.ch >
2020-08-16 08:44:17 +10:00
Paul Riseborough and kritz
6e992a18f6
EKF: optflow fusion cleanup
...
Co-authored-by: kritz <kritz@ethz.ch >
2020-08-16 08:44:17 +10:00
Paul Riseborough
1ad042da23
EKF: Use ecl::powf in comparison test
2020-08-16 08:44:17 +10:00
Paul Riseborough
274523bd98
EKF: Use ecl::powf for integer exponents
2020-08-16 08:44:17 +10:00
Paul Riseborough
f20a5d814d
EKF: Remove redundant tilt check
...
Also fix comment indent
2020-08-16 08:44:17 +10:00
Paul Riseborough
1592db8f34
EKF: Convert optical flow fusion to use SymPy generated equations
2020-08-16 08:44:17 +10:00
Paul Riseborough
1f386c1bb8
EKF: Add yaw estimate SymPy generated code files
2020-08-16 08:43:29 +10:00
Paul Riseborough
510d93858f
EKF: move yaw estimator derivation into main filter derivation
...
Enables use of common components
2020-08-16 08:43:29 +10:00
Paul Riseborough
f89c52e840
EKF: use ecl::powf for integer exponents
2020-08-15 08:40:59 +10:00
Paul Riseborough and kamilritz
0aa2f17562
EKF: Convert GPS yaw observation method to use SymPy generated code ( #880 )
...
* EKF: add test comparison program for GPS yaw fusion equations
* EKF: convert GPS yaw fusion method to use SymPy generated equations
* Replace if/else with simple if
* EKF: fix formatting of GPS yaw fusion auto-code comparison test
* EKF: Use SparseVector type for GPS yaw fusion Jacobians
* EKF: Fix bug in GPS yaw derivation comparison check
* Add gps_yaw auto generated code file
Co-authored-by: kamilritz <kritz@ethz.ch >
2020-08-13 13:23:57 +10:00
Paul Riseborough and kamilritz
21cc46edd7
EKF: Convert magnetic field observation methods to use SymPy generated code ( #879 )
...
* EKF: Add comparison test for mag field fusion generated code
* EKF: convert mag field fusion to use SymPy generated code
* EKF: Add test comparison program for yaw fusion equations
* Stop setting 0 to 0
* Reduce if/else statement to only if
* EKF: more accurate implementation for sequential fusion of magnetometer data
* test: update change indicator
* Use matrix::SparseVector<float, 24, ...> for observation jacobian
* Adapt the auto code generation to allow for different bracket styles
* Add auto generated code for mag fusion
* Add generic computation of KHP
* Apply generic computation of KHP to mag fusion
* tests: update change indicator
* tests: update change indicator
Co-authored-by: kamilritz <kritz@ethz.ch >
2020-08-11 18:57:22 +10:00
Paul Riseborough and kamilritz
6feb28c27d
EKF: Convert EKF-GSF yaw estimator from matlab to sympy derived equations ( #871 )
...
* EKF: Add sympy derivation of equations for EKF-GSF yaw estimator
* EKF: Convert EKF-GSF yaw estimator to use sympy generated equations
* EKF: Add status prints for GSF-EKF yaw estimator cvode gen
* EKF: Move generated code for GSF-EKF yaw estinmator to generated directory
* Make it run with python3
* Cleanup yaw estimator code generation
* Improve and simplify gsf measurement update code generation
* Use improved auto generated measurement update code
& remove obsolete updateInnovCovMatInv function
* Delete generated ekf_derivation for the moment
Co-authored-by: kamilritz <kritz@ethz.ch >
2020-08-10 09:27:31 +02:00
kamilritz
497008811a
Update matrix version
2020-08-09 11:08:59 -04:00
kamilritz
310b989c9a
refactor start of gps into separate function
2020-08-07 10:02:47 +02:00
kamilritz
7eb2b08eed
Yaw measurement jacobian to Vector4f
2020-08-04 09:57:00 +02:00