Windows10 の WSL で動かす場合、systemd や VOLUME マウントする UNIXドメインソケットなどの問題がありWSL内でDockerを動かすことがめんどくさい。
ので、ホストOS側でXサーバを立ち上げ、ソースコードビルドを行ってAutowareを動かしてみた。手順はそこらへんの記事があるだろうと、見てみたのだけど、GitHubからGitLabへ移動したことなどもあり、そのまま動作するものを見つけることができず、試行錯誤の結果以下の手順でようやく動作した。
make -j2 もかかったが、最後のコマンドだけでも合計2時間半かかった(1回目の途中でXが固まって実行し直した)。
AutowareのDockerコンテナのサイズは異常にでかい。ので、3GB上限のSIMルータとかではすぐにギガが枯渇する。可能な限り光や企業LAN内でのインストールをすすめる。
AWS Greengrass を使ったあと、ROSをインストールすると、AWS Greengrass を設計した人がROS(というか分散ROSかな)を模倣していることに気づく。
DonkeycarアプリケーションがAwtowareに類似していることもわかる。Pub-Subモデルをベースにせず、1つのコンピュータ完結にするため通信をやめてViechleフレームワークという簡略化した実装に替えているのだ。Donkeycarを構成するソフトウェアスタックもAutoware/ROSに似ている。catkin関連がdonkeyコマンドだったり、rosbagがtubデータだったり、トピック名がV.memのキー名だったり..
複数の実装を学習すると、AWSやAWF、Donkeycarコミッタの思想の違いが俯瞰できて実に興味深い。
ので、ホストOS側でXサーバを立ち上げ、ソースコードビルドを行ってAutowareを動かしてみた。手順はそこらへんの記事があるだろうと、見てみたのだけど、GitHubからGitLabへ移動したことなどもあり、そのまま動作するものを見つけることができず、試行錯誤の結果以下の手順でようやく動作した。
【注意】以下の手順は2020年1月21日時点のもので、バージョン更新などにより動作しなくなる可能性があるため、参考にする場合は at your own risk でお願いします。
■インストール
- https://sourceforge.net/projects/vcxsrv/ からVcXrv をダウンロードしてインストール
- Microsoft StoreからUbuntu 16.04 LTS をダウンロードして起動
- パスワードを設定
- vi ~/.bashrc を実行して、以下の5行を追加
export HTTP_PROXY=http://proxy.server:8080/
export HTTPS_PROXY=http://proxy.server:8080/
export http_proxy=$HTTP_PROXY
export https_proxy=$HTTPS_PROXY
export DISPLAY=localhost:0.0
- source ~/.bashrc
- vi /etc/apt/apt.conf を実行して以下の2行を追加
Acquire::http::proxy "http://proxy.server:8080/";
Acquire::http::proxy "http://proxy.server:8080/";
- sudo apt update && sudo apt upgrade -y
- sudo apt install -y lxde
- /mnt/c/Program\ Files/VcXsrv/vcxsrv.exe :0 -rootless -clipboard -noprimary -wgl -xkblayout jp -xkbmodel jp106 &
- startlxde
- Xが起動したら、左下のツバメ(?)アイコンをクリック
- AccessoriesのByobu Terminal を起動
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
- sudo apt update
- sudo apt upgrade -y
- sudo apt install -y ros-kinetic-desktop-full
- sudo rosdep init
- rosdep update
- echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
- source ~/.bashrc
- sudo apt install -y python-rosinstall
- sudo apt install -y qt5-default
- sudo apt-get install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin libmosquitto-dev gksu
- mkdir -p autoware.ai/src
- cd autoware.ai
- wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.12.0/autoware.ai.repos?inline=false"
- vcs import src < autoware.ai.repos
- rosdep update
- rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
- pip3 install -U setuptools
- colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
make -j2 もかかったが、最後のコマンドだけでも合計2時間半かかった(1回目の途中でXが固まって実行し直した)。
AutowareのDockerコンテナのサイズは異常にでかい。ので、3GB上限のSIMルータとかではすぐにギガが枯渇する。可能な限り光や企業LAN内でのインストールをすすめる。
AWS Greengrass を使ったあと、ROSをインストールすると、AWS Greengrass を設計した人がROS(というか分散ROSかな)を模倣していることに気づく。
DonkeycarアプリケーションがAwtowareに類似していることもわかる。Pub-Subモデルをベースにせず、1つのコンピュータ完結にするため通信をやめてViechleフレームワークという簡略化した実装に替えているのだ。Donkeycarを構成するソフトウェアスタックもAutoware/ROSに似ている。catkin関連がdonkeyコマンドだったり、rosbagがtubデータだったり、トピック名がV.memのキー名だったり..
複数の実装を学習すると、AWSやAWF、Donkeycarコミッタの思想の違いが俯瞰できて実に興味深い。
0 件のコメント:
コメントを投稿