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

how to eliminate robot's parts from lidar data?

asked 2019-11-05 06:30:31 -0600

june2473 gravatar image

updated 2019-11-05 22:20:05 -0600

I have turtlebot3 waffle model and lidar in the center.

And I have four vertical rods around lidar

And I have laser data about them.

you see, there is 4 points that indicates these 4 rods.

image description

So, how can I filter this data in laserscan?

edit retag flag offensive close merge delete


The simplest way I see would be to just filter scans with ranges below the size of the robot

LeoE gravatar image LeoE  ( 2019-11-05 07:05:25 -0600 )edit

you mean writing a script?

june2473 gravatar image june2473  ( 2019-11-05 07:11:24 -0600 )edit

No need to write script:

billy gravatar image billy  ( 2019-11-05 10:17:47 -0600 )edit

ok, I found that hector (slam method) have parameter laser_min_distance. So, I think, it helps to not take into account this points while building map.

but what about gmapping and rtabmap?

june2473 gravatar image june2473  ( 2019-11-06 02:25:25 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-11-06 08:04:03 -0600

The comment about the laser filters is right if you want something fast.

A common thing many robotics companies do is create robot self filters. This looks at the relative positions of the mesh, or a simplified version of the mesh, and removed laser readings that are internal to it. This is really useful if you don't want to remove things close to the robot but not in the robot.

If you're not too concerned about removing some laser readings just outside the robot but close by, making a simple box or angle filter in the laser filters package is a totally reasonable way to go.

edit flag offensive delete link more

Question Tools



Asked: 2019-11-05 06:30:31 -0600

Seen: 842 times

Last updated: Nov 06 '19