ros-perception / laser_filters

Assorted filters designed to operate on 2D planar laser scanners, which use the sensor_msgs/LaserScan type.
BSD 3-Clause "New" or "Revised" License
173 stars 204 forks source link

Add LaserScanMaskFilter. #52

Closed at-wat closed 7 years ago

at-wat commented 7 years ago

This commit adds LaserScanMaskFilter that removes points on directions defined in a mask, defined as a parameter, from a laser scan. It can be used to remove unreliable points caused by hardware related problems for example scratches on an optical window of the sensor.

jonbinney commented 7 years ago

Great PR! And you even included tests!

jonbinney commented 7 years ago

I just tried compiling this on kinetic/16.04 and got a linker error:

[ 76%] Building CXX object laser_filters/CMakeFiles/test_scan_filter_chain.dir/test/test_scan_filter_chain.cpp.o
[ 82%] Linking CXX executable /home/jbinney/ws/laser_filters/devel/lib/laser_filters/test_scan_filter_chain
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
laser_filters/CMakeFiles/test_scan_filter_chain.dir/build.make:161: recipe for target '/home/jbinney/ws/laser_filters/devel/lib/laser_filters/test_scan_filter_chain' failed
make[2]: *** [/home/jbinney/ws/laser_filters/devel/lib/laser_filters/test_scan_filter_chain] Error 1
CMakeFiles/Makefile2:791: recipe for target 'laser_filters/CMakeFiles/test_scan_filter_chain.dir/all' failed
make[1]: *** [laser_filters/CMakeFiles/test_scan_filter_chain.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 88%] Linking CXX executable /home/jbinney/ws/laser_filters/devel/lib/laser_filters/generic_laser_filter_node
[ 94%] Linking CXX executable /home/jbinney/ws/laser_filters/devel/lib/laser_filters/scan_to_scan_filter_chain
[ 94%] Built target generic_laser_filter_node
[ 94%] Built target scan_to_scan_filter_chain
[100%] Linking CXX executable /home/jbinney/ws/laser_filters/devel/lib/laser_filters/scan_to_cloud_filter_chain
[100%] Built target scan_to_cloud_filter_chain
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
at-wat commented 7 years ago

Thank you for your response.

I couldn't reproduce the build error on my kinetic/16.04 environment. (I tried combinations of gcc/clang and gtest of apt/latest-source versions.) Could you post full catkin_make --force-cmake result?

jonbinney commented 7 years ago

I think I must have had something odd in my catkin workspace. I tried just now with a new clean workspace, and the PR compiles fine and all tests pass. Sorry about the delay! Merging :-)

at-wat commented 7 years ago

Thank you!