Paparazzi UAS  v5.2.2_stable-0-gd6b9f29
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
pprz_geodetic_int.h File Reference

Paparazzi fixed point math for geodetic calculations. More...

#include "pprz_geodetic.h"
#include "std.h"
#include "pprz_algebra_int.h"
+ Include dependency graph for pprz_geodetic_int.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  EcefCoor_i
 vector in EarthCenteredEarthFixed coordinates More...
 
struct  LlaCoor_i
 vector in Latitude, Longitude and Altitude More...
 
struct  NedCoor_i
 vector in North East Down coordinates More...
 
struct  EnuCoor_i
 vector in East North Up coordinates More...
 
struct  UtmCoor_i
 position in UTM coordinates More...
 
struct  LtpDef_i
 definition of the local (flat earth) coordinate system More...
 

Macros

#define CM_OF_M(_m)   ((_m)*1e2)
 
#define M_OF_CM(_cm)   ((_cm)/1e2)
 
#define MM_OF_M(_m)   ((_m)*1e3)
 
#define M_OF_MM(_mm)   ((_mm)/1e3)
 
#define EM7RAD_OF_RAD(_r)   ((_r)*1e7)
 
#define RAD_OF_EM7RAD(_r)   ((_r)/1e7)
 
#define EM7DEG_OF_RAD(_r)   (DegOfRad(_r)*1e7)
 
#define RAD_OF_EM7DEG(_r)   (RadOfDeg(_r)/1e7)
 
#define HIGH_RES_TRIG_FRAC   20
 
#define VECT3_ENU_OF_NED(_o, _i)
 
#define VECT3_NED_OF_ENU(_o, _i)   VECT3_ENU_OF_NED(_o,_i)
 
#define INT32_VECT3_NED_OF_ENU(_o, _i)   VECT3_ENU_OF_NED(_o,_i)
 
#define INT32_VECT3_ENU_OF_NED(_o, _i)   VECT3_ENU_OF_NED(_o,_i)
 
#define ECEF_BFP_OF_REAL(_o, _i)
 
#define ECEF_FLOAT_OF_BFP(_o, _i)
 
#define ECEF_DOUBLE_OF_BFP(_o, _i)
 
#define LLA_BFP_OF_REAL(_o, _i)
 
#define LLA_FLOAT_OF_BFP(_o, _i)
 
#define LLA_DOUBLE_OF_BFP(_o, _i)
 
#define NED_BFP_OF_REAL(_o, _i)
 
#define ENU_BFP_OF_REAL(_o, _i)   NED_BFP_OF_REAL(_o, _i)
 
#define NED_FLOAT_OF_BFP(_o, _i)
 
#define ENU_FLOAT_OF_BFP(_o, _i)   NED_FLOAT_OF_BFP(_o, _i)
 
#define INT32_VECT2_ENU_OF_NED(_o, _i)
 
#define INT32_VECT2_NED_OF_ENU(_o, _i)   INT32_VECT2_ENU_OF_NED(_o,_i)
 
#define HIGH_RES_RMAT_BFP_OF_REAL(_ei, _ef)
 
#define HIGH_RES_RMAT_FLOAT_OF_BFP(_ef, _ei)
 
#define HIGH_RES_RMAT_DOUBLE_OF_BFP(_ef, _ei)
 

Functions

void ltp_of_ecef_rmat_from_lla_i (struct Int32Mat33 *ltp_of_ecef, struct LlaCoor_i *lla)
 
void ltp_def_from_ecef_i (struct LtpDef_i *def, struct EcefCoor_i *ecef)
 
void ltp_def_from_lla_i (struct LtpDef_i *def, struct LlaCoor_i *lla)
 
void lla_of_ecef_i (struct LlaCoor_i *out, struct EcefCoor_i *in)
 
void ecef_of_lla_i (struct EcefCoor_i *out, struct LlaCoor_i *in)
 
