-
Notifications
You must be signed in to change notification settings - Fork 640
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
Container cleanup and organized pointclouds #214
Conversation
@spuetz - It looks like a few of the tests are failing. Would you mind running Also, FYI - I merged changes that were made to master and added a missing dependency. |
There are some points we need to discuss:
|
|
@spuetz - Ping |
@spuetz - Would you mind merging master back into your branch? I've changed CI vendors and applied |
Sure, I'll try to find some time for that next week. |
@JWhitleyAStuff I merged the master. All tests succeed.
Regarding the merging of the transform and the convert node: Since the transformation is done while inserting each point into the final buffer, there is no real loss of performance, except the read of one bool variable which indicates to transform the point or not. Furthermore, since we do the transformation here directly with eigen, not using pcl, the transformation node should be much fast and also should save memory, since we directly transform and insert each point to the final PointCloud2 buffer. Now the transformation code is in the
Yes, sure, that makes sense, will do that.
I think the easiest is to let the user choose the container, to derive the container by the attributes is a bit overhead and does not give real benefits. Since the container names clearly specify what attributes are processed. Also, in my opinion, when developing new containers, choosing just the container by name will be less work and is much more intuitive. I think we should get the code to the master quickly. Later I can go on with enhancing and cleaning up the rest of the code, since there are still a lot of issues which I discovered while developing (e.g., the config structs are not necessary) . |
@spuetz - Thank you for all of your work on this! Would you mind adding a description for the parameter to http://wiki.ros.org/velodyne_pointcloud ? I'll go ahead and release a new version of the driver for Melodic once you verify that this version has been tested and on what hardware. |
@spuetz this is a great contribution, thank you! Regarding the implementation, I noticed that you organize the point cloud in a way in which the actual rows and cols of the LiDAR 'image' (e.g. beams = rows, packets = cols) are inverted. Thus, the point clouds are stored in column-major order. Why was this done in this way? Is it because you assume that in the Velodyne LiDARs the 'rolling shutter' effect happens across the columns, not within rows? |
As discussed in PR #65 I cleaned up a lot and integrated the organized feature using the containers. Features:
Still some things to do, but the code now is much nicer and faster. Let me know what I need to fix and adapt. Cheers.