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 は長時間になる場合も多いかと思います。 本スクリプトにより開発が効率化されたら幸いです。