void enu_of_ecef_point_i (struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Convert a point from ECEF to local ENU. More...
 
void ned_of_ecef_point_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Convert a point from ECEF to local NED. More...
 
void enu_of_ecef_pos_i (struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Convert a ECEF position to local ENU. More...
 
void ned_of_ecef_pos_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Convert a ECEF position to local NED. More...
 
void enu_of_ecef_vect_i (struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Rotate a vector from ECEF to ENU. More...
 
void ned_of_ecef_vect_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
 Rotate a vector from ECEF to NED. More...
 
void enu_of_lla_point_i (struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
 
void ned_of_lla_point_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
 
void enu_of_lla_vect_i (struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
 
void ned_of_lla_vect_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
 
void ecef_of_enu_point_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
 Convert a point in local ENU to ECEF. More...
 
void ecef_of_ned_point_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
 Convert a point in local NED to ECEF. More...
 
void ecef_of_enu_pos_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
 Convert a local ENU position to ECEF. More...
 
void ecef_of_ned_pos_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
 Convert a local NED position to ECEF. More...
 
void ecef_of_enu_vect_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
 Rotate a vector from ENU to ECEF. More...
 
void ecef_of_ned_vect_i (struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
 Rotate a vector from NED to ECEF. More...
 

Detailed Description

Paparazzi fixed point math for geodetic calculations.

This is the more detailed description of this file.

Definition in file pprz_geodetic_int.h.

Macro Definition Documentation

#define CM_OF_M (   _m)    ((_m)*1e2)

Definition at line 122 of file pprz_geodetic_int.h.

Referenced by ecef_of_lla_i().

#define ECEF_BFP_OF_REAL (   _o,
  _i 
)
Value:
{ \
(_o).x = (int32_t)CM_OF_M((_i).x); \
(_o).y = (int32_t)CM_OF_M((_i).y); \
(_o).z = (int32_t)CM_OF_M((_i).z); \
}
#define CM_OF_M(_m)
signed long int32_t
Definition: types.h:19

Definition at line 143 of file pprz_geodetic_int.h.

Referenced by gps_ardrone2_parse(), and stateCalcPositionEcef_i().

#define ECEF_DOUBLE_OF_BFP (   _o,
  _i 
)
Value:
{ \
(_o).x = (double)M_OF_CM((_i).x); \
(_o).y = (double)M_OF_CM((_i).y); \
(_o).z = (double)M_OF_CM((_i).z); \
}
#define M_OF_CM(_cm)

Definition at line 155 of file pprz_geodetic_int.h.

#define ECEF_FLOAT_OF_BFP (   _o,
  _i 
)
Value:
{ \
(_o).x = (float)M_OF_CM((_i).x); \
(_o).y = (float)M_OF_CM((_i).y); \
(_o).z = (float)M_OF_CM((_i).z); \
}
#define M_OF_CM(_cm)

Definition at line 149 of file pprz_geodetic_int.h.

Referenced by ahrs_update_gps(), stateCalcPositionEcef_f(), and stateCalcPositionLla_f().

#define EM7DEG_OF_RAD (   _r)    (DegOfRad(_r)*1e7)

Definition at line 128 of file pprz_geodetic_int.h.

Referenced by lla_of_ecef_i().

#define EM7RAD_OF_RAD (   _r)    ((_r)*1e7)

Definition at line 126 of file pprz_geodetic_int.h.

#define ENU_BFP_OF_REAL (   _o,
  _i 
)    NED_BFP_OF_REAL(_o, _i)
#define ENU_FLOAT_OF_BFP (   _o,
  _i 
)    NED_FLOAT_OF_BFP(_o, _i)
#define HIGH_RES_RMAT_BFP_OF_REAL (   _ei,
  _ef 
)
Value:
{ \
(_ei).m[0] = BFP_OF_REAL((_ef).m[0], HIGH_RES_TRIG_FRAC); \
(_ei).m[1] = BFP_OF_REAL((_ef).m[1], HIGH_RES_TRIG_FRAC); \
(_ei).m[2] = BFP_OF_REAL((_ef).m[2], HIGH_RES_TRIG_FRAC); \
(_ei).m[3] = BFP_OF_REAL((_ef).m[3], HIGH_RES_TRIG_FRAC); \
(_ei).m[4] = BFP_OF_REAL((_ef).m[4], HIGH_RES_TRIG_FRAC); \
(_ei).m[5] = BFP_OF_REAL((_ef).m[5], HIGH_RES_TRIG_FRAC); \
(_ei).m[6] = BFP_OF_REAL((_ef).m[6], HIGH_RES_TRIG_FRAC); \
(_ei).m[7] = BFP_OF_REAL((_ef).m[7], HIGH_RES_TRIG_FRAC); \
(_ei).m[8] = BFP_OF_REAL((_ef).m[8], HIGH_RES_TRIG_FRAC); \
}
#define BFP_OF_REAL(_vr, _frac)
#define HIGH_RES_TRIG_FRAC

