コマンド#
driving_log_replayer_v2はシナリオのパスを指定することで起動できる。
ros2 launch driving_log_replayer_v2 driving_log_replayer_v2.launch.py scenario_path:=${scenario_path} [output_dir:=${output_dir} dataset_dir:=${dataset_dir}]
wasim による driving_log_replayer_v2 実行#
TIER IV が提供しているAutoware Evaluatorへ アクセス権がある場合はwasimを利用することもできる。
使い方はドキュメントサイトを参照。
wasim は Autoware Evaluator からシナリオをダウンロードして実行するので、クラウド環境に登録済みのシナリオしか実行出来ない。
driving-log-replayer-v2-cli による driving_log_replayer_v2 実行#
cliを利用すると、1回のコマンド入力で複数のシナリオを連続で実行できます。
例えば以下のように、SCENARIO_ROOT配下に複数のシナリオがサブディレクトリ(SCENARIO_DIR1, SCENARIO_DIR2...)に置かれているとします。
SCENARIO_ROOT
├── SCENARIO_DIR1
│ ├── out # output directyory
│ └── SCENARIO_DIR1_DATASET0 # t4_dataset
│ │ ├── annotation
│ │ ├── data
│ │ ├── input_bag
│ │ ├── map
│ │ └── status.json
│ └── SCENARIO_DIR1_DATASET1 # t4_dataset
│ │ └── ...
│ │ ...
│ └── scenario.yaml # scenario fixed name
│
├── SCENARIO_DIR2
│ ├── out # output directyory
│ └── SCNERIO_DIR2_DATASET0 # t4_dataset
│ │ ├── annotation
│ │ ├── data
│ │ ├── input_bag
│ │ ├── map
│ │ └── status.json
│ └── scenario.yaml # scenario fixed name
...
上記のSCENARIO_ROOTにある複数シナリオをros2 launchコマンドで実行するには以下のように複数回のコマンドを叩く必要があります。
source ${AUTOWARE_ROOT}/install/setup.bash
ros2 launch driving_log_replayer_v2 driving_log_replayer_v2 scenario_path:=${SCENARIO_ROOT}/SCENARIO_DIR1/scenario.yaml dataset_index:=0 # 複数datasetある場合
ros2 launch driving_log_replayer_v2 driving_log_replayer_v2 scenario_path:=${SCENARIO_ROOT}/SCENARIO_DIR1/scenario.yaml dataset_index:=1 # 複数datasetある場合
ros2 launch driving_log_replayer_v2 driving_log_replayer_v2 scenario_path:=${SCENARIO_ROOT}/SCENARIO_DIR2/scenario.yaml
...
cliを使う場合は以下のコマンドで済みます
source ${AUTOWARE_ROOT}/install/setup.bash
dlr2 simulation run ${SCENARIO_ROOT}
cli installation#
以下のコマンドでcliをインストールできる。
# install
pipx install git+https://github.com/tier4/driving_log_replayer_v2.git
# upgrade
pipx upgrade driving-log-replayer-v2
# uninstall
pipx uninstall driving-log-replayer-v2
cli limitation#
cliでシナリオファイルを自動で探すため以下の制約がある。
- シナリオファイルの名前がscenario.yamlでなければならない
- SCENARIO_ROOTの下のサブディレクトリにscenario.yamlが存在しなければならない(サブサブディレクトリは不可)
cli output#
cliを利用すると、コマンド入力を短くするだけでなく出力されるファイルが増える。
以下が、cliを利用した場合の出力先の例である。 simulationの実行コマンドと、コンソールのログがファイルとして出力されている。 複数個のテストを連続で実行し、後でエラーが出たテストだけデバッグするといった場合に利用する。
OUTPUT_LATEST
├── 0 # Datasets[0]の結果
│ ├── result.jsonl
│ ├── result_archive_path
│ └── result_bag
│ ├── metadata.yaml
│ └── result_bag_0.db3
├── 1 # Datasets[1]の結果
│ ├── result.jsonl
│ ├── result_archive_path
│ └── result_bag
│ ├── metadata.yaml
│ └── result_bag_0.db3
├── console.log # コンソールに表示されているログをファイル化したもの
└── run.bash # simulationの実行コマンド
cli command#
dlr2
コマンドは、サブコマンドを持っています。
各コマンドに必要な引数は --help
オプションを指定すると表示できるます。
# dlr2 top level help
dlr2 --help
# show version
dlr2 --version
# show subcommand help
dlr2 subcommand --help
# show subsubcommand help
dlr2 subcommand subsubcommand --help
dlr2 simulation#
simulation に関するサブコマンド
# scenario_root配下のscenarioを連続で実行する
dlr2 simulation run ${scenario_root}
# launchのargumentを-lオプションで追加する。-lを複数記述できる。
# 以下のコマンドを実行して表示されるargumentが指定可能
# ros2 launch driving_log_replayer_v2 driving_log_replayer_v2.launch.py -s
# ros2 launch autoware_launch logging_simulator.launch.xml -s
# 例:bagの再生速度を0.5倍にして、rvizを無効にする
dl2 simulation run -l play_rate:=0.5 -l rviz:=false
# output_directory以下の結果ファイルのサマリーを表示する
dlr2 simulation show-result ${output_directory}