-
Notifications
You must be signed in to change notification settings - Fork 645
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
added organize_cloud support #65
Conversation
I like the fact that you added a new option controlling this feature. Not all devices can support it. It's hard to tell exactly what changed from the diff's because big blocks of code were re-indented. Is that necessary? What device models have you tested it with? |
Hi, I tested it with a HDL 32E and also with recored data and it works fine. First of all I extricate the if-statement out off the loop, because it does not depend on the loop variable j and filter the full number of 2D scan lines in one shot of the lasers. Therefore this filtered data does not have to be part of the scan, even if it should be organized. The extrication of the if-statement changes the indentation of the big code-block, but make the code more logical and readable, but does not change the effect. |
This is certainly a desirable feature for devices that can support it, which are probably most of the current models. I would be very reluctant to introduce such a large change for Indigo, which has been released and stable for over a year. We can consider releasing it to Jade, which still has no release of this driver. For that, it would need exhaustive testing on nearly all the device models, which will require a lot of effort. I have the ability to test it on a VLP-16 and on the original HDL-64E (which probably cannot support it, but still needs to do something sensible). Someone needs to test with HDL-64E S1 and S2, also probably the new S3. I am not happy with the re-indentation, which makes it quite difficult to review the changes. We may want to separate the substantive changes into a separate commit, then re-indent if necessary once that is approved. |
Hi @jack-oquin |
I'll resolve the conflicts here today. |
0ba83bf
to
882fcaa
Compare
I'll resolved the conflicts and made a clean commit. I suggest to do some testing first. |
We will. It may take a few days but we will test on VLP-16, HDL-32E, VLP-32C, and HDL-64E2.1. Thanks! |
882fcaa
to
5fd5273
Compare
I have tested it with a VLP-16, and it works great. Thanks a lot @spuetz for the efforts. After using pc.read_points I get 30336 set of points (skip_NAN=False) height 1896 Let me know if you want me to post any specific results here, happy to help! |
shouldn't is_dense be false in this way? |
Hi @spuetz Thanks for taking the effort to introduce this feature. I am trying to use the organized_point_cloud_feature PR with a Velodyne VLP16 and get the following error whenever I try to subscribe to any topic from the nodes when organize_cloud = true:
There is no such error when organize_cloud = false. Any insights? |
Hey guys I'll test the driver again, in the next week, hopefully. @aabyshk Which distro are you using? And @willdzeng you are right: |
Thanks for looking into it @spuetz. I am using ROS Kinetic on an Ubuntu 16.04 laptop. |
Japp, I will. Good to reminde me about this. I put it ot the list for next week. |
There are two possibilities doing it:
I prefer 1.) But let me know what you prefer guys @JWhitleyAStuff. Also I would like to clean up the rawdata.cc in a second PR, there are some useless checks. |
@spuetz - I agree with you. Container-based solution is more readable, C++-friendly, and will translate more easily to ROS2. The compiler will optimize most of it down and the container-based solution will likely end up even more efficient. Let me know if you need any help. |
Hi @JWhitleyAStuff I build such a container-based version for organized clouds: master...spuetz:feature/organized_pc |
Btw. we also could remove PCL as dependency, since I use the the sensor_msgs/PointCloud2Iterator. This also saves memory and time, since I directly transform every point when it is read from the network packets, without copping / transforming it to a PCL PointCloud. |
@spuetz - I'm going to close this PR. Would you mind creating a new one with that branch so I can get an easy diff? I'll reference this one from that one for tracking. |
added organize_cloud support. The published clouds are organized when the organize_cloud option is enabled. This helps for really fast estimation of point normals or really fast triangulation to a mesh.