DriveWorks SDK Reference
5.10.90 Release
For Test and Development only

Detailed Description

Defines the IMU sensor.

Data Structures

struct  dwIMUFrame
 This structure contains one frame of data from a IMU sensor. More...
 
struct  dwIMUFrameNew
 This structure contains one frame of data from a IMU sensor. More...
 
struct  dwIMUSignalValidityInfo
 This structure contains validity of each signal provided by IMU sensors. More...
 

Enumerations

enum  dwIMUAlignmentStatus {
  DW_IMU_ALIGNMENT_STATUS_UNKNOWN = 0 ,
  DW_IMU_ALIGNMENT_STATUS_INVALID = 1 ,
  DW_IMU_ALIGNMENT_STATUS_COARSE = 2 ,
  DW_IMU_ALIGNMENT_STATUS_FINE = 3 ,
  DW_IMU_ALIGNMENT_STATUS_FORCE32 = 0x7FFFFFFF
}
 High rate data output from GNSS-IMU device requires fusion of GNSS and IMU. More...
 
enum  dwIMUFlags {
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1
}
 Each flag shows if that value is valid in this IMU frame. More...
 
enum  dwIMUHeadingType {
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_DEPRECATED_ENUM =("Use dwIMUFrame.validityInfo.heading instead") = 1U << 1 ,
  DW_IMU_HEADING_FORCE32 = 0x7FFFFFFF
}
 Types of the heading degree. More...
 
enum  dwIMUImuAccelerationQuality {
  DW_IMU_IMU_ACCELERATION_QUALITY_UNKNOWN = 0 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_INIT = 1 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_UNCALIB = 2 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_OK = 3 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_TMP_FAIL = 4 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_PRMNT_FAIL = 5 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_SENS_NOT_INST = 6 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_OVERLOAD = 7 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_TEMPERATURE = 8 ,
  DW_IMU_IMU_ACCELERATION_QUALITY_FORCE32 = 0x7FFFFFFF
}
 
enum  dwIMUImuStatus {
  DW_IMU_IMU_STATUS_UNKNOWN = 0 ,
  DW_IMU_IMU_STATUS_INIT = 1 ,
  DW_IMU_IMU_STATUS_UNCALIB = 2 ,
  DW_IMU_IMU_STATUS_OK = 3 ,
  DW_IMU_IMU_STATUS_TMP_FAIL = 4 ,
  DW_IMU_IMU_STATUS_PRMNT_FAIL = 5 ,
  DW_IMU_IMU_STATUS_SENS_NOT_INST = 6 ,
  DW_IMU_IMU_STATUS_FORCE32 = 0x7FFFFFFF
}
 
enum  dwIMUImuTempQuality {
  DW_IMU_IMU_TEMP_QUALITY_INIT = 0 ,
  DW_IMU_IMU_TEMP_QUALITY_UNCALIB = 1 ,
  DW_IMU_IMU_TEMP_QUALITY_OK = 2 ,
  DW_IMU_IMU_TEMP_QUALITY_TMP_FAIL = 3 ,
  DW_IMU_IMU_TEMP_QUALITY_PRMNT_FAIL = 4 ,
  DW_IMU_IMU_TEMP_QUALITY_SENS_NOT_INST = 5 ,
  DW_IMU_IMU_TEMP_QUALITY_FORCE32 = 0x7FFFFFFF
}
 
enum  dwIMUImuTimestampQuality {
  DW_IMU_IMU_TIMESTAMP_QUALITY_NOT_INIT = 0 ,
  DW_IMU_IMU_TIMESTAMP_QUALITY_OK = 2 ,
  DW_IMU_IMU_TIMESTAMP_QUALITY_SYNC_LOST = 3 ,
  DW_IMU_IMU_TIMESTAMP_QUALITY_FORCE32 = 0x7FFFFFFF
}
 
enum  dwIMUImuTurnrateAccelQuality {
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNKNOWN = 0 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_INIT = 1 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNCALIB = 2 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OK = 3 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TMP_FAIL = 4 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_PRMNT_FAIL = 5 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_SENS_NOT_INST = 6 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OVERLOAD = 7 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TEMPERATURE = 8 ,
  DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_FORCE32 = 0x7FFFFFFF
}
 
