keepout-zones

Configure Nav2 keepout zones to mark impassable areas in the costmap.

18|2|Updated Apr 20, 2026
One-click install
npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill keepout-zones
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: keepout-zones
Source: https://github.com/wimblerobotics/ros2-copilot-skills/tree/main/keepout-zones
Command: npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill keepout-zones

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Keeps certain map regions off limits by marking them as lethal in the costmap, preventing the robot from planning through them and enabling safer operation around stairs, restricted rooms, and hazardous zones.

Core Features & Use Cases

  • Mask-based keepout workflow using a PGM mask served by a map server, with a KeepoutFilter plugin applying lethal cells to the global costmap.
  • Dynamic updates allow adjusting zones at runtime by pushing a new occupancy grid to /keepout_mask.
  • Common use cases include protecting fragile equipment, enforcing temporary safety boundaries during maintenance, and excluding sensitive areas from navigation.

Quick Start

Create a keepout_mask.yaml aligned to your navigation map and launch the map_server and costmap_filter_info_server with the KeepoutFilter loaded in the global costmap before inflation.

Frequently Asked Questions about keepout-zones

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

FAQPage Schema
How do I set up keepout zones in a Nav2 costmap?

To set up keepout zones in Nav2, create a keepout_mask.yaml aligned with your navigation map, launch the map_server and costmap_filter_info_server, and load the KeepoutFilter plugin into the global costmap before inflation.

What does a keepout mask do for robot navigation safety?

A keepout mask enforces safe navigation by marking specific map regions as lethal in the costmap, preventing the robot from planning through restricted rooms, hazardous zones, and temporary maintenance areas.

Can I update Nav2 keepout zones dynamically at runtime?

Yes, you can dynamically update keepout zones at runtime by pushing a new occupancy grid to the /keepout_mask topic, enabling real-time adjustment of restricted areas and temporary safety boundaries.

Do I need a specific map format to use Nav2 costmap filters?

Yes, you need a base occupancy map and a matching keepout_mask.yaml file. The PGM mask is served by a map server and applied by the KeepoutFilter plugin to mark lethal cells in the global costmap.

Why is my robot still planning through restricted areas despite using a keepout mask?

If the robot still plans through restricted areas, verify that the KeepoutFilter plugin is wired into the global costmap before inflation, and ensure the keepout_mask.yaml dimensions exactly match the base occupancy map.