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>
のようにする。
-O
or--output-name
: hoge.bagで保存で保存される
-o
or--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ファイルに再生する記述を書いておくと便利->こちらを参照