Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
|
#include "stdlib.h"
#include "string.h"
#include "math.h"
Go to the source code of this file.
Data Structures | |
struct | discrete_ekf |
Macros | |
#define | EKF_N 7 |
#define | EKF_M 6 |
Functions | |
void | linear_filter (float *X, float dt, float *dX, float **A) |
void | linear_measure (float *X, float *Y, float **H) |
void | discrete_ekf_new (struct discrete_ekf *filter) |
void | discrete_ekf_predict (struct discrete_ekf *filter) |
void | discrete_ekf_update (struct discrete_ekf *filter, float *y) |
Definition in file discrete_ekf.h.
struct discrete_ekf |
#define EKF_M 6 |
Definition at line 34 of file discrete_ekf.h.
#define EKF_N 7 |
Definition at line 33 of file discrete_ekf.h.
void discrete_ekf_new | ( | struct discrete_ekf * | filter | ) |
Definition at line 32 of file discrete_ekf.c.
References discrete_ekf::dt, EKF_M, EKF_N, f, float_mat_diagonal_scal(), float_vect_zero(), MAKE_MATRIX_PTR, discrete_ekf::P, discrete_ekf::Q, discrete_ekf::R, and discrete_ekf::X.
Referenced by range_msg_callback().
void discrete_ekf_predict | ( | struct discrete_ekf * | filter | ) |
Definition at line 74 of file discrete_ekf.c.
References discrete_ekf::dt, EKF_N, float_mat_mul(), float_mat_sum(), float_mat_transpose_square(), float_vect_sum(), discrete_ekf::H, linear_filter(), linear_measure(), MAKE_MATRIX_PTR, discrete_ekf::P, discrete_ekf::Q, discrete_ekf::tmp1, discrete_ekf::tmp2, discrete_ekf::tmp3, discrete_ekf::X, discrete_ekf::Xp, and discrete_ekf::Zp.
Referenced by range_msg_callback().
void discrete_ekf_update | ( | struct discrete_ekf * | filter, |
float * | y | ||
) |
Definition at line 113 of file discrete_ekf.c.
References EKF_M, EKF_N, float_mat_diff(), float_mat_invert(), float_mat_mul(), float_mat_sum(), float_mat_transpose(), float_mat_vect_mul(), float_vect_diff(), float_vect_sum(), discrete_ekf::H, discrete_ekf::Ht, MAKE_MATRIX_PTR, discrete_ekf::P, discrete_ekf::R, discrete_ekf::tmp1, discrete_ekf::tmp2, discrete_ekf::tmp3, discrete_ekf::X, discrete_ekf::Xp, mesonh.mesonh_atmosphere::Z, and discrete_ekf::Zp.
Referenced by range_msg_callback().
void linear_filter | ( | float * | X, |
float | dt, | ||
float * | dX, | ||
float ** | A | ||
) |
Definition at line 148 of file discrete_ekf.c.
References A, EKF_N, f, float_mat_diagonal_scal(), float_vect_zero(), and mesonh.mesonh_atmosphere::X.
Referenced by discrete_ekf_predict().
void linear_measure | ( | float * | X, |
float * | Y, | ||
float ** | H | ||
) |
Definition at line 164 of file discrete_ekf.c.
References EKF_M, EKF_N, f, H, mesonh.mesonh_atmosphere::X, and mesonh.mesonh_atmosphere::Z.
Referenced by discrete_ekf_predict().