ROS机器人底盘(34)-laser_filters的使用(2)
2019-04-29 本文已影响3人
PIBOT导航机器人
前面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_filtered的topic
2.2测试添加效果
- 重新启动
pibot_gmapping
如果提示下图错误需要安装
laser_filters包, 使用pibot_install_ros.sh或者sudo apt-get install ros-kinetic-laser-filters
![]()
- 重新打开
pibot_view,如果不出意外应该跟上面一样,原因这里我们修改添加laser_filters发出来的topic还未使用,修改rviz中scantopic
修改后可以看到车体再无干扰点出现
2.3修改订阅参数
刚才修改的只是Rviz的订阅参数,真正导航和建图还是用的之前就的scan
可以通过
rosnode info xxx查看订阅node订阅topic情况,如rosnode info xxx
- 查看下
scant topic的信息
rostopic info /scan
可以看到除了被
rviz订阅外还被laser_filter,move_base和slam_gmapping订阅,我们只需要把move_base和slam_gmapping中订阅scan的topic改为laser_filter发出的topic
- 替换
scan为scan_filtered
具体都是配置不知道我们可以查找下
roscd pibot_navigation
grep -rn scan
修改相应文件并重启pibot_gmapping即可