EasyManua.ls Logo

Velodyne VLP-32C - Page 63

Velodyne VLP-32C
136 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Firing
Order
Laser ID
Elevation
Angle (°)
Elevation
Angle (°)
Laser ID
9 18 1 -3.667 19
10 20 -3.333 3.333 21
11 22 2.333 -2.667 23
12 24 -3 7 25
13 26 4.667 -2.333 27
14 28 -2 15 29
15 30 10.333 -1.333 31
To calculate the exact time, in microseconds, of each data point in a packet, first number the points in the firing sequence
from 0 to 31. This becomes the data point index (aka Laser ID) for your calculations. Next, number the firing sequences 0
to 11. This becomes your sequence index.
The timestamp in the packet indicates the time of the first data point in the packet. You’ll need to calculate a time offset for
each data point and then add that offset to the timestamp. See
Figure 9-7 on page 65
for specific Data Point Timing Off-
sets (Single Return Mode) and
Figure 9-8 on page 66
for specific Data Point Timing Offsets (Dual Return Mode).
The offset equation is given by:
TimeOffset = (55.296 µs * SequenceIndex) + (2.304 µs * DataPointIndex)
To calculate the exact point time, add the TimeOffset to the timestamp.
ExactPointTime = Timestamp + TimeOffset
Example: Calculate the timing offsets of every point in a packet, in single or dual return mode. The following is working
Python code:
def make_table(dual_mode):
timing_offsets = [[0.0 for x in range(12)] for y in range(32)] # Init matrix
# constants
full_firing_cycle = 55.296 # µs
single_firing = 2.304 # µs
# compute timing offsets
for x in range(12):
for y in range(32):
dataBlockIndex = x / 2 if dual_mode else x
dataPointIndex = y / 2
timing_offsets[y][x] = \
(full_firing_cycle * dataBlockIndex) + (single_firing * dataPointIndex)
return timing_offsets
To verify the values are correct, you can print them out and compare them with values in
Figure 9-7 on page 65
and
Figure
9-8 on page 66
.
timing_offsets = make_table(False) # False : single return mode
print('\n'.join([', '.join(['{:8.3f}'.format(value) for value in row])
for row in timing_offsets]))
Example: Calculate the exact firing time of the last firing in a packet if the timestamp value is 45,231,878 µs.
Chapter 9 Sensor Data 63

Table of Contents

Related product manuals