Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
Paparazzi specific wrapper to run simple module based INS. More...
#include "modules/ins/ins_skeleton.h"
#include "subsystems/abi.h"
#include "mcu_periph/sys_time.h"
#include "message_pragmas.h"
#include "state.h"
Go to the source code of this file.
Macros | |
#define | USE_INS_NAV_INIT TRUE |
#define | INS_MODULE_BARO_ID ABI_BROADCAST |
baro More... | |
#define | INS_MODULE_IMU_ID ABI_BROADCAST |
IMU (accel, body_to_imu) More... | |
#define | INS_MODULE_GPS_ID GPS_MULTI_ID |
ABI binding for gps data. More... | |
Functions | |
void | ins_module_wrapper_init (void) |
void WEAK | ins_module_init (void) |
void WEAK | ins_module_update_baro (float pressure) |
void WEAK | ins_module_update_gps (struct GpsState *gps_s, float dt) |
void WEAK | ins_module_propagate (struct Int32Vect3 *accel, float dt) |
void WEAK | ins_module_reset_local_origin (void) |
void | ins_reset_local_origin (void) |
INS local origin reset. More... | |
static void | ins_ned_to_state (void) |
copy position and speed to state interface More... | |
static void | baro_cb (uint8_t sender_id, float pressure) |
static void | accel_cb (uint8_t sender_id, uint32_t stamp, struct Int32Vect3 *accel) |
static void | gps_cb (uint8_t sender_id, uint32_t stamp, struct GpsState *gps_s) |
static void | body_to_imu_cb (uint8_t sender_id, struct FloatQuat *q_b2i_f) |
Variables | |
static abi_event | baro_ev |
static abi_event | accel_ev |
static abi_event | gps_ev |
static abi_event | body_to_imu_ev |
struct InsModuleInt | ins_module |
global INS state More... | |
Paparazzi specific wrapper to run simple module based INS.
Definition in file ins_skeleton.c.
#define INS_MODULE_BARO_ID ABI_BROADCAST |
#define INS_MODULE_GPS_ID GPS_MULTI_ID |
ABI binding for gps data.
Used for GPS ABI messages.
Definition at line 62 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
#define INS_MODULE_IMU_ID ABI_BROADCAST |
IMU (accel, body_to_imu)
Definition at line 54 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
#define USE_INS_NAV_INIT TRUE |
Definition at line 35 of file ins_skeleton.c.
|
static |
Definition at line 200 of file ins_skeleton.c.
References ins_module_propagate(), and ins_ned_to_state().
Referenced by ins_module_wrapper_init().
|
static |
Definition at line 193 of file ins_skeleton.c.
References ins_module_update_baro(), and ins_ned_to_state().
Referenced by ins_module_wrapper_init().
Definition at line 240 of file ins_skeleton.c.
References InsModuleInt::body_to_imu, ins_module, and orientationSetQuat_f().
Referenced by ins_module_wrapper_init().
Definition at line 215 of file ins_skeleton.c.
References GpsState::fix, InsModuleInt::gps, GPS_FIX_3D, ins_module, ins_module_update_gps(), ins_ned_to_state(), ins_reset_local_origin(), and InsModuleInt::ltp_initialized.
Referenced by ins_module_wrapper_init().
void WEAK ins_module_init | ( | void | ) |
Definition at line 79 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
void WEAK ins_module_propagate | ( | struct Int32Vect3 * | accel, |
float | dt | ||
) |
Definition at line 115 of file ins_skeleton.c.
References InsModuleInt::body_to_imu, ins_module, int32_rmat_transp_vmult(), InsModuleInt::ltp_accel, orientationGetRMat_i(), stateGetNedToBodyRMat_i(), stateSetAccelBody_i(), and VECT3_COPY.
Referenced by accel_cb().
void WEAK ins_module_reset_local_origin | ( | void | ) |
Definition at line 128 of file ins_skeleton.c.
Referenced by ins_reset_local_origin().
void WEAK ins_module_update_baro | ( | float | pressure | ) |
Definition at line 83 of file ins_skeleton.c.
Referenced by baro_cb().
void WEAK ins_module_update_gps | ( | struct GpsState * | gps_s, |
float | dt | ||
) |
Definition at line 87 of file ins_skeleton.c.
References GpsState::ecef_pos, GpsState::ecef_vel, GPS_VALID_POS_ECEF_BIT, GPS_VALID_VEL_ECEF_BIT, GPS_VALID_VEL_NED_BIT, ins_module, INT32_POS_OF_CM_DEN, INT32_POS_OF_CM_NUM, INT32_SPEED_OF_CM_S_DEN, INT32_SPEED_OF_CM_S_NUM, INT32_VECT3_SCALE_2, InsModuleInt::ltp_def, InsModuleInt::ltp_pos, InsModuleInt::ltp_speed, ned_of_ecef_point_i(), ned_of_ecef_vect_i(), GpsState::ned_vel, and GpsState::valid_fields.
Referenced by gps_cb().
void ins_module_wrapper_init | ( | void | ) |
Definition at line 153 of file ins_skeleton.c.
References accel_cb(), accel_ev, baro_cb(), baro_ev, body_to_imu_cb(), body_to_imu_ev, gps_cb(), gps_ev, ins_init_origin_i_from_flightplan(), ins_module, INS_MODULE_BARO_ID, INS_MODULE_GPS_ID, INS_MODULE_IMU_ID, ins_module_init(), INT32_VECT3_ZERO, InsModuleInt::ltp_accel, InsModuleInt::ltp_def, InsModuleInt::ltp_initialized, InsModuleInt::ltp_pos, and InsModuleInt::ltp_speed.
|
static |
copy position and speed to state interface
Definition at line 176 of file ins_skeleton.c.
References ins_module, InsModuleInt::ltp_accel, InsModuleInt::ltp_pos, InsModuleInt::ltp_speed, nps_bypass_ins, sim_overwrite_ins(), stateSetAccelNed_i(), stateSetPositionNed_i(), and stateSetSpeedNed_i().
Referenced by accel_cb(), baro_cb(), and gps_cb().
void ins_reset_local_origin | ( | void | ) |
INS local origin reset.
Reset horizontal and vertical reference to the current position. Does nothing if not implemented by specific INS algorithm.
INS local origin reset.
Definition at line 137 of file ins_skeleton.c.
References LlaCoor_i::alt, GpsState::ecef_pos, GpsState::fix, InsModuleInt::gps, GPS_FIX_3D, GpsState::hmsl, LtpDef_i::hmsl, ins_module, ins_module_reset_local_origin(), LtpDef_i::lla, GpsState::lla_pos, InsModuleInt::ltp_def, ltp_def_from_ecef_i(), InsModuleInt::ltp_initialized, and stateSetLocalOrigin_i().
Referenced by gps_cb().
|
static |
Definition at line 67 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
|
static |
Definition at line 66 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
|
static |
Definition at line 69 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
|
static |
Definition at line 68 of file ins_skeleton.c.
Referenced by ins_module_wrapper_init().
struct InsModuleInt ins_module |
global INS state
Definition at line 71 of file ins_skeleton.c.
Referenced by body_to_imu_cb(), gps_cb(), ins_module_propagate(), ins_module_update_gps(), ins_module_wrapper_init(), ins_ned_to_state(), and ins_reset_local_origin().