enum  dwIMUImuTurnrateQuality {
  DW_IMU_IMU_TURNRATE_QUALITY_UNKNOWN = 0 ,
  DW_IMU_IMU_TURNRATE_QUALITY_INIT = 1 ,
  DW_IMU_IMU_TURNRATE_QUALITY_UNCALIB = 2 ,
  DW_IMU_IMU_TURNRATE_QUALITY_OK = 3 ,
  DW_IMU_IMU_TURNRATE_QUALITY_TMP_FAIL = 4 ,
  DW_IMU_IMU_TURNRATE_QUALITY_PRMNT_FAIL = 5 ,
  DW_IMU_IMU_TURNRATE_QUALITY_SENS_NOT_INST = 6 ,
  DW_IMU_IMU_TURNRATE_QUALITY_OVERLOAD = 7 ,
  DW_IMU_IMU_TURNRATE_QUALITY_TEMPERATURE = 8 ,
  DW_IMU_IMU_TURNRATE_QUALITY_FORCE32 = 0x7FFFFFFF
}
 

Functions

DW_API_PUBLIC dwStatus dwSensorIMU_popFrame (dwIMUFrame *const frame, dwSensorHandle_t const sensor)
 Returns any IMU data previously processed through the raw data stream. More...
 
DW_API_PUBLIC dwStatus dwSensorIMU_popFrameNew (dwIMUFrameNew *const frame, dwSensorHandle_t const sensor)
 Returns any IMU Frame New previously processed through the raw data stream. More...
 
