系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、costmap_2d是什么?
- 二、使用步骤
- 1.下载源代码
- 2.安装插件
- 3.在costmap_2d中插入障碍物
- 4.修改launch文件
- 5.设置障碍物坐标参数
- 6.主要事项
- 总结
前言
随着SLAM的不断发展,机器人这门行业也越来越重要,很多人都开启了学习机器人,本文就介绍了ROS机器人操作系统的SLAM导航方向的navigation导航包中的costmap_2d。
以下是添加一个自定义的障碍物插件的流程
一、costmap_2d是什么?
costmap_2d是navigation导航包中的一部分,在本文中,着重介绍如何在costmap_2d中添加障碍物,也叫做虚拟墙。
二、使用步骤
1.下载源代码
https://github.com/rst-tu-dortmund/costmap_prohibition_layer
2.安装插件
将代码放置到工作空间的src目录下面,使用catkin_make_isolated编译,catkin_make也可以。
编译后使用下面的命令查看是否安装成功:
rospack plugins --attrib=plugin costmap_2d
如果终端输出下面,则证明插件可使用
costmap_prohibition_layer /home/lyh/catkin_acad/src/costmap_prohibition_layer-repush3/costmap_plugins.xml
costmap_2d /opt/ros/kinetic/share/costmap_2d/costmap_plugins.xml
3.在costmap_2d中插入障碍物
在参数配置文件夹中找到 global_costmap_params.yaml 和 local_costmap_params.yaml,在末尾添加或修改:
plugins:
- {name: static_map, type: "costmap_2d::StaticLayer"}
- {name: obstacles, type: "costmap_2d::VoxelLayer"}
- {name: costmap_prohibition_layer, type: "costmap_prohibition_layer_namespace::CostmapProhibitionLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
4.修改launch文件
修改启动movebase的launch文件,添加以下内容:
<rosparam file="$(find turtlebot3_navigation)/param/prohibition_areas.yaml" command="load" ns="global_costmap/costmap_prohibition_layer" />
<rosparam file="$(find turtlebot3_navigation)/param/prohibition_areas.yaml" command="load" ns="local_costmap/costmap_prohibition_layer" />
5.设置障碍物坐标参数
首先需要在参数配置文件夹(就是和 global_costmap_params.yaml 以及 local_costmap_params.yaml 相同位置的文件夹)中创建新的文档,命名为 "prohibition_areas.yaml".
然后在prohibition_areas.yaml文档中输入:
prohibition_areas:
#定义一个禁止点
- [17.09, -6.388]
# 定义一个禁止通行的线
- [[8.33, 2.11],
[8.26, 5.11]]
# 定义一个禁止通行的区域
- [[-11.15, -15.614],
[-12.35, -13.89],
[-10.05, -12.218]]
6.主要事项
注意事项:
1 一定要严格按照上述格式来设置坐标,我之前遇到的格式错误导致不能识别禁止区域坐标情形有
(1):坐标前的短横线没对齐
(2):定义禁止区域或者禁止线,两坐标之间缺少了逗号
2 你可以同时定义多个禁止点/多个禁止线/多个禁止区域,或者混合定义多个点/线/区域.
总结
以上就是今天要讲的内容,本文仅仅简单介绍了障碍物插件的使用,而costmap_2d提供了大量能使我们快速便捷地添加我们想要添加的功能,障碍物插件只是其中的一部分。
下图是我所实现的障碍物插件:
https://blog.csdn.net/qq_41995710/article/details/88750354
https://blog.csdn.net/Neo11111/article/details/104852657/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)