ローンチ記念公開記念につき現在すべて無料でご利用いただけます。クレジットカード登録は不要です
rosbagをPCDに変換

rosbagPCDに、オンラインで変換。

「rosbagをPCDに変換する」という言葉は、まったく異なる2つの作業を指すことがあります。すべてのPointCloud2フレームをディスクに書き出したい場合もあれば、記録全体から1つのマッピング済み点群がほしい場合もあります。どちらの作業を行っているかによって、選ぶべき方法は変わります。

「rosbagをPCDに変換する」の本当の意味

フレーム書き出しとマッピング済み出力は別物です。

フレーム書き出し

タイムスタンプ付きPCDのフォルダ1つ。

bag_to_pcdのようなローカルツールは1つのトピックを読み込み、タイムスタンプ付きPCDファイルのフォルダを書き出します。センサーストリームのデバッグやフィールドの確認、1フレームを別ツールに渡す用途には最適です。

マッピング済み出力

走行全体の点群マップ1つ。

本当に必要なのが点群マップであれば、LiDAR SLAMと、可能であればGNSSによるジオリファレンスが必要です。これはまさにLidarFlowが担う仕事です。

Register · Map
lowhigh
実際に得られるもの

rosbagからマッピング済み出力まで、ブラウザ4画面で完結します。

/velodyne_points · PointCloud2ok
/gnss/fix · NavSatFixok
/imu/data · Imuok
/tf_static · TFok
バッグを確認する

SLAMを実行する前に、LidarFlowが検出したトピックを一覧表示し、利用可能なものにフラグを立てます。

$ros2 run pcl_ros bag_to_pcd \
$ --ros-args -p bag_path:=bag/
$ -p topic_name:=/pc
$ -p output_directory:=pcds
CLIの手間を省く

ローカルでの変換にはROS環境、適切なpcl_rosビルド、正確なトピック名が必要です。ブラウザ経由ならその3つすべてが不要になります。

slam
実行状況を確認する

SLAM、レジストレーション、ジオリファレンスの各処理を、不透明なログではなくキューとワーカーの稼働状況として可視化します。

output.pcd248 MB
map.ply112 MB
trajectory.csv1.4 MB
metadata.json12 KB
マッピング済み成果物をダウンロードする

タイムスタンプ付きフレームのディレクトリではなく、1つのマッピング済み点群とPLY、軌跡、メタデータを取得できます。

現実的な3つの方法

ローカルCLI、独自Python、またはブラウザワークフロー。

1

上流のCLI

すでにROS環境があり、フレーム単位の書き出しだけが必要であれば、上流ツールを直接使うのが手軽です。

ros2 run pcl_ros bag_to_pcd --ros-args \
  -p bag_path:=rosbag2_2025_01_01/ \
  -p topic_name:=/pointcloud \
  -p output_directory:=pcds

タイムスタンプ付きフレーム書き出しには良い選択肢です。完全なマッピングパイプラインではありません。

2

Pythonスクリプト

独自のフィルタリング、フィールド変換、一度限りの後処理が必要であれば、小さなPythonスクリプトでより細かい制御ができます。

import rosbag
from sensor_msgs import point_cloud2

with rosbag.Bag("input.bag") as bag:
    for _, msg, t in bag.read_messages("/pc"):
        points = list(point_cloud2.read_points(msg))
        # write one PCD per frame

柔軟ですが、残りのパイプラインは自分で管理する必要があります。

3

LidarFlow

生フレームのフォルダではなくマッピング済み出力がほしい場合は、ブラウザから記録をアップロードするだけで、検証、SLAM、ジオリファレンス、成果物の配信までLidarFlowが処理します。

  • .mcapまたはROS1の.bagをアップロード
  • 実行前にトピックを検証
  • output.pcdmap.ply、メタデータ、軌跡データをダウンロード
面倒なつなぎ込みは不要
バッグをアップロードすれば、マッピング済みの点群が受信箱に届きます。
どちらを使うべきか

仕事全体を解決できる、最小限のツールを選びましょう。

ローカルの方法を使う場合

  • 1つのトピックをデバッグするためにフレーム単位のPCDだけが必要な場合。
  • SLAMを実行する前にタイムスタンプ、フィールド、フレームごとのカバレッジを確認したい場合。

LidarFlowを使う場合

  • タイムスタンプ付き書き出しのディレクトリではなく、1つのマッピング済み点群が必要な場合。
  • 実行状況、QA、ダウンロードを1つのブラウザ画面で完結させたい場合。
  • すべてのオペレーターのPCでROS、SLAM、ストレージのつなぎ込みを維持したくない場合。
次のステップ

PCDフレームのディレクトリではなく、マップが必要ですか?