IMU Models
Below are all supported IMU intrinsics models in MetriCal. If there is a model that you use that is not listed here, just contact us! We're always looking to expand our support.
Common Variables and Definitions
Variables | Description |
---|---|
Corrected (Calibrated) angular velocity. | |
Corrected (Calibrated) specific force. | |
Distorted (Uncalibrated) gyroscope measurement. | |
Distorted (Uncalibrated) accelerometer measurement. Also referred to as the specific force measurement. |
Specific Force is the mass-specific force experienced by the proof mass in an accelerometer. This is commonly known as the accelerometer measurement. It differs from acceleration in that it has an additive term due to gravity operating on the proof mass in the accelerometer. To convert between acceleration of the accelerometer and specific-force, one can apply the equation
where is the gravity vector expressed in the IMU's frame.
Modeling (Calibrated → Uncalibrated) refers to transforming an ideal angular velocity, or specific force and modeling the uncalibrated measurement produced by an IMU sensor given the intrinsics provided. In other words, it models the effect of the intrinsics on the angular velocity or specific force experienced by the IMU.
Correcting (Uncalibrated → Calibrated) refers to transforming an uncalibrated gyroscope or accelerometer measurement produced by an IMU sensor and correcting for intrinsics effects using the intrinsics provided. In other words, it corrects the measurement produced by an IMU approximating the true angular velocity or specific force experienced by the IMU.
All the IMU intrinsic models used in MetriCal are correcting models in that they naturally express the corrected quantities in terms of the measured quantities. However, these models may also be used to model the IMU intrinsics. This simply requires inverting the model by solving for the measured quantities in terms of the corrected quantities. The modeling equations for each of the intrinsic models are given below.
IMU Frames
A coordinate frame is simply the position and directions defining the basis which can be used to numerically express a quantity. The coordinate frames used for IMU models are given in the following table.
Frame | Description |
---|---|
The accelerometer coordinate frame | |
The gyroscope coordinate frame | |
The imu coordinate frame |
In the currently supported IMU models in MetriCal, the , , and coordinate frames are assumed to be at the same position in space. Furthermore, the and frames are not assumed to be orthonormal. The frame, however, will always be a proper orthonormal coordinate frame.
Numerical quantities use a superscript to describe their frame of reference. As such, the above frame variables should only be interpreted as a frame if they appear as a superscript. For example, the gravity vector in the IMU's frame is given as , but should not be interpreted as a frame in this context.
IMU Bias
IMUs have a time-varying bias on the measurements they produce. In MetriCal, this is modeled as an additive bias on top of the intrinsically distorted measurements.
Parameter | Mathematical Notation | Description |
---|---|---|
gyro_bias | Additive bias on the accelerometer measurement. | |
specific_force_bias | Additive bias on the gyroscope measurement. |
By necessity, MetriCal infers the additive biases on both the accelerometer and the gyroscope measurements. However, the IMU bias is a time-varying quantity that is highly influenced by electrical noise, temperature fluctuations and other factors. These biases can change simply by power cycling the IMU sensor. As such, it is recommended that the IMU biases inferred by MetriCal are only used as an initial estimate of bias in applications.
Intrinsics Models
No Intrinsics
MetriCal keyword: no_intrinsics
This model simply accounts for the bias effects. This model is applicable when you're confident in the intrinsics that your IMU is providing, and you only need to infer spatial constraints related to your IMU.
Correction
Modeling
Scale Model
MetriCal keyword: scale
This model corrects any scale factor errors in the accelerometer and gyroscope measurements.
Parameter | Mathematical Notation | Description |
---|---|---|
gyro_scale | Scaling applied to each component of the gyroscope measurement | |
specific_force_scale | Scaling applied to each component of the accelerometer measurement |
Where the intrinsic correction matrices are formed from the other variables as
Correction
Modeling
Scale and Shear Model
MetriCal keyword: scale_shear
This model corrects any scale factor errors and non-orthogonality errors in the accelerometer or gyroscope measurements. These non-orthogonality errors are often called "shear" errors which gives the scale and shear model its name.
Parameter | Mathematical Notation | Description |
---|---|---|
gyro_scale | Scaling applied to each component of the gyroscope measurement | |
specific_force_scale | Scaling applied to each component of the accelerometer measurement | |
gyro_shear | Non-orthogonality compensation applied to the gyroscope measurement | |
accelerometer_shear | Non-orthogonality compensation applied to the accelerometer measurement |
Where the intrinsic correction matrices are formed from the other variables as
Correction
Modeling
Scale, Shear, and Rotation Model
MetriCal keyword: scale_shear_rotation
This model corrects any scale factor errors and non-orthogonality errors in the accelerometer or gyroscope measurements. Additionally, this model corrects for any rotational misalignment between the gyroscope and the IMU's frame. In this model, the IMU frame is assumed to be the same as the scale and shear corrected accelerometer frame.
Parameter | Mathematical Notation | Description |
---|---|---|
gyro_scale | Scaling applied to each component of the gyroscope measurement | |
specific_force_scale | Scaling applied to each component of the accelerometer measurement | |
gyro_shear | Non-orthogonality compensation applied to the gyroscope measurement | |
accelerometer_shear | Non-orthogonality compensation applied to the accelerometer measurement | |
accel_from_gyro_rot | The rotation from the gyroscope frame to the IMU's frame |
The intrinsic correction matrices are formed with the two equations
Correction
Modeling
Scale, Shear, Rotation, and G-sensitivity Model
MetriCal keyword: scale_shear_rotation_g_sensitivity
This model corrects any scale factor errors, non-orthogonality errors and rotational misalignment errors in the accelerometer or gyroscope measurements. Additionally, this model corrects for a phenomenon known as G-sensitivity. G-sensitivty is a property of an oscillating gyroscope that causes a gyroscope to register a bias on its measurements when the gyroscope experiences a specific-force.
Parameter | Mathematical Notation | Description |
---|---|---|
gyro_scale | Scaling applied to each component of the gyroscope measurement | |
specific_force_scale | Scaling applied to each component of the accelerometer measurement | |
gyro_shear | Non-orthogonality compensation applied to the gyroscope measurement | |
accelerometer_shear | Non-orthogonality compensation applied to the accelerometer measurement | |
accel_from_gyro_rot | The rotation from the gyroscope frame to the IMU's frame | |
g_sensitivity | The in-axis G-sensitivity of the gyroscope induced by the specific-force | |
g_sensitivity_cross_axis | The cross-axis G-sensitivity of the gyroscope induced by the specific-force |
The intrinsic correction matrices are formed with the two equations
and the G-sensitivity matrix is given by
Correction
By adding G-sensivity, the gyroscope correction becomes dependent upon the specific-force correction. As such, it is necessary to first correct the accelerometer measurement and then use the corrected specific-force to correct the gyroscope measurement.
Modeling
Noise Model
A full understanding of the IMU noise model is not necessary to use MetriCal. MetriCal chooses default values for the noise model that should work with most MEMS consumer grade IMUs. However, the interested reader is referred to the IEEE Specification Appendix C, where these values are more rigorously defined.
In addition to bias and intrinsics, IMUs experience noise on their measurement outputs. This noise must be modeled to properly infer the bias and intrinsic parameters of an IMU. At a high-level, the noise model is given as
where
- is the noisy time-varying signal
- is the true time-varying signal
- is the component of the noise with constant power spectral density (white noise)
- is the component of the noise with power spectral density (pink noise)
- is the component of the noise with power spectral density (brown noise)
This noise model is applied to each component of the gyroscope and accelerometer output. More details on this noise model can be found in the IEEE Specification.
Noise Parameters
The noise parameters for the IMU noise model are given as
Parameter | Units | Description |
---|---|---|
angular_random_walk | Angular random walk coefficients | |
gyro_bias_instability | Gyroscope bias instability coefficients | |
gyro_rate_random_walk | Gyroscope rate random walk coefficients | |
gyro_correlation_time_constant | unitless | Gyroscope correlation time constant for bias instability process |
gyro_turn_on_bias_uncertainty | Prior standard deviation of the gyroscope bias components | |
velocity_random_walk | Velocity random walk coefficients | |
accelerometer_bias_instability | Accelerometer bias instability coefficients | |
accelerometer_rate_random_walk | Accelerometer rate random walk coefficients | |
accelerometer_correlation_time_constant | unitless | Accelerometer correlation time constant for bias instability process |
accelerometer_turn_on_bias_uncertainty | Prior standard deviation of the specific force bias components |
MetriCal will automatically set these with reasonable values for consumer grade IMUs (like the BMI055 used in Intel's Realsense D435i). However, if you have better values from an IMU datasheet or an Allan Variance analysis, you can modify the defaults to better suit your needs. If you are using values given in a datasheet, be sure to convert to the units used by MetriCal, since many datasheets will give units like (milli-g's) or