Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
Multiplicative linearized Kalman Filter in quaternion formulation. More...
Go to the source code of this file.
Data Structures | |
struct | AhrsMlkf |
Enumerations | |
enum | AhrsMlkfStatus { AHRS_MLKF_UNINIT, AHRS_MLKF_RUNNING } |
Functions | |
void | ahrs_mlkf_init (void) |
void | ahrs_mlkf_set_body_to_imu (struct OrientationReps *body_to_imu) |
void | ahrs_mlkf_set_body_to_imu_quat (struct FloatQuat *q_b2i) |
bool | ahrs_mlkf_align (struct FloatRates *lp_gyro, struct FloatVect3 *lp_accel, struct FloatVect3 *lp_mag) |
void | ahrs_mlkf_propagate (struct FloatRates *gyro, float dt) |
void | ahrs_mlkf_update_accel (struct FloatVect3 *accel) |
void | ahrs_mlkf_update_mag (struct FloatVect3 *mag) |
void | ahrs_mlkf_update_mag_2d (struct FloatVect3 *mag) |
void | ahrs_mlkf_update_mag_full (struct FloatVect3 *mag) |
Variables | |
struct AhrsMlkf | ahrs_mlkf |
Multiplicative linearized Kalman Filter in quaternion formulation.
Estimate the attitude, heading and gyro bias.
Definition in file ahrs_float_mlkf.h.
struct AhrsMlkf |
Definition at line 43 of file ahrs_float_mlkf.h.
Data Fields | ||
---|---|---|
struct OrientationReps | body_to_imu | body_to_imu rotation |
struct FloatQuat | gibbs_cor | |
struct FloatRates | gyro_bias | |
struct FloatRates | imu_rate | Rotational velocity in IMU frame. |
bool | is_aligned | |
float | lp_accel | |
struct FloatQuat | ltp_to_body_quat | Rotation from LocalTangentPlane to body frame as unit quaternion. |
struct FloatQuat | ltp_to_imu_quat | Rotation from LocalTangentPlane to IMU frame as unit quaternion. |
struct FloatVect3 | mag_h | |
struct FloatVect3 | mag_noise | |
float | P[6][6] | |
enum AhrsMlkfStatus | status |
enum AhrsMlkfStatus |
Enumerator | |
---|---|
AHRS_MLKF_UNINIT | |
AHRS_MLKF_RUNNING |
Definition at line 38 of file ahrs_float_mlkf.h.
bool ahrs_mlkf_align | ( | struct FloatRates * | lp_gyro, |
struct FloatVect3 * | lp_accel, | ||
struct FloatVect3 * | lp_mag | ||
) |
Definition at line 107 of file ahrs_float_mlkf.c.
References ahrs_float_get_quat_from_accel_mag(), ahrs_mlkf, AhrsMlkf::gyro_bias, AhrsMlkf::is_aligned, and AhrsMlkf::ltp_to_imu_quat.
Referenced by aligner_cb().
void ahrs_mlkf_init | ( | void | ) |
Definition at line 62 of file ahrs_float_mlkf.c.
References AHRS_MAG_NOISE_X, AHRS_MAG_NOISE_Y, AHRS_MAG_NOISE_Z, ahrs_mlkf, float_quat_identity(), FLOAT_RATES_ZERO, AhrsMlkf::gyro_bias, AhrsMlkf::imu_rate, AhrsMlkf::is_aligned, AhrsMlkf::ltp_to_imu_quat, AhrsMlkf::mag_h, AhrsMlkf::mag_noise, AhrsMlkf::P, and VECT3_ASSIGN.
Referenced by ahrs_mlkf_register().
void ahrs_mlkf_propagate | ( | struct FloatRates * | gyro, |
float | dt | ||
) |
Definition at line 122 of file ahrs_float_mlkf.c.
References propagate_ref(), and propagate_state().
Referenced by gyro_cb().
void ahrs_mlkf_set_body_to_imu | ( | struct OrientationReps * | body_to_imu | ) |
Definition at line 91 of file ahrs_float_mlkf.c.
References ahrs_mlkf_set_body_to_imu_quat(), and orientationGetQuat_f().
void ahrs_mlkf_set_body_to_imu_quat | ( | struct FloatQuat * | q_b2i | ) |
Definition at line 96 of file ahrs_float_mlkf.c.
References ahrs_mlkf, AhrsMlkf::body_to_imu, AhrsMlkf::is_aligned, AhrsMlkf::ltp_to_imu_quat, orientationGetQuat_f(), and orientationSetQuat_f().
Referenced by ahrs_mlkf_set_body_to_imu(), and body_to_imu_cb().
void ahrs_mlkf_update_accel | ( | struct FloatVect3 * | accel | ) |
Definition at line 128 of file ahrs_float_mlkf.c.
References ahrs_mlkf, alpha, dn, float_vect3_norm(), AhrsMlkf::lp_accel, reset_state(), and update_state().
Referenced by accel_cb().
void ahrs_mlkf_update_mag | ( | struct FloatVect3 * | mag | ) |
Definition at line 141 of file ahrs_float_mlkf.c.
References ahrs_mlkf_update_mag_2d(), and ahrs_mlkf_update_mag_full().
Referenced by mag_cb().
void ahrs_mlkf_update_mag_2d | ( | struct FloatVect3 * | mag | ) |
Definition at line 150 of file ahrs_float_mlkf.c.
References ahrs_mlkf, AhrsMlkf::mag_h, AhrsMlkf::mag_noise, reset_state(), and update_state_heading().
Referenced by ahrs_mlkf_update_mag().
void ahrs_mlkf_update_mag_full | ( | struct FloatVect3 * | mag | ) |
Definition at line 156 of file ahrs_float_mlkf.c.
References ahrs_mlkf, AhrsMlkf::mag_h, AhrsMlkf::mag_noise, reset_state(), and update_state().
Referenced by ahrs_mlkf_update_mag().
struct AhrsMlkf ahrs_mlkf |
Definition at line 59 of file ahrs_float_mlkf.c.
Referenced by accel_cb(), ahrs_mlkf_align(), ahrs_mlkf_init(), ahrs_mlkf_set_body_to_imu_quat(), ahrs_mlkf_update_accel(), ahrs_mlkf_update_mag_2d(), ahrs_mlkf_update_mag_full(), aligner_cb(), geo_mag_cb(), gyro_cb(), mag_cb(), propagate_ref(), propagate_state(), reset_state(), send_bias(), send_euler(), send_filter_status(), send_geo_mag(), set_body_state_from_quat(), update_state(), and update_state_heading().