Translate

2020年1月22日水曜日

GPUなしProxy環境下のWindows10マシン上でAutoware/ROS Kineticを動かす手順

Windows10 の WSL で動かす場合、systemd や VOLUME マウントする UNIXドメインソケットなどの問題がありWSL内でDockerを動かすことがめんどくさい。

ので、ホスト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 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...