(57)【要約】      （修正有）【課題】環境内でのロボットの特定の運動に応答してロボットの環境内の物体（１つまたは複数）に対して発生する動き（１つまたは複数）（存在する場合に）を予測することが可能な深層機械学習の方法および装置を提供する。【解決手段】環境内でのロボットの特定の運動の少なくとも一部を実施することの結果として発生するはずのロボットの環境の画像の少なくとも１つの変換（存在する場合に）を予測するためにディープ・ニューラル・ネットワーク・モデルをトレーニングすることを対象とする。ディープ・ニューラル・ネットワーク・モデルトレーニングすることにより、画像および特定の運動の一部を定義するロボット運動パラメータを含む入力に基づいて変換を予測することが可能となる。【選択図】図１
2020128003.tif 000002
【特許請求の範囲】
【請求項１】
候補ロボット運動パラメータを生成することであって、前記候補ロボット運動パラメータは、ロボットの１つまたは複数の構成要素による前記ロボットの環境内で実行可能な候補運動の少なくとも一部を定義することと、
前記ロボットに関連する視覚センサによって取り込まれた現在の画像を識別することであって、前記現在の画像は、前記ロボットの前記環境の少なくとも一部を取り込むことと、
トレーニングされるニューラル・ネットワークへの入力として前記現在の画像および前記候補ロボット運動パラメータを適用することと、
前記現在の画像の少なくとも１つの予測された変換を生成することであって、前記予測された変換は、前記トレーニングされるニューラル・ネットワークへの前記現在の画像および前記候補ロボット運動パラメータの前記適用に基づいて生成されることと、
少なくとも１つの予測された画像を生成するために前記少なくとも１つの予測された変換に基づいて前記現在の画像を変換することであって、前記予測された画像は、候補運動の前記少なくとも前記一部が前記ロボットの前記構成要素によって前記環境内で実行される場合の前記ロボットの前記環境の前記一部を予測することと
を含む、１つまたは複数のプロセッサによって実施される方法。
【請求項２】
前記予測された画像に基づいて、前記候補運動を実行すると決定することと、
前記候補運動を実行するために前記ロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記予測された画像に基づいて、前記候補運動の代わりに代替の運動を実行すると決定することと、
前記代替の運動を実行するために前記ロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記トレーニングされるニューラル・ネットワークへの前記現在の画像および前記候補ロボット運動パラメータの前記適用に基づいて、少なくとも１つの合成マスクを生成すること
をさらに含み、前記現在の画像を変換することは、前記少なくとも１つの合成マスクにさらに基づく
請求項１に記載の方法。
【請求項５】
前記少なくとも１つの予測された変換は、複数の予測された変換を含み、前記少なくとも１つの合成マスクは、複数の合成マスクを含み、前記予測された画像を生成するために前記少なくとも１つの予測された変換に基づいて前記現在の画像を変換することは、
前記複数の予測された変換に基づいて、複数の予測された画像を生成することと、
前記予測された画像を生成するために前記複数の合成マスクに基づいて前記予測された画像を合成することと
を含む、請求項４に記載の方法。
【請求項６】
第２の候補ロボット運動パラメータを生成することであって、前記第２の候補ロボット運動パラメータは、前記構成要素のうちの１つまたは複数によって前記環境内で実行可能な第２の候補運動の少なくとも一部を定義し、前記第２の候補運動は、前記候補運動の代わりに実行可能であることと、
前記トレーニングされるニューラル・ネットワークへの入力として前記現在の画像および前記第２の候補ロボット運動パラメータを適用することと、
前記現在の画像の少なくとも１つの第２の予測された変換を生成することであって、前記第２の予測された変換は、前記トレーニングされるニューラル・ネットワークへの前記現在の画像および前記第２の候補ロボット運動パラメータの前記適用に基づいて生成されることと、
少なくとも１つの第２の予測された画像を生成するために前記第２の予測された変換に基づいて前記現在の画像の画素のうちの１つまたは複数を変換することであって、前記第２の予測された画像は、前記第２の候補運動の前記少なくとも前記一部が前記ロボットの前記構成要素によって前記環境内で実行される場合の前記ロボットの前記環境の前記一部を予測することと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記予測された画像および前記第２の予測された画像に基づいて、前記候補運動または前記第２の候補運動のいずれかを選択することと、
前記候補運動および前記第２の候補運動のうちの前記選択された１つを実行するために前記ロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することと
をさらに含む、請求項６に記載の方法。
【請求項８】
継続する候補ロボット運動パラメータを生成することであって、前記継続する候補ロボット運動パラメータは、前記候補運動の前記一部に続く前記候補運動の別の一部を定義することと、
前記トレーニングされるニューラル・ネットワークに前記予測された画像および前記継続する候補ロボット運動パラメータを適用することと、
前記予測された画像の少なくとも１つの継続する予測された変換を生成することであって、継続する予測された変換は、前記トレーニングされるニューラル・ネットワークへの前記予測された画像および前記継続する候補ロボット運動パラメータの前記適用に基づいて生成されることと、
継続する予測された画像を生成するために前記継続する予測された変換に基づいて前記予測された画像を変換することと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記予測された画像および前記継続する予測された画像に基づいて、前記候補運動を実行すると決定することと、
前記候補運動を実行するために前記ロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することと
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記トレーニングされるニューラル・ネットワークは、複数の積み重ねられた畳み込み長短期記憶層を含む、請求項１に記載の方法。
【請求項１１】
前記現在の画像の画素の前記少なくともオン予測された変換は、１つまたは複数の空間トランスフォーマのパラメータを含む、請求項１に記載の方法。
【請求項１２】
前記現在の画像を変換することは、前記パラメータを利用して前記現在の画像に前記１つまたは複数の空間トランスフォーマを適用することを含む、請求項１０に記載の方法。
【請求項１３】
前記現在の画像の画素の前記少なくとも１つの予測された変換は、それぞれが前記画素のうちの１つまたは複数に対応する１つまたは複数の正規化された分布を含む、請求項１に記載の方法。
【請求項１４】
前記現在の画像を変換することは、畳み込み演算を使用して前記現在の画像に前記正規化された分布を適用することを含む、請求項１２に記載の方法。
【請求項１５】
前記正規化された分布のそれぞれは、前記画素の対応する１つに対応する、請求項１３に記載の方法。
【請求項１６】
前記トレーニングされるニューラル・ネットワークへの入力として前記現在の画像および候補ロボット動きパラメータを適用することは、
前記トレーニングされるニューラル・ネットワークの初期層への入力として前記現在の画像を適用することと、
前記トレーニングされるニューラル・ネットワークの追加層に前記候補ロボット動きパラメータを適用することであって、前記追加層は、前記初期層の下流にあることと
を含む、請求項１に記載の方法。
【請求項１７】
環境を見る視覚センサと、
１つまたは複数の非一時的コンピュータ可読媒体内に記憶されたトレーニングされるニューラル・ネットワークと、
ロボットに関連する前記視覚センサによって取り込まれた現在の画像を識別し、
前記ロボットの現在の状態を識別し、
前記現在の状態から候補状態に前記ロボットを遷移させるための候補アクションを識別し、
前記トレーニングされるニューラル・ネットワークへの入力として前記現在の画像、前記現在の状態、および前記候補アクションを適用し、
前記トレーニングされるニューラル・ネットワークへの前記現在の画像、前記現在の状態、および前記候補アクションの前記適用に基づいて少なくとも１つの予測された画像を生成し、
前記予測された画像に基づいて、前記候補アクションを実行すると決定し、
前記候補アクションを実行するために前記ロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給する
ように構成された少なくとも１つのプロセッサと
を含むシステム。
【請求項１８】
前記少なくとも１つのプロセッサは、
前記候補アクションに基づいて、前記現在の状態に続く次の状態を判定し、
前記次の状態からさらなる候補状態に前記ロボットを遷移させるための次の候補アクションを識別し、
前記トレーニングされるニューラル・ネットワークへの入力としての前記現在の画像、前記現在の状態、および前記候補アクションの入力に続いて、前記トレーニングされるニューラル・ネットワークへの入力として前記予測された画像、前記次の状態、および前記次の候補アクションを適用し、
前記トレーニングされるニューラル・ネットワークへの入力としての前記予測された画像、前記次の状態、および前記次の候補アクションの前記適用に基づいて次の予測された画像を生成する
ようにさらに構成され、前記候補アクションを実行すると決定する際に、前記少なくとも１つのプロセッサは、さらに、前記次の予測された画像に基づいて前記候補アクションを実行すると決定するためのものである
請求項１７に記載のシステム。
【請求項１９】
ニューラル・ネットワークをトレーニングする方法であって、
１つまたは複数のプロセッサによって、１つまたは複数のロボットによる複数の物体の動きの試み中の前記ロボットに関連するセンサからのセンサ出力に基づいて生成された複数のトレーニング例を識別することであって、
前記トレーニング例のそれぞれは、
前記物体の動きの試みの対応する試みからの順次画像のグループであって、前記画像のそれぞれは時間の対応する実例での環境内の１つまたは複数の対応する物体を取り込む、順次画像のグループと、
前記順次画像のそれぞれについて、
時間の前記対応する実例での前記ロボットの状態と、
時間の前記対応する実例での前記ロボットの前記状態を前記順次画像の次の順次画像に対応する新しい状態に遷移させるために適用すべきアクションと
を含むことと、
前記プロセッサのうちの１つまたは複数によって、前記トレーニング例に基づいて前記ニューラル・ネットワークをトレーニングすることと
を含む方法。
【請求項２０】
前記トレーニング例に基づいて前記ニューラル・ネットワークをトレーニングすることは、
前記ニューラル・ネットワークへの初期入力として、
前記順次画像の所与の画像と、前記所与の画像に関する状態およびアクションと
を適用することと、
前記ニューラル・ネットワークへの前記初期入力の適用に基づいて予測された画像を生成することと、
前記予測された画像と前記順次画像内で前記所与の画像に続く前記次の順次画像とに基づいて誤差を判定することと、
前記誤差に基づいて前記ニューラル・ネットワークを更新することと
を含む、請求項１９に記載の方法。
【請求項２１】
前記トレーニング例に基づいて前記ニューラル・ネットワークをトレーニングすることは、
前記初期入力の前記適用に続く前記ニューラル・ネットワークへの次の入力として、
前記予測された画像と、前記次の順次画像に関する状態およびアクションと
を適用することと、
前記ニューラル・ネットワークへの前記次の入力の適用に基づいて追加の予測された画像を生成することと、
前記追加の予測された画像と前記順次画像内で前記次の順次画像に続く追加の次の順次画像とに基づいて追加の誤差を判定することと、
前記誤差に基づいて前記ニューラル・ネットワークを更新することと
をさらに含む、請求項２０に記載の方法。
【請求項２２】
前記初期入力を適用することは、
前記ニューラル・ネットワークの初期層への入力として所与のトレーニング例の所与の画像を適用することと、
前記ニューラル・ネットワークの追加層に前記所与の画像に関する前記状態および前記アクションを適用することであって、前記追加層は、前記初期層の下流にあることと
を含む、請求項２０に記載の方法。
【請求項２３】
前記トレーニング例は、
第１のロボットによる複数の物体の動きの試み中の前記第１のロボットの複数の第１のロボット・センサからの出力に基づいて生成される前記トレーニング例の第１のグループ
と、
第２のロボットによる複数の物体の動きの試み中の前記第２のロボットの複数の第２のロボット・センサからの出力に基づいて生成される前記トレーニング例の第２のグループと
を含む、請求項１９に記載の方法。
【請求項２４】
コンピューティング装置によって実行される時に、請求項１〜１６のいずれか１項に記載の方法の実行を引き起こす機械可読命令を含むコンピュータ・プログラム。
【請求項２５】
コンピューティング装置によって実行される時に、請求項１９〜２３のいずれか１項に記載の方法の実行を引き起こす機械可読命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
多数のロボットが、１つまたは複数の物体を操作するのに１つまたは複数のエンド・エフェクタを利用するようにプログラムされる。たとえば、ロボットは、物体に力を適用し、その物体の運動を引き起こすのにエンド・エフェクタを利用することができる。たとえば、ロボットは、必ずしも物体を把持せずに物体を変位させるのに把持エンド・エフェクタまたは他のエンド・エフェクタを利用することができる。また、たとえば、ロボットは、物体を第１の位置から拾い上げ、物体を第２の位置に移動し、物体を第２の位置に置くのに、「衝突」グリッパまたは「進入」グリッパ（たとえば、ピン、針などを使用して物体を物理的に貫通する）などの把持エンド・エフェクタを利用することができる。
【発明の概要】
【０００２】
本明細書のいくつかの実施態様は、環境内でのロボットの特定の運動に応答してロボットの環境内の物体（１つまたは複数）に対して発生する動き（１つまたは複数）（存在する場合に）を予測することに関する深層機械学習の方法および装置に全般的に関する。いくつかの実施態様は、環境内でのロボットの特定の運動の少なくとも一部を実施することの結果として発生するはずのロボットの環境の画像の少なくとも１つの変換（存在する場合に）を予測するためにディープ・ニューラル・ネットワーク・モデルをトレーニングすることを対象とする。トレーニングされるディープ・ニューラル・ネットワーク・モデルは、（１）画像および（２）特定の運動の一部を定義するロボット運動パラメータを含む入力に基づいて変換を予測することができる。予測された変換は、ロボットの環境の予測された画像を生成するために画像を変換するのに利用され得、予測された画像は、特定の運動の一部が発生する場合のロボットの環境を予測する。言い換えると、予測された画像は、特定の運動の一部が発生した後のロボットの環境の予測を示し、たとえば、特定の運動の結果として発生するはずの環境内の物体（１つまたは複数）の動き（１つまたは複数）を予測するのに利用され得る。
【０００３】
予測された動き（１つまたは複数）は、たとえば、特定の運動を実現するためにロボットのアクチュエータ（１つまたは複数）に制御コマンドを供給すべきかどうかを判定するためなど、様々な目的に利用され得る。たとえば、予測された動き（１つまたは複数）は、所望の動き（１つまたは複数）と比較され得、予測された動き（１つまたは複数）が所望の動き（１つまたは複数）に従う場合には、制御コマンドが実施され得る。この形で、特定の運動の結果が、特定の運動の実施の前に効果的に「視覚化され」得、結果が望ましい場合に特定の運動が実施され得る。本明細書で説明するように、様々な実施態様において、ディープ・ニューラル・ネットワーク・モデルは、複数の将来の時間ステップの候補運動パラメータに基づいてこれらの将来の時間ステップのそれぞれでの画像を予測し、これによって、将来への効果的な視覚化多数時間ステップを可能にする。
【０００４】
いくつかの実施態様では、ロボットの１つまたは複数の構成要素によるロボットの環境内で実行可能な候補運動の少なくとも一部を定義する候補ロボット運動パラメータを生成することを含む方法が提供される。この方法は、ロボットに関連する視覚センサによって取り込まれた現在の画像を識別することをさらに含む。現在の画像は、ロボットの環境の少なくとも一部を取り込む。この方法は、トレーニングされるニューラル・ネットワークへの入力として現在の画像および候補ロボット運動パラメータを適用することと、トレーニングされるニューラル・ネットワークへの現在の画像および候補ロボット運動パラメータの適用に基づいて、現在の画像の少なくとも１つの予測された変換を生成することとをさらに含む。この方法は、少なくとも１つの予測された画像を生成するために少なくとも１つの予測された変換に基づいて現在の画像を変換することをさらに含む。予測された画像は、候補運動の少なくとも一部がロボットの構成要素によって環境内で実行される場合のロボットの環境の一部を予測する。
【０００５】
上記および他の実施態様は、オプションで、以下の特徴のうちの１つまたは複数を含むことができる。
【０００６】
いくつかの実施態様では、この方法は、予測された画像に基づいて、候補運動を実行すると決定することと、候補運動を実行するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することとをさらに含む。
【０００７】
いくつかの実施態様では、この方法は、予測された画像に基づいて、候補運動の代わりに代替の運動を実行すると決定することと、代替の運動を実行するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することとをさらに含む。
【０００８】
いくつかの実施態様では、この方法は、トレーニングされるニューラル・ネットワークへの現在の画像および候補ロボット運動パラメータの適用に基づいて、少なくとも１つの合成マスクを生成することをさらに含む。現在の画像を変換することは、少なくとも１つの合成マスクにさらに基づく。一例として、少なくとも１つの予測された変換は、複数の予測された変換を含むことができ、少なくとも１つの合成マスクは、複数の合成マスクを含むことができ、予測された画像を生成するために少なくとも１つの予測された変換に基づいて現在の画像を変換することは、複数の予測された変換に基づいて、複数の予測された画像を生成することと、予測された画像を生成するために複数の合成マスクに基づいて予測された画像を合成することとを含むことができる。
【０００９】
いくつかの実施態様では、この方法は、候補運動の代わりに、構成要素のうちの１つまたは複数によって環境内で実行可能な第２の候補運動の少なくとも一部を定義する第２の候補ロボット運動パラメータを生成することをさらに含む。これらの実施態様では、この方法は、トレーニングされるニューラル・ネットワークへの入力として現在の画像および第２の候補ロボット運動パラメータを適用することと、トレーニングされるニューラル・ネットワークへの現在の画像および第２の候補ロボット運動パラメータの適用に基づいて、現在の画像の少なくとも１つの第２の予測された変換を生成することと、少なくとも１つの第２の予測された画像を生成するために第２の予測された変換に基づいて現在の画像の画素のうちの１つまたは複数を変換することとをさらに含むことができる。第２の予測された画像は、第２の候補運動の少なくとも一部がロボットの構成要素によって環境内で実行される場合のロボットの環境の一部を予測する。これらの実施態様のいくつかのバージョンでは、この方法は、予測された画像および第２の予測された画像に基づいて、候補運動または第２の候補運動のいずれかを選択することと、候補運動および第２の候補運動のうちの選択された１つを実行するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することとをさらに含む。
【００１０】
いくつかの実施態様では、この方法は、候補運動の一部に続く候補運動の別の一部を定義する継続する候補ロボット運動パラメータを生成することと、トレーニングされるニューラル・ネットワークに予測された画像および継続する候補ロボット運動パラメータを適用することと、トレーニングされるニューラル・ネットワークへの予測された画像および継続する候補ロボット運動パラメータの適用に基づいて、予測された画像の少なくとも１つの継続する予測された変換を生成することと、継続する予測された画像を生成するために継続する予測された変換に基づいて予測された画像を変換することと、をさらに含む。これらの実施態様のいくつかでは、この方法は、予測された画像および継続する予測された画像に基づいて、候補運動を実行すると決定することと、候補運動を実行するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することとをさらに含む。
【００１１】
いくつかの実施態様では、トレーニングされるニューラル・ネットワークは、複数の積み重ねられた畳み込み長短期記憶層を含む。
【００１２】
いくつかの実施態様では、現在の画像の画素の少なくともオン予測された変換は、１つまたは複数の空間トランスフォーマのパラメータを含む。これらの実施態様のいくつかでは、現在の画像を変換することは、パラメータを利用して現在の画像に１つまたは複数の空間トランスフォーマを適用することを含む。
【００１３】
いくつかの実施態様では、現在の画像の画素の少なくとも１つの予測された変換は、それぞれが画素のうちの１つまたは複数に対応する１つまたは複数の正規化された分布を含む。これらの実施態様のいくつかでは、現在の画像を変換することは、畳み込み演算を使用して現在の画像に正規化された分布を適用することを含む。これらの実施態様のいくつかのバージョンでは、正規化された分布のそれぞれは、画素の対応する１つに対応する。
【００１４】
いくつかの実施態様では、トレーニングされるニューラル・ネットワークへの入力として現在の画像および候補ロボット動きパラメータを適用することは、トレーニングされるニューラル・ネットワークの初期層への入力として現在の画像を適用することと、トレーニングされるニューラル・ネットワークの追加層に候補ロボット動きパラメータを適用することであって、追加層は、初期層の下流にあることとを含む。
【００１５】
いくつかの実施態様では、候補ロボット・パラメータは、初期ロボット状態と、後続ロボット状態を示すアクションとを含む。これらの実施態様のいくつかでは、初期ロボット状態は、エンド・エフェクタの現在の姿勢であり、アクションは、エンド・エフェクタの指令された姿勢である。
【００１６】
いくつかの実施態様では、ロボットに関連する視覚センサによって取り込まれた現在の画像を識別することを含む方法が提供される。この方法は、ロボットの現在の状態を識別することと、現在の状態から候補状態にロボットを遷移させるための候補アクションを識別することとをさらに含む。この方法は、トレーニングされるニューラル・ネットワークへの入力として現在の画像、現在の状態、および候補アクションを適用することをさらに含む。この方法は、トレーニングされるニューラル・ネットワークへの現在の画像、現在の状態、および候補アクションの適用に基づいて少なくとも１つの予測された画像を生成することをさらに含む。この方法は、予測された画像に基づいて、候補アクションを実行すると決定することをさらに含む。この方法は、候補アクションを実行するとの判定に応答して、候補アクションを実行するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することをさらに含む。
【００１７】
いくつかの実施態様では、１つまたは複数のロボットによる複数の物体の動きの試み中のロボットに関連するセンサからのセンサ出力に基づいて生成された複数のトレーニング例を識別することを含む方法が提供される。トレーニング例のそれぞれは、物体の動きの試みの対応する試みからの順次画像のグループを含む。画像のそれぞれは、時間の対応する実例での環境内の１つまたは複数の対応する物体ならびに、順次画像のそれぞれについて、時間の対応する実例でのロボットの状態と、時間の対応する実例でのロボットの状態を順次画像の次の順次画像に対応する新しい状態に遷移させるために適用すべきアクションとを取り込む。この方法は、トレーニング例に基づいてニューラル・ネットワークをトレーニングすることをさらに含む。
【００１８】
他の実施態様は、上でおよび／または本明細書の他所で説明される方法のうちの１つまたは複数などの方法を実行するためにプロセッサ（たとえば、中央処理装置（ＣＰＵ）またはグラフィックス処理ユニット（ＧＰＵ））によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含むことができる。さらに他の実施態様は、上でおよび／または本明細書の他所で説明される方法のうちの１つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な１つまたは複数のプロセッサを含む１つもしくは複数のコンピュータおよび／または１つもしくは複数のロボットのシステムを含むことができる。さらに他の実施態様は、コンピューティング装置によって実行される時に上でおよび／または本明細書の他所で説明される方法のうちの１つまたは複数の実行を引き起こす機械可読命令を含むコンピュータ・プログラムを含むことができる。
【００１９】
前述の概念および本明細書でより詳細に説明される追加の概念のすべての組合せが、本明細書で開示される主題の一部であるものとして企図されていることを了解されたい。たとえば、本開示の末尾に現れる請求される主題のすべての組合せが、本明細書で開示される主題の一部であるものとして企図されている。
【図面の簡単な説明】
【００２０】
【図１】物体の動きの試みがロボットによって実行され得、物体の動きの試みに関連するデータがトレーニング例を生成するのに利用され得、かつ／またはトレーニング例がニューラル・ネットワークをトレーニングするのに利用され得る環境の例を示す図である。
【図２】図１のロボットのうちの１つと、経路に沿ったロボットの把持エンド・エフェクタの運動の例とを示す図である。
【図３】物体の動きの試みを実行し、物体の動きの試みに関連するデータを記憶する方法の例を示す流れ図である。
【図４】ロボットの物体の動きの試みに関連するデータに基づいてトレーニング例を生成する方法の例を示す流れ図である。
【図５】トレーニング例に基づいてニューラル・ネットワークをトレーニングする方法の例を示す流れ図である。
【図６Ａ】ニューラル・ネットワークのアーキテクチャの例を示し、ニューラル・ネットワークに供給され得る入力の例を示し、ニューラル・ネットワークの出力の例を示し、出力の例が予測された画像を生成するのにどのように利用され得るのかを示す図である。
【図６Ｂ】ニューラル・ネットワークのアーキテクチャの例を示し、ニューラル・ネットワークに供給され得る入力の例を示し、ニューラル・ネットワークの出力の例を示し、出力の例が予測された画像を生成するのにどのように利用され得るのかを示す図である。
【図７】ロボットの運動が発生した後のロボットの環境を予測する予測された画像（１つまたは複数）を生成するのにトレーニングされるニューラル・ネットワークを利用し、かつ／または予測された画像に基づいて１つもしくは複数のアクションを実行する方法の例を示す流れ図である。
【図８】ロボットのアーキテクチャの例を概略的に示す図である。
【図９】コンピュータ・システムのアーキテクチャの例を概略的に示す図である。
【発明を実施するための形態】
【００２１】
世界と相互作用するために学習するロボットまたは他のエージェントの１つの課題は、そのアクションがその環境内の物体にどのように影響するのかを予測することである。物理相互作用の動力学を学習するための多数の方法は、手作業でラベルを付けられた物体情報を必要とする。しかし、実世界相互作用学習を様々なシーンおよび物体にスケーリングするためには、手作業でラベルを付けられた物体情報の獲得が、ますます非実用的になる。物体のラベルを必要とせずに物理物体の動きに関して学習するために、本明細書で説明される諸実施形態は、以前のフレームからの画素動きにわたる分布を予測することによって画素動きを明示的にモデル化する、アクション条件付けされた（ａｃｔｉｏｎ−ｃｏｎｄｉｔｉｏｎｅｄ）動き予測モデルを使用する。たとえば、諸実施形態は、一から新しい画像を構成するのではなく、画素を以前の画像フレームから移流させ、新しいフレーム上でこれらを合成することができる。モデルが動きを明示的に予測するので、モデルは、物体の外見に対して少なくとも部分的に不変であり、モデルが以前に見たことがない物体に一般化されることを可能にする。実世界相互作用エージェントのビデオ予測を探求するために、押す動きを伴う大量の（たとえば、５００００個以上）ロボット相互作用のデータセットが、利用され得る。そのようなデータセットを利用して、ロボットの将来のアクションに対して条件付けされた、画像内の物体（１つまたは複数）の動きの正確な予測を可能にする動き予測モデルが、トレーニングされ得る。これは、アクションの異なる過程に基づいて異なる将来を「視覚的に推察する」ための動き予測モデルの利用を可能にする。
【００２２】
物体検出、追跡、および動き予測は、コンピュータ・ビジョンにおける基本的問題であり、物理相互作用の影響の予測は、ロボット、自律自動車、およびドローンなどの、世界の中で働くエージェントの課題である。物理相互作用の影響を予測するための学習のいくつかの既存の技法は、大型の手作業でラベルを付けられたデータセットに頼る。しかし、相互作用エージェントからのラベルを付けられていない生のビデオ・データ（順次画像フレームからなる）が、物理相互作用に関して学習するのに使用される場合に、相互作用エージェントは、それら自体の探査を介して事実上無制限の経験を自律的に収集することができる。ラベルなしで将来のビデオを予測できる表現の学習は、アクションの認識および予測において応用を有し、エージェントのアクションに対して条件付けされた時に、プラニングおよび意思決定のためにエージェントによって使用され得る予測モデルの学習になる。
【００２３】
しかし、物理現象を予測するための学習は、多数の課題をもたらす。というのは、実世界の物理相互作用が、複雑で確率論的になる傾向があり、生ビデオからの学習が、画像画素の高い次元性およびビデオからの物体の動きの部分的な可観測性の処理を要求するからである。以前のビデオ予測方法は、通常、短期予測、小さい画像パッチ、または合成画像を考慮してきた。そのような以前の方法は、モデルの内部状態から将来のフレームを再構成するという範例に従う。本明細書で説明するいくつかの実施態様では、動き予測モデルが物体および背景の外見を記憶することが要求されない。そのような外見情報は、その代わりに以前の画像フレーム（たとえば、ロボットの視覚センサによって取り込まれた以前の画像フレームまたは以前の再構成された画像フレーム）から入手され得、動き予測モデルが動き予測に焦点を合わせることを可能にする。本明細書で説明される予測モデルは、それぞれ、以前のフレーム（１つまたは複数）からの外見情報をモデルによって予測された動きと合併することができる。その結果、モデルは、それぞれ、トレーニング時に見られなかった物体を含む場合であっても、複数のステップについて将来のビデオ・シーケンスをよりよく（従来の技法に対して相対的に）予測することができる可能性がある。
【００２４】
外見および予測された動きを合併するために、以前の画像に対する相対的な画素の動きが、本明細書で説明する予測モデルに関する出力として生成され得る。この動きを以前の
画像フレームに適用することが、次の画像フレームを形成する。様々な動き予測モデルが利用され得、そのうちの３つが、本明細書で詳細に説明される。本明細書で時々動的ニューラル移流（ｄｙｎａｍｉｃ  ｎｅｕｒａｌ  ａｄｖｅｃｔｉｏｎ）（ＤＮＡ）モデルと呼ばれる第１のモデルは、新しいフレーム内の画素ごとに以前の画像フレーム内の位置にわたる分布を出力する。その後、予測された画素値が、この分布の下での期待値として計算される。本明細書で時々畳み込み動的ニューラル移流（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｄｙｎａｍｉｃ  ｎｅｕｒａｌ  ａｄｖｅｃｔｉｏｎ）（ＣＤＮＡ）モデルと呼ばれるＤＮＡモデルに対する変形形態は、新しい画素値を計算するために以前の画像フレームに適用すべき複数の正規化された畳み込みカーネルのパラメータを出力する。本明細書で時々空間トランスフォーマ・プレディクタ（ｓｐａｔｉａｌ  ｔｒａｎｓｆｏｒｍｅｒ  ｐｒｅｄｉｃｔｏｒ）（ＳＴＰ）モデルと呼ばれる最後の手法は、以前の画像フレームに適用すべき複数のアフィン変換のパラメータを出力する。ＤＮＡモデルおよびＳＴＰモデルの場合に、各予測された変換は、別々の物体を処理することが意図されている。予測を単一の画像に組み合わせるために、モデルは、変換のそれぞれに関する合成マスクをも予測する。ＤＮＡおよびＣＤＮＡは、ＳＴＰより単純であり、かつ／または実施がより簡単である可能性があり、物体中心のＣＤＮＡモデルおよびＳＴＰモデルは、解釈可能な内部表現をも提供することができる。
【００２５】
本明細書で説明される様々な実施態様は、画素の動きを予測することによって実世界画像において長期予測を行う技法を提示する。エージェント（たとえば、ロボット）によって行われるアクションに対して条件付けされる時に、モデルは、異なるアクションから異なる将来を推察する（これらの異なるアクションが実施される前に）ことを学習することができる。ビデオから物理相互作用に関して学習するために、複雑な物体相互作用を有する大型のデータセットが利用され得る。一例として、各時間ステップでの対応するアクションを有する１４０万個の画像フレームからなる５００００個のロボットの押す動きのデータセットが、利用され得る。
【００２６】
外見に対して不変のままでありながら物体の動きに関して学習するために、画素動き予測を構成するために以前のフレームからの外見情報を直接に使用する、あるクラスの動き予測モデルが利用され得る。このモデルは、まず画素空間内で物体の動きを予測することと、その後にマスキングを介してこれらの予測を合併することとによって、次のフレームを計算する。複数の物体の予測された動きを単一の次の画像予測にどのようにして効果的に合併すべきかを含む、潜在的な動き予測モデルのいくつかが、下で説明される。物体（１つまたは複数）の外見を再構成することを試みずに物体（１つまたは複数）の動き（１つまたは複数）を予測する、本明細書で説明される動き予測モデルは、外見に対して部分的に不変になることができ、以前に見たことがない物体に効果的に一般化され得る。動き予測モデルの３つの例が、これから順番に短く説明される。
【００２７】
動的ニューラル移流（ＤＮＡ）動き予測モデル
ＤＮＡ動き予測モデルでは、位置にわたる分布が、新しいフレーム内の画素ごとに以前のフレーム内で予測される。予測された画素値は、この分布の下の期待値として計算される。画素運動は、画素が長距離を移動しないという規則化する仮定の下で、ローカル領域に制約される。これは、予測の次元性を低く保つことができる。
【００２８】
形式上、予測動き変換
【数１】
2020128003.tif 000003
が、すべての画素（ｘ，ｙ）の以前の画像予測
【数２】
2020128003.tif 000004
に適用されて、以下のように次の画像予測
【数３】
2020128003.tif 000005
を形成する。
【数４】
2020128003.tif 000006
ここで、κは、予測された分布の空間的広がりである。これは、拘束されない重みを有する畳み込みとして実施され得る。このモデルのアーキテクチャは、より高次元の変換パラメータ
【数５】
2020128003.tif 000007
が、図６Ａおよび図６ＢのＣＤＮＡモデルのように第５の長短期記憶層（図６ＢのＬＳＴＭ層６７５）によって出力されるのではなく、最後の畳み込み層（図６Ｂの畳み込み層６６２）によって出力されることを除いて、図６Ａおよび図６ＢのＣＤＮＡモデルの例と一致することができる。
【００２９】
畳み込み動的ニューラル移流（ＣＤＮＡ）動き予測モデル
同一の機構が、画像の異なる領域内の異なる物体の動きを予測するのに使用され得るという仮定の下で、ＣＤＮＡ動き予測モデルは、動きを予測するためのより物体中心の手法を提示することができる。画素ごとに異なる分布を予測するのではなく、このモデルは、すべての画素の動き分布の期待値を計算する畳み込み（拘束された重みを用いる）を介して画像全体にそれぞれが適用される複数の離散分布を予測する。同一の剛性物体上の画素は、一緒に動き、したがって、同一の変換を共有することができる。より形式的には、以前の画像
【数６】
2020128003.tif 000008
に適用される１つの予測された物体変換は、以下のように画素（ｘ，ｙ）ごとに画像
【数７】
2020128003.tif 000009
を作る。
【数８】
2020128003.tif 000010
ここで、κは、生起された予測された畳み込みカーネル
【数９】
2020128003.tif 000011
の空間的サイズである。複数の変換
【数１０】
2020128003.tif 000012
が、以前の画像
【数１１】
2020128003.tif 000013
に適用されて、複数の画像
【数１２】
2020128003.tif 000014
を形成する。これらの出力画像は、下で説明し、図６Ａおよび図６Ｂに示すように、単一の予測
【数１３】
2020128003.tif 000015
に組み合わされる。
【００３０】
空間トランスフォーマ・プレディクタ（ＳＴＰ）動き予測モデル
ＳＴＰ動き予測モデルは、２Ｄアフィン画像変換のパラメータの複数のセットを作り、バイリニア・サンプリング・カーネルを使用して変換を適用する。より形式的には、アフィン・パラメータのセット
【数１４】
2020128003.tif 000016
が、以前の画像内の画素（ｘｔ−１，ｙｔ−１）と生成される画像内の画素（ｘｔ，ｙｔ）との間のワーピング・グリッド（ｗａｒｐｉｎｇ  ｇｒｉｄ）を作る。
【数１５】
2020128003.tif 000017
このグリッドは、バイリニア・カーネルを用いて適用されて、画像
【数１６】
2020128003.tif 000018
を形成することができる。
【数１７】
2020128003.tif 000019
ここで、ＷおよびＨは、画像の幅および高さである。複数の変換
【数１８】
2020128003.tif 000020
が、以前の画像
【数１９】
2020128003.tif 000021
に適用されて、複数の画像
【数２０】
2020128003.tif 000022
を形成し、これらが、その後にマスクに基づいて合成される。このアーキテクチャは、図６Ａおよび図６ＢのＣＤＮＡアーキテクチャと一致することができるが、第５のＬＳＴＭ層（図６ＢのＬＳＴＭ層７７５）でＣＤＮＡカーネルを出力するのではなく、このモデルは、第５のＬＳＴＭ層（図６ＢのＬＳＴＭ層７７５）で変換パラメータを出力する。
【００３１】
ＤＮＡ動き予測モデル、ＣＤＮＡ動き予測モデル、およびＳＴＰ動き予測モデルは、それぞれ、物体の外見ではなく物理現象の学習に焦点を合わせるように構成され、トレーニングされ得る。その結果、そのようなモデルは、画素を直接に再構成しまたは以前のフレームからの差を予測するモデルと比較して、見たことのない物体によりよく一般化され得る。
【００３２】
ＣＤＮＡ動き予測モデルおよびＳＴＰ動き予測モデルは、複数の変換された画像（物体動き予測ごとに１つの変換された画像）を生成するのに使用され得る複数の物体動き予測を作る。複数の変換された画像は、単一の画像に組み合わされる必要がある。それを行うために、ＣＤＮＡモデルおよびＳＴＰモデルは、変換された画像に適用すべきマスクのセットをも予想することができる。これらのマスクは、各変換された画像が各画素にどれほ
ど影響するのかを示す。マスクのチャネルにわたるソフトマックスは、その合計が１になることを保証することができる。より形式的には、予測された画像の合成
【数２１】
2020128003.tif 000023
は、画素ごとに各予測に対する重みを定義するマスクΞによって変調され得る。したがって、
【数２２】
2020128003.tif 000024
であり、ここで、ｃは、マスクのチャネルを表し、要素に関する乗算は、画素に関する。実際には、モデルは、一貫した方向に動きつつある物体をマスクによって除去するように学習することができる。この手法の利益は、たとえば、予測された動き変換が、画像内の複数の画素について再利用されること、および／またはモデルが、教師なしの形でより物体中心の表現を自然に抽出すること（物体と相互作用することを学習するエージェントにとって潜在的に望ましい特性）を含むことができる。
【００３３】
ＤＮＡを含む動き予測モデルごとに、モデルが以前の画像（たとえば、初期反復で取り込まれた画像フレームまたは後続の反復での直前の予測された画像）から直接に画素をコピーすることが許される、「背景マスク」が含まれ得る。さらに、近くの画素によって良好には表現されない可能性がある、以前に除外された領域を充填するために、モデルは、画像から画素を生成し、これを最終的なマスキング・ステップに含めることを許される。性能改善のほかに、これは、解釈可能な背景マスクをも作る。
【００３４】
上で議論した動き予測を生成するために、積み重ねられた畳み込みＬＳＴＭが、動き予測モデル内で使用され得る。畳み込みを介する再帰は、物理法則が空間にまたがって主として一貫しているので画像表現の空間的不変を利用するので、マルチステップ・ビデオ予測に関して機能する。その結果、畳み込み再帰を用いるモデルは、大幅により少ないパラメータを必要とし、かつ／またはこれらのパラメータをより効率的に使用することができる。
【００３５】
相互作用セッティングにおいて、エージェントの候補アクションおよび内部状態（ロボット・グリッパの姿勢など）も、次の画像に影響し、この両方が、最低次元のアクティブ化マップの空間的広がりにまたがって、連結された内部状態および候補アクション（１つまたは複数）のベクトルをタイリングすることによってモデルに一体化され得る。ただし、エージェントの内部状態（たとえば、現在のロボット・グリッパ姿勢）が、最初の時間ステップでのみネットワークに入力され、いくつかの実施態様では将来の時間ステップでのアクションから予測されなければならないことに留意されたい。たとえば、ロボット・グリッパ姿勢は、候補アクション（１つまたは複数）を考慮した現在のロボット・グリッパ姿勢の変更に基づいて将来の時間ステップにおいて予測され得る。言い換えると、将来の時間ステップでのロボット・グリッパ姿勢は、以前の時間ステップ（１つまたは複数）の候補アクション（１つまたは複数）が実施されたとの仮定に基づいて判定され得る。ニューラル・ネットワークは、Ｉ２  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｌｏｓｓを使用してトレーニングされ得る。代替のｌｏｓｓが、この方法を補足することができるはずである。
【００３６】
アクション条件付けされたビデオ予測の１つの応用例は、視覚ベースのロボット制御タ
スクでの意思決定に学習されたモデルを使用することである。ビデオからの教師なし学習は、エージェントが、人間の介入なしに独力で世界に関して学習することを可能にすることができ、これは、相互作用学習をスケール・アップするのに有益である可能性がある。ロボット・タスクに関するアクション条件付けされたビデオ予測を調査するために、実世界の物理物体相互作用に関するデータセットが使用され得る。たとえば、データセットは、ビン内の数百個の物体を押す１０個のロボット・アームを使用して生成され得る（１００万ビデオ・フレームにわたって合計５００００個の相互作用シーケンスになる）。画像（たとえば、ＲＧＢ画像またはＲＧＢＤ画像）を含めることに加えて、各フレームは、フレームの時間ステップでのグリッパ姿勢（本明細書では「内部状態」または「ロボット状態」と呼ばれる場合がある）と、その時間ステップでのアクション（後続（たとえば、次）の時間ステップでのグリッパ姿勢に対応することができる）または後続時間ステップでのグリッパ姿勢に達するための動きベクトルもしくはコマンドとを用いて注釈を付けられることも可能である。
【００３７】
いくつかの実施態様では、実行時に、初期画像（１つまたは複数）ならびに初期ロボット状態および候補アクション（１つまたは複数）が、トレーニングされるニューラル・ネットワーク・モデルへの入力として供給され得る。初期ロボット状態は、たとえば、現在のグリッパ姿勢とすることができ、候補アクション（１つまたは複数）は、それぞれが現在のグリッパ姿勢を対応する新しいグリッパ姿勢に移動させる候補アクションとすることができる。モデルは、その後、以前の時間ステップから予測された画像内で経過する各後続時間ステップ、その時間ステップの候補アクション、および更新されたロボット状態と共に公開され得る。上で説明したように、所与の反復の更新されたロボット状態は、以前の時間ステップ（１つまたは複数）の候補アクション（１つまたは複数）が適用されたと仮定する状態（すなわち、以前の時間ステップ（１つまたは複数）の候補アクション（１つまたは複数）によって変更された初期ロボット状態）とすることができる。いくつかの実施態様では、ニューラル・ネットワークは、すべての再帰モデルについて８つの将来の時間ステップに関してトレーニングされ、１８個までの将来の時間ステップについて使用され得る。将来の時間ステップの他の量が、トレーニングおよび／または使用に関して使用され得る。
【００３８】
本明細書で説明される技法のいくつかの実施態様は、それに加えてまたはその代わりに、ロボット状態および／またはアクションを考慮せずに将来のビデオを予測するモデルを生成するのに利用され得る。たとえば、室内で様々なアクションを実行する人間の俳優のビデオからなるデータセットが、モデルをトレーニングするのに使用され得る。これらのビデオは、オプションで、ビデオの穏当な時間枠内に顕著な動きがあるように、サブサンプリングされ得る（たとえば、１０フレーム毎秒に）。モデルは、もはやアクションに対して条件付けされないので、Ｘ（たとえば、１０）個のビデオ・フレームが、供給され得、ネットワークが、次のＸ個（たとえば、１０フレーム）を作るためにトレーニングされ得る。
【００３９】
物理相互作用の文脈での将来の物体の動きの予測は、インテリジェント相互作用システム内で利用され得る。本明細書で説明する種類の将来のビデオ・フレームのアクション条件付けされた予測は、ロボットなどの相互作用エージェントが使用可能な候補アクションに基づいて異なる将来を推察することを可能にすることができる。そのような機構は、アクションが特定の目標を達成するように計画し、起こりうる将来の問題を予想し（たとえば、自律車両、障害物回避の文脈で）、探査の文脈で興味深い新しい現象を認識するのに使用され得る。一特定の例として、物体の目標状態が定義され得る。たとえば、人間が、物体の目標状態を定義するためにユーザ・インターフェース入力を利用することができる。たとえば、人間が、ロボットによって取り込まれた画像を表示するインターフェースを介して物体を操作することができ、ここで、画像は、物体を含み、操作は、物体の姿勢の
調整を可能にする。また、たとえば、ロボットの内部システムが、物体に向けられたタスク（たとえば、物体を新しい姿勢に移動する）の達成において物体の目標状態を定義することができる。様々な候補アクションが、複数の予測された画像を生成するのに動き予測モデルを利用して考慮され得る。その目標状態に最も近い物体を描く予測された画像が判定され得、予測された画像を生成するために適用される候補アクションが、物体をその目標状態に移動するためにロボットによって選択され、適用され得る。この形で、動き予測モデルは、ロボットの環境に対する様々な候補アクションの影響を予測するのに利用され得、所望の環境影響に最もよく従う予測された画像をもたらした候補アクションが、選択され得る。これは、様々なロボット・アクションを実際には実施せずにこれらのアクションの影響を当初に考慮することと、その後の、考慮された影響に基づいて実際に実施すべき、これらのロボット・アクションのうちの１つまたは複数の選択とを可能にする。
【００４０】
本明細書で説明する技術のいくつかの実施態様は、トレーニングされるニューラル・ネットワークの利用が、環境内のロボットの特定の運動に応答してロボットの環境の画像に対して発生する変換を予測することを可能にするための、積み重ねられた長短期記憶（ＬＳＴＭ）層を含むニューラル・ネットワークなどのニューラル・ネットワークのトレーニングを対象とする。いくつかの実施態様では、トレーニングされるニューラル・ネットワークは、視覚センサによって生成された画像（Ｉｔ）を受け入れ、現在のロボット状態および／または現在のロボット状態を異なるロボット状態に遷移させるために実行されるべき１つもしくは複数の候補アクションを定義するパラメータなどの候補ロボット運動パラメータ（ｐｔ）を受け入れる。いくつかの実施態様では、現在のロボット状態は、ロボットのエンド・エフェクタの姿勢（たとえば、把持エンド・エフェクタの姿勢）とすることができ、各候補アクションは、それぞれ、エンド・エフェクタの後続姿勢とする（またはこれを示す）ことができる。したがって、これらの実施態様のうちのいくつかでは、候補アクションは、それぞれ、エンド・エフェクタのある姿勢からエンド・エフェクタの後続姿勢に移動するための動きベクトルを示すことができる。たとえば、第１の候補アクションは、現在の姿勢から次の時間ステップでの姿勢に移動するための動きベクトルを示すことができ、第２の候補アクションは、その姿勢から次の時間ステップでの姿勢に移動するための動きベクトルを示すことができ、以下同様である。トレーニングされるニューラル・ネットワークへの画像（Ｉｔ）および候補ロボット運動パラメータ（ｐｔ）の適用は、候補ロボット運動パラメータ（ｐｔ）の実施に応答して画像（Ｉｔ）に対して発生する少なくとも１つの予測された変換を、ニューラル・ネットワークを介して生成するのに使用され得る。これらの実施態様のいくつかでは、予測された変換は、画像（Ｉｔ）を予測された画像（ＰＩｔ）に変換するのに利用される。予測された画像（ＰＩｔ）および／またはニューラル・ネットワークの追加の予測された変換に基づいて生成される１つもしくは複数の追加の予測された画像は、候補ロボット運動パラメータを実施すべきかどうかを判定するのに利用され得る。たとえば、予測された画像（１つまたは複数）は、候補ロボット運動パラメータに基づいて発生する環境内の物体（１つまたは複数）の予測された動き（１つまたは複数）を判定するために分析され得、候補ロボット運動パラメータは、予測された動き（１つまたは複数）が望ましい場合に実施され得る。この技術の上記および他の実施態様の追加の詳細を、以下で提供する。
【００４１】
図１〜図７を参照して、動き予測ニューラル・ネットワークのトレーニングおよび利用の様々な実施態様を説明する。図１は、物体の動きの試みがロボット（たとえば、ロボット１８０Ａ、１８０Ｂ、および／または他のロボット）によって実行され得、物体の動きの試みに関連するデータがトレーニング例を生成するのに利用され得、かつ／またはトレーニング例が動き予測ニューラル・ネットワークをトレーニングするのに利用され得る環境の例を示す。
【００４２】
ロボット１８０Ａおよび１８０Ｂの例が、図１に示されている。ロボット１８０Ａおよ
び１８０Ｂは、把持エンド・エフェクタ１８２Ａおよび１８２Ｂを所望の姿勢に位置決めするための、複数の潜在的な経路のいずれかに沿った把持エンド・エフェクタ１８２Ａおよび１８２Ｂのトラバースを、ロボットの運動を介して可能にするために複数の自由度を有する「ロボット・アーム」である。たとえば、図２を参照すると、経路２０１に沿ってそのエンド・エフェクタをトラバースするロボット１８０Ａの例が示されている。図２は、経路２０１に沿ってトラバースする際のロボット１８０Ａおよびそのエンド・エフェクタによってとられる姿勢のセットのうちの２つの異なる姿勢を示すロボット１８０Ａのファントム画像および非ファントム画像を含む。図１をもう一度参照すると、ロボット１８０Ａおよび１８０Ｂは、それぞれ、少なくとも開位置と閉位置と（および／またはオプションで複数の「部分的に閉じた」位置と）の間で爪を作動させるためにそれに対応する把持エンド・エフェクタ１８２Ａおよび１８２Ｂの２つの対向する「爪」をさらに制御する。
【００４３】
視覚センサ１８４Ａおよび１８４Ｂの例も、図１に示されている。図１では、視覚センサ１８４Ａは、ロボット１８０Ａの基部または他の静止基準点に対して相対的に固定された姿勢で取り付けられる。視覚センサ１８４Ｂも、ロボット１８０Ｂの基部または他の静止基準点に対して相対的に固定された姿勢で取り付けられる。図１に示されているように、ロボット１８０Ａに対する相対的な視覚センサ１８４Ａの姿勢は、ロボット１８０Ｂに対する相対的な視覚センサ１８４Ｂの姿勢とは異なる。いくつかの実施態様では、そのような異なる姿勢は、カメラ較正に対して頑健であり、かつ／またはこれと独立のニューラル・ネットワークをトレーニングするのに利用され得る様々なトレーニング例の生成を可能にするのに有益である可能性がある。視覚センサ１８４Ａおよび１８４Ｂは、センサの見通し線内にある物体の形状、色、奥行き、および／または他の特徴に関する画像を生成することのできるセンサである。視覚センサ１８４Ａおよび１８４Ｂは、たとえば、モノグラフィック・カメラ、ステレオグラフィック・カメラ、および／または３Ｄレーザ・スキャナとすることができる。３Ｄレーザ・スキャナは、光を発する１つまたは複数のレーザと、放たれた光の反射に関係するデータを収集する１つまたは複数のセンサとを含む。３Ｄレーザ・スキャナは、たとえば、飛行時間型３Ｄレーザ・スキャナまたは三角測量ベースの３Ｄレーザ・スキャナとすることができ、ｐｏｓｉｔｉｏｎ  ｓｅｎｓｉｔｉｖｅ  ｄｅｔｅｃｔｏｒ（ＰＳＤ）または他の光学位置センサを含むことができる。
【００４４】
視覚センサ１８４Ａは、物体１９１Ａの例を含む作業空間の一部など、ロボット１８０Ａの作業空間の少なくとも一部の視野を有する。物体１９１Ａが乗る表面は図１に示されていないが、これらの物体は、机、ビン、および／または他の表面に乗ることができる。物体１９１Ａは、へら、ステープラ、および鉛筆を含む。他の実施態様では、より多数の物体、より少数の物体、追加の物体、および／または代替の物体が、本明細書で説明されるロボット１８０Ａの物体の動きの試みのすべてまたは一部の間に提供され得る。視覚センサ１８４Ｂは、物体１９１Ｂの例を含む作業空間の一部など、ロボット１８０Ｂの作業空間の少なくとも一部の視野を有する。物体１９１Ｂが乗る表面は図１に示されていないが、これらの物体は、机、ビン、および／または他の表面に乗ることができる。物体１９１Ｂは、鉛筆、ステープラ、および眼鏡を含む。他の実施態様では、より多数の物体、より少数の物体、追加の物体、および／または代替の物体が、本明細書で説明されるロボット１８０Ｂの物体の動きの試みのすべてまたは一部の間に提供され得る。
【００４５】
特定のロボット１８０Ａおよび１８０Ｂが図１に示されているが、ロボット１８０Ａおよび１８０Ｂに似た追加のロボット・アーム、他のロボット・アーム形態を有するロボット、ヒューマノイド形態を有するロボット、動物形態を有するロボット、１つまたは複数の車輪を介して移動するロボット（たとえば、自らバランスをとるロボット）、潜水艇ロボット、無人航空機（「ＵＡＶ」）、その他を含む追加のおよび／または代替のロボットが利用され得る。また、特定の把持エンド・エフェクタが図１に示されているが、追加の
および／または代替のエンド・エフェクタが利用され得る。たとえば、把持が可能ではないエンド・エフェクタが利用され得る。さらに、視覚センサ１８４Ａおよび１８４Ｂの特定の取付けが図１に示されているが、追加のおよび／または代替の取付けが利用され得る。たとえば、いくつかの実施態様では、視覚センサは、ロボットの作動不能構成要素上またはロボットの作動可能構成要素上（たとえば、エンド・エフェクタ上またはエンド・エフェクタの近くの構成要素上）など、ロボットに直接に取り付けられ得る。また、たとえば、いくつかの実施態様では、視覚センサは、それに関連するロボットとは別々の非静止構造上に取り付けられ得、かつ／またはそれに関連するロボットとは別々の構造上に非静止の形で取り付けられ得る。
【００４６】
ロボット１８０Ａ、１８０Ｂ、および／または他のロボットは、大量の物体の動きの試みを実行するのに利用され得、物体の動きの試みに関連するデータは、トレーニング例を生成するためにトレーニング例生成システム１１０によって利用され得る。いくつかの実施態様では、物体の動きの試みは、ロボットの環境内の１つまたは複数の物体を移動しようと試みるロボットのエンド・エフェクタのランダムなおよび／または擬似ランダムな運動を含む。たとえば、物体１９１Ａのうちの１つまたは複数を移動するロボット１８０Ａによる試みである。
【００４７】
いくつかの実施態様では、トレーニング例生成システム１１０のすべてまたは諸態様が、ロボット１８０Ａおよび／またはロボット１８０Ｂ上で（たとえば、ロボット１８０Ａおよび１８０Ｂの１つまたは複数のプロセッサを介して）実施され得る。たとえば、ロボット１８０Ａおよび１８０Ｂは、それぞれ、トレーニング例生成システム１１０の実例を含むことができる。いくつかの実施態様では、トレーニング例生成システム１１０のすべてまたは諸態様は、ロボット１８０Ａおよび１８０Ｂとは別々であるがこれとネットワーク通信している１つまたは複数のコンピュータ・システム上で実施され得る。
【００４８】
ロボット１８０Ａ、１８０Ｂ、および／または他のロボットによる各物体の動きの試みは、Ｔ個の別々の時間ステップまたは実例からなる。各時間ステップに、物体の動きの試みを実行するロボットの視覚センサによって取り込まれた現在の画像（ＩＴ）が記憶され、現在のロボット・パラメータ（ｐＴ）も記憶され、ロボットは、次の時間ステップの運動を選択する。いくつかの実施態様では、ある時間ステップの現在のロボット・パラメータは、たとえば、ロボットの現在の状態（たとえば、その時間ステップでの現在のエンド・エフェクタ姿勢）と、アクション（たとえば、次の時間ステップの運動を実施するために実施されるべきアクション）とを含むことができる。いくつかの実施態様では、ある時間ステップのアクションは、ロボットの現在の状態と比較した、後続の時間ステップでのロボットの状態に基づいて決定され得る。たとえば、アクションは、ロボットの現在の状態から物体の動きの試みの終りでのロボットの最終状態に移動するための動きベクトル（たとえば、現在の状態から最終状態へのベクトル）とすることができる。いくつかの実施態様では、ロボットは、１つまたは複数の物体の動きの試み中にそのエンド・エフェクタのインピーダンス制御を介して指令され得る。いくつかの実施態様では、１つまたは複数の（たとえば、すべての）物体の動きの試みは、約３〜５秒から続くことができる。いくつかの実施態様では、ロボット１８０Ａ、１８０Ｂ、および／または他のロボットは、物体の動きの試みの間に視覚センサの視野から外れて移動するようにプログラムされ得、ロボットが視野から外れている時に、画像が視覚センサによって取り込まれ得、その画像は、直後の物体の動きの試みに関連付けられ得る。
【００４９】
いくつかの実施態様では、物体の動きの試みは、ランダムに押す試みおよび／または「中央に掃引する」試みを含むことができる。ランダムに押す試みは、オプションで、物体１９１Ａ／１９１Ｂの付近のエリア、物体１９１Ａ／１９１Ｂを含むビンに基づくエリア、その他などの制約されたエリア内の、エンド・エフェクタのランダム（たとえば、真に
ランダムおよび／または擬似ランダム）な運動とすることができる。中央に掃引する試みは、その中で物体の動きの試みが制限される制約されたエリアの外側境界の付近またはその上のランダムな位置から開始することができ、制約されたエリアの中央に向かってエンド・エフェクタを曲折させることができる。たとえば、制約されたエリアは、全般的にビンに従うことができ、ランダムな掃引の試みは、ビンの周辺付近のランダムな位置から開始し、ビンの中央に向かってランダムに曲折することができる。ランダムな掃引の試みは、物体がビンの縁に集積するのを防ぐのに有益である可能性がある。
【００５０】
各物体の動きの試みは、（ＩＴ，ｐＴ）によって表現される、Ｔ個のフレームを有する少なくとも１つのトレーニング例をもたらす。すなわち、トレーニング例の各フレームは、少なくとも、対応する時間ステップに観察された画像（Ｉｔ）と、対応する時間ステップでのロボット状態および対応する時間ステップに実施されるべきアクションを示すロボット運動パラメータ（ｐＴ）とを含む。複数のロボットの複数の物体の動きの試みに関するトレーニング例は、トレーニング例生成システム１１０によってトレーニング例データベース１１７に記憶される。
【００５１】
ロボットに関連するセンサによって生成されたデータおよび／または生成されたデータから導出されたデータは、ロボットにローカルおよび／またはロボットからリモートの１つまたは複数の非一時的コンピュータ可読媒体に記憶され得る。いくつかの実施態様では、視覚センサによって取り込まれた画像は、赤チャネル、青チャネル、緑チャネル、および／または奥行きチャネルなど、複数のチャネルを含むことができる。画像の各チャネルは、画像の画素のそれぞれについて０から２５５までの値など、画像の複数の画素のそれぞれの値を定義する。いくつかの実施態様では、トレーニング例のそれぞれについて初期時間ステップに観察された画像（ＩＴ）は、トレーニング例内の追加画像と連結され得る。追加画像は、対応する物体の動きの試みに先行する追加画像とすることができ、ここで、追加画像は、把持エンド・エフェクタおよび／またはロボットの他の構成要素を含まず、あるいは、異なる姿勢のエンド・エフェクタおよび／または他のロボット構成要素（たとえば、現在の画像の姿勢とオーバーラップしないエンド・エフェクタおよび／または他のロボット構成要素）を含む。たとえば、追加画像は、すべての先行する物体の動きの試みの後であるが、物体の動きの試みに関するエンド・エフェクタ運動が開始する前で、把持エンド・エフェクタが視覚センサの視野から外れて移動される時に、取り込まれ得る。
【００５２】
トレーニング・エンジン１２０は、トレーニング例データベース１１７のトレーニング例に基づいてニューラル・ネットワーク１２５をトレーニングする。いくつかの実施態様では、ＣＮＮ  １２５のトレーニングは、ニューラル・ネットワーク１２５へのトレーニング例の適用に基づいてニューラル・ネットワーク１２５を反復して更新することを含む。トレーニングされるＣＮＮ  １２５は、環境内のロボットの特定の運動に応答してロボットの環境の画像に対して発生する変換を予測するようにトレーニングされる。
【００５３】
図３は、物体の動きの試みを実行し、物体の動きの試みに関連するデータを記憶する方法３００の例を示す流れ図である。便宜のために、この流れ図の動作は、その動作を実行するシステムを参照して説明される。このシステムは、ロボット１８０Ａ、１８０Ｂ、８４０、および／または他のロボットのプロセッサおよび／またはロボット制御システムなど、ロボットの１つまたは複数の構成要素を含むことができる。さらに、方法３００の動作が、特定の順序で示されるが、これは、限定的であることを意図されたものではない。１つまたは複数の動作が、並べ変えられ、省略され、または追加され得る。
【００５４】
ブロック３５２では、システムが、物体の動きの試みを開始する。ブロック３５４では、システムが、エンド・エフェクタが画像内に存在しない、環境の画像を記憶する。たとえば、システムは、視覚センサの視野の外（すなわち、環境の眺めをさえぎらない）に把
持エンド・エフェクタを移動し、把持エンド・エフェクタが視野の外にある時の実例に画像を取り込むことができる。その後、画像は、記憶され、物体の動きの試みに関連付けられ得る。いくつかの実施態様では、ブロック３５４は省略され得る。
【００５５】
ブロック３５６では、システムが、運動を決定し、実施する。たとえば、システムは、エンド・エフェクタの姿勢を制御するアクチュエータのうちの１つまたは複数を作動させる１つまたは複数の動きコマンドを生成し、これによってエンド・エフェクタの姿勢を変更することができる。
【００５６】
いくつかの実施態様および／またはブロック３５６の反復では、動きコマンドは、エンド・エフェクタによって到達可能な作業空間、エンド・エフェクタが物体の動きの試みに関してその中に閉じこめられる制約された空間、ならびに／またはエンド・エフェクタの姿勢を制御するアクチュエータの位置限界および／もしくはトルク限界によって定義される空間などの所与の空間内でランダムとすることができる。たとえば、運動を実施するためにブロック３５６でシステムによって生成される動きコマンドは、所与の空間内でランダムとすることができる。本明細書で使用される時に、ランダムは、真にランダムまたは擬似ランダムを含むことができる。
【００５７】
いくつかの実施態様では、物体の動きの試みごとのブロック３５６の最初の反復で、エンド・エフェクタは、ブロック３５４で視野から外れて移動することに基づいて、「定位置から外れている」場合がある。これらの実施態様のいくつかでは、ブロック３５６の最初の反復の前に、エンド・エフェクタは、ランダムにまたは他の形で「定位置に戻って」移動され得る。たとえば、エンド・エフェクタは、セットされた「開始位置」に戻って移動され、かつ／または所与の空間内のランダムに選択された位置に移動され得る。
【００５８】
ブロック３５８では、システムは、（１）物体の動きの試みの現在の実例（タイム・スタンプ）でのロボットの環境を取り込む画像と、（２）現在の実例でのロボット・パラメータとを記憶する。たとえば、システムは、ロボットに関連する視覚センサによって生成された現在の画像を記憶し、その画像を現在の実例（たとえば、タイムスタンプ）に関連付けることができる。また、たとえば、システムは、ロボットの関節の１つまたは複数の関節位置センサおよび／またはロボットのトルク・センサからのデータに基づいてロボット・パラメータを決定することができ、システムは、これらのパラメータを記憶することができる。システムは、タスク空間、関節空間、および／または別の空間内でのロボット・パラメータを決定し、記憶することができる。
【００５９】
ブロック３６０では、システムが、現在の実例が物体の動きの試みの最後の実例であるかどうかを判定する。いくつかの実施態様では、システムは、ブロック３５２、３５４、３５６、もしくは３５８で実例カウンタを増分し、かつ／または時間が経過する時に時間カウンタを増分し、しきい値とのカウンタの値の比較に基づいて、現在の実例が最後の実例であるかどうかを判定することができる。たとえば、カウンタは、時間カウンタとすることができ、しきい値は、３秒、４秒、５秒、および／または他の値とすることができる。いくつかの実施態様では、しきい値は、方法３００の１つまたは複数の反復の間で変化することができる。
【００６０】
ブロック３６０で、システムが、現在の実例が物体の動きの試みの最後の実例ではないと判定する場合に、システムは、ブロック３５６に戻り、ここで、システムは、追加の運動を決定し、実施し、その後、ブロック３５８に進み、ここで、システムは、（追加の運動の）現在の実例での画像およびロボット・パラメータを記憶する。多くの実施態様では、ブロック３５６、３５８、３６０、および／または他のブロックは、相対的に高い頻度で実行され、これによって、物体の動きの試みごとに相対的に大量のデータを記憶するこ
とができる。
【００６１】
ブロック３６０で、システムが、現在の実例が物体の動きの試みの最後の実例であると判定する場合に、システムは、ブロック３６６に進み、ここで、システムは、カウンタ（たとえば、実例カウンタおよび／または時間カウンタ）をリセットし、ブロック３５２に戻って進んで、別の物体の動きの試みを開始する。
【００６２】
いくつかの実施態様では、図３の方法３００は、オプションで方法３００のそれぞれの反復のうちの１つまたは複数（たとえば、すべて）の間に並列に動作する、複数のロボットのそれぞれの上で実施され得る。これは、１つのロボットだけが方法３００を動作させている場合より多数の物体の動きの試みが所与の時間期間内に達成されることを可能にすることができる。さらに、複数のロボットのうちの１つまたは複数が、他のロボットに関連する１つまたは複数の視覚センサの姿勢とは独自のロボットに対する相対的な姿勢を有する関連する視覚センサを含む実施態様では、複数のロボットからの物体の動きの試みに基づいて生成されるトレーニング例は、これらのトレーニング例に基づいてトレーニングされるニューラル・ネットワークでの視覚センサ姿勢に対する頑健性を提供することができる。さらに、複数のロボットのエンド・エフェクタおよび／もしくは他のハードウェア構成要素が変化し、かつ／もしくは異なって摩耗する実施態様、ならびに／または異なるロボットが異なる物体（たとえば、異なるサイズの物体、異なる重量の物体、異なる形状の物体、異なる半透明性の物体、異なる材料の物体）と相互作用し、かつ／もしくは異なる環境（たとえば、異なる表面、異なる照明、異なる環境障害物）内で相互作用する実施態様では、複数のロボットからの物体の動きの試みに基づいて生成されるトレーニング例は、様々なロボット構成および／または環境構成に対する頑健性を提供することができる。
【００６３】
いくつかの実施態様では、所与のロボットによって到達可能であり、物体の動きの試みがそれに対して行われる物体は、方法３００の異なる反復中に異なる可能性がある。たとえば、人間のオペレータおよび／または別のロボットが、ロボットの１つまたは複数の物体の動きの試みの間にロボットの作業空間に物体を追加し、かつ／または除去する可能性がある。これは、トレーニング・データの多様性を増加させる可能性がある。いくつかの実施態様では、照明、表面、障害物、その他などの環境要因が、それに加えておよび／またはその代わりに、方法３００の異なる反復中に異なる可能性があり、これも、トレーニング・データの多様性を増加させる可能性がある。
【００６４】
図４は、ロボットの物体の動きの試みに関連するデータに基づいてトレーニング例を生成する方法４００の例を示す流れ図である。便宜のために、この流れ図の動作は、その動作を実行するシステムを参照して説明される。このシステムは、ロボット１８０Ａ、１８０Ｂ、８４０のプロセッサおよび／もしくはロボット制御システム、ならびに／またはトレーニング例生成システム１１０および／もしくはオプションでロボットとは別々に実施され得る他のシステムのプロセッサなど、ロボットおよび／または別のコンピュータ・システムの１つまたは複数の構成要素を含むことができる。さらに、方法４００の動作が、特定の順序で示されるが、これは、限定的であることを意図されたものではない。１つまたは複数の動作が、並べ変えられ、省略され、または追加され得る。
【００６５】
ブロック４５２では、システムが、トレーニング例生成を開始する。ブロック４５４では、システムが、物体の動きの試みを選択する。たとえば、システムは、複数の記憶された物体の動きの試みに関連するデータを含むデータベースにアクセスし、記憶された物体の動きの試みのうちの１つを選択することができる。選択される物体の動きの試みは、たとえば、図３の方法３００に基づいて生成された物体の動きの試みとすることができる。
【００６６】
ブロック４５６では、システムが、物体の動きの試みの順次フレームのグループを選択する。たとえば、システムは、グループの最初の実例として物体の動きの試みの最初のフレームを選択することができ、グループの第２の実例として時間枠内ですぐ近くの次を選択することができ、グループの第３の実例として時間枠内ですぐ近くの次を選択することができるなどである。別の例として、システムは、グループの第１の実例として物体の動きの試みの第５のフレームを選択することができ、グループの第２の実例として物体の第６のフレームを選択することができるなどである。
【００６７】
ブロック４５８では、システムが、トレーニング例として順次フレームを割り当てる。説明するように、順次フレームは、それぞれ、対応する時間ステップの画像、対応する時間ステップのロボット状態、および対応する時間ステップのアクションを含むことができる。いくつかの実施態様では、ブロック４５６またはブロック４５８で、システムは、オプションでフレームの画像を処理することができる。たとえば、システムは、オプションで、ニューラル・ネットワークの入力層の定義されたサイズに丁度合うように画像のサイズを変更し、画像から１つまたは複数のチャネルを除去し、かつ／または奥行きチャネルの値を正規化する（画像が奥行きチャネルを含む実施態様で）ことができる。
【００６８】
ブロック４６０では、システムが、追加のトレーニング例を生成すべきかどうかを判定する。そうである場合には、システムは、ブロック４５４に戻って進み、物体の動きの試み（たとえば、異なる物体の動きの試み）を選択する。そうでない場合には、トレーニング例生成は、ブロック４６８で終了する。
【００６９】
いくつかの実施態様では、追加のトレーニング例を生成すべきかどうかの判定は、残りの未処理の物体の動きの試みがあるかどうかを判定することを含むことができる。いくつかの実施態様では、追加のトレーニング例を生成すべきかどうかの判定は、それに加えておよび／またはその代わりに、しきい個数のトレーニング例が既に生成され、かつ／または他の判断基準が満足されているかどうかを判定することを含むことができる。
【００７０】
方法４００の別の反復が、もう一度実行され得る。たとえば、方法４００は、少なくともしきい個数の追加の物体の動きの試みが実行されることに応答して、もう一度実行され得る。
【００７１】
方法３００および方法４００が、明瞭さのために本明細書では別々の図に示されているが、方法４００の１つまたは複数のブロックが、方法３００の１つまたは複数のブロックを実行するものと同一の構成要素によって実行され得ることを理解されたい。たとえば、方法３００および方法４００のブロックのうちの１つまたは複数（たとえば、すべて）が、ロボットのプロセッサによって実行され得る。また、方法４００の１つまたは複数のブロックが、方法３００の１つまたは複数のブロックと組み合わせて、これに先行して、またはこれに続いて実行され得ることを理解されたい。
【００７２】
図５は、トレーニング例に基づいてニューラル・ネットワークをトレーニングする方法５００の例を示す流れ図である。便宜のために、この流れ図の動作は、その動作を実行するシステムを参照して説明される。このシステムは、トレーニング・エンジン１２０および／またはニューラル・ネットワークに関して（たとえば、ニューラル・ネットワーク１２５に関して）で動作する他のコンピュータ・システムのプロセッサ（たとえば、ＧＰＵ）など、コンピュータ・システムの１つまたは複数の構成要素を含むことができる。さらに、方法５００の動作が、特定の順序で示されるが、これは、限定的であることを意図されたものではない。１つまたは複数の動作が、並べ変えられ、省略され、または追加され得る。
【００７３】
ブロック５５２では、システムが、トレーニングを開始する。ブロック５５４では、システムが、トレーニング例を選択する。たとえば、システムは、図４の方法４００に基づいて生成されたトレーニング例を選択することができる。
【００７４】
ブロック５５６では、システムが、選択されたトレーニング例の第１のフレームの画像をニューラル・ネットワークの初期層に適用する。たとえば、システムは、第１のフレームの画像をニューラル・ネットワークの初期畳み込み層に適用することができる。本明細書で説明するように、いくつかの実施態様では、トレーニング例は、オプションで、少なくとも部分的にエンド・エフェクタおよび／または他のロボット構成要素を省略する追加画像を含むことができる。これらの実施態様のいくつかでは、システムは、第１のフレームの画像と追加画像とを連結し、連結された画像を初期層に適用する。これらの実施態様の他のいくつかでは、第１のフレームの画像は、トレーニング例内で既に追加画像と連結されている。
【００７５】
ブロック５５８では、システムが、第１のフレームのロボット運動パラメータをニューラル・ネットワークの追加層に適用する。たとえば、システムは、第１のフレームのロボット運動パラメータを、ブロック５５６で画像が適用される初期層の下流の、ニューラル・ネットワークの追加層（たとえば、畳み込みＬＳＴＭ層）に適用することができる。本明細書で説明するように、第１のフレームのロボット運動パラメータは、初期フレームの時間ステップでのロボット状態と、初期フレームの時間ステップに実行されるアクションとを含むことができる。
【００７６】
ブロック５６０では、システムが、適用された画像および適用されたロボット運動パラメータに基づいてニューラル・ネットワーク上で予測された画像を生成する。予測された画像の生成は、ニューラル・ネットワークの構造に依存し、ニューラル・ネットワークのＤＮＡ変形形態、ＣＤＮＡ変形形態、およびＳＴＰ変形形態に関して本明細書で説明する技法のうちの１つまたは複数を含むことができる。
【００７７】
ブロック５６２では、システムが、トレーニング例の第２のフレームの画像に対する予測された画像の比較に基づいて、ニューラル・ネットワーク上で誤差逆伝搬および／または他のトレーニング技法を実行する。いくつかの実施態様では、システムは、比較に基づいてＩ２  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｌｏｓｓを判定し、Ｉ２  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｌｏｓｓに基づいてニューラル・ネットワークを更新する。
【００７８】
ブロック５６４では、システムが、直前に予測された画像をニューラル・ネットワークの初期層に入力として適用する。ブロック５６４の最初の反復では、これは、ブロック５６０の予測された画像である。いくつかの実施態様では、ブロック５６４で、システムは、その代わりに、ニューラル・ネットワークの追加層への入力として、直前に予測された画像に対応するトレーニング例のフレームの画像を適用することができる。ブロック５６４の最初の反復では、これは、トレーニング例の第２のフレームの画像になるはずである。
【００７９】
ブロック５６６では、システムが、次のフレームのロボット運動パラメータをニューラル・ネットワークの追加層に適用する。ブロック５６４の最初の反復では、これは、第２のフレームのロボット運動パラメータになるはずである。
【００８０】
ブロック５６８では、システムが、ニューラル・ネットワークへの画像および適用されたロボット運動パラメータの適用に基づいて予測された画像を生成する。予測された画像の生成は、ニューラル・ネットワークの構造に依存し、ニューラル・ネットワークのＤＮＡ変形形態、ＣＤＮＡ変形形態、およびＳＴＰ変形形態に関して本明細書で説明する技法
のうちの１つまたは複数を含むことができる。
【００８１】
ブロック５７０では、システムが、トレーニング例の次のフレームの画像に対する予測された画像の比較に基づいて、ニューラル・ネットワーク上で誤差逆伝搬および／または他のトレーニング技法を実行する。ブロック５７０の最初の反復では、次のフレームの画像は、第３のフレームの画像になるはずである。いくつかの実施態様では、システムは、比較に基づいてＩ２  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｌｏｓｓを判定し、Ｉ２  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｌｏｓｓに基づいてニューラル・ネットワークを更新する。
【００８２】
ブロック５７２では、システムが、トレーニング例内に考慮すべき追加フレームがあるかどうかを判定する。たとえば、トレーニングが８回の反復に関する場合に、システムは、８つのフレームがまだ考慮されていない場合に、考慮すべき追加フレームがあると判定することができる。システムが、ブロック５７２で、考慮すべき追加フレームがあると判定する場合には、システムは、ブロック５６４に戻って進み、ブロック５６４、５６６、５６８、５７０、および５７２のもう１つの反復を実行する。
【００８３】
システムが、ブロック５７２で、考慮すべき追加フレームがないと判定する場合には、システムは、ブロック５７４に進む。ブロック５７４では、システムが、追加のトレーニング例があるかどうかを判定する。システムが、追加のトレーニング例があると判定する場合には、システムは、ブロック５５４に戻り、別のトレーニング例を選択する。いくつかの実施態様では、追加のトレーニング例があるかどうかの判定は、ニューラル・ネットワークのトレーニングに利用されていない残りのトレーニング例があるかどうかを判定することを含むことができる。いくつかの実施態様では、追加のトレーニング例があるかどうかの判定は、それに加えておよび／またはその代わりに、しきい個数のトレーニング例が利用され、かつ／または他の判断基準が満足されたかどうかを判定することを含むことができる。
【００８４】
システムが、追加のトレーニング例がないおよび／またはなんらかの他の判断基準が満足されたと判定する場合には、システムはブロック５７６に進む。
【００８５】
ブロック５７６では、ニューラル・ネットワークのトレーニングが終了することができる。トレーニングされるニューラル・ネットワークは、環境内で実行すべき１つまたは複数の運動を判定する際の１つまたは複数のロボットによる使用のために提供され得る。たとえば、ロボットは、図７の方法７００を実行する際に、トレーニングされるニューラル・ネットワークを利用することができる。
【００８６】
図６Ａおよび図６Ｂは、ニューラル・ネットワーク６００のアーキテクチャの例を示し、ニューラル・ネットワークに供給され得る入力の例を示し、ニューラル・ネットワーク６００の出力の例を示し、出力の例が予測された画像を生成するのにどのように利用され得るのかを示す。図６Ａおよび図６Ｂのニューラル・ネットワーク６００は、図５の方法５００に基づいてトレーニングされ得るニューラル・ネットワークの例である。図６Ａおよび図６Ｂのニューラル・ネットワーク６００は、さらに、トレーニングされた後に図７の方法７００の実施態様内で利用され得るニューラル・ネットワークの例である。
【００８７】
図６Ａおよび図６Ｂのニューラル・ネットワーク６００の例は、ＣＤＮＡ動き予測モデルの例である。ニューラル・ネットワーク６００は、図１のニューラル・ネットワーク１２５とすることができ、本明細書で説明する３つの提案される動き予測モデルのうちの１つである。図６Ａおよび図６Ｂのニューラル・ネットワーク６００では、畳み込み層６６１、畳み込みＬＳＴＭ層６７２〜６７７、および畳み込み層６６２が、画像６０１（たとえば、最初の反復ではカメラによって取り込まれた画像、後続の反復では直前に予測され
た画像）を処理するのに利用される。１０個の正規化されたＣＤＮＡ変換カーネル６８２の出力は、ネットワークの最小次元層（畳み込みＬＳＴＭ層６７５）に関する出力として生成され、合成マスク６８４（たとえば、１１チャネル・マスク）の出力は、最後の層（畳み込み層６２）に関する出力として生成される。本明細書で説明するように、合成マスク６８４は、静的背景用の１つのチャネルと１０個の追加チャネル（それぞれ、１０個のＣＤＮＡ変換カーネル６８２のうちの対応する１つに基づいて生成される変換された画像に対応する）とを含むことができる。ＣＤＮＡカーネル６８２は、画像６０１（たとえば、最初の反復ではカメラによって取り込まれた画像、後続の反復では直前に予測された画像）を１０個の異なる変換された画像６８３に変換６９３するために適用される。１０個の異なる変換された画像は、マスクされた合成６９４で、予測された画像６８５を生成するために合成マスク６８４に従って合成される。１０個の異なる変換された画像６８３への画像６０１の変換６９３は、ＣＤＮＡカーネル６８２に基づいて画像６０１を畳み込むこと（たとえば、変換された画像６８３のうちの第１の画像を生成するためにＣＤＮＡカーネル６８２のうちの第１のカーネルに基づいて画像６０１を畳み込むこと、変換された画像６８３のうちの第２の画像を生成するためにＣＤＮＡカーネルのうちの第２のカーネルに基づいて画像６０１を畳み込むこと、その他）を含むことができる。合成マスク６８４は、適用されるチャネルに関するソフトマックスに起因して、各画素で合計１になる。
【００８８】
様々なスキップ接続が、図６Ａおよび図６Ｂに示されている。具体的には、畳み込みＬＳＴＭ層６７３の出力から畳み込みＬＳＴＭ層６７７の入力へのスキップ接続および畳み込みＬＳＴＭ層６７１の出力から畳み込み層６６２の入力へのスキップ接続である。様々な層および出力の次元の例も示されている。たとえば、画像６０１は、６４画素×６４画素とし、３つのチャネルを含むことができる（「６４×６４×４」によって示される）。また、たとえば、畳み込みＬＳＴＭ層６７５は、８×８次元（「８×８」によって示される）を有し、５×５畳み込み（「５×５」によって示される）を適用することができる。
【００８９】
ニューラル・ネットワーク６００の追加の例の説明を、これから提供する。ニューラル・ネットワーク６００は、１つのストライド２  ５×５畳み込み層６６１とそれに続く畳み込みＬＳＴＭ層６７１〜６７７からなるコア・トランク（ｃｏｒｅ  ｔｒｕｎｋ）を含む。畳み込みＬＳＴＭ層６７１〜６７７のそれぞれは、５×５畳み込みに配置された重みを有し、先行するＬＳＴＭの出力は、次のＬＳＴＭに直接に供給される。畳み込みＬＳＴＭ層６７３および７６５には、解像度を低下させるためにストライド２ダウンサンプリングが先行し、畳み込みＬＳＴＭ層６７５、６７６、および６７７には、アップサンプリングが先行する。ＬＳＴＭスタックの終りには、アップサンプリング・ステージおよび最後の畳み込み層６６２が続き、畳み込み層６６２は、様々な変換された画像６８３を合成し、静的背景に対して合成するためのフル解像度合成マスク６８４を出力する。マスクされた合成６９４は、合成マスク６８４および変換された画像６８３を使用して、予測された画像６８５を生成することができる。ＳＴＰ動き予測モデルの場合に、マスクが、様々な変換された画像（変換行列に基づいて生成される）を合成するためにも生成され、ＳＴＰとＤＮＡとの両方の場合に、合成マスクが、静的背景に対する合成のために生成されることに留意されたい。
【００９０】
高解像度情報を保存するために、畳み込みＬＳＴＭ層６７１の出力から畳み込み層６６２の入力へのスキップ接続および畳み込みＬＳＴＭ層６７３の出力から畳み込みＬＳＴＭ層６７７の入力へのスキップ接続が設けられる。これらのスキップ接続は、後続の層にアクティブ化を送る前に、スキップ層アクティブ化と先行する層のアクティブ化とを連結する。たとえば、畳み込みＬＳＴＭ層６７７への入力は、畳み込みＬＳＴＭ層６７３からの出力と畳み込みＬＳＴＭ層６７６からの出力との連結からなる。このモデルは、入力としてロボット状態６０２（たとえば、グリッパ姿勢）およびロボット・アクション６０３（たとえば、グリッパ動きコマンド）のロボット運動パラメータをも含む。たとえば、ロボ
ット状態６０２は、ベクトル（ｘ，ｙ，ｚ）および角度（ピッチ，ヨー）の値を有する５次元とすることができる。ロボット・アクションは、やはり５次元とすることができ、アクションが適用される場合に後続（たとえば、次）の時間ステップのベクトルおよび角度の値、ならびに／またはアクションが適用される場合に動きベクトルとすることができる。たとえば、ロボット・アクションは、指令されるグリッパ姿勢のベクトル（ｘ，ｙ，ｚ）および角度（ピッチ，ヨー）とすることができる。指令されるグリッパ姿勢は、次の時間ステップの指令されるグリッパ姿勢または将来の時間ステップの指令されるグリッパ姿勢（たとえば、最後の時間ステップでのグリッパのターゲット姿勢）とすることができる。ロボット状態６０２およびロボット・アクション６０３のベクトルは、まず、１０個のチャネルを有する８×８応答マップ６８１にタイリングされ、その後、６９３で、チャネルに関して、畳み込みＬＳＴＭ層６７５の入力（畳み込みＬＳＴＭ層６７４からの出力と連結されるに連結される。現在の反復のロボット状態６０２は、現在のロボット状態とすることができ、後続の反復のロボット状態６０２は、先行する現在のロボット状態および先行するロボット・アクションから線形に予測され得るが、追加のまたは代替のロボット状態予測モデルが使用され得る。
【００９１】
アクション条件付けされたロボット操作タスクの場合に、すべての３つのモデル（ＤＮＡ、ＣＤＮＡ、およびＳＴＰ）は、入力としてロボットの現在の状態（たとえば、グリッパ姿勢）およびアクション（たとえば、グリッパ動きコマンド）を含む。３つのモデルは、以前の画像に適用される変換の形において異なる。物体中心のＣＤＮＡモデルおよびＳＴＰモデルは、畳み込みＬＳＴＭ層６７５の後で変換パラメータを出力する。両方の場合に、畳み込みＬＳＴＭ層６７５の出力は、ＣＤＮＡの場合にフィルタ・パラメータに直接に、またはＳＴＰの場合に１つの１００ユニットの隠れ層を介してのいずれかで、平坦化され線形変換される。ＣＤＮＡの場合には１０個のＣＤＮＡフィルタが存在でき、このＣＤＮＡフィルタは、サイズにおいて５×５とし、空間ソフトマックスを介して合計が１になるように正規化され得、その結果、各フィルタは、新しい画素値がそこから入手される以前の画像内の位置にわたる分布を表現するようになる。ＳＴＰパラメータは、１０個の３×２アフィン変換行列に対応することができる。変換は、１０個の別々の変換された画像を作成するために、先行する画像に適用される。ＣＤＮＡ変換は、畳み込みに対応し（カーネルはネットワークの出力であるが）、ＳＴＰ変換は、アフィン変換である。ＤＮＡモデルは、変換パラメータが最後の畳み込み層６６２すなわちマスクと同一の場所で出力されるという点で、他の２つとは異なる。これは、ＤＮＡモデルが、画像全体と同程度に大きい変換マップを出力するからである。画像画素ごとに、ＤＮＡモデルは、ＣＤＮＡモデルと同様に、新しい画素値を入手するために以前の画像に適用され得る５×５畳み込みカーネルを出力する。しかし、このカーネルは、空間的に変化するので、このモデルは、ＣＤＮＡと同等ではない。この変換は、１つの変換された画像だけを作る。変換の後に、変換された画像（１つまたは複数）および以前の画像が、マスクに基づいて一緒に合成される。以前の画像は、静的「背景」画像として含められ、本明細書で説明するように、背景画像に対するマスクは、シーンの静的部分を拾い出す傾向がある。最終的な画像は、各変換された画像および背景画像をそのマスク値によって乗算することと、マスクされた画像のすべてを一緒に加算することとによって形成される。
【００９２】
特定の畳み込みニューラル・ネットワークが図６Ａおよび図６Ｂに示されているが、変形形態が可能である。たとえば、より多数またはより少数のＬＳＴＭ層が提供され得、１つまたは複数の層が、例として提供される層とは異なるサイズにされ得るなどである。また、たとえば、代替の予測された変換および／または合成マスクが、モデルに関して生成され得る。
【００９３】
図６Ａおよび図６Ｂのニューラル・ネットワークまたは他のニューラル・ネットワークは、本明細書で説明する技法に従ってトレーニングされた後に、様々な目的に利用され得
る。図７を参照すると、ロボットの運動が発生した後のロボットの環境を予測する予測された画像（１つまたは複数）を生成するのにトレーニングされるニューラル・ネットワークを利用し、かつ／または予測された画像に基づいて１つまたは複数のアクションを実行する、方法７００の例の流れ図が示されている。便宜のために、この流れ図の動作は、その動作を実行するシステムを参照して説明される。このシステムは、ロボット１８０Ａ、１８０Ｂ、８４０、および／または他のロボットのプロセッサ（たとえば、ＧＰＵおよび／またはＣＰＵ）および／またはロボット制御システムなど、ロボットの１つまたは複数の構成要素を含むことができる。方法７００の１つまたは複数のブロックを実施する際に、システムは、たとえばロボットにローカルに記憶され、かつ／またはロボットからリモートに記憶され得るトレーニングされるニューラル・ネットワークを介して動作することができる。さらに、方法７００の動作が、特定の順序で示されるが、これは、限定的であることを意図されたものではない。１つまたは複数の動作が、並べ変えられ、省略され、または追加され得る。
【００９４】
ブロック７５２では、システムが、ロボットの候補運動の少なくとも一部の候補ロボット運動パラメータを生成する。候補ロボット運動パラメータは、たとえば、現在のロボット状態（たとえば、候補ロボット運動パラメータの現在のロボット状態または初期ロボット状態）と、実行されるべき１つまたは複数のアクション（たとえば、指令されたロボット状態）とを含むことができる。候補ロボット運動パラメータは、ロボットの環境内でロボットの１つまたは複数の構成要素によって実行可能な（しかし、まだ実行されていない）候補運動の少なくとも一部を定義する。たとえば、運動は、第１の姿勢から第２の姿勢へのロボットのエンド・エフェクタの運動を含むことができ、候補ロボット運動パラメータは、第１の姿勢から第２の姿勢への運動に関連する様々なパラメータ、または、第１の姿勢から第１の姿勢と第２の姿勢との間の中間姿勢への運動に関連するパラメータを定義することができる。たとえば、候補ロボット運動パラメータは、候補運動の一部だけ（たとえば、候補運動の第１の部分のあるパーセンテージだけまたは候補運動の最初のＸ個の時間ステップだけ）を定義することができる。
【００９５】
運動パラメータは、たとえば、候補運動の一部を達成するための関節空間動きベクトル（たとえば、関節角度運動）、候補運動の一部に関するエンド・エフェクタの姿勢の変換、候補運動の一部を達成するための関節空間トルク・ベクトル、および／または他のパラメータを含むことができる。特定の運動パラメータおよび／または運動パラメータの形が、将来のブロックで利用されるトレーニングされるニューラル・ネットワークの入力パラメータに依存することに留意されたい。
【００９６】
いくつかの実施態様では、候補運動は、別のシステムによって生成され、候補運動の候補ロボット運動パラメータは、候補運動が実施される場合に、候補運動が環境内の物体（１つまたは複数）にどのように影響するのかを判定するために、方法７００内でニューラル・ネットワークに適用される。これらの実施態様のいくつかでは、候補運動は、それが物体（１つまたは複数）にどのように影響するのかに基づいて実施され得、それが物体（１つまたは複数）にどのように影響するのかに基づいて洗練され得、あるいは、それが物体（１つまたは複数）にどのように影響するのかに基づいて実施されないものとされ得る。いくつかの実施態様では、システムは、複数の別個の候補運動を生成し、それぞれが環境内の物体（１つまたは複数）にどのように影響するのかを判定するために、方法７００の複数の反復で候補運動のそれぞれの候補ロボット運動パラメータをニューラル・ネットワークに適用する。これらの実施態様のいくつかでは、運動のうちの１つが、それらが物体（１つまたは複数）にどのように影響するのかに基づいて、実施のために選択され得る。
【００９７】
ブロック７５４では、システムが、ロボットの環境内の１つまたは複数の環境物体を取
り込んだ画像を識別する。候補運動の一部に関する方法７００の最初の反復など、いくつかの実施態様では、画像は現在の画像である。いくつかの実施態様では、システムは、エンド・エフェクタが少なくとも部分的に視覚センサの視野の外にあった時に視覚センサによって取り込まれた環境物体の追加画像など、エンド・エフェクタおよび／または他のロボット構成要素を少なくとも部分的に省略した追加画像をも識別する。いくつかの実施態様では、システムは、連結された画像を生成するために、画像と追加画像とを連結する。いくつかの実施態様では、システムは、オプションで、画像および／または連結された画像の処理を実行する（たとえば、ニューラル・ネットワークの入力にサイズを合わせるために）。
【００９８】
ブロック７５６では、システムが、トレーニングされるニューラル・ネットワークに画像および候補ロボット運動パラメータ（たとえば、候補ロボット状態および候補アクション（１つまたは複数））を適用する。たとえば、システムは、トレーニングされるニューラル・ネットワークの初期層に画像を適用することができる。システムは、初期層の下流にあるトレーニングされるニューラル・ネットワークの追加層に現在のロボット状態および候補ロボット運動パラメータを適用することもできる。
【００９９】
ブロック７５８では、システムが、トレーニングされるニューラル・ネットワーク上で、ブロック７５４の画像の予測された変換を生成する。予測された変換は、ブロック７５６でトレーニングされるニューラル・ネットワークに画像および候補ロボット運動パラメータ（現在のロボット状態と一緒に）を適用することと、トレーニングされるニューラル・ネットワークの学習された重みに基づいて予測された変換を判定することとに基づいて生成される。
【０１００】
ブロック７６０では、システムが、予測された画像を生成するために、ブロック７５８の予測された変換に基づいて画像を変換する。たとえば、ブロック７５８の予測された変換が、１つまたは複数の空間トランスフォーマのパラメータを含む場合に、システムは、それらのパラメータを利用して現在の画像に１つまたは複数の空間トランスフォーマを適用することができる。また、たとえば、ブロック７５８の予測された変換が、それぞれが画素のうちの１つまたは複数に対応する１つまたは複数の正規化された分布を含む場合に、現在の画像の変換は、畳み込み演算を使用して現在の画像に正規化された分布を適用することを含むことができる。これらの実施態様のいくつかでは、正規化された分布のそれぞれが、画素のうちの対応する１つに対応する。合成マスクも、本明細書で説明するように利用され得、合成マスクのパラメータは、ブロック７５６でのトレーニングされるニューラル・ネットワークへの画像（およびオプションで追加画像）および候補ロボット運動パラメータの適用に基づいて生成される。たとえば、合成マスクは、本明細書で説明するようにＣＤＮＡモデルおよび／またはＳＴＰモデルを使用して生成された複数の変換された画像から単一の予測された画像を生成するのに利用され得る。さらに、合成マスク（１つまたは複数）は、予測された画像を生成する際に現在の画像から画素をコピーするために現在の画像に適用され得る背景マスクを含むことができる。
【０１０１】
予測された画像は、ブロック７５２のパラメータによって示される候補運動の少なくとも一部がロボットの構成要素によって環境内で実行される場合に画像によって取り込まれる環境の一部を予測する。言い換えると、候補運動の少なくとも一部が環境内の１つまたは複数の物体の動きを引き起こす場合に、予測された画像は、動きの後の物体（１つまたは複数）を表現することができる。
【０１０２】
いくつかの実施態様では、システムは、候補運動について考慮するために、追加の候補ロボット運動パラメータがあるかどうかを判定する。たとえば、システムは、考慮すべき候補運動の別の部分があるかどうかを判定し、そうである場合には、システムは、ブロッ
ク７５２に戻って進み、その部分の候補ロボット運動パラメータを生成し、その後、ブロック７５４に進み、画像を識別し、その後、ブロック７５６〜７５８に進み、追加の候補ロボット運動パラメータに基づいて別の予測された画像を生成する。いくつかの実施態様では、ブロック７５４の追加の反復で識別される画像は、ブロック７６０の直前の反復で生成された予測された画像である。このプロセスは、ブロック７５４の反復で識別され、ブロック７５６のその反復で適用される画像として直前の反復からの予測された画像を毎回利用して繰り返され得、これによって、将来の複数の時間ステップのそれぞれについて予測された画像が生成されることを可能にする。この形で、予測された画像は、現在の画像に対して条件付けられ、候補ロボット運動パラメータに基づいて、複数の時間ステップにわたって物体（１つまたは複数）の動きを判定するのに利用され得る。
【０１０３】
ブロック７６２では、システムが、予測された画像およびオプションで「現在の画像」に基づいて１つまたは複数のアクションを実行する。たとえば、システムが、現在の画像に対する予測された画像の比較に基づいて、候補運動によって引き起こされる動きが望ましいと判定する場合がある。動きが望ましいとの判定に基づいて、システムは、たとえば、候補運動を実現するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することによって、候補運動を実行することができる。また、たとえば、複数の予測された画像が、候補運動に関して判定される場合に、システムは、予測された画像および／または現在の画像に基づいて、候補運動によって引き起こされる動きが望ましいと判定することができる。動きが望ましいとの判定に基づいて、システムは、たとえば、候補運動を実現するためにロボットの１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することによって、候補運動を実行することができる。
【０１０４】
いくつかの実施態様では、ブロック７５２〜７６０の１つまたは複数の反復が、１つまたは複数の追加の候補運動に関して実行され、ブロック７６４で、システムは、これらの反復に関する予測された画像に基づいて、候補運動のうちの１つを選択することができる。たとえば、ブロック７５２〜７６０の１つまたは複数の反復が、第１の候補運動について実行され、第２の候補運動について独立に実行され得る。システムは、第１の候補運動の予測された画像および第２の候補運動の予測された画像に基づいて、第１の候補運動と第２の候補運動とのうちの１つを選択することができる。システムは、ロボットの１つまたは複数のアクチュエータに１つまたは複数の対応する制御コマンドを供給することによって、選択された候補運動を実行することができる。
【０１０５】
図８は、ロボット８４０のアーキテクチャの例を概略的に示す。ロボット８４０は、ロボット制御システム８６０、１つまたは複数の動作構成要素８４０ａ〜８４０ｎ、および１つまたは複数のセンサ８４２ａ〜８４２ｍを含む。センサ８４２ａ〜８４２ｍは、たとえば、視覚センサ、光センサ、圧力センサ、圧力波センサ（たとえば、マイクロホン）、近接センサ、加速度計、ジャイロスコープ、温度計、気圧計、その他を含むことができる。センサ８４２ａ〜ｍが、ロボット８２０と一体であるものとして図示されているが、これは、限定的であることを意図されたものではない。いくつかの実施態様では、センサ８４２ａ〜ｍは、ロボット８２０の外部に、たとえば独立型ユニットとして配置され得る。
【０１０６】
動作構成要素８４０ａ〜８４０ｎは、たとえば、ロボットの１つまたは複数の構成要素の運動を実現するための、１つもしくは複数のエンド・エフェクタおよび／または１つもしくは複数のサーボ・モータもしくは他のアクチュエータを含むことができる。たとえば、ロボット８２０は、複数の自由度を有することができ、アクチュエータのそれぞれは、制御コマンドに応答して自由度のうちで１つまたは複数の中でロボット８２０の作動を制御することができる。本明細書で使用される時に、用語アクチュエータは、アクチュエータに関連付けられ得、受け取られた制御コマンドを、アクチュエータを駆動する１つまた
は複数の信号に変換する任意のドライバ（１つまたは複数）に加えて、動きを作成する機械デバイスまたは電気デバイス（たとえば、モータ）を包含する。したがって、アクチュエータへの制御コマンドの供給は、所望の動きを作成するために電気デバイスまたは機械デバイスを駆動するのに適当な信号に変換するドライバへの制御コマンドの供給を含むことができる。
【０１０７】
ロボット制御システム８６０は、ＣＰＵ、ＧＰＵ、および／またはロボット８２０の他のコントローラ（１つまたは複数）などの１つまたは複数のプロセッサ内で実施され得る。いくつかの実施態様では、ロボット８２０は、制御システム８６０のすべてまたは諸態様を含むことのできる「コンピュータ（ｂｒａｉｎ  ｂｏｘ）」を含むことができる。たとえば、コンピュータ（ｂｒａｉｎ  ｂｏｘ）は、動作構成要素８４０ａ〜ｎにデータのリアル・タイム・バーストを供給することができ、リアル・タイム・バーストのそれぞれは、なかんずく動作構成要素８４０ａ〜ｎのうちの１つまたは複数のそれぞれの動き（存在する場合に）のパラメータを指図する１つまたは複数の制御コマンドのセットを含む。いくつかの実施態様では、ロボット制御システム８６０は、本明細書で説明した方法３００、４００、５００、および／または７００の１つまたは複数の態様を実行することができる。
【０１０８】
本明細書で説明するように、いくつかの実施態様では、ロボットの１つまたは複数の構成要素を移動する際に制御システム８６０によって生成される制御コマンドのすべてまたは諸態様は、トレーニングされるニューラル・ネットワークを介して判定された予測された変換（１つまたは複数）を利用して生成された予測された画像（１つまたは複数）に基づくものとすることができる。たとえば、センサ８４２ａ〜ｍの視覚センサは、現在の画像を取り込むことができ、ロボット制御システム８６０は、候補ロボット運動パラメータを生成することができる。ロボット制御システム８６０は、トレーニングされるニューラル・ネットワークに現在の画像および候補ロボット運動パラメータを供給し、適用に基づいて予測された変換を生成し、予測された変換に基づいて予測された画像を生成し、予測された画像を利用して、ロボットの運動を制御するための１つまたは複数のエンド・エフェクタ制御コマンドを生成することができる。制御システム８６０が、図８ではロボット８２０の一体の部分として図示されているが、いくつかの実施態様では、制御システム８６０のすべてまたは諸態様が、ロボット８２０とは別々であるがロボット８２０と通信している構成要素内で実施され得る。たとえば、制御システム８６０のすべてまたは諸態様は、コンピューティング・デバイス９１０など、ロボット８２０と有線および／または無線で通信している１つまたは複数のコンピューティング・デバイス上で実施され得る。
【０１０９】
図９は、本明細書で説明した技法の１つまたは複数の態様を実行するのにオプションで利用され得るコンピューティング・デバイス９１０の例のブロック図である。コンピューティング・デバイス９１０は、通常、バス・サブシステム９１２を介して複数の周辺デバイスと通信する少なくとも１つのプロセッサ９１４を含む。これらの周辺デバイスは、たとえばメモリ・サブシステム９２５およびファイル・ストレージ・サブシステム９２６を含むストレージ・サブシステム９２４、ユーザ・インターフェース出力デバイス９２０、ユーザ・インターフェース入力デバイス９２２、およびネットワーク・インターフェース・サブシステム９１６を含むことができる。入力デバイスおよび出力デバイスは、コンピューティング・デバイス９１０とのユーザ対話を可能にする。ネットワーク・インターフェース・サブシステム９１６は、外部ネットワークへのインターフェースを提供し、他のコンピューティング・デバイス内の対応するインターフェース・デバイスに結合される。
【０１１０】
ユーザ・インターフェース入力デバイス９２２は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックス・タブレットなどのポインティング・デバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの
オーディオ入力デバイス、マイクロホン、および／または他のタイプの入力デバイスを含むことができる。一般に、用語「入力デバイス」の使用は、コンピューティング・デバイス９１０または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよび形を含むことが意図されている。
【０１１１】
ユーザ・インターフェース出力デバイス９２０は、ディスプレイ・サブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚ディスプレイを含むことができる。ディスプレイ・サブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）などのフラットパネル・ディスプレイ、プロジェクション・デバイス、または可視画像を作成するためのなんらかの他の機構を含むことができる。ディスプレイ・サブシステムは、オーディオ出力デバイスを介するなど、非視覚ディスプレイを提供することもできる。一般に、用語「出力デバイス」の使用は、コンピューティング・デバイス９１０からユーザまたは別のマシンもしくはコンピューティング・デバイスに情報を出力するためのすべての可能なタイプのデバイスおよび形を含むことが意図されている。
【０１１２】
ストレージ・サブシステム９２４は、本明細書で説明するモジュールの一部またはすべての機能性を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージ・サブシステム９２４は、図３、４、５、および／または７の方法の選択された態様を実行する論理を含むことができる。
【０１１３】
これらのソフトウェア・モジュールは、一般に、プロセッサ９１４だけによって、または他のプロセッサとの組合せで実行される。ストレージ・サブシステム９２４内で使用されるメモリ９２５は、プログラム実行中の命令およびデータの記憶のための主ランダム・アクセス・メモリ（ＲＡＭ）９３０と、固定された命令がその中に記憶される読取専用メモリ（ＲＯＭ）９３２とを含む多数のメモリを含むことができる。ファイル・ストレージ・サブシステム９２６は、プログラム・ファイルおよびデータ・ファイルの永続ストレージを提供することができ、ハード・ディスク・ドライブ、関連する取外し可能媒体と一緒のフロッピ・ディスク・ドライブ、ＣＤ−ＲＯＭドライブ、光ドライブ、または取外し可能媒体カートリッジを含むことができる。ある種の実施態様の機能性を実施するモジュールは、ファイル・ストレージ・サブシステム９２６によって、ストレージ・サブシステム９２４内またはプロセッサ９１４によってアクセス可能な他のマシン内に記憶され得る。
【０１１４】
バス・サブシステム９１２は、コンピューティング・デバイス９１０の様々な構成要素およびサブシステムが意図された通りにお互いと通信することを許す機構を提供する。バス・サブシステム９１２は、単一のバスとして概略的に図示されているが、バス・サブシステムの代替の実施態様は、複数のバスを使用することができる。
【０１１５】
コンピューティング・デバイス９１０は、ワークステーション、サーバ、コンピューティング・クラスタ、ブレード・サーバ、サーバ・ファーム、または任意の他のデータ処理システムもしくはコンピューティング・デバイスを含む様々なタイプを有するものとすることができる。コンピュータおよびネットワークの常に変化する性質に起因して、図９に示されたコンピューティング・デバイス９１０の説明は、いくつかの実施態様を例示するための特定の例になることだけを意図されたものである。図９に示されたコンピューティング・デバイスより多数またはより少数の構成要素を有する、コンピューティング・デバイス９１０の多数の他の構成が可能である。
【図１】
2020128003.tif 000025
【図２】
2020128003.tif 000026
【図３】
2020128003.tif 000027
【図４】
2020128003.tif 000028
【図５】
2020128003.tif 000029
【図６Ａ】
2020128003.tif 000030
【図６Ｂ】
2020128003.tif 000031
【図７】
2020128003.tif 000032
【図８】
2020128003.tif 000033
【図９】
2020128003.tif 000034
【手続補正書】
【提出日】令和2年5月8日(2020.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現在のロボット状態を異なるロボット状態に遷移させるためのロボット運動パラメータを生成することであって、前記ロボット運動パラメータは、ロボットの作業空間内において前記ロボットの１つまたは複数のアクチュエータによって実行可能な運動の少なくとも一部を定義する、ことと、
前記ロボットに関連する視覚センサによって取り込まれた現在の画像を識別することであって、前記現在の画像は、前記ロボットの前記作業空間の少なくとも一部を取り込む、ことと、
前記運動によって発生する、前記作業空間内の物体の動きを予測する動き予測モデルを用いるニューラル・ネットワークへの入力として、前記現在の画像および前記ロボット運動パラメータを適用することと、
前記現在の画像内における少なくとも１つの予測された変化を生成することであって、前記予測された変化は、前記ニューラル・ネットワークへの前記現在の画像および前記ロボット運動パラメータの前記適用に基づいて生成される、ことと、
少なくとも１つの予測された画像を生成するために、前記少なくとも１つの予測された変化に基づいて前記現在の画像の少なくとも一部を変更することであって、前記予測された画像は、前記運動の少なくとも一部が前記作業空間内において前記ロボットの前記１つまたは複数のアクチュエータによって実行された場合に前記視覚センサによって取り込まれると予測された画像である、ことと、
前記予測された画像に基づいて、前記物体の予測された動きが所望の動きに従うと判断された場合に、前記運動を実行すると決定することと、
前記運動を実行するために前記ロボットの前記１つまたは複数のアクチュエータに１つまたは複数の制御コマンドを供給することと
を含む、１つまたは複数のプロセッサによって実施される方法。
【外国語明細書】
2020128003000001.pdf