31template<
typename Derived>
32[[nodiscard]] Eigen::Vector3<typename Derived::Scalar>
34 const std::shared_ptr<const GnssObs>& gnssObs,
35 const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero())
37 Eigen::Vector3<typename Derived::Scalar> e_posARP = e_posMarker;
39 auto lla_posMarker = trafo::ecef2lla_WGS84(e_posMarker);
40 auto e_Quat_n = trafo::e_Quat_n(lla_posMarker(0), lla_posMarker(1));
42 if (gnssObs && gnssObs->receiverInfo)
44 Eigen::Vector3<typename Derived::Scalar> n_antennaDelta(
typename Derived::Scalar(0.0),
45 typename Derived::Scalar(0.0),
46 typename Derived::Scalar(-gnssObs->receiverInfo->get().antennaDeltaNEU.z()));
47 e_posARP +=
e_Quat_n * n_antennaDelta;
51 * Eigen::Vector3<typename Derived::Scalar>(
typename Derived::Scalar(0.0),
52 typename Derived::Scalar(0.0),
53 typename Derived::Scalar(hen_delta(0)));
61template<
typename Derived>
62[[nodiscard]] Eigen::Vector3<typename Derived::Scalar>
64 const std::shared_ptr<const GnssObs>& gnssObs,
65 const Eigen::Vector3d& hen_delta = Eigen::Vector3d::Zero())
67 Eigen::Vector3<typename Derived::Scalar> lla_posARP = lla_posMarker;
68 auto e_Quat_n = trafo::e_Quat_n(lla_posMarker(0), lla_posMarker(1));
69 if (gnssObs && gnssObs->receiverInfo)
71 lla_posARP.z() += gnssObs->receiverInfo->get().antennaDeltaNEU.z();
75 * Eigen::Vector3<typename Derived::Scalar>(
typename Derived::Scalar(0.0),
76 typename Derived::Scalar(0.0),
77 typename Derived::Scalar(hen_delta(0)));
87template<
typename Derived>
88[[nodiscard]] Eigen::Vector3<typename Derived::Scalar>
90 const std::shared_ptr<const GnssObs>& gnssObs,
92 const std::string& antennaType,
93 const std::string& nameId)
95 Eigen::Vector3<typename Derived::Scalar> e_posAPC = e_posARP;
98 if (
auto neu_antennaPhaseCenterOffset =
AntexReader::Get().getAntennaPhaseCenterOffsetToARP(antennaType,
103 Eigen::Vector3<typename Derived::Scalar> n_antennaPhaseCenterOffset(
typename Derived::Scalar(0.0),
104 typename Derived::Scalar(0.0),
105 typename Derived::Scalar(-neu_antennaPhaseCenterOffset->z()));
106 auto lla_posARP = trafo::ecef2lla_WGS84(e_posARP);
107 if (!std::isnan(lla_posARP(0)) && !std::isnan(lla_posARP(1)))
109 e_posAPC += trafo::e_Quat_n(lla_posARP(0), lla_posARP(1)) * n_antennaPhaseCenterOffset;
123template<
typename Derived>
124[[nodiscard]] Eigen::Vector3<typename Derived::Scalar>
126 const std::shared_ptr<const GnssObs>& gnssObs,
128 const std::string& antennaType,
129 const std::string& nameId)
131 Eigen::Vector3<typename Derived::Scalar> lla_posAPC = lla_posARP;
134 if (
auto neu_antennaPhaseCenterOffset =
140 lla_posAPC.z() += neu_antennaPhaseCenterOffset->z();
Eigen::Vector3< typename Derived::Scalar > e_posMarker2ARP(const Eigen::MatrixBase< Derived > &e_posMarker, const std::shared_ptr< const GnssObs > &gnssObs, const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero())
Converts a marker position to the antenna reference point position.
Definition Antenna.hpp:33
Eigen::Vector3< typename Derived::Scalar > lla_posARP2APC(const Eigen::MatrixBase< Derived > &lla_posARP, const std::shared_ptr< const GnssObs > &gnssObs, Frequency freq, const std::string &antennaType, const std::string &nameId)
Converts a antenna reference point position to the antenna phase center position.
Definition Antenna.hpp:125
Eigen::Vector3< typename Derived::Scalar > e_posARP2APC(const Eigen::MatrixBase< Derived > &e_posARP, const std::shared_ptr< const GnssObs > &gnssObs, Frequency freq, const std::string &antennaType, const std::string &nameId)
Converts a antenna reference point position position to the antenna phase center position.
Definition Antenna.hpp:89
Eigen::Vector3< typename Derived::Scalar > lla_posMarker2ARP(const Eigen::MatrixBase< Derived > &lla_posMarker, const std::shared_ptr< const GnssObs > &gnssObs, const Eigen::Vector3d &hen_delta=Eigen::Vector3d::Zero())
Converts a marker position to the antenna reference point position.
Definition Antenna.hpp:63
Transformation collection.
Eigen::Quaternion< Scalar > e_Quat_n(Scalar latitude, Scalar longitude)
Quaternion for rotations from navigation to Earth-fixed frame.
Definition CoordinateFrames.hpp:187
Frequency_
Enumerate for GNSS frequencies.
Definition Frequency.hpp:26
GNSS Observation messages.
static AntexReader & Get()
Get the static Instance of the reader.
Definition AntexReader.hpp:98
Frequency definition for different satellite systems.
Definition Frequency.hpp:59