Definition at line 200 of file pprz_geodetic_int.h.

#define HIGH_RES_RMAT_DOUBLE_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).m[0] = DOUBLE_OF_BFP((_ei).m[0], HIGH_RES_TRIG_FRAC); \
(_ef).m[1] = DOUBLE_OF_BFP((_ei).m[1], HIGH_RES_TRIG_FRAC); \
(_ef).m[2] = DOUBLE_OF_BFP((_ei).m[2], HIGH_RES_TRIG_FRAC); \
(_ef).m[3] = DOUBLE_OF_BFP((_ei).m[3], HIGH_RES_TRIG_FRAC); \
(_ef).m[4] = DOUBLE_OF_BFP((_ei).m[4], HIGH_RES_TRIG_FRAC); \
(_ef).m[5] = DOUBLE_OF_BFP((_ei).m[5], HIGH_RES_TRIG_FRAC); \
(_ef).m[6] = DOUBLE_OF_BFP((_ei).m[6], HIGH_RES_TRIG_FRAC); \
(_ef).m[7] = DOUBLE_OF_BFP((_ei).m[7], HIGH_RES_TRIG_FRAC); \
(_ef).m[8] = DOUBLE_OF_BFP((_ei).m[8], HIGH_RES_TRIG_FRAC); \
}
#define DOUBLE_OF_BFP(_vbfp, _frac)
#define HIGH_RES_TRIG_FRAC

Definition at line 224 of file pprz_geodetic_int.h.

#define HIGH_RES_RMAT_FLOAT_OF_BFP (   _ef,
  _ei 
)
Value:
{ \
(_ef).m[0] = FLOAT_OF_BFP((_ei).m[0], HIGH_RES_TRIG_FRAC); \
(_ef).m[1] = FLOAT_OF_BFP((_ei).m[1], HIGH_RES_TRIG_FRAC); \
(_ef).m[2] = FLOAT_OF_BFP((_ei).m[2], HIGH_RES_TRIG_FRAC); \
(_ef).m[3] = FLOAT_OF_BFP((_ei).m[3], HIGH_RES_TRIG_FRAC); \
(_ef).m[4] = FLOAT_OF_BFP((_ei).m[4], HIGH_RES_TRIG_FRAC); \
(_ef).m[5] = FLOAT_OF_BFP((_ei).m[5], HIGH_RES_TRIG_FRAC); \
(_ef).m[6] = FLOAT_OF_BFP((_ei).m[6], HIGH_RES_TRIG_FRAC); \
(_ef).m[7] = FLOAT_OF_BFP((_ei).m[7], HIGH_RES_TRIG_FRAC); \
(_ef).m[8] = FLOAT_OF_BFP((_ei).m[8], HIGH_RES_TRIG_FRAC); \
}
#define HIGH_RES_TRIG_FRAC
#define FLOAT_OF_BFP(_vbfp, _frac)

Definition at line 212 of file pprz_geodetic_int.h.

#define HIGH_RES_TRIG_FRAC   20
#define INT32_VECT2_ENU_OF_NED (   _o,
  _i 
)
Value:
{ \
(_o).x = (_i).y; \
(_o).y = (_i).x; \
}

Definition at line 193 of file pprz_geodetic_int.h.

#define INT32_VECT2_NED_OF_ENU (   _o,
  _i 
)    INT32_VECT2_ENU_OF_NED(_o,_i)

Definition at line 198 of file pprz_geodetic_int.h.

Referenced by guidance_h_nav_enter(), and guidance_h_run().

#define INT32_VECT3_ENU_OF_NED (   _o,
  _i 
)    VECT3_ENU_OF_NED(_o,_i)

Definition at line 141 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionEnu_i(), and stateCalcSpeedEnu_i().

#define INT32_VECT3_NED_OF_ENU (   _o,
  _i 
)    VECT3_ENU_OF_NED(_o,_i)

Definition at line 140 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionNed_i(), and stateCalcSpeedNed_i().

#define LLA_BFP_OF_REAL (   _o,
  _i 
)
Value:
{ \
(_o).lat = (int32_t)EM7DEG_OF_RAD((_i).lat); \
(_o).lon = (int32_t)EM7DEG_OF_RAD((_i).lon); \
(_o).alt = (int32_t)MM_OF_M((_i).alt); \
}
#define MM_OF_M(_m)
signed long int32_t
Definition: types.h:19
#define EM7DEG_OF_RAD(_r)