DW_API_PUBLIC dwStatus dwSensorIMU_processRawData (uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
 Reads the IMU frame from raw data. More...
 
DW_API_PUBLIC dwStatus dwSensorIMU_processRawDataNew (uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
 Reads the IMU frame New from raw data. More...
 
DW_API_PUBLIC dwStatus dwSensorIMU_readFrame (dwIMUFrame *const frame, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
 Reads the next IMU frame from the sensor within a given timeout. More...
 
DW_API_PUBLIC dwStatus dwSensorIMU_readFrameNew (dwIMUFrameNew *const frame, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
 Reads the next IMU frame New from the sensor within a given timeout. More...
 

Data Structure Documentation

◆ dwIMUFrame

struct dwIMUFrame
Data Fields
float64_t acceleration[3]
Note
ID VS-90050
description Acceleration in X, Y, and Z directions. Linear acceleration measured by the IMU sensor, it does include the gravity component as the sensor measures the reaction due to gravity. This is sometimes referred to as “proper acceleration”. This is an IMU sensor signal, as such it reflects all the motions of the sensor itself, including suspension flexing, gravity, vehicle turning, rolling and pitching. Coordinate system is that of the sensor itself, refer to manufacturer datasheet..
min nan max nan
freq 100 unit m/s²
float64_t accelerationOffset[3]
Note
ID VS-90100
description IMU acceleration offset values.
min nan max nan
freq 100 unit m/s²
dwIMUAlignmentStatus alignmentStatus Alignment status.
uint32_t flags The flags to show which values are valid in this IMU frame. Definition of each bit is in enum dwIMUFlags.
float64_t heading
Note
ID VS-90070
description Heading of the IMU measured in respect to the ENU system, i.e., compass. This is a signal that can be provided by certain IMU+GNSS sensor solutions as part of the state estimation. It is not used by egomotion. Heading is defined with respect to ENU coordinate system, whereas yaw is in an arbitrary local coordinate system..
min nan max nan
freq 100 unit deg
dwIMUHeadingType headingType Type of the heading information.
dwIMUImuAccelerationQuality imuAccelerationQuality[3]
Note
ID VS-90150
description Vehicle IMU acceleration values status.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_ACCELERATION_QUALITY_UNKNOWN DW_IMU_IMU_ACCELERATION_QUALITY_INIT, DW_IMU_IMU_ACCELERATION_QUALITY_UNCALIB, DW_IMU_IMU_ACCELERATION_QUALITY_OK, DW_IMU_IMU_ACCELERATION_QUALITY_TMP_FAIL, DW_IMU_IMU_ACCELERATION_QUALITY_PRMNT_FAIL, DW_IMU_IMU_ACCELERATION_QUALITY_SENS_NOT_INST, DW_IMU_IMU_ACCELERATION_QUALITY_OVERLOAD, DW_IMU_IMU_ACCELERATION_QUALITY_TEMPERATURE }
dwIMUImuStatus imuStatus
Note
ID VS-90200
description Vehicle IMU overall status.
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_STATUS_UNKNOWN DW_IMU_IMU_STATUS_INIT, DW_IMU_IMU_STATUS_UNCALIB, DW_IMU_IMU_STATUS_OK, DW_IMU_IMU_STATUS_TMP_FAIL, DW_IMU_IMU_STATUS_PRMNT_FAIL, DW_IMU_IMU_STATUS_SENS_NOT_INST }
dwIMUImuTempQuality imuTempQuality
Note
ID VS-90140
description Vehicle IMU temperature status.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TEMP_QUALITY_INIT, DW_IMU_IMU_TEMP_QUALITY_UNCALIB, DW_IMU_IMU_TEMP_QUALITY_OK, DW_IMU_IMU_TEMP_QUALITY_TMP_FAIL, DW_IMU_IMU_TEMP_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TEMP_QUALITY_SENS_NOT_INST }
dwIMUImuTimestampQuality imuTimestampQuality
Note
ID VS-90190
description Vehicle IMU timestamp quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TIMESTAMP_QUALITY_NOT_INIT, DW_IMU_IMU_TIMESTAMP_QUALITY_OK, DW_IMU_IMU_TIMESTAMP_QUALITY_SYNC_LOST, }
dwIMUImuTurnrateAccelQuality imuTurnrateAccelQuality[3]
Note
ID VS-90180
description Vehicle IMU gyroscope acceleration values quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNKNOWN DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_INIT, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNCALIB, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OK, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TMP_FAIL, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_SENS_NOT_INST, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OVERLOAD, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TEMPERATURE }
uint8_t imuTurnrateOffsetQuality[3]
Note
ID VS-90170
description Vehicle IMU gyroscope offset values quality on a scale of 0...62.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit unitless
uint8_t imuTurnrateOffsetQualityStatus[3]
Note
ID VS-90171
description Vehicle IMU gyroscope offset values quality is free of errors.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit unitless
dwIMUImuTurnrateQuality imuTurnrateQuality[3]
Note
ID VS-90160
description Vehicle IMU gyroscope values quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TURNRATE_QUALITY_UNKNOWN DW_IMU_IMU_TURNRATE_QUALITY_INIT, DW_IMU_IMU_TURNRATE_QUALITY_UNCALIB, DW_IMU_IMU_TURNRATE_QUALITY_OK, DW_IMU_IMU_TURNRATE_QUALITY_TMP_FAIL, DW_IMU_IMU_TURNRATE_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TURNRATE_QUALITY_SENS_NOT_INST, DW_IMU_IMU_TURNRATE_QUALITY_OVERLOAD, DW_IMU_IMU_TURNRATE_QUALITY_TEMPERATURE }
float64_t magnetometer[3]
Note
ID VS-90060
description Measurement of the magnetometer unit in X, Y, and Z directions.
min nan max nan
freq 100 unit utesla
float64_t orientation[3]
Note
ID VS-90020
description Roll, pitch, and yaw angle of the orientation returned by the IMU. This is a signal that can be provided by certain types of IMUs as part of their internal state estimation. It is not used by egomotion.
min nan max nan
freq 100 unit deg
dwQuaterniond orientationQuaternion
Note
ID VS-90030
description Quaternion representation (x, y, z, w) of the orientation returned by the IMU. This is a signal that can be provided by certain types of IMUs as part of their internal state estimation. It is not used by egomotion..
min nan max nan
freq 100 unit unitless
uint8_t reserved[495] Reserved.
uint8_t sequenceCounter
Note
description Sequence counter
TODO: Backend not yet implemented
float32_t temperature
Note
ID VS-90090
description IMU temperature.
min nan max nan
freq 100 unit C
dwTime_t timestamp_us
Note
ID VS-90010
description Timestamp for the current message. Indicates when it's first received.
min nan max nan
freq 100 unit us
uint8_t timeSyncStatus time sync status
float64_t turnrate[3]
Note
ID VS-90040
description Roll, pitch, and yaw turn rate (i.e., gyroscope). Angular velocities measured by the IMU sensor, they are given in the coordinate system of the sensor..
min nan max nan
freq 100 unit rad/s
float64_t turnrateAccel[3]
Note
ID VS-90120
description IMU gyroscope acceleration values.
min nan max nan
freq 100 unit rad/sec²
float64_t turnrateOffset[3]
Note
ID VS-90110
description IMU gyroscope offset values.
min nan max nan
freq 100 unit rad/s
dwIMUSignalValidityInfo validityInfo Signal validity info.

◆ dwIMUFrameNew

struct dwIMUFrameNew
Data Fields
float64_t acceleration[3]
Note
ID VS-90050
description Acceleration in X, Y, and Z directions. Linear acceleration measured by the IMU sensor, it does include the gravity component as the sensor measures the reaction due to gravity. This is sometimes referred to as “proper acceleration”. This is an IMU sensor signal, as such it reflects all the motions of the sensor itself, including suspension flexing, gravity, vehicle turning, rolling and pitching. Coordinate system is that of the sensor itself, refer to manufacturer datasheet..
min nan max nan
freq 100 unit m/s²
float64_t accelerationOffset[3]
Note
ID VS-90100
description IMU acceleration offset values.
min nan max nan
freq 100 unit m/s²
dwIMUAlignmentStatus alignmentStatus Alignment status.
float64_t heading
Note
ID VS-90070
description Heading of the IMU measured in respect to the ENU system, i.e., compass. This is a signal that can be provided by certain IMU+GNSS sensor solutions as part of the state estimation. It is not used by egomotion. Heading is defined with respect to ENU coordinate system, whereas yaw is in an arbitrary local coordinate system..
min nan max nan
freq 100 unit deg
dwIMUImuAccelerationQuality imuAccelerationQuality[3]
Note
ID VS-90150
description Vehicle IMU acceleration values status.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_ACCELERATION_QUALITY_UNKNOWN DW_IMU_IMU_ACCELERATION_QUALITY_INIT, DW_IMU_IMU_ACCELERATION_QUALITY_UNCALIB, DW_IMU_IMU_ACCELERATION_QUALITY_OK, DW_IMU_IMU_ACCELERATION_QUALITY_TMP_FAIL, DW_IMU_IMU_ACCELERATION_QUALITY_PRMNT_FAIL, DW_IMU_IMU_ACCELERATION_QUALITY_SENS_NOT_INST, DW_IMU_IMU_ACCELERATION_QUALITY_OVERLOAD, DW_IMU_IMU_ACCELERATION_QUALITY_TEMPERATURE }
dwIMUImuStatus imuStatus
Note
ID VS-90200
description Vehicle IMU overall status.
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_STATUS_UNKNOWN DW_IMU_IMU_STATUS_INIT, DW_IMU_IMU_STATUS_UNCALIB, DW_IMU_IMU_STATUS_OK, DW_IMU_IMU_STATUS_TMP_FAIL, DW_IMU_IMU_STATUS_PRMNT_FAIL, DW_IMU_IMU_STATUS_SENS_NOT_INST }
dwIMUImuTempQuality imuTempQuality
Note
ID VS-90140
description Vehicle IMU temperature status.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TEMP_QUALITY_INIT, DW_IMU_IMU_TEMP_QUALITY_UNCALIB, DW_IMU_IMU_TEMP_QUALITY_OK, DW_IMU_IMU_TEMP_QUALITY_TMP_FAIL, DW_IMU_IMU_TEMP_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TEMP_QUALITY_SENS_NOT_INST }
dwIMUImuTimestampQuality imuTimestampQuality
Note
ID VS-90190
description Vehicle IMU timestamp quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TIMESTAMP_QUALITY_NOT_INIT, DW_IMU_IMU_TIMESTAMP_QUALITY_OK, DW_IMU_IMU_TIMESTAMP_QUALITY_SYNC_LOST, }
dwIMUImuTurnrateAccelQuality imuTurnrateAccelQuality[3]
Note
ID VS-90180
description Vehicle IMU gyroscope acceleration values quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNKNOWN DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_INIT, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNCALIB, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OK, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TMP_FAIL, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_SENS_NOT_INST, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OVERLOAD, DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TEMPERATURE }
uint8_t imuTurnrateOffsetQuality[3]
Note
ID VS-90170
description Vehicle IMU gyroscope offset values quality on a scale of 0...62.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit unitless
uint8_t imuTurnrateOffsetQualityStatus[3]
Note
ID VS-90171
description Vehicle IMU gyroscope offset values quality is free of errors.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit unitless
dwIMUImuTurnrateQuality imuTurnrateQuality[3]
Note
ID VS-90160
description Vehicle IMU gyroscope values quality.
TODO: Backend not yet implemented
min nan max nan
freq 100 unit -
*** valid values**: { DW_IMU_IMU_TURNRATE_QUALITY_UNKNOWN DW_IMU_IMU_TURNRATE_QUALITY_INIT, DW_IMU_IMU_TURNRATE_QUALITY_UNCALIB, DW_IMU_IMU_TURNRATE_QUALITY_OK, DW_IMU_IMU_TURNRATE_QUALITY_TMP_FAIL, DW_IMU_IMU_TURNRATE_QUALITY_PRMNT_FAIL, DW_IMU_IMU_TURNRATE_QUALITY_SENS_NOT_INST, DW_IMU_IMU_TURNRATE_QUALITY_OVERLOAD, DW_IMU_IMU_TURNRATE_QUALITY_TEMPERATURE }
float64_t magnetometer[3]
Note
ID VS-90060
description Measurement of the magnetometer unit in X, Y, and Z directions.
min nan max nan
freq 100 unit utesla
float64_t orientation[3]
Note
ID VS-90020
description Roll, pitch, and yaw angle of the orientation returned by the IMU. This is a signal that can be provided by certain types of IMUs as part of their internal state estimation. It is not used by egomotion.
min nan max nan
freq 100 unit deg
dwQuaterniond orientationQuaternion
Note
ID VS-90030
description Quaternion representation (x, y, z, w) of the orientation returned by the IMU. This is a signal that can be provided by certain types of IMUs as part of their internal state estimation. It is not used by egomotion..
min nan max nan
freq 100 unit unitless
uint8_t reserved[504] Reserved.
uint8_t sequenceCounter
Note
description Sequence counter
TODO: Backend not yet implemented
float32_t temperature
Note
ID VS-90090
description IMU temperature.
min nan max nan
freq 100 unit C
dwTime_t timestamp_us
Note
ID VS-90010
description Timestamp for the current message. Indicates when it's first received.
min nan max nan
freq 100 unit us
float64_t turnrate[3]
Note
ID VS-90040
description Roll, pitch, and yaw turn rate (i.e., gyroscope). Angular velocities measured by the IMU sensor, they are given in the coordinate system of the sensor..
min nan max nan
freq 100 unit rad/s
float64_t turnrateAccel[3]
Note
ID VS-90120
description IMU gyroscope acceleration values.
min nan max nan
freq 100 unit rad/sec²
float64_t turnrateOffset[3]
Note
ID VS-90110
description IMU gyroscope offset values.
min nan max nan
freq 100 unit rad/s
dwIMUSignalValidityInfo validityInfo Signal validity information.

