0.4.1
Loading...
Searching...
No Matches
PinData.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
9/// @file PinData.hpp
10/// @brief Information about a sensor which is connected to a certain pin
11/// @author M. Maier (marcel.maier@ins.uni-stuttgart.de)
12/// @date 2024-04-04
13
14#pragma once
15
16#include "util/Eigen.hpp"
17
18namespace NAV
19{
20
21/// @brief Information about a sensor which is connected to a certain pin (i.e. sensor characteristics defined in GUI)
22struct PinData
23{
24 // ------------------------------------- State and variance units ----------------------------------------
25 /// Possible Units for the angular rate
26 enum class AngRateUnit : uint8_t
27 {
28 deg_s, ///< in [deg/s, deg/s, deg/s]
29 rad_s, ///< in [rad/s, rad/s, rad/s]
30 };
31
32 /// Possible Units for the acceleration
33 enum class AccelerationUnit : uint8_t
34 {
35 m_s2, ///< in [m/s², m/s², m/s²]
36 };
37
38 /// Possible Units for the variance for the process noise of the angular rate (standard deviation σ or Variance σ²)
39 enum class AngRateVarianceUnit : uint8_t
40 {
41 rad2_s2, ///< Variance [rad²/s², rad²/s², rad²/s²]
42 rad_s, ///< Standard deviation [rad/s, rad/s, rad/s]
43 deg2_s2, ///< Variance [deg²/s², deg²/s², deg²/s²]
44 deg_s, ///< Standard deviation [deg/s, deg/s, deg/s]
45 };
46
47 /// Possible Units for the variance for the process noise of the acceleration (standard deviation σ or Variance σ²)
48 enum class AccelerationVarianceUnit : uint8_t
49 {
50 m2_s4, ///< Variance [(m^2)/(s^4), (m^2)/(s^4), (m^2)/(s^4)]
51 m_s2, ///< Standard deviation [m/s², m/s², m/s²]
52 };
53
54 // ---------------------------------------- Unit initialization ------------------------------------------
55
56 /// GUI selection for the unit of the initial angular rate bias
58 /// GUI selection for the unit of the initial angular acceleration bias
60
61 /// Gui selection for the Unit of the initial covariance for the angular rate
63 /// Gui selection for the Unit of the initial covariance for the acceleration
65 /// Gui selection for the Unit of the initial covariance for the angular rate biases
67 /// Gui selection for the Unit of the initial covariance for the acceleration biases
69 /// Gui selection for the Unit of the process noise of the angular rate
71 /// Gui selection for the Unit of the process noise of the acceleration
73 /// Gui selection for the unit of the angular rate's measurement uncertainty
75 /// Gui selection for the unit of the acceleration's measurement uncertainty
77
78 // --------------------------------------- State initialization ------------------------------------------
79
80 /// GUI selection for the initial angular rate bias
81 Eigen::Vector3d initAngularRateBias{ 0.0, 0.0, 0.0 };
82 /// GUI selection for the initial acceleration bias
83 Eigen::Vector3d initAccelerationBias{ 0.0, 0.0, 0.0 };
84
85 /// GUI selection for the initial covariance diagonal values for angular rate (standard deviation σ or Variance σ²)
86 Eigen::Vector3d initCovarianceAngularRate{ 1.0, 1.0, 1.0 };
87 /// GUI selection for the initial covariance diagonal values for acceleration (standard deviation σ or Variance σ²)
88 Eigen::Vector3d initCovarianceAcceleration{ 0.1, 0.1, 0.1 };
89 /// GUI selection for the initial covariance diagonal values for angular rate biases (standard deviation σ or Variance σ²)
90 Eigen::Vector3d initCovarianceBiasAngRate{ 1.0, 1.0, 1.0 };
91 /// GUI selection for the initial covariance diagonal values for acceleration biases (standard deviation σ or Variance σ²)
92 Eigen::Vector3d initCovarianceBiasAcc{ 0.1, 0.1, 0.1 };
93 /// GUI selection for the process noise of the angular rate diagonal values (standard deviation σ or Variance σ²)
94 Eigen::Vector3d varBiasAngRateNoise = { 1.0, 1.0, 1.0 };
95 /// GUI selection for the process noise of the acceleration diagonal values (standard deviation σ or Variance σ²)
96 Eigen::Vector3d varBiasAccelerationNoise{ 0.1, 0.1, 0.1 };
97 /// Gui selection for the angular rate measurement uncertainty diagonal values
98 Eigen::Vector3d measurementUncertaintyAngularRate{ 1.0, 1.0, 1.0 };
99 /// Gui selection for the acceleration measurement uncertainty diagonal values
100 Eigen::Vector3d measurementUncertaintyAcceleration{ 0.1, 0.1, 0.1 };
101};
102
103/// @brief Sensor information specific to the IRW-KF
105{
106 // ----------------------------------- State and variance units --------------------------------------
107 /// Possible Units for the angular acceleration
108 enum class AngularAccUnit : uint8_t
109 {
110 deg_s2, ///< in [deg/s², deg/s², deg/s²]
111 rad_s2, ///< in [rad/s², rad/s², rad/s²]
112 };
113 /// Possible Units for the jerk
114 enum class JerkUnit : uint8_t
115 {
116 m_s3, ///< in [m/s³, m/s³, m/s³]
117 };
118
119 /// Possible Units for the variance for the process noise of the angular acceleration (standard deviation σ or Variance σ²)
120 enum class AngularAccVarianceUnit : uint8_t
121 {
122 rad2_s4, ///< Variance [(rad^2)/(s^4), (rad^2)/(s^4), (rad^2)/(s^4)]
123 rad_s2, ///< Standard deviation [rad/s², rad/s², rad/s²]
124 deg2_s4, ///< Variance [(deg^2)/(s^4), (deg^2)/(s^4), (deg^2)/(s^4)]
125 deg_s2, ///< Standard deviation [deg/s², deg/s², deg/s²]
126 };
127 /// Possible Units for the variance for the process noise of the jerk (standard deviation σ or Variance σ²)
128 enum class JerkVarianceUnit : uint8_t
129 {
130 m2_s6, ///< Variance [(m^2)/(s^6), (m^2)/(s^6), (m^2)/(s^6)]
131 m_s3, ///< Standard deviation [m/s³, m/s³, m/s³]
132 };
133
134 // -------------------------------------- Unit initialization ----------------------------------------
135
136 /// Gui selection for the unit of the initial angular rate
138 /// Gui selection for the unit of the initial angular acceleration
140 /// Gui selection for the unit of the initial acceleration
142 /// Gui selection for the Unit of the initial jerk
144
145 /// Gui selection for the unit of the initial covariance for the angular acceleration
147 /// Gui selection for the unit of the initial covariance for the jerk
149
150 /// Gui selection for the unit of the angular acceleration process noise
152 /// Gui selection for the unit of the jerk process noise
154
155 // ------------------------------------- State initialization ----------------------------------------
156
157 /// GUI selection for the initial angular rate
158 Eigen::Vector3d initAngularRate{ 0.0, 0.0, 0.0 };
159 /// GUI selection for the initial angular acceleration
160 Eigen::Vector3d initAngularAcc{ 0.0, 0.0, 0.0 };
161 /// GUI selection for the initial acceleration
162 Eigen::Vector3d initAcceleration{ 0.0, 0.0, 0.0 };
163 /// GUI selection for the initial jerk
164 Eigen::Vector3d initJerk{ 0.0, 0.0, 0.0 };
165
166 /// GUI selection for the initial covariance diagonal values for angular acceleration (standard deviation σ or Variance σ²)
167 Eigen::Vector3d initCovarianceAngularAcc{ 0.1, 0.1, 0.1 };
168 /// GUI selection for the initial covariance diagonal values for jerk (standard deviation σ or Variance σ²)
169 Eigen::Vector3d initCovarianceJerk{ 0.1, 0.1, 0.1 };
170
171 /// GUI selection for the angular acceleration process noise diagonal values
172 Eigen::Vector3d varAngularAccNoise{ 0.1, 0.1, 0.1 };
173 /// GUI selection for the jerk process noise diagonal values
174 Eigen::Vector3d varJerkNoise{ 0.1, 0.1, 0.1 };
175};
176
177/// @brief Sensor information specific to the Bspline-KF
179{
180 // -------------------------------------- Unit initialization ----------------------------------------
181
182 /// Gui selection for the unit of the initial coefficients of the angular rate B-splines
184 /// Gui selection for the unit of the initial coefficients of the acceleration B-splines
186
187 /// Gui selection for the unit of the initial covariance for the coefficients of angular rate
189 /// Gui selection for the unit of the initial covariance for the coefficients of acceleration
191
192 /// GUI selection for the B-spline coeffs of the angular rate process noise (diagonal values)
194 /// GUI selection for the B-spline coeffs of the acceleration process noise (diagonal values)
196
197 // ------------------------------------- State initialization ----------------------------------------
198
199 /// GUI selection for the initial B-spline coefficients of the angular rate
200 Eigen::VectorXd initCoeffsAngRate = Eigen::VectorXd::Zero(9);
201 /// GUI selection for the initial B-spline coefficients of the acceleration
202 Eigen::VectorXd initCoeffsAccel = Eigen::VectorXd::Zero(9);
203
204 /// GUI selection for the initial covariance of the B-spline coefficients of the angular rate
205 Eigen::VectorXd initCovarianceCoeffsAngRate = Eigen::VectorXd::Ones(9);
206 /// GUI selection for the initial covariance of the B-spline coefficients of the acceleration
207 Eigen::VectorXd initCovarianceCoeffsAccel = Eigen::VectorXd::Ones(9);
208
209 /// GUI selection for the coeffs of the angular rate process noise (diagonal values)
210 Eigen::VectorXd varCoeffsAngRateNoise = Eigen::VectorXd::Ones(9) * 0.1;
211 /// GUI selection for the coeffs of the acceleration process noise (diagonal values)
212 Eigen::VectorXd varCoeffsAccelNoise = Eigen::VectorXd::Ones(9) * 0.1;
213};
214} // namespace NAV
Vector space operations.
Sensor information specific to the Bspline-KF.
Definition PinData.hpp:179
Eigen::VectorXd initCovarianceCoeffsAngRate
GUI selection for the initial covariance of the B-spline coefficients of the angular rate.
Definition PinData.hpp:205
PinData::AccelerationUnit initCoeffsAccelUnit
Gui selection for the unit of the initial coefficients of the acceleration B-splines.
Definition PinData.hpp:185
PinData::AccelerationVarianceUnit initCovarianceCoeffsAccelUnit
Gui selection for the unit of the initial covariance for the coefficients of acceleration.
Definition PinData.hpp:190
Eigen::VectorXd initCoeffsAngRate
GUI selection for the initial B-spline coefficients of the angular rate.
Definition PinData.hpp:200
PinData::AngRateVarianceUnit initCovarianceCoeffsAngRateUnit
Gui selection for the unit of the initial covariance for the coefficients of angular rate.
Definition PinData.hpp:188
Eigen::VectorXd varCoeffsAccelNoise
GUI selection for the coeffs of the acceleration process noise (diagonal values)
Definition PinData.hpp:212
Eigen::VectorXd initCoeffsAccel
GUI selection for the initial B-spline coefficients of the acceleration.
Definition PinData.hpp:202
Eigen::VectorXd initCovarianceCoeffsAccel
GUI selection for the initial covariance of the B-spline coefficients of the acceleration.
Definition PinData.hpp:207
Eigen::VectorXd varCoeffsAngRateNoise
GUI selection for the coeffs of the angular rate process noise (diagonal values)
Definition PinData.hpp:210
PinData::AngRateVarianceUnit varCoeffsAngRateUnit
GUI selection for the B-spline coeffs of the angular rate process noise (diagonal values)
Definition PinData.hpp:193
PinData::AccelerationVarianceUnit varCoeffsAccelUnit
GUI selection for the B-spline coeffs of the acceleration process noise (diagonal values)
Definition PinData.hpp:195
PinData::AngRateUnit initCoeffsAngularRateUnit
Gui selection for the unit of the initial coefficients of the angular rate B-splines.
Definition PinData.hpp:183
Sensor information specific to the IRW-KF.
Definition PinData.hpp:105
JerkVarianceUnit initCovarianceJerkUnit
Gui selection for the unit of the initial covariance for the jerk.
Definition PinData.hpp:148
PinData::AccelerationUnit initAccelerationUnit
Gui selection for the unit of the initial acceleration.
Definition PinData.hpp:141
Eigen::Vector3d initAcceleration
GUI selection for the initial acceleration.
Definition PinData.hpp:162
AngularAccUnit initAngularAccUnit
Gui selection for the unit of the initial angular acceleration.
Definition PinData.hpp:139
Eigen::Vector3d initCovarianceAngularAcc
GUI selection for the initial covariance diagonal values for angular acceleration (standard deviation...
Definition PinData.hpp:167
Eigen::Vector3d initAngularRate
GUI selection for the initial angular rate.
Definition PinData.hpp:158
Eigen::Vector3d initCovarianceJerk
GUI selection for the initial covariance diagonal values for jerk (standard deviation σ or Variance σ...
Definition PinData.hpp:169
Eigen::Vector3d varJerkNoise
GUI selection for the jerk process noise diagonal values.
Definition PinData.hpp:174
AngularAccVarianceUnit varAngularAccNoiseUnit
Gui selection for the unit of the angular acceleration process noise.
Definition PinData.hpp:151
Eigen::Vector3d initJerk
GUI selection for the initial jerk.
Definition PinData.hpp:164
Eigen::Vector3d varAngularAccNoise
GUI selection for the angular acceleration process noise diagonal values.
Definition PinData.hpp:172
JerkVarianceUnit
Possible Units for the variance for the process noise of the jerk (standard deviation σ or Variance σ...
Definition PinData.hpp:129
@ m2_s6
Variance [(m^2)/(s^6), (m^2)/(s^6), (m^2)/(s^6)].
Definition PinData.hpp:130
@ m_s3
Standard deviation [m/s³, m/s³, m/s³].
Definition PinData.hpp:131
JerkUnit
Possible Units for the jerk.
Definition PinData.hpp:115
@ m_s3
in [m/s³, m/s³, m/s³]
Definition PinData.hpp:116
AngularAccVarianceUnit initCovarianceAngularAccUnit
Gui selection for the unit of the initial covariance for the angular acceleration.
Definition PinData.hpp:146
PinData::AngRateUnit initAngularRateUnit
Gui selection for the unit of the initial angular rate.
Definition PinData.hpp:137
Eigen::Vector3d initAngularAcc
GUI selection for the initial angular acceleration.
Definition PinData.hpp:160
JerkVarianceUnit varJerkNoiseUnit
Gui selection for the unit of the jerk process noise.
Definition PinData.hpp:153
AngularAccUnit
Possible Units for the angular acceleration.
Definition PinData.hpp:109
@ deg_s2
in [deg/s², deg/s², deg/s²]
Definition PinData.hpp:110
@ rad_s2
in [rad/s², rad/s², rad/s²]
Definition PinData.hpp:111
JerkUnit initJerkUnit
Gui selection for the Unit of the initial jerk.
Definition PinData.hpp:143
AngularAccVarianceUnit
Possible Units for the variance for the process noise of the angular acceleration (standard deviation...
Definition PinData.hpp:121
@ deg_s2
Standard deviation [deg/s², deg/s², deg/s²].
Definition PinData.hpp:125
@ deg2_s4
Variance [(deg^2)/(s^4), (deg^2)/(s^4), (deg^2)/(s^4)].
Definition PinData.hpp:124
@ rad2_s4
Variance [(rad^2)/(s^4), (rad^2)/(s^4), (rad^2)/(s^4)].
Definition PinData.hpp:122
Information about a sensor which is connected to a certain pin (i.e. sensor characteristics defined i...
Definition PinData.hpp:23
AccelerationVarianceUnit measurementUncertaintyAccelerationUnit
Gui selection for the unit of the acceleration's measurement uncertainty.
Definition PinData.hpp:76
Eigen::Vector3d initCovarianceAngularRate
GUI selection for the initial covariance diagonal values for angular rate (standard deviation σ or Va...
Definition PinData.hpp:86
Eigen::Vector3d measurementUncertaintyAngularRate
Gui selection for the angular rate measurement uncertainty diagonal values.
Definition PinData.hpp:98
AccelerationVarianceUnit
Possible Units for the variance for the process noise of the acceleration (standard deviation σ or Va...
Definition PinData.hpp:49
@ m2_s4
Variance [(m^2)/(s^4), (m^2)/(s^4), (m^2)/(s^4)].
Definition PinData.hpp:50
@ m_s2
Standard deviation [m/s², m/s², m/s²].
Definition PinData.hpp:51
AccelerationVarianceUnit initCovarianceBiasAccUnit
Gui selection for the Unit of the initial covariance for the acceleration biases.
Definition PinData.hpp:68
Eigen::Vector3d varBiasAngRateNoise
GUI selection for the process noise of the angular rate diagonal values (standard deviation σ or Vari...
Definition PinData.hpp:94
Eigen::Vector3d initCovarianceBiasAcc
GUI selection for the initial covariance diagonal values for acceleration biases (standard deviation ...
Definition PinData.hpp:92
Eigen::Vector3d initCovarianceAcceleration
GUI selection for the initial covariance diagonal values for acceleration (standard deviation σ or Va...
Definition PinData.hpp:88
Eigen::Vector3d measurementUncertaintyAcceleration
Gui selection for the acceleration measurement uncertainty diagonal values.
Definition PinData.hpp:100
AngRateVarianceUnit varBiasAngRateNoiseUnit
Gui selection for the Unit of the process noise of the angular rate.
Definition PinData.hpp:70
AccelerationUnit initAccelerationBiasUnit
GUI selection for the unit of the initial angular acceleration bias.
Definition PinData.hpp:59
AngRateVarianceUnit measurementUncertaintyAngularRateUnit
Gui selection for the unit of the angular rate's measurement uncertainty.
Definition PinData.hpp:74
AngRateVarianceUnit
Possible Units for the variance for the process noise of the angular rate (standard deviation σ or Va...
Definition PinData.hpp:40
@ rad2_s2
Variance [rad²/s², rad²/s², rad²/s²].
Definition PinData.hpp:41
@ deg2_s2
Variance [deg²/s², deg²/s², deg²/s²].
Definition PinData.hpp:43
@ deg_s
Standard deviation [deg/s, deg/s, deg/s].
Definition PinData.hpp:44
Eigen::Vector3d initAccelerationBias
GUI selection for the initial acceleration bias.
Definition PinData.hpp:83
Eigen::Vector3d initAngularRateBias
GUI selection for the initial angular rate bias.
Definition PinData.hpp:81
AngRateVarianceUnit initCovarianceAngularRateUnit
Gui selection for the Unit of the initial covariance for the angular rate.
Definition PinData.hpp:62
Eigen::Vector3d initCovarianceBiasAngRate
GUI selection for the initial covariance diagonal values for angular rate biases (standard deviation ...
Definition PinData.hpp:90
AccelerationVarianceUnit initCovarianceAccelerationUnit
Gui selection for the Unit of the initial covariance for the acceleration.
Definition PinData.hpp:64
AccelerationUnit
Possible Units for the acceleration.
Definition PinData.hpp:34
@ m_s2
in [m/s², m/s², m/s²]
Definition PinData.hpp:35
Eigen::Vector3d varBiasAccelerationNoise
GUI selection for the process noise of the acceleration diagonal values (standard deviation σ or Vari...
Definition PinData.hpp:96
AngRateVarianceUnit initCovarianceBiasAngRateUnit
Gui selection for the Unit of the initial covariance for the angular rate biases.
Definition PinData.hpp:66
AccelerationVarianceUnit varBiasAccelerationNoiseUnit
Gui selection for the Unit of the process noise of the acceleration.
Definition PinData.hpp:72
AngRateUnit initAngularRateBiasUnit
GUI selection for the unit of the initial angular rate bias.
Definition PinData.hpp:57
AngRateUnit
Possible Units for the angular rate.
Definition PinData.hpp:27
@ deg_s
in [deg/s, deg/s, deg/s]
Definition PinData.hpp:28
@ rad_s
in [rad/s, rad/s, rad/s]
Definition PinData.hpp:29