ROS机器人底盘(34)-laser_filters的使用(2)-屏蔽车体干扰

前面ROS机器人底盘(30)-laser_filters的使用(1)讲了如何使用laser_filters,本文在hades上试下如何使用laser_filters屏蔽车身的摄像头支架

1.车体支架干扰

首先启动建图

pibot_gmapping

虚拟机启动RVIZ

pibot_view

可以看到受到摄像头支架干扰,雷达在车体上检测到障碍,这会直接干扰到建图和导航

2.屏蔽支架干扰

2.1添加laser_filters

  • 添加ROS机器人底盘(30)-laser_filters的使用(1)这里的2个文件放置下面目录
pibot_bringup/launch/box_filter_example.launch
pibot_bringup/params/box_filter.yaml

根据车上宽度(200mm)和长度(300mm)分别修改box_filter.yaml中的参数

设置稍微超出一点 x方向我们设置-0.15之0.15,y方向设置-0.2至0.2

scan_filter_chain:
- name: box_filter
  type: laser_filters/LaserScanBoxFilter
  params:
    box_frame: laser_link
    min_x: -0.15
    max_x: 0.15
    min_y: -0.20
    max_y: 0.20
    min_z: -0.1
    max_z: 0.1

这里z值忽略

  • 添加该launch文件到robot.launch

  • 查看laser_filter发出topic
    rosnode info laser_filter可以找到发出的scan_filteredtopic

2.2测试添加效果

  • 重新启动pibot_gmapping

如果提示下图错误需要安装laser_filters包, 使用pibot_install_ros.sh或者sudo apt-get install ros-kinetic-laser-filters

  • 重新打开pibot_view,如果不出意外应该跟上面一样,原因这里我们修改添加laser_filters发出来的topic还未使用,修改rviz中scan topic

修改后可以看到车体再无干扰点出现

2.3修改订阅参数

刚才修改的只是Rviz的订阅参数,真正导航和建图还是用的之前就的scan

可以通过rosnode info xxx查看订阅node订阅topic情况,如rosnode info xxx

  • 查看下scant topic的信息
rostopic info /scan


可以看到除了被rviz订阅外还被laser_filter,move_baseslam_gmapping订阅,我们只需要把move_baseslam_gmapping中订阅scantopic改为laser_filter发出的topic

  • 替换scanscan_filtered
    具体都是配置不知道我们可以查找下
roscd pibot_navigation
grep -rn scan

修改相应文件并重启pibot_gmapping即可

你可能感兴趣的:(ROS机器人底盘(34)-laser_filters的使用(2)-屏蔽车体干扰)