◆ dwIMUSignalValidityInfo

struct dwIMUSignalValidityInfo
Data Fields
dwSignalValidity acceleration[3] Validity of acceleration signals in X, Y and Z axis.
dwSignalValidity accelerationOffset[3] Validity of measured acceleration offsets in X, Y and Z axis.
dwSignalValidity alignmentStatus Validity of alignment status signal.
dwSignalValidity heading Validity of heading signal.
dwSignalValidity imuAccelerationQuality[3] Validity of status of acceleration values for X, Y and Z axis.
dwSignalValidity imuStatus Validity of overall IMU status signal.
dwSignalValidity imuTempQuality Validity of quality of measured temperature.
dwSignalValidity imuTimestampQuality Validity of status of timestamp signal.
dwSignalValidity imuTurnrateAccelQuality[3] Validity of status of gyroscope accelerations for roll, pitch and yaw angles.
dwSignalValidity imuTurnrateOffsetQuality[3] Validity of status of gyroscope offsets for roll, pitch and yaw angles.
dwSignalValidity imuTurnrateOffsetQualityStatus[3] Validity of status of IMU gyroscope offset quality values for roll, pitch and yaw angles.
dwSignalValidity imuTurnrateQuality[3] Validity of status of gyroscope values for roll, pitch and yaw angles.
dwSignalValidity magnetometer[3] Validity of measurement of magnetometer signals in X, Y and Z axis.
dwSignalValidity orientation[3] Validity of measurements of orientations in roll, pitch and yaw angles.
dwSignalValidity orientationQuaternion Validity of orientation values represented in quaternions.
dwSignalValidity reserved[58] Reserved space.
dwSignalValidity sequenceCounter Validity of IMU frame sequence counter value.
dwSignalValidity temperature Validity of measured temperature.
dwSignalValidity timestamp_us Validity of timestamp signal.
dwSignalValidity timeSyncStatus Validity of status of time sync.
dwSignalValidity turnrate[3] Validity of gyroscope in roll, pitch and yaw angles.
dwSignalValidity turnrateAccel[3] Validity of gyroscope accelerations in roll, pitch and yaw angles.
dwSignalValidity turnrateOffset[3] Validity of gyroscope offsets in roll, pitch and yaw angles.

