action-server-client

Implement ROS 2 action servers and clients with feedback and cancellation.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

ROS 2 action servers and clients are essential for coordinating long-running tasks with feedback and cancellation. This Skill provides templates and guidelines to implement robust action-based workflows in Jazzy/Rolling.

Core Features & Use Cases

  • Python Action Server & Client templates: Implement end-to-end action workflows with goal handling, feedback, and cancellation.
  • C++ Action Server patterns: Apply high-performance server patterns with preemption and feedback streams.
  • Preemption patterns & safety: Manage goal lifecycle and safe preemption to avoid deadlocks.
  • Test scaffolding & examples: Use concrete examples to validate interactions between servers and clients.

Quick Start

Set up a Patrol.action and implement a Python Action Server and Client following the templates, and exercise a sample goal to verify end-to-end behavior.

Frequently Asked Questions about action-server-client

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

FAQPage Schema
How do I implement a ROS 2 action server and client in Python for long-running tasks?

To implement a ROS 2 action server and client in Python, use templates that handle goal processing, stream progress feedback, and support cancellation. This defines a robust end-to-end action workflow for coordinating long-running robotic tasks.

How does preemption handling work for ROS 2 action servers in C++?

Preemption handling in ROS 2 action servers manages the goal lifecycle to safely cancel or replace active goals. Applying high-performance C++ server patterns prevents deadlocks and ensures safe task interruption during robotic control workflows.

What is the best way to coordinate long-running robotic tasks with feedback in ROS 2 Jazzy and Rolling?

The best way to coordinate long-running tasks in ROS 2 Jazzy and Rolling is using action servers and clients. They provide built-in goal tracking, continuous progress feedback, and safe cancellation to handle complex robotic control workflows.

How do I test ROS 2 action server and client interactions?

You can test ROS 2 action server and client interactions using provided test scaffolding and concrete examples. Set up a Patrol.action definition, implement the server and client, and exercise a sample goal to verify end-to-end behavior.

Do I need to define a custom action file before implementing ROS 2 action servers and clients?

Yes, you need to define a custom action file like Patrol.action before implementation. This action definition template establishes the goal, feedback, and result message structures required for the server and client to communicate properly.

Why does my ROS 2 action workflow hang during goal cancellation?

ROS 2 action workflows hang during goal cancellation when preemption patterns are not implemented safely. Applying proper goal lifecycle management and preemption handling prevents deadlocks and ensures safe task interruption across server and client nodes.