Definition at line 160 of file pprz_geodetic_int.h.

Referenced by gps_ardrone2_parse(), sim_use_gps_pos(), and stateCalcPositionLla_i().

#define LLA_DOUBLE_OF_BFP (   _o,
  _i 
)
Value:
{ \
(_o).lat = RAD_OF_EM7DEG((double)(_i).lat); \
(_o).lon = RAD_OF_EM7DEG((double)(_i).lon); \
(_o).alt = M_OF_MM((double)(_i).alt); \
}
#define M_OF_MM(_mm)
#define RAD_OF_EM7DEG(_r)

Definition at line 172 of file pprz_geodetic_int.h.

#define M_OF_CM (   _cm)    ((_cm)/1e2)

Definition at line 123 of file pprz_geodetic_int.h.

Referenced by lla_of_ecef_i().

#define M_OF_MM (   _mm)    ((_mm)/1e3)

Definition at line 125 of file pprz_geodetic_int.h.

Referenced by ecef_of_lla_i().

#define MM_OF_M (   _m)    ((_m)*1e3)

Definition at line 124 of file pprz_geodetic_int.h.

Referenced by lla_of_ecef_i().

#define NED_BFP_OF_REAL (   _o,
  _i 
)
Value:
{ \
(_o).x = POS_BFP_OF_REAL((_i).x); \
(_o).y = POS_BFP_OF_REAL((_i).y); \
(_o).z = POS_BFP_OF_REAL((_i).z); \
}
#define POS_BFP_OF_REAL(_af)

Definition at line 177 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionEnu_i(), and stateCalcPositionNed_i().

#define NED_FLOAT_OF_BFP (   _o,
  _i 
)
Value:
{ \
(_o).x = POS_FLOAT_OF_BFP((_i).x); \
(_o).y = POS_FLOAT_OF_BFP((_i).y); \
(_o).z = POS_FLOAT_OF_BFP((_i).z); \
}
#define POS_FLOAT_OF_BFP(_ai)

Definition at line 185 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionEnu_f(), stateCalcPositionLla_f(), stateCalcPositionNed_f(), and stateCalcPositionUtm_f().

#define RAD_OF_EM7DEG (   _r)    (RadOfDeg(_r)/1e7)

Definition at line 129 of file pprz_geodetic_int.h.

Referenced by ecef_of_lla_i(), and ltp_of_ecef_rmat_from_lla_i().

#define RAD_OF_EM7RAD (   _r)    ((_r)/1e7)

Definition at line 127 of file pprz_geodetic_int.h.

#define VECT3_ENU_OF_NED (   _o,
  _i 
)
Value:
{ \
(_o).x = (_i).y; \
(_o).y = (_i).x; \
(_o).z = -(_i).z; \
}

Definition at line 133 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionEnu_f(), and stateCalcSpeedEnu_f().

#define VECT3_NED_OF_ENU (   _o,
  _i 
)    VECT3_ENU_OF_NED(_o,_i)

Definition at line 139 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionNed_f(), and stateCalcSpeedNed_f().

Function Documentation

void ecef_of_enu_point_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct EnuCoor_i enu 
)

Convert a point in local ENU to ECEF.

Parameters
[out]ecefECEF point in cm
[in]deflocal coordinate system definition
[in]enuENU point in cm

Definition at line 219 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, ecef_of_enu_vect_i(), and INT32_VECT3_ADD.

Referenced by ecef_of_ned_point_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ecef_of_enu_pos_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct EnuCoor_i enu 
)

Convert a local ENU position to ECEF.

Parameters
[out]ecefECEF position in cm
[in]deflocal coordinate system definition
[in]enuENU position in meter << INT32_POS_FRAC

Definition at line 242 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, ecef_of_enu_vect_i(), INT32_POS_FRAC, INT32_VECT3_ADD, INT32_VECT3_RSHIFT, and VECT3_SMUL.

Referenced by ecef_of_ned_pos_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ecef_of_enu_vect_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct EnuCoor_i enu 
)

Rotate a vector from ENU to ECEF.

Parameters
[out]ecefvector in ECEF coordinate system
[in]deflocal coordinate system definition
[in]enuvector in ENU coordinate system

