DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Rig Configuration Interface

Detailed Description

Defines rig configurations for the vehicle.

Note
SW Release Applicability: These APIs are available in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

Data Structures

struct  dwFThetaCameraConfig
 Configuration parameters for a calibrated FTheta camera. More...
 
struct  dwOCamCameraConfig
 Configuration parameters for a calibrated OCam sphere camera. More...
 
struct  dwPinholeCameraConfig
 Configuration parameters for a calibrated pinhole camera. More...
 
struct  dwStereographicCameraConfig
 Configuration parameters for a calibrated FTheta camera. More...
 
struct  dwVehicle
 Properties of the vehicle. More...
 
struct  dwVehicleTorqueLUT
 Throttle and brake state (input) to longitudinal force (output) lookup tables. More...
 

Modules

 Rig Configuration
 Defines vehicle rig configuration.
 

Macros

#define DW_FTHETA_POLY_LENGTH   5U
 
#define DW_MAX_RIG_CAMERA_COUNT   255U
 Defines the maximum number of cameras in a rig. More...
 
#define DW_OCAM_POLY_LENGTH   5U
 
#define DW_PINHOLE_DISTORTION_LENGTH   3U
 
#define DW_VEHICLE_STEER_MAP_POLY_DEGREE   5U
 
#define DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE   15U
 

Typedefs

typedef struct dwRigObject const * dwConstRigHandle_t
 
typedef struct dwRigObject * dwRigHandle_t
 Handle representing the Sensor Abstraction Layer interface. More...
 

Enumerations

enum  dwCameraModel {
  DW_CAMERA_MODEL_OCAM = 0,
  DW_CAMERA_MODEL_PINHOLE = 1,
  DW_CAMERA_MODEL_FTHETA = 2
}
 Specifies the supported optical camera models. More...
 
enum  dwVehicleWheels {
  DW_VEHICLE_WHEEL_FRONT_LEFT = 0,
  DW_VEHICLE_WHEEL_FRONT_RIGHT = 1,
  DW_VEHICLE_WHEEL_REAR_LEFT = 2,
  DW_VEHICLE_WHEEL_REAR_RIGHT = 3,
  DW_VEHICLE_NUM_WHEELS = 4
}
 Define index for each of the wheels on a 4 wheel vehicle. More...
 

Functions

DW_API_PUBLIC dwStatus dwRig_addOrSetPropertyByName (char8_t const *const propertyValue, char8_t const *const propertyName, dwRigHandle_t const obj)
 Overwrite content of an existing rig property. More...
 
DW_API_PUBLIC dwStatus dwRig_addOrSetSensorPropertyByName (char8_t const *const propertyValue, char8_t const *const propertyName, uint32_t const sensorId, dwRigHandle_t const obj)
 Overwrite content of an existing sensor property. More...
 
DW_API_PUBLIC dwStatus dwRig_findSensorByName (uint32_t *const sensorId, char8_t const *sensorName, dwConstRigHandle_t const obj)
 Finds the sensor with the given name and returns its index. More...
 
DW_API_PUBLIC dwStatus dwRig_findSensorByTypeIndex (uint32_t *const sensorId, dwSensorType const sensorType, uint32_t sensorTypeIndex, dwConstRigHandle_t const obj)
 Finds the absolute sensor index of the Nth sensor of a given type. More...
 
DW_API_PUBLIC dwStatus dwRig_findSensorIdFromVehicleIOId (uint32_t *const sensorId, uint32_t vehicleIOId, dwConstRigHandle_t const obj)
 Finds a sensor with the given vehicleIO ID and returns the index. More...
 
