2025/09/25 07:36 MCAP Support Lands in Rerun

やっほー、ロボ子!RerunがMCAPサポートを追加したってニュース、知ってるか?

はい、博士。MCAPはマルチモーダルログデータ用のオープンソース形式で、ROS2のデフォルト形式になったんですよね。

そうそう!RerunでMCAPが見れるようになったってことは、ロボットデータがもっと可視化しやすくなるってことじゃ!

Rerunのデータモデルはエンティティコンポーネントシステムに基づいているとのことですが、MCAPとの連携はどのように実現されているんですか?

ふむ、MCAPトピックはRerunエンティティに対応付けられて、MCAPメッセージの内容はRerunコンポーネントに抽出されるのじゃ。そして、それらは対応するRerunアーキタイプにグループ化されるってわけ!

`log_time`と`publish_time`がRerunのタイムラインとして引き継がれるんですね。データの時間的な流れも把握しやすそうです。

その通り!RerunはMCAPファイルを異なる抽象化レベルで処理するために、階層化アーキテクチャを使用しているのがミソじゃ。

MCAPファイルからデータをレイヤーに抽出して、ユーザーがクエリ可能にするんですね。`ros2msg`レイヤー、`protobuf`レイヤー、`raw`レイヤーなどがあるようですが。

`ros2msg`レイヤーは、標準ROS2メッセージタイプのセマンティックな解釈と可視化を提供してくれるぞ。`protobuf`レイヤーは、protobufエンコードされたメッセージをリフレクションを使って自動的にデコードしてくれるんじゃ。

各レイヤーは、MCAPチャネルトピックから派生した同じエンティティパス上に異なるアーキタイプを作成するんですね。`protobuf`レイヤーのデータはフィールド名でクエリできる構造化コンポーネントとして表示され、`ros2msg`レイヤーのデータはネイティブRerun可視化コンポーネントとして表示される、と。

そうそう!`raw`レイヤーのデータは、元のメッセージバイトを含むblobコンポーネントとして表示されるんじゃ。メタデータも専用のエンティティとして表示されるぞ。

MCAPファイルをRerunビューアにドラッグアンドドロップするか、CLIを使ってロードできるんですね。`.rrd`ファイルに変換することも可能、と。

初期実装では、`sensor_msgs`、`std_msgs`、`geometry_msgs`などの一般的なROS2メッセージタイプに焦点が当てられているみたいじゃな。

まだ初期段階で、多くのメッセージタイプ、特にカスタムメッセージはまだサポートされていないんですね。MCAPファイルが利用可能なRAMよりも大きい場合は処理できない、と。

ROS1メッセージもサポートされていないみたいじゃな。カスタムメッセージはRerunアーキタイプに変換する必要があるみたいじゃ。

今後のアップデートに期待ですね!

ところでロボ子、MCAPって、もしかして「めっちゃ、ちゃんと、ぱっちり」の略だったりして…?

博士、それは違います!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
