DriveWorks SDK Reference
5.14.77 Release
For Test and Development only

RigTypes.h File Reference

Detailed Description

NVIDIA DriveWorks API: Rig Configuration types for public

Description: This file defines the types for vehicle rig configuration methods.

Definition in file RigTypes.h.

Go to the source code of this file.

Data Structures

struct  dwFThetaCameraConfig
 Configuration parameters for a calibrated FTheta camera. More...
 
struct  dwPinholeCameraConfig
 
struct  dwRadarAzimuthCorrectionModelConfig
 Configuration parameters for a radar azimuth correction model. More...
 
struct  dwStereographicCameraConfig
 Configuration parameters for a calibrated stereographic camera. More...
 
struct  dwWindshieldModelConfig
 Configuration parameters for a calibrated windshield model. More...
 

Macros

#define DW_DEFAULT_EXTRINSIC_PROFILE_INDEX   0U
 index of the default extrinsic profile More...
 
#define DW_FTHETA_POLY_LENGTH   6U
 Defines the number of distortion coefficients for the ftheta camera model. More...
 
#define DW_MAX_EXTRINSIC_PROFILE_COUNT   3U
 maximal number of extrinsic profiles per sensor. More...
 
#define DW_MAX_EXTRINSIC_PROFILE_NAME_SIZE   64U
 Defines the maximum length of a sensor extrinsic profile name. More...
 
#define DW_MAX_RIG_CAMERA_COUNT   DW_MAX_RIG_SENSOR_COUNT
 Defines the maximum number of cameras in a rig. More...
 
#define DW_MAX_RIG_SENSOR_COUNT   128U
 Defines the maximum number of sensors in a rig. More...
 
#define DW_MAX_RIG_SENSOR_NAME_SIZE   64U
 Defines the maximum length of a sensor name in a rig. More...
 
#define DW_PINHOLE_DISTORTION_LENGTH   3U
 Defines the number of distortion coefficients for the pinhole camera model. More...
 
#define DW_RADAR_AZIMUTH_CORRECTION_TABLE_MAX_LENGTH   161U
 Defines the maximum number of supports of the radar azimuth angle correction model. More...
 
#define DW_WINDSHIELD_HORIZONTAL_POLY_LENGTH   6U
 Defines the number of coefficients for the windshield parameters in the horizontal direction. More...
 
#define DW_WINDSHIELD_VERTICAL_POLY_LENGTH   15U
 Defines the number of coefficients for the windshield parameters in the vertical direction. More...
 

Enumerations

enum  dwCameraModel {
  DW_CAMERA_MODEL_PINHOLE = 1 ,
  DW_CAMERA_MODEL_FTHETA = 2
}
 Specifies the supported optical camera models. More...
 
enum  dwFThetaCameraPolynomialType {
  DW_FTHETA_CAMERA_POLYNOMIAL_TYPE_PIXELDISTANCE_TO_ANGLE = 0 ,
  DW_FTHETA_CAMERA_POLYNOMIAL_TYPE_ANGLE_TO_PIXELDISTANCE
}
 Type of polynomial stored in FTheta. More...
 
enum  dwWindshieldPolynomialType {
  DW_WINDSHIELD_POLYNOMIAL_TYPE_FORWARD = 0 ,
  DW_WINDSHIELD_POLYNOMIAL_TYPE_BACKWARD = 1 ,
  DW_WINDSHIELD_POLYNOMIAL_TYPE_COUNT = 2 ,
  DW_WINDSHIELD_POLYNOMIAL_TYPE_FORCE_32 = 0x7fffffff
}
 Type of polynomial stored in Windshield Model. More...
 

Data Structure Documentation

◆ dwFThetaCameraConfig

struct dwFThetaCameraConfig
Data Fields
float32_t c Linear pixel transformation matrix coefficient c (top left element) If all c, d, and e are set to 0.0f, then the top lef element of the matrix will be set to 1.0f instead, creating identity as the linear transformation.
float32_t d Linear pixel transformation coefficient d (top right element).
float32_t e Linear pixel transformation coefficient e (bottom left element).
bool hasTangentials Indicates if the camera has a tangential contribution.
uint32_t height Height of the image (in pixels)
float32_t polynomial[DW_FTHETA_POLY_LENGTH] Polynomial describing either the mapping of angles to pixel-distances or the mapping of pixel-distances to angles, in dependence of the field polynomialType.

The polynomial function is defined as f(x) = polynomial[0] + polynomial[1] * x + ... + polynomial[DW_FTHETA_POLY_LENGTH - 1] * x^(DW_FTHETA_POLY_LENGTH - 1)

