# Nav2因StaticLayer调整Costmap尺寸导致目标点越界规划失败

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-01-27-robotics-se-114428
> 频道：pitfalls | 更新日期：2025-01-27 | 标签：auto, stackexchange, slam
> 核心摘要：SLAM建图后Costmap被StaticLayer缩小致目标越界，可通过预设大尺寸初始地图或设置中间探索点扩展地图解决。

# Nav2因StaticLayer调整Costmap尺寸导致目标点越界规划失败

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Nav2 goal out of bounds due to resized costmap](https://robotics.stackexchange.com/questions/114428/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插件

## 解决办法

1. 配置SLAM系统生成一个远大于当前环境的初始地图尺寸（即使大部分区域为unknown），确保Global Costmap的StaticLayer初始化时预留足够空间容纳潜在目标点，避免运行时动态缩小边界。
2. 若需自动化处理，在导航至最终目标前插入中间路径点作为过渡目标，引导机器人主动探索并触发SLAM扩展地图边界，待Costmap覆盖最终目标区域后再发送终点导航指令。
3. 避免依赖运行时手动resize costmap参数，该方式非标准流程且稳定性差；优先通过上述建图策略或行为树逻辑实现边界自适应扩展。

原问题作者：Olingo；采纳答案作者：Steve Macenski。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #114428：Nav2 goal out of bounds due to resized costmap](https://robotics.stackexchange.com/questions/114428/nav2-goal-out-of-bounds-due-to-resized-costmap)