LoginSignup
3
4

More than 5 years have passed since last update.

ROSBAGから、SLAMのTFの結果をcsvにまとめる。

Last updated at Posted at 2017-08-29

目的

ROSのTFからSLAM(gmapping/cartographerなど)の自己位置推定結果を受信する。
ROSのTFからSLAMの結果を受信するよりも良い方法があったため、ここに記載する。

実装

rostopicコマンドを使う

$ rostopic echo /tf -p -b 2017-08-30-00-00-00.bag > tf_`date "+%Y%m%d_%H%M%S"`.csv

引数
-p matlab/octaveライクなplotting formatで出力する
-b bag fileを指定する。

結果:

tf_20170830_000000.csvのような、テキストファイルが出力される。

time,field.transforms0.header.seq,field.transforms0.header.stamp,field.transforms0.header.frame_id,field.transforms0.child_frame_id,field.transforms0.transform.translation.x,field.transforms0.transform.translation.y,field.transforms0.transform.translation.z,field.transforms0.transform.rotation.x,field.transforms0.transform.rotation.y,field.transforms0.transform.rotation.z,field.transforms0.transform.rotation.w
1503488850592379207,0,1503488850590262955,odom,base_footprint,0.0,-0.0,0.0,0.0,0.0,-0.0,1.0
1503488850615588518,0,1503488850615016206,base_link,base_scan,-0.25,0.0,1.53,-0.0906412823601,0.158088607453,0.489071347702,0.852995525769
1503488850624114299,0,1503488850623585564,odom,base_footprint,0.0,-0.0,0.0,0.0,0.0,-0.0,1.0
1503488850636991246,0,1503488850736799565,base_footprint,base_link,0.0,0.0,0.1,0.0,0.0,0.0,1.0

LibreOffice/Excelなどで
field.transforms0.header.frame_idと
field.transforms0.child_frame_idで
抽出したいtfをフィルタリングし、
field.transforms0.transform.translation.x、
field.transforms0.transform.translation.y
で散布図を描くとSLAMの結果が可視化できる。

3
4
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
3
4