(57)【要約】      （修正有）【課題】ロボットと集中データベースの間の接続が安定ではない場合でも、タスクの実行に影響を受けないようにするロボット群による協調タスク実行方法を提供する。【解決手段】分散セマンティック知識ベースは、ロボット群を形成する複数のロボット間で分散される。各ロボットは、自己クエリ並びに１又は２以上の外部クエリをトリガして、複数のタスク固有パラメータに関する所要のデータを収集し、収集したデータを用いて、ロボット群に割り当てられた１又は２以上のタスクを実行する。【選択図】図３
2020184317.tif 000002
【特許請求の範囲】
【請求項１】
ロボットタスク実行のためのプロセッサによって実施される方法（３００）であって、該方法（３００）は、
ロボット群を形成する少なくとも２つのロボットによって該ロボット群に割り当てられる少なくとも１つのタスクをフェッチするステップであって、該ロボット群は、該ロボット群に割り当てられた該少なくとも１つのタスクを実行するために協調する該少なくとも２つのロボットを含む、フェッチするステップ（３０２）と、
前記少なくとも２つのロボットの各々によって前記フェッチされた少なくとも１つのタスクを処理するステップと、
を含み、該処理するステップは、
前記少なくとも１つのタスクを実行するのに必要な複数のタスク固有パラメータに関するセマンティック情報を集めるために、独自のセマンティック知識データベースにクエリを行うステップ（３０４）と、
前記複数のタスク固有パラメータに関するセマンティック情報が前記独自のセマンティック知識データベースにおいて利用可能でない場合、前記少なくとも２つのロボットのうちの少なくとも１つの他のロボットのセマンティック知識データベースにクエリを行うステップ（３０６）と、
前記複数のタスク固有パラメータに関するセマンティック情報を処理するステップであって、該処理するステップは、前記ロボット群に割り当てられた前記少なくとも１つのタスクを実行するために前記少なくとも２つのロボットのうちの少なくとも１つをターゲットロボットとして識別するステップを含み、該ターゲットロボットは、ａ）前記少なくとも１つのタスクを処理する能力及びｂ）コスト係数に関する基準を満足する、処理するステップ（３０８）と、
前記少なくとも１つのターゲットロボットを用いて前記少なくとも１つのタスクを実行するステップ（３１０）と、
を含む、方法（３００）。
【請求項２】
前記少なくとも１つのターゲットロボットを識別するステップは、
前記集めたセマンティック情報に基づいて、前記少なくとも１つのタスクを実行するロボットに必要な能力を決定するステップ（４０２）と、
前記決定した能力を前記少なくとも２つのロボットの能力と比較することにより、マッチング能力を有する前記少なくとも２つのロボットのうちのすべてのロボットを識別するステップ（４０４）と、
前記マッチング能力を有するものとして識別された各ロボットについて前記コスト係数を決定するステップであって、ロボットの前記コスト係数は、前記タスクを実行するために前記ロボットを用いる際に関わるコストを表す、決定するステップ（４０６）と、
マッチング能力を有する前記少なくとも２つのロボットから最小のコスト係数を有するロボットを前記ターゲットロボットとして選択するステップ（４０８）と、
を含む、請求項１に記載の方法（３００）。
【請求項３】
前記少なくとも１つのタスクを実行するための前記ロボットの前記コスト係数は、タスクのタイプ、前記タスクに関わる対象物のタイプ、前記対象物に対して実施される動作のタイプ、前記対象物が作られる材料のタイプ、前記ロボットのロケーションと前記対象物のロケーションとの間の距離、及びバッテリ消費量を含む、複数のパラメータに基づいて決定される、請求項２に記載の方法（３００）。
【請求項４】
少なくとも前記複数のタスク固有パラメータに関する情報を含む前記セマンティック知識ベースは、前記ロボット群を形成する前記少なくとも２つのロボット間で分散される、請求項１に記載の方法（３００）。
【請求項５】
前記セマンティック知識ベースは、前記少なくとも２つのロボットのうちの少なくとも１つによって集められた１又は２以上のリアルタイムデータに基づいて動的に更新される、請求項４に記載の方法（３００）。
【請求項６】
タスク実行のためのロボット群（１００）であって、該ロボット群（１００）は、
少なくとも２つのロボット（１０１）を含み、該少なくとも２つのロボット（１０１）は、
前記ロボット群に割り当てられたタスクを集めること（３０２）と、
前記少なくとも２つのロボットの各々によって前記集めたタスクを処理することと、
によって前記ロボット群に割り当てられた前記タスクを実行するように協調し、
前記集めたタスクを処理することは、
前記タスクを実行するのに必要な複数のタスク固有パラメータを集めるために、独自のセマンティック知識データベースにクエリを行うこと（３０４）と、
前記タスク固有パラメータが前記独自のセマンティック知識データベースにおいて利用可能でない場合、前記少なくとも２つのロボットのうちの少なくとも１つの他のロボットのセマンティック知識データベースにクエリを行うこと（３０６）と、
前記複数のタスク固有パラメータに関するセマンティック情報を処理することであって、該処理ことは、前記ロボット群に割り当てられた前記タスクを実行するために前記少なくとも２つのロボットのうちの少なくとも１つをターゲットロボットとして識別することを含み、該ターゲットロボットは、ａ）前記少なくとも１つのタスクを処理する能力及びｂ）コスト係数に関する基準を満足する、処理すること（３０８）と、
前記少なくとも１つのターゲットロボットを用いて前記タスクを実行すること（３１０）と、
を含む、ロボット群（１００）。
【請求項７】
前記ロボット群は、
前記集めたセマンティック情報に基づいて、前記少なくとも１つのタスクを実行するロボットに必要な能力を決定すること（４０２）と、
前記決定した能力を前記少なくとも２つのロボットの能力と比較することにより、マッチング能力を有する前記少なくとも２つのロボットのうちのすべてのロボットを識別すること（４０４）と、
前記マッチング能力を有するものとして識別された各ロボットについて前記コスト係数を決定することであって、ロボットの前記コスト係数は、前記タスクを実行するために前記ロボットを用いる際に関わるコストを表す、決定すること（４０６）と、
マッチング能力を有する前記少なくとも２つのロボットから最小のコスト係数を有するロボットを前記ターゲットロボットとして選択すること（４０８）と、
によって前記少なくとも１つのターゲットロボットを識別する、請求項６に記載のロボット群（１００）。
【請求項８】
前記ロボット群は、タスクのタイプ、前記タスクに関わる対象物のタイプ、前記対象物に対して実施される動作のタイプ、前記対象物が作られる材料のタイプ、前記ロボットのロケーションと前記対象物のロケーションとの間の距離、及びバッテリ消費量を含む、複数のパラメータに基づいて、前記タスクに対する前記ロボットの各々の前記コスト係数を決定する、請求項７に記載のロボット群（１００）。
【請求項９】
少なくとも前記複数のタスク固有パラメータに関する情報を含む前記セマンティック知識ベースは、前記ロボット群を形成する前記少なくとも２つのロボット間で分散される、請求項６に記載のロボット群（１００）。
【請求項１０】
前記ロボット群は、前記ロボット群を形成する前記少なくとも２つのロボットのうちの少なくとも１つによって集められた１又は２以上のリアルタイムデータに基づいて、前記セマンティック知識ベースを動的に更新する、請求項９に記載のロボット群（１００）。
【請求項１１】
少なくとも１つの他のロボットと協調して少なくとも１つのタスクを実行するための第１のロボット（１０１）であって、該第１のロボット（１０１）は、
複数の命令を記憶するメモリモジュール（２０１）と、
１又は２以上の通信インタフェース（２０２）と、
構成モジュール（２０４）と、
コントローラモジュール（２０５）と、
クエリハンドラモジュール（２０６）と、
タスク割り当てモジュール（２０７）と、
タスク実行モジュール（２０８）と、
前記１又は２以上の通信インタフェース（２０２）を介して前記メモリモジュール（２０１）に結合された１又は２以上のハードウェアプロセッサ（２０３）と、
を含み、前記複数の命令によって、前記１又は２以上のハードウェアプロセッサ（２０３）に、
前記構成モジュールを用いて前記ロボットを始動し、
前記コントローラモジュールを用いて、前記少なくとも１つのタスクを処理する少なくとも１つの命令を集め、
前記コントローラモジュールを用いて、前記少なくとも１つのタスクを処理するのに必要な複数のタスク固有パラメータを決定し、
前記コントローラモジュールを用いて、前記複数のタスク固有パラメータの各々に関するセマンティック情報を前記第１のロボット及び前記少なくとも１つの他のロボットのうちのどのロボットが記憶するかを識別し、
前記メモリモジュールに記憶された独自のセマンティック知識ベースにクエリを行って前記複数のタスク固有パラメータの少なくとも一部に関するセマンティック情報を集めるために、前記クエリハンドラモジュールを用いて自己クエリをトリガし、
前記少なくとも１つの他のロボットのセマンティック知識ベースにクエリを行って前記独自のセマンティック知識ベースに存在しない前記複数のタスク固有パラメータに関するセマンティック情報を集めるために、前記クエリハンドラモジュールを用いて前記少なくとも１つの他のロボットに対して外部クエリをトリガし、
前記クエリハンドラモジュールを用いて、前記少なくとも１つの他のロボットから受け取ったクエリに応答して、前記独自のセマンティック知識ベースに記憶された前記セマンティック情報の少なくとも一部を前記少なくとも１つの他のロボットに提供し、
前記タスク割り当てモジュールを用いて、前記独自のセマンティック知識ベース及び前記少なくとも１つの他のロボットのセマンティック知識ベースからの前記複数のタスク固有パラメータに関する前記集められたセマンティック情報に基づいて、前記少なくとも１つのタスクの実行を処理するターゲットロボットを識別し、
前記タスク実行モジュールを用いて、前記第１のロボットが前記ターゲットロボットとして識別された場合に前記少なくとも１つのタスクを実行する、
ことを行わせる、第１のロボット（１０１）。
【請求項１２】
前記第１のロボットは、
前記集めたセマンティック情報に基づいて、前記少なくとも１つのタスクを実行するロボットに必要な能力を決定することと、
前記決定した能力を前記第１のロボット及び前記少なくとも１つの他のロボットの能力と比較することにより、マッチング能力を有する前記第１のロボット及び前記少なくとも１つの他のロボットのうちのすべてのロボットを識別することと、
前記マッチング能力を有するものとして識別された各ロボットについてコスト係数を決定することであって、ロボットの前記コスト係数は、前記タスクを実行するために前記ロボットを用いる際に関わるコストを表す、決定することと、
マッチング能力を有する前記第１のロボット及び前記少なくとも１つの他のロボットから最小のコスト係数を有するロボットを前記ターゲットロボットとして選択することと、
によって前記ターゲットロボットを識別する、請求項１１に記載の第１のロボット（１０１）。
【請求項１３】
前記第１のロボットは、タスクのタイプ、前記タスクに関わる対象物のタイプ、前記対象物に対して実施される動作のタイプ、前記対象物が作られる材料のタイプ、前記ロボットのロケーションと前記対象物のロケーションとの間の距離、及びバッテリ消費量を含む複数のパラメータに基づいて、前記少なくとも１つのタスクに対する前記第１のロボット及び前記少なくとも１つの他のロボットの各々の前記コスト係数を決定する、請求項１２に記載の第１のロボット（１０１）。
【請求項１４】
前記第１のロボットの前記独自のセマンティック知識ベースは、前記第１のロボット及び前記少なくとも１つの他のロボットの間で分散された分散セマンティック知識ベースの一部である、請求項１１に記載の第１のロボット（１０１）。
【請求項１５】
前記第１のロボットは、前記複数のタスク固有パラメータのうちの少なくとも１つに関して集められた１又は２以上のリアルタイムデータに基づいて前記分散セマンティック知識ベースを動的に更新するように構成される、請求項１４に記載の第１のロボット（１０１）。
【発明の詳細な説明】
【技術分野】
【０００１】
(関連出願の相互参照及び優先権)
本出願は、２０１９年３月０８日以前に出願されたインド国特許出願２０１９２１００９１９２からの優先権を主張する。
(技術分野)
【０００２】
本明細書の開示は、全体的に、ロボット工学に関し、より詳細には、分散セマンティック知識ベースを用いたロボットの群による協調的タスク実行(collaborated task execution)に関する。
【背景技術】
【０００３】
ロボット工学及びオートメーションの分野の進歩と共に、ロボットは、様々な用途に関連して、異なるタイプのタスクを処理するのに、幅広く使用されている。例えば、ロボットは、在庫管理の処理、爆弾の拡散、自動監視などのために使用される。全てのこのような自動化用途では、ロボットは、ロボットに割り当てられるタスクの種々の態様に関する特定のデータを収集して、タスクを計画及び実行する必要がある。
【０００４】
既存のシステムの大部分において、ロボットに対してデータを提供する集中データベースが使用される。帯域幅が制約されたシナリオでは、ロボットと集中データベースの間の接続は、安定ではない場合がある。ロボットが、クラウド上に収容できる必要なデータを集中データベースから取得しない場合、ロボットによって実施されているタスクの実行に影響を受ける可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の実施形態は、本発明者らによって従来のシステムにおいて認識された上述の技術的問題の１又は２以上への解決策として技術的改良を提示する。例えば、１つの実施形態において、ロボットタスク実行のためのプロセッサによって実施される方法(processor-implemented method)が提供される。本方法において、ロボット群(robotic group)に割り当てられたタスクは、ロボット群を形成する２つのロボットによってフェッチされ、ロボット群は、該ロボット群に割り当てられた少なくとも１つのタスクを実行するために協調する(collaborating)前記少なくとも２つのロボットを含む。次いで、フェッチされた少なくとも１つのタスクは、少なくとも２つのロボットの各々によって処理される。このプロセスの間、各ロボットは、独自のセマンティック知識データベース(own semantic knowledge database)にクエリを行って(query)、少なくとも１つのタスクを実行するのに必要な複数のタスク固有パラメータを集める(gather)。各ロボットは更に、タスク固有パラメータがセマンティック知識データベースにおいて利用可能でない場合、少なくとも２つのロボットのうちの少なくとも１つの他のロボットのセマンティック知識データベースにクエリを行う。複数のタスク固有パラメータに関するセマンティック情報を全て集めた後、集められたセマンティック情報が処理され、その間、少なくとも２つのロボットのうちの少なくとも１つは、ロボット群に割り当てられた少なくとも１つのタスクを実行するためのターゲットロボットとして識別され、ターゲットロボットは、ａ）前記少なくとも１つのタスクを処理する能力及びｂ）コスト係数(cost factor)に関する基準を満足する。更に、ターゲットロボットは、少なくとも１つのターゲットロボットを用いて少なくとも１つのタスクを実行する。
【０００６】
他の態様において、タスク実行のためのロボット群が提供される。ロボット群は、少なくとも２つのロボットを含み、少なくとも２つのロボットが、ロボット群に割り当てられたタスクを集めること(collecting)により、及び更に少なくとも２つのロボットの各々によって集められたタスクを処理することにより、ロボット群に割り当てられたタスクを実行するよう協調する。タスクの処理の間、各ロボットは、少なくとも１つのタスクを実行するのに必要とされる複数のタスク固有パラメータを集めるため、独自のセマンティック知識データベースにクエリを行う。各ロボットは更に、タスク固有パラメータが独自のセマンティック知識データベースにおいて利用可能でない場合、少なくとも２つのロボットのうちの少なくとも１つの他のロボットのセマンティック知識データベースにクエリを行う。複数のタスク固有パラメータに関するセマンティック情報を全て集めた後、集められたセマンティック情報が処理され、その間、少なくとも２つのロボットのうちの少なくとも１つは、ロボット群に割り当てられた少なくとも１つのタスクを実行するためのターゲットロボットとして識別され、ターゲットロボットは、ａ）少なくとも１つのタスクを処理する能力及びｂ）コスト係数に関する基準を満足する。更に、ターゲットロボットは、少なくとも１つのターゲットロボットを用いて少なくとも１つのタスクを実行する。
【０００７】
更に別の態様において、少なくとも１つの他のロボットと協調して少なくとも１つのタスクを実行するための第１のロボットが提供される。第１のロボットは、複数の命令を記憶するメモリモジュールと、１又は２以上の通信インタフェースと、構成モジュールと、コントローラモジュールと、クエリハンドラモジュールと、タスク割り当てモジュールと、タスク実行モジュールと、１又は２以上の通信インタフェースを介してメモリモジュールに結合された１又は２以上のハードウェアプロセッサと、を含む。複数の命令によって、１又は２以上のハードウェアプロセッサに、少なくとも１つの他のロボットと協調してタスクの実行の一部として以下の動作を実施させる。構成モジュールを用いてロボットが始動される(initiated)。更に、少なくとも１つのタスクを処理する少なくとも１つの命令は、コントローラモジュールを用いて集められる(collected)。次いで、第１のロボットは、コントローラモジュールを用いて、少なくとも１つのタスクを処理するのに必要とされる複数のタスク固有パラメータを決定する。次に、第１のロボットは、コントローラモジュールを用いて、複数のタスク固有パラメータの各々に関するセマンティック情報を第１のロボット及び少なくとも１つの他のロボットのうちのどのロボットが記憶するかを識別する。次に、第１のロボットは、クエリハンドラモジュールを用いて自己クエリ(self query)をトリガして、メモリモジュールに記憶された独自のセマンティック知識ベースにクエリを行い、複数のタスク固有パラメータの少なくとも一部に関するセマンティック情報を集める。次いで、第１のロボットは、クエリハンドラモジュールを用いて少なくとも１つの他のロボットに対して外部クエリ(external query)をトリガして、少なくとも１つの他のロボットのセマンティック知識ベースにクエリを行って、独自のセマンティック知識ベースに存在しない複数のタスク固有パラメータに関するセマンティック情報を集める。第１のロボットは、クエリハンドラモジュールを用いて、少なくとも１つの他のロボットから受け取ったクエリに応答して、独自のセマンティック知識ベースに記憶されたセマンティック情報の少なくとも一部を少なくとも１つの他のロボットに提供する。第１のロボットは、タスク割り当てモジュールを用いて、独自のセマンティック知識ベース及び少なくとも１つの他のロボットのセマンティック知識ベースからの複数のタスク固有パラメータに関する集められたセマンティック情報に基づいて、少なくとも１つのタスクの実行を処理するためターゲットロボットを識別する。第１のロボットは、該第１のロボットがターゲットロボットとして識別された場合に、タスク実行モジュールを用いて、少なくとも１つのタスクを実行する。
【０００８】
前述の概要及び以下の詳細な説明は何れも例証で説明のためのものであり、請求項に記載された本発明の実施形態の更なる説明を行うことを意図している点を理解されたい。
【０００９】
本開示に組み込まれ且つその一部を構成する添付図面は、例示的な実施形態を例証しており、本明細書と共に本開示の原理を説明する役割を果たす。
【図面の簡単な説明】
【００１０】
【図１】本開示の一部の実施形態による、タスク実行のための分散セマンティック知識ベースを備えた例示的なロボット群を示すブロック図である。
【図２】本開示の一部の実施形態による、ロボット群の一部であるロボットの構成要素を描いたブロック図である。
【図３】本開示の一部の実施形態による、図１のロボット群による、分散セマンティック知識ベースを用いたタスク実行を実施するプロセスに関するステップを示したフロー図である。
【図４】本開示の一部の実施形態による、図１のロボット群による、タスク実行のターゲットロボットとしてロボット群から少なくとも１つのロボットを識別するプロセスに関するステップを示したフロー図である。
【図５ａ】本開示の一部の実施形態による、分散セマンティック知識ベースの例示的な構造を示す図である。
【図５ｂ】本開示の一部の実施形態による、ロボット群におけるロボットを互いにクエリを行う機構を示す図である。
【図６ａ】本開示の一部の実施形態による、実験設定における、集中型知識ベースに優る分散型知識ベースの利点を示す異なるパラメータの値を示す例示的なグラフである。
【図６ｂ】本開示の一部の実施形態による、実験設定における、集中型知識ベースに優る分散型知識ベースの利点を示す異なるパラメータの値を示す例示的なグラフである。
【図６ｃ】本開示の一部の実施形態による、実験設定における、集中型知識ベースに優る分散型知識ベースの利点を示す異なるパラメータの値を示す例示的なグラフである。
【図６ｄ】本開示の一部の実施形態による、実験設定における、集中型知識ベースに優る分散型知識ベースの利点を示す異なるパラメータの値を示す例示的なグラフである。
【図６ｅ】本開示の一部の実施形態による、実験設定における、集中型知識ベースに優る分散型知識ベースの利点を示す異なるパラメータの値を示す例示的なグラフである。
【発明を実施するための形態】
【００１１】
例示的な実施形態について、添付図面を参照して記載される。図中、参照番号の最上位桁（単数又は複数）は、当該参照番号が最初に現われる図を表している。好都合であれば、複数の図面を通じて同じ又は同様の部分を指すために同じ参照番号が用いられる。開示される原理の実施例及び特徴が本明細書に記載されるが、開示される実施形態の技術的思想及び範囲から逸脱することなく、変更、適応、及び他の実施構成が実施可能である。以下の詳細な記載は、例証に過ぎず、真の範囲及び思想は添付の特許請求の範囲によって示されることが意図される。
【００１２】
ここで、図面全体を通じて同じ参照符号が一貫して対応する特徴を示す図面、より詳細には図１〜図６ｅを参照すると、好ましい実施形態が示され、これらの実施形態は、以下の例示的なシステム及び／又は方法との関連において記載されている。
【００１３】
図１は、本開示の一部の実施形態による、タスク実行のための分散セマンティック知識ベース(distributed semantic knowledge base)を備えた例示的なロボット群を示すブロック図である。ロボット群１００は、該ロボット群１００に割り当てられている１又は２以上のタスクを実行するよう協調する複数のロボット１０１（複数のロボット１０１のうちの１つは、ロボット１０１の能力／機能性を説明する目的で「第１のロボット」と呼ばれる）を含む。図１は、４つのロボット１０１（１０１．ａ〜１０１．ｄ）を含むロボット群１００を示す。しかしながら、あらゆる数のロボット１０１を用いて、ロボット群１００を形成することができ、図１は、ロボット群１００を形成するロボット１０１の数に関する制約を意図するものではない。
【００１４】
あらゆるタスクを実行するために、ロボットシステム１００のロボット１０１は、「タスク固有パラメータ(task specific parameters)」と呼ばれるある情報を必要とする。例えば、ロボット群に割り当てられているタスクが対象物(object)をピックアップしていると考慮されたい。対象物をピックアップするタスクに対応するタスク固有パラメータは、対象物特定データ(object specific data)（対象物名、対象物のタイプ、対象物のサイズ、対象物の形状、対象物の色、対象物の重量、など）、ロケーション特定データ(location specific data)（ラック数、通路数、通路幅、対象物に近接した位置にいるロボット、など）、能力特定データ(capability specific data)（限定ではないが、把持部／吸着カップの存在などタスクを実行するのにロボットによって必要とされる能力、及びある重量を有する対象物を持ち上げる能力）を含むことができる。
【００１５】
ロボット群１００によって使用されている分散セマンティック知識ベースにおいて、タスク固有パラメータに関連するセマンティック情報(semantic information)は、ロボット群を形成するロボット１０１間で分散され、対象物特定データを記憶する対象物データベースは、１つのロボット（例えば、ロボット１０１．ａ）に記憶され、ロケーション特定データを記憶するロケーションデータベースは、別のロボット（例えば、ロボット１０１．ｂ）に記憶され、所要の能力を記憶する能力データベースは、別のロボット（例えば、ロボット１０１．ｃ）に記憶される。タスクがロボット群１００によってフェッチされると、各ロボット１０１は、タスクを別個に処理し、その間に各ロボット１０１は、最初に、フェッチしたタスクを実行するのに必要とされる、フェッチされたタスクに対応する複数のタスク固有パラメータを識別する。タスク固有のパラメータは、対象物、ロケーション、及び能力に関連していると考慮されたい。分散セマンティック知識ベースの例示的な構造が、図５ａに与えられる。図５ａで分かるように、対象物、ロケーション、及び能力に関する種々の情報は、データベースのｏｂｊｅｃｔ．ｏｗｌ（対象物．ｏｗｌ）、ｌｏｃａｔｉｏｎ．ｏｗｌ（ロケーション．ｏｗｌ）、及びｃａｐａｂｉｌｉｔｙ．ｏｗｌ（能力．ｏｗｌ）それぞれに記憶される。ロボット群１００における各ロボット１０１は、関連するデータベースにて維持され、データベースに関する情報は、ロボット群１００における各ロボット１０１により維持される。例えば、データベースは、対象物データベースがロボット１０１．ａによって維持され、ロケーションデータベースがロボット１０１．ｂによって維持され、能力データベースは、ロボット１０１．ｃによって維持されることを指定している。
【００１６】
ロボット群１００における各ロボット１０１は、フェッチされたタスクを処理する。タスクの処理中、各ロボットは、自己クエリ及び複数の外部クエリをトリガして、タスク固有パラメータに関するセマンティック情報を集める(gather)／収集する（集める）(collect)。自己クエリは、ロボット１０１によってトリガされて、独自のセマンティック知識ベース(own semantic knowledge base)からセマンティック情報を集める。例えば、対象物データベースは、ロボット１０１．ａによって維持され、該ロボット１０１．ａは、自己クエリをトリガして、対象物関連のタスク固有パラメータに関するセマンティック情報を集める。同時に、ロボット１０１．ｂ及び１０１．ｃは、ロボット１０１．ａに対して別個の外部クエリをトリガし、対象物関連のタスク固有パラメータに関するセマンティック情報を集める。同様に、ロボット１０１の各々は、自己クエリ又は外部クエリをトリガして、ロケーション及び能力に関するセマンティック情報を集める。この機構は、図５ｂに示されている。自己クエリ又は外部クエリをトリガすることにより、各ロボット１０１は、タスク固有パラメータの全てに関するセマンティック情報を集める。
【００１７】
次いで、各ロボット１０１は、集められたセマンティック情報を処理して、少なくとも１つのタスクを実行するためのターゲットロボットとしてロボット１０１のうちの少なくとも１つを識別する。種々の実施形態において、ロボット１０１は、少なくとも２つの条件、すなわち、
ａ）少なくとも１つのタスクを実行する能力、
ｂ）タスク実行のためロボットを使用／利用するのに伴うコスト係数、
に基づいてターゲットロボットとして識別される。ロボット１０１は、タスクを実行するために幾つかの特定の能力を必要とする。必要とされるこの能力は、タスク毎に異なる可能性がある。少なくとも１つのタスクを実行するために必要とされる能力は、ロボット群１００における各ロボット１０１のメモリモジュール１０１で予め構成又は動的に構成することができる。各ロボット１０１は、少なくとも１つのタスクの能力要件をロボット１０１の各ロボットの能力と比較して、ロボット１０１の少なくとも１つをマッチング／所要能力(matching/required capabilities)を有するものとして識別することができる。必要とされる能力を有する１又は２以上のロボット１０１を識別した後、対応するコスト係数が、マッチング／所要能力を有するロボット１０１の各々について計算される。コスト係数は、ロボット−タスクペアについて計算されて、タスクを実行するためロボット１０１を使用／配備する際に生じるコストを表す。タスクに対するロボット１０１の各々のコスト係数は、限定ではないが、タスクのタイプ、タスクに関わる対象物のタイプ、対象物に対して実施される動作のタイプ、対象物が作られる材料のタイプ、ロボットのロケーションと対象物のロケーションとの間の距離、及びバッテリ消費量など、複数のパラメータに基づいて計算される。ロボット１０１によりあらゆる好適な計算機構を使用して、コスト係数を計算することができる。ロボット１０１についての高いコスト係数値は、当該特定のロボット１０１を配備するのに関わるコストが比較的高い（マッチング／所要能力を有するものとして識別されたロボット群１００における他のロボット１０１のコスト係数値と比較して）ことを示している。同様にして、ロボット１０１についての低いコスト係数値は、当該特定のロボット１０１を配備するのに関わるコストが比較的低い（マッチング／所要能力を有するものとして識別されたロボット群１００における他のロボット１０１のコスト係数値と比較して）ことを示している。
【００１８】
次いで、ターゲットロボットとして識別されるロボット１０１は、ロボット群に割り当てられた少なくとも１つのタスクを実行する。ターゲットロボットは、少なくとも1つのタスクを実行するために必要な機能に相当する必要なソフトウェア及び／又はハードウェア手段を備えることができる。タスク実行相の間、ターゲットロボットは、少なくとも１つのロケーションに到達して少なくとも１つのタスクを実行するように、ターゲットロボットの経路を計画する何れかの好適な機構／手法を用いることができる。
【００１９】
図２は、本開示の一部の実施形態による、ロボット群の一部であるロボットの構成要素を描いたブロック図である。ロボット群１００における各ロボット１０１は、少なくとも１つのメモリモジュール２０１、少なくとも１つの通信インタフェース２０２、１又は２以上のハードウェアプロセッサ２０３、構成モジュール２０４、コントローラモジュール２０５、クエリハンドラモジュール２０６、タスク割り当てモジュール２０７、及びタスク実行モジュール２０８を含む。
【００２０】
少なくとも１つのメモリモジュール２０１は、１又は２以上のハードウェアプロセッサ２０３に動作可能に結合される。ハードウェアプロセッサである１又は２以上のハードウェアプロセッサ２０３は、１又は２以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、グラフィックコントローラ、論理回路、及び／又は動作命令に基づいて信号を操作する任意のデバイスとして実装する(implemented)ことができる。他の能力の中でも、１又は複数のプロセッサは、メモリ１０２に記憶されたコンピュータ可読命令をフェッチして実行するように構成される。１つの実施形態において、システム１００は、例えば、ラップトップコンピュータ、ノートブック、ハンドへルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウド及び同様のものなど、様々なコンピューティングシステムに実装することができる。
【００２１】
通信インタフェース２０２は、様々なソフトウェア及びハードウェアインタフェース、例えば、ウェブインタフェース、グラフィカルユーザインタフェース、及び同様のものを含むことができ、有線ネットワーク（例えば、ＬＡＮ、ケーブルなど）及びＷＬＡＮ、セルラ、又は衛星のような無線ネットワークを含めて、多種多様なネットワークＮ／Ｗ及びプロトコルタイプ内の複数の通信を容易にすることができる。１つの実施形態において、１又は複数のＩ／Ｏインタフェースデバイスは、幾つかのデバイスを互いに又は別のサーバに接続するための１又は２以上のポートを含むことができる。
【００２２】
１又は複数のメモリモジュール２０１は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）及びダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような揮発性メモリ、及び／又はリードオンリメモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ、フラッシュメモリ、ハードディスク、光ディスク、並びに磁気テープのような不揮発性メモリを含めて、当技術分野で公知の任意のコンピュータ可読媒体を含むことができる。１つの実施形態において、ロボット１０１の１又は２以上のモジュール（図示せず）は、１又は複数のメモリモジュール２０１内に記憶することができる。メモリモジュール２０１は更に、１又は２以上のタスク固有パラメータに関するセマンティック情報を記憶するように構成され、１又は２以上のタスクを実行するのに必要とされるタスク固有情報を記憶したセマンティック知識ベースが、ロボット群を形成する様々なロボット１０１のメモリモジュール２０１間で分散される。１つの実施形態において、セマンティック知識ベースの内容は、ロボット群１００における少なくとも１つのロボット１０１によって収集されたリアルタイム情報に基づいて動的に更新される。
【００２３】
構成モジュール２０４は、新しいタスクがロボット群１００に割り当てられるたびに、ロボット１０１を初期設定する。このプロセスの間、構成モジュール２０４は、限定ではないが、ネットワークｉｐ、ファイルパス、及びマップ内のロボット１０１の初期ロケーションなどのデータを構成ファイルから読み込むことができる。
【００２４】
コントローラモジュール２０５は、ロボット１０１のモジュールの他のモジュールと通信して、ロボット群１００によって実施されているタスク実行の種々の段階の間、モジュール間の通信を同期及び協調するよう構成される。コントローラモジュール２０５は、ロボット群１００に割り当てられている新しいタスクを収集し、収集した新しいタスクを処理することによって、タスクの未知のパラメータ（ここで未知のパラメータは、コントローラモジュール２０５がその一部であるロボットにとって未知であるタスク固有パラメータを意味する）を抽出するよう構成することができる。次いで、コントローラモジュール２０５は、必要なクエリを生起するようクエリハンドラモジュール２０６に通知する。コントローラモジュール２０５は更に、クエリハンドラモジュール２０６からの応答を収集して、タスク実行モジュール２０８に通知して、タスクを実行させることができる。
【００２５】
クエリハンドラモジュール２０６は、自己クエリ及び外部クエリをトリガして、タスク固有パラメータに関するセマンティック情報を集める／収集するように構成される。
【００２６】
タスク割り当てモジュール２０７は、ロボットの能力及びコスト係数情報に基づいて、少なくとも１つのターゲットロボットを識別するよう構成される。タスク割り当てモジュール２０７は、各ロボット−タスクペアについてのコスト係数を計算するよう構成される。
【００２７】
タスク実行モジュール２０８は、適切なソフトウェア及びハードウェア能力を有するターゲットロボットを使用して、クエリハンドラモジュール２０６によって収集されたセマンティック情報に基づき、ロボット群１００に割り当てられた少なくとも１つのタスクを実行するよう構成される。
【００２８】
図３は、本開示の一部の実施形態による、図１のロボット群による、分散セマンティック知識ベースを用いたタスク実行を実施するプロセスに関するステップを示したフロー図である。本方法において、ロボット群１００は、該ロボット群１００に割り当てられている少なくとも１つのタスクをフェッチする(fetch)（３０２）。ロボット群１００の各ロボット１０１は、自己クエリ又は１又は２以上の外部クエリをトリガ（３０４＆３０６）して、図１の記載に関して詳細に説明するように種々のタスク固有パラメータに関するセマンティック情報を集める。複数のタスク固有パラメータに関するセマンティック情報を集めた後、各ロボット１０１は、集められた情報を処理してロボット１０１のうちの少なくとも１つをターゲットロボットとして識別する（３０８）。更に、ロボット群１００に割り当てられた少なくとも１つのタスクは、１又は２以上のターゲットロボットによって実行される。
【００２９】
図４は、本開示の一部の実施形態による、図１のロボット群による、タスク実行のターゲットロボットとしてロボット群から少なくとも１つのロボットを識別するプロセスに関するステップを示したフロー図である。ターゲットロボットを識別するために、ロボット群１００における各ロボット１０１は、集められたセマンティック情報を処理して、少なくとも１つのタスクを実行するのに必要なロボット能力を識別する（４０２）。各ロボット１０１は、決定された能力を有する全てのロボットを決定する。決定された能力を有するとして識別されたロボット１０１の各々について、各ロボット１０１は、コスト係数を決定（４０６）し、決定された能力を有するとして識別された全てのロボット１０１のうち最小のコスト係数を有する１つのロボットをターゲットロボットとして選択する（４０８）。
【００３０】
（タスク固有パラメータに関するセマンティック情報の収集の実施例）
タスク固有パラメータに関するセマンティック情報を収集するための自己クエリ及び外部クエリのトリガは、図５ａ及び図５ｂを参照することにより説明される。３つのロボット１０１．ａ，１０１．ｂ及び１０１．ｃを含むロボット群１００に割り当てられたタスクは、対象物Ｘ（この実施例ではグッチのバッグである）をピックアップしている点を考慮されたい。この事象では、タスク（すなわち、グッチのバッグをピックアップすること）を実行するロボット１０１．ａ，１０１．ｂ及び１０１．ｃについて、対象物、ロケーション及び能力に関するデータは、必要とされるタスク固有パラメータである。対象物に関するセマンティック情報を記憶するセマンティック知識ベース（ｏｂｊｅｃｔ．ｏｗｌ）は、ロボット１０１．ａに記憶され、ロケーションに関するセマンティック情報を記憶するセマンティック知識ベース（Ｌｏｃａｔｉｏｎ．ｏｗｌ）は、ロボット１０１．ｂに記憶され、能力に関連するセマンティック情報を記憶するセマンティック知識ベース（Ｃａｐａｂｉｌｉｔｙ．ｏｗｌ）は、ロボット１０１．ｃに記憶される。セマンティック情報を集める際の様々なステップが、以下で与えられる。
【００３１】
ステップ１：タスク「グッチバッグをピックアップする」は、ロボット１０１．ａ，１０１．ｂ及び１０１．ｃの各々のコントローラモジュール２０５によって処理される。ロボット１０１の各々のコントローラモジュール２０５は、クエリをトリガする命令を対応するクエリハンドラモジュール２０６に送る。ステップ１において、トリガされたクエリは、割り当てられたタスクに関連する１又は２以上の対象物に関する情報がデータベースｏｂｊｅｃｔ．ｏｗｌに存在するかどうかをチェックする。従って、ロボット１０１．ｂのクエリハンドラモジュール２０６は、自己クエリをトリガし、ロボットロボット１０１．ａ及びロボット１０１．ｃは、１又は２以上の外部クエリをトリガする。ステップ１にてトリガされたクエリが、何らかの結果をもたらさない場合、１又は２以上の対象物に関する情報がｏｂｊｅｃｔ．ｏｗｌデータベースに存在しないことを意味し、その場合は、ロボット１０１．ａ，１０１．ｂ及び１０１．ｃが割り当てられたタスクをスキップし、パイプラインにおいて次のタスク（もしあれば）をピックアップすることができる。ステップ１において対象物の特定のデータが得られた場合、ステップ２が実行される。
【００３２】
ステップ２：ステップ２において、ロボット１０１．ａ，１０１．ｂ及び１０１．ｃの各々がクエリをトリガし、ロケーションに関するセマンティック情報を収集する。ロボット１０１．ａは、データベースｌｏｃａｔｉｏｎ．ｏｗｌを維持している。従って、ロボット１０１．ａのクエリハンドラモジュール２０６は、自己クエリをトリガして、１又は２以上の対象物に関するセマンティック情報を集め／収集し、他方、ロボット１０１．ｂ及び１０１．ｃは、１又は２以上の外部クエリ（ロボット１０１．ａに対して）をトリガし、１又は２以上の対象物に関するセマンティック情報を集める。ロケーションデータは、座標形式で得ることができる。
【００３３】
ステップ３：ステップ１において、トリガされたクエリは、トリガされたタスクにおいて１又は２以上の対象物に関する情報を収集することを考慮されたい。ロボット１０１．ｂは、データベースｏｂｊｅｃｔ．ｏｗｌを維持している。従って、ロボット１０１．ｂのクエリハンドラモジュール２０６は、自己クエリをトリガして、１又は２以上の対象物に関するセマンティック情報を集め／収集し、他方、ロボット１０１．ａ及び１０１．ｃは、１又は２以上の外部クエリ（ロボット１０１．ｂに対して）をトリガして、１又は２以上の対象物に関するセマンティック情報を集める。このステップにおいて、限定ではないが、対象物のサイズ、対象物をピックアップする方法、対象物の形状、及び１又は２以上の対象物に関して壊れ物であるかどうかなどの情報が収集される。
【００３４】
ロボット１０１．ａ，１０１．ｂ及び１０１．ｃの各々は、クエリをトリガして、能力、すなわち、１又は２以上のタスクを実行するのに必要な能力に関するセマンティック情報を収集し、割り当てられたタスクを実行するターゲットロボットを識別する。ロボット１０１．ｃは、データベースｃａｐａｂｉｌｉｔｙ．ｏｗｌを維持している。従って、ロボット１０１．ｃのクエリハンドラモジュール２０６は、自己クエリをトリガして、１又は２以上の能力に関するセマンティック情報を集め／収集し、他方、ロボット１０１．ａ及び１０１．ｂは、１又は２以上の外部クエリ（ロボット１０１．ｃに対して）をトリガして、１又は２以上の能力に関するセマンティック情報を集める。
【００３５】
（実験データ）
実験装置は、集中セマンティック知識ベースに対する分散セマンティック知識ベースの性能を比較することを意図して本明細書で記載されている。実験装置は、以下のように設計された。
・それぞれ３、６及び９台のロボットから構成される３つのロボット群（Ｒ1，Ｒ2，Ｒ3）が必要される。
・５つのタスクグループ（Ｔ1、Ｔ2、Ｔ3、Ｔ4、Ｔ5）が作成され、それぞれ対象物をピックアップする５、１０、２０、４０、８０のタスクから構成される。
・各ロボット群は、全てのタスクグループにおけるタスクを実施し、すなわち、各Ｒi，ｉε｛１，２，３｝が、Ｔj，ｊε｛１，２，３，４，５｝を実施した。
・各｛Ｒi，Ｔj｝ペアは、それぞれ３５ｋｂｐｓ、１２８ｋｂｐｓ、２５６ｋｂｐｓ、５１２ｋｂｐｓの値を有する４つの異なるネットワーク帯域幅Ｂk、ｋε｛１、２、３、４｝に対して試験した。
・｛Ｒi，Ｔj，Ｂk｝の各々は、それぞれ２％、５％、１０％、１５％、２０％の値を有する異なるネットワーク損失条件Ｌp，ｐε｛１，２，３，４，５｝下で試験した。
【００３６】
上述したように、全てのこれらの試験は、様々なパラメータを全て使用して実行され、知識ベース全体が1つのリモートクラウドに記憶されている。
【００３７】
分散バージョンと集中バージョンの比較は、タスクを完了するまでの時間と、ネットワークを介して交換された合計バイト数の観点で記録される。
【００３８】
この試験は、特に帯域幅が不十分な条件の下での性能を評価するために実施された。従って、ネットワークの帯域幅は、帯域幅が不十分な条件を確保するために、ＧＰＲＳ（３５ＫＢｐｓ）、ＥＤＧＥ（１３５ＫＢｐｓ）などのセルラネットワーク帯域幅の範囲内にあるように選択した。実験中に行われた仮定の一部は以下の通り。
・タスクは外部ソースからロボット群に順次的にトリガされる。
・ロボットネットワーク内の各ロボットは、ロボット群内の他の各ロボットと共にどのような知識ベースが存在するかを認知している。
【００３９】
（実験装置）
実験は、５つのタスクシナリオで、それぞれ１ＧＢのＲＡＭを備えた３つのカスタムメイドのＲ−Ｐｉロボットを使用して実施した。しかしながら、後の段階では、３台より多いロボットで性能を試験するために、仮想マシン（ＶＭ）を使用してより多くのロボットがシミュレーションされ、各々が９００ＭＢのＲＯＭしか有していなかった。実際のロボットを表すこれらのＶＭは、内部ネットワークを介して相互に通信する。ＮｅｔＥｍユーティリティは、このネットワークの様々な帯域幅及び損失条件を構成するのに使用されている。Ｗｉｒｅｓｈａｒｋは、ネットワークトラフィック及び遅延を取り込むのに使用される。各ＶＭは、ロボットエージェントの実行中のインスタンスを有し、クライアント／サーバモードを介して相互に通信する。
【００４０】
（実験結果）
実験中に、集中システムと分散システムの性能について、３５Ｋｂｐｓの帯域幅で５つのタスクにおいて交換されたバイトの合計数で比較した。ネットワーク損失（％単位）は様々であり、ネットワーク経由で交換されたバイト数は、３、６、及び９台のロボットについて記録される。得られた結果は、分散システムにおいてネットワークトラフィック（すなわち、交換されたバイト数）は、集中システムと比べて、ネットワーク損失が２％の場合に４２％近く減少し、ネットワーク損失が２０％に増加してもそれほど変化しない。従って、分散システムには利点がある。他の帯域幅についても同様の挙動が観測される。このことが、図６ａに描かれている。
【００４１】
更に、結果から、３５Ｋｂｐｓシナリオの場合、ロボットの数が増加すると（３から６から９へ）、ネットワークトラフィックは、何れの場合も約１％減少することが観察されている。これは図６ｂに描かれている。他の全てのネットワーク帯域幅について同じ挙動が観測され、すなわち、チームサイズ（ロボットの数）が増加した場合、ネットワークトラフィックが減少し、タスクの数とネットワーク損失は変化しないままである。
【００４２】
実験装置において、Ｎ個のタスクは、ロボット群に順次的にはプッシュされず、代わりに、Ｎ個のタスクが２つの等しいセット（６台のロボットの場合）又は３つの等しいセット（９台のロボットの場合）に分割され、このような各タスクセットを３台のロボットのクラスターにプッシュして並列処理をした。従って、９台のロボットの場合、Ｎ個のタスクは、ロボットの３つのクラスターによって並列に処理され、各クラスターはＮ／３タスクを効果的に処理し、一方、６台のロボットの場合、各クラスターは、Ｎ／２タスクを処理し、３台のロボットの場合、単一のクラスターがＮ個のタスク全てを処理する。交換されるバイトの数は、ロボットによって行われたクエリの数に正比例し、これもまたロボットが処理するタスクの数に比例し、ロボットの数の減少に伴ってネットワークトラフィックが僅かに増大したのが観測された。
【００４３】
実験中に、異なるタスクのセットと異なるネットワーク損失条件においてネットワーク上で交換されたバイトの総数に対する分散及び集中システムにおけるネットワークトラフィック上のタスクの数の増加の影響は、帯域幅を３５ｋｂｐｓに固定し、ロボットは３台だけにすることによって評価された。タスクの数が指数関数的に増加するにつれて（すなわち、５、１０、２０、４０、８０）、各ロボットの知識ベースに関連するクエリの数も増加するので、これにより多くのネットワークトラフィックが発生することが観測された。結果は、分散システムが各タスクセットに対してより良好に実施することを示した。他の３つの帯域幅についても同じ比較が行われ、同様の傾向が観測された。これは、図６ｃに描かれている。
【００４４】
更に実験中、タスクの数を変化させることにより、集中システムと分散システムとの間でネットワークを介して交換されるバイト数の相違の傾向が確認された。結果は、所与のネットワーク条件（帯域幅３５３Ｋｂｐｓ及び損失２％）において、集中システムにおいて交換されたバイトは、タスク数の増加に伴って指数関数的に増加し、すなわち、より多くのタスクが入ってくると、集中システムは分散システムと比べてより多くのネットワークバイトを消費することを示した。理由：各タスクがＱ個のクエリを生成し、そのうちの２つのクエリ（平均で）が内部で解決された場合（分散システムの場合）、Ｎ個のタスクの場合、Ｎ＊（Ｑ−２）クエリがネットワークで実行される。しかしながら、集中システムの場合、Ｎ＊Ｑ個のクエリがネットワークで実行される。この差（２Ｎ）は、Ｎが増大するほど大きくなり、ネットワークトラフィックの差が大きくなる。一方、ロボットの数が増大した場合でも、所与のセットのタスクにおいて、ネットワークトラフィックに大きな変化はない。これは、図６ｄに描かれている。
【００４５】
更に、様々なタスクのセットと様々なネットワーク損失条件において、３５ｋｂｐｓ及び３台のロボットのシナリオについて、分散及び集中ネットワークのタスク完了時間を確認した。結果は、分散システムが集中システムよりも優れていることを示している。ネットワーク損失が増加すると、所与のタスクセットについてタスク完了時間も増加する。ネットワークが低帯域幅から高帯域幅に移行するにつれて、タスク完了時間の対応する減少が観測された。また、ロボットの全てのセットについて、タスクの完了時間の差は、少数のタスクでは大きくないが、タスクの数が増加すると、対応するタスク完了時間の差が大きくなり、これは、タスクの数が増えると、集中システムの性能が悪化することを意味する。
【００４６】
３５Ｋｂｐｓのネットワーク帯域幅についての分散システムにおける異なるネットワーク損失条件下での異なる数のタスクに対して、ロボットの異なるセット（すなわち、３、６、９）間のタスク完了時間の比較が実行された。これは、図６ｅに描かれている。他の３つの帯域幅についても同じ比較を行った。４つの帯域幅の全ての事例において、タスクの数が増加すると、タスクの完了時間も増加することが観測された。しかしながら、所与のタスクセットに対してロボットの数が増大すると、タスクの完了時間が短縮される。所与の数のタスクについて、ネットワークの損失が増加すると、タスクの完了時間も緩慢に増加する。
【００４７】
本明細書は、当業者が本発明の実施形態を実施及び利用できるように、本明細書で主題を記載している。本主題の実施形態の範囲は、請求項によって定められ、当業者であれば想起される他の修正形態を含むことができる。他のこのような修正形態は、請求項の文言と相違しない同様の要素を有する場合、又は請求項の文言と僅かな差異を有する均等な要素を含む場合には、請求項の範囲内にあるものとする。
【００４８】
本明細書における本開示の実施形態は、ロボット環境におけるロボット間の協調に関する未だ解決されていない問題に取り組んでいる。従って、本実施形態は、分散セマンティック知識ベースを提供し、ここで分散セマンティック知識ベースは、ロボット群を形成する複数のロボット間で分散される。更に、本明細書の実施形態は更に、タスクを実行する目的で情報を交換するロボットの機構を提供する。
【００４９】
本特許の保護範囲は、このようなプログラムにまで、及びこれに加えてメッセージを内部に有するコンピュータ可読手段にまで拡張され、かかるコンピュータ可読記憶手段は、プログラムがサーバ又はモバイルデバイス上で又は何れかの好適なプログラマブルデバイス上で実行されたときに、本方法の１又は２以上のステップを実装するためのプログラムコード手段を含む点に留意されたい。ハードウェアデバイスは、例えば、サーバ又はパーソナルコンピュータ又は同様のもの、もしくはこれらの組み合わせのような何れかの種類のコンピュータを含む、プログラムすることができる何れかの種類のデバイスとすることができる。デバイスはまた、例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのハードウェア手段、又は、例えば、ＡＳＩＣ及びＦＰＧＡ、又はソフトウェアモジュールが配置された少なくとも１つのマイクロプロセッサ及び少なくとも１つのメモリなどのハードウェアとソフトウェアの組み合わせとすることができる手段を含むことができる。従って、本手段は、ハードウェア手段とソフトウェア手段の両方を含むことができる。本明細書で記載される方法の実施形態は、ハードウェア及びソフトウェアにおいて実装することができる。デバイスはまた、ソフトウェア手段を含むことができる。代替として、本実施形態は、例えば、複数のＣＰＵを用いて、様々なハードウェアデバイス上で実装することができる。
【００５０】
本明細書の実施形態は、ハードウェア要素とソフトウェア要素とを含むことができる。ソフトウェアにて実装される実施形態は、限定ではないが、ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む。本明細書で記載された種々のモジュールによって実施される機能は、他のモジュール又は他のモジュールの組み合わせにおいて実装することができる。本明細書において、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによって又はこれらと接続して使用されるプログラムを包含、記憶、通信、伝搬、又は伝送することができる何らかの装置とすることができる。
【００５１】
例示されるステップは、図示の例示的な実施形態を説明するために提示され、進行中の技術開発が、特定の機能が実施される方式を変化させるであろうことは理解されたい。これらの実施例は、本明細書では限定ではなく説明の目的で提示されている。更に、説明の便宜上、本明細書では機能的構成単位の境界が任意に定義された。指定される機能及びそれらの関係が適切に行われる限り、代替の境界を定義することができる。（本明細書に記載されるものの等価物、拡張、変形、逸脱などを含む）別の代替手段は、本明細書に含まれる教示に基づいて当業者には明らかであろう。かかる代替手段は、開示される実施形態の範囲及び技術的思想の範囲内にある。更に、単語「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｃｏｎｔａｉｎｉｎｇ）」及び「含む（ｉｎｃｌｕｄｉｎｇ）」並びに他の同様の語形は、意味が等しいことが意図され、これらの単語の何れかに続く単数又は複数の項目が単数又は複数のかかる項目の網羅的なリストであることを意味せず、リストされた単数又は複数の項目のみに限定されることも意味しないという点で非限定的であることが意図される。同様に、本明細書及び添付の特許請求の範囲において、文脈が明らかに別のことを指示しない限り、単数形「１つの（ａ）」、「１つの（ａｎ）」、及び「前記（ｔｈｅ）」が複数の参照を含むことも留意しなくてはならない。
【００５２】
更に、本開示に適合する実施形態を実装する際に、１又は２以上のコンピュータ可読記憶媒体を利用することができる。コンピュータ可読記憶媒体は、プロセッサによって可読な情報又はデータを記憶することができる何れかのタイプの物理メモリを指す。従って、コンピュータ可読記憶媒体は、本明細書に記載される実施形態に適合するステップ又は段階をプロセッサ（単数又は複数）に行わせるための命令を含む、１又は２以上のプロセッサによる実行のための命令を記憶することができる。用語「コンピュータ可読媒体」は、有形の品目を含み、搬送波及び過渡信号を除く、すなわち非一時的であると理解されるべきである。実施例は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、揮発性メモリ、不揮発性メモリ、ハードドライブ、ＣＤ ＲＯＭ、ＤＶＤ、フラッシュドライブ、ディスク及びその他の既知の物理記憶媒体を含む。
【００５３】
本開示及び実施例は、単に例示的なものとみなされ、開示される実施形態の真の範囲及び精神は、添付の特許請求の範囲によって示される。
【図１】
2020184317.tif 000003
【図２】
2020184317.tif 000004
【図３】
2020184317.tif 000005
【図４】
2020184317.tif 000006
【図５ａ】
2020184317.tif 000007
【図５ｂ】
2020184317.tif 000008
【図６ａ】
2020184317.tif 000009
【図６ｂ】
2020184317.tif 000010
【図６ｃ】
2020184317.tif 000011
【図６ｄ】
2020184317.tif 000012
【図６ｅ】
2020184317.tif 000013
【外国語明細書】
2020184317000001.pdf