DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Custom Lidars (Decoder Only)
Note
SW Release Applicability: This tutorial is applicable to modules in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

Lidar Communication Requirements

For the Lidar to communicate with NVIDIA DRIVE™ AGX, it must be of the following type:

  • Ethernet based Lidar that supports either TCP or UDP.

Custom Lidar Decoder Requirements

The module must expose the decoder properties (dwLidarDecoderProperties) defined in the decoder API.

Custom Lidar Decoder Implementation

The sensor implementation uses the custom decoder interface to provide the following functions during operation.

Please refer to Lidar Plugin for a detailed list of functions.

You need to write a program that implements this interface.

Validate Your Plugin by Creating a Custom Lidar Sensor

When the currently supported lidars (see Introduction) are chosen, there is no requirement to provide a custom decoder to parse information from the received lidar packets. Under such circumstances, the lidar sensor can be initialized by providing a string of key value pairs in the following format as an input argument to dwSAL_createSensor(…).

When currently unsupported lidars are chosen, the customer must provide a custom decoder as a dynamic linked library via the following string of key value pairs as an input argument to dwSAL_createSensor(…).

    lidar.socket --params=device=CUSTOM,ip=X.X.X.X,port=XXXX,decoder=<path_to_the_decode.so>,protocol={udp, tcp}

Data Acquisition with a Custom Lidar

The plugin interfaces currently support the following protocols:

  • lidar.socket
  • lidar.virtual (for files recorded with this decoder)

In order to use the recorder or recorder-qt applications to record from a custom lidar, the recorder-config.json file has to be updated as follows:

  • Lidar socket
    "lidar" : {
    "write-file-pattern": "lidar_*",
    "sensors" : [
    {
    "protocol": "lidar.socket"
    "params": "device=CUSTOM,ip=X.X.X.X,
    port=XXXX,decoder=<path_to_the_decode.so>,
    protocol={udp, tcp}"
    }
    ]
    },
  • Lidar virtual
    "lidar" : {
    "write-file-pattern": "lidar_*",
    "sensors" : [
    {
    "protocol": "lidar.virtual"
    "params": "device=CUSTOM,
    decoder=<path_to_the_decode.so>,
    protocol={udp, tcp}"
    }
    ]
    },
    Note
    For more information on data recording, see Recording Sensor Data.