waymo-research / waymo-open-dataset

Waymo Open Dataset
https://www.waymo.com/open
Other
2.63k stars 605 forks source link

Number of layers in LiDARs other than TOP? #810

Open jamesheatonrdm opened 3 months ago

jamesheatonrdm commented 3 months ago

I am trying to find out the number of layers in the LiDARs other than TOP i.e. FRONT, REAR, SIDE_LEFT, SIDE_RIGHT.

Decompressing the range image, it appears that the number of layers is 200, which doesn't seem to make sense.

When I decompress the top LiDAR range image, the dimensions are as follows:

(64, 2560, 4)

Which makes sense as it is a 64-layer LiDAR.

However, for all the other LiDARs, I get the following dimensions:

(200, 600, 4)

Which implies that the number of layers in these LiDARs is 200. This doesn't make sense as I am not sure if there even exists a LiDAR with 200 layers.

I am decompressing the range image with the following:

front_laser = frame.lasers[1] # [0: TOP, 1: FRONT, 2: SIDE_LEFT, 3: SIDE_RIGHT, 4: REAR]

range_image_str_tensor = tf.io.decode_compressed(
          front_laser.ri_return1.range_image_compressed, 'ZLIB')

ri = open_dataset.MatrixFloat()
ri.ParseFromString(bytearray(range_image_str_tensor.numpy()))

print(ri.shape)

Furthermore, when I use the util function convert_frame_to_dict, I get 64 beam inclinations for the top LiDAR, and again 200 beam inclinations for the other LiDARS. However this function uses the height of the range image to obtain the beam inclinations, which is obtained by using the same code as shown above.

data_dict[beam_inclination_key] = range_image_utils.compute_inclination(
          tf.constant([c.beam_inclination_min, c.beam_inclination_max]),
          height=range_images[c.name][0].shape.dims[0]).numpy()

Viewing the contents of frame.context the beam inclinations for the top lidar are given, and there are 64 of them which makes sense. However the beam inclinations for the other LiDARs are not given, only the minimum and maximum. Why is this the case?

laser_calibrations {  
    name: SIDE_RIGHT  
    beam_inclination_min: -1.5707963267948966  
    beam_inclination_max: 0.5235987755982988  
    extrinsic {    
        transform: -0.03861769555452071
        transform: 0.9992465657605545
        transform: -0.0038696777379948095
        transform: 3.245
        transform: -0.9989653676493501
        transform: -0.03869933018213982
        transform: -0.023886315761381522
        transform: -1.025
        transform: -0.02401807292971383
        transform: 0.0029432395742283093
        transform: 0.9997071918884807
        transform: 0.979
        transform: 0.0
        transform: 0.0
        transform: 0.0
        transform: 1.0  
    }
}
laser_calibrations {  
    name: TOP
    beam_inclinations: -0.3062496301683044
    beam_inclinations: -0.29516893681303036
    beam_inclinations: -0.28449344065521887
    beam_inclinations: -0.2738296176840642
    beam_inclinations: -0.26313358188635294
    beam_inclinations: -0.25372659188569746
    beam_inclinations: -0.2440640640990024
    beam_inclinations: -0.2345344897853754
    beam_inclinations: -0.225296834730498
    beam_inclinations: -0.21580022272035237
    beam_inclinations: -0.20634880274115197
    beam_inclinations: -0.19778418616273097
    beam_inclinations: -0.18901440446153273
    beam_inclinations: -0.18097437867597632
    beam_inclinations: -0.17253043625263098
    beam_inclinations: -0.1644357579306479
    beam_inclinations: -0.15633346596078224
    beam_inclinations: -0.1487457268120973
    beam_inclinations: -0.14105385093618628
    beam_inclinations: -0.13343975875184566
    beam_inclinations: -0.12650199856453948
    beam_inclinations: -0.11947037211004607
    beam_inclinations: -0.11270063862125146  
    beam_inclinations: -0.1063099263181444
    beam_inclinations: -0.09975420854649997
    beam_inclinations: -0.09356426735422207
    beam_inclinations: -0.08768368105944369
    beam_inclinations: -0.08170518141526317
    beam_inclinations: -0.07619334777022346
    beam_inclinations: -0.07100080722501634
    beam_inclinations: -0.06581034306492084
    beam_inclinations: -0.0604799188917613
    beam_inclinations: -0.05600400918923287
    beam_inclinations: -0.05105926130557581
    beam_inclinations: -0.046572362230800524
    beam_inclinations: -0.04254147875366732
    beam_inclinations: -0.03821293431478101
    beam_inclinations: -0.034294609174740254
    beam_inclinations: -0.03066653441035938
    beam_inclinations: -0.02689425708927229
    beam_inclinations: -0.023857607169294193
    beam_inclinations: -0.020745472812761845
    beam_inclinations: -0.01779799770194912
    beam_inclinations: -0.014747666226994971
    beam_inclinations: -0.011916447844428468
    beam_inclinations: -0.0088217165929656
    beam_inclinations: -0.00596922589343496
    beam_inclinations: -0.0033035380142032444
    beam_inclinations: -0.00020284092259315045
    beam_inclinations: 0.0028732110061144844
    beam_inclinations: 0.0055878271187523865
    beam_inclinations: 0.008436397490958703
    beam_inclinations: 0.01131329618399568
    beam_inclinations: 0.014139782550373736
    beam_inclinations: 0.017302758221248382
    beam_inclinations: 0.020302563899257553
    beam_inclinations: 0.023075982893805413
    beam_inclinations: 0.02607291412428836
    beam_inclinations: 0.02880215294252597
    beam_inclinations: 0.031781309964403315
    beam_inclinations: 0.03471180364289794
    beam_inclinations: 0.03770246734582772
    beam_inclinations: 0.04051627836095428
    beam_inclinations: 0.04368278080575827
    beam_inclination_min: -0.31178997684594145
    beam_inclination_max: 0.045266032028160264
    extrinsic {
        transform: -0.8474174306637593
        transform: -0.5309062391880738
        transform: 0.004718410580754707
        transform: 1.43
        transform: 0.5309246555731615
        transform: -0.8474074413998973
        transform: 0.0044315194458962185
        transform: 0.0
        transform: 0.0016456949148019723
        transform: 0.006260467335217813
        transform: 0.9999790488990217
        transform: 2.184
        transform: 0.0
        transform: 0.0
        transform: 0.0
        transform: 1.0
    }
}

Would someone be able to confirm / deny whether 200 is indeed the correct number of layers for the other LiDARs, and if not, where can I find the correct information?

Thanks in advance.

Kin-Zhang commented 2 weeks ago

Their dataset paper indicates the LiDAR specification:

image

And here is through my visualization (different color means different LiDARs I also show other four LiDARs):

image

Also curious about the question the channel-type LiDAR of the other four.

Link a relate issue on channel-type LiDAR: https://github.com/waymo-research/waymo-open-dataset/issues/334