マップの追加

以下の流れに沿ってCARLAにマップを追加します。
詳細な手順を以降に記載します。

道路のメッシュの作成

RoadEditorを使用し地図を作成してください。
作成したらFile > Export OBJでエクスポートしてください。

ルートの定義

RoadEditorで自車両及び他車両が走行するルートを定義してください。
定義したらFile > Export Waypointでエクスポートしてください。

OpenDriveの作成

RoadEditorのFile > Saveで出力したファイルから、OpenDrive変換ツールを使用しOpenDriveを作成してください。

Unreal Engineにマップを追加

RoadEditorからエクスポートしたobjファイルをそのままCARLAにインポートするとスケールと座標系が異なるため、事前に修正を行う必要があります。
ここではBlenderを使用した修正方法について記載します。

  1. Blenderを起動し、File > Import > Wavefront (.obj)を選択します。
    RoadEditorからエクスポートしたobjファイルを選択しインポートします。
  2. アスファルト部分のメッシュと白線部分のメッシュに分かれているため、アスファルト部分のみ選択します。
  3. File > Export > FBX (.fbx)を選択します。
    Limit to Selected Objectsにチェックを入れます。
    Object TypesMeshのみ選択します。
    Export FBXをクリックします。
  4. 同様に白線部分もエクスポートします。

  5. CARLAにインポートします。
    インポート先のフォルダで右クリックしImport to /Game/...を選択します。

    Blenderからエクスポートしたfbxファイルを選択します。

    そのままImport Allをクリックします。
  6. 空のマップを用意します。
    /Content/Carla/Maps/BaseMap/BaseMap/Content/Garden/Mapsにドラッグアンドドロップし、Copy Hereを選択します。

    マップの名前を変更しRoadEditorのIDを付けます。

    マップの名前はOpenDriveのファイル名とも一致している必要があります。
  7. 空のマップを開き、道路のメッシュを配置します。

    LocationとRotationはすべて0にしてください。
  8. ScenarioExecutorのBlueprintを配置します。
    /Content/Garden/Blueprints/ScenarioExecutor/Garden_ScenarioExecutorをマップ上にドラッグアンドドロップして配置します。
  9. OpenDriveを格納します。
    ~/ScenarioExecutor/Content/Garden/Maps/OpenDriveにマップと同名のOpenDriveを格納します。

ウェイポイントの格納

  1. ウェイポイントを格納します。
    ~/ScenarioExecutor/waypointsにRoadEditorからエクスポートしたウェイポイント(.json)を格納してください。
  2. RoadEditorからエクスポートしたウェイポイント(.json)をAutoware用のウェイポイント(.csv)に変換します。
    以下のコマンドを実行します。
    cd ~/ScenarioExecutor/util
    python AutowareWaypointConvertor.py ファイル名 速度
    
    • ファイル名: RoadEditorからエクスポートしたウェイポイント(.json)
    • 速度: ウェイポイントの速度(km/h)
      速度を省略した場合、RoadEditorでルートを定義した際に設定した速度が使用されます。
  3. 生成されたウェイポイントファイル(.csv)を~/ScenarioExecutor/garden-autoware-agent/src/garden-autoware/config/waypointに格納します。