Привет, дорогой читатель! Сегодня я хотел бы поделиться с вами своим опытом установки симулятора Carla в Ubuntu 18.04.

Примечание. Вскоре я опубликую новое руководство по установке Carla-ROS-Bridge вместе с этой версией симулятора. Оставайтесь рядом :)

Редактировать: руководство по установке моста Carla-ROS уже опубликовано. Пожалуйста, проверьте это здесь!

Что такое Симулятор Карлы?

Для тех из вас, кому интересно, что такое симулятор Carla в чистом виде, это гиперреалистичный симулятор автономного вождения с открытым исходным кодом, созданный для того, чтобы помочь исследователям легко тестировать функции автономного вождения. Некоторые из его основных функций включают масштабируемость благодаря архитектуре клиент-сервер, гибкий клиентский API, различные сценарии трафика и поддержку карт, а также интеграцию с ROS. Это делает его чрезвычайно полезным и интересным инструментом для изучения и исследования автономного вождения с реалистичным поведением.

Если вы хотите узнать больше об этом инструменте, ознакомьтесь с официальной документацией здесь, в которой подробно объясняется, что предлагает Carla и как она устроена внутри.

Цели установки

  • Докер: v 20.3
  • NVIDIA-Докер: v
  • Симулятор Карлы: v 0.9.9
  • Пип: v 9.0.1

Для вашего удобства (чтобы вам не нужно было открывать новые вкладки и перемещаться по разным веб-страницам) я вставил в это руководство все команды, необходимые для успешной установки на момент написания.

Предпосылки

  1. Убунту 18.04
  2. Графический процессор NVIDIA с объемом памяти не менее 4 ГБ
  3. Драйверы NVIDIA › 361.93
  4. Свободное место на диске › 30 ГБ (это минимальный предпочтительный объем, необходимый для правильной работы вашей системы)

Установка докера

Мы будем устанавливать симулятор с помощью образа докера, поскольку он обеспечивает более простой и быстрый процесс установки. Обратите внимание, что это предназначено для пользователей, которые не заботятся о внутренностях Carla и просто хотят запускать ее без стресса. С другой стороны, если вы хотите сделать полную сборку Linux, обратитесь к официальной документации.

  1. Настройка репозитория + установка ядра Docker

Установка Docker довольно проста и прекрасно объяснена на официальной домашней странице.

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
// NOTE REQUIRED: the following command is used to test if your installation was successfully.
$ sudo docker run hello-world

2. Настройте Docker для запуска без «sudo».

По умолчанию Docker можно запустить только с правами root. Из документов:

Демон Docker привязывается к сокету Unix, а не к TCP-порту. По умолчанию этот сокет Unix принадлежит пользователю root, и другие пользователи могут получить к нему доступ только с помощью sudo. Демон Docker всегда запускается от имени пользователя root.

Если вы не хотите предварять команду docker sudo, создайте группу Unix с именем docker и добавьте в нее пользователей. Когда демон Docker запускается, он создает сокет Unix, доступный членам группы docker.

Следующие команды необходимы для того, чтобы вы могли запускать docker от имени пользователя без полномочий root.

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker

После выполнения приведенных выше команд вы сможете успешно запустить docker от имени пользователя без полномочий root:

$ docker --version
Docker version 20.10.3, build 48d30b5

Установка NVIDIA-Docker

Следующим шагом в списке является установка NVIDIA-docker, которая позволяет пользователям создавать и запускать контейнеры с ускорением на GPU, такие как carla. Чтобы установить его, выполните следующие команды.

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
$ sudo systemctl restart docker

После того, как вы установили nvidia-docker2, убедитесь, что он успешно настроен, запустив базовый контейнер CUDA:

$ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi      
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 2060    Off  | 00000000:08:00.0  On |                  N/A |
|  0%   44C    P8    19W / 170W |    493MiB /  5931MiB |      6%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

Если вы получили аналогичный вывод, значит, установка прошла успешно, и теперь вы можете запускать контейнеры Docker с ускорением на GPU.

Карла Установка

Теперь, когда мы установили необходимые требования для успешного запуска док-контейнера Carla, мы готовы установить симулятор.

В этом случае мы установим Carla версии 0.9.9. Если вы хотите установить другую версию, вам просто нужно изменить номер версии на тот, который вы хотите. Однако обратите внимание, что другая версия может вызвать проблемы совместимости с Carla-ROS-Bridge и, следовательно, вызвать сбои в работе последнего. Здесь вы можете получить доступ к списку всех доступных образов докеров Carla.

  1. Получить образ докера Carla
$ docker pull carlasim/carla:0.9.9
# Verify that image was successfully installed
$ docker images
REPOSITORY       TAG         IMAGE ID       CREATED         SIZE
nvidia/cuda      11.0-base   2ec708416bb8   6 months ago    122MB
carlasim/carla   0.9.9       13f7e2eebaf1   10 months ago   7.94GB
hello-world      latest      bf756fb1ae65   13 months ago   13.3kB

Теперь, когда образ Карлы успешно установлен, нам нужно запустить сервер Carla, чтобы позже мы могли скопировать клиент python Карлы, чтобы иметь возможность запускать симулятор.

2.Запустите сервер моделирования

Теперь пришло время запустить отдельный контейнер с сервером моделирования.

$ sudo docker run -d -p 2000-2002:2000-2002 --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 carlasim/carla:0.9.9 /bin/bash CarlaUE4.sh

3. Скопируйте клиент Python в папку

Чтобы запустить доступные клиенты Python, нам нужно будет скопировать содержимое папки PythonAPI в наше собственное пространство каталогов, чтобы успешно их запустить. Для этого скопируем его содержимое с помощью команды «docker cp».

$ cd ~/Documents
# Note that pedantic_cray is the name of the container. Use can use the container ID instead. To know your container ID/name run 'docker ps -a'.
$ sudo docker cp pedantic_cray:/home/carla/PythonAPI ./

4. Установите необходимые зависимости для запуска клиента Python.

Обратите внимание, что вместо этого мы будем использовать python2 из-за совместимости Carla-ROS-Bridge. Если вам не нужно запускать Carla-ROS-Bridge, вы можете вместо этого установить python3.

$ sudo apt install python

Установите «pip» и необходимые зависимости:

$ sudo apt install python-pip
$ pip install setuptools pygame numpy

5. Запустите клиент моделирования

После этого мы можем запустить симулятор. Для этого:

$ cd ~/Documents/CarlaSim/PythonAPI/examples
$ python manual_control.py

Если все прошло хорошо, вы сможете увидеть новое окно Pygame с текущей симуляцией, похожее на приведенное ниже:

Обратите внимание: если вы получаете сообщение об ошибке отсутствия пакета, обязательно установите его с помощью pip.

И это было оно! Это были все шаги, которые потребовались для того, чтобы Карла успешно запустилась в только что установленной Ubuntu 18.04. Пожалуйста, помните, что я написал дополнительное руководство Как настроить Carla-ROS-Bridge после того, как вы успешно установили симулятор Carla, чтобы вы могли еще больше использовать свое взаимодействие с симулятором Carla.

Надеюсь, вам понравилось, и теперь пришло время изучить и насладиться этим удивительным инструментом! Если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже, я буду рад помочь вам с вашей новой настройкой Carla или просто узнать ваш опыт работы с ней. Увидимся в следующий раз!