Definition at line 182 of file pprz_geodetic_int.c.

References HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32Mat33::m, EcefCoor_i::x, EnuCoor_i::x, EcefCoor_i::y, EnuCoor_i::y, EcefCoor_i::z, and EnuCoor_i::z.

Referenced by ecef_of_enu_point_i(), ecef_of_enu_pos_i(), and ecef_of_ned_vect_i().

+ Here is the caller graph for this function:

void ecef_of_ned_point_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct NedCoor_i ned 
)

Convert a point in local NED to ECEF.

Parameters
[out]ecefECEF point in cm
[in]deflocal coordinate system definition
[in]nedNED point in cm

Definition at line 230 of file pprz_geodetic_int.c.

References ecef_of_enu_point_i(), and ENU_OF_TO_NED.

+ Here is the call graph for this function:

void ecef_of_ned_pos_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct NedCoor_i ned 
)

Convert a local NED position to ECEF.

Parameters
[out]ecefECEF position in cm
[in]deflocal coordinate system definition
[in]nedNED position in meter << INT32_POS_FRAC

Definition at line 261 of file pprz_geodetic_int.c.

References ecef_of_enu_pos_i(), and ENU_OF_TO_NED.

Referenced by stateCalcPositionEcef_f(), stateCalcPositionEcef_i(), and stateCalcPositionLla_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ecef_of_ned_vect_i ( struct EcefCoor_i ecef,
struct LtpDef_i def,
struct NedCoor_i ned 
)

Rotate a vector from NED to ECEF.

Parameters
[out]ecefvector in ECEF coordinate system
[in]deflocal coordinate system definition
[in]nedvector in NED coordinate system

Definition at line 207 of file pprz_geodetic_int.c.

References ecef_of_enu_vect_i(), and ENU_OF_TO_NED.

