CARLA - Installation (Ubuntu 20.04)
Installation CARLA
CARLA는 보통 18.04를 메인으로 지원하기 때문에, 20.04 기준으로 설명해주는 글이 없었다. 다행히 CARLA document에서는 20.04에서도 설치하는 과정이 있어서 이를 참고하여 진행하였다.
Prerequisites
도큐먼트에 보면 아래와 시스템 요구사항이 필요하다.
System requirements
- Ubuntu 18.04. CARLA provides support for previous Ubuntu versions up to 16.04. However proper compilers are needed for Unreal Engine to work properly. Dependencies for Ubuntu 18.04 and previous versions are listed separately below. Make sure to install the ones corresponding to your system.
- 130 GB disk space. Carla will take around 31 GB and Unreal Engine will take around 91 GB so have about 130 GB free to account for both of these plus additional minor software installations.
- An adequate GPU. CARLA aims for realistic simulations, so the server needs at least a 6 GB GPU although 8 GB is recommended. A dedicated GPU is highly recommended for machine learning.
- Two TCP ports and good internet connection. 2000 and 2001 by default. Make sure that these ports are not blocked by firewalls or any other applications.
Installation Process
대략적인 과정은 아래와 같다. (추가적인 부분은 공식 페이지를 참고하면 된다.)
- Git & Unreal Engine Connection
- Install Software requirements of Ubuntu 20.04
- Unreal Engine install
- CARLA install
- Simulation Test
1. Git & Unreal Engine Connection
CARLA는 Unreal Engine 기반의 Simulator로 먼저, Unreal Engine을 설치해야 한다. Unreal Engine은 git을 통해 설치할 수 있는데, Epic games에 회원 가입 후 git 계정에 연동해야 한다.
1) Unreal Engine에 가입하고, 아래와 같이 계정 -> Personal 탭을 순서대로 클릭한다.
2) 왼쪽 Account setting Tab에서 APPS AND ACCOUNTS 를 누르면, 화면 우측에 보이듯, 연동 가능한 사이트들이 보인다. 여기서 Github를 연동 시켜준다.
3) 약관 동의 후 쭉 진행해서 아래의 화면까지 진행해준다.
4) 마지막으로 git 계정을 가입한 이메일로 들어가서 해당 메일의 Join @EpicGames 까지 눌러주면 Unreal engine을 다운받을 준비는 끝난다.
만약 Git 에서 access token을 발급하지 않았다면, 이때 하는 것이 좋다.
2. Install Software requirements of Ubuntu 20.04
CARLA 실행을 위해 필요한 추가 파일들을 해주면 되며 아래의 코드를 실행하면 된다.
1
2
3
4
5
6
$ sudo apt-get update && \
sudo apt-get install wget software-properties-common && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test && \
wget -O https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - && \
sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main" && \
sudo apt-get update
그 후, 아래의 코드를 실행해준다. (Ubuntu 20.04 기준)
1
2
3
4
$ sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"
$ sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
$ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 && \
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180
추가적으로 python dependency까지 설치해준다.
1
2
3
4
5
6
$ pip install --user setuptools && \
pip3 install --user -Iv setuptools==47.3.1 && \
pip install --user distro && \
pip3 install --user distro && \
pip install --user wheel && \
pip3 install --user wheel auditwheel
3. Unreal Engine install
CARLA document에서는 아래와 같이 Unreal Engine 4.26 버전 기준의 설치를 기본으로 보여준다.
하지만, 위처럼 따라해보니 잘 안되서 Unreal Engine git hub에 들어가서 직접 받았다. (아래 링크 참조)
(다시 생각해보니, ID PW를 초반에 잘 못 입력해서 계속 오류가 뜬게 아닌가 생각이 든다. 나중에 서버에 설치할 일이 생긴다면 저대로 해봐야겠다.)
위의 사이트에서 git clone하면 바로 되는 것이 아니라, ID와 PW를 입력해야 하는데 여기서 PW는 git 계정의 PW가 아니라 git에서 access token을 발급한 뒤 입력해줘야 한다.
git clone이 완료되면 UnrealEngine이라는 폴더가 생성된다.
다음으로 아래의 코드를 실행해준다.
1
2
cd ~/UnrealEngine
$ ./Setup.sh && ./GenerateProjectFiles.sh && make
추가적으로 Document에서는 잘 설치되었는지 확인 차 아래의 코드를 실행해보라고 권장하고 있는데, 나는 해보다가 오래 걸려서 중간에 멈추고 다음 절차로 넘어갔다.
1
$ cd ~/UnrealEngine/Engine/Binaries/Linux && ./UE4Editor
4. CARLA install
사실 Unreal Engine까지 설치가 끝났다면, CARLA 설치는 아주 쉽다. 설치는 아래의 코드를 입력해주면 된다.
1
$ git clone https://github.com/carla-simulator/carla
다음으로, CARLA에서 사용하는 최신 asset들을 사용하기 위해 업데이트를 해준다. 해당 코드는 carla 폴더로 이동한 뒤 실행시켜주면 된다. (참고로, Document에서는 특정 버전의 CARLA asset을 다운받기 위한 코드도 적혀있다.)
1
$ ./Update.sh
다음으로 CARLA가 Unreal Engine을 사용하기 위해서 환경 변수를 선언해주는 작업이 필요하다.
방법은 2가지가 있다.
1) 매번 CARLA를 사용하기 전에 아래의 코드를 사용
1
$ export UE4_ROOT=~/(UnrealEngine이 설치된 경로)
2) .bashrc 를 수정하여 1)의 코드를 입력하기
1
$ gedit ~/.bashrc # 켜진 .bashrc 파일에서 1)의 코드를 추가
이제 2가지 코드만 더 실행하면 CARLA 설치는 끝난다. 먼저, Python API 를 컴파일해줘야 한다. 아래의 코드를 carla 폴더로 들어간 위치에서 실행해준다. (Document 에서는 원하는 Python 버전 기준의 컴파일 진행 방법도 나와있다.)
1
$ make PythonAPI
그리고, Python library 는 .egg 형태 혹은 .whl로 제공되는데 이때, .egg 형태로 사용을 원하면 별도의 진행과정 없이 사용하면 된다. .whl 은 복잡하고 추가적인 절차가 필요해서 안했다.
다음으로 server를 컴파일 해준다. document에 따르면, 해당 코드는 Unreal Engine을 실행시켜주고 컴파일 해준다고 한다. 또한, 서버 혹은 Unreal Engine Editor를 실행하고자 할 때 마다 실행해주면 된다고 하는데…. 잘 모르겠다. 아무튼 이 코드도 carla 폴더 내부에서 실행해줘야 한다.
1
$ make launch
위 두 코드로 설치하는 게 상당히 시간이 걸린다. 특히 make launch의 경우 앞서 bashrc에서 입력한 Unreal Engine 경로가 잘못될 경우 설치가 안되므로 반드시 꼭 확인해보길 바란다.
정상적으로 설치가 진행되면 make launch 를 진행 중에 CARLA가 실행 될 것이다. 그냥 무시하고 설치를 기다리면 된다.
5. Simulation Test
make lauch까지 끝나면, CARLA에 python scirpt를 적용할 수 있다. 먼저, CARLA의 play 버튼을 눌러주고 터미널을 열어 다음 코드를 입력해주면 된다.
1
2
3
4
5
6
7
8
# Terminal A
$ cd PythonAPI/examples
$ python3 -m pip install -r requirements.txt
$ python3 generate_traffic.py
# Terminal B
$ cd PythonAPI/examples
$ python3 dynamic_weather.py
A 터미널에서 실행시킨 파일은 차량 및 보행자를 생성하여 동작시키는 코드 예제이고, B는 날씨와 시간대? 를 연속적으로 바꿔주는 것이다. 이 코드까지 잘 동작하는 것을 확인하면 CARLA 설치는 마무리 되었다고 볼 수 있다.