Paparazzi UAS
v7.0_unstable
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 (normally 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 or above MSL) |
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 129 of file pprz_geodetic_float.c.
References LtpDef_f::ecef, LtpDef_f::ltp_of_ecef, DoubleRMat::m, FloatRMat::m, MAT33_VECT3_TRANSP_MUL, EcefCoor_d::x, EcefCoor_f::x, EnuCoor_f::x, EcefCoor_d::y, EcefCoor_f::y, EnuCoor_f::y, EcefCoor_d::z, EcefCoor_f::z, and EnuCoor_f::z.
Referenced by ecef_of_ned_point_f(), and stateCalcPositionLla_f().
void ecef_of_enu_vect_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct EnuCoor_f * | enu | ||
) |
Definition at line 164 of file pprz_geodetic_float.c.
References LtpDef_f::ltp_of_ecef, DoubleRMat::m, FloatRMat::m, MAT33_VECT3_TRANSP_MUL, EcefCoor_d::x, EcefCoor_f::x, EnuCoor_f::x, EcefCoor_d::y, EcefCoor_f::y, EnuCoor_f::y, EcefCoor_d::z, EcefCoor_f::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 241 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, f, 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 157 of file pprz_geodetic_float.c.
References ecef_of_enu_point_f(), and ENU_OF_TO_NED.
Referenced by detection_cb(), stateCalcPositionEcef_f(), stateCalcPositionEcef_i(), stateCalcPositionLla_f(), and tag_tracking_report().
void ecef_of_ned_vect_f | ( | struct EcefCoor_f * | ecef, |
struct LtpDef_f * | def, | ||
struct NedCoor_f * | ned | ||
) |
Definition at line 192 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 85 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 100 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 112 of file pprz_geodetic_float.c.
References ecef_of_lla_f(), and enu_of_ecef_point_f().
Referenced by acInfoCalcPositionEnu_f(), acInfoCalcPositionEnu_i(), nav_land_at_loc(), and stateCalcPositionEnu_f().
void lla_of_ecef_f | ( | struct LlaCoor_f * | out, |
struct EcefCoor_f * | in | ||
) |
Definition at line 204 of file pprz_geodetic_float.c.
References LlaCoor_f::alt, b, f, LlaCoor_f::lat, LlaCoor_f::lon, P, s, logger_uart_parse::s1, EcefCoor_f::x, EcefCoor_f::y, EcefCoor_f::z, and z2.
Referenced by detection_cb(), lla_of_ecef_i(), ltp_def_from_ecef_f(), stateCalcPositionLla_f(), and tag_tracking_report().
Definition at line 344 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, scale, serie_coeff_proj_mercator, serie_coeff_proj_mercator_inverse, and UtmCoor_f::zone.
Referenced by acInfoCalcPositionLla_f(), acInfoCalcPositionLla_i(), lla_of_utm_i(), nav_reset_utm_zone(), put_lat_lon_home(), 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 60 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.
void ned_of_ecef_point_f | ( | struct NedCoor_f * | ned, |
struct LtpDef_f * | def, | ||
struct EcefCoor_f * | ecef | ||
) |
Definition at line 92 of file pprz_geodetic_float.c.
References enu_of_ecef_point_f(), and ENU_OF_TO_NED.
Referenced by 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 105 of file pprz_geodetic_float.c.
References enu_of_ecef_vect_f(), and ENU_OF_TO_NED.
Referenced by gps_cb(), ins_float_invariant_update_gps(), stateCalcAccelNed_f(), stateCalcHorizontalSpeedNorm_i(), and stateCalcSpeedNed_f().
Definition at line 119 of file pprz_geodetic_float.c.
References ecef_of_lla_f(), and ned_of_ecef_point_f().
Referenced by stateCalcPositionNed_f().
Definition at line 308 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, UtmZoneOfLlaLonRad, and UtmCoor_f::zone.
Referenced by acInfoCalcPositionUtm_f(), acInfoCalcPositionUtm_i(), copilot_parse_move_wp_dl(), mission_point_of_lla(), nav_land_at_loc(), nav_reset_utm_zone(), nav_takeoff_from_loc(), sim_overwrite_ins(), stateCalcPositionEnu_f(), stateCalcPositionEnu_i(), stateCalcPositionNed_f(), stateCalcPositionNed_i(), stateCalcPositionUtm_f(), and utm_of_lla_i().