Enumeration Type Documentation

◆ dwIMUAlignmentStatus

High rate data output from GNSS-IMU device requires fusion of GNSS and IMU.

The data can only be accurate if the GNSS/IMU device has gone through an internal alignment initialization, which allows the device to know the orientation of the IMU. This status indicates the quality of IMU alignment.

Enumerator
DW_IMU_ALIGNMENT_STATUS_UNKNOWN 

Unknown status means the device does not or has not yet provided this information.

DW_IMU_ALIGNMENT_STATUS_INVALID 

Invalid means the IMU alignment is not yet valid, and the output data is not accurate.

DW_IMU_ALIGNMENT_STATUS_COARSE 

Coarse means the IMU is roughly aligned, so the data is useful, but not of the highest quality.

DW_IMU_ALIGNMENT_STATUS_FINE 

Fine means the IMU alignment is complete, and the device can output high quality data.

DW_IMU_ALIGNMENT_STATUS_FORCE32 

Definition at line 109 of file IMU.h.

◆ dwIMUFlags

enum dwIMUFlags

Each flag shows if that value is valid in this IMU frame.

Enumerator
DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

Definition at line 61 of file IMU.h.

◆ dwIMUHeadingType

Types of the heading degree.

Enumerator
DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwIMUFrame.heading is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_IMU_HEADING_FORCE32 

Guard.

Definition at line 92 of file IMU.h.

◆ dwIMUImuAccelerationQuality

Enumerator
DW_IMU_IMU_ACCELERATION_QUALITY_UNKNOWN 

Signal Unknown.

DW_IMU_IMU_ACCELERATION_QUALITY_INIT 

Signal initializing.

DW_IMU_IMU_ACCELERATION_QUALITY_UNCALIB 

Sensor uncalibrated.

DW_IMU_IMU_ACCELERATION_QUALITY_OK 

Signal in specification.

DW_IMU_IMU_ACCELERATION_QUALITY_TMP_FAIL 

Signal temporary failure.

DW_IMU_IMU_ACCELERATION_QUALITY_PRMNT_FAIL 

Signal permanent failure.

DW_IMU_IMU_ACCELERATION_QUALITY_SENS_NOT_INST 

Sensor not installed.

DW_IMU_IMU_ACCELERATION_QUALITY_OVERLOAD 

Sensor overloaded.

