Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Fixed Point Geodetic functions
+ Collaboration diagram for Fixed Point Geodetic functions:

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_DEG(_r)   ((_r)*1e7)
 
#define DEG_OF_EM7DEG(_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 Int32RMat *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)
 Convert a point from LLA to local ENU. More...
 
void ned_of_lla_point_i (struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
 Convert a point from LLA to local NED. More...
 
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


Data Structure Documentation

struct EcefCoor_i

vector in EarthCenteredEarthFixed coordinates

Origin at center of mass of the Earth. Z-axis is pointing north, the x-axis intersects the sphere of the earth at 0° latitude (Equator) and 0° longitude (Greenwich). Y-axis completes it to right-hand system. Units: centimeters

Definition at line 50 of file pprz_geodetic_int.h.

Data Fields
int32_t x in centimeters
int32_t y in centimeters
int32_t z in centimeters
struct LlaCoor_i

vector in Latitude, Longitude and Altitude

Definition at line 59 of file pprz_geodetic_int.h.

Data Fields
int32_t alt in millimeters above WGS84 reference ellipsoid
int32_t lat in degrees*1e7
int32_t lon in degrees*1e7
struct NedCoor_i

vector in North East Down coordinates

Definition at line 68 of file pprz_geodetic_int.h.

Data Fields
int32_t x North.
int32_t y East.
int32_t z Down.
struct EnuCoor_i

vector in East North Up coordinates

Definition at line 77 of file pprz_geodetic_int.h.

Data Fields
int32_t x East.
int32_t y North.
int32_t z Up.
struct UtmCoor_i

position in UTM coordinates

Definition at line 86 of file pprz_geodetic_int.h.

Data Fields
int32_t alt in millimeters above WGS84 reference ellipsoid
int32_t east in centimeters
int32_t north in centimeters
uint8_t zone UTM zone number.
struct LtpDef_i

definition of the local (flat earth) coordinate system

Defines the origin of the local coordinate system in ECEF and LLA coordinates and the roation matrix from ECEF to local frame

Definition at line 98 of file pprz_geodetic_int.h.

+ Collaboration diagram for LtpDef_i:
Data Fields
struct EcefCoor_i ecef Reference point in ecef.
int32_t hmsl Height above mean sea level in mm.
struct LlaCoor_i lla Reference point in lla.
struct Int32RMat ltp_of_ecef Rotation matrix.

Macro Definition Documentation

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

Definition at line 127 of file pprz_geodetic_int.h.

Referenced by ecef_of_lla_i().

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

Definition at line 134 of file pprz_geodetic_int.h.

#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 150 of file pprz_geodetic_int.h.

Referenced by ins_vectornav_propagate(), stateCalcPositionEcef_i(), and stateCalcPositionLla_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 162 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 156 of file pprz_geodetic_int.h.

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

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

Definition at line 133 of file pprz_geodetic_int.h.

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

Definition at line 135 of file pprz_geodetic_int.h.

Referenced by lla_of_ecef_i().

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

Definition at line 131 of file pprz_geodetic_int.h.

#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 HIGH_RES_TRIG_FRAC
#define BFP_OF_REAL(_vr, _frac)

Definition at line 207 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 231 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 219 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 200 of file pprz_geodetic_int.h.

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

Definition at line 205 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 148 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 147 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 EM7DEG_OF_RAD(_r)
signed long int32_t
Definition: types.h:19
#define MM_OF_M(_m)

Definition at line 167 of file pprz_geodetic_int.h.

Referenced by ins_vectornav_propagate(), 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 RAD_OF_EM7DEG(_r)
#define M_OF_MM(_mm)

Definition at line 179 of file pprz_geodetic_int.h.

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

Definition at line 128 of file pprz_geodetic_int.h.

Referenced by lla_of_ecef_i().

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

Definition at line 130 of file pprz_geodetic_int.h.

Referenced by ecef_of_lla_i().

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

Definition at line 129 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 184 of file pprz_geodetic_int.h.

Referenced by stateCalcPositionEnu_i(), stateCalcPositionLla_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 192 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 136 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 132 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 140 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 146 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 238 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, ecef_of_enu_vect_i(), and 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 263 of file pprz_geodetic_int.c.

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

Referenced by ecef_of_ned_pos_i(), stateCalcPositionLla_i(), and waypoint_globalize().

+ 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 199 of file pprz_geodetic_int.c.

References HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32RMat::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 250 of file pprz_geodetic_int.c.

References ecef_of_enu_point_i(), and ENU_OF_TO_NED.

Referenced by gps_sim_hitl_event().

+ Here is the call graph for this function:

+ Here is the caller 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 283 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 225 of file pprz_geodetic_int.c.

References ecef_of_enu_vect_i(), and ENU_OF_TO_NED.

Referenced by gps_sim_hitl_event(), nmea_parse_perdcrv(), 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 90 of file pprz_geodetic_int.c.

References LtpDef_i::ecef, HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32RMat::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 129 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 162 of file pprz_geodetic_int.c.

References HIGH_RES_TRIG_FRAC, LtpDef_i::ltp_of_ecef, Int32RMat::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 
)

Convert a point from LLA to local ENU.

Parameters
[out]enuENU point in cm
[in]deflocal coordinate system definition
[in]llaLLA point in 1e7deg and mm

Definition at line 295 of file pprz_geodetic_int.c.

References ecef_of_lla_i(), and enu_of_ecef_point_i().

Referenced by mission_point_of_lla(), stateCalcPositionEnu_i(), and waypoint_localize().

+ 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 314 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 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 
)

Definition at line 72 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 Int32RMat ltp_of_ecef,
struct LlaCoor_i lla 
)

Definition at line 34 of file pprz_geodetic_int.c.

References BFP_OF_REAL, HIGH_RES_TRIG_FRAC, LlaCoor_i::lat, LlaCoor_i::lon, Int32RMat::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 116 of file pprz_geodetic_int.c.

References enu_of_ecef_point_i(), and ENU_OF_TO_NED.

Referenced by gps_cb(), ins_int_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 149 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 186 of file pprz_geodetic_int.c.

References enu_of_ecef_vect_i(), and ENU_OF_TO_NED.

Referenced by gps_cb(), gps_skytraq_read_message(), ins_int_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 
)

Convert a point from LLA to local NED.

Parameters
[out]nedNED point in cm
[in]deflocal coordinate system definition
[in]llaLLA point in 1e7deg and mm

Definition at line 307 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 321 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: