Agent skill

Ros2 Engineering Skills

by LeoYeAI in LeoYeAI/openclaw-master-skills

Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition…

MITAuto-check: notesDevOps & Cloud

Install Ros2 Engineering Skills

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill ros2-engineering-skills -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills ros2-engineering-skills --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ros2-engineering-skills .claude/skills/ros2-engineering-skills && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ros2-engineering-skills
GitHub stars
2.2k
Token cost
~5k tokens
SKILL.md length
1,687 words
Files
39 (incl. scripts, references)
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition…

  • Works in 10 steps: Distro awareness → C++ vs Python decision → Package structure conventions → …
  • Ever the user works on ROS 2 code
  • SKILL.md covers How to use this skill, Decision router, Core engineering principles and Common anti-patterns, plus 2 more sections
  • Calls apt

What it does

Ros2 Engineering Skills is an agent skill from LeoYeAI/openclaw-master-skills. Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition, tf2/URDF, ros2control hardware interfaces, real-time constraints, Nav2, MoveIt 2, perception pipelines, simulation (Gazebo/Isaac Sim), security (SROS2/DDS), micro-ROS (MCU/RTOS), multi-robot systems (fleet management/Open-RMF), testing, debugging, deployment, and ROS 1 migration. Trigger whenever the user works on ROS 2…

Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 39 other files, including scripts and reference files (for example `README.md`, `_meta.json` and `references/communication.md`).

It sits in DevOps & Cloud, covering Embedded systems, CI/CD and Containers. It works with Docker. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

When your agent uses it

  • Ever the user works on ROS 2 code
  • DDS configuration
  • Any robotics middleware task involving rclcpp
  • Gazebo/Isaac Sim

Example prompts

  • “/ros2-engineering-skills”

Requirements

  • Python 3
  • Docker

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Distro awareness
  2. C++ vs Python decision
  3. Package structure conventions
  4. Parameter discipline
  5. Error handling philosophy
  6. Quality of Service defaults
  7. Naming conventions
  8. Thread safety and callbacks
  9. Lifecycle-first design
  10. Build and CI hygiene

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • apt

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ros2 Engineering Skills loads about 5k tokens when it runs, and up to ~118k if it reads all its reference files. Until then it costs about 227 tokens; SKILL.md has 1,687 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~227
When it runs · the whole SKILL.md, loaded when a task matches
~5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~118k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:307
    Install: `sudo apt install ros-kilted-rmw-zenoh-cpp`, set

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,687 words, ~4,965 tokens.

Download SKILL.mdSave it as .claude/skills/ros2-engineering-skills/SKILL.md (or your agent's skills folder). This skill also uses 38 other files; get the full folder from GitHub.
name
ros2-engineering-skills
description
Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition, tf2/URDF, ros2_control hardware interfaces, real-time constraints, Nav2, MoveIt 2, perception pipelines, simulation (Gazebo/Isaac Sim), security (SROS2/DDS), micro-ROS (MCU/RTOS), multi-robot systems (fleet management/Open-RMF), testing, debugging, deployment, and ROS 1 migration. Trigger whenever the user works on ROS 2 code, packages, launch files, URDF/xacro, DDS configuration, ros2_control, Nav2, MoveIt 2, or any robotics middleware task involving rclcpp, rclpy, colcon, ament, rosbag2, ros2 CLI tools, Gazebo/Isaac Sim, micro-ROS, SROS2, or multi-robot coordination. Also trigger for ROS 1 to ROS 2 migration, cross-compilation, Docker-based ROS 2 workflows, and CI/CD for robotics.

ROS 2 Engineering Skills

A progressive-disclosure skill for ROS 2 development — from first workspace to production fleet deployment. Each section below gives you the essential decision framework; detailed patterns, code templates, and anti-patterns live in the references/ directory. Read the relevant reference file before writing code.

How to use this skill

  1. Identify what the user is building (see Decision Router below).
  2. Read the matching references/*.md file for detailed guidance.
  3. Apply the Core Engineering Principles in every piece of code you generate.
  4. When multiple domains intersect (e.g. Nav2 + ros2_control), read both files.

Decision router

User is doing...Read
Creating a workspace, package, or build configreferences/workspace-build.md
Writing nodes, executors, callback groupsreferences/nodes-executors.md
Topics, services, actions, custom interfaces, QoSreferences/communication.md
Lifecycle nodes, component loading, compositionreferences/lifecycle-components.md
Launch files, conditional logic, event handlersreferences/launch-system.md
tf2, URDF, xacro, robot_state_publisherreferences/tf2-urdf.md
ros2_control, hardware interfaces, controllersreferences/hardware-interface.md
Real-time constraints, PREEMPT_RT, memory, jitterreferences/realtime.md
Nav2, SLAM, costmaps, behavior treesreferences/navigation.md
MoveIt 2, planning scene, grasp pipelinesreferences/manipulation.md
Camera, LiDAR, PCL, cv_bridge, depth processingreferences/perception.md
Unit tests, integration tests, launch_testing, CIreferences/testing.md
ros2 doctor, tracing, profiling, rosbag2references/debugging.md
Docker, cross-compile, fleet deployment, OTAreferences/deployment.md
Gazebo, Isaac Sim, sim-to-real, use_sim_timereferences/simulation.md
SROS2, DDS security, certificates, supply chainreferences/security.md
micro-ROS, MCU/RTOS, XRCE-DDS, rclcreferences/micro-ros.md
Multi-robot fleet, Open-RMF, DDS discovery scalereferences/multi-robot.md
Message types, units, covariance, frame conventionsreferences/message-types.md
ROS 1 migration, ros1_bridge, hybrid operationreferences/migration-ros1.md

When a task spans multiple domains, read all relevant files and reconcile conflicting recommendations by favoring safety, then determinism, then simplicity.

Cross-cutting concern — Security: Security is not isolated to references/security.md. Every domain should consider its security implications: hardware interfaces need safe shutdown on auth failure, DDS topics may need encryption, deployment images need supply chain verification, and fleet communication must use TLS. When reviewing code in any domain, check whether the data path crosses a trust boundary.

Core engineering principles

These apply to every ROS 2 artifact you produce, regardless of domain.

1. Distro awareness

Always ask which ROS 2 distribution the user targets. Key differences:

FeatureFoxy (EOL)Humble (LTS)Jazzy (LTS)Kilted (non-LTS)Rolling
EOLJun 2023 (ended)May 2027May 2029Nov 2025Rolling
Ubuntu20.0422.0424.0424.04Latest
Default DDSFast DDSFast DDSFast DDSFast DDSFast DDS
Zenoh support———Tier 1Tier 1
Type description supportNoNoYesYesYes
Service introspectionNoNoYesYesYes
EventsExecutorNoNoExperimentalStable (+ rclpy)Stable (+ rclpy)
Default bag formatsqlite3sqlite3MCAPMCAPMCAP
ros2_control interfaceN/A (separate)2.x4.x4.xLatest
CMake recommendationament_target_depsament_target_depseithertarget_link_libstarget_link_libs

When the user does not specify, default to the latest LTS (Jazzy). Pin the exact distro in Dockerfile, CI, and documentation so builds are reproducible.

2. C++ vs Python decision

Choose the language based on the node's role, not personal preference.

Use rclcpp (C++) when:

  • The node sits in a control loop running ≥100 Hz
  • Deterministic memory allocation matters (real-time path)
  • The node is a hardware driver or controller plugin
  • Intra-process zero-copy communication is required

Use rclpy (Python) when:

  • The node is orchestration, monitoring, or parameter management
  • Rapid prototyping with frequent iteration
  • Heavy use of ML frameworks (PyTorch, TensorFlow) that are Python-native
  • The node does not sit in a latency-critical path

Mixed stacks are normal. A typical robot has C++ drivers/controllers and Python orchestration/monitoring. Note: component_container (composition) only loads C++ components via pluginlib. Python nodes run as separate processes, but can share a launch file and communicate via zero-overhead intra-host DDS.

Intra-process communication works for any nodes sharing a process — not only composable components. Any nodes instantiated in the same process with use_intra_process_comms(true) can use zero-copy transfer.

3. Package structure conventions

Every package should follow this layout. Consistency across a workspace reduces onboarding time and makes CI scripts portable.

my_package/
├── CMakeLists.txt          # or setup.py for pure Python
├── package.xml             # format 3, with <depend> tags
├── config/
│   └── params.yaml         # default parameters
├── launch/
│   └── bringup.launch.py   # Python launch file
├── include/my_package/     # C++ public headers (if library)
├── src/                    # C++ source files
├── my_package/             # Python modules (if ament_python or mixed)
├── test/                   # gtest, pytest, launch_testing
├── urdf/                   # URDF/xacro (if applicable)
├── msg/ srv/ action/       # custom interfaces (dedicated _interfaces package preferred)
└── README.md

Separate interface definitions into a *_interfaces package so downstream packages can depend on interfaces without pulling in implementation.

4. Parameter discipline
  • Declare every parameter with a type, description, range, and default in the node constructor — never use undeclared parameters.
  • Use ParameterDescriptor with FloatingPointRange or IntegerRange for numeric bounds. The parameter server rejects out-of-range values at set time.
  • Group related parameters under a namespace prefix: controller.kp, controller.ki, controller.kd.
  • Load defaults from a config/params.yaml; allow launch-time overrides.
  • For dynamic reconfiguration, register a set_parameters_callback and validate new values atomically before accepting.
5. Error handling philosophy
  • Nodes must not silently swallow errors. Log at the appropriate severity, then take a safe action (stop motion, request help, transition to error state).
  • Prefer lifecycle node error transitions over ad-hoc boolean flags.
  • When calling a service, always handle the "service not available" and "future timed out" cases explicitly.
  • For hardware drivers, distinguish transient errors (retry with backoff) from fatal errors (transition to FINALIZED and alert the operator).
6. Quality of Service defaults

Start from these profiles and adjust per use case:

Use caseReliabilityDurabilityHistoryDepthDeadlineLifespan
Sensor streamBEST_EFFORTVOLATILEKEEP_LAST5——
Command velocityRELIABLEVOLATILEKEEP_LAST1100 ms200 ms
Map (latched)RELIABLETRANSIENT_LOCALKEEP_LAST1——
DiagnosticsRELIABLEVOLATILEKEEP_LAST10——
Parameter eventsRELIABLEVOLATILEKEEP_LAST1000——
Action feedbackRELIABLEVOLATILEKEEP_LAST1——
Safety heartbeatRELIABLEVOLATILEKEEP_LAST1500 ms1 s

QoS mismatches are the #1 cause of "I published but nobody receives." Always check compatibility with ros2 topic info -v when debugging.

DEADLINE and LIFESPAN are critical for safety-critical systems. DEADLINE fires an event when no message arrives within the specified period (detect stale data). LIFESPAN discards messages older than the specified duration before delivery (prevent acting on stale data). See references/communication.md section 9 for full API and examples.

7. Naming conventions
EntityConventionExample
Packagesnake_casearm_controller
Nodesnake_casejoint_state_broadcaster
Topic/snake_case with ns/arm/joint_states
Service/snake_case/arm/set_mode
Action/snake_case/arm/follow_joint_trajectory
Parametersnake_case with dot nscontroller.publish_rate
Framesnake_casebase_link, camera_optical
InterfacePascalCase.msg/srv/actionJointState.msg
Show full SKILL.md (726 more words)Show less
8. Thread safety and callbacks
  • A MutuallyExclusiveCallbackGroup serializes its callbacks — safe for shared state without locks, but limits throughput.
  • A ReentrantCallbackGroup allows parallel execution — you must protect shared state with std::mutex (C++) or threading.Lock (Python).
  • Calling a service from a callback: The service client must be in a separate MutuallyExclusiveCallbackGroup from the calling callback. Otherwise the executor deadlocks — the callback waits for the response while the executor cannot deliver it. Always use async_send_request with a response callback; never use spin_until_future_complete inside an executor callback.
  • Never do blocking work (file I/O, long computation, sleep) inside a timer or subscription callback on the default executor. Offload to a dedicated thread or use a MultiThreadedExecutor with a reentrant group.
  • In rclcpp, prefer std::shared_ptr<const MessageT> in subscription callbacks to avoid unnecessary copies and enable zero-copy intra-process.
9. Lifecycle-first design

Default to lifecycle (managed) nodes for anything that owns resources: hardware drivers, sensor pipelines, planners, controllers.

                 ┌──────────────┐
  create() ──►  │  Unconfigured │
                 └──────┬───────┘
            on_configure │
                 ┌──────▼───────┐
                 │   Inactive    │
                 └──────┬───────┘
            on_activate  │
                 ┌──────▼───────┐
                 │    Active     │
                 └──────┬───────┘
           on_deactivate │
                 ┌──────▼───────┐
                 │   Inactive    │
                 └──────┬───────┘
            on_cleanup   │
                 ┌──────▼───────┐
                 │  Unconfigured │
                 └──────┬───────┘
           on_shutdown   │
                 ┌──────▼───────┐
                 │   Finalized   │
                 └───────────────┘

This gives the system manager (launch file, orchestrator, or operator) explicit control over when resources are allocated, when the node starts processing, and how it shuts down. It also makes error recovery predictable.

10. Build and CI hygiene
  • Use colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo for development; Release for deployment.
  • Enable -Wall -Wextra -Wpedantic and treat warnings as errors in CI.
  • Run colcon test with --event-handlers console_cohesion+ so test output groups by package.
  • Pin rosdep keys in rosdep.yaml for reproducible dependency resolution.
  • Cache /opt/ros/, .ccache/, and build//install/ in CI to cut build times by 60–80%.

Common anti-patterns

Anti-patternWhy it hurtsFix
Global variables for node stateBreaks composition, untestableStore state as class members
spin() in main() for multi-node processesStarves other nodesUse MultiThreadedExecutor or component composition
Hardcoded topic namesBreaks reuse across robotsUse relative names + namespace remapping
KEEP_ALL history with no boundMemory grows unbounded on slow subscribersUse KEEP_LAST with explicit depth
Using time.sleep() / std::this_thread::sleep_forBlocks the executor threadUse create_wall_timer or a dedicated thread
Monolithic launch file for everythingUnmanageable past 10 nodesCompose launch files with IncludeLaunchDescription
Skipping package.xml dependenciesBuilds locally, breaks CI and DockerDeclare every dependency explicitly
Publishing in constructorSubscribers may not be ready, messages lostPublish in on_activate or after a short timer
Ignoring QoS compatibilitySilent communication failureMatch publisher/subscriber QoS or check with ros2 topic info -v
Creating timers/subs in callbacksResource leak, unpredictable behaviorCreate all entities in constructor or on_configure
Synchronous service call in callbackDeadlocks the executor threadUse async_send_request with a callback or dedicated thread
Service client in same callback group as callerDeadlocks even with async in MultiThreadedExecutorPut service client in a separate MutuallyExclusiveCallbackGroup
No safe command on shutdownMotors hold last velocity after node exitsSend zero-velocity in on_deactivate AND destructor (see references/hardware-interface.md)
Dynamic subscriptions with StaticSingleThreadedExecutorNew subs are never picked up after spin()Use SingleThreadedExecutor or MultiThreadedExecutor for dynamic entities
CPU frequency governor left on powersave/ondemand10-100 ms latency spikes in RT pathSet performance governor, disable turbo boost (see references/realtime.md)

Distro-specific migration notes

When upgrading between distributions, check these breaking changes first:

Foxy → Humble:

  • Complete API overhaul. Foxy packages require significant rework.
  • ros2_control was not bundled in Foxy — must be built separately.
  • Lifecycle node API stabilized in Humble.
  • Action server/client API changed significantly.

Humble → Jazzy:

  • ros2_control API changed from 2.x to 4.x — export_state_interfaces() and export_command_interfaces() are now auto-generated by the framework. Manual overrides use on_export_state_interfaces(). See references/hardware-interface.md.
  • Handle get_value() deprecated → use get_optional<T>() on LoanedStateInterface / LoanedCommandInterface (controller side). Hardware interfaces use set_state() / get_state() / set_command() / get_command() helpers with fully qualified names.
  • All joints in <ros2_control> tag must exist in the URDF.
  • Controller parameter loading changed — use --param-file with spawner.
  • Default bag format changed from sqlite3 to MCAP. Use storage_id='mcap'.
  • Default middleware changed internal config paths. Regenerate DDS profiles.
  • nav2_params.yaml schema changes — recoveries_server renamed to behavior_server.
  • ROS_AUTOMATIC_DISCOVERY_RANGE replaces ROS_LOCALHOST_ONLY (values: LOCALHOST, SUBNET, OFF, SYSTEM_DEFAULT).
  • launch_ros actions have new parameter handling — test launch files explicitly.

Jazzy → Kilted (non-LTS):

  • Zenoh promoted to Tier 1 middleware — rmw_zenoh is production-ready. Install: sudo apt install ros-kilted-rmw-zenoh-cpp, set RMW_IMPLEMENTATION=rmw_zenoh_cpp. Supports router/peer/client modes.
  • EventsExecutor graduated from experimental — available in rclcpp::executors (no experimental namespace). Also ported to rclpy.
  • ament_target_dependencies() deprecated — use target_link_libraries() with modern CMake targets (e.g. rclcpp::rclcpp, std_msgs::std_msgs__rosidl_typesupport_cpp).
  • Multi-bag replay support in ros2 bag play.
  • Gazebo Ionic is the paired simulator (Harmonic was Jazzy; Ionic is the Kilted pairing).

ROS 1 → ROS 2:

  • See references/migration-ros1.md for a step-by-step strategy.

Quick reference — ros2 CLI

bash
# Workspace
colcon build --symlink-install --packages-select my_pkg
colcon test --packages-select my_pkg
colcon graph --dot                       # dependency graph (DOT format)
source install/setup.bash

# Introspection
ros2 node list
ros2 topic list -t
ros2 topic info /topic_name -v          # shows QoS details
ros2 topic hz /topic_name
ros2 topic bw /topic_name
ros2 service list -t
ros2 action list -t
ros2 param list /node_name
ros2 param describe /node_name param
ros2 interface show std_msgs/msg/String

# ros2_control
ros2 control list_controllers
ros2 control list_hardware_interfaces
ros2 control list_hardware_components

# Debugging
ros2 doctor --report                    # alias: ros2 wtf
ros2 run tf2_tools view_frames
ros2 bag record -a -o my_bag
ros2 bag info my_bag
ros2 bag play my_bag --clock

# Lifecycle
ros2 lifecycle list /node_name
ros2 lifecycle set /node_name configure
ros2 lifecycle set /node_name activate

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 38 other files (scripts, references) in skills/ros2-engineering-skills of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • README.md
  • _meta.json
  • pytest.ini
  • references/communication.md
  • references/debugging.md
  • references/deployment.md
  • references/hardware-interface.md
  • references/launch-system.md
  • references/lifecycle-components.md
  • references/manipulation.md
  • references/message-types.md
  • references/micro-ros.md
  • references/migration-ros1.md
  • references/multi-robot.md
  • references/navigation.md
  • references/nodes-executors.md
  • references/perception.md
  • references/realtime.md
  • references/security.md
  • … and 19 more

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Ros2 Engineering Skills next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ros2 Engineering Skills compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ros2 Engineering Skills this skillLeoYeAI/openclaw-master-skills2.2k—~5kAutomated safety check: NotesMIT
PR Reviewkimdre/doco-cd1.7k—~311Automated safety check: PassApache-2.0
CI Adhoc Testnubjs/nub4.4k—~1.7kAutomated safety check: PassMIT
Releasing MarchatCod-e-Codes/marchat137—~801Automated safety check: PassMIT
Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit2606 repos~1.1kAutomated safety check: NotesCustom licence
GitHub Actions CreatorFNOSP/FlyNarwhal5091 repos~2.4kAutomated safety check: PassAGPL-3.0

Similar skills

  • PR Review

    kimdre/doco-cd

    Review pull request diffs for correctness and regressions, and provide actionable feedback when asked to review a PR.

    1.7k GitHub stars~311 tokensUpdated today
    DevOps & CloudAuto-check passed
  • CI Adhoc Test

    nubjs/nub

    Run ad-hoc / exploratory tests on a real OS or platform via CI when the behavior CANNOT be reproduced on the local host or in Docker — macOS Seatbelt / sandbox-exec / codesigning, Windows cmd.exe /…

    4.4k GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Releasing Marchat

    Cod-e-Codes/marchat

    Prepares marchat releases: version bumps, CHANGELOG, packaging checksums, GitHub Actions release workflow, and Docker tags.

    137 GitHub stars~801 tokensUpdated 8 days ago
    DevOps & CloudAuto-check passed
  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    260 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes
  • GitHub Actions Creator

    FNOSP/FlyNarwhal

    A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.

    509 GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • Swig CI Repro

    swig/swig

    Reproduce a GitHub Actions Linux CI failure locally when it does not happen on your machine: a podman/docker image that mirrors the ubuntu-22.04 runner by reusing the real Tools/CI-linux-.sh install…

    6.3k GitHub stars~1.2k tokensUpdated 4 days ago
    DevOps & CloudAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,200 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Ros2 Engineering Skills

What does Ros2 Engineering Skills do?

Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition…. Ros2 Engineering Skills is an agent skill from LeoYeAI/openclaw-master-skills. Comprehensive ROS 2 engineering guide covering workspace setup, node architecture, communication patterns (topics/services/actions with QoS), lifecycle and component nodes, launch composition, tf2/URDF, ros2control hardware interfaces, real-time constraints, Nav2, MoveIt 2, perception pipelines, simulation (Gazebo/Isaac Sim), security (SROS2/DDS), micro-ROS (MCU/RTOS), multi-robot systems (fleet management/Open-RMF), testing, debugging, deployment, and ROS 1 migration.

When should I use Ros2 Engineering Skills?

Ros2 Engineering Skills fits situations like: ever the user works on ROS 2 code; DDS configuration; any robotics middleware task involving rclcpp; gazebo/Isaac Sim.

How do I install Ros2 Engineering Skills in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill ros2-engineering-skills -a claude-code`. Or copy the skill folder (skills/ros2-engineering-skills in LeoYeAI/openclaw-master-skills) into .claude/skills/ros2-engineering-skills in your project. Claude Code loads it when a task matches its description.

How do I install Ros2 Engineering Skills in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill ros2-engineering-skills -a codex`. Or copy the skill folder (skills/ros2-engineering-skills in LeoYeAI/openclaw-master-skills) into .agents/skills/ros2-engineering-skills in your project. Codex loads it when a task matches its description.

Can I use Ros2 Engineering Skills in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill ros2-engineering-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ros2-engineering-skills, .gemini/skills/ros2-engineering-skills, .github/skills/ros2-engineering-skills and .opencode/skills/ros2-engineering-skills in your project.

What does Ros2 Engineering Skills need to run?

Going by SKILL.md and its folder, Ros2 Engineering Skills needs the command-line tools its instructions call (apt). Our summary lists: Python 3; Docker.

Does Ros2 Engineering Skills access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ros2 Engineering Skills safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Ros2 Engineering Skills use?

Ros2 Engineering Skills is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ros2 Engineering Skills use?

About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 113k tokens, read only when the agent opens those files.

What are the alternatives to Ros2 Engineering Skills?

Skills that share tags, products or a category with Ros2 Engineering Skills: PR Review (kimdre/doco-cd, 1.7k stars), CI Adhoc Test (nubjs/nub, 4.4k stars), Releasing Marchat (Cod-e-Codes/marchat, 137 stars) and Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ros2 Engineering Skills?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.