二维代价地图
Costmap 2D 包实现了基于二维网格的环境表示的代价地图和一些传感器处理插件。它在规划器和控制器服务器中用于创建用于检测碰撞或更高代价区域的空间以进行协商。
二维代价地图 ROS 参数
- always_send_full_costmap
类型
默认
布尔值
False
- 描述
是否在每次更新时发送完整的代价地图,而不是增量更新。
- footprint_padding
类型
默认
双精度
0.01
- 描述
需要填充的占位符大小(以米为单位)。
- 轮廓
类型
默认
vector<double>
"[]"
- 描述
按照字符串传递的轮廓点的有序集合,必须是闭合集合。例如,以下定义了一个边长为0.2米的正方形底座 footprint: "[ [0.1, 0.1], [0.1, -0.1], [-0.1, -0.1], [-0.1, 0.1] ]"。
- global_frame
类型
默认
string
"地图"
- 描述
参考坐标系。
- 高度
类型
默认
int
5
- 描述
代价地图的高度(以米为单位)。
- 宽度
类型
默认
int
5
- 描述
代价地图的宽度(以米为单位)。
- 致命成本阈值
类型
默认
int
100
- 描述
被视为致命障碍物的占位栅格地图的最小代价。
- map_topic
类型
默认
string
"地图"
- 描述
地图主题,来自地图服务器或SLAM。
- 观测源
类型
默认
string
""
- 描述
传感器源的字符串列表,如果在插件特定配置中没有指定,则使用此列表。例如:"static_layer stvl_layer"
- 原点x坐标
类型
默认
双精度
0.0
- 描述
与宽度(米)相关的代价地图的X原点。
- 原点y坐标
类型
默认
双精度
0.0
- 描述
与高度(米)相关的代价地图的Y原点。
- 发布频率
类型
默认
双精度
1.0
- 描述
发布代价地图到话题的频率。
- 分辨率
类型
默认
双精度
0.1
- 描述
代价地图的每个像素的分辨率,以米为单位。
- 机器人基准坐标系
类型
默认
string
"base_link"
- 描述
机器人基准坐标系。
- 机器人半径
类型
默认
双精度
0.1
- 描述
如果未提供足迹坐标,则使用的机器人半径。
- 滚动窗口
类型
默认
布尔值
False
- 描述
代价地图是否应与机器人基座标框一起滚动。
- 跟踪未知空间
类型
默认
布尔值
False
- 描述
如果为false,则将未知空间视为自由空间,否则视为未知空间。
- transform_tolerance
类型
默认
双精度
0.3
- 描述
TF变换容差。
- 三值代价地图
类型
默认
布尔值
True
- 描述
如果占用栅格地图只应解释为三个值(自由、占用、未知),或者与其存储的值一起。
- 未知代价值
类型
默认
int
255
- 描述
如果跟踪未知空间,则未知空间的代价。
- update_frequency
类型
默认
双精度
5.0
- 描述
代价地图更新频率。
- use_maximum
类型
默认
布尔值
False
- 描述
在合并代价地图时是否使用最大代价或覆盖。
- plugins
类型
默认
字符串向量
{"静态层", "障碍层", "膨胀层"}
- 描述
参数命名空间和名称的映射插件名称列表。
- 注意
此列表中定义的每个插件命名空间都需要有一个:code:`plugin`参数,用于定义要加载到该命名空间中的插件类型。
示例:
local_costmap: ros__parameters: plugins: ["obstacle_layer", "voxel_layer", "inflation_layer"] obstacle_layer: plugin: "nav2_costmap_2d::ObstacleLayer" voxel_layer: plugin: "nav2_costmap_2d::VoxelLayer" inflation_layer: plugin: "nav2_costmap_2d::InflationLayer"
- 过滤器
类型
默认
字符串向量
{}
- 描述
映射的成本地图过滤器名称列表,用于参数命名空间和名称。
- 注意
成本地图过滤器也可以作为普通成本地图图层一样作为可加载的插件。这种分离是为了避免插件和过滤器的干扰,并将这些过滤器放置在组合分层成本地图的顶部。与插件一样,此列表中定义的每个成本地图过滤器命名空间都需要有一个
plugin
参数来定义要在命名空间中加载的过滤器插件的类型。示例:
local_costmap: ros__parameters: filters: ["keepout_filter", "speed_filter"] keepout_filter: plugin: "nav2_costmap_2d::KeepoutFilter" speed_filter: plugin: "nav2_costmap_2d::SpeedFilter"
默认插件
当未覆盖 plugins
参数时,将加载以下默认插件:
命名空间
插件
"static_layer"
"nav2_costmap_2d::StaticLayer"
"obstacle_layer"
"nav2_costmap_2d::ObstacleLayer"
"通胀层"
"nav2_costmap_2d::InflationLayer"
示例
global_costmap:
global_costmap:
ros__parameters:
footprint_padding: 0.03
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
use_sim_time: True
robot_radius: 0.22 # radius set and used, so no footprint points
resolution: 0.05
plugins: ["static_layer", "obstacle_layer", "voxel_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
footprint_clearing_enabled: true
max_obstacle_height: 2.0
combination_method: 1
scan:
topic: /scan
obstacle_max_range: 2.5
obstacle_min_range: 0.0
raytrace_max_range: 3.0
raytrace_min_range: 0.0
max_obstacle_height: 2.0
min_obstacle_height: 0.0
clearing: True
marking: True
data_type: "LaserScan"
inf_is_valid: false
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
footprint_clearing_enabled: true
max_obstacle_height: 2.0
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
unknown_threshold: 15
mark_threshold: 0
observation_sources: pointcloud
combination_method: 1
pointcloud: # no frame set, uses frame from message
topic: /intel_realsense_r200_depth/points
max_obstacle_height: 2.0
min_obstacle_height: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
raytrace_max_range: 3.0
raytrace_min_range: 0.0
clearing: True
marking: True
data_type: "PointCloud2"
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
enabled: true
subscribe_to_updates: true
transform_tolerance: 0.1
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
enabled: true
inflation_radius: 0.55
cost_scaling_factor: 1.0
inflate_unknown: false
inflate_around_unknown: true
always_send_full_costmap: True
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 3
height: 3
resolution: 0.05