• 室内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

  • 相关阅读:
    【TCP】滑动窗口、流量控制 以及拥塞控制
    ⽂件权限管理(上)
    JDBC(一)
    安卓Termux搭建Web服务器【公网远程手机Android服务器】
    基于DTU储油罐在线监测系统,防患于未然
    RTMP协议和源码解析
    【笔记篇】13供应链项目养成记——之《实战供应链》
    flutter GetMaterialAPP unknownRoute 失效
    localStorage
    mysql-面试50题-2
  • 原文地址:https://blog.csdn.net/qq_41821678/article/details/125594451