-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VLP 16 Changes #1
Comments
I don't have access to a VLP-16 but testing with the sample datasets from Velodyne (https://midas3.kitware.com/midas/folder/12979) seems to indicate that you only need to make sure that you use the VLP-16 corrections file for it to work correctly - no code changes needed. |
From testing with sample datasets, no VLP-16-specific changes are required - If a change is required the fix is easy, but for now I will close this issue until I get data that shows problems. |
Been working on this some more and I've been outputting the various data to investigate how it all looks. As you can see the Laser ID is not correct when compared to the table view in VeloView which has them from 0-15. While this code creates them from 0-31 and includes more than 16 in some of the packets. Looking through the code I think that perhaps something in the offset that is derived from the corrections is not correct? If you output the data using a VLP-16 sample file you should see the same thing. |
Unfortunately, examination of the sample VLP-16 datasets indicates that the data block ID for the VLP-16 is identical to that of the HDL-32/64 (0xEEFF) instead of 0xFFEE as shown in the manual - if you have access to an actual VLP-16, can you confirm the block ID and upload a sample pcap? I'd like to automatically distinguish between the HDL and VLP using the block ID, otherwise I have to add some function to switch between the two which is not elegant. A quick fix for now if you are definitely using a VLP-16 is to add the line: if (laserId >= 16) laserId -= 16; in PacketDecoder.cpp after line 65 where laserId is set. |
Just checking that along with using the VLP-16 corrections file if you would also need to change any of the rest of the code.
Looking through PacketDecoder.cpp the ProcessHDLPacket checks from blocks 0 to 31:
int offset = (firingData.blockIdentifier == BLOCK_0_TO_31) ? 0 : 32;
Would I be correct in saying that should be 0 to 15 for a VLP 16? Is that the only change needed for VLP 16 compatibility or is there more?
Thanks for the excellent code in any case!
The text was updated successfully, but these errors were encountered: