DUNE: Uniform Navigational Environment
2019.02.1
|
Routines for WGS-84 coordinate manipulation.
Static Public Member Functions | |
template<typename Ta , typename Tb > | |
static Ta | distance (Ta lat1, Ta lon1, Tb hae1, Ta lat2, Ta lon2, Tb hae2) |
template<typename Ta , typename Tb , typename Tc , typename Td , typename Te > | |
static void | displacement (Ta rlat, Ta rlon, Tb rhae, Tc lat, Tc lon, Td hae, Te *n, Te *e, Te *d=NULL) |
template<typename Ta , typename Tb , typename Tc , typename Td > | |
static void | displace (Ta n, Ta e, Tb d, Tc *lat, Tc *lon, Td *hae) |
template<typename Ta , typename Tb > | |
static void | displace (Ta n, Ta e, Tb *lat, Tb *lon) |
template<typename Ta , typename Tb > | |
static void | getNEBearingAndRange (Ta lat1, Ta lon1, Ta lat2, Ta lon2, Tb *bearing, Tb *range) |
template<typename Ta , typename Tb , typename Tc > | |
static void | getAzimuthAndElevation (Ta lat1, Ta lon1, Tb hei1, Ta lat2, Ta lon2, Tb hei2, Tc *azimuth, Tc *elevation) |
|
inlinestatic |
Displace a geodetic coordinate in the NED frame according to given offsets.
[in] | n | North offset (m). |
[in] | e | East offset (m). |
[in] | d | Down offset (m). |
[in,out] | lat | reference latitude on entry, displaced latitude on exit (rad). |
[in,out] | lon | reference longitude entry, displaced longitude on exit (rad). |
[in,out] | hae | reference height on entry, displaced height on exit (rad). |
Referenced by DUNE::Maneuvers::VehicleFormation::consume(), DUNE::Maneuvers::FollowTrajectory::desiredPath(), DUNE::Maneuvers::VehicleFormation::desiredPath(), displace(), DUNE::Maneuvers::FigureEight::FigureEight(), DUNE::Maneuvers::RowsStages::getDistance(), DUNE::Parsers::PlanConfigParser::parseCoordinate(), DUNE::Control::SlopeData::renderSlopeInvalid(), DUNE::Navigation::UsblTools::toFix(), and DUNE::Coordinates::toWGS84().
|
inlinestatic |
Displace a WGS-84 coordinate in the NED frame according to given offsets.
[in] | n | North offset (m). |
[in] | e | East offset (m). |
[in,out] | lat | reference latitude on entry, displaced latitude on exit (rad). |
[in,out] | lon | reference longitude entry, displaced longitude on exit (rad). |
References displace().
|
inlinestatic |
Compute North-East-Down displacement between two WGS-84 coordinates.
[in] | rlat | reference WGS-84 latitude (rad). |
[in] | rlon | reference WGS-84 longitude (rad). |
[in] | rhae | reference WGS-84 coordinate height (m). |
[in] | lat | Offset coordinate WGS-84 latitude (rad). |
[in] | lon | Offset coordinate WGS-84 longitude (rad). |
[in] | hae | Offset coordinate height (m). |
[out] | n | storage for North offset (x-coordinate in NED referential). |
[out] | e | storage for East offset (y-coordinate in NED referential). |
[out] | d | storage for Down offset (z-coordinate in NED referential). |
Referenced by DUNE::Navigation::StreamEstimator::consume(), DUNE::Navigation::BasicNavigation::consume(), DUNE::Maneuvers::FigureEight::FigureEight(), getNEBearingAndRange(), DUNE::Maneuvers::VehicleFormation::toLocalCoordinates(), and DUNE::Navigation::BasicTransponder::update().
|
inlinestatic |
Calculate distance between two WGS-84 coordinates.
Basically, a ECEF conversion of both WGS-84 coordinates is done then the ECEF distance is returned.
[in] | lat1 | WGS-84 latitude of first coordinate (rad). |
[in] | lon1 | WGS-84 longitude of first coordinate (rad). |
[in] | hae1 | height above WGS-84 ellipsoid of first coordinate (m). |
[in] | lat2 | WGS-84 latitude of second coordinate (rad). |
[in] | lon2 | WGS-84 longitude of second coordinate (rad). |
[in] | hae2 | height above WGS-84 ellipsoid of second coordinate (m). |
Referenced by DUNE::Control::PathController::consume(), DUNE::Navigation::StreamEstimator::consume(), and DUNE::Maneuvers::FigureEight::FigureEight().
|
inlinestatic |
Get angles of Azimuth and Elevation between two latitude/longitude/height coordinates.
[in] | lat1 | WGS-84 latitude of first coordinate (rad). |
[in] | lon1 | WGS-84 longitude of first coordinate (rad). |
[in] | hei1 | WGS-84 height of first coordinate (m). |
[in] | lat2 | WGS-84 latitude of second coordinate (rad). |
[in] | lon2 | WGS-84 longitude of second coordinate (rad). |
[in] | hei2 | WGS-84 height of second coordinate (m). |
[in,out] | azimuth | azimuth angle (rad). |
[in,out] | elevation | elevation angle (rad). |
References getNEBearingAndRange().
|
inlinestatic |
Get North-East bearing and range between two latitude/longitude coordinates.
[in] | lat1 | WGS-84 latitude of first coordinate (rad). |
[in] | lon1 | WGS-84 longitude of first coordinate (rad). |
[in] | lat2 | WGS-84 latitude of second coordinate (rad). |
[in] | lon2 | WGS-84 longitude of second coordinate (rad). |
[in,out] | bearing | bearing (rad). |
[in,out] | range | range (m). |
References displacement().
Referenced by getAzimuthAndElevation(), and DUNE::Control::SlopeData::renderSlopeInvalid().