Azarashi Tech Blog

日常における日常的なことやテクノロジー的なこと

ROS2をWindows10ノートパソコンにインストール

 

Maker Faire Tokyo 2018のシステムを作るために、ROS2をWindows10ノートパソコンにインストールする必要がある。

 

ROSはよく使っているが、Ubuntuでしかサポートされていなかった。

http://wiki.ros.org/

 

それに対して、ROS2はWindows(Windows 10だけだけど)とMacにも対応。

github.com

 

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走らせなくていい。ある意味で不安。

 

これで一通りインストールできた!と思ったらサンプルを動かすと以下のようになってしまった。 

f:id:surumetic-machine-83:20180520083059p:plain

 

問題①

「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のところでエラー発生。

f:id:surumetic-machine-83:20180527190646p:plain

cmake_c_compilerとかcmake_cxx_compilerとか見つからないと出ている。

どうやらVS2015のコンパイラがうまく働かなかったと見える。

⇒このへんにたどり着き、再度VS2015にて「Windows10 SDK」関連のパッケージをインストール。

stackoverflow.com

 

問題④

今度はasioやtinyxmlのincludeとこだとか、pthreadないとかいわれる

f:id:surumetic-machine-83:20180527191326p:plain

 

⇒ビルドするときに--cmake-args -DEPROSIMA_BUILD=ONをオプションにつけてやると、自動的に必要パッケージもってきてくれることが分かり、解決。

f:id:surumetic-machine-83:20180527191447p:plain

問題⑤

かなりいいところまで来たな、コンパイル進んでるやん、と思ったら以下のエラー。単に***/src/ex-curl-7.57.01234/curl-7.57.0を***/src/curl-7.57.0と変更するのに失敗しただけに見える。

f:id:surumetic-machine-83:20180527191642p:plain

⇒手動で***/src/ex-curl-7.57.01234/curl-7.57.0を***/src/curl-7.57.0と変更。