speed-restricted-zones

Configure Nav2 speed restricted zones using costmap filter masks and SpeedFilter plugins.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Robots navigating with Nav2 often need to slow down in specific map areas such as crowded hallways, ramps, or zones with poor sensor visibility, but configuring velocity limits per region requires coordinating mask images, map servers, filter info servers, and controller subscriptions. ## Core Features & Use Cases - Mask-Based Speed Zones: Create grayscale mask images or OccupancyGrid arrays where pixel values map to percentage or absolute speed limits. - Full Nav2 Integration: Launch configurations for map_server and costmap_filter_info_server, plus costmap YAML wiring the SpeedFilter plugin into the global costmap. - Controller Compatibility Guidance: Explains native speed limit support in MPPI and Regulated Pure Pursuit, and the extra work needed for DWB. - Use Case: A warehouse robot must slow to 25% speed near a packing station. Paint that region gray in a mask aligned to the navigation map, serve it via map_server, and the controller automatically caps velocity when the robot enters the zone. ## Quick Start Set up a Nav2 speed restricted zone that limits my robot to 50 percent speed in a specific map area using a costmap filter mask.

Frequently Asked Questions about speed-restricted-zones

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

FAQPage Schema
How do I set up speed restricted zones in Nav2?

Create a grayscale mask image matching your navigation map, serve it with map_server, run a costmap_filter_info_server with type 1, and add the SpeedFilter plugin to your global costmap. The controller then subscribes to the /speed_limit topic and caps velocity in masked regions.

How do I create a speed limit mask for Nav2 costmap filters?

Start with a white image matching your map's dimensions, resolution, and origin, then paint zones with grayscale values where darker means slower. Alternatively, generate an OccupancyGrid directly in Python with numpy, setting region values like 50 for 50 percent speed.

Which Nav2 controllers support speed limit topics?

MPPI and Regulated Pure Pursuit natively subscribe to /speed_limit and cap velocity automatically. DWB does not support it natively and requires a custom critic or an external node that adjusts max_vel_x dynamically.

What is the difference between percentage and absolute mode in Nav2 SpeedFilter?

Percentage mode maps mask values 0-100 to 0-100 percent of the robot's max speed, while absolute mode maps them between the speed_limit parameter's minimum and maximum. Percentage mode is recommended because it works regardless of configured max speed.

Why is my robot ignoring the Nav2 speed limit zone?

The controller may not subscribe to /speed_limit, which happens with DWB. Verify subscribers with ros2 topic info, echo /speed_limit while the robot is in the zone, and check that the SpeedFilter plugin is enabled in the global costmap.