DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

Engine.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2016-2021 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
46 #ifndef DW_CALIBRATION_ENGINE_CALIBRATIONENGINE_H_
47 #define DW_CALIBRATION_ENGINE_CALIBRATIONENGINE_H_
48 
50 #include <dw/rig/Rig.h>
51 #include <dw/egomotion/Egomotion.h>
54 
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
82  dwRigHandle_t rig,
83  dwContextHandle_t context);
84 
114  uint32_t sensorIndex,
115  const dwCalibrationCameraParams* params,
116  dwEgomotionConstHandle_t egomotion,
117  cudaStream_t stream,
119 
146  const uint32_t imuIndex,
147  const uint32_t canIndex,
148  const dwCalibrationIMUParams* params,
150 
171  uint32_t lidarIndex,
172  uint32_t canIndex,
173  const dwLidarProperties* lidarProperties,
174  const dwCalibrationLidarParams* params,
175  cudaStream_t stream,
177 
198  uint32_t radarIndex,
199  uint32_t canIndex,
200  const dwCalibrationRadarParams* params,
202 
228  uint32_t vehicleSensorIndex,
229  uint32_t leftSensorIndex,
230  uint32_t rightSensorIndex,
231  const dwCalibrationStereoParams* params,
232  cudaStream_t stream,
234 
256  uint32_t sensorIndex,
257  const dwCalibrationVehicleParams* params,
258  dwEgomotionConstHandle_t egoMotion,
259  const dwVehicle* vehicle,
261 
277 
293 
307 
320 
335 
351 
367 
386 
406  uint32_t indexA, uint32_t indexB,
409 
438 
462 
480 
502 dwStatus dwCalibrationEngine_addFeatureDetections(uint32_t featureCapacity,
503  uint32_t historyCapacity,
504  const uint32_t* d_featureCount,
505  const uint32_t* d_ages,
506  const dwVector2f* d_locationHistory,
507  const dwFeature2DStatus* d_featureStatuses,
508  uint32_t currentTimeIdx,
509  dwTime_t timestamp,
510  uint32_t sensorIndex,
512 
534  uint32_t sensorIndex,
536 
554  uint32_t pointCount,
555  dwTime_t timestamp,
556  uint32_t sensorIndex,
558 
578 dwStatus dwCalibrationEngine_addLidarPose(const dwTransformation3f* deltaPoseLidarTimeAToTimeB,
579  const dwTransformation3f* deltaPoseRigTimeAToTimeB,
580  dwTime_t timestampA,
581  dwTime_t timestampB,
582  uint32_t sensorIndex,
584 
600  uint32_t sensorIndex,
602 
620  dwTime_t timestamp,
621  uint32_t leftSensorIndex,
622  uint32_t rightSensorIndex,
624 
639  uint32_t sensorIndex,
641 
642 #ifdef __cplusplus
643 }
644 #endif
645 
647 #endif // DW_CALIBRATION_ENGINE_CALIBRATIONENGINE_H_
Holds pointers to the data exposed by a feature2d list.
Definition: FeatureList.h:118
DW_API_PUBLIC dwStatus dwCalibrationEngine_initialize(dwCalibrationEngineHandle_t *engine, dwRigHandle_t rig, dwContextHandle_t context)
Creates and initializes a Calibration Engine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeIMU(dwCalibrationRoutineHandle_t *routine, const uint32_t imuIndex, const uint32_t canIndex, const dwCalibrationIMUParams *params, dwCalibrationEngineHandle_t engine)
Initializes an IMU calibration routine designated by the sensor provided to the method.
NVIDIA DriveWorks API: Calibration
Calibration parameters for calibrating a radar sensor this should be added to the dwCalibrationParams...
Definition: RadarParams.h:52
float float32_t
Specifies POD types.
Definition: Types.h:70
NVIDIA DriveWorks API: Rig Configuration
DW_API_PUBLIC dwStatus dwCalibrationEngine_addRadarDopplerMotion(const dwRadarDopplerMotion *radarMotion, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds Radar scan to the calibration engine.
NVIDIA DriveWorks API: Egomotion Methods
The state data.
Definition: VehicleIO.h:435
DW_API_PUBLIC dwStatus dwCalibrationEngine_getSensorToSensorTransformation(dwTransformation3f *sensorToSensor, uint32_t indexA, uint32_t indexB, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Returns the current sensor to sensor transformation of a calibration routine estimating this transfor...
DW_API_PUBLIC dwStatus dwCalibrationEngine_resetCalibration(dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Resets the calibration of a specific calibration routine associated with a calibration engine...
NVIDIA DriveWorks API: Calibration
Defines a four-element single-precision floating point vector.
Definition: Types.h:335
Defines a two-element single-precision floating-point vector.
Definition: Types.h:291
NVIDIA DriveWorks API: Calibration
NVIDIA DriveWorks API: Calibration
DW_API_PUBLIC dwStatus dwCalibrationEngine_addIMUFrame(const dwIMUFrame *imuFrame, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds an IMU frame from an IMU sensor to the calibration engine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_getVehicleSteeringProperties(dwVehicleSteeringProperties *steering, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Get vehicle parameter calibration result.
DW_API_PUBLIC dwStatus dwCalibrationEngine_addVehicleIOState(const dwVehicleIOState *vioState, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds vehicle IO state to calibration engine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_getCalibrationStatus(dwCalibrationStatus *status, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Returns the current status of a calibration routine.
Vehicle steering calibration-related parameters.
Definition: VehicleParams.h:51
DW_API_PUBLIC dwStatus dwCalibrationEngine_addLidarPose(const dwTransformation3f *deltaPoseLidarTimeAToTimeB, const dwTransformation3f *deltaPoseRigTimeAToTimeB, dwTime_t timestampA, dwTime_t timestampB, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds lidar delta-poses and ego-motion delta poses to the calibration engine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_startCalibration(dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Starts a calibration routine associated with a calibration engine.
struct dwCalibrationRoutineObject * dwCalibrationRoutineHandle_t
Handles to calibration module objects.
NVIDIA DriveWorks API: Calibration
Calibration parameters for calibrating a camera sensor.
Definition: CameraParams.h:85
Calibration parameters for calibrating a stereo sensor.
Definition: StereoParams.h:54
Specifies a 3D rigid transformation.
Definition: Types.h:462
NVIDIA DriveWorks API: Calibration
DW_API_PUBLIC dwStatus dwCalibrationEngine_getVehicleWheelRadius(float32_t *radius, dwVehicleWheels wheel, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Get currently estimated wheel radius of a vehicle.
dwStatus
Status definition.
Definition: Status.h:180
DW_API_PUBLIC dwStatus dwCalibrationEngine_addLidarPointCloud(const dwVector4f *lidarPoints, uint32_t pointCount, dwTime_t timestamp, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds a lidar sweep to the calibration engine.
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
struct dwCalibrationEngineObject * dwCalibrationEngineHandle_t
Calibration parameters for calibrating a lidar sensor this should be added to the dwCalibrationParams...
Definition: LidarParams.h:53
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeRadar(dwCalibrationRoutineHandle_t *routine, uint32_t radarIndex, uint32_t canIndex, const dwCalibrationRadarParams *params, dwCalibrationEngineHandle_t engine)
Initializes a radar calibration routine designated by the sensor provided to the method.
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeCamera(dwCalibrationRoutineHandle_t *routine, uint32_t sensorIndex, const dwCalibrationCameraParams *params, dwEgomotionConstHandle_t egomotion, cudaStream_t stream, dwCalibrationEngineHandle_t engine)
Initializes a camera calibration routine designated by the sensor provided to the method...
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeLidar(dwCalibrationRoutineHandle_t *routine, uint32_t lidarIndex, uint32_t canIndex, const dwLidarProperties *lidarProperties, const dwCalibrationLidarParams *params, cudaStream_t stream, dwCalibrationEngineHandle_t engine)
Initializes a lidar calibration routine designated by the sensor provided to the method.
An IMU frame containing sensor readings from the IMU sensor.
Definition: IMU.h:102
DW_API_PUBLIC dwStatus dwCalibrationEngine_addFeatureDetections(uint32_t featureCapacity, uint32_t historyCapacity, const uint32_t *d_featureCount, const uint32_t *d_ages, const dwVector2f *d_locationHistory, const dwFeature2DStatus *d_featureStatuses, uint32_t currentTimeIdx, dwTime_t timestamp, uint32_t sensorIndex, dwCalibrationEngineHandle_t engine)
Adds detected visual features to the calibration engine.
struct dwEgomotionObject const * dwEgomotionConstHandle_t
Definition: Egomotion.h:78
DW_API_PUBLIC dwStatus dwCalibrationEngine_reset(dwCalibrationEngineHandle_t engine)
Resets the Calibration Engine module.
DW_API_PUBLIC dwStatus dwCalibrationEngine_release(dwCalibrationEngineHandle_t engine)
Releases the Calibration Engine module.
dwFeature2DStatus
Defines the possible status of a feature.
Definition: FeatureList.h:62
Defines the current status of an individual calibration.
DW_API_PUBLIC dwStatus dwCalibrationEngine_addMatches(const dwFeatureHistoryArray *matches, dwTime_t timestamp, uint32_t leftSensorIndex, uint32_t rightSensorIndex, dwCalibrationEngineHandle_t engine)
Adds detected visual feature matches to the calibration engine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeVehicle(dwCalibrationRoutineHandle_t *routine, uint32_t sensorIndex, const dwCalibrationVehicleParams *params, dwEgomotionConstHandle_t egoMotion, const dwVehicle *vehicle, dwCalibrationEngineHandle_t engine)
Initialize vehicle parameter calibration.
dwVehicleWheels
Define index for each of the wheels on a 4 wheeled vehicle.
Definition: Vehicle.h:291
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:79
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwCalibrationEngine_getSupportedSignals(dwCalibrationSignal *signals, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Query a calibration routine for the calibration type and enabled calibration signal components...
DW_API_PUBLIC dwStatus dwCalibrationEngine_getSensorToRigTransformation(dwTransformation3f *sensorToRig, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Returns the current sensor to rig transformation of a calibration routine estimating this transformat...
NVIDIA DriveWorks API: Radar Doppler Motion
Defines the radar motion.
dwCalibrationSignal
Defines signal types supported by a calibration routine.
DW_API_PUBLIC dwStatus dwCalibrationEngine_getOdometrySpeedFactor(float32_t *odometrySpeedFactor, dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Returns odometry speed factor, mapping speed as reported by odometry to actual speed.
NVIDIA DriveWorks API: Feature Array and Feature History Array
DW_API_PUBLIC dwStatus dwCalibrationEngine_initializeStereo(dwCalibrationRoutineHandle_t *routine, uint32_t vehicleSensorIndex, uint32_t leftSensorIndex, uint32_t rightSensorIndex, const dwCalibrationStereoParams *params, cudaStream_t stream, dwCalibrationEngineHandle_t engine)
This method initializes a stereo camera pose calibration routine relative to the sensor index of the ...
#define DW_API_PUBLIC
Definition: Exports.h:54
Calibration parameters for calibrating a IMU sensor this should be added to the dwCalibrationParams p...
Definition: IMUParams.h:52
DW_API_PUBLIC dwStatus dwCalibrationEngine_stopCalibration(dwCalibrationRoutineHandle_t routine, dwCalibrationEngineHandle_t engine)
Stops a calibration routine associated with a calibration engine.
NVIDIA DriveWorks API: Calibration
Steering parameter calibration.
Definition: VehicleParams.h:64
struct dwRigObject * dwRigHandle_t
Handle representing the Rig interface.
Definition: Rig.h:70
DEPRECATED: Properties of a passenger car vehicle.
Definition: Vehicle.h:306