Go to the documentation of this file.
7 #include <unordered_map>
8 #include <unordered_set>
13 #include <geographic_msgs/GeoPoint.h>
14 #include <gnss_info_msgs/SatelliteInfo.h>
15 #include <gnss_info_msgs/SatellitePosition.h>
16 #include <gnss_info_msgs/SatelliteSkyPosition.h>
38 virtual std::string
getName()
const = 0;
56 virtual std::pair<ros::Time, ros::Time>
getTimeRange()
const = 0;
70 virtual bool load(
const ros::Time&
time,
const cras::optional<bool>& precise) = 0;
79 virtual bool load(
const ros::Time& startTime,
const ros::Time& endTime,
const cras::optional<bool>& precise) = 0;
87 virtual cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatellitePosition>, std::string>
89 const std::unordered_map<uint32_t, gnss_info_msgs::SatelliteInfo>& satellites) = 0;
98 virtual cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatelliteSkyPosition>, std::string>
getSkyView(
99 const geographic_msgs::GeoPoint& position,
100 const std::unordered_map<uint32_t, gnss_info_msgs::SatellitePosition>& positions,
101 double elevationMaskDeg) = 0;
virtual std::pair< ros::Time, ros::Time > getTimeRange() const =0
Get the time range in which this provider can provide information.
virtual ~OrbitalDataProvider()=default
virtual bool isPrecise() const =0
Return whether this provider works with precise orbit data.
virtual std::string getName() const =0
Get human-readable name of the provider.
virtual std::unordered_set< std::string > getConstellations() const =0
Get the constellations handled by this provider.
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.
virtual bool load(const ros::Time &time, const cras::optional< bool > &precise)=0
Load data for the given time instant.
OrbitalDataProvider()=default
Constructing the provider should be a cheap and fast operation, ideally without internet access.
virtual bool isApproximate() const =0
Return whether this provider works with approximate orbit data.
Generic interface for various providers of GNSS satellite orbital data.
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.
gnss_info
Author(s): Martin Pecka
autogenerated on Fri Nov 24 2023 03:50:35