2019年7月18日木曜日

[メモ] ROS2をMacで動かすときに注意すること

こんにちは。

前回WindowsでROS2試して色々とめんどくさかったので、Macで試してみました。
思ったより色々と地雷を踏んだ末にいちおーサンプルは動きました。(2019.7.18 に動作確認実施)

色々とググって近藤さんのブログ等参考にしたんですが、一番の注意点としては、最新のROS2のバイナリ(https://github.com/ros2/ros2/releases)を使う場合は関連するツールのバージョンがあってないと起動しなかったです。

具体的には以下のようなエラーが大量に出てLibraryがloadできない、みたいな感じだったんですが、エラーにでてくる/usr/local/opt/poco/lib/をみてみたらlibPocoFoundation.62.dylibがあったので、そっちにシンボリックリンクを貼ったら(他のrosbag関連のエラーはちょっとでてたけど無視して)talkerが想定どおり動いてlistener側でTopicが表示されました。(他にもtinyxml2の問題とか踏んだ気もするけど気のせいかもなので省略。)


$ ros2 run demo_nodes_cpp talker

Failed to load entry point 'test': dlopen(/Users/XXXX/ros/dashing/lib/python3.7/site-packages/rclpy/_rclpy.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/poco/lib/libPocoFoundation.60.dylib
  Referenced from: /Users/XXXX/ros/dashing/lib/librosidl_typesupport_c.dylib
  Reason: image not found



以前Ubuntuで試した時は数十分でサンプルは動いた気がするのでもし変なとこではまりたくなかったらUbuntuでやるのが無難なのかなーとは思いました。
ただMacで動くには動くことがわかったので、Ubuntu準備するのがめんどくさい!て場合はバージョン等に気をつけて使ってみるのはありかもしれません。(エラーちゃんと読めば何となく問題もわかるし)


とりあえず動いてめでたしめでたし。

[追記 2019.7.19]
console_bridgeがなくてエラーが表示されていたのでconsole_bridgeを入れてみたら実行時のエラーメッセージがすべて消えた。console_bridge入れる手順見逃してたかな。。

$ brew install console_bridge


次はざっとこの辺みてみよう。
https://index.ros.org/doc/ros2/Tutorials/