ROS2与传感器教程-利用laser_filters包对激光雷达数据进行过滤
说明
- 介绍如何利用laser_filters包对激光雷达数据进行过滤,实现去掉不必要的障碍物
原理:
- 订阅激光雷达发布的原始数据,经过laser_filters包的过滤插件处理,重新发布过滤后的激光雷达数据
- 比如保留相应角度的激光数据,其他过滤掉
- 比如过滤某个形状的激光数据,其他保留
- 通过插件方式设定不同过滤规则,从而满足不同的过滤需求。
步骤
- 安装laser_filters
- 利用便利工具rcm工具来进行安装
# install rcm
curl -k https://www.ncnynl.com/rcm.sh | bash -
# install laser_filters
rcm ros2_algorithm install_ros2_laser_filters
使用
- 详细说明可以查看laser_filters的wiki
- laser_filters包有很多范例在examples目录下
- 安装后的文件目录是~/ros2_algorithm_ws/src/laser_filters/examples
- 1.过滤一个矩形内的激光数据
ros2 launch laser_filters box_filter_example.launch.py
具体参数文件是同目录下的box_filter_example.yaml
2.过滤测距范围
ros2 launch laser_filters range_filter_example.launch.py
- 具体参数文件是同目录下的range_filter_example.yaml
- 3.多个过滤插件同时使用
ros2 launch laser_filters multiple_filters_example.launch.py
具体参数文件是同目录下的multiple_filters_example.yaml
4.相关过滤插件
LaserScanBoxFilter 滤除一个区块内的数据(常用于过滤机器人本体或支架对激光雷达数据干扰)
ScanShadowsFilter 针对物体边沿的扫描和识别
InterpolationFilter 插值滤波
LaserScanIntensityFilter 设定强度阈值,超出则设置为nan
LaserScanRangeFilter 设定距离阈值,超出则设置为nan
LaserScanAngularBoundsFilter 将设定的角度外的扫描数据删除
LaserScanAngularBoundsFilterInPlace 不会删除目标角度扇区外的数据,但会把对应扫描的距离值设为最大距离阈值+1
LaserArrayFilter 使用中值过滤器等对距离和强度进行过滤
- 5.turtlebot3 follow包的过滤规则
scan_filter_chain:
- name: Remove over 0.35 meters on the right
type: laser_filters/LaserScanBoxFilter
params:
box_frame: base_footprint
min_x: -3.5
max_x: 3.5
min_y: -3.5
max_y: -0.35
min_z: -0.1
max_z: 0.1
- name: Remove over 0.35 meters on the left
type: laser_filters/LaserScanBoxFilter
params:
box_frame: base_footprint
min_x: -3.5
max_x: 3.5
min_y: 0.35
max_y: 3.5
min_z: -0.1
max_z: 0.1
- name: Remove 90 to 270 degree
type: laser_filters/LaserScanAngularBoundsFilterInPlace
params:
lower_angle: 1.57
upper_angle: 4.71
- name: exist range 0.12 to 0.7 meter
type: laser_filters/LaserScanRangeFilter
params:
lower_threshold: 0.12
upper_threshold: 0.7
- name: exist intensity 500 to 4000
type: laser_filters/LaserScanIntensityFilter
params:
lower_threshold: 500
upper_threshold: 4000
disp_histogram: 0
- name: interpolation
type: laser_filters/InterpolationFilter
参考:
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号