360 Secure SkillHub
360 安全技能中心

ROS 2 Skill

该 Skill 以 ros2_cli.py 为唯一入口,经 rclpy 提供话题、服务、动作、参数、节点、生命周期、控制器、诊断与系统健康检查等 ROS 2 操作的 JSON 接口,并含闭环移动、图像采集与 launch 会话管理;附带 Discord 图像发送脚本。依赖已 source 的 ROS 2 环境、python3 与 rclpy。

adityakamath
adityakamath
热度 65.63
最近更新 2026-05-18 12:10:13
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 工作流 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ros2-skill
Metadata
name
ros2-skill
description
Controls and monitors ROS 2 robots directly via rclpy CLI. Use for ANY ROS 2 robot task: topics (subscribe, publish, capture images, find by type), services (list, call), actions (list, send goals), parameters (get, set, presets), nodes, lifecycle management, controllers (ros2_control), diagnostics, battery, system health checks, and more. When in doubt, use this skill — it covers the full ROS 2 operation surface. Never tell the user you cannot do something ROS 2-related without checking this skill first.
license
Apache-2.0
compatibility
Requires python3, rclpy, and ROS 2 environment sourced
user-invokable
true
metadata
{"openclaw":{"emoji":"🤖","requires":{"bins":["python3","ros2"],"pip":["rclpy"]},"category":"robotics","tags":["ros2","robotics","rclpy"]},"author":["adityakamath","lpigeon"],"version":"1.0.5"}

ROS 2 Skill

Controls and monitors ROS 2 robots directly via rclpy. This skill provides a unified JSON interface for standard ROS 2 operations and agent-optimized workflows like closed-loop movement and image capture.

🚀 Capabilities

  • Introspection: List and find topics, nodes, services, and actions.
  • Data Access: Subscribe to any topic, capture camera images, and monitor diagnostics/battery.
  • Interactions: Call services and send action goals with feedback monitoring.
  • Movement: Agent-optimized publish-until (closed-loop with odom) and publish-sequence (timed).
  • Configuration: Get/set parameters, use presets, and manage lifecycle nodes.
  • System: Run ros2 doctor, manage launch files via tmux, and control ros2_control hardware.
  • Packages: List installed packages, resolve prefix paths, enumerate executables, and read package.xml manifests — no live graph required.

🏗️ Architecture

  • Entry Point: scripts/ros2_cli.py — this is the only file you should ever run directly.
  • Interface: Agent → ros2_cli.py → rclpy → ROS 2 Graph
  • Format: All commands output JSON. Errors contain {"error": "..."}.

⚠️ Internal modules — do not run directly. All scripts/ros2_*.py files other than ros2_cli.py are internal implementation modules, not standalone scripts. Running one directly prints an error to stderr and exits with code 1 — it performs no ROS operation. Always invoke commands through ros2_cli.py:

python3 scripts/ros2_cli.py <command> [subcommand] [args]
python3 scripts/ros2_cli.py --help   # list all commands

📚 Documentation Reference

To maintain performance and accuracy, this skill uses Progressive Disclosure:

  1. references/RULES.md (CRITICAL): Mandatory Agent Behaviour Rules (0–26), Safety Protocols, and Decision Frameworks. These are hard constraints — not guidelines. Read and follow before performing any robot action. Violation = immediate halt, self-correct, retry.
  2. references/COMMANDS.md: Full technical reference for all CLI subcommands, flags, and JSON payload structures.
  3. references/EXAMPLES.md: Practical walkthroughs for common tasks like "Move N meters" or "Capture Camera Image".
  4. references/CLI.md: Direct CLI usage reference for debugging and development. Not needed during normal agent operation.

🛠️ Setup & Preconditions

1. Source ROS 2

source /opt/ros/${ROS_DISTRO}/setup.bash

2. Verify Connection

Before any operation, verify the ROS 2 environment is active:

python3 scripts/ros2_cli.py version

3. Safety First

Always check for velocity limits and active nodes before issuing movement commands. If a command hangs or the robot moves unsafely, use:

python3 scripts/ros2_cli.py estop