* 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>
Replace the multiple if-else statements by a generic equation.
- For a multicopter, the attenuation factor is 2 and symmetrical
- For a fixedwing, the attenuation factor is 1 if the acceleration is
positive and that centripetal correction is available and 2 otherwise.
Note that the function "sq" needs to be const in order to be used in a
const function.
* Add const modifiers
* Pass imu data as sampe
* Remove emergency reset request counter
* Improve matrix library usage
* Indentation fix
* Do not store innovation matrix for each model
* Make weights a separate vector
* EKF: Add missing alignment transfer to AHRS solutions
* EKF: Replace #define constants with static constexpr
* EKF: Move declaration for weights into GSF section
* EKF: Fix documentation error
Co-authored-by: Paul Riseborough <p_riseborough@live.com.au>
* EKF: Use common rate vector calculation for offset corrections
* EKF: Remove duplicate matrix entry calculations
* EKF: Create a EKF-GSF yaw estimator class
* EKF: add emergency yaw reset functionality
* EKF: remove un-used function
* EKF: Ensure required constants are defined for all builds
* EKF: Fix CI build error
* Revert "EKF: remove un-used function"
This reverts commit 93005309c7f3794414ad99c86218b3062e00bbd3.
* EKF: Replace in-lined Tait-Bryan 312 conversions with function call
Also remove unnecessary operations
* EKF: Remove unnecessary update of external vision rotation matrix
* EKF: Use const
* EKF: use const
* EKF: don't use class variable as a temporary variable
* EKF: update comments
* EKF: Improve efficiency of yaw reset
Use conversion from rotation matrix to Euler angles instead of quaternion to euler angles.
* EKF: use const
* EKF: remove un-used struct element
* EKF: more descriptive function name
* EKF: use existing matrix row operator
* EKF: remove unnecessary rotation matrix update
* EKF: Use square matrix type
* EKF: Improve protection for bad innovation covariance
* EKF: Use matrix library operations
* EKF: Replace memcpy with better alternative
memcpy bypasses compiler sanity checks and is unnecessary in this instance.
* EKF: Split EKF-GSF yaw reset function
Adds a common function to support yaw reset that can be used elsewhere.
* EKF: Use common function for quaternion state and covariance yaw reset
* EKF: Replace inlined matrix operation
* EKF: Use const
* EKF: Change accessor function name
* EKF: Use const
* EKF: Don't create unnecessary duplicate variable locations
* EKF: Remove duplicate covariance innovation inverse
* EKF: Don't create unnecessary duplicate variable locations
* EKF: Rely on geo library to provide gravity
* EKF: Improve protection from bad updates
* EKF: Reduce effect of vibration on yaw estimator AHRS
* EKF: Improve yaw estimator AHRS accuracy during manoeuvre transients