velodyne: velodyne_common | velodyne_driver | velodyne_msgs | velodyne_pointcloud
- Code API
- diamondback
- electric
- fuerte
- unstable - Msg API
- diamondback
- electric
- fuerte
- unstable - FAQ
- Reviews (experimental)
Used by (1)
Package Summary
Basic device driver, message, header, library and utility interfaces for the Velodyne HDL-64E and HDL-64E S2 3D LIDARs.
- Author: Jack O'Quin, Patrick Beeson, Michael Quinlan, Yaxin Liu
- License: BSD
- Repository: utexas-art-ros-pkg
- Source: svn http://utexas-art-ros-pkg.googlecode.com/svn/trunk/stacks/velodyne/velodyne_common
Overview
This package provides basic device handling for Velodyne 3D LIDARs. It supports the HDL-64E and HDL-64E S2 models. The HDL-32 is not supported, use the velodyne_driver package for that.
This package is deprecated, please migrate to the new interfaces provided by velodyne_driver and velodyne_pointcloud. |
Road Map
This whole package is being reimplemented. The velodyne_driver and velodyne_pointcloud packages will replace it. Once they are ready, velodyne_common will be deleted.
Contents
ROS Nodes
velodyne_read
ROS device driver node that captures Velodyne HDL-64E 3D LIDAR data and publishes it.Published Topics
velodyne/packets (velodyne_msgs/VelodyneScan)- Velodyne data packets for one entire revolution of the device in the /velodyne frame of reference
- Raw Velodyne data packets for one entire revolution of the device in the /velodyne frame of reference
Parameters
~pcap (string)- PCAP dump input file name; overrides the -f command line parameter.
- Parameters defined by <velodyne/input.h>.
Usage
rosrun velodyne_common read [options]
Options:
-f <filename> PCAP packet dump file name (default: use real device)
-h, -? print help text
-q <integer> set ROS topic queue depth (default: 1)
Examples
Read the Velodyne input socket as fast as possible. Publish each complete revolution to velodyne/rawscan.
$ rosrun velodyne_common read
Read previously captured Velodyne packets from dump.pcap file. Publish messages to velodyne/rawscan at approximately 10 Hz rate.
Dump files can be grabbed by libpcap, Velodyne's DSR software, ethereal, wireshark, tcpdump, or the vdump command.
$ rosrun velodyne_common read _pcap:=dump.pcap
velodyne_cloud
The cloud command reads raw data, converts to sensor_msgs/PointCloud format, and republishes as velodyne/pointcloud.Subscribed Topics
velodyne/rawscan (velodyne_common/RawScan)- Raw Velodyne data from the device
Published Topics
velodyne/pointcloud (sensor_msgs/PointCloud)- Velodyne points for one entire revolution of the device with intensity channel.
Parameters
~data/* (see <velodyne/data.h>)- Parameters defined by <velodyne/data.h>.
Usage
rosrun velodyne_common cloud [options]
Options:
-h, -? print help text
-q <integer> set ROS topic queue depth (default: 1)
Examples
Continuously convert raw Velodyne data into sensor_msgs/PointCloud messages.
$ rosrun velodyne_common cloud
ROS Nodelets
New in version 0.2.5
Several algorithms now use the ROS nodelet mechanism. These experimental nodelets publish data using shared pointers.
- When two or more are loaded into the same nodelet manager process, they can share messages without copying or serialization overhead.
- Published messages are also available to external nodes, although with the usual ROS message copying overhead.
- When run in a standalone nodelet process, a nodelet functions almost like a normal ROS node.
driver_nodelet
ROS device driver nodelet that captures Velodyne HDL-64E 3D LIDAR data and publishes it to the velodyne/packets ROS topic.Published Topics
velodyne/packets (velodyne_msgs/VelodyneScan)- one or more Velodyne data packets from the device
Parameters
~pcap (string)- PCAP dump input file name; overrides the -f command line parameter.
- Number of packets to publish in each message. Default is a full revolution.
- Device frame ID. Resolved using tf_prefix, if defined.
- Parameters defined by <velodyne/input.h>.
Examples
Read the Velodyne input socket as fast as possible. Publish each complete revolution to velodyne/packets. Running as a standalone nodelet prevents zero-copy message sharing.
$ rosrun nodelet nodelet standalone velodyne_common/DriverNodelet
Read previously captured Velodyne packets from dump.pcap file. Publish messages to velodyne/packets at approximately 10 Hz rate.
Dump files can be grabbed by libpcap, Velodyne's DSR software, ethereal, wireshark, tcpdump, or the vdump command.
$ rosrun nodelet nodelet standalone velodyne_common/DriverNodelet _pcap:=dump.pcap
pointcloud_nodelet
The pointcloud nodelet reads raw data from the velodyne/packets ROS topic, converts to sensor_msgs/PointCloud format, and republishes as velodyne/pointcloud.Subscribed Topics
velodyne/packets (velodyne_msgs/VelodyneScan)- one or more Raw Velodyne data packets from the device
Published Topics
velodyne/pointcloud (sensor_msgs/PointCloud)- Velodyne data points for one entire revolution of the device
Parameters
~data/* (see <velodyne/data_xyz.h>)- Parameters defined by <velodyne/data_xyz.h>.
Examples
Continuously convert raw Velodyne data into sensor_msgs/PointCloud messages. Running as a standalone nodelet prevents zero-copy message sharing.
$ rosrun nodelet nodelet standalone velodyne_common/PointCloudNodelet
transform_nodelet
The transform nodelet reads raw data from the velodyne/packets ROS topic, converts to sensor_msgs/PointCloud format, and republishes as velodyne/pointcloud in a specified frame of reference (typically /odom). In addition to the data points, this cloud includes additional channels for "intensity", "ring" and "heading".Subscribed Topics
velodyne/packets (velodyne_msgs/VelodyneScan)- one or more Raw Velodyne data packets from the device
Published Topics
velodyne/pointcloud (sensor_msgs/PointCloud)- accumulated Velodyne points transformed into the frame_id frame of reference.
Parameters
~frame_id (str, default: "odom")- Target frame ID. Resolved using tf_prefix, if defined.
- maximum range to publish
- minimum range to publish
- Number of packets to publish in each message. Default is a full revolution.
- Parameters defined by <velodyne/data_xyz.h>.
Examples
Continuously transform raw Velodyne data into sensor_msgs/PointCloud messages in the /odom frame of reference. Messages are published at about 10 Hz, and collect data from a full revolution of the device, roughly 100,000 points. Running as a standalone nodelet prevents zero-copy message sharing.
$ rosrun nodelet nodelet standalone velodyne_common/TransformNodelet
Utility Commands
vdump
The vdump command dumps raw data from the Velodyne LIDAR in PCAP format. It is a shell script wrapper with some obscure options for the powerful tcpdump command.
Other methods of acquiring PCAP data include using tcpdump directly, wireshark, Velodyne's DSR software, and programming with libpcap.
Usage
rosrun velodyne_common vdump <file_prefix> [ <interface> ]
<file_prefix> file name to dump (with 3-digit number suffix)
<interface> interface to read from (default: "eth1")
Examples
Dump Velodyne packets to a series of files named pcap-000, pcap-001, etc. Each file will be about 100MB, holding a little more than 30 seconds of Velodyne packets. Type ^C when finished.
$ rosrun velodyne_common vdump pcap- eth0
C++ Programming API
See the code API for details.
Velodyne Data classes
Classes to unpack raw Velodyne LIDAR packets into several formats.
- Deprecated version 0.2 interface:
Version 0.3 interface New in version 0.2.5:
Parameters
~data/output (string, default: none)- output file name
- Device-specific angles correction file name.
Velodyne Input classes
The <velodyne/input.h> classes provide raw Velodyne LIDAR input packets from either a live socket interface or a previously-saved PCAP dump file.
Parameters
~input/read_once (bool, default: false)- If true, read input file only once.
- If true, read input file as fast as possible.
- Number of seconds to delay before repeating input file.
Launch File Examples
Start a velodyne_nodelet_manager process and load the driver nodelet.
$ roslaunch velodyne_common nodelet_manager.launch
Start a driver nodelet with input from tcpdump.pcap, in current directory.
$ rosparam set driver_nodelet/pcap `pwd`/tcpdump.pcap $ roslaunch velodyne_common nodelet_manager.launch
Load an instance of the point cloud nodelet into the velodyne_nodelet_manager process. The nodelet manager and driver must be started separately (as above).
$ roslaunch velodyne_common pointcloud_nodelet.launch
Load an instance of the transform nodelet into the velodyne_nodelet_manager process. The nodelet manager and driver must be started separately (as above). There must also be transforms defined for the /velodyne and /odom frames.
$ roslaunch velodyne_common tranform.launch






