MVSim
Lightweight simulator for 2.5D vehicles and robots
Classes | Public Member Functions | Public Attributes | List of all members
mvsim::ImuNoiseModel Class Reference

Stochastic IMU error model based on Forster et al. (2016). More...

#include <ImuNoiseModel.h>

Collaboration diagram for mvsim::ImuNoiseModel:
Collaboration graph
[legend]

Classes

struct  ChannelParams
 Parameters for a single 3-axis IMU channel. More...
 

Public Member Functions

void reset ()
 Reset the internal bias states to zero.
 
mrpt::math::TVector3D applyGyroscope (const mrpt::math::TVector3D &trueVal, double dt)
 Corrupt a true gyroscope reading with noise. More...
 
mrpt::math::TVector3D applyAccelerometer (const mrpt::math::TVector3D &trueVal, double dt)
 Corrupt a true accelerometer reading with noise. More...
 
const mrpt::math::TVector3D & gyroBias () const
 
const mrpt::math::TVector3D & accelBias () const
 

Public Attributes

ChannelParams gyroscope
 
ChannelParams accelerometer
 

Detailed Description

Stochastic IMU error model based on Forster et al. (2016).

Implements the standard continuous-time IMU noise model with two components per axis for both gyroscope and accelerometer channels:

Discrete-time update equations (timestep \(\Delta t\)):

\[ \mathbf{b}_{k} = \mathbf{b}_{k-1} + \mathcal{N}\!\bigl(\mathbf{0},\,\sigma_{rw}^{2}\,\Delta t\, \mathbf{I}\bigr) \]

\[ \tilde{\mathbf{m}}_{k} = \mathbf{m}_{k} + \mathbf{b}_{k} + \mathcal{N}\!\bigl(\mathbf{0},\,\sigma_{w}^{2}\,\mathbf{I}\bigr) \]

where \(\sigma_{w}\) is the white-noise standard deviation and \(\sigma_{rw}\) is the random-walk standard deviation.

Reference
C. Forster, L. Carlone, F. Dellaert, D. Scaramuzza, "On-Manifold Preintegration for Real-Time Visual-Inertial Odometry", IEEE Transactions on Robotics, vol. 33, no. 1, pp. 1-21, 2016.

Member Function Documentation

◆ accelBias()

const mrpt::math::TVector3D& mvsim::ImuNoiseModel::accelBias ( ) const
inline

Read-only access to current accelerometer bias (for diagnostics).

◆ applyAccelerometer()

mrpt::math::TVector3D mvsim::ImuNoiseModel::applyAccelerometer ( const mrpt::math::TVector3D &  trueVal,
double  dt 
)

Corrupt a true accelerometer reading with noise.

Parameters
[in]trueValTrue linear acceleration (m/s²).
[in]dtSimulation timestep (s).
Returns
Noisy linear acceleration (m/s²).

◆ applyGyroscope()

mrpt::math::TVector3D mvsim::ImuNoiseModel::applyGyroscope ( const mrpt::math::TVector3D &  trueVal,
double  dt 
)

Corrupt a true gyroscope reading with noise.

Parameters
[in]trueValTrue angular velocity (rad/s).
[in]dtSimulation timestep (s).
Returns
Noisy angular velocity (rad/s).

◆ gyroBias()

const mrpt::math::TVector3D& mvsim::ImuNoiseModel::gyroBias ( ) const
inline

Read-only access to current gyroscope bias (for diagnostics).

Member Data Documentation

◆ accelerometer

ChannelParams mvsim::ImuNoiseModel::accelerometer

Accelerometer noise parameters [m/s²].

◆ gyroscope

ChannelParams mvsim::ImuNoiseModel::gyroscope

Gyroscope noise parameters [rad/s].


The documentation for this class was generated from the following file: