/bloom-test

Primary LanguageRustMIT LicenseMIT

SkyWay for ROS

ROSからSkyWayを利用するためのパッケージです。

端末間でP2P接続を行うための規格としてWebRTCが標準化されています。 SkyWayはWebRTCプラットフォームであり、SkyWayを利用することで、ブラウザ・iOS・Androidなどの環境で相互にWebRTC接続を簡単に行うことができます。 WebRTCは映像と音声を双方向通信するためのMediaStreamと、データを転送するためのDataChannelが定義されています。 Skyway for ROSを利用することで、MediaStreamとDataChannelをROSパッケージから利用することができます。

全体的なモジュール構成は下図の通りです。 モジュール

SkyWay for ROSでは2つのサービスが提供されており、これらを利用し操作を行うことで、外部プログラム(Peer)に対してMediaStreamとDataConnection(over DataChannel)の確立を行います。

SkyWay for ROS内のMediaSocketに対してRTP/RTCPを送信することで、確立されたMedia Connectionを経由して、Peerに対して映像と音声を送ることができます。 また、データ転送用のROS Pluginをユーザ側で定義することができ、そのPluginに対してROS Topic, Service, Actionなどを用いてデータを送受信することで、 Peerとデータのやりとりを行うことができます。

操作方法とAPI仕様

まずSkyWay for ROS内に、SkyWayサーバとやり取りするために Peer Objectを生成します。以下のドキュメントを参照してください。

Peer Objectが生成できたら、MediaConnection, DataConnectionの接続処理及び待ち受けが行えるようになります。以下のページを参照してください。

DataConnectionが確立できたら、Pluginを介して外部ROS Moduleとデータのやり取りを行えます。 Pluginの仕様についてはこちらのドキュメントを参照してください。

tipsも参照して下さい。

サンプル・実行方法

examplesディレクトリ及びskyway_for_ros_examplesリポジトリを参照して下さい。