Extract rings/layers from a 3D Lidar pointcloud (Velodyne / Ouster)
I'm looking for a way to extract the rings or layers of a point cloud generated by a 3D LiDAR such as a Velodyne VPL-16 or an Ouster OS1 sensor. In my case, I need to extract this information from a point cloud since the data I'm using does not have the ring attribute from the Velodyne sensor as shown in these previous answers. I'm using other sensors different from the Velodyne VPL-16 such as the OS1, and also the simulated sensor in CoppeliaSIM does not have the ring data.
https://answers.ros.org/question/5974...
https://answers.ros.org/question/3092...
https://answers.ros.org/question/1328...
A picture of what I want is as follows: I want to match each point to a "horizontal ring" and color them separatelly. In my case a simple Z height filter will not be enough since the environment is rugged and the LiDAR reflections of the different rings are not always be laying in the same Z height. As shown in the second point cloud, the obstacles makes different patterns in the data.
Is there a recommended way of doing this? I know the sensor position in this cloud.
Thanks!
The link you provided is truncated. It's not clear what you are trying to do. Are you trying to define a volume and identify which points from the pointcloud are inside that volume? If so, there's no standard ros thing that does that - you will need to write custom code.
Hi Mike, thanks for the comment. I have updated the question with more information and clarification. I'm asking if there is a clear way to map a point to a ring of the LiDAR sensor after the point cloud has been generated. Maybe it is better to question this on a Computer Vision forum, but since this is useful for many robotics applications there is already an answer here. As far as I know, some obstacle detection algorithms (old autoware ring_filter for example) use this ring information, but they don't compute the rings it as it comes with the Velodyne sensor data.
I'm curious why you want to recover the original ring values. What can you use this information for?