navigation 的代价地图


一、地图层次

Note: In the picture above, the red cells represent obstacles in the costmap, the blue cells represent obstacles inflated by the inscribed radius of the robot, and the red polygon represents the footprint of the robot. For the robot to avoid collision, the footprint of the robot should never intersect a red cell and the center point of the robot should never cross a blue cell.
注:在上图中,红色部分代表代价地图中的障碍物,蓝色部分代表机器人内切半径膨胀的障碍物,红色的多边形代表机器人的边界(footprint)。为使机器人避免碰撞,机器人的红色边界不能相交于红色部分,机器人的中心点不能相交于蓝色部分。

地图层次
1.Static Map Layer 静态地图层
2.Obstacle Map Layer 障碍物地图层
3.Inflation Layer 膨胀层
4.Other Layers 其它层

论文:基于ROS的室内全向自主导航机器人研究, 2020
在这里插入图片描述

二、地图信息配置

(local_costmap) 和 (global_costmap)都需要遵循的配置
costmap_common_params.yaml

inflation_radius: 0.55
此参数将为costmap设置膨胀半径。膨胀半径应该设置为与障碍物之间的最大距离,在这个距离上需要付出代价。例如,将膨胀半径设为0.55米意味着机器人将把所有距离障碍物0.55米及以上的路径视为具有相同的障碍物成本。

observation_sources: laser_scan_sensor point_cloud_sensor
此参数定义了一个传感器列表,这些传感器用空格分隔,这些传感器向costmap传递信息。传感器在下一行中定义。
laser_scan_sensor: {sensor_frame: frame_name, data_type: LaserScan, topic: topic_name, marking: true, clearing: true}
这一行设置了observation_sources中提到的传感器上的参数,本例定义了laser_scan_sensor作为示例。“frame_name”参数应设置为传感器坐标系的名称,“data_type”参数应设置为LaserScan 或PointCloud 这取决于消息主题使用,和“topic_name”应该设置为主题的名称,传感器数据的发布。“marking”和“clearing”参数决定传感器是将障碍物信息添加到costmap中,清除costmap中的障碍物信息,还是或者两者都做。

global_costmap需要遵循的配置
global_costmap_params.yaml

global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
static_map: true

local_costmap需要遵循的配置
local_costmap_params.yaml

local_costmap:
global_frame: odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 6.0
height: 6.0
resolution: 0.05


注:
1.未经许可请勿转载
2.参考 link1 link2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值