GNSS helper functions.
More...
Go to the source code of this file.
|
double | NAV::calcSagnacCorrection (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_satPos) |
| Calculates the Earth rotation/Sagnac correction.
|
|
double | NAV::calcSagnacRateCorrection (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_satPos, const Eigen::Vector3d &e_velAnt, const Eigen::Vector3d &e_satVel) |
| Calculates the Range-rate Earth rotation/Sagnac correction.
|
|
double | NAV::calcSatAzimuth (const Eigen::Vector3d &n_lineOfSightUnitVector) |
| Calculates the azimuth of the satellite from the antenna.
|
|
double | NAV::calcSatElevation (const Eigen::Vector3d &n_lineOfSightUnitVector) |
| Calculates the elevation of the satellite from the antenna.
|
|
double | NAV::doppler2rangeRate (double doppler, Frequency freq, int8_t num) |
| Transforms a doppler-shift into a range-rate.
|
|
Eigen::Vector3d | NAV::e_calcLineOfSightUnitVector (const Eigen::Vector3d &e_posAnt, const Eigen::Vector3d &e_posSat) |
| Calculates the line-of-sight unit vector from the user antenna to the satellite.
|
|
double | NAV::galSisaIdx2Val (uint8_t idx) |
| Converts a GALILEO SISA (Signal in space accuracy) index to it's value.
|
|
uint8_t | NAV::galSisaVal2Idx (double val) |
| Converts a GALILEO SISA (Signal in space accuracy) value to it's index.
|
|
double | NAV::gpsUraIdx2Val (uint8_t idx) |
| Converts a GPS URA (user range accuracy) index to it's value.
|
|
uint8_t | NAV::gpsUraVal2Idx (double val) |
| Converts a GPS URA (user range accuracy) value to it's index.
|
|
double | NAV::rangeRate2doppler (double rangeRate, Frequency freq, int8_t num) |
| Transforms a range-rate into a doppler-shift.
|
|
double | NAV::ratioFreqSquared (Frequency f1, Frequency f2, int8_t num1, int8_t num2) |
| Calculates the ration of the frequencies squared γ
|
|
◆ calcSagnacCorrection()
double NAV::calcSagnacCorrection |
( |
const Eigen::Vector3d & | e_posAnt, |
|
|
const Eigen::Vector3d & | e_satPos ) |
Calculates the Earth rotation/Sagnac correction.
- Parameters
-
[in] | e_posAnt | Position of the user antenna in ECEF frame coordinates |
[in] | e_satPos | Position of the satellite in ECEF frame coordinates |
- Returns
- Earth rotation/Sagnac correction [m]
- Note
- See [43] Springer Handbook ch. 19.1.1, eq. 19.7, p. 562
◆ calcSagnacRateCorrection()
double NAV::calcSagnacRateCorrection |
( |
const Eigen::Vector3d & | e_posAnt, |
|
|
const Eigen::Vector3d & | e_satPos, |
|
|
const Eigen::Vector3d & | e_velAnt, |
|
|
const Eigen::Vector3d & | e_satVel ) |
Calculates the Range-rate Earth rotation/Sagnac correction.
- Parameters
-
[in] | e_posAnt | Position of the user antenna in ECEF frame coordinates |
[in] | e_satPos | Position of the satellite in ECEF frame coordinates |
[in] | e_velAnt | Velocity of the user antenna in ECEF frame coordinates |
[in] | e_satVel | Velocity of the satellite in ECEF frame coordinates |
- Returns
- Range-rate Earth rotation/Sagnac correction [m/s]
- Note
- See [17] Groves ch. 8.5.3, eq. 8.46, p. 342
◆ calcSatAzimuth()
double NAV::calcSatAzimuth |
( |
const Eigen::Vector3d & | n_lineOfSightUnitVector | ) |
|
Calculates the azimuth of the satellite from the antenna.
- Parameters
-
[in] | n_lineOfSightUnitVector | Line-of-sight unit vector from the antenna to the satellite in NED frame coordinates |
- Returns
- Azimuth [rad]
- Note
- See [17] Groves, ch. 8.5.4, eq. 8.57, p. 344
◆ calcSatElevation()
double NAV::calcSatElevation |
( |
const Eigen::Vector3d & | n_lineOfSightUnitVector | ) |
|
Calculates the elevation of the satellite from the antenna.
- Parameters
-
[in] | n_lineOfSightUnitVector | Line-of-sight unit vector from the antenna to the satellite in NED frame coordinates |
- Returns
- Elevation [rad]
- Note
- See [17] Groves, ch. 8.5.4, eq. 8.57, p. 344
◆ doppler2rangeRate()
double NAV::doppler2rangeRate |
( |
double | doppler, |
|
|
Frequency | freq, |
|
|
int8_t | num ) |
Transforms a doppler-shift into a range-rate.
- Parameters
-
[in] | doppler | The doppler-shift to transform [Hz] |
[in] | freq | Frequency |
[in] | num | Frequency number. Only used for GLONASS G1 and G2 |
- Returns
- The corresponding range-rate [m/s]
- Note
- See [17] Groves, ch. 9.2.7, eq. 9.70, p. 388
◆ e_calcLineOfSightUnitVector()
Eigen::Vector3d NAV::e_calcLineOfSightUnitVector |
( |
const Eigen::Vector3d & | e_posAnt, |
|
|
const Eigen::Vector3d & | e_posSat ) |
Calculates the line-of-sight unit vector from the user antenna to the satellite.
- Parameters
-
[in] | e_posAnt | Position of the user antenna in ECEF frame coordinates |
[in] | e_posSat | Position of the satellite in ECEF frame coordinates |
- Returns
- The line-of-sight unit vector in ECEF frame coordinates
- Note
- See [17] Groves, ch. 8.5.3, eq. 8.41, p. 341
◆ galSisaIdx2Val()
double NAV::galSisaIdx2Val |
( |
uint8_t | idx | ) |
|
Converts a GALILEO SISA (Signal in space accuracy) index to it's value.
- Parameters
-
- Returns
- SISA value in [m]
- Note
- See [13] GAL ICD ch. 5.1.12, p.58
◆ galSisaVal2Idx()
uint8_t NAV::galSisaVal2Idx |
( |
double | val | ) |
|
Converts a GALILEO SISA (Signal in space accuracy) value to it's index.
- Parameters
-
- Returns
- The SISA index
- Note
- See [13] GAL ICD ch. 5.1.12, p.58
◆ gpsUraIdx2Val()
double NAV::gpsUraIdx2Val |
( |
uint8_t | idx | ) |
|
Converts a GPS URA (user range accuracy) index to it's value.
- Parameters
-
- Returns
- URA value in [m]
- Note
- See [20] GPS ICD ch. 20.3.3.3.1.3, p.92ff
◆ gpsUraVal2Idx()
uint8_t NAV::gpsUraVal2Idx |
( |
double | val | ) |
|
Converts a GPS URA (user range accuracy) value to it's index.
- Parameters
-
- Returns
- The URA index
- Note
- See [20] GPS ICD ch. 20.3.3.3.1.3, p.92ff
◆ rangeRate2doppler()
double NAV::rangeRate2doppler |
( |
double | rangeRate, |
|
|
Frequency | freq, |
|
|
int8_t | num ) |
Transforms a range-rate into a doppler-shift.
- Parameters
-
[in] | rangeRate | The range-rate to transform [m/s] |
[in] | freq | Frequency |
[in] | num | Frequency number. Only used for GLONASS G1 and G2 |
- Returns
- The corresponding doppler-shift [Hz]
- Note
- See [17] Groves, ch. 9.2.7, eq. 9.70, p. 388
◆ ratioFreqSquared()
Calculates the ration of the frequencies squared γ
\begin{equation} \label{eq:eq-GNSS-freqRatio}
\gamma = (f_1 / f_2)^2
\end{equation}
- Parameters
-
[in] | f1 | First frequency (usually L1) |
[in] | f2 | Second frequency (usually L2) |
[in] | num1 | First frequency number. Only used for GLONASS G1 and G2 |
[in] | num2 | Second frequency number. Only used for GLONASS G1 and G2 |
- Returns
- The ratio (f1/f2)^2 [-]
- Note
- See [20] IS-GPS-200 ch. 20.3.3.3.3.2 p.99