notes
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_infobag の start/end time、size 等の全体情報
data_source__list_topicstopic 一覧 + schema
data_source__get_topic_schema特定 topic の型定義
data_source__read_topic_messagestopic のメッセージを時間範囲で読む
data_source__search_fieldsfield 名から topic を探す
data_source__list_eventsFoxglove の event marker
session__control_playback再生・停止・シーク
session__set_playback_range再生範囲設定
layout__set_panel_in_layoutFoxglove の layout を動的更新

ワークフロー#

Python アプローチとの比較#

項目Foxglove MCPPython script
セットアップFoxglove 起動 + bag openPython env + rosbag2_py
DeserializerFoxglove が担当自分で書く (rclpy)
対応 formatmcap / 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 効率と結果精度が上がる。

関連#

最終更新:

On this page