dwFThetaCameraPolynomialType polynomialType Defines whether the polynomial parameter either map angles to pixel-distances (called forward direction) or map pixel-distances to angles (called backward direction).
float32_t t0 Tangential contribution describing an non radial symmetric distortion effect coming from a rotational lens displacement.
[u`] = [u] + (2t0 x/z *y/z + t1/(z**2)(y**2 + 3*x**3))
[v`] = [v] + (2t1 x/z *y/z + t0/(z**2)(x**2 + 3*y**3))

Oth tangential contribution

float32_t t1 1st tangential contribution
float32_t u0 Principal point coordinates: indicating the horizontal / vertical image coordinates of the principal point relative to the origin of the image read-out area.

The top-left corner of the read-out area is defined to have image coordinates [-0.5, -0.5], meaning that the center of the first pixel (with interger-indices [0, 0] and unit extend) corresponds to the point with image coordinates [0.0, 0.0].

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] Polynomial coefficients [k_1, k_2, k_3] that allow to map undistored, normalized image coordinates (xn, yn) to distorted normalized image coordinates (xd, yd).
float32_t focalX Focal length in the X axis (in pixels)
float32_t focalY Focal length in the Y axis (in pixels)
uint32_t height Height 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)

◆ dwRadarAzimuthCorrectionModelConfig

struct dwRadarAzimuthCorrectionModelConfig
Data Fields
float32_t correctionsRad[DW_RADAR_AZIMUTH_CORRECTION_TABLE_MAX_LENGTH] Values of correction function at support i [rad].
float32_t deltaPhiRad Equidistant spacing between supports [rad].
uint32_t numCorrections Number of correction values/supports.
float32_t phiMaxRad Maximum azimuth angle of FOV [rad].
float32_t phiMinRad Minimum azimuth angle of FOV [rad].
float32_t stddevRad[DW_RADAR_AZIMUTH_CORRECTION_TABLE_MAX_LENGTH] Standard deviation of correction function at support i [rad].

◆ 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)

◆ dwWindshieldModelConfig

struct dwWindshieldModelConfig
Data Fields
float32_t horizontalPolynomial[DW_WINDSHIELD_HORIZONTAL_POLY_LENGTH] Windshield polynomial describing the mapping of horizontal angle(phi) from ray-from-object to ray-into-camera The polynomial is 2 dimension with highest degree as DEGREE.

The number of distortion coefficients equals to (DEGREE + 1) * (DEGREE + 2) / 2

For a ray(x, y, z), horizontal angle phi is defined as: phi = asin(x/sqrt(x^2+y^2+z^2)), vertical angle theta is defined as: theta = asin(y/sqrt(x^2+y^2+z^2))

The windshield horizontal polynomial function is defined as phi' = windshield_horizontal_polynomial[0] + ... + windshield_horizontal_polynomial[j * (2 * DEGREE + 3 - j) / 2 + i]* phi^(i)* theta(j) + ...

  • windshield_horizontal_polynomial[DW_WINDSHIELD_HORIZONTAL_POLY_LENGTH] * theta^(DEGREE)
dwWindshieldPolynomialType polynomialType Defines whether the polynomial parameter either map a ray from non-camera side to camera side (called forward direction) or map a ray from camera side to non-camera side (called backward direction).
float32_t verticalPolynomial[DW_WINDSHIELD_VERTICAL_POLY_LENGTH] Windshield polynomial describing the mapping of vertical angle(theta) from ray-from-object to ray-into-camera The polynomial is 2 dimension with highest degree as DEGREE.

The number of distortion coefficients equals to (DEGREE + 1) * (DEGREE + 2) / 2

For a ray(x, y, z), horizontal angle phi is defined as: phi = asin(x/sqrt(x^2+y^2+z^2)), vertical angle theta is defined as: theta = asin(y/sqrt(x^2+y^2+z^2))

The windshield vertical polynomial function is defined as theta' = windshield_vertical_polynomial[0] + ... + windshield_vertical_polynomial[j * (2 * DEGREE + 3 - j) / 2 + i]* phi^(i)* theta(j) + ...

  • windshield_vertical_polynomial[DW_WINDSHIELD_VERTICAL_POLY_LENGTH] * theta^(DEGREE)

Macro Definition Documentation

◆ DW_DEFAULT_EXTRINSIC_PROFILE_INDEX

#define DW_DEFAULT_EXTRINSIC_PROFILE_INDEX   0U

index of the default extrinsic profile

Definition at line 66 of file RigTypes.h.

