Skip to content
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

Testing and Support for Dual-Return Mode #198

Open
JWhitleyWork opened this issue Dec 5, 2018 · 9 comments
Open

Testing and Support for Dual-Return Mode #198

JWhitleyWork opened this issue Dec 5, 2018 · 9 comments

Comments

@JWhitleyWork
Copy link
Contributor

Dual-return mode does not seem to be properly implemented (as mentioned by #109 and shown by the problems enabling it causes in #193). This is a reminder item to eventually add full, working support for dual-return mode to the driver.

@andre-nguyen
Copy link

@JWhitleyAStuff I'd like to look into this, but it is unclear to me how this would be implemented such that it works correctly for all lidar models. Any pointers?

@JWhitleyWork
Copy link
Contributor Author

JWhitleyWork commented Dec 20, 2018

This isn't by any means the only way but, if I was handling this, I would do the following:

Here are some documents that should help with understanding the modifications to the data structures in dual return mode:

https://velodynelidar.com/docs/notes/63-9277%20Rev%20B%20HDL-32E%20Application%20Note%20-%20Packet%20Structure%20&%20Timing%20Definition.pdf (see the page "Data Block Structure in Dual Return Mode")

https://velodynelidar.com/docs/manuals/63-HDL64ES3%20REV%20J%20MANUAL,USERS%20AND%20PROGRAM%20GUIDE,HDL-64E%20S3.pdf (see Dual Returns on page 15)

https://velodynelidar.com/docs/manuals/63-9243%20REV%20D%20MANUAL,USERS,VLP-16.pdf (see page 57)

I hope this helps. Please let me know if you have further questions.

Note: I just realized that the packet_rate value for the HDL 64E S3 is incorrect in the driver. It's currently configured for the dual-return mode value. It should default to the single-return-mode value.

@andre-nguyen
Copy link

@JWhitleyAStuff Excellent pointers, I can definitely look into the VLP16 part as that's what I have on hand, we'll see later for the others.

@andre-nguyen
Copy link

Questions:

  1. Right now we have a single /points topic and you would like to split it into the /strongest and /latest topics. Should we check the factory bytes and publish to one of the other topic or should we base ourselves on the ros param? I'm thinking ideally, we should use the factory bytes as it will end up being more user friendly.
  2. The manual mentions "If only one return was detected, the data will be identical in the even|odd block pairs (0|1, 2|3, 4|5, 6|7, 8|9, 10|11)" Should we check for this to not double publish points?

@JWhitleyWork
Copy link
Contributor Author

  1. The downside to this method is that you won't know until you receive the first couple of blocks which means the topics won't be available until after that. You could do this and publish all three with /points containing all of them and the other two just containing those types. Doesn't matter much to me. Either way is fine.
  2. I would publish the double points on both topics because, if someone is only using one of the topics as their points source, they will be missing those returns.

@ros-drivers ros-drivers deleted a comment from kelvin820 Jan 28, 2019
@w4rlock999
Copy link

w4rlock999 commented Jun 30, 2020

Is this resolved ? I just realized there is no option for dual-return in the parameter of the driver, OR will it be resolved if I just change the packet to the correct number if using dual return ?

sorry to bump an old thread

@JWhitleyWork
Copy link
Contributor Author

@w4rlock999 Unfortunately, no. There was a start on it but the developer was waiting on me to provide PCAP files from several sensors and I ended up leaving the job where I had access to them in order to test it. Would you be interested in working on the feature?

@FSund
Copy link

FSund commented Oct 4, 2022

Are the changes in #208 still relevant for supporting dual return, or has master changed too much?

I have access to a VLP-16 at work, and we are thinking about experimenting with dual return.

@andre-nguyen
Copy link

I'm going to take a guess that you might be able to reuse the stuff in rawdata.cc but everything else would have to be rewritten.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants