Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
ins_skeleton.c File Reference

Paparazzi specific wrapper to run simple module based INS. More...

#include "modules/ins/ins_skeleton.h"
#include "modules/core/abi.h"
#include "mcu_periph/sys_time.h"
#include "message_pragmas.h"
#include "state.h"
+ Include dependency graph for ins_skeleton.c:

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) More...
 
#define INS_MODULE_GPS_ID   GPS_MULTI_ID
 ABI binding for gps data. More...
 

Functions

void ins_module_wrapper_init (void)
 
static void ins_ned_to_state (void)
 copy position and speed to state interface More...
 
static void reset_cb (uint8_t sender_id UNUSED, uint8_t flag)
 
static void baro_cb (uint8_t sender_id, uint32_t stamp, 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)
 
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)
 

Variables

static abi_event baro_ev
 
static abi_event accel_ev
 
static abi_event gps_ev
 
static abi_event reset_ev
 
struct InsModuleInt ins_module
 global INS state More...
 

Detailed Description

Paparazzi specific wrapper to run simple module based INS.

Definition in file ins_skeleton.c.

Macro Definition Documentation

◆ INS_MODULE_BARO_ID

#define INS_MODULE_BARO_ID   ABI_BROADCAST

baro

Definition at line 47 of file ins_skeleton.c.

◆ INS_MODULE_GPS_ID

#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.

◆ INS_MODULE_IMU_ID

#define INS_MODULE_IMU_ID   ABI_BROADCAST

IMU (accel)

Definition at line 54 of file ins_skeleton.c.

◆ USE_INS_NAV_INIT

#define USE_INS_NAV_INIT   TRUE

Definition at line 35 of file ins_skeleton.c.

Function Documentation

◆ accel_cb()

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

Definition at line 117 of file ins_skeleton.c.

References ins_module_propagate(), and ins_ned_to_state().

Referenced by ins_module_wrapper_init().

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

◆ baro_cb()

static void baro_cb ( uint8_t  sender_id,
uint32_t  stamp,
float  pressure 
)
static

Definition at line 110 of file ins_skeleton.c.

References ins_module_update_baro(), and ins_ned_to_state().

Referenced by ins_module_wrapper_init().

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

◆ gps_cb()

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

Definition at line 132 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_REF, InsModuleInt::ltp_initialized, and reset_cb().

Referenced by ins_module_wrapper_init().

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

◆ ins_module_init()

void WEAK ins_module_init ( void  )

Definition at line 161 of file ins_skeleton.c.

Referenced by ins_module_wrapper_init().

+ Here is the caller graph for this function:

◆ ins_module_propagate()

void WEAK ins_module_propagate ( struct Int32Vect3 accel,
float  dt 
)

Definition at line 197 of file ins_skeleton.c.

References ins_module, int32_rmat_transp_vmult(), InsModuleInt::ltp_accel, stateGetNedToBodyRMat_i(), stateSetAccelBody_i(), and VECT3_COPY.

Referenced by accel_cb().

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

◆ ins_module_reset_local_origin()

void WEAK ins_module_reset_local_origin ( void  )

Definition at line 207 of file ins_skeleton.c.

Referenced by reset_cb().

+ Here is the caller graph for this function:

◆ ins_module_update_baro()

void WEAK ins_module_update_baro ( float  pressure)

Definition at line 165 of file ins_skeleton.c.

Referenced by baro_cb().

+ Here is the caller graph for this function:

◆ ins_module_update_gps()

◆ ins_module_wrapper_init()

◆ ins_ned_to_state()

static void ins_ned_to_state ( void  )
static

copy position and speed to state interface

Definition at line 76 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().

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

◆ reset_cb()

static void reset_cb ( uint8_t sender_id  UNUSED,
uint8_t  flag 
)
static

Variable Documentation

◆ accel_ev

abi_event accel_ev
static

Definition at line 67 of file ins_skeleton.c.

Referenced by ins_module_wrapper_init().

◆ baro_ev

abi_event baro_ev
static

Definition at line 66 of file ins_skeleton.c.

Referenced by ins_module_wrapper_init().

◆ gps_ev

abi_event gps_ev
static

Definition at line 68 of file ins_skeleton.c.

Referenced by ins_module_wrapper_init().

◆ ins_module

struct InsModuleInt ins_module

◆ reset_ev

abi_event reset_ev
static

Definition at line 69 of file ins_skeleton.c.

Referenced by ins_module_wrapper_init().