movebase导航和地图数据的使用 - 7 global costmap和local costmap的区别和用途

两份costmap如下:

planner_costmap_ros_ = newcostmap_2d::Costmap2DROS("global_costmap", tf_);

controller_costmap_ros_ = newcostmap_2d::Costmap2DROS("local_costmap", tf_);

看看区别:

他们的参数分别如下;

local_costmap_params.yaml:

local_costmap:

global_frame: odom

robot_base_frame: /base_footprint

update_frequency: 5.0

publish_frequency: 2.0

//注意,其实ros里提供了一种cfg机制,可以建立dynamic_reconfigure::Server并设置callback,当配置变化时,会调用callback。那么那些config会被通知到?需要定义一些cfg文件,config文件制定了关心的config参数。在make时,python处理这些cfg文件生成一些cpp的类,这些类就是具体的config类,他们会从rosparam server获取和设置参数,而rosparam中的参数的源头其实都是这里的yaml文件中的参数。所以我们看到的cfg文件中的和这里同名的参数,那只是说明那些自动生成的类会用到我们在yaml中设置的参数。并且设置了默认,最小,最大值等等。这样以来,我们可以有两条获取config的方法,一是直接访问paramserver,一是访问config。数据源头其实都是yaml文件。

//update frequency控制voidCostmap2DROS::mapUpdateLoop(doublefrequency)这个函数循环执行的频率。每次循环都会调用layeredCostmapupdateMap,将各个layer的数据合并算出结果。publishfrequency用来控制向外publishcostmap的频率。所以增大update_frequency频率会加快内部的地图合成速度。增大publish_frequency会加快发送给rviz的速度。

static_map: false //这个参数貌似是老板本的代码遗留物,目前有了plugins项目后,就不再使用这个了

rolling_window: true //这个costmap是否随着robotroll.默认是false.这里因为是local costmap要随着机器人滚动。而globalcostmap就不需要。当滚动时,layeredcostmaporigin要在每次updatemap时都被更新。

width: 4.0

height: 4.0

resolution: 0.05 //

transform_tolerance: 0.5//这个是Costmap2DROS::getRobotPose函数获取基于globalframerobotpose所耗时间的一个阈值,超过这个阈值就会有warning.

plugins:

- {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}

- {name: inflation_layer, type: "costmap_2d::InflationLayer"}







global_costmap_params.yaml:

global_costmap:

global_frame: /map

robot_base_frame: /base_footprint

update_frequency: 1.0

publish_frequency: 0.5

static_map: true

transform_tolerance: 0.5

plugins:

- {name: static_layer, type:"costmap_2d::StaticLayer"}

- {name: obstacle_layer, type:"costmap_2d::VoxelLayer"}

- {name: inflation_layer, type:"costmap_2d::InflationLayer"}





看看缺别,看看如何使用这些参数的。

先来看看<

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值