Class ImuInitialCalibrator

Nested Relationships

Nested Types

Class Documentation

class ImuInitialCalibrator

Provides a rough initial calibration and attitude for IMUs without a proper bias calibration.

Public Functions

ImuInitialCalibrator() = default
void add(const mrpt::obs::CObservationIMU::Ptr &obs)

Inserts an IMU observation into the queue.

bool isReady() const

Returns true if there are already samples enough in the buffer to call getCalibration()

std::optional<Results> getCalibration() const

If enough samples are given, it computes the initial rough IMU calibration.

Public Members

Parameters parameters
struct Parameters

Public Functions

Parameters() = default

Public Members

std::size_t required_samples = 50

Minimum required samples.

double max_samples_age = .75

Maximum samples age [seconds].

double gravity = 9.81
struct Results

Initial calibration results from getCalibration()

Public Functions

Results() = default
std::string asString() const

Prints to a string a human-readable representation of all values.

Public Members

mrpt::math::TVector3D bias_gyro = {0, 0, 0}

Gyroscope bias.

mrpt::math::TVector3D bias_acc_b = {0, 0, 0}

Accelerometer bias, in base_link frame.

mrpt::math::TVector3D noise_stddev_gyro = {0, 0, 0}

Gyroscope additive noise standard deviation.

mrpt::math::TVector3D noise_stddev_acc = {0, 0, 0}

Accelerometer bias, already in the base_link/body frame.

double pitch = 0

Estimated pitch angle, assuming being at rest during calibration.

double roll = 0

Estimated roll angle, assuming being at rest during calibration.