0.2.0
Loading...
Searching...
No Matches
InsGnssTCKFSolution.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
17
18namespace NAV
19{
22{
23 public:
26 [[nodiscard]] static std::string type()
27 {
28 return "InsGnssTCKFSolution";
29 }
30
33 [[nodiscard]] static std::vector<std::string> parentTypes()
34 {
36 parent.push_back(InsGnssLCKFSolution::type());
37 return parent;
38 }
39
41 [[nodiscard]] static std::vector<std::string> GetStaticDataDescriptors()
42 {
44 desc.reserve(GetStaticDescriptorCount());
45 desc.emplace_back("Receiver clock offset [m]");
46 desc.emplace_back("Receiver clock drift [m/s]");
47 desc.emplace_back("Receiver clock offset [s]");
48 desc.emplace_back("Receiver clock drift [s/s]");
49 return desc;
50 }
51
53 [[nodiscard]] static constexpr size_t GetStaticDescriptorCount() { return 74; }
54
56 [[nodiscard]] std::vector<std::string> staticDataDescriptors() const override { return GetStaticDataDescriptors(); }
57
59 [[nodiscard]] size_t staticDescriptorCount() const override { return GetStaticDescriptorCount(); }
60
64 [[nodiscard]] std::optional<double> getValueAt(size_t idx) const override
65 {
67
68 switch (idx)
69 {
70 case 0: // Latitude [deg]
71 case 1: // Longitude [deg]
72 case 2: // Altitude [m]
73 case 3: // North/South [m]
74 case 4: // East/West [m]
75 case 5: // X-ECEF [m]
76 case 6: // Y-ECEF [m]
77 case 7: // Z-ECEF [m]
78 case 8: // X-ECEF StDev [m]
79 case 9: // Y-ECEF StDev [m]
80 case 10: // Z-ECEF StDev [m]
81 case 11: // XY-ECEF StDev [m]
82 case 12: // XZ-ECEF StDev [m]
83 case 13: // YZ-ECEF StDev [m]
84 case 14: // North StDev [m]
85 case 15: // East StDev [m]
86 case 16: // Down StDev [m]
87 case 17: // NE StDev [m]
88 case 18: // ND StDev [m]
89 case 19: // ED StDev [m]
90 case 20: // Velocity norm [m/s]
91 case 21: // X velocity ECEF [m/s]
92 case 22: // Y velocity ECEF [m/s]
93 case 23: // Z velocity ECEF [m/s]
94 case 24: // North velocity [m/s]
95 case 25: // East velocity [m/s]
96 case 26: // Down velocity [m/s]
97 case 27: // X velocity ECEF StDev [m/s]
98 case 28: // Y velocity ECEF StDev [m/s]
99 case 29: // Z velocity ECEF StDev [m/s]
100 case 30: // XY velocity StDev [m]
101 case 31: // XZ velocity StDev [m]
102 case 32: // YZ velocity StDev [m]
103 case 33: // North velocity StDev [m/s]
104 case 34: // East velocity StDev [m/s]
105 case 35: // Down velocity StDev [m/s]
106 case 36: // NE velocity StDev [m]
107 case 37: // ND velocity StDev [m]
108 case 38: // ED velocity StDev [m]
109 case 39: // Roll [deg]
110 case 40: // Pitch [deg]
111 case 41: // Yaw [deg]
112 case 42: // Quaternion::w
113 case 43: // Quaternion::x
114 case 44: // Quaternion::y
115 case 45: // Quaternion::z
116 case 46: // KF State Roll error [deg]
117 case 47: // KF State Pitch error [deg]
118 case 48: // KF State Yaw error [deg]
119 case 49: // KF State Position North error [deg]
120 case 50: // KF State Position East error [deg]
121 case 51: // KF State Position Down error [m]
122 case 52: // KF State Velocity North error [m/s]
123 case 53: // KF State Velocity East error [m/s]
124 case 54: // KF State Velocity Down error [m/s]
125 case 55: // KF State Alpha_eb [deg]
126 case 56: // KF State Beta_eb [deg]
127 case 57: // KF State Gamma_eb [deg]
128 case 58: // KF State Position ECEF X error [m]
129 case 59: // KF State Position ECEF Y error [m]
130 case 60: // KF State Position ECEF Z error [m]
131 case 61: // KF State Velocity ECEF X error [m/s]
132 case 62: // KF State Velocity ECEF Y error [m/s]
133 case 63: // KF State Velocity ECEF Z error [m/s]
134 case 64: // Accelerometer bias b_X [m/s^2]
135 case 65: // Accelerometer bias b_Y [m/s^2]
136 case 66: // Accelerometer bias b_Z [m/s^2]
137 case 67: // Gyroscope bias b_X [rad/s]
138 case 68: // Gyroscope bias b_Y [rad/s]
139 case 69: // Gyroscope bias b_Z [rad/s]
141 case 70: // Receiver clock offset [m]
142 return recvClkOffset;
143 case 71: // Receiver clock drift [m/s]
144 return recvClkDrift;
145 case 72: // Receiver clock offset [s]
147 case 73: // Receiver clock drift [s/s]
149 default:
150 return std::nullopt;
151 }
152 }
153
156
158 double recvClkDrift{};
159};
160
161} // namespace NAV
#define INS_ASSERT(_EXPR)
Assert function wrapper.
Definition Assert.h:19
Loosely-coupled Kalman Filter INS/GNSS errors.
Constants.
Definition Constants.hpp:26
Loosely-coupled Kalman Filter INS/GNSS errors.
Definition InsGnssLCKFSolution.hpp:25
static std::vector< std::string > GetStaticDataDescriptors()
Returns a vector of data descriptors.
Definition InsGnssLCKFSolution.hpp:44
static std::string type()
Returns the type of the data class.
Definition InsGnssLCKFSolution.hpp:29
std::optional< double > getValueAt(size_t idx) const override
Get the value at the index.
Definition InsGnssLCKFSolution.hpp:84
static std::vector< std::string > parentTypes()
Returns the parent types of the data class.
Definition InsGnssLCKFSolution.hpp:36
Tightly-coupled Kalman Filter INS/GNSS errors.
Definition InsGnssTCKFSolution.hpp:22
static std::vector< std::string > GetStaticDataDescriptors()
Returns a vector of data descriptors.
Definition InsGnssTCKFSolution.hpp:41
static constexpr size_t GetStaticDescriptorCount()
Get the amount of descriptors.
Definition InsGnssTCKFSolution.hpp:53
static std::string type()
Returns the type of the data class.
Definition InsGnssTCKFSolution.hpp:26
double recvClkDrift
δϱ_dot The receiver clock drift in [m/s]
Definition InsGnssTCKFSolution.hpp:158
std::vector< std::string > staticDataDescriptors() const override
Returns a vector of data descriptors.
Definition InsGnssTCKFSolution.hpp:56
double recvClkOffset
δϱ The receiver clock offset in [m]
Definition InsGnssTCKFSolution.hpp:155
static std::vector< std::string > parentTypes()
Returns the parent types of the data class.
Definition InsGnssTCKFSolution.hpp:33
std::optional< double > getValueAt(size_t idx) const override
Get the value at the index.
Definition InsGnssTCKFSolution.hpp:64
size_t staticDescriptorCount() const override
Get the amount of descriptors.
Definition InsGnssTCKFSolution.hpp:59