DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

Egomotion.h File Reference

Detailed Description

NVIDIA DriveWorks API: Egomotion Methods

Description: This file defines the motion models estimating the pose of the vehicle.

Definition in file Egomotion.h.

Go to the source code of this file.

Data Structures

struct  dwEgomotionLinearAccelerationFilterParams
 Defines egomotion linear acceleration filter parameters. More...
 
struct  dwEgomotionParameters
 Holds initialization parameters for the Egomotion module. More...
 
struct  dwEgomotionRelativeUncertainty
 Holds egomotion uncertainty estimates for a relative motion estimate. More...
 
struct  dwEgomotionResult
 Holds egomotion state estimate. More...
 
struct  dwEgomotionSensorCharacteristics
 Sensor measurement noise characteristics. More...
 
struct  dwEgomotionSuspensionParameters
 Suspension model type and parameters. More...
 
struct  dwEgomotionUncertainty
 Holds egomotion uncertainty estimates. More...
 

Typedefs

typedef struct dwEgomotionObject const * dwEgomotionConstHandle_t
 
typedef struct dwEgomotionObject * dwEgomotionHandle_t
 

Enumerations

enum  dwEgomotionDataField {
  DW_EGOMOTION_ROTATION = 1 << 0,
  DW_EGOMOTION_LIN_VEL_X = 1 << 1,
  DW_EGOMOTION_LIN_VEL_Y = 1 << 2,
  DW_EGOMOTION_LIN_VEL_Z = 1 << 3,
  DW_EGOMOTION_ANG_VEL_X = 1 << 4,
  DW_EGOMOTION_ANG_VEL_Y = 1 << 5,
  DW_EGOMOTION_ANG_VEL_Z = 1 << 6,
  DW_EGOMOTION_LIN_ACC_X = 1 << 7,
  DW_EGOMOTION_LIN_ACC_Y = 1 << 8,
  DW_EGOMOTION_LIN_ACC_Z = 1 << 9
}
 Defines flags that indicate validity of corresponding data in dwEgomotionResult and dwEgomotionUncertainty. More...
 
enum  dwEgomotionLinearAccelerationFilterMode {
  DW_EGOMOTION_ACC_FILTER_NO_FILTERING,
  DW_EGOMOTION_ACC_FILTER_SIMPLE
}
 Defines egomotion linear acceleration filter mode. More...
 
enum  dwEgomotionSpeedMeasurementType {
  DW_EGOMOTION_FRONT_SPEED = 0,
  DW_EGOMOTION_REAR_WHEEL_SPEED = 1
}
 Defines speed measurement types. More...
 
enum  dwEgomotionSuspensionModel {
  DW_EGOMOTION_SUSPENSION_RIGID_MODEL = 0,
  DW_EGOMOTION_SUSPENSION_TORSIONAL_SPRING_MODEL = 1
}
 Defines egomotion suspension model. More...
 
enum  dwMotionModel {
  DW_EGOMOTION_ODOMETRY = 1 << 0,
  DW_EGOMOTION_IMU_ODOMETRY = 1 << 1 | DW_EGOMOTION_ODOMETRY
}
 Defines the motion models. More...
 
enum  dwMotionModelMeasurement {
  DW_DEPRECATED_ENUM =("Use DW_EGOMOTION_MEASUREMENT_VELOCITY") = 0,
  DW_EGOMOTION_MEASUREMENT_VELOCITY = 0,
  DW_DEPRECATED_ENUM =("Use DW_EGOMOTION_MEASUREMENT_VELOCITY") = 0,
  DW_EGOMOTION_MEASUREMENT_STEERINGANGLE = 1,
  DW_DEPRECATED_ENUM =("Use DW_EGOMOTION_MEASUREMENT_VELOCITY") = 0,
  DW_EGOMOTION_MEASUREMENT_STEERINGWHEELANGLE = 2
}
 Defines motion measurements. More...
 

Functions

