IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユニヴェルシテ・ドゥ・ランス・シャンパーニュ−アルデンヌの特許一覧

<>
  • 特許-ロボットを相互接続する方法 図1
  • 特許-ロボットを相互接続する方法 図2
  • 特許-ロボットを相互接続する方法 図3
  • 特許-ロボットを相互接続する方法 図4
  • 特許-ロボットを相互接続する方法 図5
  • 特許-ロボットを相互接続する方法 図6
  • 特許-ロボットを相互接続する方法 図7
  • 特許-ロボットを相互接続する方法 図8A
  • 特許-ロボットを相互接続する方法 図8B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-19
(45)【発行日】2023-04-27
(54)【発明の名称】ロボットを相互接続する方法
(51)【国際特許分類】
   G06F 9/54 20060101AFI20230420BHJP
   B25J 13/00 20060101ALI20230420BHJP
   G06F 9/50 20060101ALI20230420BHJP
【FI】
G06F9/54 F
B25J13/00 Z
G06F9/50 150B
【請求項の数】 15
(21)【出願番号】P 2020566329
(86)(22)【出願日】2019-02-14
(65)【公表番号】
(43)【公表日】2021-06-10
(86)【国際出願番号】 FR2019050328
(87)【国際公開番号】W WO2019162595
(87)【国際公開日】2019-08-29
【審査請求日】2022-01-21
(31)【優先権主張番号】18/51429
(32)【優先日】2018-02-20
(33)【優先権主張国・地域又は機関】FR
(73)【特許権者】
【識別番号】505296810
【氏名又は名称】ユニヴェルシテ・ドゥ・ランス・シャンパーニュ-アルデンヌ
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】アヤイダ マルワン
(72)【発明者】
【氏名】メサイ ナジール
(72)【発明者】
【氏名】ヴァレンタン フレデリック
(72)【発明者】
【氏名】マルシェラ ディミトリ
(72)【発明者】
【氏名】アフィラル リッサン
【審査官】坂庭 剛史
(56)【参考文献】
【文献】米国特許出願公開第2006/0079997(US,A1)
【文献】特開2017-116993(JP,A)
【文献】特開2003-285285(JP,A)
【文献】特開2002-189608(JP,A)
【文献】特開2013-004050(JP,A)
【文献】米国特許出願公開第2013/0123980(US,A1)
【文献】特開2006-344075(JP,A)
【文献】特開2012-131025(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
B25J 13/00
G06F 9/50
(57)【特許請求の範囲】
【請求項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に記載の協働を管理する方法を実行するよう構成された命令のセットを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続されたデバイス群(移動可能なロボット群、センサ群等)の間の通信の分野、及びこれら接続されたデバイス群の相互運用性の分野に関する。
【背景技術】
【0002】
ヒューマノイドロボット、操作アームを持つ又は持たない移動可能なキャリッジ、ドローン等のような、異なるタイプの移動可能なロボットを使うことが知られている。かなり頻繁に、これらロボットは、周囲のデータを獲得するための異なるセンサに関連付けられ、アドホック通信及び異なるオペレーティング及びモニタコントロールシステムを備える。実質的に自律的なこれら異なるオブジェクトに、完了されるべきタスクの分散及びこれらオブジェクト群の間の協働を組織化することによって、複雑な操作を実行させるためのインプリメンテーションは、しばしば相当に異種のものからなる、ハードウェア及びソフトウェア機器の間の通信及び情報のやりとりを必要とする。
【0003】
今まで、その物理的特性によって及びそのそれぞれのオペレーティングソフトウェアによっての両方でヘテロジニアスでありながら、サードパーティソフトウェアブロックの容易で統一された統合だけでなく、特に高レベルアプリケーションサービスの開放を可能にする、これら移動可能なオブジェクト群(ロボット及び/又は他のデータセンサ)の間の所望の通信及び相互運用性を確実にするのに十分なインターフェイスソフトウェア又はプログラム、又はミドルウェアと呼ばれるものは存在しなかった。
【発明の概要】
【発明が解決しようとする課題】
【0004】
よって、解決されるべき課題は、特に、おそらくはリモートで、協働して及び/又は1つ以上の操作者(群)によって、特定のタスクの完了のためのオブジェクトの1つ以上のフリート(群)に所属し得るこれらのオブジェクトを相互接続することによって、異種の移動可能なオブジェクトを一緒にすることができるインターフェイスソフトウェアを設計することにある。
【0005】
よって本発明は、この課題の全て又は一部に対する解決策を提供することを目的とする。
【課題を解決するための手段】
【0006】
この目的のために、本発明は、第1ロボットを少なくとも1つの第2ロボットに相互接続する方法、及び複数のロボットの間の協働を管理する方法に関し、加えてこれら方法を実行するよう構成された命令を含む少なくとも1つのコンピュータプログラムにも関する。
【0007】
本発明は、第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プログラムに送信することと
をさらに含む。
【0008】
有利には、それを通して第2プログラムP2が、送信されるべき情報及び/又は命令のフォーマッティングを確保する、予め定義され一般的なオブジェクト構造は、以下のフィールドによって構成される。
【0009】
-メッセージタイプ:コマンド、情報又はクエリ;
-メッセージサブタイプ:データ(位置、リアル、画像、ビデオ、…)又はコマンド(アドバンス、プルバック、ストップ、…)タイプ;
-ソース:ペアIPアドレス/ポートによって又はソースの名称によって又はソースの名称によって構成される送信者アドレス(ペアIPアドレス/ポートは、ルーティングテーブルでそれに関連付けられ得る);
-デスティネーション:ペアIPアドレス/ポート、又は受信者の名称によって構成された受信者アドレス;
-データフィールドのサイズ;
-データ。
【0010】
本発明の局面によれば、翻訳ステップは、少なくとも1つのメモリモジュール内に記憶されたルックアップテーブル又はデータベースのような第2プログラム内でのコンフィギュレーションファイル(P2に属する)へのアクセスを含み、コンフィギュレーションファイルは、第3プログラムによって実現されるよう構成されたプログラム部分を第2プログラムに提供する。
【0011】
好ましくは、コンフィギュレーションファイルは、第2プログラムが
・メッセージのサブタイプ(前で提示されたオブジェクト構造のサブタイプフィールド内で定義される)と、データ(前で提示されたオブジェクト構造のデータフィールド内で定義される)との対応を確率すること、
・第3プログラムによって実現されるよう構成されたプログラム部分を選択すること(後者がそれを直接に実行できるようにする、ロボットの適切な言語におけるコマンドの又はクエリの翻訳)
をできるようにする。
【0012】
本発明のある局面によれば、前記第3メッセージの、又は前記プログラム部分の少なくとも一部を送信するステップは、
・第2伝送プロトコルによる、前記第2プログラムから第4プログラムへの第4メッセージの第1送信と、
・前記第4プログラムから前記第3プログラムへの第5メッセージの第2送信と、
少なくとも含む。
【0013】
本発明のある局面によれば、第1伝送プロトコルは、前記第1ロボットの前記第2プログラムと、前記第2ロボットの前記第2プログラムとの間の第6メッセージの送信のために用いられる。
【0014】
本発明のある局面によれば、やり取りされた前記第1、第2、第3、第4、第5、及び第6メッセージは、JSONフォーマットである。
【0015】
本発明のある局面によれば、前記第1プロトコルは、UDPタイプである。
【0016】
本発明のある局面によれば、前記第2プロトコルは、TCPタイプである。
【0017】
本発明のある局面によれば、前記少なくとも1つの電気通信機器は、無線通信手段を備える。
【0018】
本発明のある局面によれば、前記無線通信手段は、WIFIタイプのモジュール、RFIDタイプのモジュール、ブルートゥースタイプのモジュール、GSMタイプのモジュールのうちの少なくとも1つのモジュールを備える。
【0019】
本発明のある局面によれば、前記第1ロボットの前記第2プログラムは、もし前記受信者が前記少なくとも1つの第2ロボットであるなら、前記第2メッセージを送信する前に、前記第2メッセージを暗号化し、前記第1ロボットの前記第2プログラムは、もし前記送信者が前記少なくとも1つの第2ロボットであるなら、前記第3メッセージを翻訳又は送信する前に、前記第3メッセージを復号化する。
【0020】
よって、それぞれのロボット内で、第2プログラムは、メッセージをそれらのオリジン及びデスティネーションに依拠して、スマートに暗号化及び/又は復号化するよう構成されている。
【0021】
本発明のある局面によれば、前記少なくとも1つの第2ロボットは、インターネットサーバーに接続されたリモートオペレータを備える。
【0022】
本発明のある局面によれば、前記第3プログラムは、前記ロボットの前記オペレーティングシステム及び少なくとも1つのアクチュエータ及び/又は少なくとも1つのセンサのドライバプログラムを含む。
【0023】
本発明は、また、複数のロボットの間の協働を管理する方法であって、前記複数のロボットのそれぞれは、
- モニタ制御ユニットであって、前記モニタ制御ユニットは、少なくとも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のそれぞれのネゴシエーション/選択サービスによって、前記複数のロボットのそれぞれのロボットに及び/又は前記サーバーの中央化されたサービスに送信すること、
前記サーバーの中央化されたサービスによる及び/又は前記ロボットのそれぞれのネゴシエーション/選択サービスの間の通信の処理に続く、前記周辺機器の前記識別及び優先度ファイルに基づく、及び前記実現可能なタスクのリストに基づく、前記ミッションに参加するロボットのリストの作成と、
前記ミッションの実行と、
前記ロボットの同期と、
前記ミッションの実行の監督と
を含む。
【0024】
本発明は、また、本発明による少なくとも1つの方法を実行するよう構成された命令のセットを含むコンピュータプログラムに関する。
【0025】
好ましくは、本発明は、ロボットを相互接続する方法を実行するよう構成された命令のセットを含むコンピュータプログラム、及びロボット間の協働の管理方法を実行するよう構成された命令のセットを含むコンピュータプログラムに関する。
【図面の簡単な説明】
【0026】
適切な理解のために、本発明は、本発明による装置の実施形態を非限定的な例として表す添付の図面を参照して説明される。
図1図1は、完全にそれに一体化された本発明の第1変形例による移動可能なロボット、及びその環境の概略を図示したものである。
図2図2は、完全にそれに一体化された本発明の第1変形例による、通信するロボットの一隊の概略を図示したものである。
図3図3は、第2変形例による本発明のアーキテクチャの概略を図示したものであり、ここで本発明は、一方で、ロボットに部分的に統合され、他方で、部分的にクラウドへ追いやられている。
図4図4は、本発明による異なるアクター(ロボット、ユーザー)及び異なる可能性のある通信チャンネルの概略を図示したものである。
図5図5は、第1ロボットR1及び第2ロボットR3の間の通信のダイヤグラムを図示したものである。
図6図6は、ユーザーU1及びロボットR3の間の通信のダイヤグラムを図示したものである。
図7図7は、本発明によるロボットの協働のシナリオの概略を図示する。
図8A図8Aは、本発明によるロボットの協働のシナリオの概略を図示する。
図8B図8Bは、本発明によるロボットの協働のシナリオの概略を図示する。
【発明を実施するための形態】
【0027】
本発明及びその実施形態は、図1図8A図8Bからなる添付の図面を参照して説明される。
【0028】
本発明は、図1に概略的に示されるような、スタンドアローンロボット1上で第2プログラムP2によって実現される方法に関する。P2は、1つ以上のサブプログラム(群)又はソフトウェアモジュール(群)を含み、第1プログラムP1と、2つの他のプログラム、第3プログラムP3及び第4プログラムP4との間のインターフェイスを行うことを確保するソフトウェアレイヤを構成する。これらプログラムP1、P3、及びP4のそれぞれは、1つ以上のサブプログラム(群)又はソフトウェアモジュール(群)を含み、それぞれは、ソフトウェアレイヤを構成する。
【0029】
図1に提示されるように、ロボット1は、
● 他のロボット2と通信し、ロボット1は、ロボット2に情報及び/又はコマンドを提供し得て、ロボット2を介して、ロボット1は、情報及び/又はコマンドを受け取り得て、いずれの場合も受動的に及び/又はリクエストに応じて行い、
● リモートサーバー3と通信し、リモートサーバー3を通して、
○ オペレーターは、互いにインタラクトするロボット(群)によって実行されるべきタスクをリモートで特定することができ、
○ ロボット1は、他のロボット2と通信(情報及び/又はコマンドを受動的及び/又はリクエストに応じて)することができる。
【0030】
本発明の変形例によれば、ロボット1及び2は、直接にかつ互いとだけ通信するよう構成される(例えば、リモートサーバー3に欠陥がある品質低下動作モードにおいて、又は例えばメンテナンスが実行されるべきであるとき、及び/又はコストに関連する理由のためにリモートサーバー3を使用することなく進行させるとき)。
【0031】
- 本方法の説明を図示する働きをここでするスタンドアローンロボット1は、スタンドアローンロボット又は任意の他の接続されたデバイスであり得るが、ここでこのデバイスは、図1で示されるメインハードウェア機器を備え、それは、可動性又は荷重グリッピング等のためのアクチュエータタイプA1、A2の少なくとも1つの周辺機器、及び/又は環境データ獲得(地理的位置、温度等)のためのセンサタイプCを備える。
【0032】
- 少なくとも1つの周辺機器(群)のモニタ・制御ユニットは、少なくとも1つのプロセッサ4及び少なくとも1つのメモリモジュールMを備え、プログラム又はソフトウェアレイヤP1、P2、P3、及びP4(アダプテーションモジュール(adaptation module))は、モニタ・制御ユニット(図2でも示される)のプロセッサ4上で実行される。
【0033】
- 例えばWIFI、又はブルートゥース、又はGSM通信モジュールのような少なくとも1つの通信機器T1、T2は、考慮されているデバイス1がリモートサーバー3と及び/又は他の接続されたデバイス2と通信できるようにする。
【0034】
第1プログラムP1は、電気通信手段T1、T2の管理、及び同じロボット又は接続されたデバイスのサブプログラムの間、及び2つの別個のロボット又は接続されたデバイスに属するプログラム及びサブプログラムの間でやりとりされるメッセージの転送プロトコルのサポートを確保する。有利には、第1プログラムP1は、
● コラボレーションサービス、
● ネゴシエーション/選択サービス、
● 機器サービス、及び
● とりわけ周辺機器検出サービス、データ同期化サービスを含む通信バス
のような(限定ではなく)ソフトウェアモジュール群のセットを含む。
【0035】
第2プログラムP2、又はサブプログラム群又はソフトウェアモジュール群の第2セットは、本発明による方法を実現する。
【0036】
第1及び第2プログラムP1、P2は、汎用であって、オペレーティングシステムに関係なく、任意のロボット上で展開され得る。
【0037】
第3プログラムP3、又はサブプログラム群又はソフトウェアモジュール群の第3セットは、それぞれのロボット又は接続されたデバイスの特定のオペレーティングシステム、及びロボット又は考慮されている接続されたデバイスに関連付けられたアクチュエータ及び/又はセンサの特定のドライバを含む。有利には、プログラムP3は、
● ロボットオペレーティングシステム(例えば、ROS、ユニバーサルロボットOS、ABB OS):ネイティブライブラリ、ナビゲーションパッケージ、…
● ネイティブフレームワーク:ドライバ、ライブラリ、…
のような(限定ではなく)ソフトウェアモジュール群のセットを含む。
【0038】
本記載によって、第3プログラムP3の具体的なものにおいて、本発明は、ロボット群の1つ以上のフリート(群)の中でその相互運用性を提供及び保証するために、そのロボットに具体的なロボットOSを中心として機能することが十分に理解されるべきである。
【0039】
第4プログラムP4、又はアダプテーションサブプログラム群又はソフトウェアモジュール群の第4セットは、本発明がインストールされるロボットに適合されるべき、本発明の唯一のソフトウェアモジュールである。
【0040】
ロボット及びプログラムP1、P2、P3、P4の外部にあるアダプテーションライブラリは、そのロボットに特定の言語における前記第4プログラムのスケルトンを生成することを特に可能にする。
【0041】
前記アダプテーションライブラリを介して生成され、その必要に応じて操作者によって完了され終了されなければならない第4プログラムP4のスケルトンの例(とりわけ、関数<<これをしろ(dothis)>>、<<あれをしろ(dothat)>>のレベルにおいて)は、以下では、プログラミング言語中でイタリックで示される([ ]で囲まれるように表記される)(コメントはボールド文字である(「 」で囲まれるように表記される))。
【0042】
////////
「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
////////
例えば、アダプテーションライブラリは、クラウド上で利用可能であり、又はローカルコンピュータ又はタブレットのようなリクエストに基づいてロボットに接続され得るシステムを通して利用可能である。
【0043】
アダプテーションライブラリは、またロボット間のインタラクションのシナリオ(群)の定義及び構成において操作者を補助し得る。
【0044】
よって、アダプテーションソフトウェアモジュール(第4プログラムP4)は、操作者の必要に応じてカスタマイズされ、前記アダプテーションライブラリを介して少なくとも部分的に生成される。それは、とりわけ、以下の4つの関数を含む。
【0045】
● <<コネクション>>:この関数は、ロボットをソフトウェアレイヤP1及びP2に接続することを可能にし、これは、適切なペアのIPアドレス/ポートの指示に特に基づいている。
【0046】
● <<メッセージ送信>>:メッセージは、次から次へと送られるいくつかのフィールドによって作成され、これらメッセージは、6つのフィールド(タイプ、サブタイプ、ソース、デスティネーション、サイズ、データ)によって作成される。
【0047】
● <<メッセージ受信>>:受け取られたメッセージは、後で詳述される、特定の構造に準拠しなければならない。さらにロボットがデータを受け取れるようになるとすぐに、プログラムP4は、メッセージをレイヤP2に送って、自分がメッセージを受け取れることをそれに通知する。
【0048】
● <<メッセージ処理>>:この関数は、それぞれのシチュエーションに具体的に適合され、それは、そのロボットに特定の言語で、一方では、受け取られたメッセージ及びデータに従って採用する振る舞いを定義し、他方では、そのシチュエーションに従う。特に、この関数は、ロボットがコマンド、クエリ、情報(ロボットの通信のやり方)を第4プログラムP4から第3プログラムP3に送信するやり方を定義する。
【0049】
相互接続されたロボット又はデバイスのそれぞれの上で、ソフトウェアレイヤP1は、リモートロボット及び/又はデバイスの間のやり取りのために利用可能である電気通信機器を介して、あるロボット(又はデバイス)から、他のロボット(又はデバイス)及び/又はリモートサーバー3に予め規定通りにフォーマットされたメッセージを転送するよう構成される。ソフトウェアレイヤP1及びこれらソフトウェアレイヤによって実現された電気通信機器は、協働して、とりわけ、通信バスBCのハードウェア及びソフトウェアの両方の機能を確保することによって、異なるロボットを相互に及びクラウドに接続することを可能にする。好ましくは、それぞれの通信バスBCは、それぞれに固有のルータRを有し、とりわけロボットを直接にクラウドに接続することを可能にする。サーバーによってホストされるより高いソフトウェアレイヤ、例えばHMI、又はクラウドは、アプリケーションレイヤと呼ばれる。
【0050】
しばしば<<ミドルウェア>>と呼ばれる中間プログラム又は中間ソフトウェアレイヤP2は、
- 一方では、より高いレベルP1から通信バスを介して受け取られた及び/又は他のロボットから発生する(特に送信者ロボットの第2プログラムから発生する)及び/又はリモートサーバー3からの情報又はコマンドを、アクチュエータ及び/又はセンサを操縦するための考慮されているロボットに特有のより低いソフトウェアレイヤP3によって理解され又は実行され得る情報又は命令に変換し、
- 他方では、逆方向に、考慮されているロボットによって他のロボット(又は接続されたデバイス)及び/又はリモートサーバー3に対して送信されるよう意図される情報又はコマンドメッセージを一般的なやり方でフォーマットし、一般的にフォーマットされたこのメッセージは、受信者ロボット又は接続されたデバイスのミドルレイヤP2によって受け取られてから変換される
よう構成される。
【0051】
それぞれのロボット又は接続されたデバイスの、ヘテロジニアスでありそれぞれのロボット又はデバイスに固有であるソフトウェアレイヤP3及びP4とは異なり、中間ソフトウェアレイヤP2は、汎用的である。この中間ソフトウェアレイヤP2は、考慮されているロボットのアクチュエータ又はアクター(actors)を制御するためのソフトウェアレイヤP3によってそれぞれのロボット上で実現される所有権のあるフォーマット及び命令と、全てのロボット及び接続されたデバイスの全てに共通な汎用フォーマットとの間でインターフェイスすることを確保する。このインターフェイス機能は、特に、汎用フォーマットに従って受け取られた情報又はコマンドを、受信者ロボットのソフトウェアレイヤP4又はP3のうちの任意のものに従って実行され得る情報又は命令に翻訳するメカニズムを含む。
【0052】
図2に示されるように、ロボット1が通信する他のロボット2、21は、
● ロボット1のそれらと同種のハードウェア機器(アクチュエータ及び/又はセンサ、プロセッサ及びメモリモジュールを持つモニタ制御ユニット、電気通信機器)、
● ロボット1のそれらと同種のソフトウェアアーキテクチャ(プログラムP1、P2)、
● これらロボットに固有のソフトウェアアーキテクチャ(プログラムP3、P4)
を備え得る。
【0053】
例えば、本発明による方法は、レイヤ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
と相互接続することを可能にし得る。
【0054】
相互接続されたロボットのそれぞれのプログラムP1、P2は、同じ(同一の)ソフトウェアブロックを有する。
【0055】
図3は、本発明の実施形態を示し、ここでロボット(ハードウェアの点で)は、それらに固有のプログラムP3及びP4だけしか与えられておらず、一方で、一般の汎用プログラムP1及びP2は、クラウド上に退避されている。ロボット群は、互いにハードウェア及びソフトウェア通信バスBC、及びルーティングテーブルTRが関連付けられている少なくとも1つのルータRを通して通信し、クラウドC及び/又はヒューマン・マシンインターフェイスHMIを介した少なくとも1人の人間のユーザーともおそらくは通信する。
【0056】
好ましくは、前記ルーティングテーブルは、フォーム中の対のリスト(ロボットの名称、IPアドレス:ポート)を含み、これは、有利には第2プログラムP2内に統合され得るが、ルータが適切にメッセージを転送できるようにする。よって、ロボットは、メッセージの送信を希望するロボットの名称だけを知っていればよい。
【0057】
情報が受信者ロボット又はデバイスに送信されるために第2プログラムP2に到達すると、第2プログラムP2は、以下のフィールドによって構成される所定の汎用オブジェクト構造に従ったメッセージで送信されるべき情報及び/又は命令のフォーマッティングを確保する。すなわち、
- メッセージタイプ:コマンド、情報又はクエリ;
- メッセージサブタイプ:データ(位置、リアル、画像、ビデオ、…)又はコマンド(アドバンス、プルバック、ストップ、…)タイプ;
- ソース:ペアIPアドレス/ポートによって又はソースの名称によって構成される送信者アドレス(ルーティングテーブルでそれに関連付けられたペアIPアドレス/ポート);
- デスティネーション:ペアIPアドレス/ポート、又は受信者の名称によって構成された受信者アドレス;
- データフィールドのサイズ;
- データ。
【0058】
この汎用構造は、メッセージのより高いレベル(P1及びP2)へのトランスペアレントな伝送を可能にする。
【0059】
ソフトウェアレイヤP2の構成は、JSONファイルフォーマットに基づく。このセットアップファイルは、
- 第2プログラムP2が実行されるロボットのIPアドレス(サーバーから見たときの);
- 当該ロボットを特定するために用いられる名称;
- 第2プログラムP2が外部メッセージをリッスンしなければならない外部リスニングポート;
- 当該ロボットの第3又は第4プログラムP3、P4が接続しなければならない内部リスニングポート;
- ロボット(それが通信をしようと希望される)に向けられたメッセージが、受信者ロボットによって<<インタープリートされる>>(受信の後で)ように意図されているか、又はメッセージがダイレクトモードに従って送達されるかを示すことができるようにする、サービスタイプ。
【0060】
<<インタープリートされる>>によって、ロボットは、受け取られたメッセージのフィールドの値を分析することによって、その振る舞いを定義しなければならないという事実が理解されなければならない。
【0061】
この解釈ステップは、第4プログラムP4によって実行され、前述のアダプテーションライブラリを通して予め構成される。
【0062】
ダイレクトサービスにおいて、もしメッセージタイプがコマンド又はクエリなら、コンフィギュレーションファイルのおかげで、受信者ロボット上で実行されている第2プログラムP2は、コマンド又はクエリをこの受信者ロボット上で直接に実行され得るコマンドに翻訳する。
【0063】
本発明のある局面によれば、コンフィギュレーションファイルは、好ましくはその第2プログラムP2へのインジェクションの前に、アダプテーションライブラリから生成される(例えば外部プログラムによって)。
【0064】
好ましくは、ダイレクトモードにおいてコンフィギュレーションファイルに頼ることは、メッセージが、外部システムによるコマンドの実行を可能にするロボットへのコマンド及び/又はクエリからなるときだけ起こる。
【0065】
例として、プログラミング言語におけるコンフィギュレーションファイルの構造は、以下にイタリックで示され([ ]で囲まれるように示され)、ここで、特に、<</cmd_vel>>によってROS言語に翻訳されたプログラム部分又はUR(ユニバーサルロボット)言語に翻訳されたプログラム部分<<movej>>をコマンド<<move>>に対応させている。
【0066】
{
[“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タイププロトコルに従って実行される。
【0067】
ロボット50、60の別個のフリートが本発明による方法を介して互いに通信する他の通信の変形例を説明するために、本発明の全体的な動作が図4に示される。これらフリートは、例えば、他のフリート、ダイレクトユーザー70、クラウドC、又はクラウドCを通じた少なくとも1つの非局在化されたユーザー80から、通信バスBCを介して上流で受け取られたメッセージを送信するよう構成されたマスターロボット51、61をさらに含み得る。
【0068】
さらに、好ましくは、新しいロボットが、フリートへの参加又はまだそれが認識していない少なくとも1つの他のロボットとの通信をしたいとき、最初のやりとりは、UDPプロトコルに従って実行され、より好ましくはブロードキャストモード<<broadcast>>に従って実行される。
【0069】
本発明による相互接続方法は、ほとんどが汎用であるソフトウェアレイヤ群及びモジュール群からなるセットのおかげで、一方では同じフリートのヘテロジニアスなロボットを相互接続することを可能にし、それと同時にいくつかのフリートを一緒に相互接続することも可能にする。
【0070】
この順序は、既存のアプリケーションレイヤ(群)(リモートHMI群、ロボットのサイト上で又はロボットそのものの上でのローカルHMI、クラウド、…)から構成される。
【0071】
よって、本発明は、ヘテロジニアスなロボット(異なるオペレーティングシステムを有する)の間での協働を管理する方法にも関し、とりわけ、以下のステップ
● アプリケーションレイヤ(HMI、クラウド)から、ミッションを示すファイル群のセットを送信すること(emitting)であって、このファイル群のセットは、とりわけ、予定された基本タスクの識別子群のリスト(LTP)、及び周辺機器の優先度ファイルを含む、ファイル群のセットを送信すること、
● それぞれのロボットのレイヤP1のサービス<<機器>>のレベルにおいて、予定された基本タスクの識別子の前記リスト(LTP)を受け取ること、
● このロボット上で利用可能な周辺機器を確定するために、クエリタイプメッセージをレイヤP1からレイヤP2に送信すること(同じロボット内で)、
● レイヤP2のレベルにおいて本発明による相互接続方法を実現することによって、
○ 適切な手法でクエリをレイヤP3及び/又はレイヤP4に送信すること、
○ レイヤP3及び/又はP4から発生する、要求された周辺機器情報を回収すること、
○ 予め定義されたオブジェクト構造に従って変換された前記情報をレイヤP1に送信すること
を行う、相互接続方法を実現すること、
● レイヤP1のレベルにおいて受け取られた情報を、<<機器>>サービスのレベルにおいて処理し、ロボットによって実現可能なタスク群のリスト(LTR)を生成すること、
● 前記ロボットによって実現可能なタスク群のリスト(LTR)を、レイヤP1の<<ネゴシエーション/選択>>サービスから全てのロボットに送信すること、
● 異なるロボットの異なるレイヤP1の異なる<<ネゴシエーション/選択>>サービス群の間でネゴシエーションメッセージをやりとりすること、
● クラウドのレベルにおいて及び/又はロボット間で、やりとりされたネゴシエーションメッセージに基づいて及び周辺機器の優先度ファイルに基づいて、ミッションに参加するロボットのリスト(ファイル)(LRM)を生成すること、
● 前記ミッションのプログレスプランの実行をトリガすること、
● ロボットを同期すること、
● ロボット間で協働を監督すること
を含む。
【0072】
好ましくは、ミッションをフォーマライズするファイル群のセットは、少なくとも、実行されるべき基本タスク群の識別子群のリスト(LTP)、前記タスクの順序の制約条件に関するパラメータ群のリスト、タスクの完了に必要な周辺機器(アクチュエータ、センサ、…)の識別子のリスト、周辺機器の優先度ファイルを含む。
【0073】
好ましくは、レイヤP1からの及びレイヤP1への送信は、通信バスBCに属する周辺機器検出サービスを介して実行される。
【0074】
好ましくは、ロボットによって実現可能なタスクのリスト(LTR)は、ロボットの識別子、及び基本タスクの識別子のリスト(LTP)の中でそのロボットが完了できるタスクの識別子のリストをとりわけ含むファイルの形態であるか、又はデータベースの形態である。
【0075】
好ましくは、やりとりされたファイルのセットは、JSONフォーマットである。
【0076】
ミッションの実行は、退避されているか又はローカルかに関わらず、クラウド内のプログラムを介して、又は専用インターフェイスHMIからユーザーを介してトリガされ得る。
【0077】
有利には、周辺機器データは、レイヤP1の通信バスBCに属する<<データ同期>>サービスによって回復される。
【0078】
有利には、ロボット間の協働の監督は、それぞれのロボットのレイヤP1の<<協働>>サービスのレベルにおいて実行される。
【0079】
図5のダイヤグラムは、第1ロボットR1及び第2ロボットR3の間の通信を示す。ここで、この通信の異なるステップを説明するが、プログラミング言語の対応する命令は、イタリックで示される([ ]で囲まれるように表記される)。
【0080】
- メッセージM(R1)P3>P2は、ロボットR1の第3プログラムP3から、ロボットR1の第2プログラムP2に送られる。
【0081】
M(R1)P3>P2= [“info/position/robot3/3.0.1”.]
- 処理T(R1)P2は、レイヤP2によってロボットR1内でそれから実行され、予め定義されたオブジェクト構造に従ってメッセージをフォーマット及び/又は再構成(REC)する。
【0082】

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

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

{“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チェーンの完全性を確保する。
【0084】

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

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

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

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

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

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