ros2

Provides best practices and patterns for building ROS2 nodes, packages, launch files, and DDS configurations.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? ROS2 development involves many failure-prone areas—QoS mismatches that silently drop topics, colcon build errors, lifecycle node orchestration, and DDS tuning. This Skill gives an AI assistant the correct patterns and troubleshooting steps so you avoid the most common ROS2 pitfalls. ## Core Features & Use Cases - Node & Component Patterns: Reference implementations for rclpy and rclcpp nodes, lifecycle (managed) nodes, and composable components with intra-process zero-copy communication. - Build System Guidance: Complete package.xml, CMakeLists.txt, and setup.py templates for ament_cmake and ament_python packages, plus colcon flags and workspace overlay setup. - QoS & DDS Configuration: QoS compatibility rules, recommended profiles per data type, CycloneDDS tuning, and debugging commands for discovery and connection failures. - Use Case: You are porting a perception pipeline to ROS2 Humble on a Jetson. Use this Skill to scaffold the package, configure sensor QoS correctly, write the launch file, and diagnose why a subscriber sees no messages. ## Quick Start Use the ros2 skill to help me create a ROS2 Humble package with a lifecycle perception node, correct sensor QoS settings, and a Python launch file.

Frequently Asked Questions about ros2

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

FAQPage Schema
How do I create a ROS2 node in Python?

Create a class inheriting from rclpy.node.Node, declare parameters, set up publishers and subscribers with explicit QoS profiles, and add timers for periodic work. Register it via console_scripts entry points in setup.py for ament_python packages.

Why is my ROS2 subscriber not receiving messages?

The most common cause is a QoS mismatch: a BEST_EFFORT publisher cannot connect to a RELIABLE subscriber, and the failure is silent. Run ros2 topic info <topic> -v to compare reliability and durability settings on both ends.

What is the difference between ament_cmake and ament_python?

ament_cmake is the build type for C++ packages, mixed C++/Python packages, and packages generating custom messages. ament_python is for pure Python packages with no C++ code or custom interfaces, using setup.py instead of CMakeLists.txt.

How do I fix colcon build package not found errors?

Missing dependencies cause most colcon failures. Run rosdep install --from-paths src --ignore-src -y to install declared dependencies, and verify you sourced the ROS2 underlay with source /opt/ros/humble/setup.bash before building.

When should I use lifecycle nodes in ROS2?

Use lifecycle nodes for production systems needing deterministic startup, shutdown, and error recovery. They move through Unconfigured, Inactive, and Active states, letting you allocate resources in on_configure and start processing only in on_activate.

Which DDS implementation should I use with ROS2?

CycloneDDS (rmw_cyclonedds_cpp) is recommended for most cases, while FastDDS is the default and works well for multi-machine setups. Set the implementation via the RMW_IMPLEMENTATION environment variable and tune it with a cyclonedds.xml file.