![]() |
ACwing FC firmware
STM32WB55: attitude IEKF, altitude Kalman filter, flight core, protocol v2
|
Single-precision SO(3) implementation for Cortex-M4F. More...
Go to the source code of this file.
Functions | |
| void | so3_skew (const float v[3], float S[9]) |
| void | so3_exp (const float phi[3], float R[9]) |
| float | vec3_dot (const float a[3], const float b[3]) |
| float | vec3_norm (const float v[3]) |
| void | vec3_cross (const float a[3], const float b[3], float c[3]) |
| int | vec3_normalize (float v[3]) |
| 0 = OK | |
| void | so3_orthonormalize (float R[9]) |
| void | so3_to_quat (const float R[9], float q[4]) |
| void | mat3_mul (const float A[9], const float B[9], float C[9]) |
| C = A*B | |
| void | mat3_vec (const float A[9], const float x[3], float y[3]) |
| y = A*x | |
| void | mat3t_vec (const float A[9], const float x[3], float y[3]) |
| y = A'*x | |
| int | mat3_inv (const float A[9], float B[9]) |
| 0 = OK | |
Single-precision SO(3) implementation for Cortex-M4F.
Deliberate differences w.r.t. expSO3.m (double):
Definition in file so3.c.
| void so3_skew | ( | const float | v[3], |
| float | S[9] | ||
| ) |
Definition at line 15 of file so3.c.
Referenced by reset_covariance(), and vector_update().
| void so3_exp | ( | const float | phi[3], |
| float | R[9] | ||
| ) |
Definition at line 22 of file so3.c.
References b.
Referenced by iekf_propagate_dtheta(), and vector_update().
| float vec3_dot | ( | const float | a[3], |
| const float | b[3] | ||
| ) |
Definition at line 46 of file so3.c.
References b.
Referenced by calib_finish(), direction_noise_std(), iekf_init(), iekf_update_acc(), iekf_update_mag_ex(), so3_orthonormalize(), tangent_part(), vec3_norm(), and vector_update().
| float vec3_norm | ( | const float | v[3] | ) |
Definition at line 47 of file so3.c.
References vec3_dot().
Referenced by calib_add(), calib_finish(), direction_noise_std(), iekf_update_acc(), iekf_update_mag_ex(), on_acc_window(), on_mag(), and vec3_normalize().
| void vec3_cross | ( | const float | a[3], |
| const float | b[3], | ||
| float | c[3] | ||
| ) |
Definition at line 49 of file so3.c.
References b.
Referenced by calib_finish(), on_mag(), and so3_orthonormalize().
| int vec3_normalize | ( | float | v[3] | ) |
0 = OK
Definition at line 56 of file so3.c.
References n, and vec3_norm().
Referenced by calib_finish(), direction_noise_std(), iekf_init(), project_gain(), and so3_orthonormalize().
| void so3_orthonormalize | ( | float | R[9] | ) |
Definition at line 65 of file so3.c.
References vec3_cross(), vec3_dot(), and vec3_normalize().
Referenced by iekf_init(), iekf_propagate_dtheta(), iekf_reset_attitude(), and vector_update().
| void so3_to_quat | ( | const float | R[9], |
| float | q[4] | ||
| ) |
Definition at line 80 of file so3.c.
References n.
Referenced by iekf_get_quat(), and tlm_build_init().
| void mat3_mul | ( | const float | A[9], |
| const float | B[9], | ||
| float | C[9] | ||
| ) |
C = A*B
Definition at line 106 of file so3.c.
Referenced by accwin_rotate(), iekf_propagate_dtheta(), reset_covariance(), and vector_update().
| void mat3_vec | ( | const float | A[9], |
| const float | x[3], | ||
| float | y[3] | ||
| ) |
y = A*x
Definition at line 113 of file so3.c.
References A.
Referenced by accwin_add(), calib_finish(), iekf_update_acc(), iekf_update_mag_ex(), and vector_update().
| void mat3t_vec | ( | const float | A[9], |
| const float | x[3], | ||
| float | y[3] | ||
| ) |
y = A'*x
Definition at line 120 of file so3.c.
References A.
Referenced by accwin_mean(), iekf_init(), iekf_update_acc(), iekf_update_mag_ex(), and project_gain().