外观
踩坑Robotics Stack Exchange2025-01-27
Nav2因StaticLayer调整Costmap尺寸导致目标点越界规划失败
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Nav2 goal out of bounds due to resized costmap(Robotics Stack Exchange #114428)
状态:有绕过办法
问题
在Gazebo仿真中使用slam-toolbox建图并配合Nav2导航时,Global Costmap的StaticLayer会将代价地图自动调整为当前SLAM地图大小(如191x191)。当设定位于已知地图边界外的目标点时,planner_server报错"Goal Coordinates was outside bounds"并中止任务,无法自动探索未知区域以到达目标。
环境
ROS2 Jazzy, Gazebo仿真, slam-toolbox, Nav2, Global Costmap含StaticLayer/ObstacleLayer/InflationLayer插件
解决办法
- 配置SLAM系统生成一个远大于当前环境的初始地图尺寸(即使大部分区域为unknown),确保Global Costmap的StaticLayer初始化时预留足够空间容纳潜在目标点,避免运行时动态缩小边界。
- 若需自动化处理,在导航至最终目标前插入中间路径点作为过渡目标,引导机器人主动探索并触发SLAM扩展地图边界,待Costmap覆盖最终目标区域后再发送终点导航指令。
- 避免依赖运行时手动resize costmap参数,该方式非标准流程且稳定性差;优先通过上述建图策略或行为树逻辑实现边界自适应扩展。
原问题作者:Olingo;采纳答案作者:Steve Macenski。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。