Windows10 WSLへのAutoware Install

#はじめに
Windows10のWSL(Windows Subsysytem for Linux)にて Autoware を動作させることに成功しましたのでその手順を書きます。WSLでのUbuntu環境ですが、cudaが使えていない等課題はありますが、X11を動作させることでWindowsとLinuxのデスクトップをシームレスに行き来することが出来、思った以上に使える環境になってきていると感じます。
Ubuntu でのAutoware のセットアップに関してある程度知識がある前提で書いているのと、実際に行った順序と一部異なる箇所があります。

###やることの概要
1. Windows10のWSLでUbuntu16.04のセットアップ
* WindowsにXサーバー(VcXsrv)をインストール
* WSLのUbuntuにLXDEを入れる
* Autowareに必要なパッケージをインストール
* Autowareをインストール
* Autowareのビルド
* Autowareのサンプルデータをダウンロードしてセットアップ
* Autowareを実行

#Windows10 WSLでUbuntu16.04 & X11のセットアップ

###VcXsrvのインストール

###Windows 10でLinuxを使う (その33) - LXDEをインストール
lxde（単体）をインストール（＊更新）

```
sudo apt update
sudo apt install lxde
echo "export DISPLAY=localhost:0.0" >> .bashrc
```

* 「sudo apt install lubuntu-desktop」でlubuntu-desktop を入れると、（一応これでも使えますが）以下の「startlxde」後にエラーが出ます。
https://news.mynavi.jp/itsearch/article/hardware/4073

VcXsrvを起動しLXDEを起動すると立ち上がるはず。

```
/mnt/c/Program\ Files/VcXsrv/vcxsrv.exe :0 -rootless -clipboard   -noprimary -wgl -xkblayout jp -xkbmodel jp106 &
startlxde
```
#Autoware Source Build
以下に従ってインストールしていく
https://github.com/CPFL/Autoware/wiki/Source-Build

###ROS kinetic (Ubuntu 16.04)
```
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall
```
以上以下より
http://wiki.ros.org/ja/kinetic/Installation/Ubuntu

###Qt 5.2.1 or higher
```
sudo apt-get install qt5-default
```
* これは既にlubuntu-desktopに入っていたかも？

###System dependencies for Ubuntu 16.04 Kinetic
```
sudo apt-get update
sudo apt-get install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin libmosquitto-dev gksu
```
これでblueman関係のエラーが出たが以下の後インストールしたら直った。upgradeしてからやらないとダメ見たい。

```
sudo apt upgrade
sudo apt remove blueman
```
これで環境構築は完了

###Install & build Autoware
Autowareをgit cloneして、バージョン1.7.0をcheckoutして、ビルドしてみる。

```
cd ~
git clone https://github.com/CPFL/Autoware.git --recurse-submodules
cd Autoware/ros/src
catkin_init_workspace
cd ..
git checkout refs/tags/1.7.0
./catkin_make_release 
```
いろいろ足らないパッケージがありエラーが出るので不足パッケージを入れていく。

```
sudo apt-get install libglew-dev
sudo apt-get install ros-kinetic-sound-play
sudo apt-get install ros-kinetic-jsk-recognition-msgs 
sudo apt-get install ros-kinetic-nmea-msgs 
sudo apt-get install ros-kinetic-grid-map-ros 
sudo apt-get install ros-kinetic-jsk-rviz-plugins 
sudo apt-get install ros-kinetic-gps-common
sudo apt-get install libssl-dev
sudo apt-get install libssh2-1-dev
sudo apt-get install libnlopt-dev
sudo apt install libpcap-dev 
sudo apt-get install libarmadillo-dev
```

ビルドするAutowarenのバージョンによっては以下も必要になる。

```
git submodule update --init
sudo apt install ros-kinetic-automotive-platform-msgs 
```

###Run Autoware
以下に従い各種データをダウンロードして"~/.autoware"に展開。
* https://github.com/autowarefoundation/autoware/wiki/Demo
Ver.1.7以降ではlaunch用のスクリプトが変わっており、スクリプトは"~/Autoware/docs/quick_start"にある。

runスクリプトでAutoware を起動するが、lxterminal 用のrunスクリプトのパッチは以下の Pull Requestを参照。
https://github.com/autowarefoundation/autoware/pull/1204/files/9ee07840c44af65748c42d52f789d0fc2e7f1bb6
これは、Autoware ver.1.11以降で取り込まれている。

Autowareをrunする。

```
./run
```
![Autoware162@WSLupload.png](https://qiita-image-store.s3.amazonaws.com/0/329258/766ba15e-4226-94fa-ee95-63fc22fb270e.png)

AutowareのVer.1.10.0でも動作を確認。

#参考
####パッケージインストルー時のblueman関係のエラー

```
Setting up blueman (2.0.4-1ubuntu2) ...
invoke-rc.d: could not determine current runlevel
 * Reloading system message bus config...                                                                               Failed to open connection to "system" message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
invoke-rc.d: initscript dbus, action "reload" failed.
dpkg: error processing package blueman (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of lubuntu-desktop:
 lubuntu-desktop depends on blueman; however:
  Package blueman is not configured yet.

dpkg: error processing package lubuntu-desktop (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 blueman
E: Sub-process /usr/bin/dpkg returned an error code (1)
```

####Windows Subsystem for Linux + VcXsrv + RubyMine でWindowsでも快適なRails開発環境を作ろう
* https://qiita.com/fukuramikake/items/283b817c16725af79a28



####Windows Subsystem for Linuxでデスクトップ環境を起動してみる
https://qiita.com/__cooper/items/76a00c6f5d43891aa161

```
sudo apt install lxde fonts-umeplus fonts-inconsolata
```

```
sudo apt install x11-apps
xeyes
```
####Windows Subsystem for Linux + X Windowを1.024倍くらい使いこなすための方法
* https://qiita.com/nishemon/items/bb3aca972404f68bfcd6

####Setup Ubuntu 18.04 on WSL on Windows 10 Pro
* https://estuarine.jp/2018/07/setup-ubuntu-18-04-wsl/?lang=en

####ROS Kinetic の Ubuntu へのインストール
* http://wiki.ros.org/ja/kinetic/Installation/Ubuntu

####Qt5:クールなLinux向けブラウン管ターミナルをWindowsで動かしてみた
* https://forest.watch.impress.co.jp/docs/serial/yajiuma/1090310.html

####WSL環境の初期化
* https://www.atmarkit.co.jp/ait/articles/1807/06/news028.html