• 室内ROS机器人导航调试记录(膨胀半径的选取经验)


    1. 地图图层

    在这里插入图片描述
    注:在上图中,红色部分代表代价地图中的障碍物,蓝色部分代表机器人内切半径膨胀的障碍物,红色的多边形代表机器人的边界(footprint)。为使机器人避免碰撞,机器人的红色边界不能相交于红色部分,机器人的中心点不能相交于蓝色部分。

    假设有一圆形机器人半径为0.5m,那么

    在这里插入图片描述

    膨胀半径,膨胀层会把障碍物代价膨胀直到该半径为止,一般将该值设置为机器人底盘的直径大小。

    问题1:理论上,膨胀半径最小值为机器人的半径,否则容易撞上障碍物?例如半径为0.5m的机器人,全局膨胀半径是不是可以设置比0.5稍微大一点的值,例如0.8m? [待验证]

    2. 常见代价地图图层

    静态地图图层:基本上不变的图层,通常是SLAM建立的静态地图
    障碍地图层:用于动态的记录传感器感知到的障碍物信息
    膨胀层:在静态地图和障碍地图层上进行膨胀(向外扩张),以避免机器人撞上障碍物
    其他图层:通过插件实现的其他地图图层,例如传感器地图层

    3. 膨胀半径测试经验总结

    膨胀半径设置太小,可能会出现贴着障碍物运动。半径为0.25m的机器人,设置为0.6m会存在明显的贴着障碍物运动,设置成0.8m较合适。

    机器人的实际尺寸很重要,要写实际的测量尺寸,不能够将尺寸写大一点。实测发现,机器人实际半径0.254m,写成了0.27m(之前的想法是,半径写大一点,防止撞到障碍物),测试结果发现写成0.27m,全局膨胀半径1.1m,局部膨胀半径0.1m,过80cm的窄道,较困难(设置过度点也不行)。但是改成机器人实际半径尺寸,正常导航也可以通过80cm的窄道。

    测试发现,全局膨胀半径对机器人过窄道的影响不大,过窄道更要注意实际的尺寸和局部膨胀半径参数。

    参考链接:
    costmap_2d-ROS Wiki

  • 相关阅读:
    分割常用损失函数
    浅谈倍增法求解LCA
    K8S:Yaml文件详解
    leetcode 108.将有序数组转换为二叉搜索树
    linux档案系统(filessystem)
    Vue 2.0的源码目录设计
    自定义view实战(9):多点触控扇形图
    oCPC实践录 | oCPC转化的设计、选择、归因与成本设置(3)
    想进入游戏建模行业,这4点必须了解
    基于SpringBoot的流浪动物管理系统设计与实现
  • 原文地址:https://blog.csdn.net/qq_41821678/article/details/125594451