- 本教程来自:Nav2中文网
- Nav2交流社区:https://fishros.org.cn/forum
- ROS2/Nav2千人交流群:(QQ)139707339
- 更多精彩教程请关注微信公众号:鱼香ROS
- 欢迎添加机器人小伊微信,解锁机器人学习特殊服务
Github 上的源代码 [校准@小鱼]
2D代价地图包为环境表示和许多传感器处理插件实现了基于2D网格的成本图。它被用在planner和控制器服务器中,用于创造检查碰撞的空间或成本更高的区域进行协商。 [待校准@2617]
2D代价地图的ROS参数 [待校准@2618]always_send_full_costmap [待校准@2619]
类型默认值boolFalse描述是否每次更新都发送完整的成本图,而不是更新。 [待校准@2620]
footprint_padding [待校准@2621]
类型默认值double0.01 [待校准@2622]描述填充面积 (米)。 [待校准@2623]
footprint [待校准@2624]
类型默认值向量 [待校准@2625]“[]” [待校准@2626]描述作为string通过的有序足迹点集必须是封闭集。例如,以下定义方形基地边长0.2米 'footprint: “[ [0.1,0.1],[0.1-0.1],[0.1-0.1] [0.1,0.1] ]”。 [待校准@2627]
global_frame [待校准@2321]
类型默认值string“map”描述参考框架。 [待校准@2323]
height [待校准@2628]
类型默认值int5 [待校准@2629]描述成本图高度 (米)。 [待校准@2630]
width [待校准@2631]
类型默认值int5 [待校准@2629]描述成本图宽度 (米)。 [待校准@2632]
lethal_cost_threshold [待校准@2633]
类型默认值int100 [待校准@2634]描述占用网格地图的最低成本被认为是致命的障碍。 [待校准@2635]
map_topic
类型默认值string“map”描述地图主题 _ 服务器或SLAM。 [待校准@2636]
observation_sources [待校准@2637]
类型默认值string“” [待校准@2379]描述作为string的传感器来源列表,如果在插件特定配置中没有指定,将使用。例如 “static_layer stvl_layer” [待校准@2638]
origin_x [待校准@2639]
类型默认值double0.0描述X成本图相对于宽度 (m) 的原点。 [待校准@2640]
origin_y [待校准@2641]
类型默认值double0.0描述相对于高度 (m) 的成本图的Y原点。 [待校准@2642]
publish_frequency [待校准@2643]
类型默认值double1.0描述将costmap发布到主题的频率。 [待校准@2644]
resolution [待校准@2645]
类型默认值double0.1描述成本图1像素的分辨率,以米为单位。 [待校准@2646]
robot_base_frame [待校准@2324]
类型默认值string“base_link”描述机器人基座frame名称。 [校准@小鱼]
robot_radius [待校准@2647]
类型默认值double0.1描述如果未提供足迹坐标,则使用机器人半径。 [待校准@2648]
rolling_window [待校准@2649]
类型默认值boolFalse描述costmap是否应该与机器人底架一起滚动。 [待校准@2650]
track_unknown_space [待校准@2651]
类型默认值boolFalse描述如果为false,则将未知空间视为自由空间,否则将视为未知空间。 [待校准@2652]
transform_tolerance
类型默认值double0.3描述TF transform tolerance.
trinary_costmap [待校准@2653]
类型默认值boolTrue描述如果占用网格映射应仅解释为3个值 (空闲、占用、未知) 或其存储值。 [待校准@2654]
unknown_cost_value [待校准@2655]
类型默认值int255 [待校准@2656]描述如果跟踪它,未知空间的成本。 [待校准@2657]
update_frequency [待校准@2658]
类型默认值double5.0 [待校准@2659]描述代价地图更新频率。 [待校准@2660]
use_maximum [待校准@2661]
类型默认值boolFalse描述在组合costmap以使用最大成本还是覆盖时。 [待校准@2662]
plugins [待校准@2663]
类型默认值vector{ “static_layer” 、 “obstacle_layer” 、 “inflation_layer” } [待校准@2664]描述参数命名空间和名称的映射插件名称列表。 [待校准@2665]
Note [待校准@2581]此列表中定义的每个插件命名空间都需要有一个: 代码: plugin 参数,用于定义要在命名空间中加载的插件的类型。 [待校准@2582]
示例: [待校准@2583]
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"
filters [待校准@2666]
类型默认值vector{} [待校准@2667]描述参数命名空间和名称的映射costmap筛选器名称列表。 [待校准@2668]
Note [待校准@2581]代价地图过滤器也是可加载的插件,就像普通的成本地图层一样。进行这种分离是为了避免插件和过滤器干扰,并将这些过滤器放在组合的分层成本图的顶部。与插件一样,此列表中定义的每个costmap过滤器命名空间都需要有一个: code: plugin 参数,用于定义要在命名空间中加载的过滤器插件的类型。 [待校准@2669]
示例: [待校准@2583]
local_costmap:
ros__parameters:
filters: ["keepout_filter", "speed_filter"]
keepout_filter:
plugin: "nav2_costmap_2d::KeepoutFilter"
speed_filter:
plugin: "nav2_costmap_2d::SpeedFilter"
默认插件 [待校准@2606]
当: code: plugins 参数未重写时,将加载以下默认插件: [待校准@2670]
| Namespace [待校准@2608] | Plugin [待校准@2609] | | - | - | | “static_layer” | “nav2_costmap_2d::StaticLayer” | | “obstacle_layer” | “nav2_costmap_2d::ObstacleLayer” | | “inflation_layer” | “nav2_costmap_2d::InflationLayer” |
插件参数 [待校准@2677]- 静态层参数 [待校准@2984]
- 膨胀层参数 [待校准@2888]
- 障碍层参数 [待校准@2909]
- 体素层参数 [待校准@2995]
- 范围传感器参数 [待校准@2952]
- 保留过滤器参数 [待校准@2901]
- 速度过滤器参数 [待校准@2976]
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
- 本文主要校准贡献:小鱼
- 本文遵循知识共享协议,禁止未授权商用转载