Dockerを用いたAutowareのセットアップとデモ

docker-for-autoware

自動運転ソフトウェアのAutowareでは、Dockerイメージが提供されており、このDockerイメージを利用することで、Autowareを簡単にインストールできます。
この記事では、Dockerを用いてAutowareをセットアップし、デモを実行する方法を紹介します。

Autoware

Autowareは、自動運転システム用オープンソースソフトウェアです。
詳細は、以下のサイトをご覧ください。

Dockerを用いたAutowareのセットアップ

前提条件

  • Ubuntu 16.04
  • Docker
  • NVIDIA Docker (NVIDIA Docker2は、まだテストしていません)

Dockerイメージのダウンロード

以下のコマンドで、Docker HubからAutoware 1.7.0 Kinetic版をダウンロードします。

$ docker pull autoware/autoware:1.7.0-kinetic

デモデータの準備

以下のコマンドで、デモデータの格納するディレクトリーを作成し、デモデータのダウンロードと展開を行います。

$ mkdir ~/.autoware
$ cd ~/.autoware
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
$ tar xf sample_moriyama_data.tar.gz
$ tar xf sample_moriyama_150324.tar.gz
$ rm sample_moriyama_data.tar.gz
$ rm sample_moriyama_150324.tar.gz

Dockerコンテナ起動用スクリプトの準備

以下のコマンドで、Dockerコンテナ起動用シェルスクリプトを格納するディレクトリーを作成し、

$ mkdir -p ~/Autoware/docker/generic

作成したディレクトリーに、以下の内容をファイル名run.shとして保存します。

#!/bin/sh

XSOCK=/tmp/.X11-unix
XAUTH=/home/$USER/.Xauthority
SHARED_DIR=/home/autoware/.autoware
HOST_DIR=/home/$USER/.autoware

nvidia-docker run 
    -it --rm 
    --volume=$XSOCK:$XSOCK:rw 
    --volume=$XAUTH:$XAUTH:rw 
    --volume=$HOST_DIR:$SHARED_DIR:rw 
    --env="XAUTHORITY=${XAUTH}" 
    --env="DISPLAY=${DISPLAY}" 
    -u autoware 
    --privileged -v /dev/bus/usb:/dev/bus/usb 
    --net=host 
    autoware/autoware:1.7.0-kinetic

なお、git cloneして、run.shを編集しても構いません。

Dockerを用いたAutowareのデモ

Dockerコンテナの起動

以下のコマンドで、Dockerコンテナを起動します。

$ cd ~/Autoware/docker/generic
$ sh run.sh

Runtime Managerの起動

Dockerコンテナが起動したら、以下のコマンドで、Runtime Managerを起動します。

$ cd Autoware/ros
$ ./run

これより先の操作は、ファイルパスを除き、GitHubのAutoware_QuickStart_v1.1JP.pdf(https://github.com/CPFL/Autoware-Manuals/blob/master/jp/Autoware_QuickStart_v1.1JP.pdf)とほぼ同じです。

ROSBAGの再生

Runtime Managerの[Simulation]タブで以下の.bagファイルを指定し、[Play]ボタンをクリックし、数秒後に[Pause]ボタンをクリックして一時停止しておきます。
“/home/autoware/.autoware/sample_moriyama_150324.bag”

RVizの起動と設定

Runtime Managerで[RViz]ボタンをクリックし、RVizを起動します。
RVizのメニュー[File]-[Open Config]を選択します。
[Choose a file to open]ダイアログが表示されるので、以下のファイルを選択して[Open] ボタンをクリックします。
“/home/autoware/Autoware/ros/src/.config/rviz/default.rviz”

地図のロード

Runtime Managerの[Quick Start]タブの[Map]で以下の.lanchファイルを選択し、[Map]ボタンをクリックします。
“/home/autoware/Autoware/docs/quick_start/my_map.launch”
[Simulation]タブで[Pause]ボタンをクリックし、数秒後に[Pause]ボタンをクリックして一時停止しておきます。

自己位置推定の開始

[QuickStart]タブの[Localization]で以下の.launchファイルを選択し、[Localization]ボタンをクリックしてロードします。
“/home/autoware/Autoware/docs/quick_start/my_localization.launch”
[Simulation]タブで[Pause]ボタンをクリックし、ROSBAGの再生を開始します。

RVizで表示する

RVizの右側の[Current View]-[Target Frame]に”base_link”を指定し、[Type]を”TopDownOrtho”にして[Zero]ボタンをクリックします。

その他の.launchファイル

“/home/autoware/Autoware/docs/quick_start/”ディレクトリーに、それぞれの.launchファイルがあります。
[Sensing] “my_sensing.launch”
[Detection] “my_detection.launch”
[Mission Planning] “my_mission_planning.launch”
[Motion Planning] “my_motion_planning.launch”

まとめ

Dockerを用いてAutowareをセットアップし、デモを実行する方法を紹介しました。