costmap配置教程和详细理解

本文深入探讨了成本图在机器人路径规划中的应用,详细介绍了成本图如何接收传感器数据,构建2D或3D占用网格,并基于用户指定的膨胀半径在2D成本图中膨胀成本。文章还讨论了成本图的初始化方法、传感器主题的订阅和配置,以及成本图的更新机制。

此软件包提供2D成本图的实现,该实现从世界各地接收传感器数据,构建数据的2D或3D占用网格(取决于是否使用基于体素的实现),并基于占用网格和用户指定的膨胀半径在2D成本图中膨胀成本。 此软件包还支持基于map_server的成本图初始化、基于滚动窗口的成本图以及传感器主题的基于参数的订阅和配置。

在这里插入图片描述

在上图中,红色单元格表示成本图中的障碍物,蓝色单元格表示机器人内切半径膨胀的障碍物,红色多边形表示机器人的足迹。 为了使机器人避免碰撞,机器人的足迹不能与红细胞相交,机器人的中心点不能越过蓝细胞。

在Hydro版本后,用于将数据写入成本图的基本方法是完全可配置的。Each bit of functionality exists in a layer.例如,静态地图是一层,障碍物是另一层。默认情况下,障碍层在三个维度上维护信息。(voxel_grid提供了高效3D体素网格的实现。 占用网格可以支持三种状态的单元状态:标记,空闲或未知。 由于底层实现依赖于按位和和或整数运算,因此体素网格每个体素列仅支持16个不同级别。 但是,此限制在网格中产生的射线追踪和单元标记性能可与标准2D结构相比,从而使其与大多数3D结构相比非常快。)

成本图使用静态地图中的传感器数据和信息,costmap_2d::Costmap2DROS对象存储和更新有关世界上障碍物的信息。
使用pluginlib在Costmap2DROS中实例化每个图层,并将其添加到LayeredCostmap中。

标记与清除

成本图通过ROS自动订阅传感器主题,并相应地更新自身。 每个传感器用于标记(将障碍信息插入到成本图中)、清除(从成本图中删除障碍信息)或两者兼而有之。 标记操作只是对数组的索引,用于更改单元格的成本。 然而,对于报告的每个观测,清除操作包括从传感器原点向外通过栅格进行光线追踪。 如果使用三维结构来存储障碍物信息,则每列的障碍物信息在被

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值