rosbagでのデバッグは逆再生とかできないので大昔にOpenHRPを使っていた時と比べて不便だなと思っていたのですが、最近見かけたfoxgloveというので逆再生ができるようだったのでインストールしてみました。以前からあったと思いますが初めて知りました。。。
下記のコマンドでインストール。Ubuntu20.04で試しています。
$ sudo snap install foxglove-studio
インストールが終わったら下記コマンドで立ち上げることができる。
$ foxglove-studio
立ち上げ直後の画面は下記。再生するbagファイルがない場合は、bagファイルを保存してから、Open local fileを押して保存したファイルを開けるとGUIでbagファイルの再生一時停止巻き戻しができる。
rosbag2を保存するときにオプションで--strage mcapを付けると良いということを知ったのでインストールします。
下記コマンドでインストール。
$ sudo apt install ros-humble-rosbag2-storage-mcap
MCAPを使うメリットは。。。
書き出しのパフォーマンスがよい
記録時にデータが破損した場合の復旧が容易
ファイル全体をスキャンせずにデータを抽出できる
デコードのために余分なパッケージ依存がない
とのこと。
使い方は下記。
$ ros2 bag record -a --storage mcap
--storageにmcapを指定するだけ。--storageは-sだけでも良い。下記のコマンドでも実行可能。
$ ros2 bag recoard -a -s mcap
記録を停止するときは、ctl+cボタンでプログラムを停止すればよい。
コマンドを実行したディレクトリに「rosbag2_****_**_**_**_**_**」というディレクトリが生成されているはず。
**のところは保存した年月日時間の数字が入っている。
移動ロボットのシミュレーションのデータを試しに開いてみた結果を下記に示す。
上の写真の真ん中の映像が出ている右上のギアのマークを押すと左のウィンドウが「3D panel settings」に変わるので、そこで表示したいTopicを選ぶことができる。いろいろな機能がありそうなのですが全然試していないので、本家のHPを見てください。
下図はTopicsから/mapの目を閉じているマークをクリックして表示させた状態。