ROS机器人底盘(15)-move_base(3)-costmap

继续前文ROS机器人底盘(14)-move_base(2)配置了一个无需地图的move_base应用,本文将介绍下costmap

概述

costmap

move_base构造函数中会构造local_cost_mapglobal_costmap两个对象,同时构造他们时会根据参数添加相应的层
addPlugin

这些参数分别在

costmap_common_params_apollo.yaml
local_costmap_params_withoutmap.yaml
global_costmap_params_withoutmap.yaml

显然第一个为共用的

common

robot_radius 圆形底盘即为半径
footprint 非圆形,以旋转中心为原点,各个顶点按顺序(逆时针/顺时针都可以)的坐标

优先会查找footprint

makeFootprintFromParams

global_costmap

global_costmap:
   global_frame: /odom
   robot_base_frame: /base_link
   update_frequency: 1.0
   publish_frequency: 0.5
   static_map: false
   rolling_window: true
   width: 12
   height: 12
   resolution: 0.05
   transform_tolerance: 0.5
   plugins:
     - {name: obstacle_layer,          type: "costmap_2d::VoxelLayer"}
     - {name: inflation_layer,         type: "costmap_2d::InflationLayer"}
  • global_frame 全局坐标系, 现在我们使用没有图的,这里使用/odom
  • robot_base_frame 机器人坐标系
  • update_frequency map更新的频率(说好的没有图的呢, 之前无图是没有传递加载实际的地图,还是要到心中有图的,这里指的costmap)
  • publish_frequency map发布的频率
  • static_map 该参数一般总是与下一个相反的, 标识使用静态地图,我们没有使用,这里当然是false
  • rolling_window true 标识地图跟随便机器人
  • width height resolution 地图信息
  • transform_tolerance tf的超时时间
  • plugins 图层

local_costmap

local_costmap:
   global_frame: /odom
   robot_base_frame: /base_link
   update_frequency: 1.0
   publish_frequency: 2.0
   static_map: false
   rolling_window: true
   width: 4
   height: 4
   resolution: 0.05
   transform_tolerance: 0.5
   plugins:
    - {name: obstacle_layer,      type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}

global_costmap基本一致

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容