Paparazzi UAS  v6.2_unstable
Paparazzi is a free software Unmanned Aircraft System.
ins_gps_passthrough.c File Reference
#include "modules/ins/ins_gps_passthrough.h"
#include "modules/ins/ins.h"
#include <inttypes.h>
#include <math.h>
#include "state.h"
#include "modules/gps/gps.h"
#include "modules/core/abi.h"
#include "modules/datalink/telemetry.h"
+ Include dependency graph for ins_gps_passthrough.c:

Go to the source code of this file.

Data Structures

struct  InsGpsPassthrough
 

Macros

#define USE_INS_NAV_INIT   TRUE
 
#define INS_PT_IMU_ID   ABI_BROADCAST
 ABI bindings on ACCEL data. More...
 
#define INS_PT_GPS_ID   GPS_MULTI_ID
 ABI binding for gps data. More...
 

Functions

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 send_ins (struct transport_tx *trans, struct link_device *dev)
 
static void send_ins_z (struct transport_tx *trans, struct link_device *dev)
 
static void send_ins_ref (struct transport_tx *trans, struct link_device *dev)
 
void ins_gps_passthrough_init (void)
 
void ins_reset_local_origin (void)
 INS local origin reset. More...
 
void ins_reset_altitude_ref (void)
 INS altitude reference reset. More...
 

Variables

struct InsGpsPassthrough ins_gp
 
static abi_event accel_ev
 
static abi_event gps_ev
 

Detailed Description

Simply converts GPS ECEF position and velocity to NED and passes it through to the state interface.

Definition in file ins_gps_passthrough.c.


Data Structure Documentation

◆ InsGpsPassthrough

struct InsGpsPassthrough

Definition at line 49 of file ins_gps_passthrough.c.

+ Collaboration diagram for InsGpsPassthrough:
Data Fields
struct NedCoor_i ltp_accel
struct LtpDef_i ltp_def
bool ltp_initialized
struct NedCoor_i ltp_pos
struct NedCoor_i ltp_speed

Macro Definition Documentation

◆ INS_PT_GPS_ID

#define INS_PT_GPS_ID   GPS_MULTI_ID

ABI binding for gps data.

Used for GPS ABI messages.

Definition at line 74 of file ins_gps_passthrough.c.

◆ INS_PT_IMU_ID

#define INS_PT_IMU_ID   ABI_BROADCAST

ABI bindings on ACCEL data.

Definition at line 64 of file ins_gps_passthrough.c.

◆ USE_INS_NAV_INIT

#define USE_INS_NAV_INIT   TRUE

Definition at line 40 of file ins_gps_passthrough.c.

Function Documentation

◆ accel_cb()

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

Definition at line 197 of file ins_gps_passthrough.c.

References ACCEL_BFP_OF_REAL, ins_gp, int32_rmat_transp_vmult(), InsGpsPassthrough::ltp_accel, stateGetNedToBodyRMat_i(), stateSetAccelBody_i(), stateSetAccelNed_i(), VECT3_COPY, and Int32Vect3::z.

Referenced by ins_gps_passthrough_init().

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

◆ gps_cb()

◆ ins_gps_passthrough_init()

void ins_gps_passthrough_init ( void  )

Definition at line 138 of file ins_gps_passthrough.c.

◆ ins_reset_altitude_ref()

void ins_reset_altitude_ref ( void  )

INS altitude reference reset.

Reset only vertical reference to the current altitude. Does nothing if not implemented by specific INS algorithm.

Definition at line 185 of file ins_gps_passthrough.c.

References LlaCoor_i::alt, gps, GpsState::hmsl, LtpDef_i::hmsl, ins_gp, LlaCoor_i::lat, LtpDef_i::lla, GpsState::lla_pos, LlaCoor_i::lon, InsGpsPassthrough::ltp_def, ltp_def_from_lla_i(), State::ned_origin_i, state, and stateSetLocalOrigin_i().

+ Here is the call graph for this function:

◆ ins_reset_local_origin()

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 174 of file ins_gps_passthrough.c.

References LlaCoor_i::alt, ecef_int_from_gps(), gps, GpsState::hmsl, LtpDef_i::hmsl, ins_gp, LtpDef_i::lla, lla_int_from_gps(), InsGpsPassthrough::ltp_def, ltp_def_from_ecef_i(), InsGpsPassthrough::ltp_initialized, and stateSetLocalOrigin_i().

Referenced by gps_cb().

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

◆ send_ins()

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

Definition at line 110 of file ins_gps_passthrough.c.

References dev, ins_gp, InsGpsPassthrough::ltp_accel, InsGpsPassthrough::ltp_pos, InsGpsPassthrough::ltp_speed, NedCoor_i::x, NedCoor_i::y, and NedCoor_i::z.

Referenced by ins_gps_passthrough_init().

+ Here is the caller graph for this function:

◆ send_ins_ref()

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

◆ send_ins_z()

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

Definition at line 118 of file ins_gps_passthrough.c.

References dev, ins_gp, InsGpsPassthrough::ltp_accel, InsGpsPassthrough::ltp_pos, InsGpsPassthrough::ltp_speed, and NedCoor_i::z.

Referenced by ins_gps_passthrough_init().

+ Here is the caller graph for this function:

Variable Documentation

◆ accel_ev

abi_event accel_ev
static

Definition at line 66 of file ins_gps_passthrough.c.

Referenced by ins_gps_passthrough_init().

◆ gps_ev

abi_event gps_ev
static

Definition at line 77 of file ins_gps_passthrough.c.

Referenced by ins_gps_passthrough_init().

◆ ins_gp