Communityコーディング&開発github.com

wzyn20051216/ros-robotics-skill

ROS 1 / ROS 2 机器人开发、迁移与联調用スキル。catkin/catkin_tools、colcon/ament、package.xml、CMakeLists.txt、launch、URDF/Xacro、RViz、TF、Navigation2、ros2_control、シリアル/CAN、MCU と micro-ROS など、一般的なエンジニアリングシナリオをカバーします。

ros-robotics-skill とは?

このスキル(ros-robotics-skill)は、ROS 1 および ROS 2 のロボット開発、移行、デバッグを専門に行うための包括的なアシスタントです。ユーザーが新しいパッケージの作成、ビルド、テスト、デバッグ、あるいは既存のコードベースを ROS 1 から ROS 2 へ移行する際に、ワークスペースの検出と一貫性チェックを自動で行い、適切なリファレンスドキュメントをロードします。また、URDF/Xacro モデル、TF 座標系、Navigation2 ナビゲーション、ros2_control 制御、micro-ROS 組み込みシステム、Gazebo シミュレーション、Docker コンテナ化環境、SLAM マッピング、MoveIt 2 運動計画、DDS/QoS ネットワーク設定、CI/CD パイプライン、Foxglove Studio 可視化など、ロボット開発におけるあらゆる主要トピックをカバーしています。このスキルは、「まずビルドシステムを特定してからコードを変更する」「package.xml と CMakeLists.txt の整合性を最初に確認する」「TF、タイムスタンプ、フレーム、単位を疑い、その後でアルゴリズムを疑う」といった重要な原則に従い、反パターン(同じパッケージで catkin と ament を混在させる、CMakeLists.txt だけを変更して package.xml を更新しないなど)を避けるようユーザーを導きます。出力は常に、ワークスペースとパッケージタイプの判断、主要な根拠と前提、変更点とその理由、最小限のビルド/テスト/実行コマンド、リスクと回帰チェックポイントの順で提供され、体系的なデバッグを支援します。

対応~Claude Code~Codex CLI~Cursor
npx skills add wzyn20051216/ros-robotics-skill

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ROS Robotics

使用するタイミング

ユーザーが次のいずれかのトピックに関する要求を行った場合に、このスキルを使用します。

  • catkin_ws、colcon_ws、src/CMakeLists.txt、package.xml、setup.py
  • ROS 1 / ROS 2 パッケージの新規作成、移植、ビルド、テスト、デバッグ
  • launch / launch.py、パラメータ YAML、URDF/Xacro、RViz、TF
  • topic / service / action / msg / srv / QoS
  • 車台、IMU、LiDAR、カメラ、ローカリゼーション、SLAM、Navigation2、ros2_control
  • Gazebo / Ignition シミュレーション、センサーシミュレーション、ros_gz_bridge
  • Docker コンテナ化 ROS 開発、docker-compose マルチノードオーケストレーション
  • Lifecycle ノード、rclcpp_components コンポーネント化、プロセス内通信
  • rosbag2 録音再生、mcap、オフライン診断
  • SLAM マッピング(Cartographer、SLAM Toolbox、ORB-SLAM)
  • DDS / QoS 設定、ROS_DOMAIN_ID、RMW 選択、マルチマシンネットワーク
  • カスタム msg / srv / action インターフェース定義と生成
  • マルチロボットシステム、名前空間分離、マシン間通信
  • MoveIt 2 運動計画、SRDF、運動学プラグイン
  • ROS 2 CI/CD(GitHub Actions、colcon test、ament_lint)
  • Foxglove Studio / PlotJuggler データ可視化とオフライン分析
  • MCU / RTOS / UART / CAN / micro-ROS 協調開発

最初に行うこと

1. ワークスペースを特定する

python scripts/detect_ros_workspace.py <workspace-path>

2. 整合性チェックを実行する

python scripts/check_ros_workspace_consistency.py <workspace-path>

