graceful-controller

Control robot motion toward a goal pose with curvature-constrained trajectories.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

GracefulController implements a smooth control law for gracefully approaching a goal pose, producing arc-like motion instead of sharp, abrupt maneuvers.

Core Features & Use Cases

  • Smooth docking and precise approach to a goal pose with curvature constraints.
  • Supports multiple controller plugins and per-path selection via the controller_id parameter.
  • Configurable parameters such as min_turning_radius, v_linear_min/max, k_phi, initial_rotation, and final_rotation to tailor behavior for real-world deployments.

Quick Start

Configure the GracefulController as the active controller in your controller_server configuration and tune min_turning_radius as needed.

Frequently Asked Questions about graceful-controller

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

FAQPage Schema
How do I achieve smooth docking and precise approach in Nav2 without jerky motion?

Smooth docking in Nav2 requires a curvature-constrained controller plugin. GracefulController generates arc-like trajectories and supports configurable parameters like min_turning_radius and velocity bounds to prevent abrupt maneuvers during final approaches.

Can I configure a minimum turning radius and velocity limits for a ROS2 controller plugin?

Yes, configuring a minimum turning radius and velocity limits is supported. GracefulController exposes parameters such as min_turning_radius, v_linear_min/max, k_phi, and rotation behaviors to tailor motion planning for specific robotic platforms.

How do I set up a controller plugin for curvature-constrained motion planning in ROS2?

To set up curvature-constrained motion planning, configure the controller as active in your Nav2 controller_server. GracefulController integrates directly as a Nav2 controller plugin and supports per-path selection via the controller_id parameter.

Does this Nav2 controller support initial and final rotation behaviors for precise docking?

Yes, initial and final rotation behaviors are supported for precise docking. GracefulController includes configurable parameters for initial_rotation and final_rotation, allowing you to control how the robot orients itself when approaching a goal pose.

What is the best way to handle simple navigation tasks in ROS2 while avoiding sharp maneuvers?

Handling simple navigation tasks while avoiding sharp maneuvers requires a smooth control law. GracefulController implements curvature-constrained trajectories that produce graceful, arc-like motion instead of abrupt turns, making it suitable for both navigation and docking.

Why does my robot perform abrupt turns during the final approach to a goal pose in Nav2?

Abrupt turns during final approach happen when the controller lacks curvature constraints. GracefulController solves this by applying a smooth control law that generates arc-like motion, ensuring the robot approaches the goal pose gracefully without jerky movements.