ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Extract rings/layers from a 3D Lidar pointcloud (Velodyne / Ouster)

asked 2022-03-25 17:40:33 -0500

h3ct0r gravatar image

updated 2022-03-27 11:48:01 -0500

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.

C:\fakepath\frogga_lidar.png image description

Is there a recommended way of doing this? I know the sensor position in this cloud.

Thanks!

edit retag flag offensive close merge delete

Comments

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.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2022-03-27 07:57:43 -0500 )edit

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.

h3ct0r gravatar image h3ct0r  ( 2022-03-27 11:51:13 -0500 )edit

I'm curious why you want to recover the original ring values. What can you use this information for?

Mike Scheutzow gravatar image Mike Scheutzow  ( 2022-03-27 15:54:15 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-03-25 19:15:39 -0500

benripka gravatar image

updated 2022-03-25 19:17:17 -0500

You could use the pointcloud_to_laserscan node found here.

It will take in your 3D PointCloud and convert it into a 2D LaserScan message. This will be a horizontal layer orthogonal to the Z-axis of the LiDAR sensor. I am currently using it with my Ouster OS0 and it works great.

When configuring the pointcloud_to_laserscan node you can set the min_height, max_height, and target_frame parameters. The node will function by taking any points in the cloud that are between those two heights (0 height being the target_frame), and projecting any points in that range down onto the target frame plane. If you set the min_height and max_height to be very close you can isolate specific rings of the pointcloud. This is quite powerful for using a 3D sensor with a navigation stack that only expects 2D LaserScans.

You could also write your own pointcloud processing node that just grabs isolated layers according to the pointcloud definition found here.

edit flag offensive delete link more

Comments

Hi, thank you for this answer. However, in my case a simple Z height filter with not be enough (l have updated the question with more images). As the laser reflect on surfaces the Z is different even in the same horizontal ring level.

h3ct0r gravatar image h3ct0r  ( 2022-03-27 11:56:33 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2022-03-25 17:40:33 -0500

Seen: 1,049 times

Last updated: Mar 27 '22