velocity-smoother

Smooth controller velocity commands to enforce acceleration limits in Nav2 pipelines.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Enforces acceleration/deceleration limits on controller commands by acting as a buffer between the Nav2 controller and the robot actuators, reducing jerky motion and mechanical stress.

Core Features & Use Cases

  • Rate-limited velocity commands: applies max_accel / max_decel per axis to gradually reach target velocities.
  • Open-loop and Closed-loop support: can operate without odometry or read odometry from a specified odom_topic for feedback.
  • Smoother integration: effective between /cmd_vel_nav and /cmd_vel_smoothed in Nav2 pipelines to improve stability for differential-drive robots in both real robots and simulations.

Quick Start

Configure the velocity_smoother with your desired limits and launch it in your ROS 2/Nav2 system, wiring controller output to its input and using the smoothed output for actuation.

Frequently Asked Questions about velocity-smoother

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

FAQPage Schema
How do I smooth cmd_vel commands in ROS 2 to reduce jerky robot motion?▼

You smooth cmd_vel by placing a velocity smoother between the Nav2 controller and actuators. It buffers velocity commands and applies max_accel and max_decel limits per axis to gradually reach target velocities, reducing mechanical stress.

Does the velocity smoother require odometry feedback to work?▼

Odometry feedback is optional for velocity smoothing. The smoother supports open-loop operation without odometry, but can read from an odom_topic for closed-loop feedback to refine velocity calculations using a specified odom_duration.

How do I configure acceleration limits for a differential-drive robot in Nav2?▼

You configure acceleration limits for differential-drive robots by setting smoothing_frequency, max_accel, max_decel, and deadband_velocity parameters. The smoother integrates between cmd_vel_nav and cmd_vel_smoothed in Nav2 pipelines to improve stability.

Can I use velocity smoothing for both real robots and simulations?▼

Velocity smoothing applies to both real robots and simulations in Nav2-based stacks. It acts as a buffer between the controller and actuators, ensuring stable motion by enforcing rate limits regardless of the operating environment.

What is the best way to preserve trajectory while smoothing velocity commands?▼

To preserve trajectory while smoothing velocity commands, enable the optional scale_velocities parameter. This ensures the robot maintains its intended path while the smoother enforces acceleration and deceleration limits on the cmd_vel output.