Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
|
Paparazzi floating point math for geodetic calculations. More...
Go to the source code of this file.
Data Structures | |
struct | EcefCoor_f |
vector in EarthCenteredEarthFixed coordinates More... | |
struct | LlaCoor_f |
vector in Latitude, Longitude and Altitude More... | |
struct | NedCoor_f |
vector in North East Down coordinates Units: meters More... | |
struct | EnuCoor_f |
vector in East North Up coordinates Units: meters More... | |
struct | UtmCoor_f |
position in UTM coordinates Units: meters More... | |
struct | LtpDef_f |
definition of the local (flat earth) coordinate system More... | |
Functions | |
void | lla_of_utm_f (struct LlaCoor_f *lla, struct UtmCoor_f *utm) |
void | utm_of_lla_f (struct UtmCoor_f *utm, struct LlaCoor_f *lla) |
void | ltp_def_from_ecef_f (struct LtpDef_f *def, struct EcefCoor_f *ecef) |
void | ltp_def_from_lla_f (struct LtpDef_f *def, struct LlaCoor_f *lla) |
void | lla_of_ecef_f (struct LlaCoor_f *out, struct EcefCoor_f *in) |
void | ecef_of_lla_f (struct EcefCoor_f *out, struct LlaCoor_f *in) |
void | enu_of_ecef_point_f (struct EnuCoor_f *enu, struct LtpDef_f *def, struct EcefCoor_f *ecef) |
void | ned_of_ecef_point_f (struct NedCoor_f *ned, struct LtpDef_f *def, struct EcefCoor_f *ecef) |
void | enu_of_ecef_vect_f (struct EnuCoor_f *enu, struct LtpDef_f *def, struct EcefCoor_f *ecef) |
void | ned_of_ecef_vect_f (struct NedCoor_f *ned, struct LtpDef_f *def, struct EcefCoor_f *ecef) |
void | enu_of_lla_point_f (struct EnuCoor_f *enu, struct LtpDef_f *def, struct LlaCoor_f *lla) |
void | ned_of_lla_point_f (struct NedCoor_f *ned, struct LtpDef_f *def, struct LlaCoor_f *lla) |
void | ecef_of_enu_point_f (struct EcefCoor_f *ecef, struct LtpDef_f *def, struct EnuCoor_f *enu) |
void | ecef_of_ned_point_f (struct EcefCoor_f *ecef, struct LtpDef_f *def, struct NedCoor_f *ned) |
void | ecef_of_enu_vect_f (struct EcefCoor_f *ecef, struct LtpDef_f *def, struct EnuCoor_f *enu) |
void | ecef_of_ned_vect_f (struct EcefCoor_f *ecef, struct LtpDef_f *def, struct NedCoor_f *ned) |
Paparazzi floating point math for geodetic calculations.
Definition in file pprz_geodetic_float.h.
struct EcefCoor_f |
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: meters
Definition at line 45 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
float | x | in meters |
float | y | in meters |
float | z | in meters |
struct LlaCoor_f |
vector in Latitude, Longitude and Altitude
Definition at line 54 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
float | alt | in meters above WGS84 reference ellipsoid |
float | lat | in radians |
float | lon | in radians |
struct NedCoor_f |
vector in North East Down coordinates Units: meters
Definition at line 63 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
float | x | in meters |
float | y | in meters |
float | z | in meters |
struct EnuCoor_f |
vector in East North Up coordinates Units: meters
Definition at line 72 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
float | x | in meters |
float | y | in meters |
float | z | in meters |
struct UtmCoor_f |
position in UTM coordinates Units: meters
Definition at line 81 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
float | alt | in meters above WGS84 reference ellipsoid |
float | east | in meters |
float | north | in meters |
uint8_t | zone | UTM zone number. |
struct LtpDef_f |
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 93 of file pprz_geodetic_float.h.
Data Fields | ||
---|---|---|
struct EcefCoor_f | ecef | origin of local frame in ECEF |
float | hmsl | Height above mean sea level in meters. |
struct LlaCoor_f | lla | origin of local frame in LLA |
struct FloatRMat | ltp_of_ecef | rotation from ECEF to local frame |
void ecef_of_enu_point_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct EnuCoor_f * | enu | ||
) |
Definition at line 130 of file pprz_geodetic_float.c.
References LtpDef_f::ecef, LtpDef_f::ltp_of_ecef, DoubleRMat::m, FloatRMat::m, MAT33_VECT3_TRANSP_MUL, EcefCoor_f::x, EcefCoor_d::x, EnuCoor_f::x, EcefCoor_f::y, EcefCoor_d::y, EnuCoor_f::y, EcefCoor_f::z, EcefCoor_d::z, and EnuCoor_f::z.
Referenced by ecef_of_ned_point_f().
void ecef_of_enu_vect_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct EnuCoor_f * | enu | ||
) |
Definition at line 165 of file pprz_geodetic_float.c.
References LtpDef_f::ltp_of_ecef, DoubleRMat::m, FloatRMat::m, MAT33_VECT3_TRANSP_MUL, EcefCoor_f::x, EcefCoor_d::x, EnuCoor_f::x, EcefCoor_f::y, EcefCoor_d::y, EnuCoor_f::y, EcefCoor_f::z, EcefCoor_d::z, and EnuCoor_f::z.
Referenced by ecef_of_ned_vect_f().
void ecef_of_lla_f | ( | struct EcefCoor_f * | out, |
struct LlaCoor_f * | in | ||
) |
Definition at line 242 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, LlaCoor_f::lat, LlaCoor_f::lon, EcefCoor_f::x, EcefCoor_f::y, and EcefCoor_f::z.
Referenced by ecef_of_lla_i(), enu_of_lla_point_f(), ltp_def_from_lla_f(), ned_of_lla_point_f(), nmea_parse_GGA(), stateCalcPositionEcef_f(), stateCalcPositionEcef_i(), stateCalcPositionEnu_i(), and stateCalcPositionNed_i().
void ecef_of_ned_point_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct NedCoor_f * | ned | ||
) |
Definition at line 158 of file pprz_geodetic_float.c.
References ecef_of_enu_point_f(), and ENU_OF_TO_NED.
Referenced by ins_vectornav_propagate(), stateCalcPositionEcef_f(), stateCalcPositionEcef_i(), and stateCalcPositionLla_f().
void ecef_of_ned_vect_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct NedCoor_f * | ned | ||
) |
Definition at line 193 of file pprz_geodetic_float.c.
References ecef_of_enu_vect_f(), and ENU_OF_TO_NED.
Referenced by stateCalcAccelEcef_f(), and stateCalcSpeedEcef_f().
void enu_of_ecef_point_f | ( | struct EnuCoor_f * | enu, |
struct LtpDef_f * | def, | ||
struct EcefCoor_f * | ecef | ||
) |
Definition at line 86 of file pprz_geodetic_float.c.
References LtpDef_f::ecef, LtpDef_f::ltp_of_ecef, MAT33_VECT3_MUL, and VECT3_DIFF.
Referenced by enu_of_lla_point_f(), ned_of_ecef_point_f(), stateCalcPositionEnu_f(), and stateCalcPositionEnu_i().
void enu_of_ecef_vect_f | ( | struct EnuCoor_f * | enu, |
struct LtpDef_f * | def, | ||
struct EcefCoor_f * | ecef | ||
) |
Definition at line 101 of file pprz_geodetic_float.c.
References LtpDef_f::ltp_of_ecef, and MAT33_VECT3_MUL.
Referenced by ned_of_ecef_vect_f(), and stateCalcSpeedEnu_f().
Definition at line 113 of file pprz_geodetic_float.c.
References ecef_of_lla_f(), and enu_of_ecef_point_f().
Referenced by stateCalcPositionEnu_f().
void lla_of_ecef_f | ( | struct LlaCoor_f * | out, |
struct EcefCoor_f * | in | ||
) |
Definition at line 205 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, LlaCoor_f::lat, LlaCoor_f::lon, Q, EcefCoor_f::x, EcefCoor_f::y, and EcefCoor_f::z.
Referenced by lla_of_ecef_i(), ltp_def_from_ecef_f(), and stateCalcPositionLla_f().
Definition at line 330 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, UtmCoor_f::alt, CScal, CSin, CSub, DELTA_EAST, DELTA_NORTH, E, UtmCoor_f::east, complex::im, inverse_isometric_latitude_f(), isometric_latitude_fast_f(), LambdaOfUtmZone, LlaCoor_f::lat, LlaCoor_f::lon, N, UtmCoor_f::north, complex::re, serie_coeff_proj_mercator, serie_coeff_proj_mercator_inverse, and UtmCoor_f::zone.
Referenced by ins_reset_utm_zone(), stateCalcPositionLla_f(), stateCalcPositionLla_i(), and vPoint().
void ltp_def_from_ecef_f | ( | struct LtpDef_f * | def, |
struct EcefCoor_f * | ecef | ||
) |
Definition at line 36 of file pprz_geodetic_float.c.
References LtpDef_f::ecef, LlaCoor_f::lat, LtpDef_f::lla, lla_of_ecef_f(), LlaCoor_f::lon, LtpDef_f::ltp_of_ecef, FloatRMat::m, and VECT3_COPY.
Definition at line 61 of file pprz_geodetic_float.c.
References LtpDef_f::ecef, ecef_of_lla_f(), LlaCoor_f::lat, LtpDef_f::lla, LLA_COPY, LlaCoor_f::lon, LtpDef_f::ltp_of_ecef, and FloatRMat::m.
Referenced by ins_vectornav_propagate().
void ned_of_ecef_point_f | ( | struct NedCoor_f * | ned, |
struct LtpDef_f * | def, | ||
struct EcefCoor_f * | ecef | ||
) |
Definition at line 93 of file pprz_geodetic_float.c.
References enu_of_ecef_point_f(), and ENU_OF_TO_NED.
Referenced by ins_float_invariant_update_gps(), ned_of_lla_point_f(), stateCalcPositionNed_f(), and stateCalcPositionNed_i().
void ned_of_ecef_vect_f | ( | struct NedCoor_f * | ned, |
struct LtpDef_f * | def, | ||
struct EcefCoor_f * | ecef | ||
) |
Definition at line 106 of file pprz_geodetic_float.c.
References enu_of_ecef_vect_f(), and ENU_OF_TO_NED.
Referenced by ins_float_invariant_update_gps(), stateCalcAccelNed_f(), stateCalcHorizontalSpeedNorm_i(), and stateCalcSpeedNed_f().
Definition at line 120 of file pprz_geodetic_float.c.
References ecef_of_lla_f(), and ned_of_ecef_point_f().
Referenced by stateCalcPositionNed_f().
Definition at line 304 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, UtmCoor_f::alt, CAdd, CScal, CSin, DELTA_EAST, DELTA_NORTH, E, UtmCoor_f::east, complex::im, isometric_latitude_f(), isometric_latitude_fast_f(), LambdaOfUtmZone, LlaCoor_f::lat, LlaCoor_f::lon, N, UtmCoor_f::north, complex::re, serie_coeff_proj_mercator, and UtmCoor_f::zone.
Referenced by dl_parse_msg(), gps_feed_value(), gps_mtk_read_message(), gps_parse(), gps_skytraq_read_message(), gps_ubx_read_message(), ins_reset_local_origin(), ins_reset_utm_zone(), ins_vectornav_propagate(), mission_point_of_lla(), nmea_parse_GGA(), parse_gps_datalink(), parse_ins_msg(), sbp_pos_llh_callback(), sim_use_gps_pos(), sirf_parse_41(), stateCalcPositionEnu_f(), stateCalcPositionEnu_i(), stateCalcPositionNed_f(), stateCalcPositionNed_i(), and stateCalcPositionUtm_f().