自動運転向けシミュレータCARLAインストール

# 
本記事は「 [TTDC Advent Calendar 2024](https://qiita.com/advent-calendar/2024/ttdc) 」 13日目の記事です。


## はじめに

オープンソースで交通シミュレーションを行えるCARLAをインストールしてみました。<br>
実際にCARLAを利用するためには、ソフトウェアインストールを含むいくつかステップを踏む必要があります。<br>
本記事では、その手順の概要を紹介していきます。<br>

また、今回は社内で構築済みの環境に合わせて、バージョンは0.9.13をインスト―ルします。<br>
 
## CARLAとは
<!-- ##修正：など  -->
<!-- ##DR：UE略称混在 -->
<!-- ##DR：外部依存ツールは明示的にしなくてもよい -->
CARLAはオープンソースの自動運転向けシミュレータです。<br>
デフォルトでマップ・車両・センサーシミュレーションなどを備えた3D環境を提供しているので、
自動運転向けのシミュレーションだけでなく、様々な目的利用できます。<br>
CARLAはゲーム開発環境であるUnrealEngine(以降UE)をベースとして構築されており、都市や道路はOpenDriveで設定されています。<br>
APIはpythonとc++で提供されています。<br>
本記事では、Windowsへのインストール手順を紹介していますが、CARLA自体はLinuxにも対応しています。<br>
また、CARLAにはパッケージ版とソースコード版がありますが、開発向けのソースコード版のインストールを行っていきます。<br>
![carla.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/e9c3c0f5-b20b-82a9-52c1-74f82ff8e77f.png)
CARLA公式サイトより引用<br>
<!-- ## 目次
- [CARLAとは](#前提条件)
- [前提条件](#前提条件)
- [システム要件](#システム要件)
- [ソフトウェア要件](#ソフトウェア要件)
- [作業環境](#作業環境)
- [関連ソフトウェアのインストール](#関連ソフトウェアのインストール)
- [EpicGamesLauncherのインストール](#EpicGamesLauncherのインストール)
- [VisualStudio2019のインストール](#VisualStudio2019のインストール)

CARCAR- [VisualStudio2019からビルド](#VisualStudio2019からビルド)
- [環境変数設定](#環境変数設定) 
- [Ue4.26の保存](#Ue4.26の保存) 
- [carlaフォルダの保存](#carlaフォルダの保存) -->

## 前提
- 安定したインターネット環境があること<br>
- 充分な時間が確保できていること<br>
CARLA公式サイトによると終了までに4時間以上かかります。　
- GitHubアカウントがあること
- EpicGamesのアカウントがあること


## システム要件
以下CARLA公式サイトより引用
  
    x64System
    空きメモリ 165[GB](CARLA本体32[GB]、関連ソフトウェア133[GB])
    GPU 最低6[GB] 推奨8[GB](ただし機械学習は専用GPU推奨)
    TCPポート デフォルトで2000,2001が利用できる必要がある
 <!-- ## 
- DR：公式からの引用はその旨を記載 -->
## 作業環境


    OS Windows 10
    プロセッサ AMD Ryzen 7 5700X 8-Core Processor 3.40 GHz
    メモリ 128 GB
    GPU NVIDIA GeForce RTX 3060



## CARLAインストール
### 関連ソフトウェアのインストール
CARLAの実行にはいくつかの関連ソフトウェアが必要になるのでまずは、順番に関連ソフトウェアをインストールしていきます。<br>
インストール後はpathを通しておく必要があります。<br>

1. CMakeインストール<br>
   https://cmake.org/download/<br>
![cmake2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/4956c686-5764-7245-6ea0-a3218586d647.png)


    <!-- - cmake-3.31.1-windows-x86_64.msi<br>-->

1. Gitインストール<br>
   https://git-scm.com/downloads<br>
   <!-- - Git-2.47.1-64-bit.exe<br>-->

1. Makeインストール<br>
    https://gnuwin32.sourceforge.net/packages/make.htm<br>
![make.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/e502bc10-1786-882c-b535-4c8284c0f909.png)
   <!-- - make-3.81.exe<br>-->


    Makeは3.81のバージョンをインストールしてください。<br>
    公式サイトによると、それ以外のバージョンではCARLAのビルドが失敗する恐れがあるそうです。<br>
    以下のコマンドでMakeのバージョンを確認できます。<br>
    
    ```
    make --version
    ```

1. 7Zipインストール<br>
    https://www.7-zip.org/


1. Python3 x64インストール<br>
    x32バージョンをインストールすると競合が発生する可能性があるため、アンインストールが必要です。<br>
    https://www.python.org/downloads/<br>

1. Epic GamesアカウントとGitHubアカウントを連携<br>
以下のUEのサイトを参考に連携していきます<br>
https://www.unrealengine.com/en-US/ue-on-github<br>
![UE-githhub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/ffdb2b26-5af8-930c-145f-06902135d33e.png)

   <!--    初めてインターネットを使用してインストールする場合は以下実施の事<br>-->
    - Epic Gamesアカウントでサインイン<br>
![UE_signin.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/9f949f88-7644-fc0b-9d6d-893c0dff586e.png)

    - Epic GamesアカウントとGitHubアカウントと連携<br>
    　GitHubのアイコンの下のCONNECTをクリック<br>
       ![connectgithub2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/66685c15-b224-9151-b392-3d7d235dc51a.png)

    - 連携許可<br>
規約に問題がなければ承諾し「Authorize EpicGames」が表示される画面まで進み「Authorize EpicGames」をクリック<br>
![con_authorize.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/96646466-9dbb-cf13-5a85-02527b92421c.png)
![success.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/50837203-669d-aaec-fa55-5e13760c90eb.png)


    - 連携後にGitHubから送られてくるメール内容に問題がなければ「Join@EpicGames」をクリック<br>
ブラウザ上で連携完了画面が表示されていても、メールでの認証をしていないと以降の手順で行うgitからのクローンができませんので注意が必要です。<br>
<!--    成功画面の位置<br>-->



### Visual Studio の 2019インストール
Visual Studio 2022も専用に設定を変更すれば利用できるようですが、今回はVisual Studio 2019 Professional版を利用します<br>

1. Windowsスタートボタンをクリック<br>

1. すべてのアプリをクリック<br>

1. Visual Studio Installerをクリック<br>

1. 変更をクリック<br>

1. 「.NETデスクトップ開発」、「C++によるデスクトップ開発」にチェック<br>

1. 画面右側の「.NET Framework 4.6.2 development tools」をチェック<br>
    ![VS2019_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/0b5746a0-c2e5-6634-8390-613b66c73b95.png)





### CARLA用のUE4.26を取得
CARLA用のUE4.26をリポジトリからクローンします。<br>
cdコマンドでクローン先に移動してからクローンしてください。「C:\carla」にクローンする場合は以下のコマンドを実行します。<br>

```
 cd C:\carla
 git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git .
```

## bat実行
0.9.12以降のCARLAでは以下のbatを実行する必要があるそうです。

```
Setup.bat
GenerateProjectFiles.bat
```

## 「UE4.26」プロジェクトのビルド
 UE4.26フォルダ内の「UE4.sln」ファイルをVisual Studio2019で開く<br>

1. ビルドバーで「Development Editor」、「Win64」、「UnrealBuildTool」の項目を選択します。<br>
1. ソリューションエクスプローラーの「UE4」を右クリックして「ビルド」を選択します。<br>
時間がかかるので気長に待ちます。

### CARLAのインストール
CARLAのプロジェクトをリポジトリからクローンします。<br>
```
git clone https://github.com/carla-simulator/carla
```

### 環境変数の設定
1. UEの環境変数を設定<br>
CARLA用のUE4をインストールした場所を「UE4_ROOT」として設定します。<br>
![uepath.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/1abf55d1-e39e-d421-dbd8-bd2b70dd56d5.png)

    <br>
1. pythonAPIの環境変数を設定<br>
CARLAプロジェクトのeggファイルがある場所を「PYTHONPATH」として設定します。<br>
 ![pypath.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3947992/b0b7c3fe-a450-3305-015b-c5edbfae1215.png)





## CARLAのインストール
CARLAをインストールしていきます。<br>
<!-- ## - DR：cd?わからない人もいるのでコマンド記載するといい -->
<!-- ## - DR：やったほうがいい操作か、やらなくていい操作か一言 -->
1. x64 Native Tools Command Prompt for VS 2019を実行<br>
CARLAのコマンドはこのツールから実行する必要があります。<br>

1. CARLAインストールフォルダへ移動<br>
今回は「C:\carla\」にインストールしたので以下コマンドを実行<br>
    ```
    cd C:\carla
    ```
1. アセットを取得<br>
最新のアセットを取得するためにいかを実行します。
    ```
    Update.bat
    ```
1. Python API クライアントをコンパイル<br>
シミュレーションを操作するためのPython APIクライアントをコンパイルします。
    ```
    make PythonAPI
    ```
1. サーバーをコンパイル<br>
    このコマンドはCARLAを起動するたびに毎回実行する必要があります。
    ```
    make launch
    ```
1. シミュレーションを開始<br>
エディタ上の三角の形をした「プレイ」を実行でシミュレーションが開始されます。
<!-- ## 
- DR：ボタン押す作業はキャプチャがあるといい -->



## 終わりに
今回の記事は以上になります。<br>
最後まで読んでいただき、ありがとうございました。<br>
<!-- ## 12月中は引き続きTTDC Advent Calendarに沿ってTTDCメンバーからの情報発信をしていく予定です！   -->

最後になりますが、本記事の内容に誤りなどあれば、コメントにてご教授お願いいたします。<br>

## 参考
https://carla.readthedocs.io/en/0.9.13/build_windows/<br>

https://novnote.com/windows10-carla0_9_13-build/728/<br>

https://www.unrealengine.com/en-US/ue-on-github<br>