Moved to https://git.opendlv.org.
This repository provides source code to interface with a VelodyneLidar VLP16 unit for the OpenDLV software ecosystem.
- Dependencies
- Usage
- Build from sources on the example of Ubuntu 16.04 LTS
- License
- PointCloudReading data structure
No dependencies! You just need a C++14-compliant compiler to compile this project as it ships the following dependencies as part of the source distribution:
This microservice is created automatically on changes to this repository via Docker's public registry for:
To run this microservice using our pre-built Docker multi-arch images to connect
to a VelodyneLidar VLP16 unit broadcasting data to 0.0.0.0:2368
and to publish
the messages according to OpenDLV Standard Message Set into session 111 in
Google Protobuf format, simply start it as follows:
docker run --init --rm --net=host chalmersrevere/opendlv-device-lidar-vlp16-multi:v0.0.10 --vlp16_ip=0.0.0.0 --vlp16_port=2368 --cid=111 --verbose
To build this software, you need cmake, C++14 or newer, and make. Having these
preconditions, just run cmake
and make
as follows:
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
make && make test && make install
- This project is released under the terms of the GNU GPLv3 License
opendlv-device-lidar-vlp16
receives the data from VLP16 (Velodyne LiDAR with 16 layers)
UDP packets as input and tranforms the payload into a more compact PointCloudReading
representation (CPC), which is a compact form of the original 3D point cloud.
Further details of this implementation can be found in the paper
"Hang Yin and Christian Berger, Mastering data complexity for autonomous driving with adaptive point clouds for urban environments, 2017 IEEE Intelligent Vehicles Symposium, 2017 (https://www.researchgate.net/publication/318093493_Mastering_Data_Complexity_for_Autonomous_Driving_with_Adaptive_Point_Clouds_for_Urban_Environments)".
Using CPC, it is possible to encode a complete scan of VPL-16 (Velodyne LiDAR with 16 layers) into a single UDP packet, assuming 10Hz rotation rate. For every 16 points with the same azimuth, they are re-ordered with increasing vertical angle. The top layer has a vertical angle of -30.67 degree. The bottom layer has a vertical angle of 10.67 degree. From the top layer all the way down to the bottom layer, the vertical angle increment alternates between 1.33 and 1.34 degree. For instance, the vertical angle of the top layer, Layer 0, is -30.67 degree, while the vertical angles of Layer 1 and Layer 2 are -29.33 and -28 degree, respectively.