JP2019054455A - 通信デバイス、情報通信端末装置及び通信方法 - Google Patents

通信デバイス、情報通信端末装置及び通信方法 Download PDF

Info

Publication number
JP2019054455A
JP2019054455A JP2017178197A JP2017178197A JP2019054455A JP 2019054455 A JP2019054455 A JP 2019054455A JP 2017178197 A JP2017178197 A JP 2017178197A JP 2017178197 A JP2017178197 A JP 2017178197A JP 2019054455 A JP2019054455 A JP 2019054455A
Authority
JP
Japan
Prior art keywords
communication
data
communication device
protocol
topic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017178197A
Other languages
English (en)
Other versions
JP7049641B2 (ja
Inventor
大川 猛
Takeshi Okawa
猛 大川
悠平 菅田
Yuhei Sugata
悠平 菅田
金光 大津
Kanemitsu Otsu
金光 大津
隆史 横田
Takashi Yokota
隆史 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Utsunomiya University
Original Assignee
Utsunomiya University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Utsunomiya University filed Critical Utsunomiya University
Priority to JP2017178197A priority Critical patent/JP7049641B2/ja
Publication of JP2019054455A publication Critical patent/JP2019054455A/ja
Application granted granted Critical
Publication of JP7049641B2 publication Critical patent/JP7049641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】少ないハードウエア資源によって構築し、画像処理などの処理を高速化するとともに、通信遅延の低減と低消費電力化を実現する通信デバイスなどを提供すること。【解決手段】ロボットシステム1は、駆動コンポーネント20に形成される通信デバイス200が必要なメッセージを受信する際の通信コネクションを確立するまでの通信制御については、アプリケーションと連動するXML−RPCなどの通信プロトコルを用いるとともに、メッセージの配信については、並列処理が可能な論理回路の出力を他の通信デバイスに直接的に提供するためのTCPROSなどの通信プロトコルを用いる構成を有している。【選択図】図1

Description

本発明は、他の通信デバイスとの間においてデータ通信を行う通信デバイスなどに関する。
従来、飛行型ドローン、陸上移動型ロボット、水中ロボット等の各種ロボットが開発されてきており、特に、ヒューマノイド(人型ロボット)のようなロボットシステムにおいては、一般的に、頭部等に設けたカメラや当該カメラを駆動する駆動回路(CPUも含む。)などから構成されるコンポーネント(以下、「カメラコンポート」ともいう。)と、手足を駆動させるためのモータやアクチュエータ(以下、これらをまとめて「モータ」という。)とこれらの駆動回路(CPUも含む。)などから構成される駆動制御用コンポーネント(以下、「駆動コンポーネント」ともいう。)と、を備えている。
また、この種のロボットシステムにおいては、カメラコンポーネントは、カメラ画像データに対する特徴点の抽出や認識結果を得るための画像処理を実行するとともに、その結果を示すデータ(以下、「画像処理結果データ」ともいう。)を、駆動コンポーネントに送信し、各駆動コンポーネントは、取得した画像処理結果データに基づいて、モータを駆動して、障害物回避等の自律駆動を実現する構成を有している。
一方、最近では、この種のロボットシステムにおいて、各コンポーネント間をギガビットイーサネット(例えば、1000base−T等の通信規格/登録商標)によって相互接続して、コンポーネント間の配線を単純化する方法が採用されている。
また、最近では、画像処理結果データ送信時に通信遅延を解消し、かつ、データのリアルタイム性を確保するため、FPGA(field programmable gate array)を用いる通信デバイスが提案されている。
特に、FPGAを用いてカメラ画像に画像処理を実行させることによって、マイクロプロセッサの処理負担を低減し、かつ、当該FPGAの出力となる画像処理結果データの送受信処理のみをマイクロプロセッサを用いたアプリケーションの処理を実現するSoC(system on chip)通信デバイス(ROS:robot operating system)準拠FPGAコンポーネントが知られている(例えば、非特許文献1)。
さらに、通信遅延を削減するため、SoC上のロジック回路(以下、「論理回路」ともいう。)によって実行する通信デバイスも提案されており(例えば、特許文献1)、また、当該通信デバイスは、画像処理用のFPGAと組み合わせることによって、通信遅延を防止しつつ、かつ、低消費電力化をも実現可能となっている。
US20060168070A1
Kazushi Yamashina,Takeshi Ohkawa,Kanemitsu Ootsu and Takashi Yokota, "Proposal of ROS−compliant FPGA Component for Low−Power Robotic Systems −−−case study on image processing application−−−," Proceeding of 2nd International Workshop on FPGAs for Software Programmers(FSP2015), P62〜67, 201.09.01
しかしながら、上記特許文献1に記載の方法では、ROSのプロトコルに従った通信処理を、組込み向けのマイクロプロセッサ上のアプリケーションにより実現するので通信遅延時間が大きくなり、そのため、通信遅延時間を削減するために、ハードウエア化をすると、ハードウエア量が多くなり、通信デバイスの設計コストと製造コストが増大してしまう。
本発明は、上記課題を解決するためになされたものであり、その目的は、少ないハードウエア資源で実現し、画像処理等の処理を高速化し、かつ、通信遅延の低減と低消費電力化を実現する通信デバイス等を提供することにある。
(1)上述した課題を解決するため、本発明は、
論理回路によって加工された、予め定められたトピックに属する実データを他の通信デバイスに配信する通信デバイスであって、
所定のアプリケーションと連動する第1通信プロトコルに従って、前記トピックにおける前記他の通信デバイスとのデータ通信を実行するための通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1通信アドレスを含む第1通信制御用データを、前記通信デバイス間のデータ通信を管理する管理装置に登録する登録手段と、
特定の前記トピックにおける前記第1通信アドレスを含む前記第1通信制御用データを前記管理装置から取得した前記他の通信デバイスから、前記第1通信プロトコルに従って、当該特定のトピックに関するデータ通信を実行するための第1通信コネクションの確立要求を受け付ける第1受付手段と、
前記第1通信コネクションの確立要求が受け付けられた場合に、前記第1通信プロトコルに従って、当該確立要求をした他の通信デバイスとの前記第1通信コネクションを確立する第1確立手段と、
前記第1通信プロトコルとは異なり、かつ、前記論理回路を用いる第2通信プロトコルによって前記特定されたトピックにおける実データを配信するための通信用制御データであって、当該実データを配信する際に用いる前記第1通信アドレスとは異なる第2通信アドレスを含む第2通信用制御データを、前記第1通信プロトコルに従って、前記第1通信コネクションが確立された他の通信デバイスに配信する第1配信手段と、
前記配信された第2通信用制御データに含まれる第2通信アドレスを用いることによって、前記他の通信デバイスから、前記第1通信プロトコルに従って、前記特定のトピックにおける実データのデータ通信を実行するための第2通信コネクションの確立要求を受け付ける第2受付手段と、
前記第2通信コネクションの確立要求が受け付けられた場合に、前記第2通信プロトコルに従って、当該確立要求をした他の通信デバイスとの第2通信コネクションを確立する第2確立手段と、
前記第2通信プロトコルに従って、前記確立された第2通信コネクションを介して、前記論理回路から出力された前記特定のトピックにおける実データを、該当する他の通信デバイスに配信する第2配信手段と、
を備える構成を有している。
この構成より、本発明は、特定のトピックにおける実データが必要な他の通信デバイスとはアプリケーション(ソフトウエア)と連動する第1通信プロトコル(例えば、XML−RPC:Extensible Markup Language−Remote Procedure Call)によって通信コネクションを確立し、実データの配信については、第2通信プロトコル(例えば、TCPROS:Transmission Control Protocol for ROS Messages and Service)によって論理回路(例えば、FPGA:Field Programmable Gate Array)の出力を直接的に提供する通信コネクション(例えば、TCPコネクション)を確立することができるので、実データについては、通信遅延なく、他の通信デバイスに提供することができる。
そして、本発明は、実データの配信についてのみ論理回路のハードウエア資源を用いるので、少ないハードウエアによって構成することができるとともに、当該実データの配信については、マイクロプロセッサなどのCPUや種々の回路が不要となるので、実データに関する処理の高速化を実現し、かつ、低消費電力によって駆動することができる。
特に、XML−RPCなどのアプリケーションに従った通信プロトコルは、アプリケーションに従ってマイクロプロセッサが各処理を実行するが、処理能力が低い低消費電力のマイクロプロセッサを用いた場合であっても、実データの配信の通信遅延には影響しない。
しかしながら、このようなアプリケーションに従った通信処理は、ハードウエア資源によって通信パートを構築する場合には、当該通信パートにおける通信ポートをハードウエア資源によって複数実装する必要がある。
このため、通信ポートの増加は、ハードウエア資源の増加に直結するため、当該アプリケーションに従った通信処理を用いる場合には、少ないハードウエア資源によって実現することは難しく、さらに、ハードウエアの開発コスト及び製造コストが増大することも想定される。
一方、TCPROSなどの論理回路の出力を直接的に提供することが可能な通信プロトコルは、少ない数の通信ポート(例えば、1ポート)で実現できるため、少ないハードウエアで実現可能である。
しかしながら、このような通信プロトコルをアプリケーションに従ってマイクロプロセッサが各処理を実行することによって実現すると、当該マイクロプロセッサの処理負担が大きくなり、結果的には通信遅延の原因となる。
そこで、本発明は、他の通信デバイスが必要な実データを受信する際の通信コネクションを確立するまでの通信制御については、アプリケーションと連動する通信プロトコルを用いるとともに、実データの配信については、論理回路の出力を他の通信デバイスに直接的に提供するための通信プロトコルを用いることによって、少ないハードウエア資源によって構成することができるとともに、画像処理等の処理を高速化し、かつ、通信遅延の低減と低消費電力化を実現することができる。
本発明は、少ないハードウエア資源によって構成することができるとともに、画像処理等の処理を高速化し、かつ、通信遅延の低減と低消費電力化を実現することができる。
本発明の一実施形態におけるロボットシステムの構成例を示すシステム構成図である。 従来のROSシステムにおけるパブリッシュ/サブスクライブ型の通信原理を説明するための図である。 一実施形態のロボットシステムにおいて実行される通信原理について説明するための図である。 一実施形態の通信デバイス(送信側)一構成例を示すブロック図である。 一実施形態のロボットシステムにおいて実行されるメッセージの取得開始処理を示すシーケンス図である。 一実施形態の通信デバイス(受信側)一構成例を示すブロック図である。 本発明の通信デバイスを用いた性能評価実験の評価条件を説明するための図(その1)である。 本発明の通信デバイスを用いた性能評価実験の評価条件を説明するための図(その2)である。 本発明の通信デバイスを用いた性能評価実験の評価条件を説明するための図(その3)である。 本発明の通信デバイスを用いた性能評価実験において、「snd_data」ノードが画像メッセージを送信開始してから、「rcv_data」ノードが画像メッセージを受信完了するまでの遅延時間の測定結果を示すグラフである。 本発明の通信デバイスを用いた性能評価実験において、「snd_data」ノードが画像メッセージを送信開始してから、「rcv_data」ノードが終了メッセージを受信完了するまでの遅延時間の測定結果を示すグラフである。
以下、図面を参照しつつ、本発明の実施形態について説明する。なお、以下の実施形態は、ROSに準拠した複数のコンポーネントを組み合わせることにより実現されるロボットシステムに対して、本発明に係る通信デバイスなどを適用した場合の実施形態である。ただし、以下に説明する実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
[1]ロボットシステム
まず、図1を用いて、本発明の第1実施形態におけるロボットシステム1の構成及び概要について説明する。
なお、図1は、第1実施形態のロボットシステム1の構成を示すシステム構成図である。また、図1においては、図面が煩雑となることを防止するためロボットシステム1を構成する複数のコンポーネントのうち、一部のコンポーネントのみを示している。すなわち、ロボットシステム1は、図1に示すコンポーネントの一部をロボットシステムの構成に合わせて追加又は削除して、適宜変更することができる。
本実施形態のロボットシステム1は、例えば、ヒューマノイドなどの自律駆動型のロボットシステムであり、カメラCと通信デバイス(送信側)100が接続されたカメラコンポーネント10と、モータMと通信デバイス(受信側)200が接続された複数の駆動コンポーネント20と、各コンポーネント間における通信を管理するマスターデバイス30と、を有している。
なお、カメラコンポーネント10、駆動コンポーネント20及びマスターデバイス30は、ギガビットイーサネット(登録商標)Nを介して相互に接続され、各コンポーネント間において、後述するパブリッシュ/サブスクライブ型のデータ通信が実行されるようになっている。
特に、本実施形態のロボットシステム1において、ロボットシステム1の自律駆動を実現するため、
(1)通信デバイス(送信側)100は、カメラCにおいて撮像されて供給されるカメラ画像データに対して、画像認識処理、特徴点抽出処理等の画像処理を実行しつつ、当該処理によって得られたデータ(以下、「画像処理結果データ」という。)を、イーサネット(登録商標)Nを介して各駆動コンポーネント20に配信(送信側)し、
(2)通信デバイス(受信側)200は、モータMの駆動に用いるために、当該配信された画像処理結果データを受信し、受信した画像処理結果データを当該モータMに提供する
構成を有している。
本実施形態のカメラコンポーネント10は、例えば、画像中に存在する障害物等の物体の位置座標情報や当該物体までの距離及び角度などのデータ、及び、当該画像中における曲がり角などの特徴点に関するデータを、画像処理結果データとして、カメラ画像に基づき生成し、駆動コンポーネント20に供給するようになっている。
具体的には、カメラコンポーネント10は、ロボットシステム1の周囲環境に対応する画像を撮像するカメラCと、当該カメラCと接続された通信デバイス(送信側)100と、を有している。
カメラCは、図示せぬCCDIセンサと、CCDIセンサにおいて得られた画像信号を処理して、RGB、CYMK等の形式のカメラ画像データに変換する信号処理部と、を有し、自機の周囲環境を撮像して、対応するカメラ画像データを通信デバイス(送信側)100に供給する構成を有している。
通信デバイス(送信側)100は、マイクロプロセッサやFPGAが搭載されたSoCデバイスによって構成され、カメラCにより撮像されたカメラ画像データに対して、FPGAを用いた画像処理を実行する構成を有している。
また、通信デバイス(送信側)100は、当該カメラ画像データに対して実行されたことによって得られた画像処理結果データを、イーサネット(登録商標)Nを介して、パブリッシュ/サブスクライブ型の通信方式にて、駆動コンポーネント20の通信デバイス(受信側)200に配信する機能を有している。
特に、通信デバイス(送信側)100は、マイクロプロセッサを用いたソフトウエア処理によって、上記パブリッシャーアプリケーションノード機能を実現するとともに、FPGAにより上記パブリッシャーFPGAノード機能を実現して、自ノードに対応するトピックを介して、駆動コンポーネント20の通信デバイス(受信側)200に画像処理結果データを配信する構成を有している。
なお、本実施形態においては、カメラコンポーネント10の通信デバイス(送信側)100によって、各駆動コンポーネント20の通信デバイス(受信側)200に対して配信される画像処理結果データの内容については、特に限定されない。
駆動コンポーネント20は、配信された画像処理結果データを取得するとともに、当該取得した画像処理結果データに基づいて、例えば、ロボットシステム1の手足などの該当する部位を駆動させ、障害物を回避し、対象物体を把持し、又は、通路に沿って進むなどの行動を自律的に行わせるようになっている。
具体的には、駆動コンポーネント20は、モータMと、当該モータMに接続され、カメラコンポーネント10の通信デバイス(送信側)100から受信した画像処理結果データに基づき、当該モータMを駆動する通信デバイス(受信側)200と、を有している。
例えば、駆動コンポーネント20が、ヒューマノイドの足部分を駆動するコンポーネントである場合には、自律的に周囲の障害物を回避しつつ移動させ、又は、実空間上の通路に沿って移動させるため、駆動コンポーネント20は、画像処理結果データによって示される周囲の物体の位置や物体までの距離、角度、画像中の曲がり角などに対応する特徴点等のデータからロボットシステム1が向かうべき方向、及び、進むべき距離などを算出し、当該算出結果に基づきロボットシステム1が移動するように、又は、対象物を把持し、又は、把持している物体を他所に向けて投射する動作するように、モータMを駆動させる構成を有している
マスターデバイス30は、イーサネット(登録商標)N用の図示せぬインターフェースを有するとともに、EEPROM(Electrically Erasable Programmable Read Only Memory)、RAM(Random Access Memory)等のメモリを有し、通信デバイス(送信側)100によって送信される第1通信制御データとトピックデータ(すなわち、パブリッシャーノード情報)を受信して、両者を対応付けて、メモリに記録させる。
特に、マスターデバイス30は、パブリッシャーノードである通信デバイス(送信側)100と、サブスクライバーノードである通信デバイス(受信側)200との間における通信を管理するマスターノードとして機能するとともに、ROSシステムにおけるネームサーバとして機能する構成を有している。
そして、マスターデバイス30は、通信デバイス(受信側)200によって送信されるトピックデータに基づき、メモリに記録されたトピックデータを検索し、当該トピックデータにより示されるトピックにメッセージをパブリッシュするパブリッシャーノードの第1通信制御データをメモリから読み出しつつ、サブスクライバーノードに通知する機能を有する。
なお、マスターデバイス30は、従来のROSシステムにおけるマスターノードと同様の役割及び機能を有するものであるため詳細を省略する。
なお、本実施形態においては、イーサネット(登録商標)Nを介して、送受信するデータ量を削減し、通信デバイス(送信側)100及び200における通信処理の負荷を軽減するため、カメラコンポーネント10の通信デバイス(送信側)100においてカメラ画像データに対する画像処理を実行し、通信デバイス(送信側)100から画像処理結果データのみを駆動コンポーネント20の通信デバイス(受信側)200に配信する構成を採用している。ただし、カメラコンポーネント10の通信デバイス(送信側)100からカメラ画像データ本体を駆動コンポーネント20の通信デバイス(受信側)200に配信して、通信デバイス(受信側)200側において、画像処理を実行するようにしてもよい。
また、この場合には、通信デバイス(受信側)200においてカメラ画像データに対する画像処理後、当該処理によって得られた画像処理結果データに基づき、モータMを駆動するようにすればよい。
[2]ロボットシステムにおける通信原理
[2.1]パブリッシュ/サブスクライブ型の通信方式
次に、本実施形態のロボットシステム1において用いられるパブリッシュ/サブスクライブ型の通信方式について説明する。
本実施形態パブリッシュ/サブスクライブ型の通信方式は、通信デバイス(例えば、本実施形態の通信デバイス100及び200)を有するROSノード(以下、「ノード」という。)が、他のノードとトピックを介して通信する非同期メッセージングモデルである。
特に、パブリッシャーとなるノード(以下、「パブリッシャーノード」ともいう。)は、所定のトピックに対して、マスターとなるノード(以下、「マスターノード」ともいう。)を用いてメッセージ(すなわち、データ)をパブリッシュ(発行)し、また、当該トピックをサブスクライブ(予約購読)する他のノード(以下、「サブスクライバーノード」ともいう。)は、マスターノードを介して当該トピックに対して発行されたメッセージを取得することによって、ノード間におけるデータの送受信が実現される。
そして、本実施形態においては、カメラコンポーネント10に搭載された通信デバイス(送信側)100は、パブリッシャーノードとして機能し、具体的には、カメラ画像データに対応する画像処理結果データを、マスターデバイス30を用いてメッセージとしてパブリッシュするようになっている。
例えば、本実施形態のロボットシステム1は、図1に示すコンポーネント以外に、マイクを接続した音声処理回路、ジャイロセンサ、加速度センサ、及び、温度センサなどの各種センサや処理回路を接続したコンポーネントを有していてもよい。
そして、各センサや処理回路のコンポーネントは、当該センサや当該処理回路に対応するトピックに対して、センサや処理回路において取得されたデータそのもの、又は、当該データに所定の処理を施して得られた処理結果データをメッセージとしてパブリッシュし、当該トピックを介して、他のコンポーネントに、加工したデータを提供するようになっている。
一方、実施形態においては、駆動コンポーネント20に搭載された通信デバイス(受信側)200は、サブスクライバーノードとして機能し、カメラコンポーネント10によってパブリッシュされた画像処理結果データを、マスターデバイス30を介して、取得するようになっている。
そして、駆動コンポーネント20は、モータMを駆動するために参照すべきデータに対応する全てのトピックに属するメッセージをサブスクライブし、他のコンポーネントから得たデータに基づきモータMを駆動するようになっている。
例えば、本実施形態のロボットシステム1において、画像処理結果データのみに基づき、モータMを駆動する場合には、駆動コンポーネント20は、カメラコンポーネント10によってパブリッシュされる画像処理結果データに対応するトピックのみをサブスクライブするようになっている。
また、例えば、本実施形態のロボットシステム1において、画像処理結果データとともに当該画像処理結果データ以外のデータをも参照して、モータMを駆動する場合には、駆動コンポーネント20は、画像処理結果データ以外のデータも含めて当該参照するデータに対応する全てのトピックにパブリッシュされるメッセージについて、サブスクライブするようになっている。
なお、本実施形態においては、駆動コンポーネント20は、サブスクライブするトピック数は任意に設定できるようになっている。ただし、以下の説明においては、説明の理解を容易化するため、駆動コンポーネント20が、画像処理結果データのみに基づいて、モータMを駆動するものとして、説明を行う。すなわち、本実施形態の駆動コンポーネント20は、カメラコンポーネント10によってパブリッシュされるメッセージのみをサブスクライブするものとして説明を行う。
[2.2]従来のROSシステムにおけるパブリッシュ/サブスクライブ型の通信原理
次に、図2を用いて、従来のROSシステムにおけるパブリッシュ/サブスクライブ型の通信原理について説明する。なお、図2は、従来のROSシステムにおけるパブリッシュ/サブスクライブ型の通信原理を説明するための図である。
従来のROSシステムは、図2に示すように以下の方法によってパブリッシュ/サブスクライブ型の通信を実行するようになっている。
(1)まず、パブリッシャーノードとサブスクライバーノードは、例えば、XML−RPCの通信手順に従って、自ノード(自機ともいう。)に割り当てられた、IPアドレス又はホスト名と、XML−RPCポート番号と、を含む通信制御データ(以下、「第1通信制御データ」ともいう。)と、自ノードがパブリッシュするメッセージが属するトピック名(例えば、画像処理結果データトピックなど)を示すトピックデータと、が対応付けられたパブリッシャーノード情報を、マスターノードに予めに登録する(図2のステップ[a1])。
(2)次いで、サブスクライバーノードは、自ノードがサブスクライブする特定のトピックに対してメッセージを発行するパブリッシャーノードをマスターノードに広告させて(図2のステップ[a2])、特定トピックに対応する第1通信制御データを、XML−RPCに従って、マスターノードから取得する(ステップ[a2])。
このとき、マスターノードは、既に登録済みのトピックデータにおいて、サブスクライバーノードから送信されたトピックデータと同一のトピック名を有するトピックデータと対応付けられた第1通信制御データをサブスクライバーノードに配信する。
(3)次いで、サブスクライバーノードは、マスターノードから取得したパブリッシャーノードの第1通信制御データに含まれるIPアドレスとXML−RPCポート番号に基づき、パブリッシャーノードのAPI(application programming interface)であるrequestTopicを呼び出し、XML−RPCに従って、パブリッシャーノードに通信制御データ送受信用の通信コネクション(以下、「第1通信コネクション」ともいう。)の確立要求を送信する(図2のステップ[a4])。
(4)次いで、パブリッシャーノードは、当該確立要求に基づき、サブスクライバーノードとの間において第1通信コネクションを確立し、当該第1通信コネクションを介して、自機のIPアドレス及びTCPROSポート番号を含む第2通信制御データを、XML−RPCに従って、サブスクライバーノードに送信する(図2のステップ[a5])。
(5)そして、サブスクライバーノードは、第2通信制御データに基づき、自機のサブスクライブするメッセージの送受信に用いるTCPコネクション(以下、「第2通信コネクション」ともいう。)の確立要求(例えば、SYNパケット)を、TCPROSに従って、パブリッシャーノードに送信する(図2のステップ[a6])。
なお、TCPROSとは、ROSにおけるメッセージングのトランスポートレイヤープロトコルであり、標準的なTCP/IP(Transmission Control Protocol/Internet Protocol)ソケットを用いるプロトコルである。また、TCPROSは、特に明記しない限り、従来のTCPと同様の処理手順に従って通信を行うものである。
(6)次いで、サブスクライバーノードは、TCPコネクションの確立要求に基づき、パブリッシャーノードからTCPROSに従った応答(例えば、ACK+SYNパケット)を受信する(図2のステップ[a7])。
なお、サブスクライバーノードが、TCPROSに従った応答を受信した時点で、パブリッシャーノードとサブスクラバーノード間におけるハンドシェイクが完了し、パブリッシャーノード−サブスクライバーノード間にTCPコネクションが確立される(図2のステップ[a8])。
(7)最後に、パブリッシャーノードとサブスクライバーノードの間にTCPコネクションが確立されると、パブリッシャーノードは、当該TCPコネクションを介して、サブスクライバーノードにメッセージを送信する処理を繰り返し実行し、データ配信が完了した時点、又は、ROSシステムの電源がOFFにされた時点で、処理を終了する。
[3.2]本実施形態のパブリッシュ/サブスクライブ型通信における基本原理
次に、本実施形態のロボットシステム1おいて、パブリッシュ/サブスクライブ型通信における基本原理について説明する。
本実施形態において、ロボットシステム1の自律駆動を実現するためには、カメラコンポーネント10は、当該カメラコンポーネント10に接続されたカメラCにおいて撮像されたカメラ画像に対して、リアルタイムに画像処理を実行するとともに、画像処理結果データを、各駆動コンポーネント20に対して、リアルタイムに供給する必要がある。
例えば、ロボットシステム1を陸上移動させる場合には、周囲環境に合わせて、ロボットシステム1の各部を駆動させる必要があるため、カメラコンポーネント10は、カメラ画像データに基づき、リアルタイムに画像処理結果データを生成するとともに、当該画像処理結果データをリアルタイムにロボットシステム1の各駆動コンポーネント20に配信することが必要である。
一方、上述したようにロボットシステム1は、バッテリーによって駆動されるケースが多く、消費電力を削減することが求められるので、当該ロボットシステム1に、マルチコアなどの消費電力量が大きい高性能なマイクロプロセッサを搭載することは難しい。
そこで、本実施形態のロボットシステム1は、駆動コンポーネント20に形成される通信デバイス200が必要なメッセージ(すなわち、実データ)を受信する際の通信コネクションを確立するまでの通信制御については、アプリケーション(ソフトウエア)と連動するXML−RPCなどの通信プロトコルを用いるとともに、メッセージの配信については、並列処理が可能な論理回路の出力を他の通信デバイスに直接的に提供するためのTCPROSなどの通信プロトコルを用いることができるようになっている。
特に、本実施形態のロボットシステム1は、1ポート及び1セッションに機能を限定したハードウエアTCP/IPスタックと、画像処理と並列して、当該通信ポートを利用した、FPGAによるハードウエア通信処理を実行し、画像処理によって得られた画像処理結果データを駆動コンポーネント20の通信デバイス(受信側)200に順次、配信するFPGAと、を通信デバイス(送信側)100に搭載するようになっている。
また、本実施形態のロボットシステム1は、FPGAに通信ポートが1つしかないため、XML−RPCに従った処理(すなわち、図2のステップ[a1]〜[a5]の処理)をFPGAに実行させることができないので、TCPROSに従った通信パート(すなわち、図2のステップ[a6]〜[a8])を、FPGAを用いた制御処理によって実行するようになっている。
すなわち、本実施形態のロボットシステム1は、XML−RPCに従った図2のステップ[a1]〜[a5]の通信処理(以下、「XML−RPC通信パート」という。)に関しては、FPGAではなく、通信デバイス(送信側)100に搭載したアプリケーションに連動するマイクロプロセッサ(CPU)を用いて実行し、メッセージの配信に関しては、FPGAを用いた制御処理によって実行するようになっている。
また、本実施形態のロボットシステム1は、通信デバイス100に搭載するマイクロプロセッサによって、画像処理及びTCPROS通信パートの処理を実行する必要性がなくなり、本来通信デバイス100のマイクロプロセッサが担当すべき処理の大部分をFPGAにオフロードし、マイクロプロセッサの担当する処理を減らすことができるようになっている。
したがって、本実施形態のロボットシステム1は、通信デバイス100の消費電力を低減し、かつ、処理能力が十分ではないシングルコアなどのマイクロプロセッサを用いた場合であっても、リアルタイム性を確保しつつ、画像処理結果データを配信できるので、例えば、マルチコアを搭載した高性能なマイクロプロセッサを通信デバイス100に搭載する必要がなくなり、画像処理及び通信処理の高速化と、低消費電力化を両立することができるようになっている。
なお、本実施形態においては、パブリッシャーノードとなる通信デバイス(送信側)100は、アプリケーションを実行することによって実現されるパブリッシャーノード(以下、「パブリッシャーアプリケーションノード」という。)と、FPGAを用いた制御処理を実行することによって実現されるパブリッシャーノード(以下、「パブリッシャーFPGAノード」という。)の2つのノードを有している。
そして、本実施形態においては、通信デバイス(送信側)100は、パブリッシャーアプリケーションノードと、パブリッシャーFPGAノードと、に対して、それぞれ、異なるIPアドレス及びポート番号を割り当て、両者を論理的にかつ物理的に分離する構成を有している。
また、ROSにおけるパブリッシュ/サブスクライブ型の通信モデルにおいては、UDP(user diagram protocol)もサポートされており、厳格なリアルタイム性を要求される場合には、UDPを用いることも可能である。ただし、本実施形態においては、通信時におけるデータの欠落やエラーの発生を防止するため、TCPを用いた通信方式を採用するようになっている。
さらに、通信デバイス(送信側)100に対して割り当てるIPアドレス及びポート番号は、固定設定されていてもよいし、変動するように設定されていてもよい。ただし、ロボットシステム1を構成するコンポーネントの数は、通常変動することはなく、通信方式が簡素化し、かつ、通信トラブルの発生を抑制することもできるので、本実施形態においては、固定したIPアドレス及び固定したポート番号が予め割り当てられることが好ましい。
[2.3]本実施形態のパブリッシュ/サブスクライブの通信原理
次に、本実施形態のロボットシステム1における通信原理について説明する。なお、図3は、本実施形態のロボットシステム1において実行される通信原理について説明するための図である。
本通信原理の説明においては、パブリッシャーアプリケーションノード及びパブリッシャーFPGAノードに対して、それぞれ、「foo」と、「FPGA」なるホスト名を割り当てるとともに、パブリッシャーアプリケーションノードに、XML−RPCポート番号「1234」、及び、パブリッシャーFPGAノードにTCPROSポート番号「3456」が静的に割り当てた場合をもちいて説明する。
なお、図3は、通信デバイス(送信側)100及び通信デバイス(受信側)200が、トピック「bar」を介して画像処理結果データの送受信を行う場合を例にロボットシステム1の通信動作を示しており、XML−RPCに従った手順を点線矢印、及び、TCPROSに従った手順を実線矢印によって示している。
本実施形態のパブリッシャーFPGAノードは、ロボットシステム1の電源が投入されると、
(A1)自ノードに割り当てられたホスト名「FPGA」及びポート番号「3456」から構成される第2IPアドレスを含む第2通信制御データと、
(A2)自ノードがパブリッシュするメッセージに対応するトピック名「bar」を示すトピックデータと、
を有するアドバタイズ要求を、パブリッシャーアプリケーションノードに送信する(図3のステップ[b0])。
次いで、パブリッシャーアプリケーションノードは、アドバタイズ要求の受信をトリガとして、XML−RPCに従って、
(B1)自ノードに割り当てられたホスト名「foo」及びポート番号「1234」を含む第1通信制御データと、
(B2)トピックをパブリッシュする画像処理結果データに対応するトピックデータ「bar」と、
を対応付けたパブリッシャーノード情報を、マスターデバイス30にアドバタイズして、マスターデバイス30に登録する(図3のステップ[b1])。
そして、サブスクライバーノード(通信デバイス(受信側)200)は、XML−RPCに従って、自ノードのサブスクライブするデータの特定トピックを示すトピックデータ「bar」をマスターデバイス30にアドバタイズ(すなわち、広告)する(図3のステップ[b2])。
次いで、マスターデバイス30は、XML−RPCに従って、トピック「bar」に対応する画像処理結果データを、パブリッシュするノード(すなわち、パブリッシャーノード)の情報として、パブリッシャーアプリケーションノードのホスト名「foo」とポート番号「1234」を含む第1通信制御データをサブスクライバーノードに通知する(図3のステップ[b3])。
次いで、サブスクライバーノードは、マスターデバイス30から取得したパブリッシャーアプリケーションノードに対応する第1通信制御データに基づき、XML−RPCに従いつつ、requestTopicを用いてパブリッシャーアプリケーションノードに第1通信コネクションの確立要求を送信する(図3のステップ[b4])。
なお、パブリッシャーFPGAノードとパブリッシャーアプリケーションノード間における通信に対して、専用の通信ポートを設ける必要はなく、パブリッシャーFPGAノードとパブリッシャーアプリケーションノード間において各種の通信を実行するように設計することによって、FPGAに設ける通信ポート数の増加を防止するようになっている。
次いで、パブリッシャーアプリケーションノードは、XML−RPCに従って、ステップ[b0]において、パブリッシャーFPGAノードから取得した第2通信制御データ(すなわち、パブリッシャーFPGAノードに対応するホスト名「FPGA」及びポート番号「3456」)を、第1通信コネクションを介してサブスクライバーノードに通知する(図3のステップ[b5])。
次いで、サブスクライバーノードは、パブリッシャーアプリケーションノードからパブリッシャーFPGAノードのホスト名などを含む第2通信制御データを取得すると、第2通信制御データに基づき、パブリッシャーFPGAノード(すなわち、FPGA)との間においてTCPROSに従って、パブリッシャーFPGAノードに第2通信コネクションの確立要求をする(図3のステップ[b6])。
次いで、サブスクライバーノードは、TCPコネクションの確立要求に基づき、パブリッシャーFPGAノードからTCPROSに従った応答(例えば、ACK+SYNパケット)を受信する(図3のステップ[b7])。
なお、サブスクライバーノードが、TCPROSに従った応答を受信した時点で、パブリッシャーFPGAノードとサブスクラバーノード間におけるハンドシェイクが完了し、パブリッシャーFPGAノード−サブスクライバーノード間にTCPコネクションが確立される(図3のステップ[a8])。
最後に、パブリッシャーFPGAノードとサブスクライバーノードの間にTCPコネクションが確立されると、パブリッシャーFPGAノードは、画像処理と並列して、当該処理によって得られた画像処理結果データを、当該TCPコネクションを介して、サブスクライバーノードにメッセージを送信する処理を繰り返し実行し、データ配信が完了した時点、又は、ROSシステムの電源がOFFにされた時点で、処理を終了する。
[3]通信デバイス(送信側)
次に、図4を参照して本実施形態の通信デバイス(送信側)100について説明する。なお、図4は、本実施形態の通信デバイス(送信側)100の一構成例を示すブロック図である。
本実施形態の通信デバイス(送信側)100は、図4に示すようにアプリケーションを実行するアプリケーション実行部110と、FPGAによって実現されるFPGA制御処理部120と、を有している。
アプリケーション実行部110は、通信デバイス(受信側)200に画像処理結果データを送信する際に、上記XML−RPC通信パートに対応する通信処理を実行して、パブリッシャーアプリケーションノードとしての機能を実現する。
また、アプリケーション実行部110は、TCP/IPスタック111と、解釈部112と、制御部113と、XML−RPCメッセージ生成部114と、を有している。
TCP/IPスタック111は、アプリケーションによって実現され、TCP/IP通信を行うために用いられる。特に、TCP/IPスタック111は、TCP/IPに従ってデータの送受信を行うため、ネットワークレイヤー及びトランスポートレイヤーに関する処理を実行する。
また、TCP/IPスタック111は、イーサネット(登録商標)Nを介して通信デバイス(受信側)200及びマスターデバイス30から送信されたデータを受信し、受信したデータをプロトコル変換して解釈部112に供給する。
具体的には、TCP/IPスタック111は、図4に示すように、
(A1)図3のステップ[b0]において、パブリッシャーFPGAノードとなるFPGA制御処理部120(FPGA)から通知されるパブリッシャーFPGAノードのホスト名及びTCPROSポート番号を含む第2通信制御データと、トピックデータと、を受信して解釈部112に供給し、
(A2)図3のステップ[b4]において、サブスクライバーノードとなる通信デバイス(受信側)200からrequestTopicを用いて送信される第1通信コネクションの確立要求を受信し、当該受信したデータを解釈部112に出力する。
一方、TCP/IPスタック111は、XML−RPCメッセージ生成部114から供給されるデータをイーサネット(登録商標)Nに送信する。
具体的には、TCP/IPスタック111は、図4に示すように、
(B1)図3のステップ[b1]において、XML−RPCに従った形式で、XML−RPCメッセージ生成部114から供給されるパブリッシャーアプリケーションノードのホスト名(例えば、図3に例示する場合には「foo」)及びXML−RPCポート番号(例えば、図3に例示する場合には、「1234」)を含む第1通信制御データと、トピックデータ(例えば、図3に例示する場合には、「トピック名:bar」)と、を対応付けたパブリッシャーノード情報を、マスターデバイス30に送信し、
(B2)図3のステップ[b5]において、第1通信コネクションを介して、XML−RPCに従った形式でXML−RPCメッセージ生成部114から供給されるパブリッシャーFPGAノードのホスト名(例えば、図3に例示する場合には「FPGA」)及びTCPROSポート番号(例えば、図3に例示する場合には「3456」)を含む第2通信制御データを通信デバイス(受信側)200に送信する。
解釈部112は、TCP/IPスタック111から供給されるデータに対してXML−RPCに基づく処理を実行し、当該処理されたデータを制御部113に供給する。
制御部113は、CPUを有し、所定のアプリケーションをCPUによって実行することによって、パブリッシャーアプリケーションノードとして機能するアプリケーション実行部110の各処理を制御する。
特に、制御部113は、上記図4ステップ[b0]において、解釈部112からパブリッシャーFPGAノードに対応する第2通信制御データの付加されたアドバタイズ要求がTCP/IPスタック111に供給された場合に、通信デバイス(受信側)200に第2通信制御データを配信するまでの間、当該第2通信制御データを図示せぬメモリに一時記憶させ、その管理を実行する。
また、制御部113は、アプリケーション実行部110に割り当てられた第1通信制御データ、FPGA制御処理部120に割り当てられた第2通信制御データ及びトピックデータを図示せぬメモリに一時記憶させ、その管理を実行する。
XML−RPCメッセージ生成部114は、制御部113による制御の下、通信デバイス(受信側)200及びマスターデバイス30に対して送信する各種のデータをXML−RPCの形式に変換して、TCP/IPスタック111に供給することで、通信デバイス(受信側)200及びマスターデバイス30に各種のデータを送信させる。
FPGA制御処理部120は、FPGAによって構成され、パブリッシャーFPGAノードとしての機能を実現する。
特に、FPGA制御処理部120は、例えば、カメラCから供給されるカメラ画像データに対して各種の画像処理を実行して画像処理結果データを生成するとともに、通信デバイス(受信側)200との間においてパブリッシュ/サブスクライブ型の通信を行う際に、TCPROS通信パート処理を実行する機能を有している。
また、FPGA制御処理部120は、TCP/IP通信用のTCP/IPスタック121と、解釈部122と、制御部123と、登録処理部124と、カメラ画像データの入力インターフェースであるデータ入力部125と、カメラ画像データに画像処理を施すためのデータ処理部126と、符号化処理部127と、マルチプレクサ128と、を有している。
TCP/IPスタック121は、例えば、SiTCPなどのFPGAに搭載されたハードウエアTCP/IPスタックであり、1ポート1セッションにてイーサネット(登録商標)Nを介したTCP/IP通信処理を実行する。
特に、TCP/IPスタック121は、イーサネット(登録商標)Nから受信したデータをTCP/IPに従って処理し、当該処理後のデータを解釈部122に供給する受信部1211と、マルチプレクサ128から供給されるデータに対してTCP/IPに従った処理を実行してデータを送信するための処理を実行する送信部1212と、を有している。
具体的には、受信部1211は、図4に示すように、図3のステップ[b6]において、通信デバイス(受信側)200から送信されるTCPコネクションの確立要求を受信し、送信部1212と連動しつつ、通信デバイス(受信側)200との間においてTCPコネクションを確立するための処理を実行する。
また、送信部1212は、
(1)図3のステップ[b0]において、マルチプレクサ128から第2通信制御データ(すなわち、図3に例示する場合には、ホスト名「FPGA」及びTCPROSポート番号「3456」)と、トピックデータ(例えば、図3に例示する場合には「bar」)と、が供給されると、当該供給されたデータをアプリケーション実行部110に送信し、
(2)図3のステップ[b7]において、マルチプレクサ128から画像処理結果データが供給されると、当該画像処理結果データを、順次、通信デバイス(受信側)200に送信する(図3のステップ[b7−1]、[b7−2]…)。
なお、本実施形態においては、第2通信制御データ及びトピックデータに関しては、通信デバイス(送信側)100内部において入出力を行うものであるため、送信部1212は、イーサネット(登録商標)Nを介して送受信を行う必要はなく、アプリケーション実行部110に対して直接送信する構成になっている。
解釈部122は、受信部1211から供給されるデータに対して、TCPROSに従って、プロトコル変換などの処理を施して、制御部123に供給する。
制御部123は、登録処理部124、符号化処理部127及びマルチプレクサ128に接続され、これら各部に制御信号を供給して、各部の動作を制御する。
登録処理部124は、TCP/IPスタック121を介して、FPGA制御処理部120に割り当てられたホスト名及びポート番号を含む第2通信制御データ及びトピックデータを付加したアドバタイズ要求をアプリケーション実行部110に送信するための処理を実行する。
なお、FPGA制御処理部120に割り当てられた第2通信制御データ及びトピックデータは、通信デバイス(送信側)100に設けられた図示せぬメモリ内に予め記録されており、登録処理部124は、が当該メモリから第2通信制御データを読み出しつつ、アプリケーション実行部110に送信する。
データ入力部125は、所定の入力インターフェースであり、カメラCから供給されるカメラ画像データをデータ処理部126に供給する。
データ処理部126は、カメラ画像データに対して、ノイズ除去、色変換、特徴点検出、ニューラルネットワーク、又は、画像認識処理などの各種画像処理を実行して画像処理結果データを生成し、生成した画像処理結果データを符号化処理部127に供給する。
符号化処理部127は、データ処理部126から供給される画像処理結果データを、ROSシステムに用いられるデータ形式に変換する。すなわち、符号化処理部127は、画像処理結果データのTCPROSプロトコルへの変換する変換処理、及び、テキスト形式やXML形式への変換処理を実行する。
そして、符号化処理部127は、各種処理後の画像処理結果データをマルチプレクサ128に供給する。
なお、符号化処理部127は、さらに画像処理結果データにデータ圧縮処理や冗長化処理を施すようにしてもよい。
マルチプレクサ128は、制御部123による制御の下、登録処理部124から供給されるアドバタイズ要求(第2通信制御データ及びトピックデータの付加されたデータ)と、符号化処理部127から供給される画像処理結果データの何れか一方を選択しつつ、送信部1212に出力する。
[4]ロボットシステムの動作
次に、図5を用いて本実施形態のロボットシステム1において実行される各トピックのメッセージの取得する処理(以下、「メッセージの取得処理」ともいう。)の動作について説明する。なお、図5は、本実施形態のロボットシステム1におけるメッセージの取得開始処理を示すシーケンス図である。
本動作は、カメラコンポーネント10から提供されるトピックに関するトピックデータを駆動コンポーネント20によって取得する場合を用いて説明する。
なお、本動作は、主に、該当するトピックデータをマスターデバイスに登録する登録処理(以下、「トピックデータの登録処理」ともいう。)と、登録されたメッセージの取得を開始する処理(以下、「メッセージの取得開始処理」ともいう。)と、の2つの処理によって構成される。
(トピックデータの登録処理)
まず、カメラコンポーネント10の通信デバイス(送信側)100においては、FPGA制御処理部120は、ロボットシステム1の電源がONされたタイミングなどの所定のタイミングに、予め割り当てられたホスト名及びポート番号を含む第2通信制御データと、トピックデータと、を有するアドバタイズ要求をアプリケーション実行部110(具体的には、TCP/IPスタック111)に送信する(ステップSa101)。
具体的には、登録処理部124は、制御部123の制御指示に基づいて、図示せぬメモリからFPGA制御処理部120に対応する第2通信制御データ及びトピックデータを読み出し、当該第2通信制御データ等を有するアドバタイズ要求をマルチプレクサ128に供給する。
また、マルチプレクサ128は、制御部123の制御指示に基づいて、登録処理部124から供給されるデータを選択して、送信部1212に供給し、送信部1212は、第2通信制御データが付加されたアドバタイズ要求をアプリケーション実行部110のTCP/IPスタック111に送信する。
なお、アプリケーション実行部110(具体的には、制御部113)は、アドバタイズ要求に付加された第2通信制御データを抽出して、図示せぬメモリに一時記憶させる。
次いで、アプリケーション実行部110は、当該アプリケーション実行部110に割り当てられた第1通信制御データとトピックデータを図示せぬメモリから読み出して、当該第1通信制御データとトピックデータを対応付けて、マスターデバイス30に登録する(ステップSa102)。
なお、マスターデバイス30は、通信デバイス(送信側)100からトピックデータ及び第1通信制御データを受信すると、当該受信したデータを図示せぬメモリに対応付けて記憶する。
(トピックデータの登録処理)
一方、駆動コンポーネント20の通信デバイス(受信側)200は、ロボットシステム1の電源ONなどの所定のタイミングに、サブスクライブするトピック名を示すトピックデータをXML−RPCに従って、マスターデバイス30に送信する(ステップSa201)。
そして、マスターデバイス30は、通信デバイス(受信側)200から受信したトピックデータと同一のトピック名のトピックデータと対応付けて記録された第1通信制御データを読み出し、XML−RPCに従って、当該第1通信制御データを、通信デバイス(受信側)200に送信する(ステップSa301)。
次いで、通信デバイス(受信側)200は、受信した第1通信制御データに基づき、requestTopicを用いて、通信デバイス(送信側)100のアプリケーション実行部110に対して、第1通信コネクションの確立要求を送信する(ステップSa202)。
なお、このとき、通信デバイス(送信側)100においては、この確立要求がTCP/IPスタック111によって受信され、解釈部112によってデータ形式が変換されて、制御部113に供給される。
一方、通信デバイス(送信側)100においては、アプリケーション実行部110は、通信デバイス(受信側)200との間において第1通信コネクションを確立すると(ステップSa203)、メモリに一時記憶された第2通信制御データを、第1通信コネクションを介して、通信デバイス(受信側)200に送信する(ステップSa103)。
具体的には、制御部113は、メモリに一時記憶された第2通信制御データを読み出して、XML−RPCメッセージ生成部114に供給し、XML−RPCメッセージ生成部114は、制御部113の指示に基づいて、供給される第2通信制御データをXML−RPC形式のデータに変換して、TCP/IPスタック111に供給する。
次いで、通信デバイス(受信側)200は、第2通信制御データを受信すると、当該受信した第2通信制御データに基づいて、通信デバイス(送信側)100のFPGA制御処理部120のホスト名及びTCPROSポート番号を指定しつつ、TCPコネクションの確立要求(例えばSYNパケット)を該当するFPGA制御処理部120に送信し(ステップSa204)、通信デバイス(受信側)200との間においてTCPコネクションを確立すると本動作を終了させる。
他方、通信デバイス(送信側)100においては、FPGA制御処理部120は、TCPコネクションの確立要求を受信すると、通信デバイス(受信側)200に応答(例えばAck+SYNパケットの送信)し、通信デバイス(受信側)200との間においてTCPコネクションを確立する(ステップSa205)。
具体的には、受信部1211は、通信デバイス(受信側)200に応答(例えばAck+SYNパケットの送信)し、通信デバイス(受信側)200との間においてTCPコネクションを確立する。
また、このとき、解釈部122は、TCPコネクションの確立要求をTCPROSに従って、プロトコル変換して、制御部123に供給する。
次いで、FPGA制御処理部120は、TCPコネクションを確立すると、画像処理結果データをROSに対応したフォーマットへの変換を開始し、かつ、通信デバイス(受信側)200への当該画像処理結果データの送信(メッセージの配信)を開始して(ステップSa104)本動作を終了させる。
特に、FPGA制御処理部120においては、制御部123は、解釈部122から確立要求が供給されると、符号化処理部127及びマルチプレクサ128に対して、データ処理部126から供給される画像処理結果データをROSに対応したフォーマットへの変換を開始させつつ、当該フォーマット変換された画像処理結果データの通信デバイス(受信側)200への送信を開始させる。
また、マルチプレクサ128は、制御信号に従い、符号化処理部127から供給される画像処理結果データを選択して、送信部1212に出力し、送信部1212に画像処理結果データを送信させる。
[5]変形例
[5.1]変形例1
本動作は、サブスクライバーノードとしての通信デバイス(受信側)200について特に限定されていないが、当該通信デバイス(受信側)200も、カメラコンポーネント10に形成される通信デバイス100が必要なメッセージ(すなわち、実データ)を受信する際の通信コネクションを確立するまでの通信制御については、アプリケーション(ソフトウエア)と連動するXML−RPCなどの通信プロトコルを用いるとともに、メッセージの受信については、並列処理が可能な論理回路によって他の通信デバイスから出力されたメッセージを直接的に並列に処理するTCPROSなどの通信プロトコルを用いる構成を有していてもよい。
この場合には、本実施形態の信デバイス(受信側)200は、
(B1)所定のアプリケーションと連動するXML−RPCに従って、通信デバイス(送信側)100がマスターデバイス30に登録している通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1IPアドレスを含む第1通信制御用データを、当該マスターデバイス30から、取得し、
(B2)特定のトピックにおけるXML−RPCを含む第1通信制御用データに基づいて、該当する通信デバイス(送信側)100に、XML−RPCに従って、当該特定のトピックに関するメッセージの通信を実行するための第1通信コネクションの確立要求を実行し、
(B3)第1通信コネクションの確立要求が受け付けられた場合に、XML−RPCに従って、当該確立要求を受け付けた通信デバイス(送信側)100との第1通信コネクションを確立し、
(B4)FPGAを用いるTCPROSによって特定されたトピックにおけるメッセージを確立要求を受け付けた通信デバイス(送信側)100によって配信するための通信用制御データであって、当該メッセージを配信する際に用いる第2IPアドレスを含む第2通信用制御データを、XML−RPCに従って、第1通信コネクションが確立された通信デバイス(送信側)100から取得し、
(B5)配信された第2通信用制御データに含まれる第2IPアドレスを用いることによって、第1通信コネクションが確立された通信デバイス(送信側)100に、TCPROSに従って、特定のトピックにおけるメッセージのデータ通信を実行するための第2通信コネクションの確立要求を実行し、
(B6)TCPROSに従って、当該確立要求を受け付けた通信デバイス(送信側)100との第2通信コネクションを確立し、
(B7)TCPROSに従って、確立された第2通信コネクションを介して、FPGAから出力された特定のトピックにおけるメッセージを、該当する通信デバイス(送信側)100から取得する、
構成を有している。
そして、本実施形態の通信デバイス(受信側)200は、取得したメッセージをFPGAの論理回路によって並列処理する構成を有している。
本実施形態の通信デバイス(受信側)200は、図6に示すように、アプリケーションを実行するアプリケーション実行部210と、FPGAによって実現されるFPGA制御処理部220と、を有している。なお、図6は、本実施形態の通信デバイス(受信側)200の一構成例を示すブロック図である。
アプリケーション実行部210は、通信デバイス(送信側)100から画像処理結果データを取得する際に、上記XML−RPC通信パートに対応する通信処理を実行し、サブスクライバーのパブリッシャーアプリケーションノードとしての各機能を実現する。
また、アプリケーション実行部210は、TCP/IPスタック211と、解釈部212と、制御部213と、XML−RPCメッセージ生成部214と、を有している。
TCP/IPスタック211は、イーサネット(登録商標)Nを介して、通信デバイス(送信側)100及びマスターデバイス30から送信されたデータを受信してプロトコル変換を実行し、当該プロトコル変換をしたデータを解釈部212に供給する。
具体的には、TCP/IPスタック211は、
(1)FPGA制御処理部220により送信されるトピック要求を受信して、解釈部212に出力し、
(2)マスターデバイス30により送信される通信デバイス(送信側)100のホスト名及びXML−RPCポート番号を含む第1通信制御データを受信して、解釈部212に出力し、
(3)通信デバイス(送信側)100により送信される第2通信制御データを受信して、解釈部212に出力する。
さらに、TCP/IPスタック211は、自身がサブスクライブするトピックに対応するトピックデータをXML−RPC形式に変換し、当該変化したデータをマスターデバイス30に送信し、通信デバイス(送信側)100のrequestTopicを呼び出しつつ、XML−RPCメッセージ生成部214から供給されるXML−RPC形式の第1通信コネクション確立要求を通信デバイス(送信側)100に送信する。
解釈部212は、TCP/IPスタック111から供給されるデータに対してXML−RPCに基づく処理を実行し、当該処理されたデータを制御部213に供給する。
制御部213は、CPUを有し、所定のアプリケーションをCPUで実行することによって、サブスクライバーのアプリケーションノードとして機能するアプリケーション実行部210の各処理を制御する。
XML−RPCメッセージ生成部214は、制御部213による制御の下、通信デバイス(送信側)100及びマスターデバイス30に対して送信する各種のデータをXML−RPCの形式に変換して、TCP/IPスタック111に供給し、通信デバイス(送信側)100及びマスターデバイス30宛てに各種のデータを送信させる。
FPGA制御処理部220は、モータMの接続されたFPGAによって構成され、サブスクライバーハードウエアとしての機能を実現し、TCPROS通信パート処理を実行する機能を有している。
また、FPGA制御処理部220は、通信デバイス(送信側)100から供給される画像処理結果データに基づき、モータMを駆動するための処理を実行する。
特に、FPGA制御処理部220は、TCP/IP通信用のTCP/IPスタック221と、解釈部222と、制御部223と、要求処理部224と、接続処理部225と、マルチプレクサ226と、復号化処理部227と、データ処理部228と、データ出力部229と、を有している。
特に、TCP/IPスタック221は、イーサネット(登録商標)Nから受信したデータをTCP/IPに従って処理し、当該処理後のデータを解釈部222に供給する受信部2211と、マルチプレクサ226から供給されるデータに対してTCP/IPに従った処理を実行してデータを送信するための処理を実行する送信部2212と、を有している。
具体的には、受信部2211は、
(1)アプリケーション実行部210により送信される通信デバイス(送信側)100に対応する第2通信制御データを受信して、解釈部222に供給するとともに、
(2)通信デバイス(送信側)100により送信される画像処理結果データを受信して、解釈部222に供給する。
また、送信部2212は、
(1)マルチプレクサ226から供給されるトピック要求をアプリケーション実行部210に送信するとともに、
(2)マルチプレクサ226から供給されるデータ(すなわち、TCPコネクションの確立要求)を通信デバイス(送信側)100に送信する。
なお、トピックの広告に関しては、通信デバイス(受信側)200内部において入出力を行うものであるため、イーサネット(登録商標)Nを介して送受信する必要はなく、送信部1212が、アプリケーション実行部210に対して直接送信する構成になっている。
解釈部222は、受信部2211、制御部223及び復号化処理部227に接続され、受信部1211から供給されるデータに対して、TCPROSに従った、プロトコル変換等の処理を施して、各部に供給する。
このとき、解釈部222は、通信デバイス(送信側)100から送信された画像処理結果データに関しては、復号化処理部227に供給するとともに、アプリケーション実行部210により送信された通信デバイス(送信側)100の通信制御データに関しては、制御部123に供給する。
制御部223は、FPGA制御処理部220の各部を統合制御するため、要求処理部224、接続処理部225及びマルチプレクサ226に接続され、これらに対して制御を実行する。
復号化処理部227は、解釈部222から供給されるデータ(すなわち画像処理結果データに対応するデータ)に対して、通信デバイス(送信側)100において実行される符号化形式に対応した復号化処理を実行する。
具体的には、復号化処理部227は、解釈部222から供給されるデータをROSに対応する形式からFPGA上で扱う数値データ表現への変換処理を行う。すなわち、復号化処理部227は、TCPROSプロトコルからの変換、テキスト形式やXML形式からの変換、ネットワークバイトオーダの変換、データ伸長処理、冗長化符号からの復号処理などを実行する。
データ処理部228は、復号化処理部227から供給される画像処理結果データに基づき、モータの種別、個体差に応じた制御上の誤差を補正するため、キャリブレーションを行いつつ、画像処理結果データに基づき、モータの駆動量、駆動時間、駆動速度等を決定するための演算を行い、演算結果に対応するデータをデータ出力部229に供給する。
データ出力部229は、モータMの駆動回路を有し、入力端が、データ処理部228に、出力端が、モータMに、各々、接続され、データ処理部228から供給されるデータに基づき、モータMを駆動させるようになっている。
この結果、駆動コンポーネント20において、モータMが駆動され、障害物回避等の自律的な動作が実現されることとなる。
[5.2]変形例2
本変形例においては、第1実施施形態のように、パブリッシャーノードをパブリッシャーアプリケーションノードと、パブリッシャーFPGAノードに分割し、又は、変形例1のように、サブスクライバーノードを、サブスクライバーアプリケーションノードと、サブスクライバーFPGAノートに分割した場合の構成例について説明したが、通信デバイスに第1実施形態のパブリッシャーノード機能と、変形例1のサブスクライバーノード機能と、を搭載してもよい。
[5.3]変形例3
すなわち、1つの通信デバイス中にパブリッシャーアプリケーションノード機能と、パブリッシャーFPGAノードド機能と、サブスクライバーアプリケーションノード機能と、サブスクライバーパブリッシャーFPGAノード機能の全てを搭載することもできる。
[5.4]変形例4
上記変形例1においては、データ出力部229にモータの駆動回路を設けるとともに、データ出力部229にモータMを接続して、モータMを駆動する構成を採用したが、データ出力部229にTCP/IPスタックの機能を設け、通信デバイス(受信側)200のデータ処理部228において、画像処理結果データに対する処理を実行した後に、当該処理後のデータをさらに他のコンポーネントに送信する構成としてもよい。
[5.5]変形例5
上記第1実施形態においては、ロボットシステム1内において通信処理を実行する場合を例に説明を行ったが、イーサネット(登録商標)Nに代えてインターネットを介して、ロボットシステムRにおいて撮像されたカメラ画像データを通信端末装置Tに送信する場合についても本発明の通信デバイスを利用することができる。
例えば、カメラ画像データに対する画像処理は、非常に高度かつ複雑であるため、クラウド上の処理リソースを利用し、又は、クラウド側の大規模データベースを利用して、カメラ画像データに画像処理を施すような場合が、これに相当する。
この場合には、変形例1のようにパブリッシャーアプリケーションノード機能と、パブリッシャーFPGAノード機能と、サブスクライバーアプリケーションノード機能及びサブスクライバーFPGAノード機能を設けた通信デバイスをロボットシステムRに搭載するようにする。
そして、ロボットシステム1が通信端末装置Tにカメラ画像データを送信する際に、第1実施形態の方法にて、カメラ画像データをパブリッシュし、通信端末装置Tにおいて、画像処理を実行するようにする。
また、この場合には、通信デバイス(送信側)100のデータ処理部126において、カメラ画像データを、H.264、MPEG2(Moving Expert Group2)等の形式で圧縮し、当該圧縮後のカメラ画像データを通信端末装置Tに配信するようにすればよい。
本変形例の方法を採用した場合には、例えば、通信端末装置Tをロボットシステム1のリモートコントローラーとして構成し、ロボットシステム1から供給されるカメラ画像を通信端末装置Tの図示せぬ表示部に表示させるようにしてもよい。
そして、当該表示された画像に従って、ユーザ(すなわち、オペレータ)が行った操作に応じて、ロボットシステム1の各部を駆動させるための操作コマンドデータを通信端末装置Tが、パブリッシュし、当該パブリッシュされた操作コマンドデータをロボットシステム1が、再度サブスクライブして、ロボットシステムRの各部を駆動させるようにすればよい。
また、本変形例の構成を採用した場合には、例えば、高齢者や障害者等の利用者宅にロボットシステムRを設置して、カメラ画像や脈拍、脳波等の生体情報をロボットシステムRから通信端末装置Tに配信して、利用者の日常生活支援や医療支援に利用できる。
さらに、リハビリテーション用のロボットシステムRにおいて、患者のリハビリテーションに関するデータを収集するとともに、当該データを通信端末装置Tに送信して、新たなリハビリテーション方法の開発やリハビリテーションの進捗、効果等の確認等に利用できるようにしてもよい。
また、ロボットシステムRを災害地域や事故現場に派遣して、災害復旧に利用し、又は、事故理由の解析に必要なデータ収集に利用することが可能となる。
[6]性能評価結果
次に、図7〜図11を用いて、実際にロボットシステム1を構築して行った性能評価の結果について説明する。
[6.1] 本評価を行った評価システム
まず、図7及び図8を用いて本評価を行う評価システムについて説明する。なお、図7及び図8は、本評価システムにおける本性能評価実験の評価条件を説明するための図である。
本評価システムは、図7に示すROSシステムによって構築した。特に、本評価システムにおいて、「snd_data」ノードは、配信するトピックである、「input_data」トピックのメッセージ1を「process」ノードに送信し、「process」ノードは「input_data」トピックをサブスクライブし、メッセージ1を受信したら、「output_data」トピックのメッセージ2を「rcv_data」ノードに送信するようになっている。そして、「rcv_data」ノードは、「output_data」トピックをサブスクライブし、メッセージ2を受信する。
また、メッセージ1及びメッセージ2は、共に「sensor_msgs/image」型によって形成されており、そのデータ構造を図8に示す。特に、このメッセージ型は、ROSで用意されているメッセージ型であり、画像の幅、高さ、エンコードに関する変数を持ち、変数「step」に入れた値によって、配列である「data」のサイズが決まる。例えば「step」の値を「1」とすれば、1byteの配列が用意され、「1000」とすれば、1000byteの配列となる。
そして、このシステムにおいて、「process」ノードと同等の動作をする通信デバイスを実装し、「snd_data」ノードがメッセージ1を送信してから「rcv_data」ノードがメッセージ2を受信するまでの時間を計測した。
なお、測定に用いたメッセージ1及びメッセージ2のサイズは、画像サイズを「480×640」でピクセルで3バイト(すなわち、RGB)を想定した1Mbyte、2値化されたフルHD画像「1920×1080×1」の2Mbyte、「1920×1080×3」の6Mbyteで行った。
[6.2]測定環境
次に、図9を用いて本評価システムにおける測定環境について説明する。なお、図9は、本評価システムにおける本性能評価実験の評価条件を説明するための図である。
本評価システムは、通信デバイスの通信遅延を比較するために、汎用的なプロセッサを搭載したPC−PC間、PC−ARM(登録商標)プロセッサ間、PC−FPGA間の3通りで計測を行った。
特に、FPGAには、上記変形例1と同様に、第1実施形態のパブリッシャーアプリケーションノード機能と、パブリッシャーFPGAノード機能と、サブスクライバーソフトウエア機能と、サブスクライバーハードウエア機能と、1つの通信デバイス内に搭載したものを利用した。
また、本評価システムの測定環境は、図13に示すように、PC1、PC2、ARM、FPGAは全てギガビットイーサネット(登録商標)によって接続されている。特に、PC1で実行している「snd_data」ノードがデータを送信すると、レイヤ2スイッチ(L2スイッチ)を経由して、PC2またはARMプロセッサで実行している「process」ノードがデータを受信するようになっている。そして、データを全て受信したら、PC1上で実行している「rcv_data」ノードに対してデータ送信を行う。
さらに、PC1及びPC2には、CPUが、IntelCorei7(登録商標)870(2.93GHz)、メモリが4GBのものを使用した。なお、PC1及び2に搭載したOSはUbuntu(登録商標)16.04であり、ARMプロセッサには、Xiliinx社製ZC7020搭載のZedboard(登録商標)上のARMCortex−A9(登録商標)プロセッサを用いた。
特に、FPGAボードには、Xiliinx社製のSpartan−6(XC6SLX100) (登録商標)を搭載した、株式会社e−trees.JapanのexTri−CSIを用いた。なお、このボードは、ギガビットイーサネット(登録商標)を3ポート持っており、そのうちの2つとSiTCPのインスタンスを接続している。
[6.3]評価結果
次に、図10及び図11を用いて本評価システムにおける評価結果について説明する。なお、図10及び図11は、本評価システムにおける評価結果を示すグラフである。
図10に示すように、「snd_data」ノードが画像メッセージを送信開始してから、「rcv_data」ノードが画像メッセージを受信完了するまでの遅延時間の測定結果に基づくと、画像サイズが増加するにつれて、遅延時間も増加していることが分かる。
特に、6Mサイズの送受信にかかる遅延時間は、PC−PC間の場合は129ms、PC−ARM間の場合は290ms、PC−FPGA間の場合は175msであった。なお、画像メッセージは、メッセージサイズを1M、2M、6Mbyteにしたものである。
また、ARMプロセッサと比較して、FPGA(すなわち、本発明の通信デバイス)を用いた場合に、画像メッセージの送受信時における遅延時間が短くなることが分かった。
その一方、SiTCPのスループットである949Mbpsと比較したときに、大きな速度向上を得られていないことから、FPGAにより受信のみを行った場合について、さらに性能評価を行った。
図11に示すように、「snd_data」ノードが画像メッセージを送信開始してから、「rcv_data」ノードが終了メッセージを受信完了するまでの遅延時間の測定結果に基づくと、遅延時間は、主に実装した通信デバイスが画像データを受信するためにかかった時間になっている。なお、終了メッセージとはメッセージ2の「step」値を「1」としたものであり、メッセージサイズは46byteである。
特に、6Mbyteの画像データを送受信する場合には、本発明の通信デバイス(すなわち、本評価におけるFPGA)と、PC間の通信時間が、57msとなり、PC−PC間の通信時間(67ms)よりもさらに短いことが分かった。
1 :ロボットシステム
10 :カメラコンポーネント
20 :駆動コンポーネント
30 :マスターデバイス
100 :通信デバイス
110 :アプリケーション実行部
111 :IPスタック
112 :解釈部
113 :制御部
114 :XML−RPCメッセージ生成部
120 :FPGA制御処理部
121 :IPスタック
122 :解釈部
123 :制御部
124 :登録処理部
125 :データ入力部
126 :データ処理部
127 :符号化処理部
128 :マルチプレクサ
200 :通信デバイス
210 :アプリケーション実行部
211 :IPスタック
212 :解釈部
213 :制御部
214 :XML−RPCメッセージ生成部
220 :FPGA制御処理部
221 :IPスタック
222 :解釈部
223 :制御部
224 :要求処理部
225 :接続処理部
226 :マルチプレクサ
227 :復号化処理部
228 :データ処理部
229 :データ出力部
1211 :受信部
1212 :送信部
2211 :受信部
2212 :送信部

Claims (10)

  1. 論理回路によって加工された、予め定められたトピックに属する実データを他の通信デバイスに配信する通信デバイスであって、
    所定のアプリケーションと連動する第1通信プロトコルに従って、前記トピックにおける前記他の通信デバイスとのデータ通信を実行するための通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1通信アドレスを含む第1通信制御用データを、前記通信デバイス間のデータ通信を管理する管理装置に登録する登録手段と、
    特定の前記トピックにおける前記第1通信アドレスを含む前記第1通信制御用データを前記管理装置から取得した前記他の通信デバイスから、前記第1通信プロトコルに従って、当該特定のトピックに関するデータ通信を実行するための第1通信コネクションの確立要求を受け付ける第1受付手段と、
    前記第1通信コネクションの確立要求が受け付けられた場合に、前記第1通信プロトコルに従って、当該確立要求をした他の通信デバイスとの前記第1通信コネクションを確立する第1確立手段と、
    前記第1通信プロトコルとは異なり、かつ、前記論理回路を用いる第2通信プロトコルによって前記特定されたトピックにおける実データを配信するための通信用制御データであって、当該実データを配信する際に用いる前記第1通信アドレスとは異なる第2通信アドレスを含む第2通信用制御データを、前記第1通信プロトコルに従って、前記第1通信コネクションが確立された他の通信デバイスに配信する第1配信手段と、
    前記配信された第2通信用制御データに含まれる第2通信アドレスを用いることによって、前記他の通信デバイスから、前記第1通信プロトコルに従って、前記特定のトピックにおける実データのデータ通信を実行するための第2通信コネクションの確立要求を受け付ける第2受付手段と、
    前記第2通信コネクションの確立要求が受け付けられた場合に、前記第2通信プロトコルに従って、当該確立要求をした他の通信デバイスとの第2通信コネクションを確立する第2確立手段と、
    前記第2通信プロトコルに従って、前記確立された第2通信コネクションを介して、前記論理回路から出力された前記特定のトピックにおける実データを、該当する他の通信デバイスに配信する第2配信手段と、
    を備えることを特徴とする通信デバイス。
  2. 請求項1に記載の通信デバイスにおいて、
    前記論理回路が、
    複数の処理を並列して実行可能なプログラマブルロジック回路によって構成されている、通信デバイス。
  3. 請求項1又は2に記載の通信デバイスにおいて、
    第2通信プロトコルが、
    単一のTCPポートを用いた手順を規定する通信プロトコルであり、
    前記第2確立手段が、
    前記TCPポートを用いて、前記他の通信デバイスとの間において、前記第2通信コネクションを確立する、通信デバイス。
  4. 請求項1〜3の何れか1項に記載の通信デバイスにおいて、
    前記登録手段が、
    自機の通信環境に応じて、前記アプリケーションの手順に従って、前記管理装置に登録する際の前記通信用制御データを変更する処理を実行する、通信デバイス。
  5. 請求項1〜4の何れか1項に記載の通信デバイスにおいて、
    自機の置かれている状況又は自機の周囲環境を示す環境データを取得する取得手段と、
    前記取得された環境データを前記論理回路によって加工して前記実データを生成する生成手段と、
    を更に備える、通信デバイス。
  6. 予め定められた他の通信デバイスから出力され所定のトピックに関する実データを取得し、当該取得した実データに対して所定の処理を実行する通信デバイスであって、
    所定のアプリケーションと連動する第1通信プロトコルに従って、前記他の通信デバイスが管理装置に登録している通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1通信アドレスを含む第1通信制御用データを、当該管理装置から、取得する第1取得手段と、
    特定の前記トピックにおける前記第1通信アドレスを含む前記第1通信制御用データに基づいて、該当する前記他の通信デバイスに、前記第1通信プロトコルに従って、当該特定のトピックに関するデータ通信を実行するための第1通信コネクションの確立要求を行う第1確立要求手段と、
    前記第1通信コネクションの確立要求が受け付けられた場合に、前記第1通信プロトコルに従って、当該確立要求を受け付けた他の通信デバイスとの前記第1通信コネクションを確立する第1確立手段と、
    前記第1通信プロトコルとは異なり、かつ、論理回路を用いる第2通信プロトコルによって前記特定されたトピックにおける実データを前記確立要求を受け付けた他の通信デバイスによって配信するための通信用制御データであって、当該実データを配信する際に用いる前記第1通信アドレスとは異なる第2通信アドレスを含む第2通信用制御データを、前記第1通信プロトコルに従って、前記第1通信コネクションが確立された他の通信デバイスから取得する第2取得手段と、
    前記配信された第2通信用制御データに含まれる第2通信アドレスを用いることによって、前記第1通信コネクションが確立された他の通信デバイスに、前記第2通信プロトコルに従って、前記特定のトピックにおける実データのデータ通信を実行するための第2通信コネクションの確立要求を行う第2確立要求手段と、
    前記第2通信プロトコルに従って、当該確立要求を受け付けた他の通信デバイスとの第2通信コネクションを確立する第2確立手段と、
    前記第2通信プロトコルに従って、前記確立された第2通信コネクションを介して、前記論理回路から出力された前記特定のトピックにおける実データを、該当する他の通信デバイスから取得する第2取得手段と、
    を備えることを特徴とする通信デバイス。
  7. 請求項6に記載の通信デバイスにおいて、
    第2通信プロトコルが、
    単一のTCPポートを用いた手順を規定する通信プロトコルであり、
    前記第2確立手段が、
    前記TCPポートを用いて、前記他の通信デバイスとの間において、前記第2通信コネクションを確立する、通信デバイス。
  8. 請求項1〜7のいずれか1項に記載の通信デバイスを備えた情報通信端末装置。
  9. 論理回路によって加工された、予め定められたトピックに属する実データを他の通信デバイスに配信する通信方法であって、
    所定のアプリケーションと連動する第1通信プロトコルに従って、前記トピックにおける前記他の通信デバイスとのデータ通信を実行するための通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1通信アドレスを含む第1通信制御用データを、前記通信デバイス間のデータ通信を管理する管理装置に登録するステップと、
    特定の前記トピックにおける前記第1通信アドレスを含む前記第1通信制御用データを前記管理装置から取得した前記他の通信デバイスから、前記第1通信プロトコルに従って、当該特定のトピックに関するデータ通信を実行するための第1通信コネクションの確立要求を受け付けるステップと、
    前記第1通信コネクションの確立要求が受け付けられた場合に、前記第1通信プロトコルに従って、当該確立要求をした他の通信デバイスとの前記第1通信コネクションを確立するステップと、
    前記第1通信プロトコルとは異なり、かつ、前記論理回路を用いる第2通信プロトコルによって前記特定されたトピックにおける実データを配信するための通信用制御データであって、当該実データを配信する際に用いる前記第1通信アドレスとは異なる第2通信アドレスを含む第2通信用制御データを、前記第1通信プロトコルに従って、前記第1通信コネクションが確立された他の通信デバイスに配信するステップと、
    前記配信された第2通信用制御データに含まれる第2通信アドレスを用いることによって、前記他の通信デバイスから、前記第1通信プロトコルに従って、前記特定のトピックにおける実データのデータ通信を実行するための第2通信コネクションの確立要求を受け付けるステップと、
    前記第2通信コネクションの確立要求が受け付けられた場合に、前記第2通信プロトコルに従って、当該確立要求をした他の通信デバイスとの第2通信コネクションを確立するステップと、
    前記第2通信プロトコルに従って、前記確立された第2通信コネクションを介して、前記論理回路から出力された前記特定のトピックにおける実データを、該当する他の通信デバイスに配信するステップと、
    を含むことを特徴とする通信方法。
  10. 予め定められた他の通信デバイスから出力され所定のトピックに関する実データを取得し、当該取得した実データに対して所定の処理を実行する通信方法であって、
    所定のアプリケーションと連動する第1通信プロトコルに従って、前記他の通信デバイスが管理装置に登録している通信制御用のデータであって、当該データ通信を行う際に割り当てられた第1通信アドレスを含む第1通信制御用データを、当該管理装置から、取得するステップと、
    特定の前記トピックにおける前記第1通信アドレスを含む前記第1通信制御用データに基づいて、該当する前記他の通信デバイスに、前記第1通信プロトコルに従って、当該特定のトピックに関するデータ通信を実行するための第1通信コネクションの確立要求を行うステップと、
    前記第1通信コネクションの確立要求が受け付けられた場合に、前記第1通信プロトコルに従って、当該確立要求を受け付けた他の通信デバイスとの前記第1通信コネクションを確立するステップと、
    前記第1通信プロトコルとは異なり、かつ、論理回路を用いる第2通信プロトコルによって前記特定されたトピックにおける実データを前記確立要求を受け付けた他の通信デバイスによって配信するための通信用制御データであって、当該実データを配信する際に用いる前記第1通信アドレスとは異なる第2通信アドレスを含む第2通信用制御データを、前記第1通信プロトコルに従って、前記第1通信コネクションが確立された他の通信デバイスから取得するステップと、
    前記配信された第2通信用制御データに含まれる第2通信アドレスを用いることによって、前記第1通信コネクションが確立された他の通信デバイスに、前記第2通信プロトコルに従って、前記特定のトピックにおける実データのデータ通信を実行するための第2通信コネクションの確立要求を行うステップと、
    前記第2通信プロトコルに従って、当該確立要求を受け付けた他の通信デバイスとの第2通信コネクションを確立するステップと、
    前記第2通信プロトコルに従って、前記確立された第2通信コネクションを介して、前記論理回路から出力された前記特定のトピックにおける実データを、該当する他の通信デバイスから取得するステップと、
    を含むことを特徴とする通信方法。
JP2017178197A 2017-09-15 2017-09-15 通信デバイス、情報通信端末装置及び通信方法 Active JP7049641B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017178197A JP7049641B2 (ja) 2017-09-15 2017-09-15 通信デバイス、情報通信端末装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017178197A JP7049641B2 (ja) 2017-09-15 2017-09-15 通信デバイス、情報通信端末装置及び通信方法

Publications (2)

Publication Number Publication Date
JP2019054455A true JP2019054455A (ja) 2019-04-04
JP7049641B2 JP7049641B2 (ja) 2022-04-07

Family

ID=66014744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017178197A Active JP7049641B2 (ja) 2017-09-15 2017-09-15 通信デバイス、情報通信端末装置及び通信方法

Country Status (1)

Country Link
JP (1) JP7049641B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080750A (zh) * 2019-12-30 2020-04-28 北京金山安全软件有限公司 一种机器人动画配置方法、装置及系统
CN111474866A (zh) * 2020-04-07 2020-07-31 杭州迅蚁网络科技有限公司 基于ros的无人仓储站运动控制仿真方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012098838A (ja) * 2010-10-29 2012-05-24 Toshiba Corp データ送信システムおよびデータ送信プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012098838A (ja) * 2010-10-29 2012-05-24 Toshiba Corp データ送信システムおよびデータ送信プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAVID SIDLER ET AL: "Low-Latency TCP/IP Stack for Data Center Applications", 2016 26TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL), JPN6021030131, 2 September 2016 (2016-09-02), ISSN: 0004566429 *
ROS.ORG, ROS/TECHNICAL OVERVIEW, JPN6021030129, 15 June 2014 (2014-06-15), ISSN: 0004566427 *
TOMOHISA UCHIDA: "Hardware-Based TCP Processor for Gigabit Ethernet", IEEE TRANSACTIONS ON NUCLEAR SCIENCE, vol. 55, no. 3, JPN6021030130, 17 June 2008 (2008-06-17), pages 1631 - 1637, XP011216749, ISSN: 0004566428 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080750A (zh) * 2019-12-30 2020-04-28 北京金山安全软件有限公司 一种机器人动画配置方法、装置及系统
CN111080750B (zh) * 2019-12-30 2023-08-18 北京金山安全软件有限公司 一种机器人动画配置方法、装置及系统
CN111474866A (zh) * 2020-04-07 2020-07-31 杭州迅蚁网络科技有限公司 基于ros的无人仓储站运动控制仿真方法及系统
CN111474866B (zh) * 2020-04-07 2023-11-10 杭州迅蚁网络科技有限公司 基于ros的无人仓储站运动控制仿真方法及系统

