Velodyne Lidar Operator#
Authors: Holoscan Team (NVIDIA), nvMap Team (NVIDIA), nvMap Embedded Team (NVIDIA), Tom Birdsong (NVIDIA), Julien Jomier (NVIDIA), Jiahao Yin (NVIDIA), Marlene Wan (NVIDIA)
Supported platforms: x86_64, aarch64
Language: C++
Last modified: October 9, 2025
Latest version: 1.0
Minimum Holoscan SDK version: 2.0.0
Tested Holoscan SDK versions: 2.0.0
Contribution metric: Level 4 - Experimental
Overview#
A Holoscan operator to convert packets from the Velodyne VLP-16 Lidar sensor to a point cloud tensor format.
Description#
This operator receives packets from a Velodyne VLP-16 lidar and processes them into a point cloud of fixed size in Cartesian space.
The operator performs the following steps:
- Interpret a fixed-size UDP packet as a Velodyne VLP-16 lidar packet, which contains 12 data blocks (azimuths) and 32 spherical data points per block.
- Transform the spherical data points into Cartesian coordinates (x, y, z) and add them to the output point cloud tensor, overwriting a previous cloud segment.
- Output the point cloud tensor and update the tensor insertion pointer to prepare for the next incoming packet.
We recommend relying on HoloHub networking operators to receive Velodyne VLP-16 lidar packets over UDP/IP and forward them to this operator.
Requirements#
Hardware requirements:
- Holoscan supported platform (x64 or NVIDIA IGX devkit);
- Velodyne VLP-16 Lidar sensor
Example Usage#
See the HoloHub Lidar Sample Application to get started.
Acknowledgements#
This operator was developed in part with support from the NVIDIA nvMap team and adapts portions of the NVIDIA DeepMap SDK.
API Reference#
C++#
data_collection::sensors::VelodyneConvertXYZHelper#
Helper class to convert VLP-16 packets to a list of XYZ points in device memory.
Methods#
| Method | Description |
|---|---|
void ConvertRawPacketToDeviceXYZ(const data_collection::sensors::RawVelodynePacket *packet, PointXYZ *gpu_xyz_intensity_destination) |
Convert a raw Velodyne VLP-16 packet to a list of XYZ points. |
holoscan::ops::VelodyneLidarOp#
Inherits from: holoscan::Operator
Operator class to process Velodyne VLP-16 lidar sensor input.
Methods#
| Method | Description |
|---|---|
void initialize() override |
|
void setup(OperatorSpec &spec) override |
|
void compute(holoscan::InputContext &op_input, holoscan::OutputContext &op_output, holoscan::ExecutionContext &) override |