◆ DW_FTHETA_POLY_LENGTH

#define DW_FTHETA_POLY_LENGTH   6U

Defines the number of distortion coefficients for the ftheta camera model.

Definition at line 138 of file RigTypes.h.

◆ DW_MAX_EXTRINSIC_PROFILE_COUNT

#define DW_MAX_EXTRINSIC_PROFILE_COUNT   3U

maximal number of extrinsic profiles per sensor.

Definition at line 63 of file RigTypes.h.

◆ DW_MAX_EXTRINSIC_PROFILE_NAME_SIZE

#define DW_MAX_EXTRINSIC_PROFILE_NAME_SIZE   64U

Defines the maximum length of a sensor extrinsic profile name.

Definition at line 60 of file RigTypes.h.

◆ DW_MAX_RIG_CAMERA_COUNT

#define DW_MAX_RIG_CAMERA_COUNT   DW_MAX_RIG_SENSOR_COUNT

Defines the maximum number of cameras in a rig.

Definition at line 54 of file RigTypes.h.

◆ DW_MAX_RIG_SENSOR_COUNT

#define DW_MAX_RIG_SENSOR_COUNT   128U

Defines the maximum number of sensors in a rig.

Definition at line 51 of file RigTypes.h.

◆ DW_MAX_RIG_SENSOR_NAME_SIZE

#define DW_MAX_RIG_SENSOR_NAME_SIZE   64U

Defines the maximum length of a sensor name in a rig.

Definition at line 57 of file RigTypes.h.

◆ DW_PINHOLE_DISTORTION_LENGTH

#define DW_PINHOLE_DISTORTION_LENGTH   3U

Defines the number of distortion coefficients for the pinhole camera model.

Definition at line 81 of file RigTypes.h.

◆ DW_RADAR_AZIMUTH_CORRECTION_TABLE_MAX_LENGTH

#define DW_RADAR_AZIMUTH_CORRECTION_TABLE_MAX_LENGTH   161U

Defines the maximum number of supports of the radar azimuth angle correction model.

Definition at line 530 of file RigTypes.h.

◆ DW_WINDSHIELD_HORIZONTAL_POLY_LENGTH

#define DW_WINDSHIELD_HORIZONTAL_POLY_LENGTH   6U

Defines the number of coefficients for the windshield parameters in the horizontal direction.

Definition at line 426 of file RigTypes.h.

◆ DW_WINDSHIELD_VERTICAL_POLY_LENGTH

#define DW_WINDSHIELD_VERTICAL_POLY_LENGTH   15U

Defines the number of coefficients for the windshield parameters in the vertical direction.

Definition at line 430 of file RigTypes.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_PINHOLE 
DW_CAMERA_MODEL_FTHETA 

Definition at line 72 of file RigTypes.h.

◆ dwFThetaCameraPolynomialType

Type of polynomial stored in FTheta.

The FTheta model can either be defined by the forward polynomial that maps a ray angle to a pixel distance from the principal point, or its inverse, the backward polynomial that maps a distance from the principal point to a ray angle.

This struct defines which of those two options a polynomial represents.

Enumerator
DW_FTHETA_CAMERA_POLYNOMIAL_TYPE_PIXELDISTANCE_TO_ANGLE 

Backward polynomial type, mapping pixel distances (offset from principal point) to angles (angle between ray and forward)

DW_FTHETA_CAMERA_POLYNOMIAL_TYPE_ANGLE_TO_PIXELDISTANCE 

Forward polynomial type, mapping angles (angle between ray and forward direction) to pixel distances (offset from principal point)

Definition at line 150 of file RigTypes.h.

◆ dwWindshieldPolynomialType

Type of polynomial stored in Windshield Model.

The Windshield model can either be defined by the forward polynomial that maps a ray from non-camera side to a ray on the camera side, or its inverse, the backward polynomial that maps a ray from camera side to a ray on the non-camera side.

This struct defines which of those two options a polynomial represents.

Enumerator
DW_WINDSHIELD_POLYNOMIAL_TYPE_FORWARD 

Forward polynomial type, mapping ray distortion by windshield from the non camera side to camera side.

DW_WINDSHIELD_POLYNOMIAL_TYPE_BACKWARD 

Backward polynomial type, mapping ray distortion by windshield from the camera side to non-camera side.

DW_WINDSHIELD_POLYNOMIAL_TYPE_COUNT 
DW_WINDSHIELD_POLYNOMIAL_TYPE_FORCE_32 

Force enum to be 32 bits.

Definition at line 441 of file RigTypes.h.