rosbagとは
rosbagを使えば配信されているメッセージを記録することができる
- デバッグのときに便利
- 毎回本物のロボットを使う必要がなくなる
データの記録
メッセージの記録にはrecord機能を使う
$ rosbag record <topic name1> <topic name2>...
で指定したトピックに送られたメッセージが記録できる。
この時、ファイル名は実行時の時間に対応するYYYY_MM_DD_HH_mm_ss.bagという形式で保存される
- ファイル名を変えたいとき
$ rosbag record -O hoge.bag <topic name>
$ rosbag record -o hoge <topic name>
のようにする。
-Oor--output-name: hoge.bagで保存で保存される
-oor--output-prefix: hoge_YYY_MM_DD_HH_mm_ss.bagで保存される
- すべてのトピックを記録したいときには
-aオプションをつける
$ rosbag record -a
- 正規表現でマッチするトピックの記録には
-eオプションをつける
# /tfと/tf_staticなどを記録
$ rosbag record -e "/tf.*"
# sensorsという名前を含んだトピックを記録
$ rosbag record -e "(.*)sensors(.*)"
- 記録する時間を指定する場合は
-dオプションをつける
# /tfトピックを30s記録
$ rosbag record -d=20 /tf
その他にもオプションがあるのでこちらを参照
記録したデータの再生
再生する場合は、rosbag playコマンドを使えばOK
$ rosbag play hoge.bag
launchファイルに再生する記述を書いておくと便利->こちらを参照