Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
ahrs_int_cmpl_euler_wrapper.c File Reference
+ Include dependency graph for ahrs_int_cmpl_euler_wrapper.c:

Go to the source code of this file.

Macros

#define AHRS_ICE_OUTPUT_ENABLED   TRUE
 
#define AHRS_ICE_IMU_ID   ABI_BROADCAST
 ABI binding for IMU data. More...
 
#define AHRS_ICE_MAG_ID   AHRS_ICE_IMU_ID
 ABI binding for magnetometer data. More...
 

Functions

static void set_body_state_from_euler (void)
 
static void send_filter (struct transport_tx *trans, struct link_device *dev)
 
static void send_euler (struct transport_tx *trans, struct link_device *dev)
 
static void send_bias (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)
 
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 bool ahrs_ice_enable_output (bool enable)
 
void ahrs_ice_register (void)
 

Variables

static bool ahrs_ice_output_enabled
 if TRUE with push the estimation results to the state interface More...
 
static uint32_t ahrs_ice_last_stamp
 
static uint8_t ahrs_ice_id = AHRS_COMP_ID_ICE
 
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
 

Detailed Description

Paparazzi specific wrapper to run floating point complementary filter.

Definition in file ahrs_int_cmpl_euler_wrapper.c.

Macro Definition Documentation

◆ AHRS_ICE_IMU_ID

#define AHRS_ICE_IMU_ID   ABI_BROADCAST

ABI binding for IMU data.

Used for gyro, accel ABI messages.

Definition at line 106 of file ahrs_int_cmpl_euler_wrapper.c.

◆ AHRS_ICE_MAG_ID

#define AHRS_ICE_MAG_ID   AHRS_ICE_IMU_ID

ABI binding for magnetometer data.

Used for IMU_MAG_INT32 ABI messages.

Definition at line 113 of file ahrs_int_cmpl_euler_wrapper.c.

◆ AHRS_ICE_OUTPUT_ENABLED

#define AHRS_ICE_OUTPUT_ENABLED   TRUE

Definition at line 33 of file ahrs_int_cmpl_euler_wrapper.c.

Function Documentation

◆ accel_cb()

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

Definition at line 133 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_update_accel(), and AhrsIntCmplEuler::is_aligned.

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ahrs_ice_enable_output()

static bool ahrs_ice_enable_output ( bool  enable)
static

Definition at line 169 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice_output_enabled.

Referenced by ahrs_ice_register().

+ Here is the caller graph for this function:

◆ ahrs_ice_register()

◆ aligner_cb()

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 151 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_align(), AhrsIntCmplEuler::is_aligned, and set_body_state_from_euler().

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ body_to_imu_cb()

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

Definition at line 163 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice_set_body_to_imu_quat().

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gyro_cb()

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

Definition at line 123 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_last_stamp, ahrs_ice_propagate(), AhrsIntCmplEuler::is_aligned, and set_body_state_from_euler().

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mag_cb()

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

Definition at line 142 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_update_mag(), and AhrsIntCmplEuler::is_aligned.

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ send_bias()

static void send_bias ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 83 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_id, dev, AhrsIntCmplEuler::gyro_bias, Int32Rates::p, Int32Rates::q, and Int32Rates::r.

Referenced by ahrs_ice_register().

+ Here is the caller graph for this function:

◆ send_euler()

static void send_euler ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 70 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_id, dev, AhrsIntCmplEuler::ltp_to_imu_euler, Int32Eulers::phi, Int32Eulers::psi, stateGetNedToBodyEulers_i(), and Int32Eulers::theta.

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ send_filter()

static void send_filter ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

◆ send_filter_status()

static void send_filter_status ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 90 of file ahrs_int_cmpl_euler_wrapper.c.

References ahrs_ice, ahrs_ice_id, ahrs_ice_last_stamp, dev, get_sys_time_usec(), AhrsIntCmplEuler::is_aligned, and val.

Referenced by ahrs_ice_register().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_body_state_from_euler()

static void set_body_state_from_euler ( void  )
static

Variable Documentation

◆ accel_ev

abi_event accel_ev
static

Definition at line 117 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_register().

◆ ahrs_ice_id

uint8_t ahrs_ice_id = AHRS_COMP_ID_ICE
static

◆ ahrs_ice_last_stamp

uint32_t ahrs_ice_last_stamp
static

Definition at line 39 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by gyro_cb(), and send_filter_status().

◆ ahrs_ice_output_enabled

bool ahrs_ice_output_enabled
static

if TRUE with push the estimation results to the state interface

Definition at line 38 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_enable_output(), ahrs_ice_register(), and set_body_state_from_euler().

◆ aligner_ev

abi_event aligner_ev
static

Definition at line 119 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_register().

◆ body_to_imu_ev

abi_event body_to_imu_ev
static

Definition at line 120 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_register().

◆ gyro_ev

abi_event gyro_ev
static

Definition at line 116 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_register().

◆ mag_ev

abi_event mag_ev
static

Definition at line 118 of file ahrs_int_cmpl_euler_wrapper.c.

Referenced by ahrs_ice_register().