ROS#:カメラ映像をSubscribe
UnityとROSを通信させるのに便利なROS#(ros sharp)には、ROSでPublishしたカメラ映像をUnityでSubscribeするスクリプトが用意されている。ROS#v1.2c以前とv1.3ではちょっと使い方が違うのでメモ。
動作環境
- Unity動作用PC
- Windows 10
- ROS# v1.3
- Unity 2018.2.17f1
- Visual studio 2017
- ROS動作用PC
- Ubuntu16.04
- ROS Kinetic Kame
ROS#のセットアップ
セットアップ方法は以前書いた。今回はセットアップ済みの状態から始める。
カメラ映像のSubscribe
Planeの配置
Hierarchie windowを右クリックして3D Object/Plene
を選択。
このObjectにカメラ映像が表示されるので、お好みのObjectで。
Image Subscriber
RosConnectorがアタッチされたGameObjectにAssets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImageSubscriber.cs
をアタッチする。
TopicにSubscribeしたいカメラ映像のTopic名を書いて、Mesh Rendererに先ほど作成したPlaneをドラッグ&ドロップ。Time Stepは…よくわかんないけどTopicが来てから何ms更新しない的なやつかな。
大きいほど映像の更新がゆっくりになります。
↓なんかコメントが書いてある。
the rate(in ms in between messages) at which to throttle the topics
カメラ映像のPublishは以前作成したシミュレーター上のカメラ映像を使ってみる。リンク先のREADMEの通りにコマンドを実行していけば、上記スクショと同じTopic名の映像がPublishされる。
これは例なので、自分で作ったロボットがあれば適宜Topic名を合わせてください。
カメラ映像の確認
UnityとROSの接続はセットアップ編を参照。
無事に接続したら、Planeにカメラ映像が表示される。
ちなみにシミュレーターの外観はこんな感じ。明るいグレーがシミュレーター上の空、暗いグレーが地面、白いのがロボット本体。
参考
- ROS# v1.2c以前の手順
ROSのセットアップはこちら。