0.3.0
Loading...
Searching...
No Matches
Receiver.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 <functional>
17#include <memory>
18#include <optional>
19
23
25
27
28namespace NAV
29{
30
32template<typename ReceiverType>
34{
38 explicit Receiver(ReceiverType type, const std::vector<SatelliteSystem>& satelliteSystems)
39 : type(type), recvClk(satelliteSystems) {}
40
42 ReceiverType type;
44 Eigen::Vector3d e_posMarker = Eigen::Vector3d::Zero();
46 Eigen::Vector3d lla_posMarker = Eigen::Vector3d::Zero();
48 Eigen::Vector3d e_vel = Eigen::Vector3d::Zero();
52 std::unordered_map<Frequency, UncertainValue<double>> interFrequencyBias;
54 std::shared_ptr<const GnssObs> gnssObs = nullptr;
55
58 [[nodiscard]] Eigen::Vector3d e_calcPosARP(const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero()) const
59 {
60 return trafo::e_posMarker2ARP(e_posMarker, gnssObs, hen_delta);
61 }
62
65 [[nodiscard]] Eigen::Vector3d lla_calcPosARP(const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero()) const
66 {
67 return trafo::lla_posMarker2ARP(lla_posMarker, gnssObs, hen_delta);
68 }
69
75 [[nodiscard]] Eigen::Vector3d e_calcPosAPC(Frequency freq,
76 const std::string& antennaType,
77 const std::string& nameId,
78 const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero()) const
79 {
80 return trafo::e_posARP2APC(e_calcPosARP(hen_delta), gnssObs, freq, antennaType, nameId);
81 }
82
88 [[nodiscard]] Eigen::Vector3d lla_calcPosAPC(Frequency freq,
89 const std::string& antennaType,
90 const std::string& nameId,
91 const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero()) const
92 {
93 return trafo::lla_posARP2APC(lla_calcPosARP(hen_delta), gnssObs, freq, antennaType, nameId);
94 }
95};
96
97} // namespace NAV
GNSS Antenna related transformations.
Frequency definition for different satellite systems.
GNSS Observation messages.
Receiver Clock information.
Values with an uncertainty (Standard Deviation)
Frequency definition for different satellite systems.
Definition Frequency.hpp:59
Receiver Clock information.
Definition ReceiverClock.hpp:32
Receiver information.
Definition Receiver.hpp:34
std::shared_ptr< const GnssObs > gnssObs
Latest GNSS observation.
Definition Receiver.hpp:54
Eigen::Vector3d lla_posMarker
Marker Position in LLA frame [rad, rad, m].
Definition Receiver.hpp:46
Receiver(ReceiverType type, const std::vector< SatelliteSystem > &satelliteSystems)
Constructor.
Definition Receiver.hpp:38
Eigen::Vector3d lla_calcPosAPC(Frequency freq, const std::string &antennaType, const std::string &nameId, const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero()) const
Marker position in LLA frame [rad, rad, m] (ARP + antenna phase center)
Definition Receiver.hpp:88
std::unordered_map< Frequency, UncertainValue< double > > interFrequencyBias
Inter frequency biases [s].
Definition Receiver.hpp:52
Eigen::Vector3d e_calcPosARP(const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero()) const
Antenna Reference Point position in ECEF frame [m] (Marker + antennaDeltaNEU)
Definition Receiver.hpp:58
Eigen::Vector3d e_calcPosAPC(Frequency freq, const std::string &antennaType, const std::string &nameId, const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero()) const
Marker position in ECEF frame [m] (ARP + antenna phase center)
Definition Receiver.hpp:75
Eigen::Vector3d lla_calcPosARP(const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero()) const
Antenna Reference Point position in LLA frame [rad, rad, m] (Marker + antennaDeltaNEU)
Definition Receiver.hpp:65
ReceiverType type
Receiver Type.
Definition Receiver.hpp:42
Eigen::Vector3d e_posMarker
Marker Position in ECEF frame [m].
Definition Receiver.hpp:44
Eigen::Vector3d e_vel
Velocity in ECEF frame [m/s].
Definition Receiver.hpp:48
ReceiverClock recvClk
Estimated receiver clock parameters.
Definition Receiver.hpp:50