Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
NoiseTypes.hpp
Go to the documentation of this file.
1// Sensor Noise Model Types
2// Common types and parameter structures for IMU noise modeling
3#pragma once
4
5#include <Eigen/Core>
6
7namespace vulcan::sensors {
8
9// =============================================================================
10// Allan Variance Parameters
11// =============================================================================
12
25template <typename Scalar> struct AllanParams {
26 Scalar N;
27 Scalar B;
28 Scalar K;
29 Scalar tau_bias;
30};
31
32// =============================================================================
33// First-Order Markov Process Parameters
34// =============================================================================
35
45template <typename Scalar> struct MarkovParams {
46 Scalar sigma;
47 Scalar tau;
48};
49
50// =============================================================================
51// IMU Noise Sample Output
52// =============================================================================
53
61template <typename Scalar> struct IMUNoiseSample {
62 Eigen::Vector<Scalar, 3> gyro;
63 Eigen::Vector<Scalar, 3> accel;
64};
65
66// =============================================================================
67// IMU Grade Presets
68// =============================================================================
69
70namespace imu_grades {
71
83 .N = 8.7e-5, // rad/s/√Hz
84 .B = 4.8e-5, // rad/s
85 .K = 4.0e-8, // rad/s²/√Hz
86 .tau_bias = 100.0, // s
87 };
88}
89
95 .N = 3.0e-3, // m/s²/√Hz (300 µg/√Hz)
96 .B = 5.0e-4, // m/s² (50 µg)
97 .K = 1.0e-5, // m/s³/√Hz
98 .tau_bias = 100.0, // s
99 };
100}
101
110 return AllanParams<double>{
111 .N = 2.9e-5, // rad/s/√Hz
112 .B = 4.8e-6, // rad/s
113 .K = 1.0e-8, // rad/s²/√Hz
114 .tau_bias = 300.0, // s
115 };
116}
117
122 return AllanParams<double>{
123 .N = 1.0e-3, // m/s²/√Hz (100 µg/√Hz)
124 .B = 1.0e-4, // m/s² (10 µg)
125 .K = 3.0e-6, // m/s³/√Hz
126 .tau_bias = 300.0, // s
127 };
128}
129
138 return AllanParams<double>{
139 .N = 2.9e-6, // rad/s/√Hz
140 .B = 4.8e-7, // rad/s
141 .K = 1.0e-9, // rad/s²/√Hz
142 .tau_bias = 1000.0, // s
143 };
144}
145
150 return AllanParams<double>{
151 .N = 3.0e-4, // m/s²/√Hz (30 µg/√Hz)
152 .B = 3.0e-5, // m/s² (3 µg)
153 .K = 1.0e-6, // m/s³/√Hz
154 .tau_bias = 1000.0, // s
155 };
156}
157
166 return AllanParams<double>{
167 .N = 2.9e-7, // rad/s/√Hz
168 .B = 4.8e-8, // rad/s
169 .K = 1.0e-10, // rad/s²/√Hz
170 .tau_bias = 3600.0, // s (1 hour)
171 };
172}
173
178 return AllanParams<double>{
179 .N = 5.0e-5, // m/s²/√Hz (5 µg/√Hz)
180 .B = 1.0e-5, // m/s² (1 µg)
181 .K = 1.0e-7, // m/s³/√Hz
182 .tau_bias = 3600.0, // s (1 hour)
183 };
184}
185
186} // namespace imu_grades
187
188} // namespace vulcan::sensors
Definition NoiseTypes.hpp:70
AllanParams< double > industrial_accel()
Industrial-grade MEMS accelerometer.
Definition NoiseTypes.hpp:121
AllanParams< double > consumer_gyro()
Consumer-grade MEMS gyroscope (smartphone-level).
Definition NoiseTypes.hpp:81
AllanParams< double > tactical_accel()
Tactical-grade IMU accelerometer.
Definition NoiseTypes.hpp:149
AllanParams< double > industrial_gyro()
Industrial-grade MEMS gyroscope.
Definition NoiseTypes.hpp:109
AllanParams< double > consumer_accel()
Consumer-grade MEMS accelerometer (smartphone-level).
Definition NoiseTypes.hpp:93
AllanParams< double > tactical_gyro()
Tactical-grade IMU gyroscope.
Definition NoiseTypes.hpp:137
AllanParams< double > navigation_accel()
Navigation-grade IMU accelerometer.
Definition NoiseTypes.hpp:177
AllanParams< double > navigation_gyro()
Navigation-grade IMU gyroscope.
Definition NoiseTypes.hpp:165
Definition NoiseTypes.hpp:7
Allan variance noise parameters for IMU sensors.
Definition NoiseTypes.hpp:25
Scalar K
Rate random walk [rad/s²/√Hz] or [m/s³/√Hz].
Definition NoiseTypes.hpp:28
Scalar B
Bias instability [rad/s] or [m/s²].
Definition NoiseTypes.hpp:27
Scalar N
Angle/velocity random walk [rad/s/√Hz] or [m/s²/√Hz].
Definition NoiseTypes.hpp:26
Scalar tau_bias
Bias instability correlation time [s].
Definition NoiseTypes.hpp:29
3-axis IMU noise sample
Definition NoiseTypes.hpp:61
Eigen::Vector< Scalar, 3 > gyro
Gyroscope noise [rad/s].
Definition NoiseTypes.hpp:62
Eigen::Vector< Scalar, 3 > accel
Accelerometer noise [m/s²].
Definition NoiseTypes.hpp:63
First-order Gauss-Markov process parameters.
Definition NoiseTypes.hpp:45
Scalar tau
Correlation time [s].
Definition NoiseTypes.hpp:47
Scalar sigma
Steady-state standard deviation.
Definition NoiseTypes.hpp:46