9.3.1.1 Firing Sequence
A firing sequence occurs when all the lasers in a sensor are fired. They are fired in a sequence specific to a given product
line. Laser recharge time is included. A firing sequence is sometimes referred to as a firing group.
It takes 55.296 μs to fire all 16 lasers in a VLP-16 and recharge.
9.3.1.2 Laser Channel
A laser channel is a single 903 nm laser emitter and detector pair. Each laser channel is fixed at a particular elevation angle
relative to the horizontal plane of the sensor. Each laser channel is given its own Laser ID number as shown in
. The elevation angle of a particular laser channel is inferred by its data packet location.
9.3.1.3 Data Point
A data point is a measurement by one laser channel of a reflection of a laser pulse.
A data point is represented in the packet by three bytes - two bytes of distance and one byte of calibrated reflectivity. The
distance is an unsigned integer. It has 2 mm granularity. Hence, a reported value of 51,154 represents 102,308 mm or
102.308 m. Calibrated reflectivity is reported on a scale of 0 to 255 as described in
. The elevation
angle (ω) is inferred based on the position of the data point within a data block.
9.3.1.4 Azimuth
A two-byte azimuth value (α) appears after the flag bytes at the beginning of each data block. The azimuth is an unsigned
integer. It represents an angle in hundredths of a degree. Therefore, a raw value of 27742 should be interpreted as
277.42°.
Valid values for azimuth range from 0 to 35999. Only one azimuth value is reported per data block.
9.3.1.5 Data Block
The information from two firing sequences of 16 lasers is contained in each data block. Each packet contains the data from
24 firing sequences in 12 data blocks.
Only one Azimuth is returned per data block.
A data block consists of 100 bytes of binary data:
A two-byte flag (0xFFEE)
A two-byte Azimuth
32 Data Points
[2 + 2 + (32 × 3)] = 100 bytes
For calculating time offsets it is recommended that the data blocks in a packet be numbered 0 to 11.
9.3.1.6 Time Stamp
The four-byte time stamp is a 32-bit unsigned integer marking the moment of the first data point in the first firing sequence
of the first data block. The time stamp’s value is the number of microseconds elapsed since the top of the hour. The num-
ber ranges from 0 to 3,599,999,999, the number of microseconds in one hour.
The time stamp is critical because it's used by geo-referencing software to match each laser firing with corresponding data
from an inertial navigation system. The inertial navigation system provides a series of time stamped values for pitch, roll,
yaw, latitude, longitude, and elevation. By matching the time of the data point to the time-stamped data from the INS, the
user's software can mathematically transform the data from the sensor's coordinate frame to an earth-based reference
frame. The time stamps are matched to Universal Coordinated Time (UTC) provided by the GPS/INS.
When the sensor powers up it begins counting microseconds using an internal time reference. However, the sensor can
synchronize its data with UTC time so you can ascertain the exact firing time of each laser in any particular packet.
Chapter 9 • Sensor Data
55