The velodyne_puck
package is a linux ROS driver for velodyne puck only of VELODYNE LIDAR.
The user manual for the device can be found here or the Lite version here.
The major difference between this driver and the ROS velodyne driver is that the start of each revolution is detected using azimuth. Also publish a range image.
The package is tested on Ubuntu 18.04 with ROS melodic.
This driver is developed based on ROS velodyne driver, which originally has the BSD license. The COPYING file is kept in this package. However, the changed files have the GNU General Public License V3.0.
Parameters
device_ip
(string
, default: 192.168.1.201
)
By default, the IP address of the device is 192.168.1.201.
Published Topics
packet
(velodyne_puck/VelodynePacket
)
Each message corresponds to a velodyne packet sent by the device through the Ethernet. For more details on the definition of the packet, please refer to the user manual. This is the topic to save, don't save point cloud or range image!!!
Parameters
min_range
(double
, 0.5
)
max_range
(double
, 100.0
)
Points outside this range will be NaN in published point cloud if organized=True
.
Otherwise, they will be removed.
image_width
(int
, 1024
)
Width of the published image.
full_sweep
(bool
, false
)
Whether to publish a full sweep or not.
organized
(bool
, true
)
Whether to publish an organized cloud or not.
frame_id
(string
, velodyne
)
Will be used as namespace for all nodes and messages.
Published Topics
image
(sensor_msgs/Image
)
The range image is encoded as a CV_F32C3 image, with channels (Range, Intensity, Azimuth) row 0 ~ 15 in the image correspond to lasers from top (15deg) to bottom (-15deg).
pixels in each row just contain those 3 bytes.
cinfo
(sensor_msgs/CameraInfo
)
Stores relevant information to restore points from range image.
intensity
(sensor_msgs/Image
)
For visualizing intensity image only.
range
(sensor_msgs/Image
)
For visualizing range image only.
P[0] = FiringCycleNs; // 55296 ns
D = [elevations, azimuths] // D.size() == image.height + image.width
cloud
(sensor_msgs/PointCloud2
)
A point cloud, where invalid points are filled with NaNs if organized and removed if not organized.
Node
Run full driver
roslaunch velodyne_puck run.launch driver:=true device_ip:=192.168.1.201
Run decoder only
roslaunch velodyne_puck run.launch driver:=false