This document will help you port your applications from DriveWorks SDK 3.5 to DriveWorks SDK 4.0.
DriveWorks main library was split into a collection of smaller libraries providing a subset of DriveWorks APIs to link against. Every user end application or library would need to link against a particular libdw_<module>.so library instead, to gain access to the API subset.
Following APIs have been modified:
dwCalibrationEngine_addFeatureDetections additionally takes feature statuses as an inputdwCalibrationEngine_initializeStereo additionally takes the vehicle sensor index as an input and allows to perform calibration at low speeds updateMasks was removed from dwCameraModel_applyImageTransform().dwEgomotion_getHistoryElement API signature has been changed. The function no longer provides pointers into the egomotion history, instead a copy of the requested element is provided.DW_EGOMOTION_MEASURMENT_VELOCITY, DW_EGOMOTION_MEASURMENT_STEERINGANGLE and DW_EGOMOTION_MEASURMENT_STEERINGWHEELANGLE are removed from dwMotionModelMeasurement.dwEgomotion_addOdometry API has been deprecated. Use dwEgomotion_addVehicleState going forward.dwEgomotion_update API has been deprecated. Please set dwEgomotionParameters.automaticUpdate to true. This setting will become the default behavior in an upcoming release, at which point dwEgomotion_update will be removed. The parameter siblingId in dwSensorCamera_readFrame has been removed. This is due to the fact each instance of a camera is a unit, resulting in no sibling logic anymore.
This release removed the following APIs:
dwSensorSerializer_attachTodwSensorSerializer_isAttacheddwSensorSerializer_detachFromPreviously, each SensorSerializer instance was capable of serializing data from multiple sensors, and the APIs above relates to that specific functionality. Such functionality will be removed and each instance of SensorSerializer will only handle data from one sensor. If the users want to serialize data from multiple sensors, it is necessary to create multiple instance of SensorSerializer
This release can be used with update Aurix Firmware. Hardware timestamping and is not available with Aurix firmware version 4.0 and above. CAN data size limit is 8 bytes with Aurix firmware version 4.0 and above.
The data conditioner initializer dwDataConditioner_initialize() will be deprecated and replaced with dwDataConditioner_initializeNew(). The new API has an additional parameter that allows setting the maximum number of images that can be processed in one prepareData() call. Previously the number was taken from the batch size of the model passed in to dwDataConditioner_initialize().
This release has removed the following previously deprecated APIs:
dwDNNTensor_createand renamed:
dwDNNTensor_createNew to dwDNNTensor_create This release has removed the following previously deprecated APIs:
dwFeature2DDetectorConfigdwFeature2DDetector_initDefaultParamsdwFeature2DDetector_initDefaultParamsForCameradwFeature2DDetector_initializeand renamed:
dwFeature2DDetectorConfigNew to dwFeature2DDetectorConfigdwFeature2DDetector_initDefaultParamsNew to dwFeature2DDetector_initDefaultParamsdwFeature2DDetector_initDefaultParamsForCameraNew to dwFeature2DDetector_initDefaultParamsForCameradwFeature2DDetector_initializeNew to dwFeature2DDetector_initialize This release has removed the following previously deprecated APIs:
dwFeature2DTrackerConfigdwFeature2DTracker_initDefaultParamsdwFeature2DTracker_initDefaultParamsForCameradwFeature2DTracker_initializeand renamed:
dwFeature2DTrackerConfigNew to dwFeature2DTrackerConfigdwFeature2DTracker_initDefaultParamsNew to dwFeature2DTracker_initDefaultParamsdwFeature2DTracker_initDefaultParamsForCameraNew to dwFeature2DTracker_initDefaultParamsForCameradwFeature2DTracker_initializeNew to dwFeature2DTracker_initializeThis release has removed DW_FEATURE2D_TRACKER_ALGORITHM_SFM from dwFeature2DTrackerAlgorithm, please use dwFeature2DTrackerConfigNew::enableSparseOutput=1 instead.
Following APIs have been modified:
This release moved the following headers:
dw/pointcloudprocessing/PointCloud.h to dw/pointcloudprocessing/pointcloud/PointCloud.hdw/pointcloudprocessing/PointCloudAccumulator.h to dw/pointcloudprocessing/accumulator/PointCloudAccumulator.hdw/pointcloudprocessing/PointCloudPlaneExtractor.h to dw/pointcloudprocessing/planeextractor/PointCloudPlaneExtractor.hdw/pointcloudprocessing/PointCloudStitcher.h to dw/pointcloudprocessing/stitcher/PointCloudStitcher.hdw/pointcloudprocessing/PointCloudBoxFilter.h to dw/pointcloudprocessing/filter/PointCloudBoxFilter.hdw/pointcloudprocessing/PointCloudICP.h to dw/pointcloudprocessing/icp/PointCloudICP.hdw/pointcloudprocessing/PointCloudRangeImageCreator.h to dw/pointcloudprocessing/rangeimagecreator/PointCloudRangeImageCreator.h Following APIs have been modified:
dwVehicleIOCommand::accelerationValue has been replaced by dwVehicleIOCommand::lonAccelerationValuedwVehicleIOCommand::accelerationValid has been replaced by dwVehicleIOCommand::lonAccelerationValiddwVehicleIOCommand::speedValid was removeddwVehicleIOType was updated to support only the core VehicleIO interfaces. dwVehicleIO_initialize and dwVehicleIO_initializeFromDBC should be replaced by dwVehicleIO_initializeFromRig if previous interface types are desired. This release moved the following headers:
This release moved the following headers:
dw/core/Logger.h to dw/core/logger/Logger.h This release moved the following headers:
dw/core/NvMedia.h to dw/core/system/NvMedia.hdw/core/NvMediaExt.h to dw/core/system/NvMediaExt.h This release moved the following headers:
dw/core/Exports.h to dw/core/base/Exports.hdw/core/Status.h to dw/core/base/Status.hdw/core/Types.h to dw/core/base/Types.h