Tools
Foxglove MCP 経由の bag 解析
Foxglove MCP server の tools を LLM から呼んで bag データを分析するパターン。探索的・会話ベースの分析に強い、CI 自動化には Python script が向く
要点: Foxglove を bag reader として使い、LLM (Claude 等) が MCP tool 経由で bag データを query → 計算 → レポートするパターン。Python での rosbag2_py 直読みが要らず、Foxglove の deserializer と可視化を借りられる。探索的分析に強い、CI 自動化には従来の Python script が向く。
使える MCP tools (Foxglove MCP server)
| Tool | 用途 |
|---|---|
data_source__get_data_source_info | bag の start/end time、size 等の全体情報 |
data_source__list_topics | topic 一覧 + schema |
data_source__get_topic_schema | 特定 topic の型定義 |
data_source__read_topic_messages | topic のメッセージを時間範囲で読む |
data_source__search_fields | field 名から topic を探す |
data_source__list_events | Foxglove の event marker |
session__control_playback | 再生・停止・シーク |
session__set_playback_range | 再生範囲設定 |
layout__set_panel_in_layout | Foxglove の layout を動的更新 |
ワークフロー
Python アプローチとの比較
| 項目 | Foxglove MCP | Python script |
|---|---|---|
| セットアップ | Foxglove 起動 + bag open | Python env + rosbag2_py |
| Deserializer | Foxglove が担当 | 自分で書く (rclpy) |
| 対応 format | mcap / rosbag1 / rosbag2 | 主に rosbag2 |
| インタラクティブ性 | 会話しながら | script 再実行 |
| 大量集計 | token 消費大 | 効率的 |
| ワンショット分析 | 得意 | 準備コスト大 |
| CI 自動化 | 不向き (LLM 呼び出し要) | 得意 |
| 見ながら分析 | Foxglove UI 併用 | 別途 plot 要 |
使い分け
| 状況 | ツール |
|---|---|
| 探索的分析 (何が起きたか掘る) | Foxglove MCP + LLM |
| 反復・自動化 (毎回同じ分析) | Python script + CI |
| 深い統計処理 (アルゴリズム重い) | Python (numpy/scipy) |
| 共同で見る (画面共有) | Foxglove UI + MCP |
注意点
- token コスト:
read_topic_messagesは raw メッセージが返るので、時間範囲や field 絞りが必須 - Foxglove 側の state: LLM が read してる bag と Foxglove UI が同じ bag を見てる状態を維持する
- サイズ: 極端に大きい bag は Foxglove 側で開けないことがある → 事前に mcap 化 or 分割
依頼テンプレート
LLM への依頼はこの形が効きやすい:
Foxglove で開いてる bag の /A と /B を、
[時間範囲: 全体 / 10 秒間隔 / 特定 event 前後] でサンプリングして、
[分析: 追従誤差 / FFT / 統計 / 相関] を出して。
結果は project/rc27/bag-analysis-{date}-{topic}.md に書いて。具体度を上げるほど token 効率と結果精度が上がる。
関連
最終更新: