Generic interface for various providers of GNSS satellite orbital data.
More...
#include <orbital_data_provider.h>
|
virtual std::unordered_set< std::string > | getConstellations () const =0 |
| Get the constellations handled by this provider. More...
|
|
virtual cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition >, std::string > | getECEFPositions (const ros::Time &time, const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteInfo > &satellites)=0 |
| Compute ECEF positions of the satellites at the given time. More...
|
|
virtual std::string | getName () const =0 |
| Get human-readable name of the provider. More...
|
|
virtual cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition >, std::string > | getSkyView (const geographic_msgs::GeoPoint &position, const std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition > &positions, double elevationMaskDeg)=0 |
| Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More...
|
|
virtual std::pair< ros::Time, ros::Time > | getTimeRange () const =0 |
| Get the time range in which this provider can provide information. More...
|
|
virtual bool | isApproximate () const =0 |
| Return whether this provider works with approximate orbit data. More...
|
|
virtual bool | isPrecise () const =0 |
| Return whether this provider works with precise orbit data. More...
|
|
virtual bool | load (const ros::Time &startTime, const ros::Time &endTime, const cras::optional< bool > &precise)=0 |
| Load data for the given time instant. More...
|
|
virtual bool | load (const ros::Time &time, const cras::optional< bool > &precise)=0 |
| Load data for the given time instant. More...
|
|
| OrbitalDataProvider ()=default |
| Constructing the provider should be a cheap and fast operation, ideally without internet access. More...
|
|
virtual | ~OrbitalDataProvider ()=default |
|
Generic interface for various providers of GNSS satellite orbital data.
Definition at line 25 of file orbital_data_provider.h.
◆ OrbitalDataProvider()
gnss_info::OrbitalDataProvider::OrbitalDataProvider |
( |
| ) |
|
|
default |
Constructing the provider should be a cheap and fast operation, ideally without internet access.
◆ ~OrbitalDataProvider()
virtual gnss_info::OrbitalDataProvider::~OrbitalDataProvider |
( |
| ) |
|
|
virtualdefault |
◆ getConstellations()
virtual std::unordered_set<std::string> gnss_info::OrbitalDataProvider::getConstellations |
( |
| ) |
const |
|
pure virtual |
◆ getECEFPositions()
virtual cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatellitePosition>, std::string> gnss_info::OrbitalDataProvider::getECEFPositions |
( |
const ros::Time & |
time, |
|
|
const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteInfo > & |
satellites |
|
) |
| |
|
pure virtual |
Compute ECEF positions of the satellites at the given time.
- Parameters
-
[in] | time | The time to get positions for. |
[in] | satellites | The satellites to get positions for. |
- Returns
- ECEF positions of the satellites, or an error string.
Implemented in gnss_info::NavLibraryOrbitalDataProvider.
◆ getName()
virtual std::string gnss_info::OrbitalDataProvider::getName |
( |
| ) |
const |
|
pure virtual |
◆ getSkyView()
virtual cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatelliteSkyPosition>, std::string> gnss_info::OrbitalDataProvider::getSkyView |
( |
const geographic_msgs::GeoPoint & |
position, |
|
|
const std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition > & |
positions, |
|
|
double |
elevationMaskDeg |
|
) |
| |
|
pure virtual |
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.
- Parameters
-
[in] | position | Geographic position of the receiver. |
[in] | positions | ECEF positions of the satellites. |
[in] | elevationMaskDeg | Minimum elevation of satellites to return (in degrees). |
- Returns
- Sky view corresponding to the given configuration, or an error string.
Implemented in gnss_info::NavLibraryOrbitalDataProvider.
◆ getTimeRange()
virtual std::pair<ros::Time, ros::Time> gnss_info::OrbitalDataProvider::getTimeRange |
( |
| ) |
const |
|
pure virtual |
◆ isApproximate()
virtual bool gnss_info::OrbitalDataProvider::isApproximate |
( |
| ) |
const |
|
pure virtual |
◆ isPrecise()
virtual bool gnss_info::OrbitalDataProvider::isPrecise |
( |
| ) |
const |
|
pure virtual |
◆ load() [1/2]
Load data for the given time instant.
- Parameters
-
[in] | startTime | Earliest time to load. |
[in] | endTime | Latest time to load. |
[in] | precise | If set, selects whether precise or approximate data should be loaded. |
- Returns
- Whether loading succeeded.
Implemented in gnss_info::NavLibraryOrbitalDataProvider.
◆ load() [2/2]
virtual bool gnss_info::OrbitalDataProvider::load |
( |
const ros::Time & |
time, |
|
|
const cras::optional< bool > & |
precise |
|
) |
| |
|
pure virtual |
Load data for the given time instant.
- Parameters
-
[in] | time | The time to load at. |
[in] | precise | If set, selects whether precise or approximate data should be loaded. |
- Returns
- Whether loading succeeded.
Implemented in gnss_info::NavLibraryOrbitalDataProvider.
The documentation for this class was generated from the following file: