- Welcome
- Getting Started With the NVIDIA DriveWorks SDK
- Modules
- Samples
- Tools
- Tutorials
- SDK Porting Guide
- DriveWorks API
- More
Defines the IMU sensor.
Data Structures | |
struct | dwIMUFrame |
An IMU frame containing sensor readings from the IMU sensor. More... | |
struct | dwIMUFrameNew |
This structure contains one frame of data from a IMU sensor. More... | |
struct | dwIMUFrameNew.validityInfo |
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... | |
struct dwIMUFrame |
Data Fields | ||
---|---|---|
float64_t | acceleration[3] | Acceleration in X, Y, and Z directions [m/s^2]. |
dwIMUAlignmentStatus | alignmentStatus | Alignment status. |
uint32_t | flags | The flags to show which values are valid in this IMU frame. |
float64_t | heading | Heading of the IMU measured in respect to the ENU system [degrees], i.e., compass. |
dwIMUHeadingType | headingType | Type of the heading information. |
float64_t | magnetometer[3] | Measurement of the magnetometer unit in X, Y, and Z directions [utesla]. |
float64_t | orientation[3] | Roll, pitch, and yaw angle of the orientation returned by the IMU [degree]. |
dwQuaterniond | orientationQuaternion | Quaternion representation (x, y, z, w) of the orientation returned by the IMU. |
dwTime_t | timestamp_us | Timestamp for the current message. Indicates when it's first received [usec]. |
float64_t | turnrate[3] | Roll, pitch, and yaw turn rate (i.e., gyroscope)[rad/s]. |
struct dwIMUFrameNew |
Data Fields | ||
---|---|---|
float64_t | acceleration[3] |
|
float64_t | accelerationOffset[3] |
|
dwIMUAlignmentStatus | alignmentStatus | Alignment status. |
float64_t | heading |
|
dwIMUImuAccelerationQuality | imuAccelerationQuality[3] |
|
dwIMUImuStatus | imuStatus |
|
dwIMUImuTempQuality | imuTempQuality |
|
dwIMUImuTimestampQuality | imuTimestampQuality |
|
dwIMUImuTurnrateAccelQuality | imuTurnrateAccelQuality[3] |
|
uint8_t | imuTurnrateOffsetQuality[3] |
|
dwIMUImuTurnrateQuality | imuTurnrateQuality[3] |
|
float64_t | magnetometer[3] |
|
float64_t | orientation[3] |
|
dwQuaterniond | orientationQuaternion |
|
uint8_t | reserved[508] | |
uint8_t | sequenceCounter |
|
float32_t | temperature |
|
dwTime_t | timestamp_us |
|
float64_t | turnrate[3] |
|
float64_t | turnrateAccel[3] |
|
float64_t | turnrateOffset[3] |
|
struct dwIMUFrameNew.validityInfo | validityInfo |
struct dwIMUFrameNew.validityInfo |
Data Fields | ||
---|---|---|
dwSignalValidity | acceleration[3] | |
dwSignalValidity | accelerationOffset[3] | |
dwSignalValidity | alignmentStatus | |
dwSignalValidity | heading | |
dwSignalValidity | imuAccelerationQuality[3] | |
dwSignalValidity | imuStatus | |
dwSignalValidity | imuTempQuality | |
dwSignalValidity | imuTimestampQuality | |
dwSignalValidity | imuTurnrateAccelQuality[3] | |
dwSignalValidity | imuTurnrateOffsetQuality[3] | |
dwSignalValidity | imuTurnrateQuality[3] | |
dwSignalValidity | magnetometer[3] | |
dwSignalValidity | orientation[3] | |
dwSignalValidity | orientationQuaternion | |
dwSignalValidity | reserved[63] | |
dwSignalValidity | sequenceCounter | |
dwSignalValidity | temperature | |
dwSignalValidity | timestamp_us | |
dwSignalValidity | turnrate[3] | |
dwSignalValidity | turnrateAccel[3] | |
dwSignalValidity | turnrateOffset[3] |
enum 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.
enum dwIMUFlags |
Each flag shows if that value is valid in this IMU frame.
Enumerator | |
---|---|
DW_IMU_HEADING | Value of dwIMUFrame.heading is valid. |
DW_IMU_ROLL | Value of dwIMUFrame.orientation[0] is valid. |
DW_IMU_PITCH | Value of dwIMUFrame.orientation[1] is valid. |
DW_IMU_YAW | Value of dwIMUFrame.orientation[2] is valid. |
DW_IMU_QUATERNION_X | |
DW_IMU_QUATERNION_Y | !< Value of dwIMUFrame.orientationQuaternion.x is valid. |
DW_IMU_QUATERNION_Z | !< Value of dwIMUFrame.orientationQuaternion.y is valid. |
DW_IMU_QUATERNION_W | !< Value of dwIMUFrame.orientationQuaternion.z is valid. |
DW_IMU_ROLL_RATE | !< Value of dwIMUFrame.orientationQuaternion.w is valid. Value of dwIMUFrame.turnrate[0] is valid. |
DW_IMU_PITCH_RATE | Value of dwIMUFrame.turnrate[1] is valid. |
DW_IMU_YAW_RATE | Value of dwIMUFrame.turnrate[2] is valid. |
DW_IMU_ACCELERATION_X | Value of dwIMUFrame.acceleration[0] is valid. |
DW_IMU_ACCELERATION_Y | Value of dwIMUFrame.acceleration[1] is valid. |
DW_IMU_ACCELERATION_Z | Value of dwIMUFrame.acceleration[2] is valid. |
DW_IMU_MAGNETOMETER_X | Value of dwIMUFrame.magnetometer[0] is valid. |
DW_IMU_MAGNETOMETER_Y | Value of dwIMUFrame.magnetometer[1] is valid. |
DW_IMU_MAGNETOMETER_Z | Value of dwIMUFrame.magnetometer[2] is valid. |
DW_IMU_ALIGNMENTSTATUS | Value of dwIMUFrame.alignmentStatus is valid. |
enum dwIMUHeadingType |
Types of the heading degree.
Enumerator | |
---|---|
DW_IMU_HEADING_TRUE | True heading. 'dwIMUFrame.heading' points towards true north. |
DW_IMU_HEADING_MAGNETIC | Magnetic heading. 'dwIMUFrame.heading' points towards magnetic north. |
enum dwIMUImuStatus |
enum dwIMUImuTempQuality |
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.
[out] | frame | Pointer to an IMU frame structure to be filled with new data. |
[in] | sensor | Sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
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.
[out] | frame | Pointer to an IMU frame New structure to be filled with new data. |
[in] | sensor | Sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
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.
[in] | data | Undecoded imu data. |
[in] | size | Size in bytes of the raw data. |
[in] | sensor | Sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
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.
[in] | data | Undecoded imu data. |
[in] | size | Size in bytes of the raw data. |
[in] | sensor | Sensor handle of the sensor previously created with 'dwSAL_createSensor()'. |
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.
[out] | frame | A pointer to an IMU frame structure to be filled with new data. |
[in] | timeoutUs | Timeout, in us, to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitely. Zero - means polling of internal queue. |
[in] | sensor | Sensor handle of the IMU sensor previously created with dwSAL_createSensor(). |
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.
[out] | frame | A pointer to an IMU frame New structure to be filled with new data. |
[in] | timeoutUs | Timeout, in us, to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitely. Zero - means polling of internal queue. |
[in] | sensor | Sensor handle of the IMU sensor previously created with dwSAL_createSensor(). |