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とデータのやりとりを行うことができます。
まずSkyWay for ROS内に、SkyWayサーバとやり取りするために Peer Objectを生成します。以下のドキュメントを参照してください。
Peer Objectが生成できたら、MediaConnection, DataConnectionの接続処理及び待ち受けが行えるようになります。以下のページを参照してください。
DataConnectionが確立できたら、Pluginを介して外部ROS Moduleとデータのやり取りを行えます。 Pluginの仕様についてはこちらのドキュメントを参照してください。
tipsも参照して下さい。
examplesディレクトリ及びskyway_for_ros_examplesリポジトリを参照して下さい。