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

What's the rational behind laser_filters/ScanShadowsFilter?

asked 2016-07-13 12:51:00 -0600

jorge gravatar image

Hi, looking for a filter to remove spurious points in out Sick laser, I gave a try to ScanShadowsFilter. It remove most of the noisy beams, but also some valid data. Moreover, I don't fully understand what the filter really does and how this relates to the physics of laser scanners. Can anyone extend the wiki explanation, so I can better decide which parameters to use?

Thank you a lot

Unfiltered:

image description

Filtered:

image description

edit retag flag offensive close merge delete

Comments

2

What are the settings you were using for the ScanShadowsFilter? Here are mine: https://github.com/uos/calvin_robot/b...

Martin Günther gravatar image Martin Günther  ( 2018-07-24 15:00:16 -0600 )edit

3 Answers

Sort by » oldest newest most voted
2

answered 2016-08-01 03:17:07 -0600

pitpet gravatar image

Maybe you want to use LaserScanAngularBoundsFilter instead of ScanShadowFilter. ScanShadowFilter removes laser data points which satisfies the following conditions : for all p1, if exists point p2 in (p1 -window, p1 + window), so that (∠O P1 P2) < minAngular, or (∠O P1 P2) > maxAngular, then, all datapoint in (p1 - neigbor, p1 + neigbor) will be removed. Where O means the origin of the laser.

edit flag offensive delete link more
0

answered 2019-04-29 04:33:21 -0600

Getchbold NT gravatar image

updated 2019-04-29 04:33:55 -0600

Hi bros,

I am facing with 'ghost obstacles' that similar to above problem, however, I could not solve the problem even I used ScanShadowsFilter, can you please give me some advices, thanks in advances, this is my params:

scan_filter_chain:

name: box_filter type: laser_filters/LaserScanBoxFilter

params:

box_frame: R_007/base_link

max_x: 0.438

max_y: 0.332

max_z: 0.231

min_x: -0.438

min_y: -0.332

min_z: -0.01

name: shadows

type: ScanShadowsFilter

params:

min_angle: 5

max_angle: 175

neighbors: 5

window: 1

type: LaserArrayFilter

name: laser_median_filter

params:

range_filter_chain:

name: median_3

type: filters/MultiChannelMedianFilterFloat

params:

number_of_observations: 3

unused: 6

intensity_filter_chain:

name: median_3

type: filters/MultiChannelMedianFilterFloat

params:

number_of_observations: 3

unused: 6

Besides, I also used LaserScanIntensityFilter:

scan_filter_chain:

name: intensity

type: LaserScanIntensityFilter

params:

lower_threshold: 34000

upper_threshold: 37000

disp_histogram: 0

edit flag offensive delete link more

Comments

3

Please don't answer a question with another question. You can open a new one describing your issue, you'll have more chance of getting a response since this question is 3 years old.

Delb gravatar image Delb  ( 2019-04-29 04:59:54 -0600 )edit

Yes, so sorry for that.

Getchbold NT gravatar image Getchbold NT  ( 2019-04-29 05:08:12 -0600 )edit
0

answered 2018-07-24 08:18:05 -0600

xperroni gravatar image

As pitpet noticed, ScanShadowsFilter works by computing the angle differences between successive readings and discarding those that don't fit within a user-specified range. I suspect the incorrectly erased readings fell below the minimum angle difference min_angle – you can try reducing it to 0 and checking what happens.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2016-07-13 12:51:00 -0600

Seen: 1,785 times

Last updated: Apr 29 '19