ROS2をWindows10ノートパソコンにインストール
Maker Faire Tokyo 2018のシステムを作るために、ROS2をWindows10ノートパソコンにインストールする必要がある。
ROSはよく使っているが、Ubuntuでしかサポートされていなかった。
それに対して、ROS2はWindows(Windows 10だけだけど)とMacにも対応。
CaptoGloveはドライバがWindowsしかないが、データ解析をUbuntuのパソコンでやりたい。ので、一台使ってなかったWindows10のパソコンにCaptoGloveのお相手をしてもらって、ROS2でUbuntuパソコンにそのデータを送ってもらおうというわけです。
[ CaptoGlove ] ----- [ Windows 10 ノートPC ] ----- < ROS2 > ----- [ Ubuntu パソコン ]
※別にROS2使わずに普通に通信するsever-client用意すればいいんじゃないの?ただROS2使いたいだけじゃないの?と思われたかもしれません。答えはYESです。
基本的には、以下に書かれている手順を踏めば良いだけ・・・だが、
意外と工程が面倒。WindowsなのにLinuxを相手にしてるんじゃないかと錯覚する。
https://github.com/ros2/ros2/wiki/Windows-Install-Binary
割とどうインストールすればいいかオプションがあってどうしようかと思った。結局、以下のように設定。
- Compile from sourceでインストール(Binaryインストールは失敗)
- OpenCV 3系ではなく、OpenCV 2.4.13.2 を利用。
- DDSはeProsima FastRTPSを使用(OpenSplice等のほかのものは使わず)
- Visual StudioはVS2015 Community
ROSと同じやなって思った点
- 最初にsetup_local.batを走らせなくてはならない(shファイルを動かさないといけない点がROSと同じ)
ROSと違うんやなって思うのは
- roscore走らせなくていい。ある意味で不安。
これで一通りインストールできた!と思ったらサンプルを動かすと以下のようになってしまった。
問題①
「Failed to load entry point "call" : No module called yaml」といわれる。pyyamlをpipでインストールにしているにも関わらず・・・。
⇒ 結果的に、一回pyyamlをアンインストールして再インストールすることで解決。
python -m pip uninstall pyyaml
python -m pip install --upgrade pyyaml
問題②
本来は「talker」がpublishしたメッセージを「listener」がsubscribeしてほしいのであるが、listenerがメッセージを無視している。
⇒改善せず。
⇒他のPCでも試したけどだめ。
⇒binaryインストール版を諦めて、source コンパイルすることになった。
問題③
ソースコンパイル版の手順に従ったが、console bridgeのところでエラー発生。
cmake_c_compilerとかcmake_cxx_compilerとか見つからないと出ている。
どうやらVS2015のコンパイラがうまく働かなかったと見える。
⇒このへんにたどり着き、再度VS2015にて「Windows10 SDK」関連のパッケージをインストール。
問題④
今度はasioやtinyxmlのincludeとこだとか、pthreadないとかいわれる
⇒ビルドするときに--cmake-args -DEPROSIMA_BUILD=ONをオプションにつけてやると、自動的に必要パッケージもってきてくれることが分かり、解決。
問題⑤
かなりいいところまで来たな、コンパイル進んでるやん、と思ったら以下のエラー。単に***/src/ex-curl-7.57.01234/curl-7.57.0を***/src/curl-7.57.0と変更するのに失敗しただけに見える。
⇒手動で***/src/ex-curl-7.57.01234/curl-7.57.0を***/src/curl-7.57.0と変更。