JP7266048B2 - ロボットを相互接続する方法 - Google Patents

ロボットを相互接続する方法 Download PDF

Info

Publication number
JP7266048B2
JP7266048B2 JP2020566329A JP2020566329A JP7266048B2 JP 7266048 B2 JP7266048 B2 JP 7266048B2 JP 2020566329 A JP2020566329 A JP 2020566329A JP 2020566329 A JP2020566329 A JP 2020566329A JP 7266048 B2 JP7266048 B2 JP 7266048B2
Authority
JP
Japan
Prior art keywords
program
robot
message
robots
interconnection method
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.)
Active
Application number
JP2020566329A
Other languages
English (en)
Other versions
JP2021514515A (ja
Inventor
マルワン アヤイダ
ナジール メサイ
フレデリック ヴァレンタン
ディミトリ マルシェラ
リッサン アフィラル
Original Assignee
ユニヴェルシテ・ドゥ・ランス・シャンパーニュ-アルデンヌ
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 ユニヴェルシテ・ドゥ・ランス・シャンパーニュ-アルデンヌ filed Critical ユニヴェルシテ・ドゥ・ランス・シャンパーニュ-アルデンヌ
Publication of JP2021514515A publication Critical patent/JP2021514515A/ja
Application granted granted Critical
Publication of JP7266048B2 publication Critical patent/JP7266048B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/087Controls for manipulators by means of sensing devices, e.g. viewing or touching devices for sensing other physical parameters, e.g. electrical or chemical properties
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Manipulator (AREA)

Description

本発明は、接続されたデバイス群(移動可能なロボット群、センサ群等)の間の通信の分野、及びこれら接続されたデバイス群の相互運用性の分野に関する。
ヒューマノイドロボット、操作アームを持つ又は持たない移動可能なキャリッジ、ドローン等のような、異なるタイプの移動可能なロボットを使うことが知られている。かなり頻繁に、これらロボットは、周囲のデータを獲得するための異なるセンサに関連付けられ、アドホック通信及び異なるオペレーティング及びモニタコントロールシステムを備える。実質的に自律的なこれら異なるオブジェクトに、完了されるべきタスクの分散及びこれらオブジェクト群の間の協働を組織化することによって、複雑な操作を実行させるためのインプリメンテーションは、しばしば相当に異種のものからなる、ハードウェア及びソフトウェア機器の間の通信及び情報のやりとりを必要とする。
今まで、その物理的特性によって及びそのそれぞれのオペレーティングソフトウェアによっての両方でヘテロジニアスでありながら、サードパーティソフトウェアブロックの容易で統一された統合だけでなく、特に高レベルアプリケーションサービスの開放を可能にする、これら移動可能なオブジェクト群(ロボット及び/又は他のデータセンサ)の間の所望の通信及び相互運用性を確実にするのに十分なインターフェイスソフトウェア又はプログラム、又はミドルウェアと呼ばれるものは存在しなかった。
よって、解決されるべき課題は、特に、おそらくはリモートで、協働して及び/又は1つ以上の操作者(群)によって、特定のタスクの完了のためのオブジェクトの1つ以上のフリート(群)に所属し得るこれらのオブジェクトを相互接続することによって、異種の移動可能なオブジェクトを一緒にすることができるインターフェイスソフトウェアを設計することにある。
よって本発明は、この課題の全て又は一部に対する解決策を提供することを目的とする。
この目的のために、本発明は、第1ロボットを少なくとも1つの第2ロボットに相互接続する方法、及び複数のロボットの間の協働を管理する方法に関し、加えてこれら方法を実行するよう構成された命令を含む少なくとも1つのコンピュータプログラムにも関する。
本発明は、第1ロボットを少なくとも1つの第2ロボットと相互接続する方法に関し、それぞれのロボットは、
モニタ制御ユニットであって、前記モニタ制御ユニットは、少なくとも1つのプロセッサ及び少なくとも1つのメモリモジュールを備える、モニタ制御ユニットと、
アクチュエータ又はセンサのような少なくとも1つの周辺機器と、
少なくとも1つの通信ネットワークに接続された少なくとも1つの通信機器と、
前記少なくとも1つの通信機器を制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第1ソフトウェアモジュールを含む第1プログラムP1と、
前記少なくとも1つのプロセッサ上で実行される複数の第2ソフトウェアモジュールを含む第2プログラムであって、前記第2プログラムの構成は、解釈モード又は直接モードの間で送信モードを示すフィールドtyp_serviceを含むセットアップファイルによって決定され、前記送信モードは、前記第2プログラムによって送信されるメッセージを特徴付ける、第2プログラムP2と、
前記少なくとも1つのアクチュエータ及び/又は前記少なくとも1つのセンサを制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第3ソフトウェアモジュールを含む第3プログラムP3と
を少なくとも備え、
前記方法は、前記第3プログラムから発生する第1メッセージの前記第2プログラムによる受信の後に、前記ロボットのそれぞれの中で前記第2プログラムによって実現される以下のステップ
前記第1メッセージを第2メッセージへ変換することであって、前記第2メッセージは、コマンド、クエリ、又は情報のタイプ群のうちの前記メッセージのタイプを示すフィールドtyp_msgを含む予め定義されたオブジェクト構造に従ってフォーマットされる、変換することと、
前記第2メッセージを、同じロボットに属する第1プログラム、他のロボットの第2プログラムのうちの少なくとも1つのプログラムに送信することと、
を含み、
前記相互接続方法は、同じロボットに属する第1プログラム、他のロボットの第2プログラムのうちの少なくとも1つのプログラムから発生する、前記予め定義されたオブジェクト構造に従ってフォーマットされた第3メッセージの前記第2プログラムによる受信の後に、前記第3メッセージの前記フィールドtyp_msgが、コマンドタイプ又はクエリタイプを示す時に、前記ロボットのそれぞれの中で前記第2プログラムによって実現される以下のステップ
前記第3メッセージに関連付けられた前記セットアップファイルの前記フィールドtyp_serviceが前記ダイレクト送信モードを表す時に、前記第3メッセージを、前記第3プログラムによって実現されるよう構成されたプログラム部分に翻訳することと、及び/又は
第2伝送プロトコルに従って、前記第3メッセージの、又は前記プログラム部分の少なくとも一部を前記第3プログラムに送信することと
をさらに含む。
有利には、それを通して第2プログラムP2が、送信されるべき情報及び/又は命令のフォーマッティングを確保する、予め定義され一般的なオブジェクト構造は、以下のフィールドによって構成される。
-メッセージタイプ:コマンド、情報又はクエリ;
-メッセージサブタイプ:データ(位置、リアル、画像、ビデオ、…)又はコマンド(アドバンス、プルバック、ストップ、…)タイプ;
-ソース:ペアIPアドレス/ポートによって又はソースの名称によって又はソースの名称によって構成される送信者アドレス(ペアIPアドレス/ポートは、ルーティングテーブルでそれに関連付けられ得る);
-デスティネーション:ペアIPアドレス/ポート、又は受信者の名称によって構成された受信者アドレス;
-データフィールドのサイズ;
-データ。
本発明の局面によれば、翻訳ステップは、少なくとも1つのメモリモジュール内に記憶されたルックアップテーブル又はデータベースのような第2プログラム内でのコンフィギュレーションファイル(P2に属する)へのアクセスを含み、コンフィギュレーションファイルは、第3プログラムによって実現されるよう構成されたプログラム部分を第2プログラムに提供する。
好ましくは、コンフィギュレーションファイルは、第2プログラムが
・メッセージのサブタイプ(前で提示されたオブジェクト構造のサブタイプフィールド内で定義される)と、データ(前で提示されたオブジェクト構造のデータフィールド内で定義される)との対応を確率すること、
・第3プログラムによって実現されるよう構成されたプログラム部分を選択すること(後者がそれを直接に実行できるようにする、ロボットの適切な言語におけるコマンドの又はクエリの翻訳)
をできるようにする。
本発明のある局面によれば、前記第3メッセージの、又は前記プログラム部分の少なくとも一部を送信するステップは、
・第2伝送プロトコルによる、前記第2プログラムから第4プログラムへの第4メッセージの第1送信と、
・前記第4プログラムから前記第3プログラムへの第5メッセージの第2送信と、
少なくとも含む。
本発明のある局面によれば、第1伝送プロトコルは、前記第1ロボットの前記第2プログラムと、前記第2ロボットの前記第2プログラムとの間の第6メッセージの送信のために用いられる。
本発明のある局面によれば、やり取りされた前記第1、第2、第3、第4、第5、及び第6メッセージは、JSONフォーマットである。
本発明のある局面によれば、前記第1プロトコルは、UDPタイプである。
本発明のある局面によれば、前記第2プロトコルは、TCPタイプである。
本発明のある局面によれば、前記少なくとも1つの電気通信機器は、無線通信手段を備える。
本発明のある局面によれば、前記無線通信手段は、WIFIタイプのモジュール、RFIDタイプのモジュール、ブルートゥースタイプのモジュール、GSMタイプのモジュールのうちの少なくとも1つのモジュールを備える。
本発明のある局面によれば、前記第1ロボットの前記第2プログラムは、もし前記受信者が前記少なくとも1つの第2ロボットであるなら、前記第2メッセージを送信する前に、前記第2メッセージを暗号化し、前記第1ロボットの前記第2プログラムは、もし前記送信者が前記少なくとも1つの第2ロボットであるなら、前記第3メッセージを翻訳又は送信する前に、前記第3メッセージを復号化する。
よって、それぞれのロボット内で、第2プログラムは、メッセージをそれらのオリジン及びデスティネーションに依拠して、スマートに暗号化及び/又は復号化するよう構成されている。
本発明のある局面によれば、前記少なくとも1つの第2ロボットは、インターネットサーバーに接続されたリモートオペレータを備える。
本発明のある局面によれば、前記第3プログラムは、前記ロボットの前記オペレーティングシステム及び少なくとも1つのアクチュエータ及び/又は少なくとも1つのセンサのドライバプログラムを含む。
本発明は、また、複数のロボットの間の協働を管理する方法であって、前記複数のロボットのそれぞれは、
- モニタ制御ユニットであって、前記モニタ制御ユニットは、少なくとも1つのプロセッサ及び少なくとも1つのメモリモジュールを備える、モニタ制御ユニットと、
- アクチュエータ又はセンサのような少なくとも1つの周辺機器と、
- 少なくとも1つの通信ネットワークに接続された少なくとも1つの通信機器と、
- 前記少なくとも1つの通信機器を制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第1ソフトウェアモジュールを含む第1プログラムと、
- 前記少なくとも1つのプロセッサ上で実行される複数の第2ソフトウェアモジュールを含む第2プログラムと、
- 前記少なくとも1つのアクチュエータ及び/又は前記少なくとも1つのセンサを制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第3ソフトウェアモジュールを含む第3プログラムと
を少なくとも備え、
前記方法は、以下のステップ
サーバーによってホストされた又はインターネットを通してアクセス可能なアプリケーションレイヤによる、予定された基本タスク及びそれらの順序のリストを含む送信ファイルと、前記周辺機器の識別及び優先度ファイルとの送信と、
前記複数のロボットのそれぞれのロボットの前記第1プログラムの機器サービスによる、前記ミッションファイルと前記識別及び優先度ファイルとの受信と、
前記複数のロボットのそれぞれのロボットの前記第1プログラムによる、第1クエリタイプメッセージの、その第2プログラムへの送信であって、これにより前記複数のロボットのそれぞれのロボットの少なくとも1つの周辺機器のうちのそれぞれの利用可能な周辺機器の識別子を確定する、第1クエリタイプメッセージの送信と、
前記複数のロボットのそれぞれのロボットの前記第2プログラムによる、本発明による相互接続方法の実行によって、前記複数のロボットのそれぞれのロボット上で利用可能な周辺機器の識別子のリクエストを第3プログラムから行い(同じロボット内で)、前記第1プログラムに送信する(同じロボット内で)ことと、
前記利用可能な周辺機器の識別子の前記複数のロボットのそれぞれのロボットの前記第1プログラムの前記機器サービスによる処理によって、前記複数のロボットのそれぞれのロボットによって実現可能なタスクのリストを生成すること(それぞれのロボットは、その中で、そこに提供される周辺機器に従って完了できるタスクのリストを確定する)、
前記複数のロボットのそれぞれのロボットによって実現可能なタスクのリストを、前記第1プログラムP1のそれぞれのネゴシエーション/選択サービスによって、前記複数のロボットのそれぞれのロボットに及び/又は前記サーバーの中央化されたサービスに送信すること、
前記サーバーの中央化されたサービスによる及び/又は前記ロボットのそれぞれのネゴシエーション/選択サービスの間の通信の処理に続く、前記周辺機器の前記識別及び優先度ファイルに基づく、及び前記実現可能なタスクのリストに基づく、前記ミッションに参加するロボットのリストの作成と、
前記ミッションの実行と、
前記ロボットの同期と、
前記ミッションの実行の監督と
を含む。
本発明は、また、本発明による少なくとも1つの方法を実行するよう構成された命令のセットを含むコンピュータプログラムに関する。
好ましくは、本発明は、ロボットを相互接続する方法を実行するよう構成された命令のセットを含むコンピュータプログラム、及びロボット間の協働の管理方法を実行するよう構成された命令のセットを含むコンピュータプログラムに関する。
適切な理解のために、本発明は、本発明による装置の実施形態を非限定的な例として表す添付の図面を参照して説明される。
図1は、完全にそれに一体化された本発明の第1変形例による移動可能なロボット、及びその環境の概略を図示したものである。 図2は、完全にそれに一体化された本発明の第1変形例による、通信するロボットの一隊の概略を図示したものである。 図3は、第2変形例による本発明のアーキテクチャの概略を図示したものであり、ここで本発明は、一方で、ロボットに部分的に統合され、他方で、部分的にクラウドへ追いやられている。 図4は、本発明による異なるアクター(ロボット、ユーザー)及び異なる可能性のある通信チャンネルの概略を図示したものである。 図5は、第1ロボットR1及び第2ロボットR3の間の通信のダイヤグラムを図示したものである。 図6は、ユーザーU1及びロボットR3の間の通信のダイヤグラムを図示したものである。 図7は、本発明によるロボットの協働のシナリオの概略を図示する。 図8Aは、本発明によるロボットの協働のシナリオの概略を図示する。 図8Bは、本発明によるロボットの協働のシナリオの概略を図示する。
本発明及びその実施形態は、図1-図8A,図8Bからなる添付の図面を参照して説明される。
本発明は、図1に概略的に示されるような、スタンドアローンロボット1上で第2プログラムP2によって実現される方法に関する。P2は、1つ以上のサブプログラム(群)又はソフトウェアモジュール(群)を含み、第1プログラムP1と、2つの他のプログラム、第3プログラムP3及び第4プログラムP4との間のインターフェイスを行うことを確保するソフトウェアレイヤを構成する。これらプログラムP1、P3、及びP4のそれぞれは、1つ以上のサブプログラム(群)又はソフトウェアモジュール(群)を含み、それぞれは、ソフトウェアレイヤを構成する。
図1に提示されるように、ロボット1は、
● 他のロボット2と通信し、ロボット1は、ロボット2に情報及び/又はコマンドを提供し得て、ロボット2を介して、ロボット1は、情報及び/又はコマンドを受け取り得て、いずれの場合も受動的に及び/又はリクエストに応じて行い、
● リモートサーバー3と通信し、リモートサーバー3を通して、
○ オペレーターは、互いにインタラクトするロボット(群)によって実行されるべきタスクをリモートで特定することができ、
○ ロボット1は、他のロボット2と通信(情報及び/又はコマンドを受動的及び/又はリクエストに応じて)することができる。
本発明の変形例によれば、ロボット1及び2は、直接にかつ互いとだけ通信するよう構成される(例えば、リモートサーバー3に欠陥がある品質低下動作モードにおいて、又は例えばメンテナンスが実行されるべきであるとき、及び/又はコストに関連する理由のためにリモートサーバー3を使用することなく進行させるとき)。
- 本方法の説明を図示する働きをここでするスタンドアローンロボット1は、スタンドアローンロボット又は任意の他の接続されたデバイスであり得るが、ここでこのデバイスは、図1で示されるメインハードウェア機器を備え、それは、可動性又は荷重グリッピング等のためのアクチュエータタイプA1、A2の少なくとも1つの周辺機器、及び/又は環境データ獲得(地理的位置、温度等)のためのセンサタイプCを備える。
- 少なくとも1つの周辺機器(群)のモニタ・制御ユニットは、少なくとも1つのプロセッサ4及び少なくとも1つのメモリモジュールMを備え、プログラム又はソフトウェアレイヤP1、P2、P3、及びP4(アダプテーションモジュール(adaptation module))は、モニタ・制御ユニット(図2でも示される)のプロセッサ4上で実行される。
- 例えばWIFI、又はブルートゥース、又はGSM通信モジュールのような少なくとも1つの通信機器T1、T2は、考慮されているデバイス1がリモートサーバー3と及び/又は他の接続されたデバイス2と通信できるようにする。
第1プログラムP1は、電気通信手段T1、T2の管理、及び同じロボット又は接続されたデバイスのサブプログラムの間、及び2つの別個のロボット又は接続されたデバイスに属するプログラム及びサブプログラムの間でやりとりされるメッセージの転送プロトコルのサポートを確保する。有利には、第1プログラムP1は、
● コラボレーションサービス、
● ネゴシエーション/選択サービス、
● 機器サービス、及び
● とりわけ周辺機器検出サービス、データ同期化サービスを含む通信バス
のような(限定ではなく)ソフトウェアモジュール群のセットを含む。
第2プログラムP2、又はサブプログラム群又はソフトウェアモジュール群の第2セットは、本発明による方法を実現する。
第1及び第2プログラムP1、P2は、汎用であって、オペレーティングシステムに関係なく、任意のロボット上で展開され得る。
第3プログラムP3、又はサブプログラム群又はソフトウェアモジュール群の第3セットは、それぞれのロボット又は接続されたデバイスの特定のオペレーティングシステム、及びロボット又は考慮されている接続されたデバイスに関連付けられたアクチュエータ及び/又はセンサの特定のドライバを含む。有利には、プログラムP3は、
● ロボットオペレーティングシステム(例えば、ROS、ユニバーサルロボットOS、ABB OS):ネイティブライブラリ、ナビゲーションパッケージ、…
● ネイティブフレームワーク:ドライバ、ライブラリ、…
のような(限定ではなく)ソフトウェアモジュール群のセットを含む。
本記載によって、第3プログラムP3の具体的なものにおいて、本発明は、ロボット群の1つ以上のフリート(群)の中でその相互運用性を提供及び保証するために、そのロボットに具体的なロボットOSを中心として機能することが十分に理解されるべきである。
第4プログラムP4、又はアダプテーションサブプログラム群又はソフトウェアモジュール群の第4セットは、本発明がインストールされるロボットに適合されるべき、本発明の唯一のソフトウェアモジュールである。
ロボット及びプログラムP1、P2、P3、P4の外部にあるアダプテーションライブラリは、そのロボットに特定の言語における前記第4プログラムのスケルトンを生成することを特に可能にする。
前記アダプテーションライブラリを介して生成され、その必要に応じて操作者によって完了され終了されなければならない第4プログラムP4のスケルトンの例(とりわけ、関数<<これをしろ(dothis)>>、<<あれをしろ(dothat)>>のレベルにおいて)は、以下では、プログラミング言語中でイタリックで示される([ ]で囲まれるように表記される)(コメントはボールド文字である(「 」で囲まれるように表記される))。
////////
「P2への接続を可能する関数」

open=socket_open(‘ip’,’port’)
「したがってip, portは、P2がインストールされるロボット又はコンピュータのアドレス(ローカル、クラウド)である」

while (open==false):
open=socket_open(‘ip’,’port’)
end

////////
「P2からメッセージを受け取る(フィールド単位で(<<インタープリートされた(interpreted)>>モード))ために用いられ得る関数」

def recv_msg():

socket_send_string(‘ready’)
「ロボットはメッセージを受け取る準備ができていることをP2に通知する」

while from==””:
from=socket_read_string()
「第1フィールドを受け取るまでスタンバイする」
end

type=socket_read_ascii_float(1)
「その後、他のフィールドが1つずつ受け取られる」

stype=socket_read_string()
size=socket_read_ascii_float(1)
data=socket_read_string()
end

////////////
「P2に対してメッセージを送ることを可能にする関数(それをメッセージ内に示されたターゲットに送信することを担う)」

def send_msg(message):
socket_send_string(message)
end

//////////////////////
「受け取られたメッセージの異なるフィールドの値に従って採用する振る舞いを操作者が定義する関数。よって、“これをしろ(dothis)”、“あれをしろ(dothat)”という関数は、一般に、そのロボットに特定の1つ命令又は命令(群)のセットである(これは、第4プログラム、つまりロボットに適合されるべき本発明の唯一のソフトウェアモジュールの性質を特徴付ける)。」

def handle():
if type==”command”:
dothis
if type==”request”
dothat
////////
例えば、アダプテーションライブラリは、クラウド上で利用可能であり、又はローカルコンピュータ又はタブレットのようなリクエストに基づいてロボットに接続され得るシステムを通して利用可能である。
アダプテーションライブラリは、またロボット間のインタラクションのシナリオ(群)の定義及び構成において操作者を補助し得る。
よって、アダプテーションソフトウェアモジュール(第4プログラムP4)は、操作者の必要に応じてカスタマイズされ、前記アダプテーションライブラリを介して少なくとも部分的に生成される。それは、とりわけ、以下の4つの関数を含む。
● <<コネクション>>:この関数は、ロボットをソフトウェアレイヤP1及びP2に接続することを可能にし、これは、適切なペアのIPアドレス/ポートの指示に特に基づいている。
● <<メッセージ送信>>:メッセージは、次から次へと送られるいくつかのフィールドによって作成され、これらメッセージは、6つのフィールド(タイプ、サブタイプ、ソース、デスティネーション、サイズ、データ)によって作成される。
● <<メッセージ受信>>:受け取られたメッセージは、後で詳述される、特定の構造に準拠しなければならない。さらにロボットがデータを受け取れるようになるとすぐに、プログラムP4は、メッセージをレイヤP2に送って、自分がメッセージを受け取れることをそれに通知する。
● <<メッセージ処理>>:この関数は、それぞれのシチュエーションに具体的に適合され、それは、そのロボットに特定の言語で、一方では、受け取られたメッセージ及びデータに従って採用する振る舞いを定義し、他方では、そのシチュエーションに従う。特に、この関数は、ロボットがコマンド、クエリ、情報(ロボットの通信のやり方)を第4プログラムP4から第3プログラムP3に送信するやり方を定義する。
相互接続されたロボット又はデバイスのそれぞれの上で、ソフトウェアレイヤP1は、リモートロボット及び/又はデバイスの間のやり取りのために利用可能である電気通信機器を介して、あるロボット(又はデバイス)から、他のロボット(又はデバイス)及び/又はリモートサーバー3に予め規定通りにフォーマットされたメッセージを転送するよう構成される。ソフトウェアレイヤP1及びこれらソフトウェアレイヤによって実現された電気通信機器は、協働して、とりわけ、通信バスBCのハードウェア及びソフトウェアの両方の機能を確保することによって、異なるロボットを相互に及びクラウドに接続することを可能にする。好ましくは、それぞれの通信バスBCは、それぞれに固有のルータRを有し、とりわけロボットを直接にクラウドに接続することを可能にする。サーバーによってホストされるより高いソフトウェアレイヤ、例えばHMI、又はクラウドは、アプリケーションレイヤと呼ばれる。
しばしば<<ミドルウェア>>と呼ばれる中間プログラム又は中間ソフトウェアレイヤP2は、
- 一方では、より高いレベルP1から通信バスを介して受け取られた及び/又は他のロボットから発生する(特に送信者ロボットの第2プログラムから発生する)及び/又はリモートサーバー3からの情報又はコマンドを、アクチュエータ及び/又はセンサを操縦するための考慮されているロボットに特有のより低いソフトウェアレイヤP3によって理解され又は実行され得る情報又は命令に変換し、
- 他方では、逆方向に、考慮されているロボットによって他のロボット(又は接続されたデバイス)及び/又はリモートサーバー3に対して送信されるよう意図される情報又はコマンドメッセージを一般的なやり方でフォーマットし、一般的にフォーマットされたこのメッセージは、受信者ロボット又は接続されたデバイスのミドルレイヤP2によって受け取られてから変換される
よう構成される。
それぞれのロボット又は接続されたデバイスの、ヘテロジニアスでありそれぞれのロボット又はデバイスに固有であるソフトウェアレイヤP3及びP4とは異なり、中間ソフトウェアレイヤP2は、汎用的である。この中間ソフトウェアレイヤP2は、考慮されているロボットのアクチュエータ又はアクター(actors)を制御するためのソフトウェアレイヤP3によってそれぞれのロボット上で実現される所有権のあるフォーマット及び命令と、全てのロボット及び接続されたデバイスの全てに共通な汎用フォーマットとの間でインターフェイスすることを確保する。このインターフェイス機能は、特に、汎用フォーマットに従って受け取られた情報又はコマンドを、受信者ロボットのソフトウェアレイヤP4又はP3のうちの任意のものに従って実行され得る情報又は命令に翻訳するメカニズムを含む。
図2に示されるように、ロボット1が通信する他のロボット2、21は、
● ロボット1のそれらと同種のハードウェア機器(アクチュエータ及び/又はセンサ、プロセッサ及びメモリモジュールを持つモニタ制御ユニット、電気通信機器)、
● ロボット1のそれらと同種のソフトウェアアーキテクチャ(プログラムP1、P2)、
● これらロボットに固有のソフトウェアアーキテクチャ(プログラムP3、P4)
を備え得る。
例えば、本発明による方法は、レイヤP1、P2、P31及びP41を備えるロボット1を
● 1つのアクチュエータ、2つのセンサ、1つのwifiタイプの電気通信機器、少なくとも1つのプロセッサ及び少なくとも1つのメモリモジュールを備える周辺機器の1つのモニタ制御ユニットを有する第1ロボット2であって、前記第1ロボット2のプログラム又はソフトウェアレイヤP1、P2、P32、P42はそのプロセッサ上で実行される、第1ロボット2、
● 6つのセンサ、2つのwifi及びブルートゥースタイプ電気通信機器、少なくとも1つのプロセッサ及び少なくとも1つのメモリモジュールを備える周辺機器の1つのモニタ制御ユニットを有する第2ロボット21であって、前記第2ロボット21のプログラム又はソフトウェアレイヤP1、P2、P33、P43はそのプロセッサ上で実行される、第2ロボット21
と相互接続することを可能にし得る。
相互接続されたロボットのそれぞれのプログラムP1、P2は、同じ(同一の)ソフトウェアブロックを有する。
図3は、本発明の実施形態を示し、ここでロボット(ハードウェアの点で)は、それらに固有のプログラムP3及びP4だけしか与えられておらず、一方で、一般の汎用プログラムP1及びP2は、クラウド上に退避されている。ロボット群は、互いにハードウェア及びソフトウェア通信バスBC、及びルーティングテーブルTRが関連付けられている少なくとも1つのルータRを通して通信し、クラウドC及び/又はヒューマン・マシンインターフェイスHMIを介した少なくとも1人の人間のユーザーともおそらくは通信する。
好ましくは、前記ルーティングテーブルは、フォーム中の対のリスト(ロボットの名称、IPアドレス:ポート)を含み、これは、有利には第2プログラムP2内に統合され得るが、ルータが適切にメッセージを転送できるようにする。よって、ロボットは、メッセージの送信を希望するロボットの名称だけを知っていればよい。
情報が受信者ロボット又はデバイスに送信されるために第2プログラムP2に到達すると、第2プログラムP2は、以下のフィールドによって構成される所定の汎用オブジェクト構造に従ったメッセージで送信されるべき情報及び/又は命令のフォーマッティングを確保する。すなわち、
- メッセージタイプ:コマンド、情報又はクエリ;
- メッセージサブタイプ:データ(位置、リアル、画像、ビデオ、…)又はコマンド(アドバンス、プルバック、ストップ、…)タイプ;
- ソース:ペアIPアドレス/ポートによって又はソースの名称によって構成される送信者アドレス(ルーティングテーブルでそれに関連付けられたペアIPアドレス/ポート);
- デスティネーション:ペアIPアドレス/ポート、又は受信者の名称によって構成された受信者アドレス;
- データフィールドのサイズ;
- データ。
この汎用構造は、メッセージのより高いレベル(P1及びP2)へのトランスペアレントな伝送を可能にする。
ソフトウェアレイヤP2の構成は、JSONファイルフォーマットに基づく。このセットアップファイルは、
- 第2プログラムP2が実行されるロボットのIPアドレス(サーバーから見たときの);
- 当該ロボットを特定するために用いられる名称;
- 第2プログラムP2が外部メッセージをリッスンしなければならない外部リスニングポート;
- 当該ロボットの第3又は第4プログラムP3、P4が接続しなければならない内部リスニングポート;
- ロボット(それが通信をしようと希望される)に向けられたメッセージが、受信者ロボットによって<<インタープリートされる>>(受信の後で)ように意図されているか、又はメッセージがダイレクトモードに従って送達されるかを示すことができるようにする、サービスタイプ。
<<インタープリートされる>>によって、ロボットは、受け取られたメッセージのフィールドの値を分析することによって、その振る舞いを定義しなければならないという事実が理解されなければならない。
この解釈ステップは、第4プログラムP4によって実行され、前述のアダプテーションライブラリを通して予め構成される。
ダイレクトサービスにおいて、もしメッセージタイプがコマンド又はクエリなら、コンフィギュレーションファイルのおかげで、受信者ロボット上で実行されている第2プログラムP2は、コマンド又はクエリをこの受信者ロボット上で直接に実行され得るコマンドに翻訳する。
本発明のある局面によれば、コンフィギュレーションファイルは、好ましくはその第2プログラムP2へのインジェクションの前に、アダプテーションライブラリから生成される(例えば外部プログラムによって)。
好ましくは、ダイレクトモードにおいてコンフィギュレーションファイルに頼ることは、メッセージが、外部システムによるコマンドの実行を可能にするロボットへのコマンド及び/又はクエリからなるときだけ起こる。
例として、プログラミング言語におけるコンフィギュレーションファイルの構造は、以下にイタリックで示され([ ]で囲まれるように示され)、ここで、特に、<</cmd_vel>>によってROS言語に翻訳されたプログラム部分又はUR(ユニバーサルロボット)言語に翻訳されたプログラム部分<<movej>>をコマンド<<move>>に対応させている。
{
[“commands”:]
{
[“move”:]
{
[“ros”: ”/cmd_vel”,
“ur”: ”movej”]
},
[“decoller”: ”/ardrone/takeoff”,
“atterrir”: ”/ardrone/land”]
},
[“requests”]
{
[“modal”: ”mandatory, needed for streaming, just modify the topic name if necessary”,
“modal”: ”/pose”,

“position”: ”/pose”]
}
}
考慮されているロボットの第2プログラムP2及びより低いソフトウェアレイヤP3、P4の間の通信は、TCPタイプの接続を介して実行され、図3で実線の矢印30によって示される。複数のロボット1、2、21に属する異なる第2プログラムP2間の通信は、点線矢印40によって図3で示されるUDPタイププロトコルに従って実行される。またサーバー及び/又はクラウドCへの通信は、図3で矢印41によって示されるUDPタイププロトコルに従って実行される。
ロボット50、60の別個のフリートが本発明による方法を介して互いに通信する他の通信の変形例を説明するために、本発明の全体的な動作が図4に示される。これらフリートは、例えば、他のフリート、ダイレクトユーザー70、クラウドC、又はクラウドCを通じた少なくとも1つの非局在化されたユーザー80から、通信バスBCを介して上流で受け取られたメッセージを送信するよう構成されたマスターロボット51、61をさらに含み得る。
さらに、好ましくは、新しいロボットが、フリートへの参加又はまだそれが認識していない少なくとも1つの他のロボットとの通信をしたいとき、最初のやりとりは、UDPプロトコルに従って実行され、より好ましくはブロードキャストモード<<broadcast>>に従って実行される。
本発明による相互接続方法は、ほとんどが汎用であるソフトウェアレイヤ群及びモジュール群からなるセットのおかげで、一方では同じフリートのヘテロジニアスなロボットを相互接続することを可能にし、それと同時にいくつかのフリートを一緒に相互接続することも可能にする。
この順序は、既存のアプリケーションレイヤ(群)(リモートHMI群、ロボットのサイト上で又はロボットそのものの上でのローカルHMI、クラウド、…)から構成される。
よって、本発明は、ヘテロジニアスなロボット(異なるオペレーティングシステムを有する)の間での協働を管理する方法にも関し、とりわけ、以下のステップ
● アプリケーションレイヤ(HMI、クラウド)から、ミッションを示すファイル群のセットを送信すること(emitting)であって、このファイル群のセットは、とりわけ、予定された基本タスクの識別子群のリスト(LTP)、及び周辺機器の優先度ファイルを含む、ファイル群のセットを送信すること、
● それぞれのロボットのレイヤP1のサービス<<機器>>のレベルにおいて、予定された基本タスクの識別子の前記リスト(LTP)を受け取ること、
● このロボット上で利用可能な周辺機器を確定するために、クエリタイプメッセージをレイヤP1からレイヤP2に送信すること(同じロボット内で)、
● レイヤP2のレベルにおいて本発明による相互接続方法を実現することによって、
○ 適切な手法でクエリをレイヤP3及び/又はレイヤP4に送信すること、
○ レイヤP3及び/又はP4から発生する、要求された周辺機器情報を回収すること、
○ 予め定義されたオブジェクト構造に従って変換された前記情報をレイヤP1に送信すること
を行う、相互接続方法を実現すること、
● レイヤP1のレベルにおいて受け取られた情報を、<<機器>>サービスのレベルにおいて処理し、ロボットによって実現可能なタスク群のリスト(LTR)を生成すること、
● 前記ロボットによって実現可能なタスク群のリスト(LTR)を、レイヤP1の<<ネゴシエーション/選択>>サービスから全てのロボットに送信すること、
● 異なるロボットの異なるレイヤP1の異なる<<ネゴシエーション/選択>>サービス群の間でネゴシエーションメッセージをやりとりすること、
● クラウドのレベルにおいて及び/又はロボット間で、やりとりされたネゴシエーションメッセージに基づいて及び周辺機器の優先度ファイルに基づいて、ミッションに参加するロボットのリスト(ファイル)(LRM)を生成すること、
● 前記ミッションのプログレスプランの実行をトリガすること、
● ロボットを同期すること、
● ロボット間で協働を監督すること
を含む。
好ましくは、ミッションをフォーマライズするファイル群のセットは、少なくとも、実行されるべき基本タスク群の識別子群のリスト(LTP)、前記タスクの順序の制約条件に関するパラメータ群のリスト、タスクの完了に必要な周辺機器(アクチュエータ、センサ、…)の識別子のリスト、周辺機器の優先度ファイルを含む。
好ましくは、レイヤP1からの及びレイヤP1への送信は、通信バスBCに属する周辺機器検出サービスを介して実行される。
好ましくは、ロボットによって実現可能なタスクのリスト(LTR)は、ロボットの識別子、及び基本タスクの識別子のリスト(LTP)の中でそのロボットが完了できるタスクの識別子のリストをとりわけ含むファイルの形態であるか、又はデータベースの形態である。
好ましくは、やりとりされたファイルのセットは、JSONフォーマットである。
ミッションの実行は、退避されているか又はローカルかに関わらず、クラウド内のプログラムを介して、又は専用インターフェイスHMIからユーザーを介してトリガされ得る。
有利には、周辺機器データは、レイヤP1の通信バスBCに属する<<データ同期>>サービスによって回復される。
有利には、ロボット間の協働の監督は、それぞれのロボットのレイヤP1の<<協働>>サービスのレベルにおいて実行される。
図5のダイヤグラムは、第1ロボットR1及び第2ロボットR3の間の通信を示す。ここで、この通信の異なるステップを説明するが、プログラミング言語の対応する命令は、イタリックで示される([ ]で囲まれるように表記される)。
- メッセージM(R1)P3>P2は、ロボットR1の第3プログラムP3から、ロボットR1の第2プログラムP2に送られる。
M(R1)P3>P2= [“info/position/robot3/3.0.1”.]
- 処理T(R1)P2は、レイヤP2によってロボットR1内でそれから実行され、予め定義されたオブジェクト構造に従ってメッセージをフォーマット及び/又は再構成(REC)する。

Type= info
Subtype= position
Target= robot3
Source= robot1
Size= 5
Data= ”3,0,1”

- その後、例えばJSONフォーマットにおいてレイヤP2によってメッセージをいわゆるシリアル化するステップSEへと続き、このフォーマットは、相互運用性の確保及び情報の遡及的保存の容易さを特に、可能にする。

{“py/object”: ”message.message”,
“src”: {py/tuple”: [“10.12.1.130”, 48000”]},
“protocol”: 0,
“target”: {py/tuple”: [10.12.1.131, 48000”]};
“type_msg”: “info”,
“subtype”: “position”,
“size”: 5,
“data”: “3,0,1”}

- その後、レイヤP2によってメッセージに署名するステップSIが続く(例えばコード内の内部キーからの暗号化署名によって)が、このステップは、JSONチェーンの完全性を確保する。

087aa394104a8b6d9a3c06d35c768a0bcefadc9
{“py/object”: “message.message”,
“src”: {py/tuple”: [“10.12.1.130”, 48000”]},
“protocol”: 0,
“target”: {py/tuple”: [10.12.1.131, 48000”]},
“type_msg”: “info”,
“subtype”: “position”,
“size”: 5,
“data”: “3,0,1”}

- メッセージM(R1>R3)は、ロボットR1からロボットR3に送られる。
- 処理T(R3)P2は、ロボットR3の第2プログラム内でそれから実行されて、署名をチェックし(VSI)、メッセージを再構成し(REC)、これは、その後、ロボットR3の第2プログラムによって、ロボットR3の第3プログラムP3に送信される(M(R3)P2>P3)。
最後に、図6のダイヤグラムは、ユーザーU1及びロボットR3の間の通信を図示する。この通信の異なるステップを説明するが、プログラミング言語の対応する命令は、イタリックで示される([ ]で囲まれるように表記される)。
- メッセージM(U1>WS)がユーザーU1によってサーバーWSに送られる。
M(U1>WS)= [≪ Command :move :user1 :robot3 :0.1,0.0,0.3 ≫]
-それから処理T(WS)がサーバーWS内で実行され、予め定義されたオブジェクト構造に従ってメッセージを構成する(C)。

Type= command
Subtype= move
Target= robot3
Source= user1
Size= 11
Data= “0.1,0.0,0.3”

- その後、いわゆるメッセージをシリアル化するステップSE及びそれに署名するステップSIが続く。

087aa394104a8b6d9a3c06d35c768a0bcefadc9
{“py/object”: “message.message”,
“src”: “web-user1”,
“protocol”: 0,
“target”: {py/tuple”: [10.12.1.131, 48000”]},
“type_msg”: “command”,
“subtype”: “move”,
“size”: 11,
“data”: “0.1,0.0,0.3”}

- メッセージM(WS>R3)は、サーバーWSからロボットR3に送られる。
- 意図されたシナリオによれば、処理T(R3)P2がそれからロボットR3の第2プログラム内で実行され、署名をチェックし(VSI)、メッセージを再構成し(REC)、それは、その後、ロボットR3の第2プログラムP2によって、ロボットR3の第3プログラムP3に送信される。すなわち、
○ <<直接>>モードによれば、(M(R3;D)P2>P3)においては、コマンド/クエリは、コンフィギュレーションファイルを通して第2プログラムから第3プログラムへ直接に、ロボットに適切な形態で提供される(外部システムによるコマンドの実行を許可するロボットの場合)。
例えば、OR ROSを持つロボットについては、

p=ros.Publisher()
p.publish(“/cmd_vel”, msg.data)

である。
○ <<解釈>>モードによれば、(M(R3;I)P2>P4>P3)においては、情報(一般に)又はコマンド/クエリ(外部システムによる実行を許可しないロボットの場合)が、第4プログラムを介して、第2プログラムから第3プログラムへと、ロボットに提供される。
このモードでは、第2プログラムは、メッセージをフィールドごとに(オブジェクト構造に従って)第4プログラムに送り、第4プログラムは、適切な要素を第3プログラムに提供し、これら適切な要素は、第4プログラム内で生成され、前記第4プログラムの構造(スケルトン、採用すべき振る舞いが意図されたプログラミング、…)に依存する。
やりとりのセキュリティ
さまざまな通信チャンネルが本発明には伴われる。これらには、とりわけ、
● 第1プログラムP1及び/又は第2プログラムP2に関連する、UDPタイププロトコルに従う通信、
● ロボット間の、TCPタイププロトコルに従う通信、
● クラウドと第1及び第2プログラムP1及びP2との間の、UDPタイププロトコルに従う通信
が含まれる。
有利には、異なる通信チャンネルはセキュアである。
異なる技術オプションが可能であり、当業者は、意図された応用例に最も適切な技術をどのように選択すべきかを知っている。
例として、
● UDPプロトコルに従う通信の場合、
○ 直接イーサネットリンクの使用、
○ プロトコルDTLS(<<データグラム トランスポート レイヤ セキュリティ>>)の使用、
○ とりわけ、例えばAES(<<高度暗号化標準>>)のような暗号化アルゴリズム及び例えばSHA(<<セキュアハッシュアルゴリズム>>)のようなハッシュ化アルゴリズムを実現する暗号シーケンス(<<暗号スイート>>)の使用
に対して言及され得る。
● TCPプロトコルに従う通信の場合、
○ <<SSL>>プロトコル(セキュア・ソケット・レイヤー)を介した暗号化及び認証のペア、又は
○ オープンソースインプリメンテーション(例えばOpenSSL)であるかどうかに関わらず、暗号シーケンス(<<暗号スイート>>)を実現する、<<TLS>>プロトコル(トランスポート・レイヤ・セキュリティ)を介した暗号化及び認証のペアであって、前記TLSプロトコルのセキュリティのセットアップを以下を介して可能にする:
・ 一方で、匿名であるかどうかに関わらず、例えば、RSAのような非同期暗号化を通して、又はディフィー・ヘルマンアルゴリズムを通してのような、鍵交換メカニズム、
・ 他方で、例えばAES(<<高度暗号化標準>>)のような暗号アルゴリズム及びSHA(<<セキュアハッシュアルゴリズム>>)のようなハッシュ化アルゴリズムを通して、やりとりされるデータのプライバシー及び完全性を確保するメカニズム。
産業アプリケーションシナリオの例
例えば、ロボット群間で相互接続をし、及びロボット群間の協力を管理するこれらの方法は、図7及び図8A及び図8Bに示されるシナリオの完了を可能にする。
図7は、以下の4つのヘテロジニアスロボットを示す。
● R1:レーザーレンジファインダを持ち、OS ROSを持つ移動可能なロボット
● R2:爪を持ち、OS ABBを持つマニピュレータアーム
● R3:ロボットR2とは異なるブランドのマニピュレータアーム及びOS ABBを持つロボット、及び
● R4:OSユニバーサルロボットを持つドローン
それぞれのロボットは、それ自身のロボットオペレーティングシステムを用いる。
図8A及び図8Bのフローチャートに要約されるように、このミッションの間、湿度センサ、
温度センサ、及びRFIDタグを備えるロボットR1は、ロボットR2(これもRFIDタグを備える)からの、例えば積載エリアZCHに対応するエリアZ2においてR1がR2に合流することを促すメッセージを受け取ると、そのスタートエリアZ1-ZDを離れる。そこに到達するために、ロボットR1は、例えばそれ自身の走行距離計及びレーザーレンジファインダからのデータを用いて自律移動を実行しなければならない。いったんエリアZ2のレベルに達すると、ロボットR1は、部品の取扱のためのそのストップエリアをそれに示すRFIDタグと通信しなければならない。
第2フェーズの間に、それは、運搬されるべき物体を回収する準備ができていることをロボットR2に知らせる。よってロボットR2は、部品を回収し、それをロボットR1上に積載し、それから荷積みの終わりをそれに知らせる。
次に、ロボットR1は、処理エリアZ3-ZTRに向かって移動する。いったん前記エリアZ3のレベルに到達すると、それは、ロボットR3に部品の温度についての情報を通知する。
後者は、部品の温度に依存して、<<処理A>>又は<<処理B>>を実行する。このフェーズが完了すると、ロボットR4は、エリアZ3に合流し、部品を回収し、その温度に依存してエリアZ4A又はZ4Bにおいてそれを積載する。同時に、ロボットR1は、エリアZ1に戻り、次のサイクルを待つ。
よって、シナリオの例によって示されたように、本発明による方法は、そのほとんどが汎用であり、インストール及び使用が容易であり(ロボットの初期ロボットオペレーティングシステムはそのまま残る)、かつより高いソフトウェアレイヤの間の通信をトランスペアレントにするメッセージ変換及び送信のための効果的な原理であるソフトウェアアーキテクチャ(レイヤP1、P2)を提供することによって、ヘテロジニアスなロボット群及びセンサ群の間のスムーズな通信を可能にする。

Claims (15)

  1. 第1ロボット(1)を少なくとも1つの第2ロボット(2,21)と相互接続する相互接続方法であって、それぞれのロボット(1,2,21)は、
    モニタ制御ユニットであって、前記モニタ制御ユニットは、少なくとも1つのプロセッサ(4)及び少なくとも1つのメモリモジュール(M)を備える、モニタ制御ユニットと、
    アクチュエータ又はセンサのような少なくとも1つの周辺機器と、
    少なくとも1つの通信機器と、
    前記少なくとも1つの通信機器を制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第1ソフトウェアモジュールを含む第1プログラム(P1)と、
    前記少なくとも1つのプロセッサ上で実行される複数の第2ソフトウェアモジュールを含む第2プログラム(P2)であって、前記第2プログラム(P2)の構成は、解釈モード又は直接モードの間で送信モードを示すフィールドtyp_serviceを含むセットアップファイルによって決定され、前記送信モードは、前記第2プログラム(P2)によって送信されるメッセージを特徴付ける、第2プログラム(P2)と、
    前記少なくとも1つのアクチュエータ及び/又は前記少なくとも1つのセンサを制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第3ソフトウェアモジュールを含む第3プログラム(P3)と
    を少なくとも備え、
    前記相互接続方法は、前記第3プログラム(P3)から発生する第1メッセージの前記第2プログラム(P2)による受信の後に、前記ロボット(1、2、21)のそれぞれの中で前記第2プログラム(P2)によって実現される以下のステップ
    前記第1メッセージを第2メッセージへ変換することであって、前記第2メッセージは、コマンド、クエリ、又は情報のタイプ群のうちの前記メッセージのタイプを示すフィールドtyp_msgを含む予め定義されたオブジェクト構造に従ってフォーマットされる、変換することと、
    前記第2メッセージを、同じロボットに属する第1プログラム(P1)、他のロボットの第2プログラム(P2)のうちの少なくとも1つのプログラムに送信することと、
    を含み、
    前記相互接続方法は、同じロボットに属する第1プログラム(P1)、他のロボットの第2プログラム(P2)のうちの少なくとも1つのプログラムから発生する、前記予め定義されたオブジェクト構造に従ってフォーマットされた第3メッセージの前記第2プログラム(P2)による受信の後に、前記第3メッセージの前記フィールドtyp_msgが、コマ
    ンドタイプ又はクエリタイプを示す時に、前記ロボット(1、2、21)のそれぞれの中で前記第2プログラム(P2)によって実現される
    前記第3メッセージに関連付けられた前記セットアップファイルの前記フィールドtyp_serviceがダイレクト送信モードを表す時に、前記第3メッセージを、前記第3プログラム(P3)によって実現されるよう構成されたプログラム部分に翻訳する翻訳ステップ、及び/又は
    第2伝送プロトコルに従って、前記第3メッセージの、又は前記プログラム部分の少なくとも一部を前記第3プログラム(P3)に送信するステップ
    をさらに含む、相互接続方法。
  2. 前記翻訳ステップは、前記少なくとも1つのメモリモジュール(M)に記憶されたコンフィギュレーションファイルに前記第2プログラム内でアクセスすることを含み、
    前記コンフィギュレーションファイルは、前記第2プログラムに、前記第3プログラム(P3)によって実現されるよう構成された前記プログラム部分を提供する
    請求項1に記載の相互接続方法。
  3. 前記第3メッセージの、又は前記プログラム部分の少なくとも一部を送信するステップは、
    第2伝送プロトコルによる、前記第2プログラム(P2)から第4プログラム(P4)への第4メッセージの第1送信と、
    前記第4プログラム(P4)から前記第3プログラム(P3)への第5メッセージの第2送信と、
    少なくとも含む
    請求項1又は2に記載の相互接続方法。
  4. 第1伝送プロトコルは、前記第1ロボット(1)の前記第2プログラムP2と、前記第2ロボット(2、21)の前記第2プログラムP2との間の第6メッセージの送信のために用いられる
    請求項1-3のいずれか1項に記載の相互接続方法。
  5. やり取りされた前記第1メッセージ、前記第2メッセージ、前記第3メッセージ、前記第4メッセージ、及び前記第5メッセージは、JSONフォーマットである
    請求項に記載の相互接続方法。
  6. 前記第1伝送プロトコルは、UDPタイプである
    請求項に記載の相互接続方法。
  7. 前記第2伝送プロトコルは、TCPタイプである
    請求項1-6のいずれか1項に記載の相互接続方法。
  8. 前記少なくとも1つの電気通信機器は、無線通信手段を備える
    請求項1-7のいずれか1項に記載の相互接続方法。
  9. 前記無線通信手段は、WIFIタイプのモジュール、RFIDタイプのモジュール、ブルートゥースタイプのモジュール、GSMタイプのモジュールのうちの少なくとも1つのモジュールを備える
    請求項に記載の相互接続方法。
  10. 前記第2プログラム(P2)は、もし受信者が前記少なくとも1つの第2ロボット(2)であるなら、前記第2メッセージを送信する前に、前記第2メッセージを暗号化し、
    前記第2プログラム(P2)は、もし送信者が前記少なくとも1つの第2ロボット(2)であるなら、前記第3メッセージを翻訳又は送信する前に、前記第3メッセージを復号化する
    請求項1-9のいずれか1項に記載の相互接続方法。
  11. 前記少なくとも1つの第2ロボットは、サーバー(3)に接続されたリモートオペレータを備える
    請求項1-10のいずれか1項に記載の相互接続方法。
  12. 前記第3プログラム(P3)は、前記ロボットのオペレーティングシステム及び少なくとも1つのアクチュエータ(A1、A2)及び/又は少なくとも1つのセンサ(C)のドライバプログラムを含む
    請求項1-11のいずれか1項に記載の相互接続方法。
  13. 複数のロボット(1、2、21)の間の協働を管理する方法であって、前記複数のロボット(1、2、21)のそれぞれは、
    モニタ制御ユニットであって、前記モニタ制御ユニットは、少なくとも1つのプロセッサ(4)及び少なくとも1つのメモリモジュール(M)を備える、モニタ制御ユニットと、
    アクチュエータ(A1、A2)又はセンサ(C)のような少なくとも1つの周辺機器と、
    少なくとも1つの通信ネットワークに接続された少なくとも1つの通信機器と、
    前記少なくとも1つの通信機器を制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第1ソフトウェアモジュールを含む第1プログラム(P1)と、
    前記少なくとも1つのプロセッサ上で実行される複数の第2ソフトウェアモジュールを含む第2プログラム(P2)と、
    前記少なくとも1つのアクチュエータ及び/又は前記少なくとも1つのセンサを制御するよう構成され、前記少なくとも1つのプロセッサ上で実行される複数の第3ソフトウェアモジュールを含む第3プログラム(P3)と
    を少なくとも備え、
    前記相互接続方法は、以下のステップ
    前記サーバー(3)によってホストされた又はインターネットを通してアクセス可能なアプリケーションレイヤによる、予定された基本タスク及びそれらの順序のリストを含む送信ファイルと、前記周辺機器の識別及び優先度ファイルとの送信と、
    前記複数のロボットのそれぞれのロボットの前記第1プログラム(P1)の機器サービスによる、ミッションファイルと前記識別及び優先度ファイルとの受信と、
    前記複数のロボットのそれぞれのロボットの前記第1プログラム(P1)による、第1クエリタイプメッセージの、その第2プログラム(P2)への送信であって、これにより前記複数のロボット(1、2、21)のそれぞれのロボットの少なくとも1つの周辺機器のうちのそれぞれの利用可能な周辺機器(A1、A2、C)の識別子を確定する、第1クエリタイプメッセージの送信と、
    前記複数のロボット(1、2、21)のそれぞれのロボットの前記第2プログラム(P2)による、請求項1-12のいずれか1項に記載の相互接続方法の実行によって、前記複数のロボット(1、2、21)のそれぞれのロボット上で利用可能な周辺機器(A1、A2、C)の識別子のリクエストを第3プログラム(P3)から行い、前記第1プログラム(P1)に送信することと、
    前記利用可能な周辺機器(A1、A2、C)の識別子の前記複数のロボット(1、2、21)のそれぞれのロボットの前記第1プログラム(P1)の前記機器サービスによる処理によって、前記複数のロボット(1、2、21)のそれぞれのロボット(1、2、21)によって実現可能なタスクのリストを生成すること、
    前記複数のロボット(1、2、21)のそれぞれのロボットによって実現可能なタスクのリストを、前記第1プログラム(P1)のそれぞれのネゴシエーション/選択サービスによって、前記複数のロボット(1、2、21)のそれぞれのロボット(1、2、21)に及び/又は前記サーバー(3)の中央化されたサービスに送信すること、
    前記サーバー(3)の中央化されたサービスによる及び/又は前記ロボット(1、2、21)のそれぞれのネゴシエーション/選択サービスの間の通信の処理に続く、前記周辺機器の前記識別及び優先度ファイルに基づく、及び前記実現可能なタスクのリストに基づく、ミッションに参加するロボットのリストの作成と、
    前記ミッションの実行と、
    前記ロボットの同期と、
    前記ミッションの実行の監督と
    を含む、協働を管理する方法。
  14. 請求項1-12のいずれか1項に記載のロボットの相互接続方法を実行するよう構成された命令のセットを含むコンピュータプログラム。
  15. 請求項13に記載の協働を管理する方法を実行するよう構成された命令のセットを含むコンピュータプログラム。
JP2020566329A 2018-02-20 2019-02-14 ロボットを相互接続する方法 Active JP7266048B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1851429A FR3078178B1 (fr) 2018-02-20 2018-02-20 Procede d’interconnexion entre robots
FR18/51429 2018-02-20
PCT/FR2019/050328 WO2019162595A1 (fr) 2018-02-20 2019-02-14 Procédé d'interconnexion entre robots

Publications (2)

Publication Number Publication Date
JP2021514515A JP2021514515A (ja) 2021-06-10
JP7266048B2 true JP7266048B2 (ja) 2023-04-27

Family

ID=62683312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020566329A Active JP7266048B2 (ja) 2018-02-20 2019-02-14 ロボットを相互接続する方法

Country Status (11)

Country Link
US (1) US11890761B2 (ja)
EP (1) EP3756091B1 (ja)
JP (1) JP7266048B2 (ja)
KR (1) KR20200135358A (ja)
CN (1) CN111742298B (ja)
BR (1) BR112020016874A2 (ja)
CA (1) CA3089452A1 (ja)
ES (1) ES2923288T3 (ja)
FR (1) FR3078178B1 (ja)
SG (1) SG11202007674SA (ja)
WO (1) WO2019162595A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020209746A1 (de) * 2020-07-31 2022-02-03 Airbus Operations Gmbh Unbemanntes bodengebundenes fahrzeug zur aufrechterhaltungvon hygiene und verfahren zur verbesserung von hygienebedingungen

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189608A (ja) 2000-08-28 2002-07-05 Sony Corp 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置
JP2003285285A (ja) 2002-03-27 2003-10-07 Nec Corp ソフトウェアエージェントを有するロボット装置及びその制御方法とプログラム
US20060079997A1 (en) 2002-04-16 2006-04-13 Mclurkin James Systems and methods for dispersing and clustering a plurality of robotic devices
JP2006344075A (ja) 2005-06-09 2006-12-21 Sony Corp ネットワーク・システム、移動体装置及びその制御方法、並びにコンピュータ・プログラム
JP2012131025A (ja) 2010-12-23 2012-07-12 Korea Electronics Telecommun ロボットプラグイン中継システム及び方法
JP2013004050A (ja) 2011-06-22 2013-01-07 Internatl Business Mach Corp <Ibm> コンテキスト情報処理システム及び方法
US20130123980A1 (en) 2011-11-14 2013-05-16 Electronics And Telecommunications Research Institute Method and system for controlling multiple small robots
JP2017116993A (ja) 2015-12-21 2017-06-29 ファナック株式会社 セルコントロールシステムにおける製造セルの状態変化管理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374155B1 (en) * 1999-11-24 2002-04-16 Personal Robotics, Inc. Autonomous multi-platform robot system
US6687571B1 (en) * 2001-04-24 2004-02-03 Sandia Corporation Cooperating mobile robots
JP3925140B2 (ja) * 2001-10-09 2007-06-06 ソニー株式会社 情報提供方法及び情報提供装置、並びにコンピュータ・プログラム
KR100701823B1 (ko) * 2006-05-24 2007-03-30 (주)시뮬레이션연구소 메신저를 활용한 토이(Toy) 로봇간 통신시스템 및 이와연동되는 토이 로봇
US20090254671A1 (en) 2008-03-31 2009-10-08 France Telecom Remote control of a device by a terminal
JP6294036B2 (ja) * 2012-09-07 2018-03-14 ファナック アメリカ コーポレイション ロボット関連情報を監視/分析してスマートデバイス上に表示するシステム
US9233468B2 (en) * 2013-11-12 2016-01-12 Irobot Corporation Commanding a mobile robot using glyphs
CN105934723B (zh) * 2014-02-07 2017-07-07 Abb瑞士股份有限公司 对机器人单元装置的网页浏览器访问
CN105429858B (zh) * 2015-12-11 2018-08-03 中国人民解放军国防科学技术大学 一种多机器人间实时消息传递方法
US10375019B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189608A (ja) 2000-08-28 2002-07-05 Sony Corp 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置
JP2003285285A (ja) 2002-03-27 2003-10-07 Nec Corp ソフトウェアエージェントを有するロボット装置及びその制御方法とプログラム
US20060079997A1 (en) 2002-04-16 2006-04-13 Mclurkin James Systems and methods for dispersing and clustering a plurality of robotic devices
JP2006344075A (ja) 2005-06-09 2006-12-21 Sony Corp ネットワーク・システム、移動体装置及びその制御方法、並びにコンピュータ・プログラム
JP2012131025A (ja) 2010-12-23 2012-07-12 Korea Electronics Telecommun ロボットプラグイン中継システム及び方法
JP2013004050A (ja) 2011-06-22 2013-01-07 Internatl Business Mach Corp <Ibm> コンテキスト情報処理システム及び方法
US20130123980A1 (en) 2011-11-14 2013-05-16 Electronics And Telecommunications Research Institute Method and system for controlling multiple small robots
JP2017116993A (ja) 2015-12-21 2017-06-29 ファナック株式会社 セルコントロールシステムにおける製造セルの状態変化管理システム

Also Published As

Publication number Publication date
US20200376669A1 (en) 2020-12-03
CN111742298B (zh) 2024-03-22
WO2019162595A1 (fr) 2019-08-29
US11890761B2 (en) 2024-02-06
SG11202007674SA (en) 2020-09-29
BR112020016874A2 (pt) 2020-12-15
FR3078178B1 (fr) 2020-02-28
EP3756091A1 (fr) 2020-12-30
CN111742298A (zh) 2020-10-02
KR20200135358A (ko) 2020-12-02
CA3089452A1 (fr) 2019-08-29
FR3078178A1 (fr) 2019-08-23
ES2923288T3 (es) 2022-09-26
EP3756091B1 (fr) 2022-04-13
JP2021514515A (ja) 2021-06-10

Similar Documents

Publication Publication Date Title
CN109159125B (zh) 基于ros系统机器人的云服务系统
US11140137B2 (en) Method and industrial computing apparatus for performing a secure communication
US11010216B2 (en) RPC conversion processing system and RPC conversion method
US10632616B1 (en) Smart robot part
CN104994073A (zh) 手机终端、服务器及其帐号与设备绑定控制、执行方法
Hong et al. A cloud-based control system architecture for multi-UAV
JP7266048B2 (ja) ロボットを相互接続する方法
US20140169373A1 (en) Relay server and relay communication system
Abukwaik et al. OPC UA Realization for simplified commissioning of adaptive sensing applications for the 5G IIoT
Brooks et al. Implementation of an indoor active sensor network
Chen et al. FogROS2-SGC: A ROS2 Cloud Robotics Platform for Secure Global Connectivity
Martins et al. MRGS: A multi-robot SLAM framework for ROS with efficient information sharing
JP6766501B2 (ja) 情報移行システム、情報処理装置、および、プログラム
Bamfaste Development of a software layer for the integration of robotic elements into the METERON infrastructure using robotic services
Niebuhr et al. Distributed real-time control service framework for human-robot interaction applications
Denzler et al. Tunnelling and Mirroring Operational Technology Data with IP-based Middlewares
JP2010081109A (ja) 通信システム、管理装置、中継装置、及びプログラム
WO2015067052A1 (zh) 测试命令发送方法、装置及系统
Arnholm et al. Combining industry 4.0 and 5g connectivity with robots in digital production factories
CN104702708A (zh) 获取地址解析协议信息的方法、设备、系统及网络虚拟化端点
KR20170051408A (ko) 작업 툴 네트워크 환경에서 통신을 용이하게 하기 위한 방법 및 시스템
Koubâa Service-oriented computing in robotic
WO2016206381A1 (zh) 文件处理方法及装置
Profanter From Unpacking to Plug & Produce-Flexible Components Integration for Robots in Industry 4.0
RABBAH et al. Real Time Distributed and Decentralized Peer-to-Peer Protocol for Swarm Robots

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230320

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: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R150 Certificate of patent or registration of utility model

Ref document number: 7266048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150