Skip to content

Class inertialsim::sensors::Accelerometer

ClassList > inertialsim > sensors > Accelerometer

Simulate accelerometer sensors. More...

  • #include <accelerometer.h>

Inherits the following classes: inertialsim::sensors::AccelerometerImuComponents, inertialsim::sensors::InertialSensor

Public Attributes inherited from inertialsim::sensors::AccelerometerImuComponents

See inertialsim::sensors::AccelerometerImuComponents

Type Name
std::optional< AccelerometerModel > owned_model_
std::optional< AccelerometerSpecification > owned_spec_

Public Functions

Type Name
Accelerometer (const AccelerometerModel & model, const AccelerometerSpecification & specification, std::optional< uint64_t > seed=std::nullopt, SimulationMode mode=SimulationMode::BATCH, std::optional< double > max_duration=std::nullopt)
Construct an Accelerometer from a model and specification.
Accelerometer (const IMUModel & model, const IMUSpecification & specification, std::optional< uint64_t > seed=std::nullopt, SimulationMode mode=SimulationMode::BATCH, std::optional< double > max_duration=std::nullopt)
Construct an Accelerometer from anIMU model and specification.
AccelerometerData Simulate (const geometry::Vector & specific_force, const std::optional< Scalar1D > & temperature=std::nullopt)
Simulate accelerometer measurements from specific force Vector.
AccelerometerData Simulate (const geometry::Vector & acceleration, const geodesy::GlobalPose & global_pose, const std::optional< Scalar1D > & temperature=std::nullopt)
Simulate accelerometer measurements from acceleration and pose.
AccelerometerData Simulate (const geodesy::GlobalPose & global_pose, const std::optional< Scalar1D > & temperature=std::nullopt)
Simulate accelerometer measurements from global pose.
virtual const AccelerometerSpecification & specification () override const
Get the accelerometer specification (covariant override).
~Accelerometer () override

Public Functions inherited from inertialsim::sensors::AccelerometerImuComponents

See inertialsim::sensors::AccelerometerImuComponents

Type Name
AccelerometerImuComponents () = default
AccelerometerImuComponents (const IMUModel & model, const IMUSpecification & specification)

Public Functions inherited from inertialsim::sensors::InertialSensor

See inertialsim::sensors::InertialSensor

Type Name
InertialSensor (const InertialSensorModel & model, const InertialSensorSpecification & specification, std::optional< uint64_t > seed=std::nullopt, SimulationMode mode=SimulationMode::BATCH, std::optional< double > max_duration=std::nullopt)
Construct an InertialSensor .
virtual const InertialSensorModel & model () override const
Get the inertial sensor model.
virtual const InertialSensorSpecification & specification () override const
Get the inertial sensor specification.
virtual InertialSensorState & state () override
Get the inertial sensor state.
virtual const InertialSensorState & state () override const
~InertialSensor () override

Public Functions inherited from inertialsim::sensors::Sensor

See inertialsim::sensors::Sensor

Type Name
Sensor (const SensorModel & model, const SensorSpecification & specification, std::optional< uint64_t > seed=std::nullopt, SimulationMode mode=SimulationMode::BATCH, std::optional< double > max_duration=std::nullopt)
Construct a Sensor .
virtual const SensorModel & model () const
Get the sensor model.
const std::mt19937_64 & rng () const
Get the rng generator.
virtual const SensorSpecification & specification () const
Get the sensor specification.
virtual SensorState & state ()
Get the sensor state.
virtual const SensorState & state () const
virtual ~Sensor () = default

Public Static Functions inherited from inertialsim::sensors::Sensor

See inertialsim::sensors::Sensor

Type Name
Array ApplyQuantization (const Array & signal, const SpecificationArray & quantization)
Apply quantization to a signal.

Protected Attributes inherited from inertialsim::sensors::InertialSensor

See inertialsim::sensors::InertialSensor

Type Name
std::optional< Array > bias_instability_buffer_
InertialSensorState inertial_state_
std::optional< Array > quantization_noise_buffer_
std::vector< Measurement > rate_buffer_
std::optional< Array > rate_ramp_buffer_
std::optional< Array > rate_random_walk_buffer_

Protected Attributes inherited from inertialsim::sensors::Sensor

See inertialsim::sensors::Sensor

Type Name
bool initialized_
std::optional< double > max_duration_
SimulationMode mode_
const SensorModel & model_
int noise_index_
std::mt19937_64 rng_
double sample_rate_
const SensorSpecification & specification_
SensorState state_
std::optional< Array > wgn_buffer_

Protected Functions inherited from inertialsim::sensors::InertialSensor

See inertialsim::sensors::InertialSensor

Type Name
virtual void Initialize (int samples, double sample_rate) override
Initialize the sensor for simulation.

Protected Functions inherited from inertialsim::sensors::Sensor

See inertialsim::sensors::Sensor

Type Name
virtual void Initialize (int samples, double sample_rate)
Initialize the sensor for simulation.
void SetBias ()
Set bias parameters.
void SetInputLimits ()
Set input limit parameters.
void SetMisalignment ()
Set misalignment parameters.
virtual void SetNoise (Eigen::Index samples, double sample_rate)
Set noise parameters.
virtual void SetQuantization ()
Set quantization parameters.
void SetScaleFactor ()
Set scale factor parameters.
void SimulateBias (Array & signal, const std::optional< Scalar1D > & temperature=std::nullopt)
Simulate bias.
Measurement SimulateFromRate (const geometry::Vector & signal, const std::optional< Scalar1D > & temperature=std::nullopt)
Simulate sensor errors on a rate signal.
void SimulateInputLimits (Array & signal)
Simulate input limits.
Array SimulateMisalignment (const Vector3D & signal)
Simulate axis misalignment.
virtual void SimulateNoise (Array & signal)
Simulate noise.
void SimulateScaleFactor (Array & signal)
Simulate scale factor.
geometry::Vector ValidateInput (const geometry::Vector & signal)
Validate and potentially interpolate input signal.

Detailed Description

An accelerometer is "an inertial sensor that measures the component of translational acceleration minus the component of gravitational acceleration along its input axis(es)." [Standard 03].

Public Functions Documentation

function Accelerometer [½]

Construct an Accelerometer from a model and specification.

inertialsim::sensors::Accelerometer::Accelerometer (
    const AccelerometerModel & model,
    const AccelerometerSpecification & specification,
    std::optional< uint64_t > seed=std::nullopt,
    SimulationMode mode=SimulationMode::BATCH,
    std::optional< double > max_duration=std::nullopt
) 

Parameters:

  • model Accelerometer model options.
  • specification Accelerometer specification.
  • seed Random number generator seed (0 for random).
  • mode Simulation mode (batch or real-time).
  • max_duration Maximum simulation duration in seconds (required for real-time mode).

function Accelerometer [2/2]

Construct an Accelerometer from anIMU model and specification.

inertialsim::sensors::Accelerometer::Accelerometer (
    const IMUModel & model,
    const IMUSpecification & specification,
    std::optional< uint64_t > seed=std::nullopt,
    SimulationMode mode=SimulationMode::BATCH,
    std::optional< double > max_duration=std::nullopt
) 

Parameters:

  • model IMU model options.
  • specification IMU specification.
  • seed Random number generator seed (0 for random).
  • mode Simulation mode (batch or real-time).
  • max_duration Maximum simulation duration in seconds.

function Simulate [⅓]

Simulate accelerometer measurements from specific force Vector.

AccelerometerData inertialsim::sensors::Accelerometer::Simulate (
    const geometry::Vector & specific_force,
    const std::optional< Scalar1D > & temperature=std::nullopt
) 

Parameters:

  • specific_force Specific force Vector with time.
  • temperature Optional temperature array.

Returns:

AccelerometerData with simulated measurements.


function Simulate [⅔]

Simulate accelerometer measurements from acceleration and pose.

AccelerometerData inertialsim::sensors::Accelerometer::Simulate (
    const geometry::Vector & acceleration,
    const geodesy::GlobalPose & global_pose,
    const std::optional< Scalar1D > & temperature=std::nullopt
) 

The input must be the total acceleration (including gravity) acting on the accelerometer as measured in accelerometer coordinates. The effect of Earth's gravity (not measured by the accelerometer) will be compensated based on the global_pose data to produce specific force.

Parameters:

  • acceleration Total acceleration Vector with time.
  • global_pose GlobalPose with attitude, position, and time.
  • temperature Optional temperature array.

Returns:

AccelerometerData with simulated measurements.


function Simulate [3/3]

Simulate accelerometer measurements from global pose.

AccelerometerData inertialsim::sensors::Accelerometer::Simulate (
    const geodesy::GlobalPose & global_pose,
    const std::optional< Scalar1D > & temperature=std::nullopt
) 

Specific force is computed from the pose's specific_force() method, which accounts for acceleration and gravity.

Parameters:

  • global_pose GlobalPose with attitude, position, velocity, and time.
  • temperature Optional temperature array.

Returns:

AccelerometerData with simulated measurements.


function specification

Get the accelerometer specification (covariant override).

inline virtual const AccelerometerSpecification & inertialsim::sensors::Accelerometer::specification () override const

Returns:

Accelerometer specification.

Implements inertialsim::sensors::Sensor::specification


function ~Accelerometer

inertialsim::sensors::Accelerometer::~Accelerometer () override


The documentation for this class was generated from the following file cpp/include/inertialsim/sensors/accelerometer.h