Enum IMUSensor

Enum Documentation

enum class dai::IMUSensor : std::int32_t

Available IMU sensors. More details about each sensor can be found in the datasheet:

https://www.ceva-dsp.com/wp-content/uploads/2019/10/BNO080_085-Datasheet.pdf

Values:

enumerator ACCELEROMETER_RAW

Section 2.1.1

Raw accelerometer measurement in the sensor-native frame. No IMU extrinsics or affine calibration are applied. Units are [m/s^2]

Note

Prior firmware versions incorrectly delivered frame-aligned data on this stream (equivalent to what is now ACCELEROMETER_UNCALIBRATED). This stream now correctly provides the unprocessed sensor output.

enumerator ACCELEROMETER_UNCALIBRATED

DepthAI synthetic accelerometer stream.

Acceleration of the device including gravity, aligned to the DepthAI IMU frame without the stored affine calibration applied. Units are [m/s^2]

enumerator ACCELEROMETER_CALIBRATED

Section 2.1.1

Acceleration of the device including gravity, aligned to the DepthAI IMU frame and corrected with the stored affine calibration. Units are [m/s^2]

enumerator ACCELEROMETER

Deprecated:

Use ACCELEROMETER_CALIBRATED

enumerator LINEAR_ACCELERATION

Section 2.1.1

Acceleration of the device with gravity removed. Units are [m/s^2]

Deprecated:

The affine calibration (bias) stored for the accelerometer is calibrated against the full gravity-included signal and is therefore incorrect when applied to this gravity-stripped output. This sensor is not correctly calibrated and may be removed in a future release.

enumerator GRAVITY

Section 2.1.1

Gravity. Units are [m/s^2]

Deprecated:

The affine calibration (bias) stored for the accelerometer is calibrated against the full gravity-included signal and is therefore incorrect when applied to this gravity-only output. This sensor is not correctly calibrated and may be removed in a future release.

enumerator GYROSCOPE_RAW

Section 2.1.2

Raw gyroscope measurement in the sensor-native frame. DepthAI does not apply IMU extrinsics or affine calibration on this stream. Units are [rad/s]

enumerator GYROSCOPE_CALIBRATED

Section 2.1.2

Angular velocity aligned to the DepthAI IMU frame and corrected with the stored affine calibration. Units are [rad/s]

enumerator GYROSCOPE_UNCALIBRATED

Section 2.1.2

Angular velocity aligned to the DepthAI IMU frame without the stored affine calibration applied. Units are [rad/s]

enumerator MAGNETOMETER_RAW

Section 2.1.3

Raw magnetometer measurement in the sensor-native frame. DepthAI does not apply IMU extrinsics on this stream. Units are [uTesla]

enumerator MAGNETOMETER_CALIBRATED

Section 2.1.3

Magnetic field measurement aligned to the DepthAI IMU frame. Units are [uTesla]

enumerator MAGNETOMETER_UNCALIBRATED

Section 2.1.3

Magnetic field measurement aligned to the DepthAI IMU frame without hard-iron offset applied. Units are [uTesla]

enumerator ROTATION_VECTOR

Section 2.2

The rotation vector provides an orientation output that is expressed as a quaternion referenced to magnetic north and gravity. It is produced by fusing the outputs of the accelerometer, gyroscope and magnetometer. The rotation vector is the most accurate orientation estimate available. The magnetometer provides correction in yaw to reduce drift and the gyroscope enables the most responsive performance.

enumerator GAME_ROTATION_VECTOR

Section 2.2

The game rotation vector is an orientation output that is expressed as a quaternion with no specific reference for heading, while roll and pitch are referenced against gravity. It is produced by fusing the outputs of the accelerometer and the gyroscope (i.e. no magnetometer). The game rotation vector does not use the magnetometer to correct the gyroscopes drift in yaw. This is a deliberate omission (as specified by Google) to allow gaming applications to use a smoother representation of the orientation without the jumps that an instantaneous correction provided by a magnetic field update could provide. Long term the output will likely drift in yaw due to the characteristics of gyroscopes, but this is seen as preferable for this output versus a corrected output.

enumerator GEOMAGNETIC_ROTATION_VECTOR

Section 2.2

The geomagnetic rotation vector is an orientation output that is expressed as a quaternion referenced to magnetic north and gravity. It is produced by fusing the outputs of the accelerometer and magnetometer. The gyroscope is specifically excluded in order to produce a rotation vector output using less power than is required to produce the rotation vector of section 2.2.4. The consequences of removing the gyroscope are: Less responsive output since the highly dynamic outputs of the gyroscope are not used More errors in the presence of varying magnetic fields.

enumerator ARVR_STABILIZED_ROTATION_VECTOR

Section 2.2

Estimates of the magnetic field and the roll/pitch of the device can create a potential correction in the rotation vector produced. For applications (typically augmented or virtual reality applications) where a sudden jump can be disturbing, the output is adjusted to prevent these jumps in a manner that takes account of the velocity of the sensor system.

enumerator ARVR_STABILIZED_GAME_ROTATION_VECTOR

Section 2.2

While the magnetometer is removed from the calculation of the game rotation vector, the accelerometer itself can create a potential correction in the rotation vector produced (i.e. the estimate of gravity changes). For applications (typically augmented or virtual reality applications) where a sudden jump can be disturbing, the output is adjusted to prevent these jumps in a manner that takes account of the velocity of the sensor system. This process is called AR/VR stabilization.