1 # Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
3 @page sensorplugins_mainsection Integrating with Custom Sensors
6 @note This guide is available in both **NVIDIA DriveWorks** and **NVIDIA DRIVE Software** releases.
8 The NVIDIA<sup>®</sup> DriveWorks SDK does not constrain the use of third-party sensors with higher-level modules as long as they output the defined data structures, such as `dwLidarDecodedPacket`. In certain use-cases, users may bypass the sensor abstraction layer (SAL) and interface directly with the respective modules.
10 However, the SDK also provides flexible options for tightly integrating custom autonomous vehicle sensors with the SAL. It is recommended to employ one of the methods in this section as it provides the following benefits:
12 1. Use of @ref dwx_recording_tools and virtual sensor infrastructure to play back recorded files.
13 2. Use of @ref sensormanager_mainsection to initialize, sort, and deliver sensor data.
14 3. Seamless integration with other @ref dwx_tools_section and @ref dwx_samples_section.
16 For background, the SAL implements sensor functionality in two modular layers:
18 - Sensor Implementation (communication plane) of the supported sensor interfaces (e.g., Ethernet Radar).
19 - Device-specific decoders that handle the parsing and interpretation of raw data.
21 @section plugins_full Comprehensive Sensor Plugin Framework
23 Enables the full integration of custom sensors (with the exception of cameras) into the DriveWorks Sensor Abstraction Layer.
25 The developer implements the sensor (communication plane) and device-specific decoder functions and compiles this plugin as a shared object file (.so).
26 DriveWorks provides the hooks for the instantiation of these custom sensor plugins.
28 The following diagram illustrates this architecture.
30 
32 @subsection plugins_supported Supported Sensor Types
34 The following sensors are currently supported:
35 * Lidar - please see @ref sensorplugins_lidar_mainsection.
36 * IMU - please see @ref sensorplugins_imusensor.
37 * GPS - please see @ref sensorplugins_gpssensor.
38 * CAN - please see @ref sensorplugins_canbussensor.
39 * Radar - please see @ref sensorplugins_radar_mainsection.
41 @section plugins_decoder Lidar and Radar Decoder Plugins
43 Enables the integration of custom ethernet-based lidars and radars with the DriveWorks Sensor Abstraction Layer.
45 While it is generally recommended that the @ref plugins_full is used for sensor integration as it provides the most flexibility to the developer, the Lidar & Radar Decoder Plugins may be useful in situations that only require sensor data ingestion and not sensor control.
47 Assumes transport layer is TCP/UDP ethernet-based channels.
49 DriveWorks provides the sensor implementation and manages the sensor interfaces.
50 The developer implements device-specific decoder functions that parse and interpret raw sensor data into DriveWorks data structures and compiles this plugin as a shared object file (.so). DriveWorks provides the hooks for the instantiation of these custom decoder plugins.
52 The following diagram illustrates this architecture. The socket interface is for real data, and the virtual interface is for data recorded with the socket interface.
54 
56 The following sensors are currently supported:
57 * Lidar - please see @ref sensorplugins_lidardecoder.
58 * Radar - please see @ref sensorplugins_radardecoder.
60 @section plugins_camera Custom Cameras
62 Enables the integration of GMSL cameras supported by third parties, by leveraging the NvMedia Sensor Input Processing Library (SIPL).
64 Assumes that the developer has implemented or otherwise acquired the SIPL-based camera drivers and associated tuning files and installed them per NvMedia guidelines.
66 For more information, please refer to @ref sensorplugins_camerasipl.