DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

Custom Lidars (Decoder Only)

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.
Note
Native support for Ouster lidars is officially deprecated in favor of the plugin for the AGX platform that is managed and distributed by Ouster. Due to exceeding the POSIX packet size limit for its raw data transmission, users might observe erroneous behavior of the Aurix SoC. (see https://developer.nvidia.com/drive/ecosystem-hw-sw for more details)

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.