Velodyne LiDAR

Resources

Facts to know (VLP-16)

  • Multiple laser returns are possible from any single laser shot because of beam divergence. VLP-16 supports three laser return modes: Strongest, Last, and Dual.

  • Phase Locking feature can be enabled when multiple Velodyne sensors are used to prevent interference between each other.

  • The sensor's motor can be set to work between 300 RPM and 1200 RPM, in increments of 60 RPM. Setting to 600 RPM is equivalent to 10 Hz. The horizontal resolution will be changed accordingly (between 0.1 to 0.4 degrees) and the value for 10 Hz is 0.2 degree.

  • All 16 lasers are fired and recharged every 55.296 μs. (16 lasers are fired one by one (16 × 2.304 μs) followed by an idle period of 18.43 μs.)

  • The timestamp in the packet indicates the time of the first data point in the packet. The exact time for each data point can be computed by adding a time offset to the timestamp.

  • In the raw data, the vertical angles for even Laser IDs (0, 2, 4, ..., 14) increments from -15° to -1° and the vertical angles for odd Laser IDs (1, 3, 5, ..., 15) increments from 1° to 15°. This has been rearranged by the ROS package, such that the value in the ring field increases as the vertical angle increases (i.e. ring ID 0-15 maps to angle -15° to 15°).

  • Velodyne rotates in a clock-wise (CW) manner. A point cloud frame (16 scans in 360°) can begin/end at any azimuth (horizontal) angle. The border between the start/end of point cloud frames is also observed to rotate slowly in a clock-wise direction (due to a small range of overlap between the start/end of each frame).

VLP-16 Parameters

// VLP-16 constant parameters
const int N_SCAN = 16;
const int Horizon_SCAN = 1800;  // 1800 for 600 RPM (10Hz)
const float ang_res_x = 0.2;    // degree, 0.2 for 600 RPM (10Hz)
const float ang_res_y = 2.0;    // degree, fixed FoV
const float ang_bottom = 15.0+0.1;

/* Field information of sensor_msgs::PointCloud2 messages from Velodyne LiDAR
fields[]  name       offset   datatype    count
  0       x            0      7(FLOAT32)    1
  1       y            4      7(FLOAT32)    1
  2       z            8      7(FLOAT32)    1
  3       intensity    16     7(FLOAT32)    1
  4       ring         20     4(UINT16)     1
*/

Last updated