はじめに
ROS1で取得されたrosbagファイル(.bag)をROS2のrosbagファイルに変換したいと思っていたところ、rosbagsというPythonパッケージを教えていただいたので試してみた。
rosbagsというのを使えばいいらしい https://t.co/eO8HpPjWCL
— porizou (@porizou1) December 12, 2022
インストール
pip install rosbags
実行
今回テスト用にcartographerの2D backpack demoのrosbagファイルを使用、以下でダウンロード
wget https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
.bagファイルをROS2のrosbag形式に変換する
rosbags-convert cartographer_paper_deutsches_museum.bag
rosbags-convertコマンドがないと言われたら.bashrc
に以下を追加
.bashrc
export PATH=$PATH:~/.local/bin
変換が終わるまで待つと.bagと同じ名前のディレクトリが作られる。
cartographer_paper_deutsches_museum
├── cartographer_paper_deutsches_museum.db3
└── metadata.yaml
ROS2で再生して見る
ros2 bag play cartographer_paper_deutsches_museum
Topic一覧を見ると変換前のトピックが全てあることが分かる
$ ros2 topic list
/events/read_split
/horizontal_laser_2d
/imu
/parameter_events
/rosout
/vertical_laser_2d
cartographerデモを実行、正常にマップが作成することができた。
ros2 launch cartographer_ros demo_backpack_2d.launch.py bag_filename:=cartographer_paper_deutsches_museum
参考