こんにちは。
前回チュートリアル一通りやろう!と思ったけどそもそもまだ環境設定をしてなかったので、Windowsの設定を行ってみる。
https://index.ros.org/doc/ros2/Installation/Dashing/Windows-Install-Binary/
どうせなら最新を、ということでDashingを選択。
おなじみのtalker/listenerのサンプル試したら地味にはまってしまった。。
前回チュートリアル一通りやろう!と思ったけどそもそもまだ環境設定をしてなかったので、Windowsの設定を行ってみる。
https://index.ros.org/doc/ros2/Installation/Dashing/Windows-Install-Binary/
どうせなら最新を、ということでDashingを選択。
事前準備
Install Chocolatey
chocolateyってのを入れる必要があるらしい。
ここのInstalling Chocolateyを参考にインストールする。
Install OpenSSL
公式でのバージョンの指定が" Win64 OpenSSL v1.0.2."になっていたので、新しいバージョンもあったけど古いのを入れた。
環境変数のPathに”C:\OpenSSL-Win64\bin\”を追加するのを忘れない。
Python、Visual Studio のインストールはスキップ。(インストール済みだったので)
Install OpenCV
サンプルでOpenCV使うことがあるから入れとく模様。
https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip
Pathの追加しとくと捗る。C:\opencv\x64\vc16\bin
Install Dependencies
色々必要なものを入れる。ダウンロードしてきてから、以下のコマンドを実行。
$ choco install -y -s <PATH\TO\DOWNLOADS\> asio eigen tinyxml-usestl tinyxml2 log4cxx
<PATH\TO\DOWNLOADS¥>は実際にasioとかダウンロードしたところを指定すればOK。
途中で環境変数書き換わるメッセージがでるが、以下のコマンド打てば開きなおさなくてもいいよと表示されてた。便利~
$ refreshenv
さらにPython関係の設定。
$ python -m pip install -U catkin_pkg empy lark-parser lxml numpy opencv-python pyparsing pyyaml setuptools
RQt関係の設定もして、事前準備完了。
$ python -m pip install -U pydot PyQt5
ROS2 Setup & サンプルの実行
Downloading ROS2
事前準備意外と長かった、、こっからはすんなりいくはず。
ここからwindows用の最新のzipファイルをダウンロードする。とりあえずdebug版にしたら1GBくらいあった。。展開先はC:\dev\ros2を想定してるっぽいのでそこに展開する。
Set up the ROS2 environment
以下のコマンドを実行する。
$ call C:\dev\ros2\local_setup.bat
ROS1でubuntuで実行するときのsetup.bash的なやつかと思われる。
Warningが出るけど、”Install additional DDS implementations (optional)¶”を無視して出ているだけなので、とりあえず問題ない。
Try some Example
おなじみのtalker/listenerのサンプル試したら地味にはまってしまった。。
$ ros2 run demo_nodes_cpp talker
$ ros2 run demo_nodes_py listener
実行しようとすると
C:\>ros2 run demo_nodes_cpp talker
failed to create process.
となってさっぱり理由がわからなかったのでググったら似たような地雷を踏んだ人を発見。
ros2_script.pyの中のPythonのPathが実際にインストールされてるのと違ったので、ros2-script.pyの一行目を書き換えたらいちおーうまく動いた。ちなみにrelease版だとPathが違う模様、うーむ。。みんな踏んでない人はrelease版使ってるのかなあ。
ちなみに以下のエラーが出てるけど、何かミスったかなぁ。Windowsやっぱり使おうて思ったらちゃんと調べてみる。
C:\>ros2 run demo_nodes_cpp talker
Failed to load entry point 'test': No module named 'yaml'
Failed to load entry point 'launch': No module named 'yaml'
Failed to load entry point 'info': No module named 'rclpy._rclpy'
感想
思ったよりはサンプル動かすまで手順少なかったけど、それでもやっぱりちょっとめんどくさかった。わざわざWindows使う理由もないからMacかUbuntuでやろうかな。。