DW_IMU_IMU_ACCELERATION_QUALITY_TEMPERATURE 

Sensor out of operating temperature.

DW_IMU_IMU_ACCELERATION_QUALITY_FORCE32 

Definition at line 139 of file IMU.h.

◆ dwIMUImuStatus

Enumerator
DW_IMU_IMU_STATUS_UNKNOWN 

Signal Unknown.

DW_IMU_IMU_STATUS_INIT 

Signal initializing.

DW_IMU_IMU_STATUS_UNCALIB 

Sensor uncalibrated.

DW_IMU_IMU_STATUS_OK 

Signal in specification.

DW_IMU_IMU_STATUS_TMP_FAIL 

Signal temporary failure.

DW_IMU_IMU_STATUS_PRMNT_FAIL 

Signal permanent failure.

DW_IMU_IMU_STATUS_SENS_NOT_INST 

Sensor not installed.

DW_IMU_IMU_STATUS_FORCE32 

Definition at line 216 of file IMU.h.

◆ dwIMUImuTempQuality

Enumerator
DW_IMU_IMU_TEMP_QUALITY_INIT 

Signal initializing.

DW_IMU_IMU_TEMP_QUALITY_UNCALIB 

Sensor uncalibrated.

DW_IMU_IMU_TEMP_QUALITY_OK 

Signal in specification.

DW_IMU_IMU_TEMP_QUALITY_TMP_FAIL 

Signal temporary failure.

DW_IMU_IMU_TEMP_QUALITY_PRMNT_FAIL 

Signal permanent failure.

DW_IMU_IMU_TEMP_QUALITY_SENS_NOT_INST 

Sensor not installed.

DW_IMU_IMU_TEMP_QUALITY_FORCE32 

Definition at line 122 of file IMU.h.

◆ dwIMUImuTimestampQuality

Enumerator
DW_IMU_IMU_TIMESTAMP_QUALITY_NOT_INIT 

Not Initialized. still initializing.

DW_IMU_IMU_TIMESTAMP_QUALITY_OK 

Normal Operation. Functional and Electrical Checks Passed.

DW_IMU_IMU_TIMESTAMP_QUALITY_SYNC_LOST 

Synchronization lost.

DW_IMU_IMU_TIMESTAMP_QUALITY_FORCE32 

Definition at line 205 of file IMU.h.

◆ dwIMUImuTurnrateAccelQuality

Enumerator
DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNKNOWN 

Signal Unknown.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_INIT 

Signal initializing.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNCALIB 

Sensor uncalibrated.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OK 

Signal in specification.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TMP_FAIL 

Signal temporary failure.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_PRMNT_FAIL 

Signal permanent failure.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_SENS_NOT_INST 

Sensor not installed.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OVERLOAD 

Sensor overloaded.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TEMPERATURE 

Sensor out of operating temperature.

DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_FORCE32 

Definition at line 183 of file IMU.h.

◆ dwIMUImuTurnrateQuality

Enumerator
DW_IMU_IMU_TURNRATE_QUALITY_UNKNOWN 

Signal Unknown.

DW_IMU_IMU_TURNRATE_QUALITY_INIT 

Signal initializing.

DW_IMU_IMU_TURNRATE_QUALITY_UNCALIB 

Sensor uncalibrated.

DW_IMU_IMU_TURNRATE_QUALITY_OK 

Signal in specification.

DW_IMU_IMU_TURNRATE_QUALITY_TMP_FAIL 

Signal temporary failure.

DW_IMU_IMU_TURNRATE_QUALITY_PRMNT_FAIL 

Signal permanent failure.

DW_IMU_IMU_TURNRATE_QUALITY_SENS_NOT_INST 

Sensor not installed.

DW_IMU_IMU_TURNRATE_QUALITY_OVERLOAD 

Sensor overloaded.

DW_IMU_IMU_TURNRATE_QUALITY_TEMPERATURE 

Sensor out of operating temperature.

DW_IMU_IMU_TURNRATE_QUALITY_FORCE32 

Definition at line 161 of file IMU.h.

Function Documentation

◆ dwSensorIMU_popFrame()

