mppi-controller

Configure and tune Nav2 MPPI controller parameters for trajectory rollout optimization.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Tuning the Nav2 MPPI (Model Predictive Path Integral) controller involves dozens of interacting parameters—batch size, time steps, temperature, noise distributions, and critic weights—where wrong values cause wall-hugging, goal overshoot, oscillation, or CPU overload. This Skill provides a structured reference and tuning workflow to configure the controller correctly. ## Core Features & Use Cases - Parameter Reference: Documents every key MPPI parameter including trajectory sampling, motion models (DiffDrive, Omni, Ackermann), velocity/acceleration limits, and sampling noise with typical value ranges. - Complete YAML Baseline: Ships a production-ready controller_server configuration with all eight critic plugins (ConstraintCritic, CostCritic, GoalCritic, PathAlignCritic, and more) pre-configured. - CPU Cost Model: Explains how batch_size, time_steps, and footprint checking affect compute time so configurations stay within the controller frequency budget. - Use Case: A robotics engineer's robot oscillates near obstacles in a Nav2 stack. Using this Skill, they identify that CostCritic.cost_weight should be increased relative to PathAlignCritic and apply the fix directly in their YAML. ## Quick Start Ask the AI to generate a tuned Nav2 MPPI controller YAML configuration for a differential drive robot with a 20Hz control loop.

Frequently Asked Questions about mppi-controller

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

FAQPage Schema
How do I tune the Nav2 MPPI controller parameters?

Start from a baseline YAML with batch_size around 2000, time_steps of 56, and model_dt of 0.05, then enable visualize in RViz2 to observe trajectories. Adjust critic weights based on symptoms: raise CostCritic weight for wall-hugging, or GoalCritic weight for goal overshoot.

What is the prediction horizon in MPPI and how is it calculated?

The prediction horizon equals time_steps multiplied by model_dt. For example, 56 steps at 0.05 seconds gives a 2.8-second lookahead. Longer horizons produce smoother trajectories but react more slowly to sudden obstacles.

Does the Nav2 MPPI controller support Ackermann steering robots?

Yes, the motion_model parameter accepts DiffDrive, Omni, or Ackermann. DiffDrive constrains lateral velocity vy to zero, while Ackermann models car-like steering kinematics for vehicles that cannot turn in place.

Why is my MPPI controller using too much CPU?

CPU cost scales with iteration_count times batch_size times time_steps times critic evaluation cost. Reduce batch_size, increase trajectory_point_step on critics, and set consider_footprint to false on CostCritic to cut compute time significantly.

What does the temperature parameter do in MPPI?

Temperature controls the softmin weighting of sampled trajectories. Low values near 0.01 make the controller greedy toward the single best trajectory, while values near 1.0 average all trajectories nearly equally. A range of 0.15 to 0.3 works well for most indoor use.

Why does my robot oscillate near obstacles with MPPI?

Oscillation near obstacles usually means CostCritic.cost_weight is too low relative to PathAlignCritic, or sampling noise (vx_std, wz_std) is too large. Increase the CostCritic weight or reduce PathAlignCritic weight, and verify noise values stay near 0.2 and 0.4.