DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Calibration Overview
Note
SW Release Applicability: This tutorial is applicable to modules in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

DriveWorks considers calibration as a representation and estimation of the (a) extrinsic position, and (b) orientation parameters for each individual sensor on a vehicle. This is also known as an estimation for vehicle-specific parameters.

A precise knowledge of these values enables you to accurately map perceived objects in individual sensor frames - within other sensor frames, or back within the world frame.

DriveWorks provides multiple APIs, tools, and samples showing how to calibrate sensors and vehicle parameters, and this section of the documentation summarizes existing tools and APIs with the list of supported sensors.

1.0 Static vs Dynamic Calibration

Static Calibration is the process of estimating a sensor's calibration parameters with respect to the vehicle while it is stationary. These parameters include: intrinsics model, extrinsic orientation, and position.

Static Calibration includes multiple steps involving several DriveWorks tools and tutorials to achieve the desired outcome. These can include the IMU Calibration Tool to estimate IMU orientation, and the Static Camera Calibration tutorial to assist you in setting up an environment optimized for calibration.

Dynamic Calibration, also known as self-calibration, is the process of estimating a sensor's calibration parameters with respect to the vehicle while it is non-stationary. This process does not require a specifically prepared environment to optimize calibration. Instead, certain driving maneuvers can influence how these dynamic calibration estimates are obtained. These maneuvers can include extensive turns, stronger acceleration, or smooth driving in a straight line. Although DriveWorks APIs and tools do not require you to perform these maneuvers, doing so may result in quicker calibration results.

The following is a list of sensors supported by the static calibration and dynamic calibration DriveWorks APIs and tools.

1.1 IMU Calibration

DriveWorks provides a collection of APIs and tools for both dynamic and static IMU calibration. In general, any IMU sensor supported by the SAL is considered to be supported.

Static

For more information regarding static IMU Calibration, please refer to IMU Calibration Tool.

Dynamic

IMU Self-Calibration covers in great detail how IMU self-calibration is implemented and which driving maneuvers are beneficial for acceptance of an accurate estimate.

Following is a list of sensors and DoFs that can be calibrated for IMU sensors using the APIs as provided by the calibration engine, see dwCalibrationEngine_initializeIMU.

These IMU sensors were tested and supported by both the static calibration tool as well as the self-calibration API:

Sensor Calibration support DW version
XSens MTi-G-710 roll,pitch,yaw >= 2.0
Continental SC13 roll,pitch,yaw >= 3.0

1.2 Camera Calibration

DriveWorks provides support for a lot of camera modules as list at dwCameraType, as well has support for a custom camera through external drivers. Calibration tools or APIs do not differentiate for specific camera types, however they do depend on the availability of frames captured with these cameras, hence indirectly have a dependency on working SAL layer.

Static Calibration and Camera Models

DriveWorks supports multiple mathematical models of the geometrical relationship between pixels and optical rays, also known as intrinsic camera models, see Camera Model.

DriveWorks's static calibration tools supporting the f-theta (dwFThetaCameraConfig) and pinhole (dwPinholeCameraConfig) camera models. Estimated parameters of these models are also known as intrinsic calibration parameters.

To additionally support mapping objects from camera space to the rig coordinate system, all camera position and orientation parameters on the vehicle have to be calibrated as well. These parameters are also known as the camera's extrinsic calibration.

Please refer to Camera Calibration Tools for the list of the tools provided for static camera calibration. The step-by-step guide Static Camera Calibration provides an a guideline how to perform intrinsic as well as extrinsic camera calibration. Static camera calibration can be performed on any camera which is supported by SAL.

Dynamic Calibration

Self-calibration is a method of estimating camera calibration parameters while the vehicle performs regular driving maneuvers.

DriveWorks provides APIs, see Calibration Interface, to implement self-calibration in custom applications.

A collection of samples, for example Camera Calibration Sample, demonstrates how the DriveWorks API can be used to calibrate recorded sessions. An explanation of how self-calibration is implemented, as well as some code-snippets, can be found at Feature-based Camera Self-Calibration.

Following is a list of supported and verified sensors (absent cameras still listed in dwCameraType indicates that these sensors are not fully verified yet):

Sensor FOV Orientation Dynamic calibration DW version
AR0231 60deg front/rear roll,pitch,yaw,height >= 2.0
AR0231 60deg side/cross roll,pitch,yaw >= 3.0*
AR0231 120deg front/rear roll,pitch,yaw,height >= 2.0
AR0231 120deg side/cross roll,pitch,yaw >= 3.0*
AR0820 30deg front/rear pitch,yaw >= 3.0
AR0820 30deg side/cross n.a. n.a.
AR0820 70deg front/rear roll,pitch,yaw,height >= 3.0
AR0820 70deg side/cross roll,pitch,yaw >= 3.0*
AR0820 120deg front/rear roll,pitch,yaw,height >= 3.0
AR0820 120deg side/cross roll,pitch,yaw >= 3.0*
IMX390 190deg front/rear roll,pitch,yaw,height >= 3.2**
IMX390 190deg side/cross roll,pitch,yaw >= 3.2**

Notes:

  • front/rear indicate a camera mostly pointing forward or to the back, i.e. yaw in range (-30,30) and (150,-150).
  • side is a camera pointing to the sides, i.e. yaw is in range (120,60) and (-120,-60).
  • cross indicates a camera along diagonal axis, i.e. yaw is in range (60,30), (-60,-30), (120,150) and (-120,-150)
  • (*): support is already provided from this version, however expecting inferior results
  • (**): expected support starting from this version

1.3 Lidar Calibration

DriveWorks provides support for a variety of lidar sensors through it's SAL interface, see Lidar Sensor.

Static

There are no tools provided to calibrate lidars statically yet.

Dynamic

APIs to perform dynamic lidar calibration can be found at Calibration Interface. See Lidar Self-Calibration for a detailed explanation of the algorithms to self-calibrate, as well as verification methodology of lidar dynamic calibration.

Following is a list of supported and verified lidars for self-calibration:

Sensor Calibration support DW version
Velodyne HD32 roll,pitch,yaw,height >= 2.0
Velodyne HD64 roll,pitch,yaw,height >= 2.0
Velodyne VLS128 roll,pitch,yaw,height >= 2.0
Ouster OS2-128 roll,pitch,yaw,height >= 3.2*
Luminar H3 roll,pitch,yaw,height >= 3.2*

Notes:

  • (*): expected support starting from this version

1.4 Radar calibration

Static

There are no tools provided to calibrate radars statically yet.

Dynamic

DriveWorks provides APIs to perform radar self-calibration. See Radar Self-Calibration for a more detailed explanation of how self-calibration of radars is implemented and verified.

Following is a list of supported and tested radars for self-calibration:

Sensor Calibration support DW version
ARS430 (CAN) yaw, wheel-radii >= 2.0