前面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中scan
topic
修改后可以看到车体再无干扰点出现
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
即可
网友评论