Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ahrs_float_cmpl_wrapper.c File Reference

Paparazzi specific wrapper to run floating point complementary filter. More...

+ Include dependency graph for ahrs_float_cmpl_wrapper.c:

Go to the source code of this file.

Macros

#define AHRS_FC_OUTPUT_ENABLED   TRUE
 
#define AHRS_FC_IMU_ID   ABI_BROADCAST
 ABI binding for IMU data. More...
 
#define AHRS_FC_MAG_ID   AHRS_FC_IMU_ID
 ABI binding for magnetometer data. More...
 

Functions

static void compute_body_orientation_and_rates (void)
 Compute body orientation and rates from imu orientation and rates. More...
 
static void gyro_cb (uint8_t sender_id, uint32_t stamp, struct Int32Rates *gyro)
 
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 body_to_imu_cb (uint8_t sender_id, struct FloatQuat *q_b2i_f)
 
static void geo_mag_cb (uint8_t sender_id, struct FloatVect3 *h)
 
static void gps_cb (uint8_t sender_id, uint32_t stamp, struct GpsState *gps_s)
 
static bool_t ahrs_fc_enable_output (bool_t enable)
 
void ahrs_fc_register (void)
 

Variables

static bool_t ahrs_fc_output_enabled
 if TRUE with push the estimation results to the state interface More...
 
static uint32_t ahrs_fc_last_stamp
 
static uint8_t ahrs_fc_id = AHRS_COMP_ID_FC
 
static abi_event gyro_ev
 
static abi_event accel_ev
 
static abi_event mag_ev
 
static abi_event aligner_ev
 
static abi_event body_to_imu_ev
 
static abi_event geo_mag_ev
 
static abi_event gps_ev
 

Detailed Description

Paparazzi specific wrapper to run floating point complementary filter.

Definition in file ahrs_float_cmpl_wrapper.c.

Macro Definition Documentation

#define AHRS_FC_IMU_ID   ABI_BROADCAST

ABI binding for IMU data.

Used for gyro and accel ABI messages.

Definition at line 113 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

#define AHRS_FC_MAG_ID   AHRS_FC_IMU_ID

ABI binding for magnetometer data.

Used for IMU_MAG_INT32 ABI messages.

Definition at line 120 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

#define AHRS_FC_OUTPUT_ENABLED   TRUE

Definition at line 33 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

Function Documentation

static void accel_cb ( uint8_t  sender_id,
uint32_t  stamp,
struct Int32Vect3 accel 
)
static

Definition at line 158 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, ahrs_fc_update_accel(), AhrsFloatCmpl::is_aligned, and PRINT_CONFIG_MSG().

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool_t ahrs_fc_enable_output ( bool_t  enable)
static

Definition at line 233 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc_output_enabled.

Referenced by ahrs_fc_register().

+ Here is the caller graph for this function:

static void aligner_cb ( uint8_t  sender_id,
uint32_t  stamp,
struct Int32Rates lp_gyro,
struct Int32Vect3 lp_accel,
struct Int32Vect3 lp_mag 
)
static

Definition at line 202 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, ahrs_fc_align(), compute_body_orientation_and_rates(), and AhrsFloatCmpl::is_aligned.

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void body_to_imu_cb ( uint8_t  sender_id,
struct FloatQuat q_b2i_f 
)
static

Definition at line 214 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc_set_body_to_imu_quat().

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void compute_body_orientation_and_rates ( void  )
static

Compute body orientation and rates from imu orientation and rates.

Definition at line 242 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, ahrs_fc_recompute_ltp_to_body(), AhrsFloatCmpl::body_to_imu, float_rmat_transp_ratemult(), AhrsFloatCmpl::imu_rate, AhrsFloatCmpl::ltp_to_body, orientationGetQuat_f(), orientationGetRMat_f(), stateSetBodyRates_f(), and stateSetNedToBodyQuat_f().

Referenced by aligner_cb(), gps_cb(), and gyro_cb().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void geo_mag_cb ( uint8_t  sender_id,
struct FloatVect3 h 
)
static

Definition at line 220 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, and AhrsFloatCmpl::mag_h.

Referenced by ahrs_fc_register().

+ Here is the caller graph for this function:

static void gps_cb ( uint8_t  sender_id,
uint32_t  stamp,
struct GpsState gps_s 
)
static

Definition at line 225 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc_update_gps(), and compute_body_orientation_and_rates().

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gyro_cb ( uint8_t  sender_id,
uint32_t  stamp,
struct Int32Rates gyro 
)
static

Definition at line 132 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, ahrs_fc_propagate(), AHRS_FC_RUNNING, AHRS_PROPAGATE_FREQUENCY, compute_body_orientation_and_rates(), AhrsFloatCmpl::is_aligned, PRINT_CONFIG_MSG(), and AhrsFloatCmpl::status.

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void mag_cb ( uint8_t  sender_id,
uint32_t  stamp,
struct Int32Vect3 mag 
)
static

Definition at line 180 of file ahrs_float_cmpl_wrapper.c.

References ahrs_fc, ahrs_fc_update_mag(), AhrsFloatCmpl::is_aligned, and PRINT_CONFIG_MSG().

Referenced by ahrs_fc_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

abi_event accel_ev
static

Definition at line 124 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

uint8_t ahrs_fc_id = AHRS_COMP_ID_FC
static

Definition at line 40 of file ahrs_float_cmpl_wrapper.c.

uint32_t ahrs_fc_last_stamp
static

Definition at line 39 of file ahrs_float_cmpl_wrapper.c.

bool_t ahrs_fc_output_enabled
static

if TRUE with push the estimation results to the state interface

Definition at line 38 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_enable_output().

abi_event aligner_ev
static

Definition at line 126 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

abi_event body_to_imu_ev
static

Definition at line 127 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

abi_event geo_mag_ev
static

Definition at line 128 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

abi_event gps_ev
static

Definition at line 129 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

abi_event gyro_ev
static

Definition at line 123 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().

abi_event mag_ev
static

Definition at line 125 of file ahrs_float_cmpl_wrapper.c.

Referenced by ahrs_fc_register().