Also Published As

Publication number Publication date
JP7049641B2 (ja) 2022-04-07

Similar Documents

Publication Publication Date Title
Mohanarajah et al. Rapyuta: A cloud robotics platform
Toris et al. Robot web tools: Efficient messaging for cloud robotics
CN109159125B (zh) 基于ros系统机器人的云服务系统
CN109314709A (zh) 嵌入在实时多媒体应用中的启用雾的遥测
TWI743853B (zh) 設備控制方法、電子設備及儲存介質
JP6056795B2 (ja) 画像処理システム、ゲートウェイ装置、ゲートウェイ装置の制御方法、ゲートウェイ装置の制御プログラム
CN104090538B (zh) 基于wifi的智能助残轮椅控制系统及控制方法
EP3553739A1 (en) Image recognition system and image recognition method
Ishak et al. Design and implementation of robot assisted surgery based on Internet of Things (IoT)
JP2018149669A (ja) 学習装置及び学習方法
JP7049641B2 (ja) 通信デバイス、情報通信端末装置及び通信方法
Chen et al. Fogros: An adaptive framework for automating fog robotics deployment
US20050021640A1 (en) System for remote data acquisition based on e-mail message communication through public and private networks
CN105190530A (zh) 传输硬件渲染的图形数据
Abed Internet of Things (IoT): architecture and design
AU2002325941A1 (en) System for remote data acquisition based on e-mail message communication through public and private networks
CN110505309A (zh) 网络通信方法、装置、设备及存储介质
CN107003952A (zh) 设备调用方法、装置、系统、电子设备和计算机程序产品
CN102238086A (zh) 端点的透明迁移
KR20180059385A (ko) 복수개의 저전력 장거리 통신(lpwa) 인터페이스를 통해 전송되는 메시지를 클라우드 시스템에 접속시키기 위한 공통 콘테이너 생성 장치
CN114679436B (zh) 一种会话管理方法、服务器及计算机可读存储介质
CN115103204B (zh) 一种支持ai引擎的边缘智能应用实现方法及装置
Wason Robot raconteur® version 0.8: An updated communication system for robotics, automation, building control, and the internet of things
Lim et al. Rapid development of distributed applications using high-level communication support
CN103546508B (zh) 信息同步系统和方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171005

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20171010

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200914

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201014

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20201125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220318

R150 Certificate of patent or registration of utility model

Ref document number: 7049641

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150