0.2.0
Loading...
Searching...
No Matches
Satellite.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
13
14#pragma once
15
16#include <memory>
17#include <vector>
18
21#include "util/Eigen.hpp"
22
24
25namespace NAV
26{
27
30{
31 public:
34 [[nodiscard]] Orbit::Pos calcSatellitePos(const InsTime& transTime) const;
37 [[nodiscard]] Orbit::PosVel calcSatellitePosVel(const InsTime& transTime) const;
40 [[nodiscard]] Orbit::PosVelAccel calcSatellitePosVelAccel(const InsTime& transTime) const;
41
44 [[nodiscard]] double calcSatellitePositionVariance(const InsTime& recvTime) const;
45
50 [[nodiscard]] Clock::Corrections calcClockCorrections(const InsTime& recvTime, double dist, const Frequency& freq) const;
51
54 [[nodiscard]] bool isHealthy(const InsTime& recvTime) const;
55
58 void addSatNavData(const std::shared_ptr<SatNavData>& satNavData);
59
61 [[nodiscard]] const std::vector<std::shared_ptr<SatNavData>>& getNavigationData() const;
62
65 [[nodiscard]] std::shared_ptr<SatNavData> searchNavigationData(const InsTime& time) const;
66
67 private:
69 std::vector<std::shared_ptr<SatNavData>> m_navigationData;
70};
71
72} // namespace NAV
Vector space operations.
The class is responsible for all time-related tasks.
Satellite Navigation data (to calculate SatNavData and clock)
Structs identifying a unique satellite.
Frequency definition for different satellite systems.
Definition Frequency.hpp:59
The class is responsible for all time-related tasks.
Definition InsTime.hpp:667
Satellite class.
Definition Satellite.hpp:30
Orbit::PosVelAccel calcSatellitePosVelAccel(const InsTime &transTime) const
Calculates position, velocity and acceleration of the satellite at transmission time.
const std::vector< std::shared_ptr< SatNavData > > & getNavigationData() const
Get the navigation data list.
double calcSatellitePositionVariance(const InsTime &recvTime) const
Calculates the Variance of the satellite position in [m].
void addSatNavData(const std::shared_ptr< SatNavData > &satNavData)
Adds the provided data into the internal time sorted list.
Orbit::Pos calcSatellitePos(const InsTime &transTime) const
Calculates position of the satellite at transmission time.
Clock::Corrections calcClockCorrections(const InsTime &recvTime, double dist, const Frequency &freq) const
Calculates clock bias and drift of the satellite.
bool isHealthy(const InsTime &recvTime) const
Checks whether the signal is healthy.
std::shared_ptr< SatNavData > searchNavigationData(const InsTime &time) const
Searches the closest navigation data to the given time.
Orbit::PosVel calcSatellitePosVel(const InsTime &transTime) const
Calculates position and velocity of the satellite at transmission time.
Satellite clock corrections.
Definition Clock.hpp:28
Satellite Position, Velocity and Acceleration.
Definition Orbit.hpp:39
Satellite Position and Velocity.
Definition Orbit.hpp:33
Satellite Position.
Definition Orbit.hpp:28