DW_API_PUBLIC dwStatus dwSensorIMU_popFrame ( dwIMUFrame *const  frame,
dwSensorHandle_t const  sensor 
)

Returns any IMU data previously processed through the raw data stream.

This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[out]framePointer to an IMU frame structure to be filled with new data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_NOT_AVAILABLE - if no more data is available
DW_SUCCESS

◆ dwSensorIMU_popFrameNew()

DW_API_PUBLIC dwStatus dwSensorIMU_popFrameNew ( dwIMUFrameNew *const  frame,
dwSensorHandle_t const  sensor 
)

Returns any IMU Frame New previously processed through the raw data stream.

This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[out]framePointer to an IMU frame New structure to be filled with new data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_NOT_AVAILABLE - if no more data is available
DW_SUCCESS

◆ dwSensorIMU_processRawData()

DW_API_PUBLIC dwStatus dwSensorIMU_processRawData ( uint8_t const *const  data,
size_t const  size,
dwSensorHandle_t const  sensor 
)

Reads the IMU frame from raw data.

Any processed messages can be picked up using the dwSensorIMU_readFrame() method. This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[in]dataUndecoded imu data.
[in]sizeSize in bytes of the raw data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid,
DW_INVALID_ARGUMENTS - if given arguments are invalid,
DW_NOT_READY - if more data needs to be passed in (loop while it returns 'DW_NOT_READY').
DW_SUCCESS

◆ dwSensorIMU_processRawDataNew()

DW_API_PUBLIC dwStatus dwSensorIMU_processRawDataNew ( uint8_t const *const  data,
size_t const  size,
dwSensorHandle_t const  sensor 
)

Reads the IMU frame New from raw data.

Any processed messages can be picked up using the dwSensorIMU_readFrameNew() method. This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[in]dataUndecoded imu data.
[in]sizeSize in bytes of the raw data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid,
DW_INVALID_ARGUMENTS - if given arguments are invalid,
DW_NOT_READY - if more data needs to be passed in (loop while it returns 'DW_NOT_READY').
DW_SUCCESS

◆ dwSensorIMU_readFrame()

DW_API_PUBLIC dwStatus dwSensorIMU_readFrame ( dwIMUFrame *const  frame,
dwTime_t const  timeoutUs,
dwSensorHandle_t const  sensor 
)

Reads the next IMU frame from the sensor within a given timeout.

The method blocks until either a new valid frame is received from the sensor or the given timeout is exceeded.

Parameters
[out]frameA pointer to an IMU frame structure to be filled with new data.
[in]timeoutUsTimeout, in us, to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitely. Zero - means polling of internal queue.
[in]sensorSensor handle of the IMU sensor previously created with dwSAL_createSensor().
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid
DW_INVALID_ARGUMENTS - if given arguments are invalid
DW_TIME_OUT - if operation has timeout
DW_NOT_AVAILABLE - if sensor has not been started or data is not available in polling mode.
DW_END_OF_STREAM - if end of stream reached (virtual sensor only).
DW_SAL_SENSOR_ERROR - if there was an i/o or bus error.
DW_SUCCESS

◆ dwSensorIMU_readFrameNew()

DW_API_PUBLIC dwStatus dwSensorIMU_readFrameNew ( dwIMUFrameNew *const  frame,
dwTime_t const  timeoutUs,
dwSensorHandle_t const  sensor 
)

Reads the next IMU frame New from the sensor within a given timeout.

The method blocks until either a new valid frame is received from the sensor or the given timeout is exceeded.

Parameters
[out]frameA pointer to an IMU frame New structure to be filled with new data.
[in]timeoutUsTimeout, in us, to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitely. Zero - means polling of internal queue.
[in]sensorSensor handle of the IMU sensor previously created with dwSAL_createSensor().
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid
DW_INVALID_ARGUMENTS - if given arguments are invalid
DW_TIME_OUT - if operation has timeout
DW_NOT_AVAILABLE - if sensor has not been started or data is not available in polling mode.
DW_END_OF_STREAM - if end of stream reached (virtual sensor only).
DW_SAL_SENSOR_ERROR - if there was an i/o or bus error.
DW_SUCCESS