Kalman Relative Attitude Processor
Estimates relative attitude using a Kalman filter. This is based on Android native implementation: https://android.googlesource.com/platform/frameworks/native/+/refs/heads/master/services/sensorservice/Fusion.cpp And also based on: https://www.mdpi.com/1424-8220/20/23/6731
This implementation uses a Kalman filter where attitude is estimated based on direction vector obtained from accelerometer measurements for filter corrections, and current system state based on angular speed for attitude predictions.
Constructors
Types
Properties
Contains estimated accelerometer state as measurements expressed in NED coordinates.
Error covariance of estimated accelerometer state. This is only available if computeCovariances and computeAccelerometerCovariance are true.
Accelerometer noise standard deviation expressed in m/s^2. If not provided DEFAULT_ACCELEROMETER_NOISE_STANDARD_DEVIATION will be used.
Indicates whether accelerometer covariance is estimated or not. This is only taken into account if computeCovariances is true.
Indicates whether attitude covariances must be processed or not.
Indicates whether Euler angles must be estimated from NED attitude or not.
Indicates whether propagated covariance for Euler angles expressed in NED coordinates is estimated or not. This is only taken into account if computeCovariances is true.
Indicates whether attitude quaternion covariance must be processed or not. This is only taken into account if computeCovariances is true.
Indicates whether rotation axis covariance is estimated or not. This is only taken into account if computeCovariances is true.
Euler angles associated to estimated NED attitude. Array contains roll, pitch and yaw angles expressed in radians (rad) and following order indicated here. This is only available if computeCovariances and computeEulerAngles are true.
Error covariance of estimated Euler angles for NED attitude. This is only available if computeCovariances and computeEulerAnglesCovariance are true.
Threshold to consider that device is in free fall. When device is in free fall, accelerometer measurements are considered unreliable and are ignored (only gyroscope predictions are made).
Gravity norm at current device location expressed in meters per squared second (m/s^2).
Gyroscope interval between measurements expressed in seconds (s).
Variance of the gyroscope output per Hz (or variance at 1Hz). This is equivalent to the gyroscope PSD (Power Spectral Density) that can be obtained during calibration or with noise estimators. If not provided DEFAULT_GYROSCOPE_NOISE_PSD will be used.
Estimated attitude expressed in NED coordinates.
Error covariance of estimated quaternion attitude expressed in NED coordinates. This is only available if computeCovariances and computeQuaternionCovariance are true.
listener to notify when error covariances become numerically unstable and have been reset.
listener to notify new attitudes and their uncertainties.
type of quaternion step integrator to be used for gyroscope integration.
Error covariance of estimated rotation axis state. This is only available if computeCovariances and computeRotationAxisCovariance are true.
Contains estimated rotation axis state.
Functions
Processes provided synced accelerometer and gyroscope measurement to obtain a relative leveled attitude.
Processes provided accelerometer and gyroscope measurements at provided timestamp to obtain a relative leveled attitude.