Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/valgur/velodyne_decoder

Fully-featured C++/Python Velodyne packet decoder
https://github.com/valgur/velodyne_decoder

velodyne velodyne-sensor

Last synced: 3 months ago
JSON representation

Fully-featured C++/Python Velodyne packet decoder

Lists

README

        

# velodyne_decoder
[![Build](https://github.com/valgur/velodyne_decoder/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/valgur/velodyne_decoder/actions/workflows/build.yml) [![PyPI](https://img.shields.io/pypi/v/velodyne-decoder)](https://pypi.org/project/velodyne-decoder/) [![Conan Center](https://img.shields.io/conan/v/velodyne_decoder)](https://conan.io/center/recipes/velodyne_decoder) [![Vcpkg](https://img.shields.io/vcpkg/v/velodyne-decoder)](https://vcpkg.link/ports/velodyne-decoder) [![PyPI - Downloads](https://img.shields.io/pypi/dm/velodyne-decoder)](https://pypistats.org/packages/velodyne-decoder)

Python package and C++ library for Velodyne packet decoding. Point cloud extraction from PCAP and ROS bag files is
supported out of the box.

All non-solid-state Velodyne lidar models are fully supported. The model type and RPM are detected automatically from the data and no configuration is necessary to start using the library.

Notably, the library also includes support for dual-return data and decoding of telemetry packets. Precise timing info is available for all models.

The decoded point clouds have been validated to match the official [VeloView ground truth data](https://gitlab.kitware.com/LidarView/velodyneplugin/-/tree/master/Testing/Data?ref_type=heads) for all models.

In Python, the decoded point clouds are provided either as a structured NumPy array:

```python
array([(2.6912806, 1.1651788 , -0.47706223, 9., -0.10085896, 0, 16, 1),
(2.3603256, 1.021404 , -1.428755 , 85., -0.10085782, 0, 1, 1),
(2.6994078, 1.1675802 , -0.4092741 , 3., -0.10085666, 0, 17, 1),
...,
(2.8952641, 0.80728334, 0.48905915, 2., 0.00054029, 923, 30, 1),
(2.8683424, 0.79923725, -0.5555609 , 2., 0.00054144, 923, 15, 1),
(2.908243 , 0.80980825, 0.56333727, 1., 0.00054259, 923, 31, 1)],
dtype={'names': ['x', 'y', 'z', 'intensity', 'time', 'column', 'ring', 'return_type'],
'formats': ['` or
convert a `db.xml` provided with the sensor using [gen_calibration.py](https://wiki.ros.org/velodyne_pointcloud#gen_calibration.py) from the ROS driver.

## Authors

* Martin Valgur ([@valgur](https://github.com/valgur))

The core functionality has been adapted from the ROS [velodyne driver](https://github.com/ros-drivers/velodyne).

## License

[BSD 3-Clause License](LICENSE)