controller-comparison

Compares Nav2 local controllers MPPI, DWB, RPP, and Graceful for robot navigation selection.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Choosing the right Nav2 local controller is difficult because MPPI, DWB, RPP, and Graceful differ widely in CPU cost, path quality, tuning complexity, and obstacle handling. This Skill provides a structured decision matrix and scenario-based recommendations so you can pick and configure the right controller for your robot and environment. ## Core Features & Use Cases - Decision Matrix: Side-by-side comparison of algorithm type, CPU cost, path quality, narrow-space handling, dynamic obstacle response, and goal approach behavior across MPPI, DWB, and RPP. - CPU Budget Analysis: Concrete compute-time tables per controller configuration, including margins at 20Hz and adjustments for ARM boards like Raspberry Pi 4 and Jetson Nano. - Scenario Recommendations: Prescriptive guidance for house patrol robots, corridor patrols, warehouses, and competition-grade setups, plus hybrid approaches like RotationShim and multi-plugin controller servers. - Use Case: You are deploying an indoor patrol robot with narrow doorways on a Jetson-based platform. Use this Skill to determine that MPPI with RotationShim fits your CPU budget and doorway-negotiation needs, then follow the migration path from RPP to tuned MPPI. ## Quick Start Ask which Nav2 local controller to use for your robot type and environment, and get a recommendation with parameter mappings.

Frequently Asked Questions about controller-comparison

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

FAQPage Schema
How do I choose between MPPI, DWB, and RPP in Nav2?

Choose based on environment and CPU budget: MPPI for narrow spaces and dynamic obstacles where trajectory optimization matters, DWB for open areas with scattered obstacles, and RPP for simple straight corridors where low CPU and predictability matter most.

What Nav2 controller is best for an indoor patrol robot?

MPPI with RotationShimController is recommended for indoor patrol robots. It handles narrow doorways, sharp 90-degree turns, and dynamic obstacles like people and pets, assuming the platform has sufficient CPU headroom.

Can MPPI run at 20Hz on a Jetson or Raspberry Pi?

MPPI with 2000 batch samples and no footprint checking takes about 20ms per cycle on x86, fitting a 50ms budget. On ARM boards like Jetson Nano or Raspberry Pi 4, expect 2-3x longer compute times, so reduce batch size or disable footprint checking.

How do I switch from RPP to MPPI in Nav2?

Only the FollowPath plugin name and controller-specific parameters change; the controller_server config, costmaps, and behavior tree stay the same. Start with the baseline MPPI configuration, then tune critic weights iteratively with visualization enabled.

Can Nav2 use multiple controllers for different path segments?

Yes, Nav2 supports multiple controller plugins in the controller_plugins list, such as MPPI for general path following and Graceful for docking. The behavior tree selects which controller handles each segment via the controller_id field in the FollowPath action.

When should I not use MPPI as my Nav2 controller?

Avoid MPPI when CPU is severely constrained, when paths are mostly straight corridors where RPP suffices, or when you need highly predictable auditable behavior, since MPPI's weighted-average trajectory can shift between cycles.