在机器人建图之后,希望确定一块禁区不让机器人在此运动,可通过如下步骤实现:

1、用专用的工具修改.pgm文件

机器人建图完成后,会生成.pgm的地图文件,采用专门的软件工具可以对其修改。
推荐软件ROS Map Editor,是Python包,运行文件即可。
在地图上禁止机器人运动的区域绘制障碍物,就会在地图的静态层中加入物体。

2、配置参数

在局部规划用的local_costmap在考虑规划时,考虑三个层。

local_costmap:
   plugins:
    - {name: static_layer,            type: "costmap_2d::StaticLayer"}
    - {name: obstacle_layer,      type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}

3、加载使用

按以上操作,机器人在全局路径规划和局部路径规划时,都将考虑静态层上的障碍物,可达到电子围栏的期望效果。

4、特别说明

  • 此方法的缺点
    当机器人定位存在一定偏差后,静态障碍物和动态障碍物不重叠,障碍物在地图中的占比会较大,机器人的可行区域会变小。所以定位不准的走廊空间中,机器人行走流畅度降低。
  • 不影响定位精度
    原因是本方案采用cartographer模块定位,不适用修改后的pgm地图,定位与地图相对独立。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