2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

センサーデータをCSVファイルに保存する方法

Last updated at Posted at 2020-03-10

今日はセンサーデータをCSVファイルに保存する方法についてお話します.

ROSは情報を送信したり受信する際,トピック(Topic)というものを使います.

あまり慣れない概念だと思いますが,

そんなものがあるんだぁ〜ぐらいの感覚で大丈夫だと思います.

具体的な説明が欲しい方は,ROSの公式ホームページに紹介されてますので,参考にしてみてください.

[http://wiki.ros.org/ja/ROS/Tutorials/UnderstandingTopics]


現在送受信が行われているトピックを確認するには,次のコマンドを入力してください.

$ rostopic list

分かりやすいコマンドですね.

ROSのTopicをリスト化すると覚えればいいと思います.

すると,トピックのリストがばぁーっと出てきます.

このあとからは,ロボットの開発でよく使われる/scanというトピックを例にして説明していきます.


* ROS用のデータ保存

ROSには専用のデータ保存形式があり,rosbagというコマンドを使います.

例えば,/scanというトピックの時系列データを保存したい場合,次のように入力します.

$ rosbag record /scan -O data.bag

rosbag + record + トピック名 + -O + 保存ファイル名.bag

という感じですね.

他のトピックを保存したい場合は,そのトピック名を入れればいいし,複数のトピック名を入れることもできます.

もし,すべてのトピックを保存したいときは,次のように入力してください.

$ rosbag record -a -O data.bag

-a オプションを使うことで,特定のトピックではなく,全トピックを保存することができます.

ただし,場合によってはものすごいデータ量になることがあるので,気をつけてください!


* ROS用のデータからCSV形式に変換

次には,bagファイル形式からcsvファイル形式に変換する方法について説明します.

データを扱うときに一番使われるファイル形式はcsvだと思います.

bagファイルに記録されたデータをcsvに変換するには,次のコマンドを入力してください.

$ rostopic echo -b data.bag -p /scan > data.csv

bagファイルに記録されているトピックの内,csvファイルに抽出したいトピック名を指定すればいいです.

すると,同じフォルダの中にcsvファイルができてると思います.


* おわりに

今日はROSを使ってセンサーデータを保存し,CSVファイルに変換する方法について説明しました.

よく分からないところや,うまくいかない場合がありましたらコメント残してください!

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?