|  | Paparazzi UAS v7.0_unstable
    Paparazzi is a free software Unmanned Aircraft System. | 
Paparazzi specific wrapper to run INVARIANT ahrs filter. More...
#include "modules/ahrs/ahrs_float_invariant_wrapper.h"#include "modules/ahrs/ahrs.h"#include "modules/core/abi.h"#include "mcu_periph/sys_time.h"#include "message_pragmas.h"#include "state.h"#include "modules/datalink/telemetry.h" Include dependency graph for ahrs_float_invariant_wrapper.c:
 Include dependency graph for ahrs_float_invariant_wrapper.c:Go to the source code of this file.
| Macros | |
| #define | AHRS_FINV_IMU_ID ABI_BROADCAST | 
| IMU (gyro, accel) | |
| #define | AHRS_FINV_MAG_ID AHRS_FINV_IMU_ID | 
| magnetometer | |
| Functions | |
| static void | compute_body_orientation_and_rates (void) | 
| Compute body orientation and rates from imu orientation and rates. | |
| static void | send_att (struct transport_tx *trans, struct link_device *dev) | 
| static void | send_geo_mag (struct transport_tx *trans, struct link_device *dev) | 
| static void | send_filter_status (struct transport_tx *trans, struct link_device *dev) | 
| static void | gyro_cb (uint8_t sender_id, uint32_t stamp, struct Int32Rates *gyro) | 
| Call ahrs_float_invariant_propagate on new gyro measurements. | |
| static void | accel_cb (uint8_t sender_id, uint32_t stamp, struct Int32Vect3 *accel) | 
| static void | mag_cb (uint8_t sender_id, uint32_t stamp, struct Int32Vect3 *mag) | 
| static void | aligner_cb (uint8_t sender_id, uint32_t stamp, struct Int32Rates *lp_gyro, struct Int32Vect3 *lp_accel, struct Int32Vect3 *lp_mag) | 
| static void | geo_mag_cb (uint8_t sender_id, struct FloatVect3 *h) | 
| void | ahrs_finv_wrapper_init (void) | 
| void | ahrs_float_invariant_wrapper_enable (uint8_t enable) | 
| Variables | |
| uint8_t | ahrs_finv_enable | 
| static uint32_t | ahrs_finv_last_stamp = 0 | 
| last gyro msg timestamp | |
| static uint8_t | ahrs_finv_id = AHRS_COMP_ID_FINV | 
| static abi_event | mag_ev | 
| static abi_event | gyro_ev | 
| static abi_event | accel_ev | 
| static abi_event | aligner_ev | 
| static abi_event | geo_mag_ev | 
Paparazzi specific wrapper to run INVARIANT ahrs filter.
Definition in file ahrs_float_invariant_wrapper.c.
| #define AHRS_FINV_IMU_ID ABI_BROADCAST | 
IMU (gyro, accel)
Definition at line 91 of file ahrs_float_invariant_wrapper.c.
| #define AHRS_FINV_MAG_ID AHRS_FINV_IMU_ID | 
magnetometer
Definition at line 97 of file ahrs_float_invariant_wrapper.c.
| 
 | static | 
Definition at line 142 of file ahrs_float_invariant_wrapper.c.
References ACCELS_FLOAT_OF_BFP, ahrs_float_inv, ahrs_float_invariant_update_accel(), foo, and AhrsFloatInv::is_aligned.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Definition at line 202 of file ahrs_float_invariant_wrapper.c.
References ABI_BROADCAST, accel_cb(), accel_ev, AHRS_FINV_IMU_ID, AHRS_FINV_MAG_ID, ahrs_float_invariant_init(), ahrs_float_invariant_wrapper_enable(), AHRS_PRIMARY, aligner_cb(), aligner_ev, DefaultPeriodic, foo, geo_mag_cb(), geo_mag_ev, gyro_cb(), gyro_ev, mag_cb(), mag_ev, register_periodic_telemetry(), send_att(), send_filter_status(), and send_geo_mag().
 Here is the call graph for this function:
 Here is the call graph for this function:Definition at line 227 of file ahrs_float_invariant_wrapper.c.
References ahrs_finv_enable, foo, STATE_INPUT_ATTITUDE, STATE_INPUT_RATES, and stateSetInputFilter().
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 164 of file ahrs_float_invariant_wrapper.c.
References ACCELS_FLOAT_OF_BFP, ahrs_float_inv, ahrs_float_invariant_align(), compute_body_orientation_and_rates(), foo, AhrsFloatInv::is_aligned, MAGS_FLOAT_OF_BFP, and RATES_FLOAT_OF_BFP.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Compute body orientation and rates from imu orientation and rates.
Definition at line 190 of file ahrs_float_invariant_wrapper.c.
References ahrs_float_inv, inv_state::bias, AhrsFloatInv::cmd, foo, inv_state::quat, inv_command::rates, RATES_DIFF, AhrsFloatInv::state, stateSetBodyRates_f(), and stateSetNedToBodyQuat_f().
Referenced by aligner_cb(), and gyro_cb().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 182 of file ahrs_float_invariant_wrapper.c.
References ahrs_float_inv, h(), and AhrsFloatInv::mag_h.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Call ahrs_float_invariant_propagate on new gyro measurements.
Since acceleration measurement is also needed for propagation, use the last stored accel from ahrs_finv_accel.
Definition at line 112 of file ahrs_float_invariant_wrapper.c.
References ahrs_finv_last_stamp, ahrs_float_inv, ahrs_float_invariant_propagate(), AHRS_PROPAGATE_FREQUENCY, compute_body_orientation_and_rates(), foo, AhrsFloatInv::is_aligned, PRINT_CONFIG_MSG(), PRINT_CONFIG_VAR(), and RATES_FLOAT_OF_BFP.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 153 of file ahrs_float_invariant_wrapper.c.
References ahrs_float_inv, ahrs_float_invariant_update_mag(), foo, AhrsFloatInv::is_aligned, and MAGS_FLOAT_OF_BFP.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 47 of file ahrs_float_invariant_wrapper.c.
References ahrs_finv_id, ahrs_float_inv, dev, EULERS_BFP_OF_REAL, float_eulers_of_quat(), foo, inv_state::quat, and AhrsFloatInv::state.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 73 of file ahrs_float_invariant_wrapper.c.
References ahrs_finv_id, ahrs_finv_last_stamp, ahrs_float_inv, dev, foo, get_sys_time_usec(), AhrsFloatInv::is_aligned, and val.
Referenced by ahrs_finv_wrapper_init().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 65 of file ahrs_float_invariant_wrapper.c.
References ahrs_finv_id, ahrs_float_inv, dev, foo, AhrsFloatInv::mag_h, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by ahrs_finv_wrapper_init().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 103 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_finv_wrapper_init().
| uint8_t ahrs_finv_enable | 
Definition at line 37 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_float_invariant_wrapper_enable().
| 
 | static | 
Definition at line 40 of file ahrs_float_invariant_wrapper.c.
Referenced by send_att(), send_filter_status(), and send_geo_mag().
| 
 | static | 
last gyro msg timestamp
Definition at line 39 of file ahrs_float_invariant_wrapper.c.
Referenced by gyro_cb(), and send_filter_status().
| 
 | static | 
Definition at line 104 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_finv_wrapper_init().
| 
 | static | 
Definition at line 105 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_finv_wrapper_init().
| 
 | static | 
Definition at line 102 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_finv_wrapper_init().
| 
 | static | 
Definition at line 101 of file ahrs_float_invariant_wrapper.c.
Referenced by ahrs_finv_wrapper_init().