UnityとRaspberry Pi上のROSをつなぐには?
ROS#というUnityで動くROSのC#で書かれたコネクタがあるようだが、そのためにはWebSocket経由でROSのパケットを外部とやり取りするrosbridge_serverをセットアップしなければいけない。
だが、インストール方法の説明が、OSのパッケージマネージャーを使う方法しかなく、自前でビルドしたROS環境での方法が説明されていない。
本稿ではソースからビルドして動かした過程を記載する。
rosbridgeの取得
Githubからクローンする。
ワークスペースのsrcフォルダで、クローンする。
$ git clone https://github.com/RobotWebTools/rosbridge_suite.git
手動で依存関係解決してビルド
これで、catkin_makeすればいいかと思いきや、足りないものがいくつかあるので、手動で依存関係を解決していく。
$ git clone https://github.com/ros/common_msgs.git
そしてビルド。ワークスペースのルートで。
$ catkin_make
実行すると、今度はPythonのライブラリがないといわれる。
仕方がないので、さらに手動で依存関係の解決。最初はpipさえ入っていなかったので、インストール。
$ sudo apt install python-pip
必要なPythonのライブラリなどをインストール
$ sudo pip install twisted
$ sudo apt install libffi-dev
$ sudo pip install pyopenssl
$ sudo pip install autobahn
$ sudo pip install service_identity
さらに、rosauthがないといわれるので、
srcで、
$ git clone https://github.com/GT-RAIL/rosauth.git
ワークスペースのルートで
$ catkin_make
さらに、まだ足りないといわれるので、
$ sudo pip install tornado
$ sudo pip install pymongo
なお、pymongoは、BSONが必要だったので、bsonをpipでインストールしたところ、エラーで動かず、調べたところ、このような記載を見つけたので、代わりにインストールした。
ここまででやっと実行できるようになった。
実行
$ roslaunch rosbridge_server rosbridge_websocket.launch
やったー
動いた
2019-12-15 17:19:54+0000 [-] [INFO] [1576430394.149245]: Rosbridge WebSocket server started at ws://0.0.0.0:9090