windows10にROS2をインストールする

公式wikiを見ながら、win10にインストール作業をしました。
  

事前条件

Visual Studio 14.0 2015 Update 3”が入っていて、かつC++も選択してインストールしていること
pythonは2017_12_10時点で最新の3.6.2ではなく3.5の代ではないと途中のtrolliusをインストールするところで入らないのでダウングレードする必要があります!
そして自分はpyenvとか使ってないから一回環境ぶち壊れたよ!(^o^)ノ
 
ダウングレードする場合は

conda install python=3.5

 

Chocolateyのインストール

Windowsのキーを押し検索で” vs2015 x64 native tools command prompt”のアプリを探し、右クリックして[管理者として実行]を選択。
f:id:weekendproject9:20171211175455p:plain

以下のコマンドを張り付けて実行

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

そしたら警告が出てきました
警告1.
WARNING: It's very likely you will need to close and reopen your shell
before you can use choco.

インストールしたあと使いたかったら再起動しろと。わかりました。

警告2.
WARNING: You can safely ignore errors related to missing log files when
upgrading from a version of Chocolatey less than 0.9.9.
'Batch file could not be found' is also safe to ignore.
'The system cannot find the file specified' - also safe.

これは無視できるらしい

警告3.
警告: Not setting tab completion: Profile file does not exist at
'C:\Users\\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.

これはファイルがないよと言ってますが、別に使わない?ので無視
 
コマンドラインで "choco -v" でバージョン確認
0.10.8
 
一応アップデートする

choco upgrade chocolatey

 

依存関係のインストール

コマンドは vs2015 x64 native tools command promptで実行する
・gitインストール

choco install -y git

環境変数いじったよって言われる
 
・cmakeインストール

choco install -y cmake

環境変数に ”C:\Program Files\CMake\bin” を追加
 
python入れてない人は

choco install -y python

 

Boostインストール

以下からBoostをダウンロード
https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-64.exe/download?use_mirror=jaist

exeでインストールしたあと、環境変数を追加
 BOOST_ROOT    : C:\local\boost_1_61_0
 BOOST_LIBRARYDIR  : C:\local\boost_1_61_0\lib64-msvc-14.0
またpathにも追加
 C:\local\boost_1_61_0\lib64-msvc-14.0

開発者ツールのインストール

 pip install vcstool
 choco install -y curl

 

依存関係をインストールする

Release 2017-04-04-1 · ros2/choco-packages · GitHub
ここに行き、一つずつクリックして以下をダウンロード
・asio.1.10.6.nupkg
・eigen.3.3.3.nupkg
・tinyxml-usestl.2.6.2.nupkg
・tinyxml2.4.0.1.nupkg

以下でインストール。”PATH\TO\DOWNLOADS\” はダウンロードしたフォルダ名に書き換える

choco install -y -s <PATH\TO\DOWNLOADS\> asio eigen tinyxml-usestl tinyxml2

以下pipでインストール

pip install -U setuptools pip
pip install EmPy pyparsing pyyaml
pip install nose coverage mock pytest pytest-cov pytest-runner
pip install flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pep8 pydocstyle pyflakes

↓python3.6は対応していないので注意(trollius 2.1 : Python Package Index

pip install trollius
choco install -y cppcheck

C:\Program Files\CppcheckをPATHに追加する。

opencvインストール

 公式wikiとはちょっとPathを変えてますが以下になります。
 Visual Studio 2015:
  https://github.com/ros2/ros2/releases/download/release-beta2/opencv-2.4.13.2-vc14.VS2015.zip
 解凍して移動→C:\dev\opencv\opencv-2.4.13.2-vc14.VS2015
 環境変数を追加

setx -m OpenCV_DIR C:\dev\opencv\opencv-2.4.13.2-vc14.VS2015

C:\dev\opencv\opencv-2.4.13.2-vc14.VS2015\x64\vc14\bin をPATHに追加

OpenSSLインストール

以下からWin64 OpenSSL v1.0.2をダウンロードします。Win32またはLightバージョンはダウンロードしないでください。
Shining Light Productions - Win32 OpenSSL
exe起動。基本的に進むのみをクリック。最後の寄付はチェックを外してfinish。

setx -m OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg

また、C:\OpenSSL-Win64\bin\をPATHに追加。
  

ソースの取得

C:直下にファイルを作って移動する

 md \dev\ros2\src
 cd \dev\ros2 

ros2.reposクローンを作成するリポジトリを定義するファイルを取得

curl -sk https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos -o ros2.repos

次に、vcs、ros2.reposにリストされているリポジトリをインポートする

vcs import src < ros2.repos

 

ROS 2コードの作成

フォルダツリーを構築してビルド。”--build-tests”オプションを追加してテストできる
結構時間かかります

cd C:\dev\ros2
python src\ament\ament_tools\scripts\ament.py build
python src\ament\ament_tools\scripts\ament.py build --build-tests

 

実行

一回vs2015 x64 native tools command promptを再起動して以下実行

> call install\local_setup.bat
> ros2 run demo_nodes_py talker

↓以下実行結果↓
C:\dev\ros2>ros2 run demo_nodes_py talker
[INFO] [talker]: Publishing: "Hello World: 0"
[INFO] [talker]: Publishing: "Hello World: 1"
[INFO] [talker]: Publishing: "Hello World: 2"
[INFO] [talker]: Publishing: "Hello World: 3"
[INFO] [talker]: Publishing: "Hello World: 4"
[INFO] [talker]: Publishing: "Hello World: 5"
[INFO] [talker]: Publishing: "Hello World: 6"
[INFO] [talker]: Publishing: "Hello World: 7"
[INFO] [talker]: Publishing: "Hello World: 8"
[INFO] [talker]: Publishing: "Hello World: 9"
[INFO] [talker]: Publishing: "Hello World: 10"
[INFO] [talker]: Publishing: "Hello World: 11"
[INFO] [talker]: Publishing: "Hello World: 12"
[INFO] [talker]: Publishing: "Hello World: 13"
[INFO] [talker]: Publishing: "Hello World: 14"
[INFO] [talker]: Publishing: "Hello World: 15"
[INFO] [talker]: Publishing: "Hello World: 16"
[INFO] [talker]: Publishing: "Hello World: 17"
[INFO] [talker]: Publishing: "Hello World: 18"
[INFO] [talker]: Publishing: "Hello World: 19"
[INFO] [talker]: Publishing: "Hello World: 20"
[INFO] [talker]: Publishing: "Hello World: 21"
[INFO] [talker]: Publishing: "Hello World: 22"
[INFO] [talker]: Publishing: "Hello World: 23"
[INFO] [talker]: Publishing: "Hello World: 24"
[INFO] [talker]: Publishing: "Hello World: 25"

 
f:id:weekendproject9:20171211175612p:plain
 
とりあえずインストールと実行は完了しました。
 

 
「参考」
Windows Development Setup · ros2/ros2 Wiki · GitHub
Troubleshooting