Laser_filters包的主要内容是一些用于处理sensor_msgs/LaserScan消息的通用过滤器。这些过滤器作为插件导出,旨在与过滤器包一起使用。目前,所有这些过滤器都直接在sensor_msgs/LaserScan上运行,但将来可能会添加过滤器来处理sensor_msgs/PointCloud。请查看过滤器文档,了解过滤器和过滤器链如何工作的概述。
该包提供了两个可以在内部运行多个过滤器的节点。使用这些节点来运行过滤器被认为是最佳实践,因为它允许多个节点使用输出,同时仅执行一次过滤计算。这些节点是给定类型的过滤器链的最小包装器。scan_to_scan_filter_chain将一系列过滤器应用于sensor_msgs/LaserScan。scan_to_cloud_filter_chain首先将一系列过滤器应用于sensor_msgs/LaserScan,将其转换为sensor_msgs/PointCloud ,然后将一系列过滤器应用于sensor_msgs/PointCloud。
实验结果
yaml文件
使用LaserScanIntensityFilter和LaserScanSpeckleFilter滤波器
scan_filter_chain:
- name: intensity
type: laser_filters/LaserScanIntensityFilter
params:
lower_threshold: 2000
upper_threshold: inf
disp_histogram: 0
- name: speckle_filter
type: laser_filters/LaserScanSpeckleFilter
params:
filter_type: 0
max_range: 10.0
max_range_difference: 0.05
filter_window: 4
过滤前
过滤后
参考资料: