- Welcome
- Getting Started With the NVIDIA DriveWorks SDK
- Modules
- Samples
- Tools
- Tutorials
- SDK Porting Guide
- DriveWorks API
- More
NVIDIA® DriveWorks SDK provides a sensor abstraction layer that supports easy capturing of data from various sources, and it has been designed with the following goals in mind:
DriveWorks provides support for the following sensor types:
DriveWorks supports a diverse set of these sensors out-of-the-box. For the most up-to-date list of supported sensors, please refer to the following:
In the event a sensor is not natively supported in DriveWorks, integration with custom sensors is also possible. For more information, please refer to Integrating with Custom Sensors.
DriveWorks does not constrain the integration of any sensors. Any third-party sensor can be used in the DriveWorks modules, if its output is mapped to the sensor data API representation, such as: dwCANMessage
, dwGPSFrame
, dwIMUFrame
, dwLidarDecodedPacket
, dwImageCUDA
, dwImageGL
, dwImageCPU
, and dwImageNvMedia
. Use dwContext_getCurrentTime()
to time-stamp individual sensors.
DriveWorks API supports sharing of the same HW sensor by multiple DriveWorks abstractions. For example, the same GPS sensor can be created twice from the same hardware implementation (e.g. Xsens device or serial connection). Each DriveWorks sensor has its own internal FIFO to keep the data ready for consumption. Sensor data of the shared sensors are equal and can be matched by equal timestamps if required. The sample GPS Location Logger Sample shows, in particular, how two sensors can be created from the same HW GPS sensor.
A dwSensorSerializerHandle_t
can be created using any sensor and allows the serialization of the sensor output to file or to a custom callback function. dwSensorSerializer_serializeData()
and dwSensorSerializer_serializeDataAsync()
are used for all sensors, whereas dwSensorSerializer_serializeCameraFrame()
and dwSensorSerializer_serializeCameraFrameAsync()
are used for dwImageHandle_t
coming from a Camera. Async recordings always require dwSensorSerializer_start()
. The way serialization is performed for cameras depends on the camera protocol and parameters (the output can be a .h264/.h265 compressed video, .raw video, .lraw lossless video). When serializing a camera image, it always has to be a NATIVE image.