シナリオを実行するためのシェルスクリプト~/ScenarioExecutor/run.shについて説明します。
#!/bin/bash
source setup.sh
python ScenarioExecutor.py シナリオ(.json) ウェイポイント(.json) [autoware]
setup.shはCARLAのPythonAPIライブラリのパスを設定しています。
ScenarioExecutor.pyの引数は以下の通りです。
autowareを指定するとAutowareとros-bridgeを起動します。何も指定しない場合はCARLAの~/carla/PythonAPI/examples/manual_control.pyを起動します。autowareを指定した場合、自車両はAutowareによって自動でコントロールされ、指定しない場合はmanual_control.pyを使用して手動で自車両をコントロールします。3番目の引数にautowareを指定した場合、ScenarioExecutor.pyはプログラム内で~/ScenarioExecutor/garden-autoware-agent/src/garden-autoware/launch/garden-autoware.shを呼び出します。
garden-autoware.sh以降は下記の順序で呼び出しが行われます。
ScenarioExecutor.py
└── garden-autoware.sh $1 $2 $3
├── autoware.sh $1 $2 $3
│ └── garden-autoware.launch $1 $2 $3
└── rviz.launch
$1 $2 $3は引数です。それぞれ以下の値がセットされます。
town:=マップ名map_idがセットされます。spawn_point:=自車両のスポーン位置scenario:opening_scene:ego:start_position:wp_idとwp_idxで指定されたウェイポイントからx,y,z,roll,pitch,yawを取得してセットされます。waypoint:=Autoware用のウェイポイント~/ScenarioExecutor/garden-autoware-agent/src/garden-autoware/config/waypointに格納されているcsvファイルのパスがセットされます。scenario:opening_scene:ego:start_position:wp_idから取得します。garden-autoware.launch内で、Autowareとros-bridgeのノード及び自己位置推定ノードを起動しています。rviz.launchはRVizの起動を行います。