valgur / velodyne_decoder

Fully-featured C++/Python Velodyne packet decoder
BSD 3-Clause "New" or "Revised" License
39 stars 12 forks source link

Broken VLS-128 config #2

Closed flopie2009 closed 2 years ago

flopie2009 commented 2 years ago

While testing the VLS-128 integration, the reading of the rosbag failed with:

File "*****/python3.6/site-packages/velodyne_decoder/__init__.py", line 94, in read_bag decoder = ScanDecoder(config) RuntimeError: Unable to open calibration file: ******/python3.6/site-packages/velodyne_decoder/calibrations/VLS-128.yml

This is because the config file within the repo is broken and some of the laser id's have missing data. Is it possible to fix this issue?

valgur commented 2 years ago

Indeed, the original VLS-128 XML calibration file from VeloView is already kind of weird. The VLS-128.xml calibration XML is identical to the Alpha Prime.xml except for the beam IDs appearing to be out of order and quite random. The ROS driver, that this package is based on, also ships a VLS-128 config that is almost identical to the Alpha Prime config generated from the VeloView XML. The only difference, albeit an important one, is the distance_resolution parameter being 0.007 meters in the ROS config instead of 0.004 in the one generated from VeloView. Could you please verify that the point clouds decoded with the Alpha Prime calibration parameters from this repo have the correct scale?

Based on the above I will simply drop the VLS-128.yml file and deprecate the VLS-128 model ID option in favor of Alpha Prime. They appear to be virtually identical as far as I know.

flopie2009 commented 2 years ago

I checked again the scale of the Alpha Prime pointcloud compared to a VLP-32 pointcloud. And both looked as expected. Resulting, the scale seems to be fine.