denoise-layer

Configure the Nav2 DenoiseLayer costmap plugin to filter spurious single-cell obstacles.

Updated Aug 16, 2026
One-click install
npx skills add https://github.com/three1324/yeonjinautomotive --skill denoise-layer-three1324
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: denoise-layer
Source: https://github.com/three1324/yeonjinautomotive/tree/main/.claude/skills/denoise-layer
Command: npx skills add https://github.com/three1324/yeonjinautomotive --skill denoise-layer-three1324

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Salt-and-pepper noise in Nav2 costmaps — isolated single-pixel lethal marks from sensor noise, multipath reflections, or electrical interference — causes robots to swerve, replan excessively, and deviate from optimal paths. This Skill provides the configuration knowledge to filter those spurious marks using the Nav2 DenoiseLayer plugin. ## Core Features & Use Cases - Noise Cluster Filtering: Configure minimal_group_size to remove connected lethal-cell clusters below a size threshold, with guidance on values 1 through 4+ and their trade-offs. - Correct Plugin Ordering: Ensures DenoiseLayer is placed after obstacle/voxel layers and before the inflation layer so inflation only applies to real obstacles. - Use Case: A robot with a cheap lidar shows scattered phantom dots in RViz near glass walls, causing constant replanning. Add the denoise_layer with minimal_group_size: 2 between the voxel layer and inflation layer to eliminate the phantom obstacles. ## Quick Start Add the denoise_layer plugin to my Nav2 local costmap between the voxel layer and inflation layer with minimal_group_size set to 2.

Frequently Asked Questions about denoise-layer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I remove single-pixel noise obstacles from a Nav2 costmap?

Add the nav2_costmap_2d::DenoiseLayer plugin to your costmap with minimal_group_size set to 2. This removes isolated single-pixel lethal marks while preserving larger real obstacle clusters.

Where should DenoiseLayer go in the Nav2 costmap plugin order?

Place DenoiseLayer after obstacle, voxel, or range layers so it can see their marks, and before the inflation layer so inflation only inflates real obstacles. Placing it after inflation would leave stale inflation gradients.

What does minimal_group_size do in Nav2 DenoiseLayer?

minimal_group_size sets the minimum number of connected lethal cells required for a cluster to survive denoising. A value of 2 removes isolated single pixels, 3 also removes pairs, and 4 or higher risks erasing real small obstacles.

When should I not use the Nav2 DenoiseLayer?

Avoid it when your sensors are clean, when you must detect small real obstacles like cables or thin posts, or when noise can be filtered at the sensor driver level. Sensor-level filtering with laser_filters is preferred when practical.

Why are real obstacles disappearing from my costmap after enabling denoising?

Your minimal_group_size is likely too high, causing thin real obstacles like chair legs to be removed. Decrease the value or disable the layer, and visualize the raw costmap before inflation to see which marks are being erased.