rosbag から自動走行モードの期間を抽出するスクリプト
はじめに
本記事では、自動運転AIチャレンジ 2024 の実機走行で取得した rosbag から自動走行モードの期間を抽出するスクリプトを公開します。
自動走行モードの期間の抽出スクリプト
スクリプトは Roborovsky-Racers/aic_tools リポジトリ に公開しています。
本スクリプトは vehicle/status/control_mode トピックを監視し、 値が AUTONOMOUSであるの期間の始点と終点を抽出して auto_period.csv に出力します。
auto_period.csv
| start | end |
|---|---|
| t_start_1 | t_end_1 |
| t_start_2 | t_end_2 |
| … | … |
実行手順
- リポジトリ aic_tools をクローン&ビルド
ros2 run aic_tools auto_mode_period_marker.pyを実行- 抽出対象の rosbag を play (
ros2 bag play BAG_FILE_NAMEなど) - rosbag の再生が完了したら auto_mode_period_marker を Ctrl+c で終了
- 最終的な出力:auto_period.csv が
ros2 runの実行ディレクトリに保存される
抽出期間を用いて rosbag を分割する方法
TIER IV さんが公開している ros2bag_extensions が便利です。
ros2 bag slice コマンドの start/end 時刻に対し、 auto_period.csv に出力された時刻を指定してください。
さいごに
実機による走行で取得される rosbag は長時間になる場合も多いかと思います。 本スクリプトにより開発が効率化されたら幸いです。