DW_API_PUBLIC dwStatus dwRig_getCameraModel (dwCameraModel *const cameraModel, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the model type of the camera intrinsics. More...
 
DW_API_PUBLIC dwStatus dwRig_getCameraTimestampPath (char8_t const **const timestampPath, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets path to camera timestamp file. More...
 
DW_API_PUBLIC dwStatus dwRig_getFThetaCameraConfig (dwFThetaCameraConfig *const config, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the parameters of the FTheta camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_getNominalSensorToRigTransformation (dwTransformation3f *const transformation, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the nominal sensor to rig transformation for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getNominalSensorToSensorTransformation (dwTransformation3f *const transformation, uint32_t const sensorIdFrom, uint32_t const sensorIdTo, dwConstRigHandle_t const obj)
 Gets the nominal sensor to sensor transformation for a pair of sensors. More...
 
DW_API_PUBLIC dwStatus dwRig_getOCamCameraConfig (dwOCamCameraConfig *config, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the parameters of the OCam camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_getPinholeCameraConfig (dwPinholeCameraConfig *config, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the parameters of the Pinhole camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_getPropertyByName (char8_t const **const propertyValue, char8_t const *const propertyName, dwConstRigHandle_t const obj)
 Returns property stored inside of rig. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorCount (uint32_t *const sensorCount, dwConstRigHandle_t const obj)
 Gets the number of all available sensors. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorCountOfType (uint32_t *const sensorCount, dwSensorType const sensorType, dwConstRigHandle_t const obj)
 Find number of sensors of a given type. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorDataPath (char8_t const **const dataPath, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets path to sensor recording. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorFLUToRigTransformation (dwTransformation3f *const transformation, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the sensor FLU to rig transformation for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorName (char8_t const **const sensorName, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the name of a sensor as given in the configuration. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorParameter (char8_t const **const sensorParameter, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the parameter string for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorParameterUpdatedPath (char8_t const **const sensorParameter, uint32_t const sensorId, dwRigHandle_t const obj)
 Gets the parameter string for a sensor with any path described by file=,video=,timestamp= property modified to be in respect to the current rig file's directory (if initializing a rig from file), or in respect to the relativeBasePath (when initializing a rig from string). More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorPropertyByName (char8_t const **const propertyValue, char8_t const *const propertyName, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Returns property stored inside of a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorProtocol (char8_t const **const sensorProtocol, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the protocol string of a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorToRigTransformation (dwTransformation3f *const transformation, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Gets the sensor to rig transformation for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorToSensorTransformation (dwTransformation3f *const transformation, uint32_t const sensorIdFrom, uint32_t const sensorIdTo, dwConstRigHandle_t const obj)
 Gets the sensor to sensor transformation for a pair of sensors. More...
 
DW_API_PUBLIC dwStatus dwRig_getSensorType (dwSensorType *sensorType, uint32_t const sensorId, dwConstRigHandle_t const obj)
 Returns the type of sensor based upon the sensorID sent into the method. More...
 
DW_API_PUBLIC dwStatus dwRig_getVehicle (dwVehicle const **const vehicle, dwConstRigHandle_t const obj)
 Gets the properties of the vehicle. More...
 
DW_API_PUBLIC dwStatus dwRig_getVehicleIOConfigCount (uint32_t *vioConfigCount, dwConstRigHandle_t const obj)
 Gets the number of vehicle IO sensors. More...
 
DW_API_PUBLIC dwStatus dwRig_initializeFromFile (dwRigHandle_t *obj, dwContextHandle_t ctx, char8_t const *const configurationFile)
 Initializes the Rig Configuration module from a file. More...
 
DW_API_PUBLIC dwStatus dwRig_initializeFromString (dwRigHandle_t *obj, dwContextHandle_t ctx, char8_t const *const configurationString, char8_t const *const relativeBasePath)
 Initializes the Rig Configuration module from a string. More...
 
DW_API_PUBLIC dwStatus dwRig_release (dwRigHandle_t const obj)
 Releases the Rig Configuration module. More...
 
DW_API_PUBLIC dwStatus dwRig_reset (dwRigHandle_t const obj)
 Resets the Rig Configuration module. More...
 
DW_API_PUBLIC dwStatus dwRig_serializeToFile (char8_t const *configurationFile, dwConstRigHandle_t const obj)
 This method serializes the rig-configuration object to a human-readable rig-configuration file. More...
 
DW_API_PUBLIC dwStatus dwRig_setFThetaCameraConfig (dwFThetaCameraConfig const *config, uint32_t const sensorId, dwRigHandle_t const obj)
 Sets the parameters of the FTheta camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_setOCamCameraConfig (dwOCamCameraConfig const *config, uint32_t const sensorId, dwRigHandle_t const obj)
 Sets the parameters of the OCam camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_setPinholeCameraConfig (dwPinholeCameraConfig const *config, uint32_t const sensorId, dwRigHandle_t const obj)
 Sets the parameters of the pinhole camera model. More...
 
DW_API_PUBLIC dwStatus dwRig_setSensorParameter (char8_t const *const sensorParameter, uint32_t const sensorId, dwRigHandle_t const obj)
 Sets the parameter string for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_setSensorToRigTransformation (dwTransformation3f const *transformation, uint32_t const sensorId, dwRigHandle_t const obj)
 Sets the sensor to rig transformation for a sensor. More...
 
DW_API_PUBLIC dwStatus dwRig_setVehicle (dwVehicle const *vehicle, dwRigHandle_t const obj)
 Sets the properties of the vehicle. More...
 

Data Structure Documentation

◆ dwFThetaCameraConfig

struct dwFThetaCameraConfig
Data Fields
float32_t backwardsPoly[DW_FTHETA_POLY_LENGTH] Pixel2ray backward projection polynomial coefficients.
uint32_t height Width of the image (in pixels)
float32_t u0 U coordinate for the principal point (in pixels)
float32_t v0 V coordinate for the principal point (in pixels)
uint32_t width Width of the image (in pixels)

◆ dwOCamCameraConfig

struct dwOCamCameraConfig
Data Fields
float32_t c Affine matrix coefficient C.
float32_t d Affine matrix coefficient D.
float32_t e Affine matrix coefficient E.
uint32_t height Width of the image (in pixels)
float32_t poly[DW_OCAM_POLY_LENGTH] Pixel2ray polynomial coefficients.
float32_t u0 U coordinate for the principal point (in pixels)
float32_t v0 V coordinate for the principal point (in pixels)
uint32_t width Width of the image (in pixels)

◆ dwPinholeCameraConfig

struct dwPinholeCameraConfig
Data Fields
float32_t distortion[DW_PINHOLE_DISTORTION_LENGTH] Distortion polynomial coefficients [k_1, k_2, k_3].

x' = x * (1 + k_1 * r^2 + k_2 * r^4 + k_3 * r^6) y' = y * (1 + k_1 * r^2 + k_2 * r^4 + k_3 * r^6)

float32_t focalX Focal length in the X axis.
float32_t focalY Focal length in the Y axis.
uint32_t height Width of the image (in pixels)
float32_t u0 U coordinate for the principal point (in pixels)
float32_t v0 V coordinate for the principal point (in pixels)
uint32_t width Width of the image (in pixels)

◆ dwStereographicCameraConfig

struct dwStereographicCameraConfig
Data Fields
uint32_t height height of the image (in pixels)
float32_t hFOV Horizontal FOV in radians.
float32_t u0 U coordinate for the principal point (in pixels)
float32_t v0 V coordinate for the principal point (in pixels)
uint32_t width Width of the image (in pixels)

◆ dwVehicle

struct dwVehicle
Data Fields
float32_t aerodynamicDragCoeff

Aerodynamic drag coefficient.

float32_t aeroHeight

Equivalent height of aerodynamic force applied (m).

float32_t axlebaseFront

Width of the front axle. [meters]

float32_t axlebaseRear

Width of the rear axle. [meters]

float32_t brakeActuatorTimeConstant

Time constant for first order lp brake system.

float32_t bumperFront

Distance front axle to front bumper. [meters]

float32_t bumperRear

Distance rear axle to rear bumper. [meters]

float32_t centerOfMassHeight

Height of the CoM (m).

float32_t centerOfMassToFrontAxle

Distance from CoM to the front axle (m).

float32_t centerOfMassToRearAxle

Distance between vehicle's CoM (center-of-mass) and center of the rear axle. [meters]

float32_t driveByWireTimeConstant

Drive-by-wire (steer-by-wire) time constant.

float32_t driveByWireTimeDelay

Drive-by-wire (steer-by-wire) time delay.

float32_t effectiveMass

effective mass due to vehicle rotational inertia (wheel rotation, engine, and other parts of the CVT drive-train). [kg]

float32_t frontalArea

Vehicle Frontal area (m^2).

float32_t frontCorneringStiffness

front wheel cornering stiffness.

float32_t frontSteeringOffset front wheel steering offset [radians].

It is combined with the polynomial function P(steeringWheelAngle) give by steeringWheelToSteeringMap to determine the conversion from steering wheel angle to steering angle as steeringAngle = P(steeringWheelAngle) + frontSteeringOffset and its reverse.

float32_t height

Height of the vehicle. [meters]>

dwVector3f inertia3D

vehicle inertia around each axis, w.r.t. its center of mass. [kg m^2]

float32_t length

Length of the vehicle. [meters]

float32_t mass

vehicle mass [kg].

float32_t maxEnginePower

Maximum engine power in Watts.

float32_t maxSteeringWheelAngle maximum steering wheel [radians]
float32_t rearCorneringStiffness

rear wheel cornering stiffness.

float32_t rollingResistanceCoeff

Rolling resistance coefficient.

float32_t steeringCoefficient

Steering coefficient for trivial linear mapping between steering wheel and steering angle, i.e. steeringAngle = steeringWheelAngle / steeringCoefficient

float32_t steeringWheelToSteeringMap[DW_VEHICLE_STEER_MAP_POLY_DEGREE+1U] polynomial coefficents of steering wheel angle to steering angle as given in c0 + c1*x + c2*x^2 + ...
  • cn*x^n. If not 0, then these have precedence over steeringCoefficient
float32_t throttleActuatorTimeConstant

Time constant for first order lp throttle system.

dwVehicleTorqueLUT torqueLUT

Lookup table mapping throttle and brake pedal position to torque.

float32_t wheelbase

Distance between the centers of the front and rear wheels. [meters]

float32_t wheelRadius[DW_VEHICLE_NUM_WHEELS]

Radius of each individual wheel [m]

float32_t width

Width of the vehicle. [meters]

float32_t widthWithMirrors

Width of the vehicle including side mirrors. [meters]

◆ dwVehicleTorqueLUT

struct dwVehicleTorqueLUT
Data Fields
float32_t brakePedalInput[DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE] 1-d array of range of brake pedal values (Brake Look-up Table Input)
float32_t brakeTorqueOutput[DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE] 1-d torque Table, mapping a given brake pedal position to a torque value (Brake Look-up Table Output)
float32_t throttlePedalInput[DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE] 1-d array of range of throttle pedal values (Throttle Look-up Table Input)
float32_t throttleSpeedInput[DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE] 1-d array of range of vehicle linear speed values (Throttle Look-up Table Input) [m/s]
float32_t throttleTorqueOutput[DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE][DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE] 2-d torque table, mapping a given throttle pedal position at a given speed to a torque value (Throttle Look-up Table Output) The 2d table is represented in row-major matrix with speed varying over the columns, and pedal input over rows, i.e.

throttleTorqueOutput(pedal, speed) = throttleTorqueOutput[pedal][speed]

Macro Definition Documentation

◆ DW_FTHETA_POLY_LENGTH

#define DW_FTHETA_POLY_LENGTH   5U

Definition at line 263 of file Rig.h.

◆ DW_MAX_RIG_CAMERA_COUNT

#define DW_MAX_RIG_CAMERA_COUNT   255U

Defines the maximum number of cameras in a rig.

Definition at line 186 of file Rig.h.

◆ DW_OCAM_POLY_LENGTH

#define DW_OCAM_POLY_LENGTH   5U

Definition at line 231 of file Rig.h.

◆ DW_PINHOLE_DISTORTION_LENGTH

#define DW_PINHOLE_DISTORTION_LENGTH   3U

Definition at line 198 of file Rig.h.

◆ DW_VEHICLE_STEER_MAP_POLY_DEGREE

#define DW_VEHICLE_STEER_MAP_POLY_DEGREE   5U

Definition at line 199 of file Rig.h.

◆ DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE

#define DW_VEHICLE_THROTTLE_BRAKE_LUT_SIZE   15U

Definition at line 322 of file Rig.h.

Typedef Documentation

◆ dwConstRigHandle_t

typedef struct dwRigObject const* dwConstRigHandle_t

Definition at line 180 of file Rig.h.

◆ dwRigHandle_t

typedef struct dwRigObject* dwRigHandle_t

Handle representing the Sensor Abstraction Layer interface.

Definition at line 179 of file Rig.h.

Enumeration Type Documentation

◆ dwCameraModel

Specifies the supported optical camera models.

The models define the mapping between optical rays and pixel coordinates, e.g., the intrinsic parameters of the camera.

Enumerator
DW_CAMERA_MODEL_OCAM 
DW_CAMERA_MODEL_PINHOLE 
DW_CAMERA_MODEL_FTHETA 

Definition at line 192 of file Rig.h.

◆ dwVehicleWheels

Define index for each of the wheels on a 4 wheel vehicle.

These indices are to be used to point into dwVehicleIOState or dwVehicle.

Enumerator
DW_VEHICLE_WHEEL_FRONT_LEFT 
DW_VEHICLE_WHEEL_FRONT_RIGHT 
DW_VEHICLE_WHEEL_REAR_LEFT 
DW_VEHICLE_WHEEL_REAR_RIGHT 
DW_VEHICLE_NUM_WHEELS 

Number of wheels describing the vehicle.

Definition at line 312 of file Rig.h.

Function Documentation

◆ dwRig_addOrSetPropertyByName()

DW_API_PUBLIC dwStatus dwRig_addOrSetPropertyByName ( char8_t const *const  propertyValue,
char8_t const *const  propertyName,
dwRigHandle_t const  obj 
)

Overwrite content of an existing rig property.

If property does not exists, it will be added. Properties are stored as name=value pairs.

Parameters
[in]propertyValueValue of the property to be changed to. Maximal length limited to 256 characters.
[in]propertyNameName of the property to change
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_BUFFER_FULL - if there are no more space for new properties, max 32
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_addOrSetSensorPropertyByName()

DW_API_PUBLIC dwStatus dwRig_addOrSetSensorPropertyByName ( char8_t const *const  propertyValue,
char8_t const *const  propertyName,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Overwrite content of an existing sensor property.

If property does not exists, it will be added. Properties are stored as name=value pairs.

Parameters
[in]propertyValueValue of the property to be changed to. Maximal length limited to 256 characters.
[in]propertyNameName of the property to change
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null or sensorId doesn't exist
DW_BUFFER_FULL - if there are no more space for new properties, max 32
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_findSensorByName()

DW_API_PUBLIC dwStatus dwRig_findSensorByName ( uint32_t *const  sensorId,
char8_t const *  sensorName,
dwConstRigHandle_t const  obj 
)

Finds the sensor with the given name and returns its index.

Parameters
[out]sensorIdThe index of the matching sensor (unchanged if the function fails).
[in]sensorNameThe sensor name to search for. If the character '*' is found, only the characters before are compared for a match.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_NOT_AVAILABLE - if no sensor matches the name
DW_INVALID_HANDLE - if the rig configuration module handle is invalid, i.e NULL or wrong type
DW_SUCCESS

◆ dwRig_findSensorByTypeIndex()

DW_API_PUBLIC dwStatus dwRig_findSensorByTypeIndex ( uint32_t *const  sensorId,
dwSensorType const  sensorType,
uint32_t  sensorTypeIndex,
dwConstRigHandle_t const  obj 
)

Finds the absolute sensor index of the Nth sensor of a given type.

Parameters
[out]sensorIdThe index of the matching sensor (unchanged if the function fails).
[in]sensorTypeThe type of the sensor to search for.
[in]sensorTypeIndexThe idx of the sensor within that type.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_NOT_AVAILABLE - if no sensor matches the type
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_findSensorIdFromVehicleIOId()

DW_API_PUBLIC dwStatus dwRig_findSensorIdFromVehicleIOId ( uint32_t *const  sensorId,
uint32_t  vehicleIOId,
dwConstRigHandle_t const  obj 
)

Finds a sensor with the given vehicleIO ID and returns the index.

Parameters
[out]sensorIdThe Specifies the index of the matching sensor. Undefined if the function fails.
[in]vehicleIOIdThe vehicleIO ID to search for.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_NOT_AVAILABLE - if no sensor matches the vehicle IO ID
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getCameraModel()

DW_API_PUBLIC dwStatus dwRig_getCameraModel ( dwCameraModel *const  cameraModel,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the model type of the camera intrinsics.

The supported models are OCam, Pinhole, and FTheta.

Parameters
[out]cameraModelA pointer to the model type for the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the pointer to the model type is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getCameraTimestampPath()

DW_API_PUBLIC dwStatus dwRig_getCameraTimestampPath ( char8_t const **const  timestampPath,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets path to camera timestamp file.

The call is only relevant for virtual h264/h265 cameras. Otherwise returned value is always nullptr.

Parameters
[out]timestampPathA pointer to the path containing timestamp data.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_SUCCESS

◆ dwRig_getFThetaCameraConfig()

DW_API_PUBLIC dwStatus dwRig_getFThetaCameraConfig ( dwFThetaCameraConfig *const  config,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the parameters of the FTheta camera model.

Note
This method clears the data passed in config in order to check if data was set.
Parameters
[out]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the config pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getNominalSensorToRigTransformation()

DW_API_PUBLIC dwStatus dwRig_getNominalSensorToRigTransformation ( dwTransformation3f *const  transformation,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the nominal sensor to rig transformation for a sensor.

This transform differs from transform T provided by getSensorToRigTransformation() in that it represents a static reference transformation from factory calibration and/or mechanical drawings, whereas T can change over time. Also, if the sensor's type doesn't support extrinsics, the identity transformation will be returned.

Parameters
[out]transformationA pointer to the nominal transformation from sensor to rig coordinate system.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_getNominalSensorToSensorTransformation()

DW_API_PUBLIC dwStatus dwRig_getNominalSensorToSensorTransformation ( dwTransformation3f *const  transformation,
uint32_t const  sensorIdFrom,
uint32_t const  sensorIdTo,
dwConstRigHandle_t const  obj 
)

Gets the nominal sensor to sensor transformation for a pair of sensors.

This transform differs from transform T provided by getSensorToSensorTransformation() in that it represents a static reference transformation from factory calibration and/or mechanical drawings, whereas T can change over time. Identity transformations are used for sensors that don't support a native extrinsic frame.

Parameters
[out]transformationA pointer to the nominal transformation from sensor to sensor coordinate system.
[in]sensorIdFromSpecifies the index of the source sensor.
[in]sensorIdToSpecifies the index of the destination sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_getOCamCameraConfig()

DW_API_PUBLIC dwStatus dwRig_getOCamCameraConfig ( dwOCamCameraConfig config,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the parameters of the OCam camera model.

Note
This method clears the data passed in config in order to check if data was set.
Parameters
[out]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the config pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getPinholeCameraConfig()

DW_API_PUBLIC dwStatus dwRig_getPinholeCameraConfig ( dwPinholeCameraConfig config,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the parameters of the Pinhole camera model.

Parameters
[out]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the config pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getPropertyByName()

DW_API_PUBLIC dwStatus dwRig_getPropertyByName ( char8_t const **const  propertyValue,
char8_t const *const  propertyName,
dwConstRigHandle_t const  obj 
)

Returns property stored inside of rig.

Properties are stored in name=value pairs and implement properties which are specific for the rig in a generic way. For example a particular sensor layout or configuration

Parameters
[out]propertyValueA pointer to return the value of a certain property
[in]propertyNameName of the property to retrieve value from
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_NOT_AVAILABLE - if a certain property is not available in the rig configration
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getSensorCount()

DW_API_PUBLIC dwStatus dwRig_getSensorCount ( uint32_t *const  sensorCount,
dwConstRigHandle_t const  obj 
)

Gets the number of all available sensors.

Parameters
[out]sensorCountA pointer to the number of sensors in the rig configuration.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getSensorCountOfType()

DW_API_PUBLIC dwStatus dwRig_getSensorCountOfType ( uint32_t *const  sensorCount,
dwSensorType const  sensorType,
dwConstRigHandle_t const  obj 
)

Find number of sensors of a given type.

Parameters
[out]sensorCountReturn number of sensors available of the given type
[in]sensorTypeType of the sensor to query
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getSensorDataPath()

DW_API_PUBLIC dwStatus dwRig_getSensorDataPath ( char8_t const **const  dataPath,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets path to sensor recording.

The call is only valid for virtual sensors.

Parameters
[out]dataPathA pointer to the path with sensor data. The pointer is valid until module reset or release is called.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_SUCCESS

◆ dwRig_getSensorFLUToRigTransformation()

DW_API_PUBLIC dwStatus dwRig_getSensorFLUToRigTransformation ( dwTransformation3f *const  transformation,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the sensor FLU to rig transformation for a sensor.

This transformation relates the sensor FLU and the rig coordinate system to each other. For example, the origin in sensor coordinate system is the position of the sensor in rig coordinates.

Parameters
[out]transformationA pointer to the transformation from sensor to rig coordinate system.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the transformation pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorName()

DW_API_PUBLIC dwStatus dwRig_getSensorName ( char8_t const **const  sensorName,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the name of a sensor as given in the configuration.

For example, "Front Camera".

Parameters
[out]sensorNameA pointer to the name of the sensor. The pointer is valid until module reset or release is called.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the sensor pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorParameter()

DW_API_PUBLIC dwStatus dwRig_getSensorParameter ( char8_t const **const  sensorParameter,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the parameter string for a sensor.

This string can be used in sensor creation.

Parameters
[out]sensorParameterA pointer to the pointer to the parameters of the sensor, for example camera driver and csi port. The returned pointer is valid until module reset or release is called.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the pointer to the pointer of sensor parameters is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorParameterUpdatedPath()

DW_API_PUBLIC dwStatus dwRig_getSensorParameterUpdatedPath ( char8_t const **const  sensorParameter,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Gets the parameter string for a sensor with any path described by file=,video=,timestamp= property modified to be in respect to the current rig file's directory (if initializing a rig from file), or in respect to the relativeBasePath (when initializing a rig from string).

For example, given a rig.json file stored at this/is/rig.json with a virtual sensor pointing to file=video.lraw, the call to this function will return sensor properties modified as file=this/is/video.lraw.

Parameters
[out]sensorParameterSensor parameters with modified path inside of file=,video=,timestamp= returned here.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the pointer to the pointer of sensor parameters is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorPropertyByName()

DW_API_PUBLIC dwStatus dwRig_getSensorPropertyByName ( char8_t const **const  propertyValue,
char8_t const *const  propertyName,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Returns property stored inside of a sensor.

Properties are stored in name=value pairs and implement properties which are specific for a certain sensor in a generic way. For example a camera might store calibration data there, an IMU might store bias values there, etc.

Parameters
[out]propertyValueA pointer to return the value of a certain property
[in]propertyNameName of the property to retrieve value from
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null or sensorId doesn't exist
DW_NOT_AVAILABLE - if a certain property is not available in the rig configration
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getSensorProtocol()

DW_API_PUBLIC dwStatus dwRig_getSensorProtocol ( char8_t const **const  sensorProtocol,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the protocol string of a sensor.

This string can be used in sensor creation or to identify the type of a sensor.

Parameters
[out]sensorProtocolA pointer to the pointer to the protocol of the sensor, for example, camera.gmsl. The returned pointer is valid until module reset or release is called.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the pointer to the pointer of sensor protocol is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorToRigTransformation()

DW_API_PUBLIC dwStatus dwRig_getSensorToRigTransformation ( dwTransformation3f *const  transformation,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Gets the sensor to rig transformation for a sensor.

This transformation relates the sensor and the rig coordinate system to each other. For example, the origin in sensor coordinate system is the position of the sensor in rig coordinates. Also, if the sensor's type doesn't support extrinsics, the identity transformation will be returned.

Parameters
[out]transformationA pointer to the transformation from sensor to rig coordinate system.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the transformation pointer is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the queried sensor is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_getSensorToSensorTransformation()

DW_API_PUBLIC dwStatus dwRig_getSensorToSensorTransformation ( dwTransformation3f *const  transformation,
uint32_t const  sensorIdFrom,
uint32_t const  sensorIdTo,
dwConstRigHandle_t const  obj 
)

Gets the sensor to sensor transformation for a pair of sensors.

This transformation relates the first and second sensor coordinate systems to each other. Identity transformations are used for sensors that don't support a native extrinsic frame.

Parameters
[out]transformationA pointer to the transformation from sensor to sensor coordinate system.
[in]sensorIdFromSpecifies the index of the source sensor.
[in]sensorIdToSpecifies the index of the destination sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_getSensorType()

DW_API_PUBLIC dwStatus dwRig_getSensorType ( dwSensorType sensorType,
uint32_t const  sensorId,
dwConstRigHandle_t const  obj 
)

Returns the type of sensor based upon the sensorID sent into the method.

Parameters
[out]sensorTypeA pointer to return the type of sensor
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if given pointer is null or sensorId doesn't exist
DW_INVALID_HANDLE
DW_SUCCESS

◆ dwRig_getVehicle()

DW_API_PUBLIC dwStatus dwRig_getVehicle ( dwVehicle const **const  vehicle,
dwConstRigHandle_t const  obj 
)

Gets the properties of the vehicle.

Parameters
[out]vehicleA pointer to the struct holding vehicle properties. The returned pointer is valid until module reset or release is called.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_getVehicleIOConfigCount()

DW_API_PUBLIC dwStatus dwRig_getVehicleIOConfigCount ( uint32_t *  vioConfigCount,
dwConstRigHandle_t const  obj 
)

Gets the number of vehicle IO sensors.

Parameters
[out]vioConfigCountA pointer to the number of vehicle IO sensors in the Rig Configuration.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_SUCCESS

◆ dwRig_initializeFromFile()

DW_API_PUBLIC dwStatus dwRig_initializeFromFile ( dwRigHandle_t obj,
dwContextHandle_t  ctx,
char8_t const *const  configurationFile 
)

Initializes the Rig Configuration module from a file.

Note
: Any relative file-system reference will be relative to the rig file location.
Parameters
[out]objA pointer to the Rig Configuration handle for the created module.
[in]ctxSpecifies the handler to the context under which the Rigconfiguration module is created.
[in]configurationFileThe path of a rig file that contains the rig configuration. Typically produced by the DriveWorks calibration tool.
Returns
DW_INVALID_ARGUMENT - If the rig configuration handle is NULL or if the json file has no extension
DW_INVALID_HANDLE - If the context handle is invalid, i.e null or wrong type
DW_FILE_INVALID - If the json file is invalid
DW_FILE_NOT_FOUND
DW_INTERNAL_ERROR
DW_SUCCESS

◆ dwRig_initializeFromString()

DW_API_PUBLIC dwStatus dwRig_initializeFromString ( dwRigHandle_t obj,
dwContextHandle_t  ctx,
char8_t const *const  configurationString,
char8_t const *const  relativeBasePath 
)

Initializes the Rig Configuration module from a string.

Parameters
[out]objA pointer to the Rig Configuration handle for the created module.
[in]ctxSpecifies the handler to the context under which the Rigconfiguration module is created.
[in]configurationStringA pointer to a JSON string that contains the rig configuration. Typically produced by the DriveWorks calibration tool.
[in]relativeBasePathA base path all relative file references in the rig will be resolved with respect to. If NULL, then the current working directory of the process will be used implicitly.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_INTERNAL_ERROR, DW_SUCCESS

◆ dwRig_release()

DW_API_PUBLIC dwStatus dwRig_release ( dwRigHandle_t const  obj)

Releases the Rig Configuration module.

Parameters
[in]objThe Rig Configuration module handle.
Returns
DW_INVALID_HANDLE - If the configuration handle is invalid , i.e NULL or wrong type
DW_SUCCESS

◆ dwRig_reset()

DW_API_PUBLIC dwStatus dwRig_reset ( dwRigHandle_t const  obj)

Resets the Rig Configuration module.

Parameters
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_HANDLE, DW_SUCCESS

◆ dwRig_serializeToFile()

DW_API_PUBLIC dwStatus dwRig_serializeToFile ( char8_t const *  configurationFile,
dwConstRigHandle_t const  obj 
)

This method serializes the rig-configuration object to a human-readable rig-configuration file.

The output file contains the full state of the rig-configuration and can again be loaded with dwRig_initializeFromFile().

The serialization format is selected based on the file name extension; currently supported extensions are json.

Parameters
[in]configurationFileThe name of the file to serialize to. It's extension is used to select the serialization format. This method will overwrite the file if it exists.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT - if the configurationFile pointer is invalid, or if the serialization format is not supported
DW_INVALID_HANDLE - if provided RigConfigurationHandle handle is invalid.
DW_FILE_INVALID - in case of error during serialization.
DW_SUCCESS

◆ dwRig_setFThetaCameraConfig()

DW_API_PUBLIC dwStatus dwRig_setFThetaCameraConfig ( dwFThetaCameraConfig const *  config,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Sets the parameters of the FTheta camera model.

Parameters
[in]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_setOCamCameraConfig()

DW_API_PUBLIC dwStatus dwRig_setOCamCameraConfig ( dwOCamCameraConfig const *  config,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Sets the parameters of the OCam camera model.

Parameters
[in]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_setPinholeCameraConfig()

DW_API_PUBLIC dwStatus dwRig_setPinholeCameraConfig ( dwPinholeCameraConfig const *  config,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Sets the parameters of the pinhole camera model.

Parameters
[in]configA pointer to the configuration of the camera intrinsics.
[in]sensorIdSpecifies the index of the queried sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS

◆ dwRig_setSensorParameter()

DW_API_PUBLIC dwStatus dwRig_setSensorParameter ( char8_t const *const  sensorParameter,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Sets the parameter string for a sensor.

This string can be used in sensor creation.

Parameters
[in]sensorParameterstring representing sensor parameters, for example camera driver and csi port. Maximal length is limited to 512.
[in]sensorIdSpecifies the index of the sensor of which to set sensor parameter.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT - If the sensor parameter string is NULL
DW_INVALID_HANDLE - If the rig configuration handle is invalid, i.e null or wrong type
DW_OUT_OF_BOUNDS - If the index of the sensor to be updated is more than MAX_SENSOR_COUNT
DW_NOT_AVAILABLE
DW_SUCCESS

◆ dwRig_setSensorToRigTransformation()

DW_API_PUBLIC dwStatus dwRig_setSensorToRigTransformation ( dwTransformation3f const *  transformation,
uint32_t const  sensorId,
dwRigHandle_t const  obj 
)

Sets the sensor to rig transformation for a sensor.

See also
dwRig_getSensorToRigTransformation.
Parameters
[in]transformationA pointer to the transformation from sensor to rig coordinate system.
[in]sensorIdSpecifies the index of the updates sensor.
[in]objSpecifies the rig configuration module handle.
Returns
DW_INVALID_ARGUMENT
DW_INVALID_HANDLE
DW_CALL_NOT_ALLOWED - If the sensor's type doesn't support extrinsics
DW_SUCCESS

◆ dwRig_setVehicle()

DW_API_PUBLIC dwStatus dwRig_setVehicle ( dwVehicle const *  vehicle,
dwRigHandle_t const  obj 
)

Sets the properties of the vehicle.

Parameters
[in]vehicleA pointer to the struct holding vehicle properties.
[in]objSpecifies the Rig Configuration module handle.
Returns
DW_INVALID_ARGUMENT, DW_INVALID_HANDLE, DW_NOT_AVAILABLE, DW_SUCCESS