Autowareの環境構築
Autowareとは?
自動運転用のOSS「Autoware」、興味ありつつも、難しそうでなかなか手を出せずにいました。
ただ、改造ルンバの自律移動とかやってみたいなーということで、ついに手を出してみることにしました。
とりあえず動かすのはすぐできるかなと思いきや、色々難しかったので手順を残しておきます。参考にしたのはAutowareの公式リポジトリと「Autowareではじめる自律移動技術入門」という書籍です。
Autowareの環境構築
PCはLinux PCを準備します。ここから、初心者にとってはハードル高そうですが、Windowsで頑張る方が多分色々大変なので、頑張って準備しましょう。
以下参考記事です。
準備は、以下の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に関して詳しく知りたい方は以下記事参照ください。
CUDAを使う場合
CUDAで動かす場合は、以下記事を参考に、NVIDIAのドライバを入れて、NVIDIA Container Toolkit, NVIDIA-Dockerもインストールしましょう。
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イメージダウンロード&起動
以下リポジトリ参考にしましょう。
以下コマンドで、準備します。
$ 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にも少し詳しくなれました。ルンバを自律移動することろまでできるか分かりませんが、がんばってみたいと思います。
関連記事
Discussion