Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Paparazzi specific wrapper to run floating point complementary filter. More...
#include "modules/ahrs/ahrs_float_cmpl_wrapper.h"
#include "modules/ahrs/ahrs.h"
#include "modules/core/abi.h"
#include "state.h"
#include "modules/datalink/telemetry.h"
#include "mcu_periph/sys_time.h"
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... | |
#define | AHRS_FC_GPS_ID GPS_MULTI_ID |
ABI binding for gps data. More... | |
Functions | |
static void | compute_body_orientation_and_rates (void) |
Compute body orientation and rates from imu orientation and rates. More... | |
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_euler_int (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) |
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) |
static void | gps_cb (uint8_t sender_id, uint32_t stamp, struct GpsState *gps_s) |
static bool | ahrs_fc_enable_output (bool enable) |
void | ahrs_fc_register (void) |
Variables | |
static bool | 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 | geo_mag_ev |
static abi_event | gps_ev |
Paparazzi specific wrapper to run floating point complementary filter.
Definition in file ahrs_float_cmpl_wrapper.c.
#define AHRS_FC_GPS_ID GPS_MULTI_ID |
ABI binding for gps data.
Used for GPS ABI messages.
Definition at line 123 of file ahrs_float_cmpl_wrapper.c.
#define AHRS_FC_IMU_ID ABI_BROADCAST |
ABI binding for IMU data.
Used for gyro and accel ABI messages.
Definition at line 109 of file ahrs_float_cmpl_wrapper.c.
#define AHRS_FC_MAG_ID AHRS_FC_IMU_ID |
ABI binding for magnetometer data.
Used for IMU_MAG_INT32 ABI messages.
Definition at line 116 of file ahrs_float_cmpl_wrapper.c.
#define AHRS_FC_OUTPUT_ENABLED TRUE |
Definition at line 33 of file ahrs_float_cmpl_wrapper.c.
|
static |
Definition at line 163 of file ahrs_float_cmpl_wrapper.c.
References ACCELS_FLOAT_OF_BFP, ahrs_fc, ahrs_fc_update_accel(), AhrsFloatCmpl::is_aligned, PRINT_CONFIG_MSG(), and PRINT_CONFIG_VAR().
Referenced by ahrs_fc_register().
|
static |
Definition at line 246 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc_output_enabled.
Referenced by ahrs_fc_register().
void ahrs_fc_register | ( | void | ) |
Definition at line 264 of file ahrs_float_cmpl_wrapper.c.
References ABI_BROADCAST, accel_cb(), accel_ev, ahrs_fc_enable_output(), AHRS_FC_GPS_ID, AHRS_FC_IMU_ID, ahrs_fc_init(), AHRS_FC_MAG_ID, AHRS_FC_OUTPUT_ENABLED, ahrs_fc_output_enabled, ahrs_register_impl(), aligner_cb(), aligner_ev, DefaultPeriodic, geo_mag_cb(), geo_mag_ev, gps_cb(), gps_ev, gyro_cb(), gyro_ev, mag_cb(), mag_ev, register_periodic_telemetry(), send_bias(), send_euler(), send_euler_int(), send_filter_status(), and send_geo_mag().
|
static |
Definition at line 213 of file ahrs_float_cmpl_wrapper.c.
References ACCELS_FLOAT_OF_BFP, ahrs_fc, ahrs_fc_align(), compute_body_orientation_and_rates(), AhrsFloatCmpl::is_aligned, MAGS_FLOAT_OF_BFP, and RATES_FLOAT_OF_BFP.
Referenced by ahrs_fc_register().
|
static |
Compute body orientation and rates from imu orientation and rates.
Definition at line 255 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_output_enabled, AhrsFloatCmpl::body_rate, AhrsFloatCmpl::ltp_to_body_quat, stateSetBodyRates_f(), and stateSetNedToBodyQuat_f().
Referenced by aligner_cb(), gps_cb(), and gyro_cb().
|
static |
Definition at line 233 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, h(), and AhrsFloatCmpl::mag_h.
Referenced by ahrs_fc_register().
Definition at line 238 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc_update_gps(), and compute_body_orientation_and_rates().
Referenced by ahrs_fc_register().
|
static |
Definition at line 134 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_last_stamp, ahrs_fc_propagate(), AHRS_FC_RUNNING, AHRS_PROPAGATE_FREQUENCY, compute_body_orientation_and_rates(), AhrsFloatCmpl::is_aligned, PRINT_CONFIG_MSG(), PRINT_CONFIG_VAR(), RATES_FLOAT_OF_BFP, and AhrsFloatCmpl::status.
Referenced by ahrs_fc_register().
|
static |
Definition at line 188 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_update_mag(), AhrsFloatCmpl::is_aligned, MAGS_FLOAT_OF_BFP, PRINT_CONFIG_MSG(), and PRINT_CONFIG_VAR().
Referenced by ahrs_fc_register().
|
static |
Definition at line 60 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_id, dev, AhrsFloatCmpl::gyro_bias, Int32Rates::p, Int32Rates::q, Int32Rates::r, and RATES_BFP_OF_REAL.
Referenced by ahrs_fc_register().
|
static |
Definition at line 49 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_id, dev, float_eulers_of_quat(), AhrsFloatCmpl::ltp_to_body_quat, FloatEulers::phi, FloatEulers::psi, and FloatEulers::theta.
Referenced by ahrs_fc_register().
|
static |
Definition at line 68 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_id, dev, EULERS_BFP_OF_REAL, float_eulers_of_quat(), AhrsFloatCmpl::ltp_to_body_quat, Int32Eulers::phi, Int32Eulers::psi, and Int32Eulers::theta.
Referenced by ahrs_fc_register().
|
static |
Definition at line 92 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_id, ahrs_fc_last_stamp, dev, get_sys_time_usec(), AhrsFloatCmpl::is_aligned, and val.
Referenced by ahrs_fc_register().
|
static |
Definition at line 86 of file ahrs_float_cmpl_wrapper.c.
References ahrs_fc, ahrs_fc_id, dev, AhrsFloatCmpl::mag_h, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by ahrs_fc_register().
|
static |
Definition at line 127 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().
|
static |
Definition at line 40 of file ahrs_float_cmpl_wrapper.c.
Referenced by send_bias(), send_euler(), send_euler_int(), send_filter_status(), and send_geo_mag().
|
static |
Definition at line 39 of file ahrs_float_cmpl_wrapper.c.
Referenced by gyro_cb(), and send_filter_status().
|
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(), ahrs_fc_register(), and compute_body_orientation_and_rates().
|
static |
Definition at line 129 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().
|
static |
Definition at line 130 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().
|
static |
Definition at line 131 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().
|
static |
Definition at line 126 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().
|
static |
Definition at line 128 of file ahrs_float_cmpl_wrapper.c.
Referenced by ahrs_fc_register().