(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】グラフニューラルネットワークを使用した複数のロボットの調整
(51)【国際特許分類】
B25J 9/16 20060101AFI20241024BHJP
G06N 3/04 20230101ALI20241024BHJP
【FI】
B25J9/16
G06N3/04 100
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024521012
(86)(22)【出願日】2022-09-15
(85)【翻訳文提出日】2024-06-04
(86)【国際出願番号】 EP2022075656
(87)【国際公開番号】W WO2023057185
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・ライ
(72)【発明者】
【氏名】ジョナサン・カール・ショルツ
(72)【発明者】
【氏名】ホセ・エンリケ・チェン
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707JU12
3C707LS15
3C707LS20
3C707LV02
3C707LV14
3C707LW12
3C707LW15
3C707MS08
(57)【要約】
複数のロボットを制御のための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。方法のうちの1つは、環境の現在の状態を表す状態データを取得するステップと、状態データから、環境の現在の状態のグラフを表すグラフデータを生成するステップと、グラフのロボットノードの各々についてそれぞれの更新された特徴表現を含むグラフ出力を生成するために、グラフニューラルネットワークを使用してグラフデータを処理するステップと、グラフ出力に基づいて、ロボットの各々によって実行されるそれぞれの行動を選択するステップとを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行され、複数のロボットを制御して前記ロボットが環境内の複数の目標の場所に動くようにするための方法であって、以下の動作、すなわち、
前記環境の現在の状態を表す状態データを取得することと、
前記状態データから、前記環境の前記現在の状態のグラフを表すグラフデータを生成することであって、前記グラフが、複数のノードおよび複数のエッジを含み、各エッジが、前記複数のノードからのノードのそれぞれのペアを接続し、前記複数のノードが、前記ロボットの各々についてのそれぞれのロボットノード、および前記目標の場所の各々についてのそれぞれの目標ノードを含み、前記グラフデータが、前記ロボットノードの各々および前記目標ノードの各々についてそれぞれの初期特徴表現を含む、生成することと、
前記ロボットノードの各々についてそれぞれの更新された特徴表現を含むグラフ出力を生成するために、グラフニューラルネットワークを使用して前記グラフデータを処理することと、
前記グラフ出力に基づいて、前記ロボットの各々によって実行されるそれぞれの行動を選択することと
を繰り返し実行するステップを含む、方法。
【請求項2】
前記環境が、1つまたは複数の障害物を含み、前記グラフが、前記1つまたは複数の障害物の各々についてそれぞれの障害物ノードを含み、前記グラフデータが、前記障害物ノードの各々についてそれぞれの初期特徴表現を含む、請求項1に記載の方法。
【請求項3】
前記グラフが、各ロボットノードと各障害物ノードとの間のエッジを含む、請求項2に記載の方法。
【請求項4】
前記グラフが、いずれの2つの障害物ノードの間のいかなるエッジも含まない、請求項3に記載の方法。
【請求項5】
前記グラフが、前記グラフのいずれの障害物ノードといずれの目標ノードとの間のいかなるエッジも含まない、請求項3または4に記載の方法。
【請求項6】
前記グラフが、各ロボットノードとその他の各ロボットノードとの間のエッジを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記グラフが、各ロボットノードと各目標ノードとの間のエッジを含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記グラフが、いずれの2つの目標ノードの間のいかなるエッジも含まない、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記グラフデータが、前記グラフの前記エッジを表すエッジデータを含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記グラフニューラルネットワークが、1つまたは複数のグラフ層を含み、前記グラフ層の各々が、任意の所与のノードに関して、前記グラフのエッジによって前記ノードに接続されているノードの特徴表現にのみ基づいて、前記所与のノードの特徴表現を更新するように構成される、請求項9に記載の方法。
【請求項11】
前記ロボットの各々によって実行される前記それぞれの行動を選択することが、
前記グラフ出力を処理することによって前記それぞれの行動を予測することを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記ロボットの各々によって実行される前記それぞれの行動を選択することが、
計画データを生成するために、前記グラフ出力を使用して1回または複数回のプランニングの反復を実行することと、
前記計画データを使用して行動を選択することと
を含む、請求項1から10のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のコンピュータによって実行され、複数のロボットを制御して前記ロボットが環境内の複数の目標の場所に動くことを含むタスクを実行するようにするための方法であって、以下の動作、すなわち、
計画データを生成するために、前記環境の現在の状態から開始する複数のプランニングの反復を実行することであって、各プランニングの反復を実行することが、
前記現在の状態から開始して、前記環境の葉状態が到達されるまで、前記環境の状態を走査すること、
前記葉状態を特徴付ける状態データから、前記環境の前記葉状態のグラフを表すグラフデータを生成することであって、前記グラフが、複数のノードおよび複数のエッジを含み、各エッジが、前記複数のノードからのノードのそれぞれのペアを接続し、前記複数のノードが、前記ロボットの各々についてのそれぞれのロボットノード、および前記目標の場所の各々についてのそれぞれの目標ノードを含み、前記グラフデータが、前記ロボットノードの各々および前記目標ノードの各々についてそれぞれの初期特徴表現を含む、生成すること、
前記ロボットノードの各々についてそれぞれの更新された特徴表現を含むグラフ出力を生成するために、グラフニューラルネットワークを使用して前記グラフデータを処理すること、
前記グラフ出力から、前記計画データに対する更新を生成すること、ならびに
生成された前記更新を使用して前記計画データを更新することを含む、複数のプランニングの反復を実行することと、
前記計画データを実行した後、前記計画データを使用して行動を選択することと
を繰り返し実行するステップを含む、方法。
【請求項14】
前記グラフ出力から、前記計画データに対する更新を生成することが、
前記グラフ出力から前記葉状態の要約特徴を生成することと、
前記タスクを成功裏に完了するために前記葉状態にあることの予測された価値を表す価値スコアを予測するために、価値予測ニューラルネットワークを使用して前記要約特徴を処理することと
を含む、請求項13に記載の方法。
【請求項15】
前記グラフ出力から、前記計画データに対する更新を生成することが、各ロボットノードに関して、
前記環境が前記葉状態にあるときに対応するロボットノードによって実行される1セットの可能な行動の確率分布を定義する方策出力を生成するために、方策ニューラルネットワークを使用して前記ロボットノードの前記更新された特徴表現を処理することを含む、請求項13または14に記載の方法。
【請求項16】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法の前記動作を実行させる命令を記憶する1つまたは複数のストレージデバイスと
を含む、システム。
【請求項17】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法の前記動作を実行させる命令を記憶する、1つまたは複数のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月6日に出願した米国仮特許出願第63/252,799号の優先権を主張するものであり、その開示全体が、参照により本明細書に組み込まれる。
【0002】
本明細書は、ロボット工学に関し、より詳細には、複数のロボットの、ロボット的動きを計画することに関する。
【背景技術】
【0003】
ロボット工学プランニング(robotics planning)は、タスクを実行するためにロボットの物理的な動きをスケジューリングすることを指す。特定の応用は、複雑な環境内での複数のロボットの調整を必要とする。たとえば、産業用の応用においては、複数のロボットアームが、生産スループットを最大化するために、複雑な作業空間内で同時に動作し得る。複数のロボットアームの各々は、複数の指定された目標の場所のうちの1つに到達し、動作を実行するために、それぞれの運動軌跡(trajectory)に沿って動くように制御され得る。複数のロボットアームの運動経路およびスケジュールの調整は、複数のロボットアームが互いに衝突することまたは作業環境内の障害物に衝突することなく、最適な時間枠内で動作タスクを達成するために極めて重要である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第20200143239号明細書
【特許文献2】国際公開第2021/152515号
【非特許文献】
【0005】
【非特許文献1】Silverら、「Mastering the game of go without human knowledge」、Nature、550:354~359、2017年10月
【非特許文献2】Kocsisら、「Bandit based monte-carlo planning」、European conference on machine-learning、282~293ページ、Springer、2006年
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、環境内の複数のロボットの行動を調整するためにグラフニューラルネットワーク(GNN)処理を使用することに関連するテクノロジーを説明する。
【0007】
1つの革新的な態様においては、グラフニューラルネットワークを使用して、環境内で複数のロボットによって実行される行動を計画するための方法が説明される。コンピューティングシステムは、複数の時間ステップの各々においてロボットの各々によって実行される行動を生成するために方法を繰り返し実行することができる。生成されたロボットの行動は、各時間ステップにおいて環境内でそれらのロボットの動作を制御するためにロボットに伝達され得る。ロボットの行動を生成することの目的は、ロボットが互いに衝突することまたは環境内のその他の物体に衝突することなく、最適な時間枠内で指定されたタスクを達成するようにロボットを制御することを含む。例として、指定されたタスクは、ロボットの各々を複数の目標の場所のうちのそれぞれの目標の場所に動かすことを含み得る。別の例として、指定されたタスクは、フライス(milling)パターンに厳密に従うようにフライスビットを保持するロボットアームを制御するなど、複数のロボットの1つまたは複数を指定された経路で動かすことを含み得る。別の例として、指定されたタスクは、2つのワークピースを保持するように2つのロボットアームを制御し、溶接を実行するように第3のロボットアームを制御するなど、複数のロボットが協力してタスクを実行することを含み得る。
【0008】
一部の実装において、環境は、1つまたは複数のロボットが動作する物理的環境、たとえば、物理的作業セル(workcell)であることが可能である。一部のその他の実装において、環境は、物理的環境の仮想的表現、たとえば、ロボットの運動のシミュレーションが行われ得るシミュレーションされた動作環境であることが可能である。シミュレーションされた動作環境の場合、システムは、プランニングシステムによって生成された計画された行動を受信し、環境の更新された状態観測値を出力するシミュレータで、ロボットの行動をインタラクティブに計画することができる。
【0009】
プランニングプロセスは、環境の現在の状態を表す状態データを取得することから開始し得る。コンピューティングシステムは、環境の現在の状態のグラフを表すグラフデータを生成する。コンピューティングシステムは、グラフ出力を生成するために、グラフニューラルネットワークを使用してグラフデータを処理し、グラフ出力に基づいてロボットの各々によって実行されるそれぞれの行動を選択する。
【0010】
環境の現在の状態を表すグラフは、複数のノードおよび複数のエッジを含む。各エッジは、複数のノードからのノードのそれぞれのペアを接続する。複数のノードは、ロボットの各々についてそれぞれのロボットノードと、目標の場所の各々についてそれぞれの目標ノードとを含む。グラフデータは、ロボットノードの各々および目標ノードの各々についてそれぞれの初期特徴表現を含む。例として、各ロボットノードの初期特徴表現は、工具チップ(tooltip)の1つまたは複数の座標、関節の各々の座標、および現在の関節角度を含み得る。各目標ノードの初期特徴表現は、目標の場所の座標を含み得る。
【0011】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の互換性情報をさらに含み得る。目標ノードの互換性情報は、たとえば、対応する目標に対して動作するための互換性のあるロボットのサブセットを特定し得る。たとえば、複数のロボットは、特定の目標に対して動作するための互換性があるまたは互換性がない様々な工具チップを用いて構成されることが可能であり、特定の目標に対応する目標ノードの互換性情報は、どのロボットが互換性があるのかを示すことができる。
【0012】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の向きの制約に関する情報をさらに含み得る。たとえば、特定の目標に対して動作する(たとえば、目標の場所に対してスポット溶接を実行する)ために、ロボットアームは、特定の向きにまたは特定の範囲の向きに制約される必要がある場合がある。特定の目標に対応する目標ノードの向き制約情報は、制約された向きまたは制約された向きの範囲を示すことができる。
【0013】
一部の実装において、グラフは、環境内に存在する1つまたは複数の障害物に対応する1つまたは複数の障害物ノードをさらに含み得る。障害物ノードの各々についてそれぞれの初期特徴表現が、グラフデータに含まれる。
【0014】
グラフの接続トポロジーが、ロボットノード、目標ノード、および障害物ノードの間の相互作用の関係を特徴付けるために使用され得る。たとえば、各ロボットノードは、別のロボットとのロボットの相互作用、および目標の物体または障害物とのロボットの相互作用を示すために、その他のロボットノードの各々、目標ノードの各々、および障害物ノードの各々にエッジで接続され得る。一部の実装においては、目標ノードまたは障害物ノードのいずれも、いかなるその他の目標ノードまたは障害物ノードにも接続されない。この構成は、目標の物体および障害物の間に相互作用がないことを示し、グラフ処理を単純化する。
【0015】
方法の特定の実装においては、環境の状態のグラフ表現のGNN処理が、インタラクティブなプランニングプロセスに組み込まれる。特に、コンピューティングシステムは、計画データを生成するために、環境の現在の状態から開始する複数のプランニングの反復を実行する。各プランニングの反復は、現在の状態から開始して、環境の葉状態(leaf state)が到達されるまで、環境の状態を走査することを含む。次に、葉状態を特徴付ける状態データから、コンピューティングシステムは、環境の葉状態のグラフを表すグラフデータを生成し、ロボットノードの各々の更新された特徴表現を含むグラフ出力を生成するために、GNNを使用してグラフデータを処理する。次に、コンピューティングシステムは、将来の反復のために、更新された特徴表現に従って計画データを更新する。最後に、プランニングの反復の後、コンピューティングシステムは、計画データを使用してロボットの行動を選択する。
【0016】
プランニングの反復の実装は、たとえば、現在の状態を表す根ノードから開始し、葉ノードが到達されるまで状態木を走査する、環境の状態を表すノードを有する状態木(state tree)の先読み探索(look-ahead search)を含み得る。このプロセスは、木の次のノードを特定するために、エッジの行動スコアに基づいて、第1のノードに接続する複数のエッジのうちの1つを選択することを含み得る。行動スコアは、任意選択で、行動の事前確率および/またはタスクを成功裏に完了するために状態にあることの予測された価値を表す価値スコアに依存する量によって調整され得る。行動の確率および価値スコアは、GNNによって出力された更新された特徴表現に基づいて生成され得る。
【0017】
本明細書に記載の主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。ロボットの行動を計画するためにグラフ表現およびグラフニューラルネットワーク処理を使用することは、精度、効率、および複雑な環境で並行して働く多数のロボットへのスケールアップの実現性を高める。
【0018】
ロボット工学プランニングは、従来、特定のタスクを達成するためにロボットコンポーネントがどのように動くべきかを指示するために、膨大な量の手作業によるプログラミングを必要としていた。手作業でのプログラミングは、退屈で時間がかかり、誤りが発生しやすい。さらに、1つの作業環境のために手動で作成されたロボットの行動制御スケジュールは、概して、その他の作業環境または異なるタスクに使用され得ない。機械学習技術は、ロボット制御の適応性の向上における大きな利点を示した。しかし、溶接、組み立て、および物体の操作においてよく見られる構成である、多くのタスクを持つ、比較的小さなセル内で密接に協力する複数のロボット(たとえば、ロボットアーム)を含む応用で機械学習技術を使用することには、大きな課題がある。そのような高密度の運動プランニングの応用において、ロボットは、互いに近く、作業ボリューム(work volume)が大きく重なっており、タスクは、非常に多く、規定されたアームの割り振りまたは完了順序がない。運動プランニングは、衝突を避けるために同時に動くその他のロボットを考慮に入れながら行わなければならない。さらに、目標へのロボットアームの最適な割り振りおよびスケジューリングは、事前に知られておらず、衝突回避と併せて決定されなければならない。これらの特徴は、ほとんどの通常のアルゴリズムの時間計算量(time complexity)がアームの数および目標の数において指数関数的であるので、既存のシステムおよび手法のスケーラビリティを大きな課題にする。結果として、実世界の応用において、高密度の運動プランニング(すなわち、密接に協力する複数のロボットの運動プランニング)は、通常、低速で繰り返しの多いプロセスで手作業で実行され、タスクまたは環境へのすべての変更は、時間のかかる再プランニングを必要とする。
【0019】
強化学習における方策および価値関数を表すために多層パーセプトロン(MLP)ネットワークを使用する実装は、モデルがシーンの構造を利用せず、(衝突回避のために)ロボット間およびロボット-ロボットのペア間の、ならびに(運動プランニングのために)ロボット-目標のペア間の学習された知識を再利用しないので、通常の方法と同様に指数関数的なスケーリングに悩まされる。
【0020】
対照的に、環境の状態のグラフ表現は、シーンの構造をネットワークアーキテクチャに符号化して、重み共有(weight-sharing)による知識の再利用を可能にし、構造化されたデータ空間における複数のロボット間およびロボットと環境内の物体との間の複雑な相互作用関係の効率的な表現を提供することができる。GNN処理は、環境の状態に応じて実行される計画された行動を生成するために、各ロボットノードが、環境内のその他の物体とのその相互作用についての情報を含む埋め込みを効率的に学習することを可能にする。そのような手法の利点は、非常に大きい/複雑な状態空間において効果的に学習する能力を含む。具体的には、これは、処理能力および/または処理時間の量を同時に大幅に削減しながら、複数のロボットの動きのプランニングの著しく改善された性能を達成する機械学習システムへとつながる。処理能力の削減は、実装において、電力消費の大幅な削減、またはプランニング動作を実行するために必要とされる専門ハードウェアの量につながり得る。処理時間の削減は、複雑な作業環境における多数のロボットのリアルタイム制御を可能にする。さらに、環境の状態のグラフ表現のGNN処理を先読み探索と併せることによって、複数のロボットによって複数のタスクを完了するのにかかる時間を大幅に削減するロボットの行動を生成するなど、マルチロボットのプランニングおよび調整の質が、大幅に高められ得る。
【0021】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0022】
【
図1】例示的なマルチロボット制御システムを示す図である。
【
図2A】目標の場所および障害物と相互作用する複数のロボットを含む環境のグラフ表現の例を示す図である。
【
図2B】ロボットノードの更新された特徴表現を生成するために、ロボットノードのグラフデータを処理することを示す図である。
【
図3】ロボットの行動のプランニングのために価値および方策の予測を生成するためにグラフデータを処理することを示す図である。
【
図4A】マルチロボットプランニングおよび制御システムの例を示す図である。
【
図4B】複数のロボットに関する計画データを生成するための反復的なプランニングプロセスの例のデータフローを示す図である。
【
図5】状態データからロボットの行動を生成するための例示的なプロセスの流れ図である。
【
図6】プランニングの反復で状態データからロボットの行動を生成するための別の例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0023】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0024】
本明細書は、概して、環境内の複数のロボットの行動を調整するためにグラフニューラルネットワーク(GNN)処理を使用するシステムを説明する。行動プランニングの目的は、すべてのロボットが、互いに衝突することまたは環境内のその他の物体に衝突することなく、最適な時間枠内で指定されたタスクを実行するための行動計画およびスケジュールを生成することである。
【0025】
本明細書において、ロボットは、ロボットを所望の位置、姿勢、またはそれら両方に動かすためにコマンド信号によって制御され得る1つまたは複数の可動コンポーネントを有する機械を指す。ロボットの一例は、指定された運動経路で目標の場所に到達するように制御され得る遠隔操作された運搬手段である。ロボットの別の例は、基本位置と、1つまたは複数の関節と、任意選択で、工具チップとを有するロボットアームである。関節のうちの1つまたは複数は、運動経路を持つロボットアームの姿勢およびチップ位置を制御するために関節角度を変化させるモータ駆動アクチュエータを含み得る。ロボットアームは、関節の数および/または工具チップの種類に応じて、多くの自由度を持ち得る。
【0026】
本明細書において、タスクは、ロボットによって実行される動作である。複数の遠隔操作された運搬手段のタスクの例は、複数の目標の場所のうちのそれぞれの目標の場所まで運搬手段の各々を運転することである。複数のロボットアームのタスクの別の例は、各ロボットアームがそれぞれの目標の物体に達し、任意選択で、目標の物体に対して動作を実行することである。動作は、いくつか例を挙げるとすれば、目標の物体のピックアップ、移動、部品の位置決め(part positioning)、溶接、表面研磨を含み得る。
【0027】
本明細書において、ロボットのために生成された行動は、ロボットの制御可能な自由度の一部またはすべての値を含むデータ構造である。ロボットが生成された行動を受信するとき、生成された行動は、ロボットの動作を制御する。たとえば、ロボットアームに送信された更新された関節位置および/または関節角度を含む生成された行動は、行動内のパラメータ値によって指定された動きを行うようにロボットアームを制御することができる。別の例として、生成された行動は、ロボットアームの関節の各々にかけられるそれぞれのトルクを含み得る。
【0028】
図1は、例示的なマルチロボット制御システム110を示す。
【0029】
マルチロボット制御システム110は、以下で説明されるシステム、コンポーネント、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【0030】
マルチロボット制御システム110は、複数の目標の場所106a~106nを含む環境102内で複数のロボット104a~104nを制御する。目標の場所は、ロボットのタスクに関連する場所であり、たとえば、タスクに応じてロボットのうちの1つまたは複数によって到達されるように意図された場所であることが可能である。環境102は、1つまたは複数の障害物108をさらに含み得る。障害物108は、システム110によって位置が制御されない環境内の任意の物体、すなわち、ロボット104a~104n以外の環境内の任意の物体であり得る。
【0031】
一部の実装において、環境102は、1つまたは複数のロボットが動作する物理的環境、たとえば、物理的作業セルであることが可能である。一部のその他の実装において、環境102は、物理的環境の仮想的表現、たとえば、ロボットの運動のシミュレーションが行われ得るシミュレーションされた動作環境であることが可能である。
【0032】
複数の時間ステップの各々において、マルチロボット制御システム110は、環境の状態データを収集し、時間ステップにおけるロボットの各々についてそれぞれの行動を選択することによって、ロボット104a~104nを制御する。
【0033】
マルチロボット制御システム110が特定の時間ステップにおける行動を選択した後、システムは、状態データを更新し、更新された状態データに従って報酬信号を取得する。報酬信号は、ロボットを制御することによりシステム110によって達成される目的に関連付けられる。たとえば、目的は、ロボットアームが互いに衝突することまたは環境内の物体のうちの1つに衝突することなく、最短の時間枠内で目標の場所のうちのそれぞれの目標の場所に到達するようにロボットアームの各々を動かすというタスクを達成することであり得る。したがって、システム110は、タスクが達成されるとき、報酬信号に大きな正の値を割り振り、エピソードを終了し、衝突が起こるとき、報酬信号に大きな負の値を割り振り、エピソードを終了し、時間経過を考慮し、それぞれの追加の時間ステップに小さな負の値または割引係数を割り振ることができる。別の例において、システムは、たとえば、ロボットが目標に近づいていっている各時間ステップに関して報酬信号に正の値を割り振り、ロボットが目標から遠ざかっていっている各時間ステップに関して報酬信号に負の値を割り振ることによって、成形された(shaped)報酬信号を使用することができる。成形された報酬信号を使用することによって、システムは、疎な報酬信号に関連する課題を克服することができる。
【0034】
1つの特定の例においては、報酬を計算するために、システムは、まず、状態のスコアを各目標のスコアの平均として計算する。目標スコアは、解決された(たとえば、特定の向きでロボット工具チップによって到達された)目標に関しては1に設定され、または解決されなかった目標に関しては最大0.5までの成形された報酬に設定される。目標スコアは、距離スコアと向きスコアとの組合せであることが可能である。スコアは、以下のように計算され得る。
【数1】
【0035】
2つのスコアの組合せは、エンドエフェクタが目標の近くに来たときにのみ向きスコアが考慮に入れられることを保証する。各時間ステップにおける報酬は、その状態と前のステップとの間のスコアの差として定義されることが可能であり、滑らかさを促進するために関節の空間加速(joint space acceleration)に対して小さなペナルティがある。
【0036】
システム110は、複数の時間ステップの各々における行動のセクション(section)を手引きするために、期待される累積的な将来の報酬を使用することができる。特定の時間ステップに関する累積的な将来の報酬は、たとえば、時間ステップにおける行動がロボットによって実行された後に始まる、受け取られる将来の報酬の時間割引された合計であることが可能である。特定の時間ステップにおける所与の行動に関する「期待される」累積的な将来の報酬は、所与の行動が特定の時間ステップにおいて実行された場合に受け取られるであろう累積的な将来の報酬の、システム110によって生成された推定値である。
【0037】
マルチロボット制御システム110は、複数の時間ステップの各々において、環境102の状態を特徴付ける状態データ122を収集する状態データ収集エンジン112を含む。環境102が物理的環境である場合、状態データ122は、環境102内のカメラや位置センサーなどのセンサーによって生成され得る。状態データ収集エンジン112は、状態データ122をセンサーから直接受信するか、またはセンサーデータを処理して状態データを生成することができる。状態データは、たとえば、ロボット、目標の場所、および障害物の各々の位置座標を含む、ロボット、目標の場所、および障害物についての情報を含む。また、ロボット情報は、各ロボットの工具チップの座標、関節の座標、およびロボットの各関節の関節角度、ならびにロボットまたはロボットのコンポーネントの速度および加速度などの運動パラメータを含み得る。環境がシミュレーションされた環境である場合、状態データ122は、プランニングシステムによって生成された行動を受信し、環境の更新された状態観測値を出力するシミュレータによって生成され得る。
【0038】
マルチロボット制御システム110は、複数の時間ステップの各々において、状態データからグラフを表すグラフデータ124を生成するグラフデータ生成エンジン114をさらに含む。グラフは、複数のノードおよび複数のエッジを含み、各エッジは、グラフ内のノードのそれぞれのペアを接続している。
【0039】
グラフ内のノードは、ロボット104a~104nを表すロボットノード、目標の場所106a~106nを表す目標ノード、および障害物108を表す障害物ノードとして分類され得る。
【0040】
グラフデータ生成エンジン114は、ロボット104a~104nをロボットノードにマッピングし、目標の場所106a~106nを目標ノードにマッピングし、障害物108を障害物ノードにマッピングする。ロボットノードのマッピングおよび目標ノードのマッピングは、1対1のマッピングであることが可能であり、すなわち、グラフデータ生成エンジン114は、各ロボットを対応するロボットノードにマッピングし、各目標の場所を対応する目標ノードにマッピングする。
【0041】
障害物ノードのマッピングも、1対1のマッピングであることが可能であり、すなわち、グラフデータ生成エンジン114は、各障害物を対応する物体ノードにマッピングする。代替的に、グラフデータ生成エンジン114は、自明でないサイズおよび/または形状を有する障害物の幾何学的分解(geometrical decomposition)を実行し、障害物を複数の場所に対応する複数の障害物ノードにマッピングし得る。
【0042】
ロボット、目標の場所、および障害物をグラフ200のそれぞれのノードにマッピングする際に、グラフデータ生成エンジン114は、ロボット、目標の場所、および障害物についての状態データを、対応するノードの初期特徴ベクトルに符号化する。たとえば、ロボットノードに関連する初期特徴ベクトルは、対応するロボットの位置座標、関節位置座標、および関節角度を含み得る。1つの特定の例において、ロボットノード(たとえば、ロボットアームを表すノード)の特徴ベクトルは、関節構成、関節速度、基本位置および向き、工具中心点(tool center point)TCP位置および向き、ならびに/または休止ステータス(dwelling status)のうちの1つまたは複数を指定する複数のパラメータの連結であることが可能である。
【0043】
目標ノードまたは障害物ノードに関連する初期特徴ベクトルは、対応する目標位置または障害物の位置座標を含み得る。初期特徴ベクトルは、グラフデータに含まれる。
【0044】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の互換性情報をさらに含み得る。目標ノードの互換性情報は、たとえば、対応する目標に対して動作するための互換性のあるロボットのサブセットを特定し得る。たとえば、複数のロボットは、特定の目標に対して動作するための互換性があるまたは互換性がない様々な工具チップを用いて構成されることが可能であり、特定の目標に対応する目標ノードの互換性情報は、どのロボットが互換性があるのかを示すことができる。
【0045】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の向きの制約に関する情報をさらに含み得る。たとえば、特定の目標に対して動作する(たとえば、目標の場所に対してスポット溶接を実行する)ために、ロボットアームは、特定の向きにまたは特定の範囲の向きに制約される必要がある場合がある。特定の目標に対応する目標ノードの向き制約情報は、制約された向きまたは制約された向きの範囲を示すことができる。1つの特定の例において、目標ノードの特徴ベクトルは、目標の位置および向き、ならびに目標のステータス(たとえば、保留中は0、進行中(dwelling progress)は0~1、完了は1)を指定する複数のパラメータの連結であることが可能である。
【0046】
グラフのエッジは、ロボット、目標の場所、および障害物の間の相互作用の関係を特徴付けるために使用される。グラフデータ生成エンジン114は、エッジについての情報を隣接行列または隣接リストに符号化することができ、その隣接行列または隣接リストも、グラフデータに含まれる。一部の実装において、グラフデータは、各エッジのエッジ特徴を示す初期特徴ベクトルをさらに含む。特定のエッジのエッジ特徴は、特定のエッジによって接続された2つのノードの距離、相対的な位置、および/または相対的な向きを符号化し得る。1つの特定の例において、ロボット-ロボット間エッジの特徴ベクトルは、TCP同士の相対的な位置および向き、ロボットのペアの距離スコア、ならびにロボットのペアの向きスコアのうちの1つまたは複数を指定する複数のパラメータの連結であることが可能である。別の例において、ロボット-目標間エッジの特徴ベクトルは、TCPと目標との相対的な位置および向きを指定する複数のパラメータの連結であることが可能である。
【0047】
各ロボットノードは、ロボットのペアの間の潜在的な相互作用がグラフによって特徴付けられ得るように、その他のロボットノードの各々にエッジで接続される。2つのロボットノードを接続する各エッジは、ロボットノート間の潜在的な衝突および通信などの相互作用を示し得る。たとえば、2つのロボットノードを接続する特定のエッジは、ロボットノードのうちのどちらのロボットノードがどの目標の場所に到達しつつあるかを示すなど、2つのロボットノードを調整するための情報を示し得る。各ロボットノードは、対応する目標とのロボットの相互作用、たとえば、目標への接近または到達を特徴付けるために、目標ノードの各々にエッジでさらに接続される。各ロボットノードは、対応する障害物とのロボットの相互作用、たとえば、障害物への接近または衝突を特徴付けるために、障害物ノードの各々にエッジでさらに接続される。
【0048】
一部の実装においては、目標ノードまたは障害物ノードのいずれも、いかなるその他の目標ノードまたは障害物ノードにも接続されない。グラフに目標ノード-目標ノード間接続、障害物ノード-障害物ノード間接続、および目標ノード-障害物ノード間接続がないことは、目標の場所および障害物の間に相互作用がないことを示し、グラフを単純化する。
【0049】
グラフデータが生成された後、マルチロボット制御システム110は、グラフニューラルネットワーク116を使用してグラフデータ124を処理して、グラフ出力126を生成する。GNNは、ロボットノード、目標ノード、および障害物ノードの特徴表現に対して動作する1つまたは複数のメッセージパッシング層を含み得る。グラフ出力は、複数のロボットノードの更新されたノード特徴と、任意選択で、目標ノードおよび障害物ノードの更新された特徴表現とを含み得る。一部の実装において、グラフ出力は、エッジの更新された特徴表現をさらに含む。GNN116を使用してグラフデータ124を処理する際、システム110は、ロボットノード、目標ノード、および目標ノードの潜在的な相互作用の関係、ならびにノードの初期特徴を、グラフ出力126のロボットノードの更新されたノード特徴に効率的に埋め込むことができる。
【0050】
マルチロボット制御システム110は、複数の時間ステップの各々において、グラフ出力126を使用してロボット104a~104nによって実行されるべき行動128a~128nを生成するロボット行動生成エンジン118をさらに含む。
【0051】
より詳細には、一部の実装において、ロボット行動生成エンジン118は、行動デコーダニューラルネットワーク、たとえば、対応するロボットによって実行されるべき行動の選択を出力する全結合ニューラルネットワークを使用してそれぞれの更新されたノード特徴を処理することによって行動を生成する。
【0052】
一部のその他の実装において、グラフ出力126から行動128a~128nを直接予測する代わりに、ロボット行動生成エンジン118は、計画データを生成するために複数回のプランニングの反復を実行し、計画データに従って行動128a~128nを生成し得る。たとえば、各プランニングの反復において、ロボット行動生成エンジン118は、現在の状態から始まって環境の葉状態(leaf state)が到達されるまで環境の状態を走査し、葉状態における状態データを処理して更新を生成し、生成された更新を使用して計画データを更新することができる。プランニングの相互作用は、ロボット行動生成エンジン118が先読み探索を実行することを可能にし、それが、複数のロボットを調整するためのシステムの性能を大幅に向上させることができる。
【0053】
マルチロボット制御システム110は、グラフ出力126および/または生成された行動128a~128nに関連する期待される収益に基づいて、GNN116およびロボット行動生成エンジン118によって使用されるニューラルネットワークのパラメータを更新するために、ニューラルネットワークの訓練をさらに実行することができる。
【0054】
図2Aは、2つの目標の場所および障害物と相互作用する2つのロボットを含む環境を表すグラフ200の例を示す。グラフ200は、第1のロボットを表すロボットノード210a、第2のロボットを表すロボットノード210b、第1の目標の場所を表す目標ノード220a、第2の目標の場所を表す目標ノード220b、および障害物を表す障害物ノード230aを含む。
【0055】
グラフ200は、エッジ#1~#8をさらに含む。これらのエッジは、GNN処理におけるメッセージパッシングの方向を示すために矢印の方向で示される。エッジ#1および#2は、互いにメッセージを受け渡す2つのロボットノード210aおよび210bを接続する。エッジ#3および#4は、目標ノード220aをロボットノード210aおよび210bにそれぞれ接続する。目標ノード220aは、ロボットノード210aおよび210bの各々にメッセージを渡すが、もう一方の目標ノード220bまたは障害物ノード230aにはメッセージを渡さない。同様に、エッジ#5および#6は、目標ノード220bをロボットノード210aおよび210bにそれぞれ接続する。目標ノード220bは、ロボットノード210aおよび210bの各々にメッセージを渡すが、もう一方の目標ノード220aまたは障害物ノード230aにはメッセージを渡さない。エッジ#7および#8は、障害物ノード230aをロボットノード210aおよび210bにそれぞれ接続する。障害物ノード230aは、ロボットノード210aおよび210bの各々にメッセージを渡すが、目標ノード220aおよび220bのどちらにもメッセージを渡さない。
【0056】
図2Aに示されるように、グラフ200において、各ロボットノードは、エッジで他方のロボットノードの各々に接続され、他方のロボットノードの各々からメッセージを受け取り、その結果、ロボットのペアの間の潜在的な相互作用が、GNN処理によって、すなわち、GNNによって実行されるメッセージパッシングによって特徴付けられ得る。各ロボットノードは、対応する目標の場所とのロボットの相互作用、たとえば、目標の場所への接近または到達を特徴付けるために、エッジで目標ノードの各々にさらに接続され、目標ノードの各々からメッセージを受け取る。各ロボットノードは、対応する障害物とのロボットの相互作用、たとえば、障害物への接近または衝突を特徴付けるために、エッジで障害物ノードの各々にさらに接続され、障害物ノードの各々からメッセージを受け取る。
【0057】
対照的に、目標ノードまたは障害物ノードのいずれも、いかなるその他の目標ノードまたは障害物ノードにも接続されない。さらに、エッジの矢印の方向によって示されるように、目標ノードまたは障害物ノードのいずれも、いかなるその他のノードからの入力も受け取らない。グラフに目標ノード-目標ノード間接続、障害物ノード-障害物ノード間接続、および目標ノード-障害物ノード間接続がないことは、目標の場所および障害物の間に相互作用がないことを示し、GNN処理を単純化する。
【0058】
図2Aのグラフは、説明のみを目的としている。概して、マルチロボット制御システムは、より多数の障害物、より多数の目標の場所、またはそれら両方を含む複雑な環境内で動作するより多数のロボットを有するロボット制御の応用のために、
図2Aに示されているよりも大きなグラフを生成し、処理することができる。
【0059】
図2Bは、グラフ200のグラフデータのGNN処理を示す図である。様々なアーキテクチャが、GNNのために使用され得る。例として、
図2Bは、相互作用ネットワークアーキテクチャ(interaction network architecture)を持つGNNを使用するプロセスを示す。
【0060】
図2Bに示されるように、グラフデータは、グラフ200の2つのロボットノード210aおよび210b、2つの目標ノード220aおよび220b、ならびに1つの障害物ノード230aのノード特徴を含む。ロボットノードの各々に関して、その他のノードから情報を収集するためにメッセージパッシングが実行される。ロボットノードAに関して、ロボットノードB、目標ノードA、目標ノードB、および障害物ノードAのノード特徴が、(矢印付きの太線で示されるように)収集され、関係関数(relation function)250を使用して処理され、更新された埋め込み260を形成するために集約される。関係関数250の例は、学習可能な重みを持つ多層パーセプトロンまたはアテンション層を含む。そのとき、システム110は、ロボットノードAの現在の特徴265および更新された埋め込み260に基づいて、ロボットノードAの更新された特徴270を生成するための更新を実行する。
【0061】
システム110は、すべてのロボットノードに関してメッセージパッシングプロセスを実行する。任意選択で、システム110は、追加のメッセージパッシング層を使用してメッセージパッシングを複数回実行する。各メッセージパッシング層は、訓練中に学習されるネットワークパラメータを含む。
【0062】
GNNは、メッセージパッシングニューラルネットワーク(MPNN)、非局所ニューラルネットワーク(NLNN: non-local neural network)、CommNet、Relation Networksなどの任意の適切なネットワークアーキテクチャを採用することができる。異なる種類のアーキテクチャがGNNのために使用され得るが、任意の所与のノードに関して、各メッセージパッシング層において、システム110は、グラフのエッジによってノードに接続されているノードの特徴表現にのみ基づいて、ノードの特徴表現を更新する。さらに、
図2Aおよび
図2Bによって示されたような特定の実装においては、ロボットノードのみが、その他のロボットノード、目標ノード、および障害物ノードからの入力を使用して、メッセージパッシング層において更新される。グラフ200のエッジの矢印の方向によって示されるように、目標ノードまたは障害物ノードのいずれも、いかなるその他のノードからの入力も受け取らない。
【0063】
図3は、グラフデータを処理して、方策および価値の予測を生成することを示す図である。グラフデータ310は、ロボットノード、目標ノード、および障害物ノードの特徴表現を含み得る。GNN320は、ノード間の1または複数ラウンドのメッセージパッシングを実行し、グラフ出力330を生成する。グラフ出力330は、更新されたロボットノード特徴表現330a~330nを含み、任意選択で、目標ノードおよび障害物ノードの更新された特徴表現(
図2Bに図示せず)をさらに含む。
【0064】
システム110の行動生成エンジン118は、さらに、複数のロボットの複数の方策345a~345nを含む予測された方策出力を生成するために、方策予測ニューラルネットワーク340、たとえば、多層パーセプトロンまたはリカレントニューラルネットワークを使用してグラフ出力330を処理する。方策345a~345nの各々は、対応するロボットによって実行される可能な行動の確率分布を定義し得る。たとえば、方策は、環境と相互作用するためにロボットによって実行され得る可能な行動のセット内の各行動のそれぞれの行動確率を含み得る。別の例において、方策は、可能な行動のセットの分布のパラメータを含み得る。システム110は、最も高い確率を用いて、または確率分布からサンプリングすることによって行動を選択することができる。
【0065】
行動生成エンジン118は、さらに、グラフ出力330から要約特徴(summary feature)335を生成することができ、価値スコア355を予測するために、価値予測ニューラルネットワーク350、たとえば、多層パーセプトロンまたはリカレントニューラルネットワークを使用して要約特徴335を処理する。たとえば、行動生成エンジン118は、要約特徴を生成するために、ロボットノードの更新された特徴を、たとえば、平均するか、合計するか、または多層パーセプトロンを使用して処理することによって組み合わせることができる。価値スコア355は、ロボットが選択された行動に従って目標の場所および障害物と相互作用した結果としての、期待される収益、すなわち、期待される累積的な将来の報酬を定義する。
【0066】
一部の実装において、行動生成エンジン118は、予測された方策345a~345nを直接使用して、現在の状態データに基づいて、対応するロボットによって実行される可能な行動のセットから最適な行動を特定することができる。たとえば、方策は、最適な行動において対応するロボットの1つまたは複数の関節に適用される関節速度またはトルクを特定し得る。1つの特定の例において、特定された最適な行動は、所与の時間ステップにおける(たとえば、各次元で[-1,1]の範囲を持つ)正規化された関節速度を指定し得る。目標に接近するときにより細かい制御を可能にするために分解能を上げて0により近づけるために、行動生成エンジン118は、正規化された関節速度を離散化し、それらを、
【数2】
のように、ロボットによって許容される全関節速度範囲に指数関数的にマッピングすることができ、式中、xは、生の出力であり、q
maxは、最大関節速度であり、c=1.0は、チューニング可能なパラメータである。
【0067】
これらの実装において、システム110は、さらに、強化学習を通じてネットワークを訓練することによって、方策予測ネットワーク340、グラフニューラルネットワーク320のパラメータと、使用されるときには、価値予測ネットワーク350のパラメータとを学習することができる。価値予測ネットワーク350の出力は、方策予測ネットワーク340およびグラフニューラルネットワークの訓練を改善するためにのみ使用され、行動を選択するために直接使用されないので、訓練後、システム110は、価値予測ネットワーク350を破棄することができる。
【0068】
システム110は、任意の適切な強化学習技術、たとえば、アクタークリティック技術、方策勾配に基づく技術などを使用して、ネットワーク340および350を訓練することができる。一部の実装において、システムは、再生メモリ(replay memory)に記憶された最近の経験(すなわち、以前の時間ステップの観測値と、行動と、任意選択で、報酬とを含む軌跡)からネットワークを訓練することができる。概して、軌跡は、モデルの訓練に使用するために、環境または環境の別のインスタンスとのロボットの相互作用の結果として生成された経験情報から導出され得る。各軌跡は、環境とのエージェントの相互作用についての情報を表す。
【0069】
図4Aは、マルチロボットプランニングおよび制御システム400の例を示す。
図1に示されたマルチロボットおよび制御システム110と比較すると、システム400は、GNN処理をプランニングプロセスと合併する。特に、システム400は、グラフデータ生成エンジン422、グラフニューラルネットワーク424、予測エンジン426、および行動サンプリングエンジン428を含むロボット行動プランニングエンジン420を含む。システムは、状態データ収集エンジン、ロボット行動選択エンジン440、および訓練エンジン430をさらに含む。
【0070】
図1に示されたシステム110と同様に、プランニングおよび制御システム400は、複数の目標の場所406a~406nを含む環境402内で複数のロボット404a~404nを制御する。目標の場所は、ロボットのタスクに関連する場所であり、たとえば、タスクに応じてロボットのうちの1つまたは複数によって到達されるように意図された場所であることが可能である。環境402は、1つまたは複数の障害物408をさらに含み得る。
【0071】
複数の時間ステップの各々において、プランニングおよび制御システム400は、ロボット404a~404nによってそれぞれ実行される行動442a~442nを選択する。時間ステップにおける環境402の状態は、前の時間ステップにおける環境の状態および前の時間ステップにおいてロボットによって実行された行動に依存する。システム400の状態データ収集エンジン410は、環境402の現在の状態を特徴付ける現在の観測値409を受け取り、現在の観測値409に基づいて状態データ412を生成する。状態データ収集エンジン410は、さらに、現在の観測値409に基づいて報酬信号414を受け取ることができる。所与の時間ステップの報酬信号414は、ロボットが目的を達成することに向かう進捗を示す。
【0072】
ロボット行動プランニングエンジン420は、計画データ429を生成するために複数回のプランニングの反復を実行する。計画データ429は、環境が現在の状態にあるときに、ロボットが環境402において1セットの可能な行動の各々を実行するそれぞれの価値を示すデータを含み得る。
【0073】
特に、プランニングエンジン420は、複数回の反復を実行し、各反復の結果を使用して計画データ429を更新する。
【0074】
各プランニングの反復において、ロボット行動プランニングエンジン420は、現在の観測値409によって表される状態から出発して、新しい予測された将来の状態に環境402を進展させる行動のシーケンスを生成する。計画データ429は、システム400が、環境の現在の状態から出発して、環境の可能な将来の状態を考慮して、現在の観測値409に応答してロボット404a~404nの各々によって実行される実際の行動を効果的に選択することを可能にする。
【0075】
プランニングエンジン420は、1セットの可能な行動のそれぞれの価値を示すデータによって手引きされる先読み探索を実行することによって、計画データ429を生成することができる。先読み探索は、木探索、たとえば、モンテカルロ木探索であることが可能であり、状態木が、環境402の状態を表すノードと、木のノードを接続する有向エッジとを含む。木の第1のノードから第2のノードへの出ていくエッジは、第1の状態を特徴付ける観測値に応答して実行され、環境が第2の状態に遷移する結果となった行動を表す。
【0076】
特に、各プランニングの反復において、エンジン420は、現在の状態を表す根ノードから出発して、状態木の葉ノード、すなわち、状態木の出ていくエッジを持たないノードに到達するまで、状態木を走査する。それから、エンジン420は、葉ノードを展開し、展開の結果および走査の結果を使用して、根ノードの価値の推定値を含め、走査されたノードの統計を更新する。木探索プロセスは、
図4Bおよび付随する説明によってさらに説明される。概して、プランニングエンジン420は、グラフデータ生成エンジン422と、グラフニューラルネットワーク424と、遷移モデル425と、価値および/または方策予測エンジン426と、任意選択で、行動サンプリングエンジン428とを含む。プランニングエンジン420は、行動に関する報酬を予測するための報酬予測モデルを含み得る。
【0077】
図1の114と同様に、グラフデータ生成エンジン422は、状態データ412をグラフにマッピングするグラフデータを生成する。グラフは、ロボットと、目標の場所と、任意選択で、目標の物体とを表す複数のノード、およびノードを接続する複数のエッジを含む。特に、グラフデータ生成エンジン422は、グラフにおいて、ロボット404a~404nをロボットノードにマッピングし、目標の場所406a~406nを目標ノードにマッピングし、任意選択で、障害物408を障害物ノードにマッピングする。
【0078】
遷移モデル425は、探索木の第1のノードから第2のノードへのそれぞれの出ていくエッジに関して、第1のノードによって表される現在の状態および取られた行動に基づいて、環境が遷移する第2のノードの次の状態を生成する。遷移モデル425は、GNNとして実装され得る。
【0079】
特定の実装において、遷移モデル425の入力および出力は、環境観測値の「実状態(real state)」データ空間内にある。すなわち、遷移モデル425は、たとえば、ロボットの関節位置および角度、目標の場所、ならびに障害物の位置を含む、環境観測値の物理的に意味のあるパラメータを示すデータに対して動作する。
【0080】
一部の実装において、遷移モデル425は、環境の状態に対応する「隠れ状態(hidden state)」データに対して動作し得る。すなわち、遷移モデル425の入力および出力は、環境観測値のより低次元の表現である。たとえば、遷移モデル425の入力は、観測値の埋め込み(すなわち、より低次元の表現)を計算するグラフニューラルネットワーク424によって出力されたデータを含み得る。遷移モデル425の出力は、入力と同じデータ空間、すなわち、グラフニューラルネットワーク424によって出力されたデータと同じデータ空間内にあることが可能である。
【0081】
プランニングエンジンは、GNN424を使用して、探索木の葉ノードにおける状態表現に対応するグラフデータを処理することができ、葉ノードの状態表現の埋め込みを用いてグラフ出力を生成する。遷移モデル425が「実状態」データ空間上で動作するとき、システム400は、グラフデータ生成エンジン422を使用して、遷移モデル425のGNNの入力として、葉ノードの状態をグラフデータ表現にマッピングすることができる。代替的に、遷移モデル425が「隠れ状態」データ空間上で動作するとき、遷移モデル425のGNNは、GNN424によって出力された状態表現の埋め込みを使用することができる。
【0082】
予測エンジン426は、GNN424によって生成されたグラフ出力を処理して、行動選択方策と、価値関数と、適切なときには報酬とを含む、プランニングに最も直接的に関連する量を予測するように構成される。予測された方策出力は、それぞれのロボットによって実行され得る1セットの可能なロボットの行動の組合せのスコア分布を定義することができる。各行動の組合せは、複数のロボットによって実行される行動を含む。たとえば、予測された方策出力は、1セットの可能な行動の組合せの中のロボットの行動の各組合せに関するそれぞれの数値確率値(numerical probability value)を含み得る。それぞれの数値確率値は、状態が与えられたときに、対応する行動の組合せが取るべき最善である確率であり得る。価値出力は、さらに、環境が所与の環境の状態にあるときに、ロボットがタスクを達成することに向かう全体的な進捗を表す数値を指定し得る。
【0083】
予測エンジン426は、グラフ出力を処理するために、任意の適切なアーキテクチャを持つニューラルネットワークを含み得る。たとえば、予測エンジン426のニューラルネットワークは、隠れ状態入力を受け取る入力層、それに続く1つもしくは複数の畳み込み層、または1つもしくは複数の全結合層、およびスコア分布を出力する出力層を含み得る。予測エンジン426は、方策および価値をそれぞれ予測するための別個の方策予測ネットワークおよび価値予測ネットワークを含むこともできる。
【0084】
行動サンプリングエンジン428は、予測モデル150の予測された方策出力を入力として受け取り、入力を処理して、サンプリング分布を定義するデータを出力として生成するように構成される。サンプリング分布は、ロボットによって実行され得る可能な行動の一部またはすべての分布であることが可能であり、たとえば、可能な行動のセット全体の中の複数の行動の各々に関するそれぞれの数値確率値を含んでよい。プランニング中に、プランニングエンジン420は、状態木を展開するために使用される、すなわち、出ていくエッジとして葉ノードに追加される行動の適切なサブセットを生成するために、サンプリング分布からいくつかの行動をサンプリングすることができる。
【0085】
プランニングの後、システム400は、計画データ429に基づいてそれぞれのロボットによって実行される実際の行動442a~442nの選択に進む。計画データ429は、状態木の根ノード、すなわち、現在の観測値409によって特徴付けられる状態に対応するノードのそれぞれの出ていくエッジに関してプランニング中に集められた統計データを含むことができ、ロボット行動選択エンジン440は、根ノードに対応するノード-エッジのペアに関する統計データに基づいて実際の行動442a~442nを選択することができる。
【0086】
たとえば、ロボット行動選択エンジン440は、状態木の根ノードのそれぞれの出ていくエッジの訪問回数に比例してこの選択を行うことができる。すなわち、環境402が現在の観測値409によって特徴付けられる状態にあるときにプランニング中に最も頻繁に選択されたすべての可能な行動のセットからの行動、すなわち、計画データにおいて最も多い訪問回数を有する根ノードからの出ていくエッジに対応する行動が、現在の観測値に応答してロボットによって実行される実際の行動442a~442nとして選択されてよい。別の例として、ロボット行動選択エンジン440は、まず、計画データの行動のシーケンスから、最大の関連する価値を有する行動のシーケンスを決定し、それから、現在の観測値409に応答してそれぞれのロボットによって実行される実際の行動442a~442nとして、決定された行動のシーケンス内の最初の行動を選択することによって、この選択を行うことができる。
【0087】
訓練エンジン430は、モデルパラメータ425を学習するようにプランニングエンジン420に含まれるモデルを訓練し、その結果、プランニングエンジン420は、最適なロボットの行動がそれに基づいて効果的に選択され得る計画データを生成する。最適なロボットの行動は、システム400によって受け取られる期待される累積的な報酬を最大化する行動であることが可能である。期待される累積的な報酬は、環境と相互作用するときのロボットによる実行に関して、システム400によって受け取られる報酬の長期的な時間割引された合計であることが可能である。
【0088】
訓練エンジン430は、1セットのモデルパラメータ425の値を共同で反復的に調整するために、適切な訓練技術、たとえば、通時的誤差逆伝播(backpropagation-through-time)技術によるエンドツーエンド(end-to-end)を使用して、GNN422および予測エンジン426のモデルを訓練する。
【0089】
一部の実装において、訓練エンジン430は、再生メモリ415に記憶された最近の経験(すなわち、以前の時間ステップの観測値と、行動と、任意選択で、報酬とを含む軌跡)からプランニングエンジン420に含まれるモデルを訓練する。概して、軌跡は、モデルの訓練に使用するために、環境または環境の別のインスタンスとのロボットの相互作用の結果として生成された経験情報から導出され得る。各軌跡は、環境とのエージェントの相互作用についての情報を表す。
【0090】
図4Bは、複数のロボットに関する計画データを生成するための反復的なプランニングプロセスのデータフローを示す図である。各プランニングの反復において、プランニングエンジン420は、遷移モデル425を使用して、状態木413によって表される環境の状態を、現在の状態データ412aによって表される現在の状態から開始して、次の状態データ412bによって表される1つまたは複数の次の状態などを経て、(葉状態データ412nによって表される)環境の葉状態が到達されるまで走査する。状態木の走査中、行動プランニングエンジン420は、状態木413の対応するノード-エッジのペアに関連する統計に従って次の状態を選択することができる。
【0091】
遷移モデル425が「実状態」データ空間において動作する場合、プランニングエンジン420は、グラフデータ生成エンジン422を使用して、葉状態データを葉状態のグラフ特徴データ表現452にマッピングする。GNN424は、グラフ特徴データ表現452を処理して、更新された特徴表現454を生成する。予測エンジン426の方策予測ネットワーク426aは、更新された特徴表現454を処理して、予測されたロボット方策456を生成し、予測エンジン426の価値予測ネットワーク426bは、更新された特徴表現454から生成された更新された特徴要約457を処理して、予測された価値スコア458を生成する。プランニングエンジン420は、予測されたロボット方策456および予測された価値スコア458を使用して、葉ノードに到達するために走査された状態木413の1つまたは複数の対応するノード-エッジのペアに関する統計を更新する。プランニングエンジン420は、状態木413の複数のノード-エッジのペアの統計を計画データに含めることもでき、したがって、ロボット行動選択エンジン440は、統計を使用してロボットの最適な行動を選択することができる。
【0092】
ノード-エッジ(すなわち、状態-行動)のペアの一部またはすべての各々に関する統計データは、環境の現在の状態を表すノードから始まる異なる出力を生成するためにプランニングエンジンを繰り返し実行した結果として集められたデータであり得る。たとえば、計画データは、状態木の根ノードのそれぞれの出ていくエッジに関して、(i)エッジによって表される行動の行動スコアQ、(ii)複数回のプランニングの反復中に行動が選択された回数を表す、エッジによって表される行動の訪問回数N、および(iii)エッジによって表される行動の事前確率Pを含み得る。プランニング中、状態木の根ノードは、現在の観測値によって特徴付けられる状態に対応する。
【0093】
環境の所与の状態を表す任意の所与のノードに関して、行動の行動スコアQは、所与の状態を特徴付ける観測値に応答して行動が実行される場合に受け取られる収益の現在の推定値を表す。収益は、エージェントによって受け取られる「報酬」の累積的な尺度、たとえば、報酬の時間割引された合計を指す。エージェントは、各時間ステップにおいてそれぞれの報酬を受け取ることができ、報酬は、スカラ数値によって指定され、たとえば、割り振られたタスクの完了に向かうエージェントの進捗を特徴付ける。行動の訪問回数Nは、所与の状態を特徴付ける観測値に応答してエージェントによって行動が実行された現在の回数である。そして、事前確率Pは、行動が、所与の状態を特徴付ける観測値に応答して実行されるべき行動、すなわち、観測値に応答して実行され得るすべてのその他の行動と比較して、受け取られる収益を最大化する行動である見込み(likelihood)を表す。
【0094】
システムは、システムがアクセス可能なメモリデバイスに計画データを保持することができる。論理的には木として説明されるが、プランニングエンジンを使用することによって生成された計画データは、様々な都合の良いデータ構造のいずれかによって、たとえば、複数のトリプル(triple)として、または隣接リストとして表される場合がある。
【0095】
各プランニングの反復において、システムは、根ノードに対応するノード-エッジのペアから始まる対応するノード-エッジのペアに関する集められた統計に従って、たとえば、信頼上限(upper confidence bound)について最大を求めることによって、すなわち、
【数3】
によって行動aを繰り返し(すなわち、複数のプランニングステップの各々において)選択することによって、行動のシーケンスを生成することができ、式中、c1およびc2は、行動スコアQに対して相対的な事前確率Pの影響を制御するために使用されるチューニング可能なハイパーパラメータである。
【0096】
行動選択、状態木展開、および統計更新アルゴリズムを含む例示的な先読み探索アルゴリズムは、2018年5月28日に出願され、2020年5月7日に公開された、Simonyanらの、「Training action selection neural networks using look-ahead search」と題された米国特許公開第20200143239号、およびSilverら、「Mastering the game of go without human knowledge」、Nature、550:354~359、2017年10月、およびKocsisら、「Bandit based monte-carlo planning」、European conference on machine-learning、282~293ページ、Springer、2006年により詳細に記載されている。
【0097】
葉ノードが到達されると、システムは、GNN424を使用して、葉ノードから状態木を展開し、プランニングデータを更新することができる。具体的には、システムは、GNN424を使用して葉ノードの状態データのグラフ特徴データ表現452を処理して、葉状態の更新された特徴表現454を生成することができる。システムは、予測モデルを使用して更新された特徴表現454を処理して、1セットの行動のスコア分布を定義する予測された方策出力を含む出力を生成することができる。システムは、たとえば、スコア分布からサンプリング分布を定義するデータを生成し、サンプリング分布から決まった数のサンプルをサンプリングすることによって、1セットの行動の適切なサブセットをサンプリングすることができる。それから、システムは、それぞれのサンプリングされた行動を表す葉ノードからのそれぞれの出ていくエッジを状態木に追加することによって、状態木を更新する。そして、システムは、それぞれのサンプリングされた行動に関して、サンプリングされた行動を表すそれぞれの出ていくエッジを、予測された方策出力から導出されるサンプリングされた行動の事前確率と関連付けることによって、統計を更新することができる。
【0098】
プランニングの反復中に走査された各エッジに関して、システムは、エッジの訪問回数Nを所定の定数値だけ、たとえば、1だけインクリメントし得る。また、システムは、行動スコアQを、エッジの走査を含んでいたすべての探索の予測された価値の新しい平均に等しく設定することによって、葉ノードに関する予測された価値を使用してエッジの行動スコアQを更新することができる。
【0099】
統計を更新し、葉ノードを展開するための例示的なプロセスは、2021年1月28日に出願され、2021年8月5日に公開された、Schrittwieserらの、「Planning for agent control using learned hidden states」と題されたPCT特許出願公開WO2021152515に詳細に記載されており、参照によりその開示全体が本明細書に組み込まれる。
【0100】
図5は、状態データからロボットの行動を生成するための例示的なプロセスの流れ図である。便宜上、プロセス500は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた、
図1に示されたマルチロボット制御システムが、プロセス500を実行し得る。
【0101】
システムは、複数の時間ステップの各々において、以下のステップを繰り返し実行する。
【0102】
まず、システムは、ステップ510において、環境の現在の状態を表す状態データを取得する。環境は、複数のロボットと、1つまたは複数の目標の場所と、任意選択で、1つまたは複数の障害物とを含む。状態データは、ロボット、目標の場所、および障害物の現在の状態に関する情報を含む。
【0103】
次に、システムは、ステップ520において、状態データから、環境の現在の状態のグラフを表すグラフデータを生成する。グラフは、複数のノードおよび複数のエッジを含む。複数のノードは、ロボットの各々についてそれぞれのロボットノードと、目標の場所の各々についてそれぞれの目標ノードと、任意選択で、目標の物体の各々についてそれぞれの障害物ノードとを含む。グラフデータは、ロボットノードの各々と、目標ノードの各々と、任意選択で、障害物ノードの各々とのそれぞれの初期特徴表現を含む。
【0104】
例として、各ロボットノードの初期特徴表現は、工具チップの1つまたは複数の座標、関節の各々の座標、および現在の関節角度を含み得る。各目標ノードの初期特徴表現は、目標の場所の座標を含み得る。
【0105】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の互換性情報をさらに含み得る。目標ノードの互換性情報は、たとえば、対応する目標に対して動作するための互換性のあるロボットのサブセットを特定し得る。たとえば、複数のロボットは、特定の目標に対して動作するための互換性があるまたは互換性がない様々な工具チップを用いて構成されることが可能であり、特定の目標に対応する目標ノードの互換性情報は、どのロボットが互換性があるのかを示すことができる。
【0106】
一部の実装において、目標ノードのうちの1つまたは複数の初期特徴表現は、対応する1つまたは複数の目標の向きの制約に関する情報をさらに含み得る。たとえば、特定の目標に対して動作する(たとえば、目標の場所に対してスポット溶接を実行する)ために、ロボットアームは、特定の向きにまたは特定の範囲の向きに制約される必要がある場合がある。特定の目標に対応する目標ノードの向き制約情報は、制約された向きまたは制約された向きの範囲を示すことができる。
【0107】
グラフの各エッジは、複数のノードからのノードのそれぞれのペアを接続する。グラフは、各ロボットノードと各目標ノードとの間のエッジ、各ロボットノードとその他の各ロボットノードとの間のエッジ、および任意選択で各ロボットノードと各障害物ノードとの間のエッジを含む。一部の実装において、グラフは、いずれの2つの目標ノードの間または2つの障害物ノードの間のいかなるエッジも含まず、グラフ内のいずれの障害物ノードといずれの目標ノードとの間のいかなるエッジも含まない。
【0108】
一部の実装において、グラフデータは、各エッジのエッジ特徴を示す初期特徴ベクトルをさらに含む。特定のエッジのエッジ特徴は、特定のエッジによって接続された2つのノードの距離、相対的な位置、および/または相対的な向きを符号化し得る。
【0109】
状態データからグラフデータを生成した後、システムは、ステップ530において、グラフ出力を生成するために、グラフニューラルネットワークを使用してグラフデータを処理する。グラフ出力は、ロボットノードの各々の更新された特徴表現を含む。任意選択で、グラフ出力は、ロボットノードの各々および/または目標ノードの各々についてそれぞれの更新された特徴表現を含む。一部の実装において、グラフ出力は、エッジの更新された特徴表現をさらに含む。グラフニューラルネットワークは、1つまたは複数のメッセージパッシング層を含み、任意の所与のノードに関して、各メッセージパッシング層は、グラフのエッジによってノードに接続されているノードの特徴表現にのみ基づいて、ノードの特徴表現を更新する。
【0110】
次に、ステップ540において、システムは、グラフ出力に基づいて、ロボットの各々によって実行されるそれぞれの行動を選択する。特定の実装において、システムは、それぞれのロボットの行動を選択するために、ニューラルネットワークを使用してグラフ出力を直接処理する。特定のその他の実装において、システムは、計画データを生成するために、グラフ出力を使用して1回または複数回のプランニングの反復を実行し、計画データを使用して、それぞれのロボットの行動を選択する。
【0111】
図6は、プランニングの反復で状態データからロボットの行動を生成するための例示的なプロセスの流れ図である。便宜上、プロセス600は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた、
図4Aに示されたマルチロボットおよびプランニング制御システムが、プロセス600を実行し得る。
【0112】
システムは、以下の動作を繰り返し実行することによって、ロボットにタスクを実行させるように複数のロボットを制御する。
【0113】
まず、システムは、計画データを生成するために、環境の現在の状態から開始する複数のプランニングの反復を実行する。計画データは、ロボットの行動のシーケンスを含み得る。計画データは、行動のシーケンスに関連する環境の状態に関する統計をさらに含み得る。各プランニングの反復は、ステップ620から650を含む。
【0114】
ステップ620において、システムは、現在の状態から開始して、環境の葉状態が到達されるまで、環境の状態を走査することによって、先読み反復(look-ahead iteration)を実行する。
【0115】
ステップ630において、システムは、葉状態を特徴付ける状態データから、環境の葉状態のグラフを表すグラフデータを生成する。グラフは、複数のノードおよび複数のエッジを含む。複数のノードは、ロボットの各々についてそれぞれのロボットノードと、目標の場所の各々についてそれぞれの目標ノードと、任意選択で、目標の物体の各々についてそれぞれの障害物ノードとを含む。グラフデータは、ロボットノードの各々と、目標ノードの各々と、任意選択で、障害物ノードの各々とのそれぞれの初期特徴表現を含む。
【0116】
グラフの各エッジは、複数のノードからのノードのそれぞれのペアを接続する。グラフは、各ロボットノードと各目標ノードとの間のエッジ、各ロボットノードとその他の各ロボットノードとの間のエッジ、および任意選択で各ロボットノードと各障害物ノードとの間のエッジを含む。一部の実装において、グラフは、いずれの2つの目標ノードの間または2つの障害物ノードの間のいかなるエッジも含まず、グラフ内のいずれの障害物ノードといずれの目標ノードとの間のいかなるエッジも含まない。
【0117】
ステップ640において、システムは、グラフ出力を生成するために、グラフニューラルネットワークを使用してグラフデータを処理する。グラフ出力は、ロボットノードの各々の更新された特徴表現を含む。任意選択で、グラフ出力は、ロボットノードの各々および/または目標ノードの各々についてそれぞれの更新された特徴表現を含む。グラフニューラルネットワークは、1つまたは複数のメッセージパッシング層を含み、任意の所与のノードに関して、各メッセージパッシング層は、グラフのエッジによってノードに接続されているノードの特徴表現にのみ基づいて、ノードの特徴表現を更新する。
【0118】
ステップ650において、システムは、グラフ出力に従って計画データを更新する。システムは、計画データに対する更新を生成し、生成された更新を使用して計画データを更新することができる。更新を生成する際、システムは、グラフ出力から葉状態の要約特徴を生成し、タスクを成功裏に完了するために葉状態にあることの予測された価値を表す価値スコアを予測するために、価値予測ニューラルネットワークを使用して要約特徴を処理することができる。さらに、各ロボットノードに関して、システムは、環境が葉状態にあるときに対応するロボットノードによって実行される1セットの可能な行動の確率分布を定義する方策出力を生成するために、方策ニューラルネットワークを使用してロボットノードの更新された特徴表現を処理することができる。
【0119】
プランニングの反復を実行した後、ステップ660において、システムは、計画データを使用してそれぞれのロボットによって実行する行動を選択する。たとえば、システムは、まず、計画データの行動のシーケンスから、最大の関連する価値を有する行動のシーケンスを決定し、それから、行動の決定されたシーケンスの最初の行動を、現在の観測値に従ってそれぞれのロボットによって実行される実際の行動として選択することによって、選択を行うことができる。
【0120】
本明細書に記載の主題の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラム担体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。
【0121】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意選択で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0122】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態でデプロイされることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずしもそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプトに、問題にしているプログラムに専用の単一のファイルに、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0123】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用論理回路として実装されることが可能である。
【0124】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはそれら両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0125】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0126】
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0127】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができる関係グラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【0128】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0129】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態に組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されていることさえあり得るが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0130】
同様に、動作が図面に特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0131】
主題の特定の実施形態が説明された。その他の実施形態は、添付の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に記載のアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に描かれたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。
【符号の説明】
【0132】
102 環境
104a ロボット
104n ロボット
106a 目標の場所
106n 目標の場所
108 障害物
110 マルチロボット制御システム
112 状態データ収集エンジン
114 グラフデータ生成エンジン
116 グラフニューラルネットワーク、GNN
118 ロボット行動生成エンジン
122 状態データ
124 グラフデータ
126 グラフ出力
128a 行動
128n 行動
150 予測モデル
200 グラフ
210a ロボットノード
210b ロボットノード
220a 目標ノード
220b 目標ノード
230a 障害物ノード
250 関係関数
260 更新された埋め込み
265 現在の特徴
270 更新された特徴
310 グラフデータ
320 GNN、グラフニューラルネットワーク
330 グラフ出力
330a 更新されたロボットノード特徴表現
330n 更新されたロボットノード特徴表現
335 要約特徴
340 方策予測ニューラルネットワーク
345a 方策
345n 方策
350 価値予測ニューラルネットワーク
355 価値スコア
400 マルチロボットプランニングおよび制御システム
402 環境
404a ロボット
404n ロボット
406a 目標の場所
406n 目標の場所
408 障害物
409 現在の観測値
410 状態データ収集エンジン
412 状態データ
412a 現在の状態データ
412b 次の状態データ
412n 葉状態データ
413 状態木
414 報酬信号
415 再生メモリ
420 ロボット行動プランニングエンジン
422 グラフデータ生成エンジン
424 グラフニューラルネットワーク、GNN
425 遷移モデル、モデルパラメータ
426 予測エンジン、価値および/または方策予測エンジン
426a 方策予測ネットワーク
426b 価値予測ネットワーク
428 行動サンプリングエンジン
429 計画データ
430 訓練エンジン
440 ロボット行動選択エンジン
442a 行動
442n 行動
452 グラフ特徴データ表現
454 更新された特徴表現
456 予測されたロボット方策
457 更新された特徴要約
458 予測された価値スコア
【手続補正書】
【提出日】2024-06-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行され、複数のロボットを制御して前記ロボットが環境内の複数の目標の場所に動くようにするための方法であって、以下の動作、すなわち、
前記環境の現在の状態を表す状態データを取得することと、
前記状態データから、前記環境の前記現在の状態のグラフを表すグラフデータを生成することであって、前記グラフが、複数のノードおよび複数のエッジを含み、各エッジが、前記複数のノードからのノードのそれぞれのペアを接続し、前記複数のノードが、前記ロボットの各々についてのそれぞれのロボットノード、および前記目標の場所の各々についてのそれぞれの目標ノードを含み、前記グラフデータが、前記ロボットノードの各々および前記目標ノードの各々についてそれぞれの初期特徴表現を含む、生成することと、
前記ロボットノードの各々についてそれぞれの更新された特徴表現を含むグラフ出力を生成するために、グラフニューラルネットワークを使用して前記グラフデータを処理することと、
前記グラフ出力に基づいて、前記ロボットの各々によって実行されるそれぞれの行動を選択することと
を繰り返し実行するステップを含む、方法。
【請求項2】
前記環境が、1つまたは複数の障害物を含み、前記グラフが、前記1つまたは複数の障害物の各々についてそれぞれの障害物ノードを含み、前記グラフデータが、前記障害物ノードの各々についてそれぞれの初期特徴表現を含む、請求項1に記載の方法。
【請求項3】
前記グラフが、各ロボットノードと各障害物ノードとの間のエッジを含む、請求項2に記載の方法。
【請求項4】
前記グラフが、いずれの2つの障害物ノードの間のいかなるエッジも含まない、請求項3に記載の方法。
【請求項5】
前記グラフが、前記グラフのいずれの障害物ノードといずれの目標ノードとの間のいかなるエッジも含まない、請求項
3に記載の方法。
【請求項6】
前記グラフが、各ロボットノードとその他の各ロボットノードとの間のエッジを含む、請求項
1に記載の方法。
【請求項7】
前記グラフが、各ロボットノードと各目標ノードとの間のエッジを含む、請求項
1に記載の方法。
【請求項8】
前記グラフが、いずれの2つの目標ノードの間のいかなるエッジも含まない、請求項
1に記載の方法。
【請求項9】
前記グラフデータが、前記グラフの前記エッジを表すエッジデータを含む、請求項
1に記載の方法。
【請求項10】
前記グラフニューラルネットワークが、1つまたは複数のグラフ層を含み、前記グラフ層の各々が、任意の所与のノードに関して、前記グラフのエッジによって前記ノードに接続されているノードの特徴表現にのみ基づいて、前記所与のノードの特徴表現を更新するように構成される、請求項9に記載の方法。
【請求項11】
前記ロボットの各々によって実行される前記それぞれの行動を選択することが、
前記グラフ出力を処理することによって前記それぞれの行動を予測することを含む、請求項
1に記載の方法。
【請求項12】
前記ロボットの各々によって実行される前記それぞれの行動を選択することが、
計画データを生成するために、前記グラフ出力を使用して1回または複数回のプランニングの反復を実行することと、
前記計画データを使用して行動を選択することと
を含む、請求項
1に記載の方法。
【請求項13】
1つまたは複数のコンピュータによって実行され、複数のロボットを制御して前記ロボットが環境内の複数の目標の場所に動くことを含むタスクを実行するようにするための方法であって、以下の動作、すなわち、
計画データを生成するために、前記環境の現在の状態から開始する複数のプランニングの反復を実行することであって、各プランニングの反復を実行することが、
前記現在の状態から開始して、前記環境の葉状態が到達されるまで、前記環境の状態を走査すること、
前記葉状態を特徴付ける状態データから、前記環境の前記葉状態のグラフを表すグラフデータを生成することであって、前記グラフが、複数のノードおよび複数のエッジを含み、各エッジが、前記複数のノードからのノードのそれぞれのペアを接続し、前記複数のノードが、前記ロボットの各々についてのそれぞれのロボットノード、および前記目標の場所の各々についてのそれぞれの目標ノードを含み、前記グラフデータが、前記ロボットノードの各々および前記目標ノードの各々についてそれぞれの初期特徴表現を含む、生成すること、
前記ロボットノードの各々についてそれぞれの更新された特徴表現を含むグラフ出力を生成するために、グラフニューラルネットワークを使用して前記グラフデータを処理すること、
前記グラフ出力から、前記計画データに対する更新を生成すること、ならびに
生成された前記更新を使用して前記計画データを更新することを含む、複数のプランニングの反復を実行することと、
前記計画データを実行した後、前記計画データを使用して行動を選択することと
を繰り返し実行するステップを含む、方法。
【請求項14】
前記グラフ出力から、前記計画データに対する更新を生成することが、
前記グラフ出力から前記葉状態の要約特徴を生成することと、
前記タスクを成功裏に完了するために前記葉状態にあることの予測された価値を表す価値スコアを予測するために、価値予測ニューラルネットワークを使用して前記要約特徴を処理することと
を含む、請求項13に記載の方法。
【請求項15】
前記グラフ出力から、前記計画データに対する更新を生成することが、各ロボットノードに関して、
前記環境が前記葉状態にあるときに対応するロボットノードによって実行される1セットの可能な行動の確率分布を定義する方策出力を生成するために、方策ニューラルネットワークを使用して前記ロボットノードの前記更新された特徴表現を処理することを含む、請求項
13に記載の方法。
【請求項16】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法の前記動作を実行させる命令を記憶する1つまたは複数のストレージデバイスと
を含む、システム。
【請求項17】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から15のいずれか一項に記載の方法の前記動作を実行させる命令を記憶する、1つまたは複数のコンピュータ可読ストレージ媒体。
【国際調査報告】