← ClaudeAtlas

ros2-developmentlisted

Comprehensive best practices, design patterns, and common pitfalls for ROS2 (Robot Operating System 2) development. Use this skill when building ROS2 nodes, packages, launch files, components, or debugging ROS2 systems. Trigger whenever the user mentions ROS2, colcon, rclpy, rclcpp, DDS, QoS, lifecycle nodes, managed nodes, ROS2 launch, ROS2 parameters, ROS2 actions, nav2, MoveIt2, micro-ROS, or any ROS2-era robotics middleware. Also trigger for ROS2 workspace setup, DDS tuning, intra-process communication, ROS2 security, or deploying ROS2 in production. Also trigger for colcon build issues, ament_cmake, ament_python, CMakeLists.txt for ROS2, package.xml dependencies, rosdep, workspace overlays, custom message generation, or ROS2 build troubleshooting. Covers Humble, Iron, Jazzy, and Rolling distributions.
vicky23383/robotics-agent-skills · ★ 5 · AI & Automation · score 77
Install: claude install-skill vicky23383/robotics-agent-skills
# ROS2 Development Skill ## When to Use This Skill - Building ROS2 packages, nodes, or component containers - Setting up colcon workspaces, ament_cmake, or ament_python packages - Writing CMakeLists.txt, package.xml, or setup.py for ROS2 - Defining custom messages, services, or actions - Writing Python launch files with conditional logic - Configuring DDS middleware and QoS profiles - Implementing lifecycle (managed) nodes - Working with Nav2, MoveIt2, or other ROS2 frameworks - Debugging DDS discovery, QoS mismatches, or build failures - Deploying ROS2 to production or embedded systems (micro-ROS) - Setting up CI/CD for ROS2 packages ## Core Architecture ### 1. Node Design Patterns **Basic Node (rclpy)**: ```python #!/usr/bin/env python3 import rclpy from rclpy.node import Node from rclpy.qos import QoSProfile, ReliabilityPolicy, HistoryPolicy from std_msgs.msg import String class PerceptionNode(Node): def __init__(self): super().__init__('perception_node') # 1. Declare parameters with types and descriptions self.declare_parameter('rate_hz', 30.0, descriptor=ParameterDescriptor( description='Processing rate in Hz', floating_point_range=[FloatingPointRange( from_value=1.0, to_value=120.0, step=0.0 )] )) self.declare_parameter('confidence_threshold', 0.7) self.declare_parameter('frame_id', 'camera_link') # 2. Read parameters