ros2-corelisted
Install: claude install-skill Leehyunbin0131/claude-ros2-skills
# ROS 2 Jazzy (Ubuntu 24.04 LTS) Core Development Instructions
## 1. Documentation Entry Points
Navigate within these rather than guessing deep URLs.
| For | Entry point |
| :--- | :--- |
| Jazzy concepts, tutorials, how-to guides | `https://docs.ros.org/en/jazzy/` |
| `rclcpp` C++ API index | `https://docs.ros.org/en/jazzy/p/rclcpp/` |
| `rclpy` Python API index | `https://docs.ros.org/en/jazzy/p/rclpy/` |
| Robot bringup: TF tree, odometry, EKF fusion | `https://docs.nav2.org/setup_guides/index.html` |
## 2. Symbols to Verify There (never write these from memory)
- **TF2** — `tf2_ros::TransformBroadcaster`, `tf2_ros::StaticTransformBroadcaster`, `tf2_ros::Buffer`, `tf2_ros::TransformListener`, `canTransform()`, `lookupTransform()`, `tf2::TimePointZero`, `tf2::ExtrapolationException`; message `geometry_msgs/msg/TransformStamped`. Frame conventions are REP 105 (`map` -> `odom` -> `base_link` -> `base_footprint` -> sensor frames) — see `ros2-troubleshooting`.
- **QoS** — `rclcpp::SensorDataQoS()` / `rclpy.qos.qos_profile_sensor_data` on sensor topics; inspect real endpoint QoS with `ros2 topic info <topic> -v`. The depth-only default (`create_subscription(..., 10)`) is RELIABLE + **VOLATILE** — not TRANSIENT_LOCAL; check the enum rather than asserting it.
- **Packaging & build wiring** — see `ros2-package`.
## 3. Local System Inspection & Interfaces (Ground Truth)
- **Message Definition Inspection**: `ros2 interface show <interface_name>` (e.g. `ros2 interface show nav_m