🚖

Autowareの環境構築

2021/11/09に公開

Autowareとは?

自動運転用のOSS「Autoware」、興味ありつつも、難しそうでなかなか手を出せずにいました。

ただ、改造ルンバの自律移動とかやってみたいなーということで、ついに手を出してみることにしました。

とりあえず動かすのはすぐできるかなと思いきや、色々難しかったので手順を残しておきます。参考にしたのはAutowareの公式リポジトリと「Autowareではじめる自律移動技術入門」という書籍です。

https://amzn.to/3C7DCuR

Autowareの環境構築

PCはLinux PCを準備します。ここから、初心者にとってはハードル高そうですが、Windowsで頑張る方が多分色々大変なので、頑張って準備しましょう。

以下参考記事です。
https://zenn.dev/karaage0703/articles/0ca67e19aa772e

準備は、以下の3ステップです。

  • NVIDIA Dockerインストール
  • Dockerイメージダウンロード&起動確認
  • デモ用のログ準備

準備は1回やれば、あとはいつでもデモを実行できます。順に説明していきます。

Dockerインストール

CUDAを使わない場合とCUDAを使う場合(NVIDIA-Docker)に分けて説明します。

CUDAを使わない場合

以下コマンドでDockerをインストールします。

$ sudo apt install -y curl
$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh | /bin/bash

以下コマンド実行して hello-worldできたらDockerのインストールは問題ありません。

$ docker run hello-world

私の場合は、最初permission deniedで怒られたので、以下コマンド実行してPCを再起動したらOKになりました。もしくはsudoで実行してもOKです。

$ sudo gpasswd -a $(whoami) docker
$ sudo chgrp docker /var/run/docker.sock
$ sudo service docker restart
$ sudo shutdown -r now

参考: dockerコマンド実行時の「Got permission denied while trying to connect to the Docker daemon socket」

Dockerに関して詳しく知りたい方は以下記事参照ください。
https://karaage.hatenadiary.jp/entry/2019/05/17/073000

CUDAを使う場合

CUDAで動かす場合は、以下記事を参考に、NVIDIAのドライバを入れて、NVIDIA Container Toolkit, NVIDIA-Dockerもインストールしましょう。

https://qiita.com/karaage0703/items/e79a8ad2f57abc6872aa

NVIDIAのドライバが入っていれば、以下コマンドでNVIDIA-Dockerがインストールできます。

$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-nvidia-container-toolkit.sh | /bin/bash
$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-nvidia-docker.sh | /bin/bash

最初は、CUDAは使わないでセットアップしていたのですが、環境によってはrvizがどうしても起動せずハマった(本記事末尾参照)ため、NVIDIA Dockerを使っています。

Dockerイメージダウンロード&起動

以下リポジトリ参考にしましょう。
https://github.com/Autoware-AI/docker/tree/master/generic

以下コマンドで、準備します。

$ mkdir ~/autoware && cd ~/autoware
$ git clone https://github.com/Autoware-AI/docker
$ cd docker/generic

GPU(CUDA)を使わない場合は、以下コマンド実行してDockerイメージのダウンロードと起動ができます。

$ ./run.sh -c off -r melodic -t 1.14.0

GPU(CUDA)を使う場合は、以下コマンドになります。

$ ./run.sh -c on -r melodic -t 1.14.0

デモ用のログ準備

データの準備をします。書籍「Autowareではじめる自律移動技術入門」と公式リポジトリを参考にしました。Dockerとの共有ディレクトリにログデータを保存、解凍します。

共有ディレクトリなので、以降の作業はDocker上でもUbuntuのターミナル上でもどちらでもOKです。今回はDocker上で以下コマンドを実行します。

$ 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 xvzf sample_moriyama_data.tar.gz
$ tar xvzf sample_moriyama_150324.tar.gz

これで準備は完了です。

Autowareデモ実行

準備が終わったら、いよいよデモを実行しましょう。準備が完了していたら、以降はここから実行すればOKです。

最初に、Dockerが起動していなければ以下コマンドを実行します(-cの後は、CUDAを使う場合はonにしてください)。

$ cd ~/autoware/docker/generic
$ ./run.sh -c off -r melodic -t 1.14.0

環境設定を実施します。Dockerコンテナ起動直後は不要のようですが、クセにしておいたほうがよいです。

$ cd ~/Autoware
$ source install/setup.bash

ランタイムマネージャを起動します。

$ roslaunch runtime_manager runtime_manager.launch

GUIが立ち上がります。以下設定例です。設定は、書籍「Autowareではじめる自律移動技術入門」を参考にさせていただきました。

設定完了したあとで、RVizという右下のボタンをクリックして、rvizを立ち上げたあと、Simulationタブで、ログを再生すると以下のように自動運転のデモが始まります。

はまったところ

rvizが起動しない

libGL error: failed to load driver: swrastというエラーでrvizが起動しませんでした。

エラーメッセージで調べて、色々試してみたのですがどうしても動かず、試しにGPUで動かしてみたら無事動いたので、GPUで良しとしています。

まとめ

Autowareの環境を構築してみました。ここからが本番なのですが、環境構築で力尽きた感があります。

書籍が丁寧なおかげでなんとか動かすところまでできた感があります。書籍は、まだ読み込めてないですが、自律移動の基礎と必要な数学、ROS、Autowareの実践まで詰め込んであり読み応えありそうです。

副産物的にDockerにも少し詳しくなれました。ルンバを自律移動することろまでできるか分かりませんが、がんばってみたいと思います。

https://amzn.to/3C7DCuR

関連記事

https://zenn.dev/karaage0703/articles/2de654a413049e

https://karaage.hatenadiary.jp/entry/2019/11/06/073000

Discussion