3. 問題に応じて必要な最小限のドキュメントを読み込む

  • ROS 1:references/ros1-catkin.md
  • ROS 2:references/ros2-colcon.md
  • ハイブリッド / 移行:references/interop-and-migration.md
  • モデル / TF:references/robot-description-and-tf.md
  • ナビゲーション:references/navigation2.md
  • 制御:references/ros2-control.md
  • 組み込み:references/micro-ros-and-embedded.md
  • シミュレーション:references/gazebo-simulation.md
  • Lifecycle / コンポーネント:references/lifecycle-and-components.md
  • DDS / QoS / ネットワーク:references/dds-qos-networking.md
  • 録音再生 / 診断:references/rosbag-diagnostics.md
  • SLAM / マッピング:references/slam-mapping.md
  • Docker:references/docker-ros.md
  • カスタムインターフェース:references/custom-interfaces.md
  • マルチロボット:references/multi-robot.md
  • MoveIt 2:references/moveit2.md
  • CI/CD:references/ros2-cicd.md
  • 可視化:references/foxglove-visualization.md
  • トラブルシューティング:references/debug-playbooks.md
  • レビュー:references/review-checklist.md

必ず守るべき原則

  • ビルドシステムを特定してからコードを変更する
  • package.xml / CMakeLists.txt の整合性を最初に確認し、その後リファクタリングを検討する
  • TF、タイムスタンプ、フレーム、単位を最初に確認し、その後でアルゴリズムを疑う
  • 証拠(ビルド出力、topic、TF、パラメータ、ログ)を確認可能にしてから修正する
  • ROS 1 → ROS 2 は、まずブリッジまたは段階的に移行し、一気に書き換えない
  • MCU / micro-ROS は、本当に ROS グラフに参加させる必要があるかを先に判断する

一般的なタスクの処理方法

パッケージの新規作成または修正

  • 最初にパッケージタイプを判定する:catkin、ament_cmake、ament_python
  • 最初に依存関係の宣言を追加し、次にビルドロジック、最後にインストールルールを追加する
  • カスタム msg / srv / action は、生成順序と依存関係の循環を優先して確認する(詳細は references/custom-interfaces.md を参照)

ビルド失敗

  • 最初に rosdep を実行する
  • 次に package.xml とビルドスクリプトの整合性を確認する
  • 環境が正しく source されているかを確認する
  • システム依存関係、ABI、ディストリビューションの互換性を確認する

実行は正常だがロボットの動作がおかしい

  • 最初に launch、namespace、remap、パラメータを確認する
  • 次に topic 名、周波数、タイムスタンプ、単位、frame_id を確認する
  • TF が単一ルートか、静的/動的が明確に分離されているかを確認する
  • 最後にアルゴリズム自体を疑う

Nav2 / ros2_control

  • Navigation2 は、/cmd_vel リンク、ローカリゼーション品質、制御周波数、車台の単位を優先的に確認する
  • ros2_control は、ハードウェアインターフェースタイプ、コントローラ YAML、読み書きサイクル、アクティブ状態を優先的に確認する

MCU / micro-ROS

  • まず Linux 側のブリッジノードが十分かどうかを判断する
  • MCU を ROS 2 グラフに参加させる必要が本当にある場合にのみ、micro-ROS を検討する
  • バイトオーダー、チェックサム、タイムアウト、再接続、時刻ソース、切断保護を厳密に確認する

アンチパターン

  • 同じパッケージに catkin と ament を混在させる
  • CMakeLists.txt だけを変更して package.xml を更新しない
  • TF、タイムスタンプ、単位、座標軸の定義を無視する
  • ドライバ、プロトコル、フィルタリング、制御、診断をすべて1つの大きなノードに詰め込む
  • ROS 1 → ROS 2 移行時に API の置換だけでシステム検証を行わない

出力要件

このスキルを使用してタスクを処理する場合、以下の順序で出力することを優先します。

  1. 現在のワークスペースとパッケージタイプの判断
  2. 主要な根拠と前提
  3. 変更点とその理由
  4. 最小限のビルド / テスト / 実行コマンド
  5. リスクポイントと回帰チェックポイント

関連スキル