MCAP から CSV への変換 — ROS2 ロボットログをオンラインで無料 CSV に変換
ROS2 MCAP ロボットログファイルを CSV スプレッドシートに変換します。タイムスタンプと 16 進ペイロードでチャネルメッセージを抽出します。100% プライベートで、データが端末から離れることはありません。
Drop an MCAP file here
Convert ROS2 MCAP robot logs to CSV. 100% private.
MCAP ファイルはロボティクスのフライトレコーダーです。すべてのセンサー読み取り、すべての制御コマンド、すべての診断メッセージはタイムスタンプ付きで、後でリプレイと分析のために保存されます。形式はバイナリで構造化されています。レコードの並びで、それぞれがタイプを識別する opcode(ヘッダー、チャネル宣言、メッセージ、スキーマ定義、チャンクなど)、64 ビットのレコード長、レコード固有のペイロードを持ちます。MCAP から CSV へのツールはこのバイナリストリームを読み取り、最も一般的に必要とされるデータを CSV スプレッドシートに抽出します。チャネルメタデータ(トピック名、メッセージエンコーディング、スキーマ ID)、スキーマ定義、ログタイムスタンプと 16 進エンコードされたペイロード付きのメッセージ。各チャネルは、トピックごとの簡単な分析のために独自の CSV ブロックを取得します。
MCAP 形式は Foxglove によって ROS2 の記録標準として設計され、ROS1 bag 形式を置き換えました。これは古い形式に対していくつかの利点があります。自己記述的であり(スキーマがファイルに埋め込まれている)、複数の圧縮コーデックをサポートし、固定のマジックナンバー(\u0089MCAP0\u00d1\u001a)を持つ明確なバイナリ構造を持ち、C++、Python、TypeScript、Go に公式ライブラリを持つ言語に依存しません。ブラウザツールは、固定のバイナリ構造を活用して、実行時依存関係なしにレコードを解析します。すべてのブラウザに組み込まれている JavaScript の DataView と Uint8Array API だけです。
主なユースケースは次のとおりです。ロボットエンジニアがロボットでテストランを記録し、500 MB の MCAP ファイルを生成し、完全な ROS2 ツールチェーンを起動せずに特定のトピック——たとえば /imu 加速度計データ——を検査する必要があります。ブラウザツールはそのチャネルのメッセージを、タイムスタンプと 16 進ペイロードを持つ CSV として抽出します。エンジニアは Excel で CSV を開き、タイムスタンプ列をプロットし、データレートが正しいことを確認します。ファイルは FileReader API によってローカルで読み取られ、バイトは一切送信されません。完全な解凍とスキーマ対応のデコードには、mcap-cli と Foxglove Studio が次のレベルの機能を提供します。
使い方
MCAP ファイルをドロップする
アップロードエリアに `.mcap` ファイルをドラッグ&ドロップします。MCAP は ROS2(Robot Operating System 2)の標準的な記録形式で、ロボット動作中のセンサーデータ、制御コマンド、診断、ノード間通信をログに記録するために使用されます。
抽出されたデータを確認する
本ツールは MCAP バイナリ構造を解析し、チャネル(ROS2 トピック)、スキーマ(メッセージ定義)、メッセージを抽出します。各チャネルのメッセージは、ログタイムスタンプ、シーケンス番号、16 進エンコードされたペイロードデータを含む CSV ブロックとして出力されます。ファイルメタデータ(プロファイル、ライブラリ)とチャネル/スキーマの要約が含まれます。
CSV としてダウンロードする
出力を `.csv` ファイルとしてダウンロードします。Excel、Python pandas、または MATLAB にインポートして、可視化、統計分析、アーカイブにご利用ください。16 進ペイロードは、チャネルメタデータからのメッセージスキーマ定義を使って構造化データにデコードできます。
よくある質問
MCAP とは何ですか?
MCAP(エムキャップと発音)は、Foxglove が設計した ROS2 の標準的な記録とリプレイの形式です。オプションのチャンク圧縮付きで、ロボットトピックからのタイムスタンプ付きメッセージをバイナリ形式で保存します。ROS2 における ROS1 `.bag` 形式の後継であり、ロボットのテストと展開中にセンサーデータ、アクチュエータコマンド、診断を記録し、リプレイするために使用されます。
どのようなデータが抽出されますか?
ファイルヘッダー:MCAP プロファイルと生成ライブラリ。チャネル:ROS2 トピックごとにチャネル ID、トピック名、メッセージエンコーディング、リンクされたスキーマ ID。スキーマ:スキーマ名、エンコーディング、生のスキーマデータ。メッセージ:チャネルごとに、ログタイムスタンプ(エポックからのナノ秒)、メッセージシーケンス番号、ペイロードの最初の 64 バイトを 16 進数として。
ロボットデータがアップロードされることはありますか?
いいえ。すべての処理は FileReader API と JavaScript のバイト解析を使用して、完全にブラウザ内で実行されます。MCAP ファイルはローカルで読み取られ、どのサーバーにも送信されません。ページは読み込み後にオフラインでも動作します。ロボットログには、機密データ(独自のアルゴリズム、テスト結果、システム診断)が含まれることがあり、端末から離れるべきではありません。
チャンク圧縮はどうですか?
MCAP ファイルはストレージ効率のためにオプションでチャンク圧縮(LZ4 または ZSTD)を使用できます。本ツールは非圧縮レコードを解析し、チャンクレコード(opcode 0x06)を識別できますが、チャンクペイロードの解凍は行いません。圧縮されたチャンク内のメッセージは抽出されません。圧縮ファイルには mcap-cli または Foxglove Studio をご利用ください。
mcap-cli と Foxglove とどう違いますか?
mcap-cli(`pip install mcap`)は、解凍とスキーマ対応のメッセージデコードを含む完全なコマンドラインのイントロスペクションを提供します。Foxglove Studio は、プロット時系列、3D 可視化、点群レンダリングを備えた完全な GUI を提供します。ブラウザツールは軽量なギャップを埋めます。ROS2 ツールをインストールせずに Excel で素早く検査し、ロボット以外の同僚とデータのサブセットを共有するのに便利です。
制限事項
- チャンクの解凍なし圧縮されたチャンク(LZ4 または ZSTD)内に保存されたメッセージは抽出されません。本ツールはチャンクレコードを識別しますが、解凍は行いません。完全な解凍サポートには mcap-cli または Foxglove をご利用ください。
- スキーマ対応のデコードなしメッセージペイロードは生の 16 進文字列として出力されます。本ツールはスキーマ定義を使ってメッセージを型付きフィールド(例:float32、文字列、カスタム ROS2 メッセージタイプ)にデコードしません。型付きデコードには、ROS2 メッセージ定義を持つ mcap-cli をご利用ください。
- ROS1 bag のサポートなしROS1 `.bag` ファイルはカスタムレコードタイプを持つ SQLite データベースに基づくまったく異なる形式を使用します。本ツールは ROS2 で導入された MCAP 形式のみをサポートします。ROS1 bag ファイルには `rosbag` または `bagpy` をご利用ください。
プラットフォーム別の注意点
- macOS
- ROS2 ロボットからの MCAP ファイルは、ROS2 や mcap-cli をインストールせずにブラウザで検査できます。完全なデコードには、`pip install mcap` を実行し、`mcap info file.mcap && mcap cat file.mcap` を利用してください。
- Windows
- Windows 上の ROS2 は本ツールと互換性のある MCAP ファイルを生成します。完全な ROS2 ツールチェーンには、Chocolatey または ROS2 Windows バイナリ経由で ROS2 Humble 以降をインストールしてください。
- Linux
- `mcap-cli`(`pip install mcap`)が MCAP イントロスペクションの標準的な CLI ツールです。ROS2 の `ros2 bag info` も同様のメタデータを提供します。ブラウザツールは、ターミナルなしでのクイック検査や、ロボット以外のチームメンバーとのデータ共有に便利です。
- Web
- 完全にブラウザ内で動作します。MCAP データがどのサーバーにも送信されることはありません。ロボットログファイルには、独自のセンサー構成、チューニングパラメータ、テストデータが含まれることがあり、端末から離れないようにすべきです。