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_no_north |
Macros | |
#define | EKF_N 9 |
#define | EKF_M 7 |
#define | EKF_L 6 |
Functions | |
void | extractPhiGamma (float **inmat, float **phi, float **gamma, int m, int n_a, int n_b) |
void | float_mat_combine (float **a, float **b, float **o, int m, int n_a, int n_b) |
void | c2d (int m, int nA, int nB, float **Fx, float **G, float dt, float **phi, float **gamma) |
void | discrete_ekf_no_north_fsym (float *statein, float *input, float *output) |
void | discrete_ekf_no_north_hsym (float *statein, float *output) |
void | discrete_ekf_no_north_Fx (float *statein, float *input, float **output) |
void | discrete_ekf_no_north_G (float *statein, float **output) |
void | discrete_ekf_no_north_Hx (float *statein, float **output) |
void | discrete_ekf_no_north_new (struct discrete_ekf_no_north *filter) |
void | discrete_ekf_no_north_predict (struct discrete_ekf_no_north *filter, float *U) |
void | discrete_ekf_no_north_update (struct discrete_ekf_no_north *filter, float *y) |
Definition in file discrete_ekf_no_north.h.
struct discrete_ekf_no_north |
Definition at line 40 of file discrete_ekf_no_north.h.
Data Fields | ||
---|---|---|
float | dt | |
float | Fx[EKF_N][EKF_N] | |
float | G[EKF_N][EKF_L] | |
float | Gamma[EKF_N][EKF_L] | |
float | H[EKF_M][EKF_N] | |
float | Ht[EKF_N][EKF_M] | |
float | P[EKF_N][EKF_N] | |
float | Phi[EKF_N][EKF_N] | |
float | Q[EKF_N][EKF_N] | |
float | R[EKF_M][EKF_M] | |
float | tmp1[EKF_N][EKF_N] | |
float | tmp2[EKF_N][EKF_N] | |
float | tmp3[EKF_N][EKF_N] | |
float | tmp4[EKF_N][EKF_N] | |
float | X[EKF_N] | |
float | Xp[EKF_N] | |
float | Zp[EKF_M] |
#define EKF_L 6 |
Definition at line 38 of file discrete_ekf_no_north.h.
#define EKF_M 7 |
Definition at line 37 of file discrete_ekf_no_north.h.
#define EKF_N 9 |
Definition at line 36 of file discrete_ekf_no_north.h.
void c2d | ( | int | m, |
int | nA, | ||
int | nB, | ||
float ** | Fx, | ||
float ** | G, | ||
float | dt, | ||
float ** | phi, | ||
float ** | gamma | ||
) |
Definition at line 74 of file discrete_ekf_no_north.c.
References EKF_M, EKF_N, extractPhiGamma(), float_mat_combine(), float_mat_exp(), float_mat_scale(), and MAKE_MATRIX_PTR.
Referenced by discrete_ekf_no_north_predict().
void discrete_ekf_no_north_fsym | ( | float * | statein, |
float * | input, | ||
float * | output | ||
) |
void discrete_ekf_no_north_Fx | ( | float * | statein, |
float * | input, | ||
float ** | output | ||
) |
Definition at line 130 of file discrete_ekf_no_north.c.
References EKF_N, float_mat_zero(), gam, MAKE_MATRIX_PTR, r1m, r2m, u2, and v2.
Referenced by discrete_ekf_no_north_predict().
void discrete_ekf_no_north_G | ( | float * | statein, |
float ** | output | ||
) |
Definition at line 150 of file discrete_ekf_no_north.c.
References EKF_L, EKF_N, float_mat_zero(), MAKE_MATRIX_PTR, u1, u2, v1, v2, x12, and y12.
Referenced by discrete_ekf_no_north_predict().
void discrete_ekf_no_north_hsym | ( | float * | statein, |
float * | output | ||
) |
void discrete_ekf_no_north_Hx | ( | float * | statein, |
float ** | output | ||
) |
Definition at line 168 of file discrete_ekf_no_north.c.
References EKF_M, EKF_N, float_mat_zero(), MAKE_MATRIX_PTR, x12, y12, z1, and z2.
Referenced by discrete_ekf_no_north_predict().
void discrete_ekf_no_north_new | ( | struct discrete_ekf_no_north * | filter | ) |
Definition at line 192 of file discrete_ekf_no_north.c.
References discrete_ekf_no_north::dt, EKF_M, EKF_N, float_mat_diagonal_scal(), float_vect_zero(), MAKE_MATRIX_PTR, discrete_ekf_no_north::P, discrete_ekf_no_north::Q, discrete_ekf_no_north::R, and discrete_ekf_no_north::X.
Referenced by range_msg_callback().
void discrete_ekf_no_north_predict | ( | struct discrete_ekf_no_north * | filter, |
float * | U | ||
) |
Definition at line 219 of file discrete_ekf_no_north.c.
References c2d(), discrete_ekf_no_north_fsym(), discrete_ekf_no_north_Fx(), discrete_ekf_no_north_G(), discrete_ekf_no_north_hsym(), discrete_ekf_no_north_Hx(), discrete_ekf_no_north::dt, EKF_L, EKF_N, float_mat_mul(), float_mat_sum(), float_mat_transpose(), float_mat_transpose_square(), float_vect_scale(), float_vect_sum(), discrete_ekf_no_north::Fx, discrete_ekf_no_north::G, discrete_ekf_no_north::Gamma, discrete_ekf_no_north::H, MAKE_MATRIX_PTR, discrete_ekf_no_north::P, discrete_ekf_no_north::Phi, discrete_ekf_no_north::Q, discrete_ekf_no_north::tmp1, discrete_ekf_no_north::tmp2, discrete_ekf_no_north::tmp3, discrete_ekf_no_north::tmp4, discrete_ekf_no_north::X, discrete_ekf_no_north::Xp, and discrete_ekf_no_north::Zp.
Referenced by range_msg_callback().
void discrete_ekf_no_north_update | ( | struct discrete_ekf_no_north * | filter, |
float * | y | ||
) |
Definition at line 270 of file discrete_ekf_no_north.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_no_north::H, discrete_ekf_no_north::Ht, MAKE_MATRIX_PTR, discrete_ekf_no_north::P, discrete_ekf_no_north::R, discrete_ekf_no_north::tmp1, discrete_ekf_no_north::tmp2, discrete_ekf_no_north::tmp3, discrete_ekf_no_north::X, discrete_ekf_no_north::Xp, mesonh.mesonh_atmosphere::Z, and discrete_ekf_no_north::Zp.
Referenced by range_msg_callback().
void extractPhiGamma | ( | float ** | inmat, |
float ** | phi, | ||
float ** | gamma, | ||
int | m, | ||
int | n_a, | ||
int | n_b | ||
) |
Definition at line 37 of file discrete_ekf_no_north.c.
Referenced by c2d().
void float_mat_combine | ( | float ** | a, |
float ** | b, | ||
float ** | o, | ||
int | m, | ||
int | n_a, | ||
int | n_b | ||
) |
Definition at line 55 of file discrete_ekf_no_north.c.
References b.
Referenced by c2d().