DW_API_PUBLIC dwStatus dwEgomotion_addIMUMeasurement (const dwIMUFrame *imu, dwEgomotionHandle_t obj)
 Adds an IMU frame to the egomotion module. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_addOdometry (dwMotionModelMeasurement measuredType, float32_t measuredValue, dwTime_t timestamp, dwEgomotionHandle_t obj)
 Notifies the egomotion module of a new odometry measurement. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_addVehicleState (const dwVehicleIOState *state, dwEgomotionHandle_t obj)
 Notifies the egomotion module of a changed vehicle state. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_applyRelativeTransformation (dwTransformation3f *newVehicle2World, const dwTransformation3f *poseOld2New, const dwTransformation3f *oldVehicle2World)
 Applies the estimated relative motion as returned by dwEgomotion_computeRelativeTransformation() to a given vehicle pose. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_computeRelativeTransformation (dwTransformation3f *poseAtoB, dwEgomotionRelativeUncertainty *uncertainty, dwTime_t timestamp_a, dwTime_t timestamp_b, dwEgomotionConstHandle_t obj)
 Computes the relative transformation between two timestamps and the uncertainty of this transform. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_computeSteeringAngleFromIMU (float32_t *steeringAngle, float32_t *inverseSteeringR, const dwIMUFrame *imuMeasurement, dwEgomotionConstHandle_t obj)
 Computes steering angle of the vehicle based on IMU measurement. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_estimate (dwEgomotionResult *pose, dwEgomotionUncertainty *uncertainty, dwTime_t timestamp_us, dwEgomotionConstHandle_t obj)
 Estimates the state for a given timestamp. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getEstimation (dwEgomotionResult *result, dwEgomotionConstHandle_t obj)
 Gets the latest state estimate. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getEstimationTimestamp (dwTime_t *timestamp, dwEgomotionConstHandle_t obj)
 Gets the timestamp of the latest state estimate. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getHistoryElement (const dwEgomotionResult **pose, const dwEgomotionUncertainty **uncertainty, size_t index, dwEgomotionConstHandle_t obj)
 Returns an element from the motion history that is currently available. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getHistorySize (size_t *num, dwEgomotionConstHandle_t obj)
 Returns the number of elements currently stored in the history. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getMotionModel (dwMotionModel *model, dwEgomotionConstHandle_t obj)
 Returns the type of the motion model used. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_getUncertainty (dwEgomotionUncertainty *result, dwEgomotionConstHandle_t obj)
 Gets the latest state estimate uncertainties. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_hasEstimation (bool *result, dwEgomotionConstHandle_t obj)
 Check whether has state estimate. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_initialize (dwEgomotionHandle_t *obj, const dwEgomotionParameters *params, dwContextHandle_t ctx)
 Initializes the egomotion module. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_initParamsFromRig (dwEgomotionParameters *params, dwConstRigHandle_t rigConfiguration, const char *imuSensorName, const char *canSensorName)
 Initialize egomotion parameters from a provided RigConfiguration. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_initParamsFromRigByIndex (dwEgomotionParameters *params, dwConstRigHandle_t rigConfiguration, uint32_t imuSensorIdx, uint32_t canSensorIdx)
 Same as dwEgomotion_initParamsFromRig however uses sensor indices in rigConfiguration instead of their names. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_release (dwEgomotionHandle_t obj)
 Releases the egomotion module. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_reset (dwEgomotionHandle_t obj)
 Resets the state estimate and all history of the egomotion module. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_steeringAngleToSteeringWheelAngle (float32_t *steeringWheelAngle, float32_t steeringAngle, dwEgomotionHandle_t obj)
 Convert steering angle to steering wheel angle. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_steeringWheelAngleToSteeringAngle (float32_t *steeringAngle, float32_t steeringWheelAngle, dwEgomotionHandle_t obj)
 Convert steering wheel angle to steering angle. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_update (dwTime_t timestamp_us, dwEgomotionHandle_t obj)
 Runs the motion model estimation for a given timestamp. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_updateIMUExtrinsics (const dwTransformation3f *imuToRig, dwEgomotionHandle_t obj)
 This method updates the IMU extrinsics to convert from the IMU coordinate system to the vehicle rig coordinate system. More...
 
DW_API_PUBLIC dwStatus dwEgomotion_updateVehicle (const dwVehicle *vehicle, dwEgomotionHandle_t obj)
 This method updates the egomotion module with an updated vehicle. More...