クワマイでもできる

クワマイでもわかる

ROS#:カメラ映像をSubscribe

UnityとROSを通信させるのに便利なROS#(ros sharp)には、ROSでPublishしたカメラ映像をUnityでSubscribeするスクリプトが用意されている。ROS#v1.2c以前とv1.3ではちょっと使い方が違うのでメモ。

動作環境

  • Unity動作用PC
  • ROS動作用PC
    • Ubuntu16.04
    • ROS Kinetic Kame

ROS#のセットアップ

セットアップ方法は以前書いた。今回はセットアップ済みの状態から始める。

kuwamai.hatenablog.com

カメラ映像のSubscribe

Planeの配置

Hierarchie windowを右クリックして3D Object/Pleneを選択。
このObjectにカメラ映像が表示されるので、お好みのObjectで。

f:id:kuwamai:20181212005224p:plain

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

f:id:kuwamai:20181212005743p:plain

カメラ映像のPublishは以前作成したシミュレーター上のカメラ映像を使ってみる。リンク先のREADMEの通りにコマンドを実行していけば、上記スクショと同じTopic名の映像がPublishされる。
これは例なので、自分で作ったロボットがあれば適宜Topic名を合わせてください。

カメラ映像の確認

UnityとROSの接続はセットアップ編を参照。

kuwamai.hatenablog.com

無事に接続したら、Planeにカメラ映像が表示される。

f:id:kuwamai:20181212012711p:plain

ちなみにシミュレーターの外観はこんな感じ。明るいグレーがシミュレーター上の空、暗いグレーが地面、白いのがロボット本体。

f:id:kuwamai:20180711172137p:plain

参考

ROSのセットアップはこちら。