1 of 12

ROS multimasterについて

2016年6月26日

Ron Tajima

2 of 12

ROSは基本Single Master System

2

Advertise

Masterに知らせる

Subscribe

Masterに問い合わせ

Peer to peerで通信

http://wiki.ros.org/ja/Master

  • ポート番号を変えることで複数のマスターを立てること自体は可能
  • システム間の情報のやりとりは(ROS標準の枠組みでは)できない

port:11311

port:11311

3 of 12

複数のMasterを使いたい場合もある

  • 自立性の高いロボットやモジュールが複数ある
    • ふだんは独立に動作
    • それぞれが勝手に起動/停止
    • 必要に応じて情報を共有(環境の認識結果、地図、自分の行動計画など)
    • 例:たくさんの協調型ロボット(自動運転車、ドローン、ロボットアーム、ネットワークカメラ等)
    • 例:ユーザインタフェースとロボットの分離(AndroidタブレットとロボットのPC)
  • 大きなネットワークをまたいで動作させたい
    • イントラネット、インターネット等
    • いわゆるクラウドロボティクスですか…
  • 負荷を分散したい(?)
    • 画像処理、点群処理、DNNなど
    • Multi masterでなくても複数のPCで動かせる
    • ネットワークでの遅延時間が増えることは予想される

3

4 of 12

ROSのMultimasterサポート(の歴史)

  • Multimaster SIG: Special Interest Group (Coordinator: Daniel Stonier)�http://wiki.ros.org/sig/Multimaster
    • 今はアクティブなんでしょうか?

4

5 of 12

rocon (Robotics in Concert)

  • rocon_concert (by Daniel Stonier, Jihoon Lee)�http://wiki.ros.org/rocon_concert (indigo)
  • Gateway モデル
    • gatewayがROSのAPIをルーティング
    • masterは自動的に見つけてくれる (avahi daemon)
    • 実行している最中にもルーティングを変えられる、らしい
  • とっても大きい(関連パッケージ “rocon_*” が39個)
    • チュートリアルもたくさんあるが、散逸気味�http://wiki.ros.org/rocon/Tutorials
    • GUIが充実(いいのか悪いのか)
    • インターネット空間でのゲートウェイ発見はターゲットにしてない(TODO)�
  • 複雑すぎて、今回は挫折しました…

5

6 of 12

rocon: gateway モデル

6

ドキュメントから推測するに、GatewayがTCP/IP:ポートのルーティングをやっているのでしょう…

7 of 12

Rapyuta RCE (a.k.a. RoboEarth)

  • Rapyuta: A Cloud Robotics Platform (by RoboEarth project)�http://rapyuta.org/ (groovy)

  • 厳密に言うとMultimasterではない
    • インターネット上のサーバ (まあ、クラウド) とロボット間の通信
    • ロボット(マスター)間の直接の通信をサポートするものではない
    • Websocketでサーバと接続してJSONでROSメッセージを流す仕組み

  • RCEについてはほぼObsolute(現状そのままでは試せない)
    • 今後、Rapyuta robotics から素敵な製品かサービスが出てくる、でしょう

7

8 of 12

multimaster_fkie

  • multimaster_fkie (by Alexander Tiderko, Fraunhofer KIE)�http://wiki.ros.org/multimaster_fkie (jade)
  • multicastによるmastar同士のdiscovery,synchronization
    • ノード間の通信がPeer to peer なのは通常と同じ
    • 異なるネットワーク上のノード同士の接続はダイレクトに行われる(IPとポートが’見えてる’必要あり)
    • デフォルトではすべてのトピック・サービスが単一の名前空間に乗る
  • とっても小さい(関連パッケージは5つ)
    • multimaster_msgs_fkie, master_discovery_fkie, master_sync_fkie, �node_manager_fkie, default_cfg_fkie
  • チュートリアルが無い…
  • しかしいい資料があった!

8

9 of 12

multimaster_fkie: 可能なネットワーク構成

9

同一サブネット内

複数のLAN同士

(ちゃんとルーティングされていれば)

各マスターの持っているトピックとサービスのマップをすべてのマスター間で同期させる

10 of 12

multimaster_fkie: Dockerで試せるようにしてみました

  • デモ

10

11 of 12

まとめ

  • たくさんのロボットを使う場合のMultimasterのしくみを紹介
    • 需要はあるのだろうがあまり決定版が無い印象
    • そもそもロボットたくさん作る/使うのは大変ですが

  • 現状(indigo以上)ではroconかmultimaster_fkieのどちらか
    • 私はシンプルなのでmultimaster_fkieを使いたくなりました
    • rocon… 使っている人はいますか…だれかわかりやすく教えてください…

  • Dockerって便利
    • サーバの設定とかを再利用する形で残せる
    • VMと違って軽い、ロボットでもそのまま使えそう

11

12 of 12

参考文献、情報源

12