目次
Carlaで遊びたい
先日メインのPCを買い替え、潤沢なストレージ(1TB SSD)と多めのメモリ(64GB)、GPU(RTX3060)が使える環境になったので、それを活かして何かできないか考えました。
もともとディープラーニングの計算をガリガリ回せる最低限の環境をと思って構成したわけですが、せっかく自動運転関係の仕事をしているのに、有名なOSSシミュレータを触っていないなあと思ったので、Carlaでも入れてみることにしました。
これがまたなかなかハマった上に、日本語の情報が古いものが多く、数日を要したので現時点(2020/02/02)で最新版のCarla ver.0.9.13 のWindowsへのインストール方法(ソースファイルからのビルド方法)をまとめます。
これから作業しようと思っている人の助けになれば幸いです。では早速見ていきましょう。
※ 利用するだけならバイナリが配布されているので、それを用いれば簡単と思われます。クライアントAPI以外の機能を盛り込みたい、あるいは無駄に苦労したい方は参考にどうぞ!
【参考: 筆者のPC環境(ここまでのスペックはなくてもOK)】
OS | Windows 10 |
---|---|
プロセッサ | Intel Core i7-12700 |
GPU | GeForce RTX3060 |
RAM | 64GB |
インストール作業手順(概要)
主に以下のサイトを参考に実施しました。
が、2020/2現在、その通りにやってもうまくいかない部分があるので、一連の流れと注意点をまとめます。
【公式ドキュメント】
【参考サイト】
https://takenokonosato.sakura.ne.jp/blog/2020/07/25/windows版carla-0-9-9のインストール/
大まかに、やるべき作業は以下の通りです。
- 必要なソフトのインストール
- Pythonの依存ライブラリインストール(pip使用)
- Visual Studio 2019 Community のインストール
- Enreal Engine 4.26 のインストール(Carla 専用に改造されたものをビルド)
- Carla github リポジトリのクローン
- 必要なAssetのダウンロード(リポジトリ内のバッチファイルUpdate.bat使用)
- Carla のビルド(必要に応じ、Assetのslnファイルのリビルド実施)
- サンプル動作に必要なPythonライブラリインストール
公式ドキュメントと一部異なるのは3. でインストールする追加コンポーネントの種類です。また、Unreal EngineについてはCarla用に修正されたUE4 Ver. 4.26 をソースからビルドしてやる必要があることが注意点として挙げられます。
このリポジトリにアクセスするには、@EpicGames のgithubチームに参加しないといけないため、これも初見だと戸惑う部分かと思います。
さて、以下インストール作業の詳細をまとめます。
インストール作業詳細
主に公式ドキュメントに従って進めます。
1. 必要なソフトのインストール
- CMake (バージョンは適当に選択 https://cmake.org/download/ )
- Git (同上 https://git-scm.com/downloads)
- Make (バージョン 3.81 が必要 http://gnuwin32.sourceforge.net/packages/make.htm)
- 7Zip (tar.gz の解凍のために使用 https://www.7-zip.org/)
- Python3 x64 (Python3 系なら問題なし? 今回はバージョン3.9.9をインストール https://www.python.org/downloads/)
2. Python のライブラリインストール(pip使用)
python で以下のpipコマンド実行
pip3 install --upgrade pip
pip3 install --user setuptools
pip3 install --user wheel
3. Visual Studio 2019 Community / C++ Build Tools のインストール
指定されているもののほかにもいくつか必要なコンポーネントがあったので、問題なくビルドできたときのものを列挙します。
足りていない場合は、Visual Studio Installerを起動し、Visual Studio Community 2019の「変更」ボタンをクリックして追加すればOKです
- C++ によるデスクトップ開発にチェック
2. オプションとして、下記にチェックを入れる
※ 基本的に、下記に従ってインストール。
ただし、一部公式ドキュメントとも上記リンク先のページとも異なる部分があるので明記しておく
- Windows 8.1SDK が項目にないので、 Windows 10 SDK を選択(これで問題ない)
- .NET Framework 4.6.1 SDK, Targeting Pack の二つにもチェックを入れる必要がある(Unreal Engine のビルドに必要)
C++ Build Tools についても、上記URLに従ってインストールすればOK。
Carla用 Unreal Engine 4.26 のビルド / インストール
公式ドキュメントでも書かれてはいますが、以下の作業を行い、Carla用に修正されたUnreal Engine のソースを入手します。
【参考】 https://www.unrealengine.com/en-US/ue4-on-github?sessionInvalidated=true
- 上記URLに従い、自分のEpic GamesのアカウントとGithubのアカウントを連携する
- 正しく連携できると、Epic Gamesから@EpicGame の組織に招待されたというメールが届くので、これに参加する(Join @EpicGames をクリック)。
3. https://github.com/CarlaUnreal/UnrealEngine へアクセスできるようになるので、このリポジトリをダウンロード(2. の手順を実施していないと、このリポジトリにそもそもアクセスできない)
公式ドキュメントに従って、コマンドプロンプトでダウンロードしてもOK
git clone --depth 1 -b carla <https://github.com/CarlaUnreal/UnrealEngine.git> .
4. クローンしたディレクトリで、以下のスクリプトを実行
Setup.bat
GenerateProjectFiles.bat
5. Visual Studio 2019 で UE4.sln をビルド
(i) UE4.sln をVisual Studio 2019 で開く (右クリックでプログラムから開く → Visual Studio 2019 でOK)
(ii) 画面上部のBuild Bar で 「Development Editor」「Win64」「UnrealBuildTool」 を選択
(iii) 画面右側ソリューションエクスプローラーにて、Engineフォルダ内の「UE4」で右クリックし、「ビルド」を選択
正しくビルドできると、Engine/Binaries/Win64/UE4Editor.exe が生成される。
ダブルクリックでUnreal Editorが立ち上がると公式ドキュメントには書かれているが、自分の環境では一部プラグインが見つからないと警告が出て立ち上がらない(後ほどCarlaのビルド時に行う make launch でUnreal Editorは立ち上がるので、特に問題はないと思われる)
Unreal Engine のビルドについては以下も参考になる。
5. Carla Github リポジトリのクローン
以下のリポジトリをダウンロードすればOK
バージョンを指定は、左上のmasterをクリック後、Tagsのタブを選択し、0.9.13とすればよい。
コマンドで実施する場合は以下
git clone <https://github.com/carla-simulator/carla>
git checkout refs/tags/0.9.13 # バージョン切り替え
6. 必要なAsset のダウンロード
ダウンロードしたリポジトリのトップディレクトリに Update.bat があるので、これを実行する。
なお、Assetのサイズは10GB以上あるため、環境によってはかなり時間がかかる。
自分でAssetをダウンロードし、~/carla/Unreal/CarlaUE4/Content/Carla に展開するという方法もあるが、Update.batを使う方法が一番確実と思われる。
7. Carlaのビルド
- 「設定」→「システム」→「詳細情報」→ 「システムの詳細設定」→ 「環境変数」から、次の変数を設定する(システム環境変数)
2. UE4_ROOTを、自分がUnreal Engine リポジトリをダウンロードしたフォルダに指定する(筆者の場合はC:\tools\UR4Carla にダウンロードしたためこのように設定。以下のようなイメージ)
2. x64 Native Tools Command Prompt for VS 2019 を起動し、Carlaのリポジトリで以下のコマンドを実行(サーバーのビルド)。
make launch
これでビルドができるが、うまくいかない場合がある。その場合は、carla/Unreal/CarlaUE4 にある、CarlaUE4.sln をVisual Studio 2019で開き、ソリューションのリビルドを行うことで解決できる場合がある。
ソリューションエクスプローラーの右上、ソリューション “CarlaUE4”の上で右クリックし、「ソリューションのリビルド」をクリックする。
72プロジェクトをビルドするので数時間かかるが、基本的にうまくリビルドできるはずである。
これが終われば、再度make launch を実施してみる。ソリューションのリビルドがうまくできていれば問題なくビルドできるはずである(これも数時間かかる)。
3. PythonAPIのビルドを行う。これはサーバーのビルドと同じく x64 Native Tools Command Prompt for VS 2019 で 以下のコマンドを実行する。
make PythonAPI
ここまででビルド作業は終了です。お疲れさまでした。
残りはサンプルのシミュレーション実行方法について説明します。
サンプルコードを動かす
基本的な流れは次のとおりである。
- サーバーを起動し、Unreal Editorを立ち上げる(make launch)。
- 立ち上げたUnreal Editorで、シミュレーションを開始する。
- 別のコマンドプロンプトを起動し、そこからexampleディレクトリ以下のサンプルスクリプトを実行する。
- Unreal Editorの起動は、x64 Native Tools Command Prompt for VS 2019 でcarlaのフォルダ上に移動し、make launchを実行すればよい(直接Unreal Engineのexeを起動しようとすると筆者の環境では失敗する。また、画像では管理者権限で実行しているがその必要はないので注意)
- シミュレーションの開始はPlayボタンをクリックすればOK
- Pythonのスクリプトは通常のコマンドプロンプトから実行してもOK
この際、依存関係のあるライブラリをインストールする必要があるので注意。
例えば、automatic_control.pyを動かそうとしてみると、以下のようshapelyモジュールが存在しないと怒られる。
そこで、carla/PythonAPI/carla/Requirements.txt を見ると
networkx
numpy; python_version < “3.0”
numpy==1.18.4; python_version ≥ “3.0”
distro
Shapely==1.6.4.post2
と書かれているため、それぞれをインストールする。
cd (path to carla repo)/carla/PythonAPI/examples
pip install -r requirements.txt
※ 公式ドキュメントにも記載あり
ただし、上記のうち、Shapelyだけは単にpip installでインストールできないので注意。
下記を参考に、.whlをダウンロードし、同じフォルダでpip install Shaply….whlとすることでインストールできる。
なお、自分の環境では、Pyhton 3.9.9を用いていたので、対応する.whlとして
Shapely‑1.8.0‑cp39‑cp39‑win_amd64.whl をダウンロードし、
pip install Shapely‑1.8.0‑cp39‑cp39‑win_amd64.whl とした。
うまくシミュレーションが動くと、pygameのウィンドウが立ち上がり、自動運転が開始される。
シミュレーションのFPSが出ない場合
GPU積んでるはずなのに3FPSとかしか出ない場合がある。
この場合は、Unreal Editor上部の「編集」タブから、「エディタの環境設定」をクリックし、「パフォーマンス」の項目から、「バックグラウンドでの処理により少ないCPUを使用」のチェックを外します。公式ドキュメントのF.A.Qにも項目があります。
Unreal Editor初回起動時の注意
- シェーダーのコンパイルが終わるまで、CPUの使用率が100%に近くなる
- それが終わり、「プレイ」を押した場合でもシェーダーのコンパイルが走る。これも待つ必要がある(約30分程度かかる)
- 以上が終わると、負荷はそこまでかからなくなる。
- ただし、Unreal Editorが占有するメモリ量は7GB程度あるので注意
まとめ
今回はWindows10にCarla 0.9.13 をソースからインストールする方法について述べました。
ぼちぼち自動運転のシミュレーションを回して知見をためていきたいところですねー
コメント