Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Vertical filter (in float) estimating altitude, velocity and accel bias. More...
Go to the source code of this file.
Data Structures | |
struct | Vff |
Macros | |
#define | VFF_STATE_SIZE 3 |
Functions | |
void | vff_init_zero (void) |
void | vff_init (float z, float zdot, float bias) |
void | vff_propagate (float accel, float dt) |
Propagate the filter in time. More... | |
void | vff_update (float z_meas) |
void | vff_update_z_conf (float z_meas, float conf) |
void | vff_update_vz_conf (float vz_meas, float conf) |
void | vff_realign (float z_meas) |
Variables | |
struct Vff | vff |
Vertical filter (in float) estimating altitude, velocity and accel bias.
Definition in file vf_float.h.
struct Vff |
Definition at line 34 of file vf_float.h.
Data Fields | ||
---|---|---|
float | bias | accel bias estimate in m/s^2 |
float | P[VFF_STATE_SIZE][VFF_STATE_SIZE] | covariance matrix |
float | z | z-position estimate in m (NED, z-down) |
float | z_meas | last measurement |
float | zdot | z-velocity estimate in m/s (NED, z-down) |
float | zdotdot | z-acceleration in m/s^2 (NED, z-down) |
#define VFF_STATE_SIZE 3 |
Definition at line 32 of file vf_float.h.
void vff_init | ( | float | z, |
float | zdot, | ||
float | bias | ||
) |
Definition at line 71 of file vf_float.c.
References Vff::bias, DefaultPeriodic, Vff::P, register_periodic_telemetry(), send_vff(), vff, VFF_INIT_PXX, VFF_STATE_SIZE, Vff::z, and Vff::zdot.
Referenced by vff_init_zero().
void vff_init_zero | ( | void | ) |
Definition at line 107 of file vf_extended_float.c.
References vff_init().
Referenced by ins_int_init().
void vff_propagate | ( | float | accel, |
float | dt | ||
) |
Propagate the filter in time.
F = [ 1 dt -dt^2/2 0 0 0 1 -dt 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 ];
B = [ dt^2/2 dt 0 0 0]';
Q = [ Qzz 0 0 0 0 0 Qzdotzdot 0 0 0 0 0 Qbiasbias 0 0 0 0 0 0 Qoffoff 0 0 0 0 0 0 Qobsobs ];
Qzz = VFF_EXTENDED_ACCEL_NOISE * DT_VFILTER * DT_VFILTER / 2. Qzdotzdot = VFF_EXTENDED_ACCEL_NOISE * DT_VFILTER
Xk1 = F * Xk0 + B * accel;
Pk1 = F * Pk0 * F' + Q;
F = [ 1 dt -dt^2/2 0 1 -dt 0 0 1 ];
B = [ dt^2/2 dt 0]';
Q = [ 0.01 0 0 0 0.01 0 0 0 0.001 ];
Xk1 = F * Xk0 + B * accel;
Pk1 = F * Pk0 * F' + Q;
Definition at line 181 of file vf_extended_float.c.
References VffExtended::accel_noise, VffExtended::bias, Vff::bias, DefaultChannel, DefaultDevice, VffExtended::P, Vff::P, Qbiasbias, Qobsobs, Qoffoff, send_vffe(), vff, VFF_ACCEL_NOISE, VffExtended::z, Vff::z, VffExtended::zdot, Vff::zdot, VffExtended::zdotdot, and Vff::zdotdot.
Referenced by ins_int_propagate().
void vff_realign | ( | float | z_meas | ) |
Definition at line 384 of file vf_extended_float.c.
References VffExtended::obs_height, VffExtended::offset, vff, VffExtended::z, Vff::z, VffExtended::z_meas, Vff::z_meas, VffExtended::zdot, and Vff::zdot.
Referenced by baro_cb().
void vff_update | ( | float | z_meas | ) |
Definition at line 189 of file vf_float.c.
References update_z_conf(), VFF_MEAS_NOISE, and Vff::z_meas.
Referenced by baro_cb().
void vff_update_vz_conf | ( | float | vz_meas, |
float | conf | ||
) |
Definition at line 433 of file vf_extended_float.c.
References update_vz_conf().
Referenced by ins_int_update_gps(), and vel_est_cb().
void vff_update_z_conf | ( | float | z_meas, |
float | conf | ||
) |
Definition at line 310 of file vf_extended_float.c.
References update_alt_conf(), update_z_conf(), VffExtended::z_meas, and Vff::z_meas.
Referenced by ins_int_update_gps(), pos_est_cb(), vff_update_agl(), and vff_update_z().
|
extern |
Definition at line 1 of file vf_extended_float.c.
Referenced by ins_update_from_vff(), send_vff(), send_vffe(), update_alt_conf(), update_biased_z_conf(), update_obs_height(), update_vz_conf(), update_z_conf(), vff_init(), vff_propagate(), vff_realign(), vff_update_baro(), vff_update_obs_height(), and vff_update_z().