27#ifndef QUATERNION_FILTER_H
28#define QUATERNION_FILTER_H
111 filter->accel.p = -filter->two_zeta_omega * filter->rate.p - filter->two_omega2 * err.
qx;
112 filter->accel.q = -filter->two_zeta_omega * filter->rate.q - filter->two_omega2 * err.
qy;
113 filter->accel.r = -filter->two_zeta_omega * filter->rate.r - filter->two_omega2 * err.
qz;
static void float_quat_normalize(struct FloatQuat *q)
void float_quat_inv_comp(struct FloatQuat *b2c, const struct FloatQuat *a2b, const struct FloatQuat *a2c)
Composition (multiplication) of two quaternions.
static void float_quat_wrap_shortest(struct FloatQuat *q)
#define FLOAT_RATES_ZERO(_r)
void float_quat_derivative(struct FloatQuat *qd, const struct FloatRates *r, const struct FloatQuat *q)
Quaternion derivative from rotational velocity.
#define RATES_SMUL(_ro, _ri, _s)
#define RATES_ADD(_a, _b)
#define QUAT_SMUL(_qo, _qi, _s)
#define QUAT_ADD(_qo, _qi)
Paparazzi floating point algebra.
static struct FloatQuat update_quat_butterworth_low_pass(QuatButterworthLowPass *filter, const struct FloatQuat quat)
Update second order quaternion Butterworth low pass filter state with a new value.
static struct FloatQuat update_quat_second_order_low_pass(struct QuatSecondOrderLowPass *filter, const struct FloatQuat q)
Update second order quaterion low pass filter state with a new value.
static struct FloatQuat get_quat_butterworth_low_pass(const QuatButterworthLowPass *filter)
Get current value of the second order quaternion Butterworth low pass filter.
static void reset_quat_butterworth_low_pass(QuatButterworthLowPass *filter, const struct FloatQuat quat)
Reset a quaternion Butterworth low-pass filter to a specific value.
static void reset_quat_second_order_low_pass(struct QuatSecondOrderLowPass *filter, const struct FloatQuat q0)
Reset the second order quaternion low-pass filter to a specific value.
static void init_quat_butterworth_low_pass(QuatButterworthLowPass *filter, const float omega, const float sample_time, const struct FloatQuat q0)
Init a second order quaternion Butterworth filter.
static struct FloatQuat get_quat_second_order_low_pass(const struct QuatSecondOrderLowPass *filter)
Get current value of the second order quaterion low pass filter.
static void init_quat_second_order_low_pass(struct QuatSecondOrderLowPass *filter, const float omega, const float damp, const float sample_time, const struct FloatQuat q0)
Init second order quaternion low pass filter.
Quaternion second order filter model (float)