ros2-microroslisted
Install: claude install-skill Leehyunbin0131/claude-ros2-skills
# micro-ROS Instructions (Ubuntu 24.04 LTS & ROS 2 Jazzy)
> **Unverified.** Every other domain skill in this pack was measured against a
> baseline agent and deleted when the agent reached the same result without it.
> This one has no ladder — running it needs an MCU and an agent connection that
> are not available here — so it survives untested, not because it earned a
> place. Treat its contents as a starting point to check, not as ground truth.
## 1. Architecture
micro-ROS connects constrained MCUs (STM32, ESP32, FreeRTOS, Zephyr) to the ROS 2 DDS graph via `micro_ros_agent` + the `rclc` client library over Micro XRCE-DDS. Static memory pools (`rmw_microxrcedds`) give zero steady-state heap allocation when `RMW_UXRCE_ALLOW_DYNAMIC_ALLOCATIONS=OFF`.
## 2. Documentation Entry Points
| For | Entry point |
| :--- | :--- |
| Tutorials, supported boards, transports | `https://micro.ros.org/` |
| Firmware build system (`micro_ros_setup`) | `https://github.com/micro-ROS/micro_ros_setup` |
| `rclc` executor / node API source | `https://github.com/ros2/rclc` |
## 3. Key Concepts & Patterns
### A. Embedded Client Node Setup (`rclc` in C)
```c
#include <rcl/rcl.h>
#include <rclc/rclc.h>
#include <rclc/executor.h>
#include <std_msgs/msg/int32.h>
int main(void) {
rcl_allocator_t allocator = rcl_get_default_allocator();
rclc_support_t support = {0};
rcl_node_t node = {0};
rcl_publisher_t pub = {0};
rclc_support_init(&support, 0, NULL, &allocator);
rclc_node_init_defa