Referenced by stateCalcAccelEcef_i(), and stateCalcSpeedEcef_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void enu_of_ecef_point_i ( struct EnuCoor_i enu,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Convert a point from ECEF to local ENU.

Parameters
[out]enuENU point in cm
[in]deflocal coordinate system definition
[in]ecefECEF point in cm

Definition at line 79 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32Mat33::m, VECT3_DIFF, EcefCoor_i::x, EnuCoor_i::x, EcefCoor_i::y, EnuCoor_i::y, EcefCoor_i::z, and EnuCoor_i::z.

Referenced by enu_of_ecef_pos_i(), enu_of_lla_point_i(), follow_change_wp(), and ned_of_ecef_point_i().

+ Here is the caller graph for this function:

void enu_of_ecef_pos_i ( struct EnuCoor_i enu,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Convert a ECEF position to local ENU.

Parameters
[out]enuENU position in meter << INT32_POS_FRAC
[in]deflocal coordinate system definition
[in]ecefECEF position in cm

Definition at line 116 of file pprz_geodetic_int.c.

References enu_of_ecef_point_i(), INT32_POS_FRAC, INT32_VECT3_LSHIFT, and VECT3_SDIV.

Referenced by ned_of_ecef_pos_i(), stateCalcPositionEnu_f(), and stateCalcPositionEnu_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void enu_of_ecef_vect_i ( struct EnuCoor_i enu,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Rotate a vector from ECEF to ENU.

Parameters
[out]enuvector in ENU coordinate system
[in]deflocal coordinate system definition
[in]ecefvector in ECEF coordinate system

Definition at line 147 of file pprz_geodetic_int.c.

References HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32Mat33::m, EcefCoor_i::x, EnuCoor_i::x, EcefCoor_i::y, EnuCoor_i::y, EcefCoor_i::z, and EnuCoor_i::z.

Referenced by enu_of_lla_vect_i(), ned_of_ecef_vect_i(), and stateCalcSpeedEnu_i().

+ Here is the caller graph for this function:

void enu_of_lla_point_i ( struct EnuCoor_i enu,
struct LtpDef_i def,
struct LlaCoor_i lla 
)

Definition at line 268 of file pprz_geodetic_int.c.

References ecef_of_lla_i(), and enu_of_ecef_point_i().

Referenced by nav_move_waypoint_lla(), and stateCalcPositionEnu_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void enu_of_lla_vect_i ( struct EnuCoor_i enu,
struct LtpDef_i def,
struct LlaCoor_i lla 
)

Definition at line 280 of file pprz_geodetic_int.c.

References ecef_of_lla_i(), and enu_of_ecef_vect_i().

+ Here is the call graph for this function:

void lla_of_ecef_i ( struct LlaCoor_i out,
struct EcefCoor_i in 
)

Definition at line 299 of file pprz_geodetic_int.c.

References LlaCoor_i::alt, LlaCoor_d::alt, EM7DEG_OF_RAD, LlaCoor_i::lat, LlaCoor_d::lat, lla_of_ecef_d(), LlaCoor_i::lon, LlaCoor_d::lon, M_OF_CM, MM_OF_M, EcefCoor_i::x, EcefCoor_d::x, EcefCoor_i::y, EcefCoor_d::y, EcefCoor_i::z, and EcefCoor_d::z.

Referenced by ltp_def_from_ecef_i(), and stateCalcPositionLla_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ltp_def_from_ecef_i ( struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Definition at line 51 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, LtpDef_i::lla, lla_of_ecef_i(), LtpDef_i::ltp_of_ecef, ltp_of_ecef_rmat_from_lla_i(), and VECT3_COPY.

Referenced by gps_skytraq_read_message(), ins_init(), ins_init_origin_from_flightplan(), ins_reset_local_origin(), and ins_update_gps().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ltp_def_from_lla_i ( struct LtpDef_i def,
struct LlaCoor_i lla 
)

Definition at line 62 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, ecef_of_lla_i(), LtpDef_i::lla, LLA_COPY, LtpDef_i::ltp_of_ecef, and ltp_of_ecef_rmat_from_lla_i().

Referenced by ins_reset_altitude_ref().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ltp_of_ecef_rmat_from_lla_i ( struct Int32Mat33 ltp_of_ecef,
struct LlaCoor_i lla 
)

Definition at line 26 of file pprz_geodetic_int.c.

References BFP_OF_REAL, HIGH_RES_TRIG_FRAC, LlaCoor_i::lat, LlaCoor_i::lon, Int32Mat33::m, and RAD_OF_EM7DEG.

Referenced by ltp_def_from_ecef_i(), and ltp_def_from_lla_i().

+ Here is the caller graph for this function:

void ned_of_ecef_point_i ( struct NedCoor_i ned,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Convert a point from ECEF to local NED.

Parameters
[out]nedNED point in cm
[in]deflocal coordinate system definition
[in]ecefECEF point in cm

Definition at line 104 of file pprz_geodetic_int.c.

References enu_of_ecef_point_i(), and ENU_OF_TO_NED.

Referenced by ins_update_gps(), and ned_of_lla_point_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ned_of_ecef_pos_i ( struct NedCoor_i ned,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Convert a ECEF position to local NED.

Parameters
[out]nedNED position in meter << INT32_POS_FRAC
[in]deflocal coordinate system definition
[in]ecefECEF position in cm

Definition at line 135 of file pprz_geodetic_int.c.

References enu_of_ecef_pos_i(), and ENU_OF_TO_NED.

Referenced by stateCalcPositionNed_f(), and stateCalcPositionNed_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ned_of_ecef_vect_i ( struct NedCoor_i ned,
struct LtpDef_i def,
struct EcefCoor_i ecef 
)

Rotate a vector from ECEF to NED.

Parameters
[out]nedvector in NED coordinate system
[in]deflocal coordinate system definition
[in]ecefvector in ECEF coordinate system

Definition at line 170 of file pprz_geodetic_int.c.

References enu_of_ecef_vect_i(), and ENU_OF_TO_NED.

Referenced by gps_skytraq_read_message(), ins_update_gps(), ned_of_lla_vect_i(), stateCalcAccelNed_i(), stateCalcHorizontalSpeedNorm_i(), and stateCalcSpeedNed_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ned_of_lla_point_i ( struct NedCoor_i ned,
struct LtpDef_i def,
struct LlaCoor_i lla 
)

Definition at line 274 of file pprz_geodetic_int.c.

References ecef_of_lla_i(), and ned_of_ecef_point_i().

Referenced by stateCalcPositionNed_i().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ned_of_lla_vect_i ( struct NedCoor_i ned,
struct LtpDef_i def,
struct LlaCoor_i lla 
)

Definition at line 286 of file pprz_geodetic_int.c.

References ecef_of_lla_i(), and ned_of_ecef_vect_i().

+ Here is the call graph for this function: