Skip to content

Namespace inertialsim::sensors

Namespace List > inertialsim > sensors

Sensor specification and simulation.More...

Classes

Type Name
class Accelerometer
Simulate accelerometer sensors.
struct AccelerometerData
Accelerometer output data.
class AccelerometerSpecification
Accelerometer specification.
class Gyro
Simulate gyroscope (gyro) sensors.
struct GyroData
Gyro output data.
class GyroSpecification
Gyro specification.
class IMU
Simulate an Inertial Measurement Unit (IMU ).
struct IMUData
IMU output data.
struct IMUModel
IMU model options.
class IMUSpecification
IMU sensor specification.
class INS
INS sensor simulation.
struct INSData
INS simulation results.
struct INSModel
INS model options for simulation.
class INSSpecification
INS specification.
struct INSState
Simulation state for INS error parameters.
class InertialSensor
Base class for inertial sensors (gyros and accelerometers).
struct InertialSensorModel
Inertial sensor model options.
class InertialSensorSpecification
Inertial sensor specification class.
class InertialSensorState
Inertial sensor internal state.
class Magnetometer
Simulate magnetometer sensors.
struct MagnetometerData
Magnetometer output data.
class MagnetometerSpecification
Magnetometer specification.
class Measurement
Sensor measurement data.
class Parameter <typename ValueType>
A parameter with value and associated units.
class Sensor
Abstract base class for sensors.
struct SensorModel
Sensor model options.
class SensorSpecification
Base sensor specification class.
class SensorState
Sensor internal state.
class WhiteNoiseBuffer
A buffer for white noise samples.

Public Types

Type Name
typedef InertialSensorModel AccelerometerModel
enum AttitudeFormat
Attitude (orientation) output format options.
typedef InertialSensorModel GyroModel
enum INSSimulationMode
INS simulation mode.
typedef SensorModel MagnetometerModel
enum SimulationMode
Simulation mode for sensors.

Public Attributes

Type Name
constexpr double kDegreesCelsiusPerDegreeFahrenheit = 5.0 / 9.0
constexpr double kSecondsPerHour = 3600
constexpr double kTeslaPerGauss = 1[**e**](namespaceinertialsim.md#typedef-matrix)-4

Public Functions

Type Name
Array DeltaQuantizationNoise (Eigen::Index channels, Eigen::Index samples, double sample_rate, std::mt19937_64 & rng)
Generate delta (integrated) quantization noise.
Parameter (double, const std::string &)
Parameter (float, const std::string &)
Parameter (int, const std::string &)
Parameter (unsigned int, const std::string &)
Parameter (short, const std::string &)
Parameter (unsigned short, const std::string &)
Parameter (long, const std::string &)
Parameter (unsigned long, const std::string &)
Parameter (long long, const std::string &)
Parameter (unsigned long long, const std::string &)
Parameter (const Eigen::ArrayBase< Derived > &, const std::string &)
Parameter (std::initializer_list< double >, const std::string &)
Parameter (const Eigen::MatrixBase< Derived > &, const std::string &)
Parameter (std::initializer_list< std::initializer_list< double > >, const std::string &)
Array PinkNoise (Eigen::Index channels, Eigen::Index samples, double sample_rate, std::mt19937_64 & rng)
Generate a pink noise sequence.
Array RandomWalkNoise (Eigen::Index channels, Eigen::Index samples, double sample_rate, std::mt19937_64 & rng)
Generate a discrete time random walk sequence.
Array RateQuantizationNoise (Eigen::Index channels, Eigen::Index samples, double sample_rate, std::mt19937_64 & rng)
Generate rate quantization noise.
Array WhiteGaussianNoise (Eigen::Index channels, Eigen::Index samples, double sample_rate, std::mt19937_64 & rng)
Generate white Gaussian noise.

Detailed Description

The sensors namespace provides:

  • classes to simulate gyroscope, accelerometer, IMU, magnetometer, and INS sensor measurements from a wide variety of inputs (combinations of angular rate, specific force, acceleration, orientation, velocity, position and pose in local and global coordinate frames)
  • classes to specify sensor parameters in customary units with automatic conversion to SI units
  • classes to represent sensor simulation outputs (measurements, simulation state, and metadata)

Public Types Documentation

typedef AccelerometerModel

using inertialsim::sensors::AccelerometerModel = typedef InertialSensorModel;

enum AttitudeFormat

Attitude (orientation) output format options.

enum inertialsim::sensors::AttitudeFormat {
    EULER_ANGLE,
    QUATERNION,
    ROTATION_MATRIX
};


typedef GyroModel

using inertialsim::sensors::GyroModel = typedef InertialSensorModel;

enum INSSimulationMode

INS simulation mode.

enum inertialsim::sensors::INSSimulationMode {
    BATCH,
    REALTIME
};


typedef MagnetometerModel

using inertialsim::sensors::MagnetometerModel = typedef SensorModel;

enum SimulationMode

Simulation mode for sensors.

enum inertialsim::sensors::SimulationMode {
    BATCH,
    REALTIME
};


Public Attributes Documentation

variable kDegreesCelsiusPerDegreeFahrenheit

constexpr double inertialsim::sensors::kDegreesCelsiusPerDegreeFahrenheit;

variable kSecondsPerHour

constexpr double inertialsim::sensors::kSecondsPerHour;

variable kTeslaPerGauss

constexpr double inertialsim::sensors::kTeslaPerGauss;

Public Functions Documentation

function DeltaQuantizationNoise

Generate delta (integrated) quantization noise.

Array inertialsim::sensors::DeltaQuantizationNoise (
    Eigen::Index channels,
    Eigen::Index samples,
    double sample_rate,
    std::mt19937_64 & rng
) 

Generate a discrete time, white noise sequence uniformly distributed between -0.5 and 0.5. White noise is characterized by a constant power spectral density over all frequencies. Given the sampling frequency in Hz, the output has a two-sided power spectral density of 1/12 (units^2)/Hz.

Parameters:

  • channels The number of independent channels of noise to return.
  • samples The number of samples of noise to return.
  • sample_rate Frequency in Hz that the signal is sampled at.
  • rng Random number generator.

Returns:

Array of random noise samples (channels x samples).


function Parameter

inertialsim::sensors::Parameter (
    double,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    float,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    int,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    unsigned  int,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    short,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    unsigned  short,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    long,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    unsigned  long,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    long  long,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    unsigned  long  long,
    const std::string &
) 

function Parameter

template<typename Derived>
inertialsim::sensors::Parameter (
    const Eigen::ArrayBase< Derived > &,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    std::initializer_list< double >,
    const std::string &
) 

function Parameter

template<typename Derived>
inertialsim::sensors::Parameter (
    const Eigen::MatrixBase< Derived > &,
    const std::string &
) 

function Parameter

inertialsim::sensors::Parameter (
    std::initializer_list< std::initializer_list< double > >,
    const std::string &
) 

function PinkNoise

Generate a pink noise sequence.

Array inertialsim::sensors::PinkNoise (
    Eigen::Index channels,
    Eigen::Index samples,
    double sample_rate,
    std::mt19937_64 & rng
) 

Pink noise (also known as flicker noise or 1/f noise) is characterized by a power spectrum that is inversely proportional to frequency (1/f).

This implementation automatically pads the FFT size to the next efficient size (with only small prime factors: 2, 3, 5, 7) for optimal performance, then returns exactly the requested number of samples. This padding is transparent to the user and can provide significant speedup (100x+) when the requested size would otherwise have poor FFT factorization.

Parameters:

  • channels The number of independent channels of noise to return.
  • samples The number of samples of noise to return.
  • sample_rate Frequency in Hz that the signal is sampled at.
  • rng Random number generator.

Returns:

Array of random noise samples (channels x samples).


function RandomWalkNoise

Generate a discrete time random walk sequence.

Array inertialsim::sensors::RandomWalkNoise (
    Eigen::Index channels,
    Eigen::Index samples,
    double sample_rate,
    std::mt19937_64 & rng
) 

Random walk noise (also known as Brown noise or Brownian noise) is the integral of white noise and is characterized by a 1/(f^2) power spectral density.

Parameters:

  • channels The number of independent channels of noise to return.
  • samples The number of samples of noise to return.
  • sample_rate Frequency in Hz that the signal is sampled at.
  • rng Random number generator.

Returns:

Array of random noise samples (channels x samples).


function RateQuantizationNoise

Generate rate quantization noise.

Array inertialsim::sensors::RateQuantizationNoise (
    Eigen::Index channels,
    Eigen::Index samples,
    double sample_rate,
    std::mt19937_64 & rng
) 

Generate a discrete time, white noise sequence uniformly distributed between -0.5 and 0.5. This is the derivative of delta quantization noise.

Parameters:

  • channels The number of independent channels of noise to return.
  • samples The number of samples of noise to return.
  • sample_rate Frequency in Hz that the signal is sampled at.
  • rng Random number generator.

Returns:

Array of random noise samples (channels x samples).


function WhiteGaussianNoise

Generate white Gaussian noise.

Array inertialsim::sensors::WhiteGaussianNoise (
    Eigen::Index channels,
    Eigen::Index samples,
    double sample_rate,
    std::mt19937_64 & rng
) 

Generate a discrete time, normally distributed, white noise sequence with unit power spectral density. White noise is characterized by a constant power spectral density over all frequencies. Given the sampling frequency in Hz, the output has a two-sided power spectral density of 1.0 (units^2)/Hz.

Parameters:

  • channels The number of independent channels of noise to return.
  • samples The number of samples of noise to return.
  • sample_rate Frequency in Hz that the signal is sampled at.
  • rng Random number generator.

Returns:

Array of random noise samples (channels x samples).



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