47#ifndef DW_SENSORS_IMU_IMU_H_
48#define DW_SENSORS_IMU_IMU_H_
65 DW_IMU_ROLL
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientation[0] instead") = 1U << 2,
66 DW_IMU_PITCH
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientation[1] instead") = 1U << 3,
67 DW_IMU_YAW
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientation[2] instead") = 1U << 4,
69 DW_IMU_QUATERNION_X
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientationQuaternion instead") = 1U << 5,
70 DW_IMU_QUATERNION_Y
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientationQuaternion instead") = 1U << 6,
71 DW_IMU_QUATERNION_Z
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientationQuaternion instead") = 1U << 7,
72 DW_IMU_QUATERNION_W
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.orientationQuaternion instead") = 1U << 8,
74 DW_IMU_ROLL_RATE
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.turnrate[0] instead") = 1U << 9,
75 DW_IMU_PITCH_RATE
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.turnrate[1] instead") = 1U << 10,
76 DW_IMU_YAW_RATE
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.turnrate[2] instead") = 1U << 11,
78 DW_IMU_ACCELERATION_X
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.acceleration[0] instead") = 1U << 12,
79 DW_IMU_ACCELERATION_Y
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.acceleration[1] instead") = 1U << 13,
80 DW_IMU_ACCELERATION_Z
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.acceleration[2] instead") = 1U << 14,
82 DW_IMU_MAGNETOMETER_X
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.magnetometer[0] instead") = 1U << 15,
83 DW_IMU_MAGNETOMETER_Y
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.magnetometer[1] instead") = 1U << 16,
84 DW_IMU_MAGNETOMETER_Z
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.magnetometer[2] instead") = 1U << 17,
86 DW_IMU_ALIGNMENTSTATUS
DW_DEPRECATED_ENUM(
"Use dwIMUFrame.validityInfo.alignmentStatus instead") = 1U << 18
89 DW_DEPRECATED(
"dwIMUFlags is deprecated and will be removed in the future, use dwIMUFrame.validityInfo and APIs from IMUGetterSetter.h instead");
103 DW_DEPRECATED(
"dwIMUHeadingType is deprecated and will be removed in the future");
479#pragma GCC diagnostic push
480#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
483 DW_DEPRECATED(
"headingType is deprecated and will be removed in the next major release. Please don't use this field.");
484#pragma GCC diagnostic pop
488 DW_DEPRECATED(
"flags is deprecated and will be removed in next major release. Please use APIs provided in IMUGetterSetter.h to access and check validity of signals");
691 DW_DEPRECATED(
"dwIMUFrameNew is deprecated and will be removed soon. Please use dwIMUFrame instead.");
760#pragma GCC diagnostic push
761#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
764 DW_DEPRECATED(
"dwSensorIMU_readFrameNew() is deprecated and will be removed in next major release. Please use dwSensorIMU_readFrame() instead");
765#pragma GCC diagnostic pop
783 DW_DEPRECATED(
"dwSensorIMU_processRawDataNew() is deprecated and will be removed in next major release. Please use dwSensorIMU_processRawData() instead");
797#pragma GCC diagnostic push
798#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
801 DW_DEPRECATED(
"dwSensorIMU_popFrameNew() is deprecated and will be removed in next major release. Please use dwSensorIMU_popFrame() instead");
802#pragma GCC diagnostic pop
Defines a double-precision quaternion.
NVIDIA DriveWorks API: Sensors
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Core Exports
float float32_t
Specifies POD types.
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
#define DW_DEPRECATED(msg)
uint8_t dwSignalValidity
The type of the encoded status field.
dwStatus
Status definition.
dwIMUImuTurnrateAccelQuality imuTurnrateAccelQuality[3]
dwSignalValidity alignmentStatus
Validity of alignment status signal.
dwQuaterniond orientationQuaternion
float64_t turnrateOffset[3]
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.
float64_t turnrateAccel[3]
dwSignalValidity imuTimestampQuality
Validity of status of timestamp signal.
dwSignalValidity imuTempQuality
Validity of quality of measured temperature.
dwIMUImuTempQuality imuTempQuality
dwSignalValidity sequenceCounter
Validity of IMU frame sequence counter value.
dwIMUImuTurnrateQuality imuTurnrateQuality[3]
dwSignalValidity imuTurnrateAccelQuality[3]
Validity of status of gyroscope accelerations for roll, pitch and yaw angles.
float64_t acceleration[3]
dwSignalValidity acceleration[3]
Validity of acceleration signals in X, Y and Z axis.
dwSignalValidity orientation[3]
Validity of measurements of orientations in roll, pitch and yaw angles.
dwIMUHeadingType headingType
Type of the heading information.
dwSignalValidity turnrate[3]
Validity of gyroscope in roll, pitch and yaw angles.
float64_t accelerationOffset[3]
float64_t accelerationOffset[3]
dwIMUSignalValidityInfo validityInfo
Signal validity info.
dwSignalValidity imuStatus
Validity of overall IMU status signal.
float64_t turnrateOffset[3]
uint8_t reserved[504]
Reserved.
uint8_t reserved[495]
Reserved.
uint8_t imuTurnrateOffsetQualityStatus[3]
dwSignalValidity temperature
Validity of measured temperature.
uint8_t timeSyncStatus
time sync status
dwSignalValidity reserved[58]
Reserved space.
uint8_t imuTurnrateOffsetQuality[3]
uint8_t imuTurnrateOffsetQualityStatus[3]
float64_t acceleration[3]
dwSignalValidity imuAccelerationQuality[3]
Validity of status of acceleration values for X, Y and Z axis.
float64_t magnetometer[3]
dwIMUImuAccelerationQuality imuAccelerationQuality[3]
dwSignalValidity magnetometer[3]
Validity of measurement of magnetometer signals in X, Y and Z axis.
dwSignalValidity orientationQuaternion
Validity of orientation values represented in quaternions.
dwIMUSignalValidityInfo validityInfo
Signal validity information.
dwIMUImuAccelerationQuality imuAccelerationQuality[3]
dwIMUImuTurnrateAccelQuality imuTurnrateAccelQuality[3]
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.
dwQuaterniond orientationQuaternion
dwSignalValidity accelerationOffset[3]
Validity of measured acceleration offsets in X, Y and Z axis.
float64_t magnetometer[3]
dwIMUAlignmentStatus alignmentStatus
Alignment status.
float64_t turnrateAccel[3]
uint8_t imuTurnrateOffsetQuality[3]
dwSignalValidity timeSyncStatus
Validity of status of time sync.
dwIMUImuTimestampQuality imuTimestampQuality
dwIMUImuTempQuality imuTempQuality
dwSignalValidity timestamp_us
Validity of timestamp signal.
dwSignalValidity imuTurnrateQuality[3]
Validity of status of gyroscope values for roll, pitch and yaw angles.
dwIMUImuTurnrateQuality imuTurnrateQuality[3]
dwIMUImuTimestampQuality imuTimestampQuality
dwSignalValidity heading
Validity of heading signal.
uint32_t flags
The flags to show which values are valid in this IMU frame. Definition of each bit is in enum dwIMUFl...
dwIMUAlignmentStatus alignmentStatus
Alignment status.
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.
dwIMUAlignmentStatus
High rate data output from GNSS-IMU device requires fusion of GNSS and IMU.
dwIMUFlags
Each flag shows if that value is valid in this IMU frame.
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.
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.
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.
dwIMUImuTurnrateAccelQuality
dwIMUHeadingType
Types of the heading degree.
dwIMUImuAccelerationQuality
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.
DW_API_PUBLIC dwStatus dwSensorIMU_popFrame(dwIMUFrame *const frame, dwSensorHandle_t const sensor)
Returns any IMU data previously processed through the raw data stream.
@ 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_UNKNOWN
Unknown status means the device does not or has not yet provided this information.
@ DW_IMU_ALIGNMENT_STATUS_FORCE32
@ 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_IMU_TURNRATE_QUALITY_FORCE32
@ DW_IMU_IMU_TURNRATE_QUALITY_INIT
Signal initializing.
@ DW_IMU_IMU_TURNRATE_QUALITY_PRMNT_FAIL
Signal permanent failure.
@ DW_IMU_IMU_TURNRATE_QUALITY_TEMPERATURE
Sensor out of operating temperature.
@ DW_IMU_IMU_TURNRATE_QUALITY_OK
Signal in specification.
@ DW_IMU_IMU_TURNRATE_QUALITY_TMP_FAIL
Signal temporary failure.
@ DW_IMU_IMU_TURNRATE_QUALITY_OVERLOAD
Sensor overloaded.
@ DW_IMU_IMU_TURNRATE_QUALITY_SENS_NOT_INST
Sensor not installed.
@ DW_IMU_IMU_TURNRATE_QUALITY_UNKNOWN
Signal Unknown.
@ DW_IMU_IMU_TURNRATE_QUALITY_UNCALIB
Sensor uncalibrated.
@ DW_IMU_IMU_STATUS_PRMNT_FAIL
Signal permanent failure.
@ DW_IMU_IMU_STATUS_UNCALIB
Sensor uncalibrated.
@ DW_IMU_IMU_STATUS_FORCE32
@ DW_IMU_IMU_STATUS_SENS_NOT_INST
Sensor not installed.
@ DW_IMU_IMU_STATUS_UNKNOWN
Signal Unknown.
@ DW_IMU_IMU_STATUS_OK
Signal in specification.
@ DW_IMU_IMU_STATUS_TMP_FAIL
Signal temporary failure.
@ DW_IMU_IMU_STATUS_INIT
Signal initializing.
@ DW_IMU_IMU_TEMP_QUALITY_FORCE32
@ DW_IMU_IMU_TEMP_QUALITY_SENS_NOT_INST
Sensor not installed.
@ DW_IMU_IMU_TEMP_QUALITY_TMP_FAIL
Signal temporary failure.
@ 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_PRMNT_FAIL
Signal permanent failure.
@ DW_IMU_IMU_TIMESTAMP_QUALITY_SYNC_LOST
Synchronization lost.
@ DW_IMU_IMU_TIMESTAMP_QUALITY_NOT_INIT
Not Initialized. still initializing.
@ DW_IMU_IMU_TIMESTAMP_QUALITY_FORCE32
@ DW_IMU_IMU_TIMESTAMP_QUALITY_OK
Normal Operation. Functional and Electrical Checks Passed.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_OK
Signal in specification.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TEMPERATURE
Sensor out of operating temperature.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_TMP_FAIL
Signal temporary failure.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_UNKNOWN
Signal Unknown.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_INIT
Signal initializing.
@ 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_UNCALIB
Sensor uncalibrated.
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_FORCE32
@ DW_IMU_IMU_TURNRATE_ACCEL_QUALITY_PRMNT_FAIL
Signal permanent failure.
@ DW_IMU_HEADING_FORCE32
Guard.
@ DW_DEPRECATED_ENUM
Value of dwIMUFrame.heading is valid.
@ DW_IMU_IMU_ACCELERATION_QUALITY_UNKNOWN
Signal Unknown.
@ DW_IMU_IMU_ACCELERATION_QUALITY_TEMPERATURE
Sensor out of operating temperature.
@ DW_IMU_IMU_ACCELERATION_QUALITY_INIT
Signal initializing.
@ DW_IMU_IMU_ACCELERATION_QUALITY_SENS_NOT_INST
Sensor not installed.
@ DW_IMU_IMU_ACCELERATION_QUALITY_TMP_FAIL
Signal temporary failure.
@ DW_IMU_IMU_ACCELERATION_QUALITY_UNCALIB
Sensor uncalibrated.
@ DW_IMU_IMU_ACCELERATION_QUALITY_FORCE32
@ DW_IMU_IMU_ACCELERATION_QUALITY_PRMNT_FAIL
Signal permanent failure.
@ DW_IMU_IMU_ACCELERATION_QUALITY_OK
Signal in specification.
@ DW_IMU_IMU_ACCELERATION_QUALITY_OVERLOAD
Sensor overloaded.
This structure contains one frame of data from a IMU sensor.
This structure contains one frame of data from a IMU sensor.
This structure contains validity of each signal provided by IMU sensors.
struct dwSensorObject * dwSensorHandle_t
Handle representing a sensor.