検査は簡単になりました。
MCAPは、従来の多くの記録方式に比べて検査、検証、ツール間の受け渡しが容易です。だからこそロボティクスのスタックで採用が広がっています。
MCAPは可搬性が高くインデックス化されており、従来の様々なバッグ形式より扱いやすいため、現代のロボティクスのワークフローで標準的な記録フォーマットになりつつあります。しかし、ツールのギャップは依然として存在します。記録を検査することはできても、それをマッピング済みの点群に変換できるとは限りません。
MCAPは、従来の多くの記録方式に比べて検査、検証、ツール間の受け渡しが容易です。だからこそロボティクスのスタックで採用が広がっています。
ファイルを手に入れても、難しい問いには答える必要があります。1つのトピックからの生フレームが必要なのか、それとも走行全体からのマッピング済み出力が必要なのか。
まずはファイルの概要を確認し、必要なトピックを確かめましょう。
mcap info demo.mcap mcap cat demo.mcap --topics /velodyne_points
Foxgloveはファイルを開いてデータストリームを視覚的に検査するのに優れています。
foxglove-studio /path/to/your/file.mcap
再生とデバッグには最適です。SLAMからマップを生成するサービスではありません。
MCAP内のROS1メッセージを検査またはフィルタリングしたい場合、上流のPython補助ツールですぐに実現できます。
from mcap_ros1.reader import read_ros1_messages
for msg in read_ros1_messages("demo.mcap"):
print(f"{msg.topic}: {msg.ros_msg}")まずはトピック、メッセージタイプ、時間の長さが想定どおりかを確認します。
LidarFlowがMCAPをスキャンし、その走行に対応するLiDAR、GNSS、IMU、TFのトピックを提案します。
GLIMがSLAM処理を実行します。GNSSが利用可能な場合はFlexCloudが結果を実世界の座標系に合わせます。
ブラウザ上でマッピング済み出力をプレビューし、PCD、PLY、メタデータをダウンロードします。
CLI、Foxglove、Pythonライブラリは「このファイルの中身を教えてほしい」という仕事には最適です。しかし「走行から1つのマッピング済み点群を渡してほしい」という仕事には、それだけでは答えになりません。
MCAPをアップロードすれば、プロダクトがトピックを検証し、LiDAR SLAMを実行し、GNSSがあればジオリファレンスを行い、ブラウザからマッピング済みの成果物をダウンロードできます。
処理はROSのディストリビューションではなくPointCloud2メッセージを読み取るため、どちらのスタックで 記録したMCAPでも現在ご利用いただけます。唯一の未対応がROS2の.db3で、変換による回避手順は ROS2 .db3対応状況 のページに記載しています。
関連ページ: rosbagからPCDへ変換、 LiDAR SLAMとは、 URDFビューア。
厳密には異なります。MCAPはタイムスタンプ付きメッセージを格納するフォーマット非依存のコンテナで、索引を内蔵しており、近年のROS2構成では既定の記録形式です。ROS1の.bagはROS専用の古いコンテナです。保持するメッセージ列は同種ですが、MCAPはシークと索引が高速で、ROSに依存しません。
不要です。LidarFlowはファイル内のsensor_msgs/PointCloud2メッセージを直接読み取るため、ローカルに何かを導入する必要はありません。ROS1とROS2のどちらで記録したMCAPでも扱えます。
sensor_msgs/PointCloud2を配信するLiDARトピックが1つ必要です。IMU、GNSS、TFのトピックは任意で、含まれていれば自動的に検出されます。IMUは動きの補償を、GNSSはWGS84へのジオリファレンスを可能にします。
テスト期間中は無料です。アカウントを作成し、記録データをアップロードして結果をダウンロードいただけます。クレジットカードの登録も不要です。