0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROS2のbagファイルから指定したトピックをまとめてcsvへ変換

Last updated at Posted at 2024-12-14

概要

ROS 2を用いたシミュレーションや実験のbagデータから,論文・レポート等向けにMATLAB等を用いた綺麗な描画を行うためには,csv等の形式へデータを変換できると便利です.

コマンドros2 topic echo /topic --csv > output.csvで取得することも出来ますが,複数のトピックを変換したい時などは少し不便です.

そこで,rosbagsを用いて実装した,事前に指定しておいた複数のトピックデータをまとめてcsvファイルへ変換するリポジトリを紹介します.
https://github.com/toshi67026/ros2bag2csv

特徴

  • 複数のトピックデータを一括変換
  • YAMLファイルによる変換対象管理
  • トピックごとで個別の出力方法を実装可能(QuaternionはEuler角へ内部で変換してから出力したい等)

使用方法

基本的な使い方は以下の通りです.依存ライブラリのインストール方法など詳細はgithubを参照してください.

python3 ros2bag2csv.py [-t target_topic.yaml] {rosbag_file_dir}

変換対象のトピック設定の例

変換したいトピックは以下のようなYAMLファイルで指定します

- /float
- /ns1/vel
- /ns2/array

サポートされているメッセージタイプ

現在,サンプルとして以下のメッセージタイプが変換可能です.

  • std_msgs
    • Bool
    • Float32
    • Float32MultiArray
  • geometry_msgs
    • Point
    • Pose
    • PoseStamped
    • Quaternion
    • Twist
    • Vector3

カスタムメッセージを含む他のメッセージタイプは,個別に変換関数を実装することで追加可能です.MultiArrayのようなトピックは出力先がcsvのため,データの次元に制約があります.

データの活用

変換したcsvデータは空白が多く含まれるスパースな形式であることに注意が必要ですが,MATLABなどの解析ソフトを使えば簡単に利用できます.リポジトリにcsv_visualize.mというMATLABのサンプルスクリプトを用意しています.

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?