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
Silvan Fuhrer
5dfdf8c071
matrix: remove bold printing of diagonal elements
...
As this was not working in NSH.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2024-02-23 11:05:09 -05:00
Matthias Grob
3e183feb49
matrix: Slice templated on const and non-const matrix cases
...
to avoid casting const to non-const with
`const_cast<Matrix<Type, M, N>*>(data)`
2024-01-30 11:46:33 -05:00
Matthias Grob
88102d82db
matrix: return value simplifications
2024-01-30 11:46:33 -05:00
Matthias Grob
44a8c553fb
AxisAngle use Vector3<T> instead of Vector<T, 3>
2024-01-30 11:46:33 -05:00
Matthias Grob
ea4fdfd637
matrix: fix internal include chain
2024-01-30 11:46:33 -05:00
Daniel Agar
c3ae7b28c0
matrix: adjust printing for if symmetric (lower triangular only)
2024-01-16 10:20:21 -05:00
Daniel Agar
d45c3d3407
ekf2: verbose (DEBUG_BUILD) print status with Matrix improved print
...
* ekf2: verbose print status
* matrix/Matrix improve print output
* bold diagonal elements, print ring buffer entry size
* print in scientific notation when >= 10 to respect max size
---------
Co-authored-by: bresch <brescianimathieu@gmail.com >
2024-01-10 09:46:04 -05:00
Matthias Grob
bcb2b1ad40
matrix: fix slice to slice assignment to do deep copy
...
To fix usage of a.xy() = b.xy() which should copy
the first two elements over into a and not act on a copy of a.
2023-12-21 11:42:08 +01:00
Konrad
df46ad7774
Dcm2: Use std::sin with overloaded types
2023-12-05 10:42:23 +01:00
Matthias Grob
be05b3e8d7
helper_functions: include defines for M_PI_PRECISE
...
The defintion of the custom symbol M_PI_PRECISE
was not included in one of the only places it's used.
Looks like a mistake that happened in
34c852255e
possibly because a lot of things are included
almost everywhere and if the include order
ligns up there are no compile errors.
2023-11-30 17:16:02 +01:00
Mathieu Bresciani
0d6c2c8ce9
EKF2: Error-State Kalman Filter ( #22262 )
...
* ekf derivation: change to error state formulation
* ekf2: update auto-generated code for error-state
* ekf2: adjust ekf2 code for error state formulation
* ekf2_tests: adjust unit tests for error-state EKF
* update change indicator for error-state EKF
* ekf2_derivation: allow disabling mag and wind states
---------
Co-authored-by: bresch <[brescianimathieu@gmail.com ](mailto:brescianimathieu@gmail.com )>
2023-10-31 10:02:18 -04:00
bresch
9c41c06325
square matrix: add function to uncorrelate part of the matrix
2023-09-19 09:37:50 -04:00
bresch
b612467593
square matrix: add partial trace computation
...
This is useful when we need the sum of some variances in a large
covariance matrix
2023-09-19 09:37:50 -04:00
bresch
01fc4c3cf1
SquareMatrix: add functions to copy upper and lower triangle
2023-08-08 12:09:56 -04:00
Patrick José Pereira
39e04d9712
lib: matrix: SquareMatrix: Deal with the special case of M=1
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com >
2023-07-06 08:24:33 +02:00
bresch
d03f242c04
DCM: use simplified conversion from unit quaternion
...
This is exactly equivalent for a unit quaternion (and only unit
quaternions should be used to encode a rotation)
2023-06-05 11:58:42 -04:00
Morten Fyhn Amundsen
04c5d70588
matrix: Describe emult, edivide functions
2023-05-09 16:14:55 +02:00
Matthias Grob
37d3218d11
matrix: add 2d rotation matrix
2023-04-15 21:57:40 +02:00
Matthias Grob
9f8fa99d70
matrix: use stack allocation for debug output string
2023-03-21 15:01:26 +01:00
Matthias Grob
b1435c6e34
matrix: use output stream function template
...
to enable proper automatic output in gtest unit tests
that compare two `Matrix`, `Vector` or two `Dual` objects.
Credits to @jwidauer for showing me this trick.
2023-03-21 15:01:26 +01:00
Matthias Grob
b0189d95af
Use new Vector4 class
2023-03-21 15:01:26 +01:00
Matthias Grob
08d6465ce5
matrix: add explicit Vector4 type
2023-03-21 15:01:26 +01:00
RomanBapst
6e07af959f
fixed bug in Matrix library
...
Signed-off-by: RomanBapst <bapstroman@gmail.com >
2023-02-16 11:28:41 +01:00
Eric Katzfey
34c852255e
Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard. ( #20458 )
...
* Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard.
* Added a new M_PI_PRECISE constant definition to px4_platform_common/defines.h to be
used in places when M_PI is desired but shouldn't be used because it is not C standard.
* Added the px4_platform_common/defines.h include to the matrix library math.hpp header to pull
in some non-standard M_PI constants and updated the test files to use those constants.
* Fixed PI constants in matrix helper test to prevent test failure
2022-10-31 11:51:23 -04:00
Matthias Grob
93de9567a5
Matrix: add isAllFinite() to check if every element is finite
2022-10-19 19:09:20 +02:00
Daniel Agar
a73efd9c4f
NuttX carry minimal c++ cmath (replacing Matrix stdlib_imports.hpp)
2022-07-12 08:05:06 -04:00
Matthias Grob
db7430aa65
matrix helper: remove needless comment line
2022-03-23 10:51:45 +01:00
Matthias Grob
4a5a8d59fe
matrix helper: add documentation for sign function
2022-03-23 08:47:52 +01:00
Matthias Grob
d0abcc1ca3
MatrixHelperTest: add unit tests for the signum function
2022-03-23 08:47:52 +01:00
Matthias Grob
03f836f79d
matrix helper: fix sign function zero case
2022-03-23 08:47:52 +01:00
Matthias Grob
9ab99a7689
MatrixHelperTest: don't rely on FLOAT_EQ accepting FLT_EPSILON inaccuracy
2022-03-18 13:35:18 +01:00
Thomas Stastny
144697bb6a
MatrixHelperTest: correct wrap compare values
2022-03-18 13:35:18 +01:00
Matthias Grob
cde7b1bc41
Matrix: remove deprecated minimal test framework
2022-03-17 13:02:22 +01:00
Matthias Grob
91493307b9
Matrix: convert vector test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
4b63f6b29a
Matrix: convert vector assignment test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
f4b53d2762
Matrix: convert vector3 test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
ddfd62dfc2
Matrix: convert vector2 test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
be28aeb3ee
Matrix: convert upper right triangle test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
4d43aad847
Matrix: convert transpose test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
b3cc18c6de
Matrix: convert square test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
555ed9b9d8
Matrix: convert slice test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
46df8ab60c
Matrix: convert set identity test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
831f0e9aac
Matrix: convert scalar multiplication test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
38d742f1b5
Matrix: convert pseudo inverse test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
57e443c4a4
Matrix: convert multiplication test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
719898f1e3
Matrix: convert least squares test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
fddcf342e9
Matrix: convert inverse test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
f5ec4b2339
Matrix: convert integral test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
7c9e28c168
Matrix: convert helper test to gtest
2022-03-17 13:02:22 +01:00