ProjectFortefibre
robot debug devkit 計画 (部共通)
Claude が sim の監視→デバッグ→再デプロイを自動で回す部共通基盤。watchdog は C++、プローブは ESP32 + zenoh-pico、Python は使い捨て解析のみ
要点: salamander (キャチロボ2026) と rc27 の sim デバッグを Claude に任せる閉ループ基盤を部共通で作る。一般論は [[agent-ros2-debug-loop]]、検査の設計は [[runtime-verification-layers]]。ここはプロジェクト固有の決定と実装順。
決定事項
| 論点 | 決定 | 理由 |
|---|---|---|
| 対象 | まず sim のみ | 実機の自動再デプロイは暴走経路になるので別枠 |
| watchdog 言語 | C++ (rclcpp) | 部の標準。常駐ノードは C++ の部内規約と一致。rclpy を選ぶ積極理由なし |
| プローブ | ESP32 + zenoh-pico (C / ESP-IDF) | [[esp32-zenoh-can-probe]]。FW 無改修で CAN タップ・UART・遠隔リセット |
| zenoh 面以降の観測系 | Rust 候補 | zenoh が Rust ネイティブ。バイナリ 1 個で配布可 |
| MCP サーバー | TypeScript or Rust | SDK が充実。zenoh / rosbridge 越しなら rclpy 不要 |
| Python | bag の事後解析スクリプトのみ | 使い捨て・pandas 依存の領域だけ合理性が立つ |
| 機体別 config | yaml 1 枚 (ns / URDF / frames / CAN 対応表 / key_topics) | 同一バイナリを config 差し替えで全機体に使い回す |
実装順
- watchdog skeleton (C++ / rclcpp)。sim の Layer 1 (不変条件) + Layer 3 (Isaac 真値 diff)
- ESP32 プローブ試作。基板 1 枚で CAN タップ + UART タップの PoC
- Zephyr FW 到来後 (2027 年前半見込み) に基板の診断フレームを追加し、プローブ経由で watchdog に合流
WebUI
rc27_webui_private に panel を追加する:
- Findings panel: watchdog の検出結果 (
/watchdog/findings, JSON String) を severity 色分けで時系列表示 - 真値 diff panel: sim 対象物ごとの推定 vs 真値の誤差
- agent status: Claude が調査中かどうか (
/watchdog/agent_status)
rosbridge の latched QoS の罠 (最初の購読者で QoS 固定) に注意。
適用先
- salamander: 缶の認識位置ズレ・gripper/status 未達など、2026-08 に手動でやったデバッグがそのまま Layer 1/3 の検査項目になる
- rc27: BR/TR の sim 検証。基板 FW 追加候補 (reboot 通知・hardfault log・MCU 温度・VBUS・CAN エラー) のうち半分はプローブ側で前倒し実装できる
背景
- Model Hardware Standard (Anthropic + HHMI Janelia、2026-08 発表) の「機器を標準ドライバ + 自然言語タグでネットワーク公開し、エージェントが個別実装なしに制御する」という発想に影響を受けた。機体 config yaml がその簡易版に相当する
- SWEST28 で知った zenoh-pico / Zephyr がプローブと FW の技術選定の根拠
関連
- [[agent-ros2-debug-loop]] — 閉ループの一般論と token 抑制
- [[runtime-verification-layers]] — 検査 4 層
- [[esp32-zenoh-can-probe]] — プローブの一般論
- [[rosbag-manifest-launch-wrapper]] — snapshot bag + manifest
最終更新: