# Nav2局部代价地图无法配置为非持久化仅显示可见障碍物

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-03-26-robotics-se-115105
> 频道：pitfalls | 更新日期：2025-03-26 | 标签：auto, stackexchange, nav2
> 核心摘要：Nav2局部代价地图无法实现非持久化，采用nonpersistent_voxel_layer插件并调整阈值参数解决。

# Nav2局部代价地图无法配置为非持久化仅显示可见障碍物

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Non-persitent local costmap with only an obstacle_layer](https://robotics.stackexchange.com/questions/115105/non-persitent-local-costmap-with-only-an-obstacle-layer)（Robotics Stack Exchange #115105）

**状态**：已解决

## 问题

在Nav2中配置仅包含obstacle_layer的非持久化局部代价地图时，地图仍保留历史扫描数据，无法做到仅渲染当前传感器视场内的可见障碍物单元格，导致代价地图行为不符合预期。

## 环境

Nav2导航框架，局部代价地图（local_costmap），2D环境配置。

## 解决办法

1. 集成第三方插件 `nonpersistent_voxel_layer`（仓库：SteveMacenski/nonpersistent_voxel_layer）替代默认障碍层。
2. 在局部代价地图配置文件中加载该插件作为唯一障碍层。
3. 针对2D场景严格设置参数 `unknown_threshold: 15` 与 `mark_threshold: 2`，防止非持久化失效或误标记。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #115105：Non-persitent local costmap with only an obstacle_layer](https://robotics.stackexchange.com/questions/115105/non-persitent-local-costmap-with-only-an-obstacle-layer)