BEIKE blog

備忘録です

[Ubuntu18.04]Dockerを使用してAutoware導入してシュミレーション行うまで(GPU搭載PC必須)

概要

この記事の題名の通りDockerを使用してAutoware導入してシュミレーション行うまでの流れを説明していきます。

(現在のDockerとAutowareのバージョンを考慮した方法)

動作環境&筆者のPCスペック(実際に動かした)

環境

  • Ubuntu18.04.4 LTS(実機)
  • Docker 19.03.8

PCスペック

  • Corei7-8665 QadroP520 メモリ32GB

やり方

細かく説明していきたいと思います。以下説明の流れです。


NVIDIA Driver をインストール
②Docker をインストール
NVIDIA Container Toolkit をインストール
④sudoなしでdockerコマンドを使用するために
⑤AutowareのためのROSBAGなど を ダウンロード(時間かかるよ)
⑥Dockerを使ってAutowareを動かすためのコンテナ を 作る
⑦Autoware を 動かしてみる(シュミレーション)

NVIDIA Driver をインストール

*追記2020/6/2

NVIDIAドライバーをセットアップするには、公式からダウンロードしてきて実行するほうが問題なさそう。

エラー出たときにNVIDIA関連のものをリセットする方法

$ sudo apt-get --purge remove nvidia-*
$ sudo apt-get --purge remove cuda-*

  • まず先に一応
sudo apt update && sudo apt upgrade

次にnouveauというドライバが動いているといけないので

sudo vim /etc/modprobe.d/blacklist.conf

より

blacklist nouveau
options nouveau modeset=0

を末尾に追加。

sudo update-initramfs -u 

で変更を適用 うまく行ったら

sudo reboot

再起動。

sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt update

続行の場合はEnter中断の場合はCtl-c

  • ドライバーの推奨バージョンを確認
~$ ubuntu-drivers devices

そうしたらdriver : nvidia-driver-XXX - third-party free recommendedのように出てくると思います。

今回の場合XXX(数字)のバージョンをインストールすることになります。

  • NVIDIA ドライバのインストールをする。
sudo apt install nvidia-driver-XXX

うまくいったら

sudo reboot

そして

~$ nvidia-smi

で、なんかの表が出てきたらOKです。


②Docker をインストール

~$ sudo apt-get update && \
   sudo apt-get install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg-agent \
   software-properties-common
  • Dockerの公式GPGキーを追加
~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
~$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
   stable"
  • Docker Engineをインストール
~$ sudo apt-get update
~$ sudo apt-get install docker-ce docker-ce-cli containerd.io

完了


NVIDIA Container Toolkit をインストール

次に Docker ホストに NVIDIA Container Toolkit をインストールする。 この中に Docker で NVIDIAGPU を使うのに必要なランタイムなどが含まれている。

~$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
~$ curl -s -L https://nvidia.github.io/nvidia-docker/$(. /etc/os-release;echo $ID$VERSION_ID)/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
~$ sudo apt update
  • NVIDIA Container Toolkitをインストール
sudo apt -y install nvidia-container-toolkit

終わったら

sudo systemctl restart docker

④sudoなしでdockerコマンドを使用するために

sudo groupadd docker 
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl start docker

念のため

sudo reboot

⑤AutowareのためのROSBAGなど を ダウンロード(時間かかるよ)

~$ cd ~/ && mkdir shared_dir && cd shared_dir && \
     wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz && \
     wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz && \
     tar zxfv sample_moriyama_150324.tar.gz && tar zxfv sample_moriyama_data.tar.gz

⑥Dockerを使ってAutowareのためのコンテナ を 作る

GitHubからクローンしてくる

~$ git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
~$ cd docker/generic
~$ ./run.sh

そうするとコンテナの中に入れ・な・い

GitHubから持ってきたファイル(run.sh)を以下の図のように変更する必要があります。 120行目にある

RUNTIME=""

を消す必要があるかも。

f:id:beike:20200419183657p:plain

そしたら

roslaunch runtime_manager runtime_manager.launch

でruntime_managerが立ち上がればOK f:id:beike:20200419182914p:plain


⑦Autoware を 動かしてみる(シュミレーション)

動画を見ていただく形になります。

以下runtime_managerを使ったシュミレーション

youtu.be