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

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

▶ グーグル インコーポレイテッドの特許一覧

特開2023-164459リモートクライアントデバイスからの入力に基づく効率的なロボットの制御
<>
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図1A
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図1B
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2A
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2B
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2C
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2D
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2E
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図2F
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図3
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図4
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図5
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図6
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図7
  • 特開-リモートクライアントデバイスからの入力に基づく効率的なロボットの制御 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164459
(43)【公開日】2023-11-10
(54)【発明の名称】リモートクライアントデバイスからの入力に基づく効率的なロボットの制御
(51)【国際特許分類】
   B25J 13/08 20060101AFI20231102BHJP
【FI】
B25J13/08 A
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023135523
(22)【出願日】2023-08-23
(62)【分割の表示】P 2022503961の分割
【原出願日】2020-07-24
(31)【優先権主張番号】16/523,655
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジョニー・リー
(72)【発明者】
【氏名】ステファン・ウェルカー
(57)【要約】
【課題】リモートクライアントデバイスからのユーザインターフェース入力を利用して効率的なロボット制御を行う。
【解決手段】実装は、ユーザインターフェース入力のインスタンスによって定義される物体操作パラメータに基づいて訓練インスタンスを生成すること、および物体操作パラメータを予測するために機械学習モデルを訓練することに関する。それらの実装は、その後、訓練された機械学習モデルを利用して、ロボットの操作の所与の組を実行する際にリモートクライアントデバイスからの入力が求められるインスタンスの量を削減し、および/またはロボットの操作の所与の組を実行する際のリモートクライアントデバイスからの入力の程度を下げることができる。追加的または代替的に、実装は、ロボットが物体に到達し、操作することができるロボット作業空間に物体が搬送される前に、ロボットによって操作される物体を取り込むビジョンデータの利用によってロボットのアイドル時間を軽減することに関する。
【選択図】図1A
【特許請求の範囲】
【請求項1】
環境の第1の領域内の1つまたは複数のビジョン構成要素から、第1の時間の前記第1の領域内にある物体の物体特徴を含む、前記第1の時間の前記第1の領域の特徴を取り込むビジョンデータを受信するステップと、
前記第1の領域から前記ビジョンデータによって取り込まれない、前記環境の異なるロボット作業空間への前記物体の搬送の完了前に、
前記ビジョンデータに基づいて生成される視覚的表現を、1つまたは複数のネットワークを介してリモートクライアントデバイスに送信するステップであって、前記視覚的表現が、前記物体特徴に基づいて生成された物体表現を含む、ステップと、
前記リモートクライアントデバイスにおいてレンダリングされるときの前記視覚的表現を対象とする前記リモートクライアントデバイスにおける1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを、前記1つまたは複数のネットワークを介して前記リモートクライアントデバイスから受信するステップと、
前記データに基づいて、前記ロボット作業空間内で動作するロボットによる前記物体の操作のための1つまたは複数の物体操作パラメータを決定するステップと、
前記物体が前記ロボット作業空間内にあることを検出したことに応答して、前記1つまたは複数の物体操作パラメータに従って、前記ロボットに前記物体を操作させるステップであって、前記物体が、前記第1の領域から前記ロボット作業空間への前記物体の搬送の後、前記第1の時間に続く第2の時間に前記ロボット作業空間内にある、ステップとを含む方法。
【請求項2】
前記1つまたは複数の物体操作パラメータを決定するステップも、前記第1の領域から前記ロボット作業空間への前記物体の搬送の完了前である請求項1に記載の方法。
【請求項3】
前記1つまたは複数の物体操作パラメータが、前記物体の把持のための把持姿勢を含み、前記搬送の後に前記物体が前記ロボット作業空間内で検出されたことに応答して、前記1つまたは複数の物体操作パラメータに従って、前記ロボットに前記物体を操作させるステップが、
前記ロボットのエンドエフェクタに前記把持姿勢までトラバースさせ、前記把持姿勢までトラバースした後に前記物体の把持を試みさせることを含む請求項1または請求項2に記載の方法。
【請求項4】
前記データが、第1の基準座標系に対して1つもしくは複数の姿勢および/または1つもしくは複数の点を定義し、前記1つまたは複数の物体操作パラメータを生成することが、
前記1つもしくは複数の姿勢および/または前記1つもしくは複数の点を前記基準座標系とは異なるロボット座標系に変換することと、
前記物体操作パラメータを生成する際に、変換された姿勢および/または点を使用することとを含む請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ロボットに前記物体を操作させた後、
1つまたは複数の追加のセンサからの追加のセンサデータに基づいて、前記操作の成功の測定値を決定するステップと、
成功の前記測定値が閾値を満たすことに基づいて正の訓練インスタンスを生成するステップと、
前記正の訓練インスタンスに基づいて機械学習モデルを訓練するステップとをさらに含む請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記1つまたは複数の追加のセンサが、ロボットビジョン構成要素、前記ロボットのトルクセンサ、および前記環境内の重量センサのうちの1つまたは複数を含む請求項5に記載の方法。
【請求項7】
前記正の訓練インスタンスを生成するステップが、前記ビジョンデータに基づいてまたは前記ロボットの1つもしくは複数のロボットビジョン構成要素からのロボットビジョンデータに基づいて、前記正の訓練インスタンスの訓練インスタンスの入力を生成することを含む請求項5または請求項6に記載の方法。
【請求項8】
前記正の訓練インスタンスを生成するステップが、前記物体操作パラメータに基づいて、前記正の訓練インスタンスの訓練インスタンスの出力を生成することを含む請求項7に記載の方法。
【請求項9】
前記正の訓練インスタンスに基づいて前記機械学習モデルを訓練した後、
前記機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、
前記処理に基づいて、前記追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、
前記1つまたは複数の予測された物体操作パラメータに従って、前記ロボットに前記追加の物体を操作させるステップとをさらに含む請求項8に記載の方法。
【請求項10】
前記予測された物体操作パラメータの視覚的インジケーションを、前記リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップ、
前記リモートクライアントデバイスまたは前記追加のリモートクライアントデバイスから、前記予測された物体操作パラメータの前記視覚的インジケーションの提示に応答して肯定的なユーザインターフェース入力が受け取られたというインジケーションを受信するステップをさらに含み、
前記1つまたは複数の予測された物体操作パラメータに従って、前記ロボットに前記追加の物体を操作させるステップが、肯定的なユーザインターフェース入力が受け取られたという前記インジケーションを受信したことに応答したものである請求項9に記載の方法。
【請求項11】
前記処理に基づいて、前記1つまたは複数の予測された物体操作パラメータの信頼性の測定値を生成するステップをさらに含み、
前記予測された物体操作パラメータの視覚的インジケーションを送信するステップが、前記信頼性の測定値が閾値の信頼性の測定値を満たすことができないことに応答したものである請求項10に記載の方法。
【請求項12】
前記正の訓練インスタンスに基づいて前記機械学習モデルを訓練した後、
前記機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、
前記処理に基づいて、前記追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、
前記予測された物体操作パラメータの視覚的インジケーションを、前記リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップと、
前記リモートクライアントデバイスまたは前記追加のリモートクライアントデバイスから、前記予測された物体操作パラメータの前記視覚的インジケーションの提示に応答して受け取られたユーザインターフェース入力によって定義された代替的な物体操作パラメータのインジケーションを受信するステップと、
前記代替的な物体操作パラメータを受信したことに応答して、1つまたは複数の代替的な物体操作パラメータに従って、前記ロボットに前記追加の物体を操作させるステップとをさらに含む請求項8に記載の方法。
【請求項13】
前記代替的な物体操作パラメータに基づくラベル付けされた出力を有する訓練インスタンスを使用して前記機械学習モデルをさらに訓練するステップをさらに含む請求項12に記載の方法。
【請求項14】
前記ロボットが前記物体を操作する前に、
前記第1の領域内の前記1つまたは複数のビジョン構成要素から、前記第1の時間の後であるが前記第2の時間の前である第3の時間の前記第1の領域の特徴を取り込むビジョンデータを受信するステップであって、前記ビジョンデータが、前記第3の時間の第1の領域内にある新しい物体の新しい物体特徴を含む、ステップと、
新しいビジョンデータに基づいて生成される新しい視覚的表現を前記リモートクライアントデバイスに送信するステップであって、前記新しい視覚的表現が、前記新しい物体特徴に基づいて生成された新しい物体表現を含む、ステップと、
前記リモートクライアントデバイスにおいてレンダリングされるときの前記新しい視覚的表現を対象とする前記リモートクライアントデバイスにおける1つまたは複数の新しいユーザインターフェース入力に基づいて生成される新しいデータを、前記リモートクライアントデバイスから受信するステップと、
前記データに基づいて、前記ロボット作業空間内で動作するロボットによる前記新しい物体の操作のための1つまたは複数の新しい物体操作パラメータを決定するステップとをさらに含む請求項1に記載の方法。
【請求項15】
前記ロボットが前記物体を操作した後に、
前記新しい物体が前記ロボット作業空間内にあることを1つまたは複数のロボットビジョン構成要素によって前記ロボットが検出したことに応答して、前記1つまたは複数の新しい物体操作パラメータに従って、前記ロボットに前記新しい物体を操作させるステップであって、前記新しい物体が、前記新しい物体の搬送の後、前記第2の時間に続く第4の時間に前記ロボット作業空間内にある、ステップをさらに含む請求項14に記載の方法。
【請求項16】
前記第1の領域から前記ロボット作業空間への前記物体の前記搬送が、1つまたは複数のコンベヤによる請求項1から15のいずれか一項に記載の方法。
【請求項17】
複数のリモートクライアントデバイスの各々に関して、未処理のロボット操作アシスタント要求の量および/または持続期間を定義する対応するキューデータにアクセスするステップと、
前記リモートクライアントデバイスに関する対応するクエリデータに基づいて、前記複数のリモートクライアントデバイスから前記リモートクライアントデバイスを選択するステップとをさらに含み、
前記リモートクライアントデバイスに前記視覚的表現を送信するステップが、前記リモートクライアントデバイスを選択したことに応答したものである請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記物体表現が、前記物体のレンダリングであり、前記レンダリングが、前記物体特徴に基づいて生成され、前記ビジョンデータ内で可視である前記物体の1つまたは複数の特徴を省略する請求項1から17のいずれか一項に記載の方法。
【請求項19】
前記物体が前記ロボット作業空間内にあることを検出することが、前記ロボットの1つまたは複数のロボットビジョン構成要素からのロボットビジョンデータに基づく前記ロボットによる請求項1から18のいずれか一項に記載の方法。
【請求項20】
環境内の1つまたは複数のビジョン構成要素から、前記環境内にある物体の物体特徴を含む前記環境の特徴を取り込むビジョンデータを受信するステップと、
機械学習モデルを使用して前記ビジョンデータを処理することに基づいて、
前記物体に関する予測された物体操作パラメータ、および
前記予測された物体操作パラメータの信頼性の測定値
を生成するステップと、
前記予測された物体操作パラメータの前記信頼性の測定値が閾値の信頼性の測定値を満たすかどうかを判定するステップと、
前記信頼性の測定値が前記閾値の信頼性の測定値を満たすことができないと判定したことに応答して、
1つまたは複数のネットワークを介してリモートクライアントデバイスに、前記物体特徴に基づいて生成される前記物体の物体表現、および前記予測された物体操作パラメータの視覚的インジケーションを送信するステップと、
前記リモートクライアントデバイスにおいて前記物体表現および前記視覚的インジケーションをレンダリングすることに応答して前記リモートクライアントデバイスにおける1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを、前記1つまたは複数のネットワークを介して前記リモートクライアントデバイスから受信するステップと、
前記データに基づいて、前記物体操作パラメータかまたは代替的な物体操作パラメータかのどちらかを利用すると決定するステップと、
決定された物体操作パラメータまたは前記代替的な物体操作パラメータに従って、ロボットに前記物体を操作させるステップと、
前記信頼性の測定値が前記閾値の信頼性の測定値を満たすと判定したことに応答して、
前記物体操作パラメータに従って前記物体を操作する前に確認のために前記視覚的インジケーションをいかなるリモートクライアントデバイスにも送信することなく、前記物体操作パラメータに従って前記ロボットに前記物体を操作させるステップとを含む方法。
【請求項21】
前記ビジョン構成要素が、前記環境の第1の領域内にあり、前記予測された物体操作パラメータに関する前記信頼性の測定値が前記閾値の信頼性の測定値を満たすかどうかを判定するステップが、前記ロボットの異なるロボット作業空間への前記物体の搬送前に行われる請求項20に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リモートクライアントデバイスからの入力に基づく効率的なロボットの制御に関する。
【背景技術】
【0002】
産業または商業の環境において、ロボットが、特定のタスクを繰り返し実行するようにあらかじめプログラミングされることが多い。たとえば、ロボットが、組み立てラインにおいて特定の組み立ての構成要素に繰り返し留め具を付けるようにあらかじめプログラミングされ得る。また、たとえば、ロボットが、特定の組み立ての構成要素を決まった第1の場所から決まった第2の場所に繰り返し把持し、移動させるようにあらかじめプログラミングされ得る。物体を把持する際に、ロボットは、「衝撃式(impactive)」エンドエフェクタ(たとえば、『爪』もしくはその他の指を使用して物体の領域に力を加える)、「侵入式(ingressive)」エンドエフェクタ(たとえば、ピン、針などを使用して物体を物理的に貫通する)、「収斂式(astrictive)」エンドエフェクタ(たとえば、吸引もしくは真空を使用して物体を持ち上げる)、および/または1つもしくは複数の「接触式(contigutive)」エンドエフェクタ(たとえば、表面張力、凍結、もしくは接着剤を使用して物体を持ち上げる)などの把持エンドエフェクタを使用し得る。
【0003】
そのような手法は、制約されたアクションが制約された一群の構成要素に対して繰り返し実行される環境においてうまく機能し得る。しかし、そのような手法は、ロボットが多種多様なアクションを実行すること、および/またはロボットがそれらのためにあらかじめプログラミングされなかった新しい構成要素を任意で含む多岐にわたる一群の構成要素に対してアクションを実行することを任せられる環境においては機能しないことがあり得る。さらに、そのような手法は、ロボットをあらかじめプログラミングするのに多大な技術的努力(および計算リソースの関連する使用)を必要とする。さらに、ロボットを環境に供給するために、そのようなアプローチは、産業または商業の環境の大幅な再構成を必要とし得る。
【0004】
それとは別に、ロボットのタスクの実行を支援するために人間が同じ種類の手引きを繰り返し与えるいくつかのヒューマンインザループ(human in the loop)手法が提案されている。しかし、そのようなアプローチは、様々な欠点を抱え得る。たとえば、一部の手法は、人間の手引きを求めるおよび/または待つ間、ロボットがアイドル状態になる結果となる可能性があり、それが、ロボットの非効率的な動作につながる。また、たとえば、一部の手法は、常に、人間の手引きおよび/または同じ種類の手引きを求める。これは、より効率的に動作するためのロボットの動作の能力を制限する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書において開示される実装は、環境内のロボットを制御する際の、リモートクライアントデバイスからのユーザインターフェース入力の利用に関する。リモートクライアントデバイスにおいて与えられるユーザインターフェース入力のインスタンス(instance)が、少なくとも1つの物体を操作する際にロボットによって使用される1つまたは複数の物体操作パラメータを(直接的または間接的に)示す。たとえば、ユーザインターフェース入力のインスタンスによって示される物体操作パラメータは、把持姿勢、配置姿勢、把持姿勢にトラバースする(traverse)際に遭遇する中間地点のシーケンス、(物体を把持した後に)配置姿勢にトラバースする際に遭遇する中間地点のシーケンス、操作姿勢(たとえば、把持姿勢もしくはその他の操作姿勢)におよび/もしくは操作姿勢からトラバースする際の完全な経路もしくは軌道(すなわち、速度、加速度、加加速度(jerk)、および/もしくはその他のパラメータをともなう経路)、ならびに/または本明細書においてさらに詳細に説明される物体操作パラメータなどであるがそれらに限定されないその他の物体操作パラメータのうちの1つまたは複数を含み得る。
【0006】
インスタンスのユーザインターフェース入力は、少なくとも1つの物体の物体表現(object representation)を含む視覚的表現を参照して与えられる。また、視覚的表現は、任意で、その他の環境の物体(たとえば、作業台(work surface)、少なくとも1つの物体が配置されることになるコンテナ)の環境表現(environmental representation)、および/またはロボットのすべてもしくは一部のロボット表現(robot representation)を含み得る。視覚的表現は、たとえば、リモートクライアントデバイスによって制御されるスタンドアロン型ディスプレイスクリーンまたはリモートクライアントデバイスによって制御される仮想現実(VR)ヘッドセット上でレンダリングされ得る。入力インターフェース入力は、たとえば、マウス、タッチスクリーン、VRハンドコントローラ、および/またはVRグローブを介して与えられ得る。さらに、ネットワークトラフィックを削減するおよび/または視覚的表現のレンダリングのレイテンシーを短縮する方法で視覚的表現を生成する実装の説明を含め、例示的な視覚的表現およびそれらがどのようにしてレンダリングされ得るかの追加の説明が、本明細書において提供される。
【0007】
本明細書において開示される一部の実装は、ユーザインターフェース入力のインスタンスによって定義される物体操作パラメータに基づいて訓練インスタンスを生成することを対象とする。それらの実装は、物体操作パラメータを予測する際の訓練された機械学習モデルの使用のために、訓練インスタンスに基づいて機械学習モデルを訓練することをさらに対象とする。それらの実装の一部においては、対応する物体操作パラメータに基づいて試みられた操作の成功の測定値が閾値を満たすと判定したことに応答して、訓練インスタンスが生成され得るおよび/または正の訓練インスタンスとしてラベル付けされ得る。成功の測定値は、1つまたは複数のセンサからのセンサデータに基づいて生成されることが可能であり、実行中の操作に依存する方法で生成されることが可能である。一例として、操作が、衝撃式エンドエフェクタを用いた把持である場合、成功の測定値は、把持が成功したかどうかを示し得る。成功の測定値は、たとえば、衝撃式エンドエフェクタのセンサからのセンサデータ(たとえば、位置センサからのデータに基づいて決定された指の位置および/またはトルクセンサによって示されたトルクを使用して、衝撃式エンドエフェクタが物体を把持しているかどうかを判定する)、ロボットのビジョンセンサからのビジョンデータ(たとえば、衝撃式エンドエフェクタが物体を把持しているかどうか、および/または物体がその以前の場所から移動したかどうかを判定するため)、環境内の重量センサ(たとえば、物体が場所から持ち上げられたかどうかおよび/または別の場所に配置されたかどうかを判定するため)などのうちの1つまたは複数に基づき得る。別の例として、操作が物体の把持および容器への物体のその後の配置を含む場合、配置操作の成功の測定値は、物体が容器内に成功裏に配置されたかどうか、および/または容器内への配置が所望の配置に適合する度合いを示し得る。さらに別の例として、操作が2つの物体の結合を含む場合、配置操作の成功の測定値は、物体が成功裏に1つに結合されたかどうか、および/またはその結合の精度の度合いを示し得る。
【0008】
生成された訓練インスタンスに基づいて機械学習モデルを訓練する実装は、訓練された機械学習モデルを後で利用することをさらに対象とする。訓練された機械学習モデルを利用することは、ロボットの操作の所与の組を実行する際にリモートクライアントデバイスからの入力が求められるインスタンスの量を削減し(それによって、ネットワークトラフィックを削減する)、および/またはロボットの操作の所与の組を実行する際のリモートクライアントデバイスからの入力の程度を下げる(それによって、リモートクライアントデバイスにおいて効率的なリソースの利用を提供する)。それらの実装は、ユーザインターフェース入力を待つ間にロボットがアイドル状態であるインスタンスおよび/または持続期間を削減することによって環境内のロボットがより効率的に動作することを可能にし得る。それらの実装は、リモートクライアントデバイスのオペレータによる、1つまたは複数のロボットの動作を制御、監督、および/または監視する技術的なタスクの実行をさらに容易にすることができ、オペレータが所与の時間内により多くの量の操作および/またはより多くの量のロボットのための入力を与えることを可能にする場合がある。
【0009】
1つの特定の例として、1つまたは複数のロボットが、対応する物体をコンベヤベルトから把持し、物体をN個の利用可能なコンテナ(たとえば、配送用の箱)のうちの適切な1つに配置することをそれぞれが含む操作を実行するために所与の環境内に新たに展開されると想定する。最初に、物体を把持するための把持姿勢にトラバースする際に遭遇する中間地点のシーケンス、把持姿勢、N個の利用可能なコンテナのうちの適切な1つにトラバースする際に遭遇する中間地点のシーケンス、および物体をコンテナ内に配置するための配置姿勢のうちのいずれか1つ、任意の組合せ、またはすべてを含む物体操作パラメータを決定するために、各操作に関して、ユーザインターフェース入力が求められ得る。これらの決定された操作パラメータは、操作を実行する際にロボットを制御するために利用され得る。
【0010】
時間の経過とともに、1つまたは複数の機械学習モデルの各々に関して、対応するビジョンデータ(および/またはその他のセンサデータ)と、物体操作パラメータのうちの1つまたは複数と、任意で、成功の測定値とに基づいて、訓練インスタンスが生成され得る。機械学習モデルの各々は、1つまたは複数の対応する操作パラメータを予測する際にビジョンデータおよび/またはその他のセンサデータを処理するために訓練され得る。さらに、機械学習モデルは、訓練インスタンスに基づいて訓練され得る。たとえば、N個の把持姿勢の各々に関する(たとえば、成功裏の物体の操作、たとえば、把持の)対応する確率を生成するためにビジョンデータを処理するのに使用するために訓練される機械学習モデルを想定する。正の訓練インスタンスが、(把持の成功の測定値に基づいて決定された)成功した把持を含んでいた操作に関して、対応するビジョンデータと、ユーザインターフェース入力によって定義された対応する把持姿勢とに基づいて生成され得る。
【0011】
次いで訓練された機械学習モデルは、1つまたは複数の対応する物体操作パラメータを予測する際に少なくとも選択的に利用されることが可能であり、そのとき、1つまたは複数の対応する物体操作パラメータは、ロボットを制御するのに少なくとも選択的に利用される。たとえば、予測された物体操作パラメータは、(確認のユーザインターフェース入力を促すことなく)自動的に利用されることが可能であり、および/または予測された物体操作パラメータのインジケーションを(たとえば、視覚的表現の一部として)提示し、それに応じて確認のユーザインターフェース入力を受け取った後に利用されることが可能である。これらのおよびその他の方法で、物体操作パラメータは、ユーザインターフェース入力を必要とせずに(たとえば、その物体操作パラメータが自動的に利用されるとき)、および/または削減された量のユーザインターフェース入力によって(たとえば、物体操作パラメータを定義するためのより時間のかかる完全な入力の代わりに、確認のユーザインターフェース入力が与えられるとき)決定され、利用され得る。これは、物体操作パラメータを決定するために必要とされる時間の持続期間を削減し、ロボットおよび/または遠隔のオペレータがより効率的に働くことを可能にし得る。
【0012】
一部の実装においては、訓練された機械学習モデルが、1つまたは複数の条件が満たされると判定した後に、少なくとも選択的に利用される物体操作パラメータを予測する際にのみ利用される。1つまたは複数の条件は、たとえば、少なくとも、訓練された機械学習モデルの訓練および/または検証の閾値の量を含み得る。訓練された機械学習モデルの検証は、--任意で、機械学習モデルが訓練されなかったビジョンデータ(および/またはその他のセンサデータ)のインスタンスに関して--機械学習モデルを使用して生成された予測を、ユーザインターフェース入力に基づくグラウンドトゥルース(ground truth)の物体操作パラメータと比較することを含み得る。様々な実装において、本明細書において説明されるように、訓練された機械学習モデルは、ロボットの動作に少なくとも選択的に利用される物体操作パラメータの予測の際に積極的に利用された後でさえも、訓練され続けることが可能である。たとえば、追加の訓練インスタンスが、予測され、利用された物体操作パラメータに基づいて生成され、成功の決定された測定値に基づいて正または負としてラベル付けされることが可能である。また、たとえば、追加の訓練インスタンスが、予測された物体操作パラメータに基づいて生成され、ユーザインターフェース入力が予測された物体操作パラメータを拒否した場合に負としてラベル付けされることが可能である。
【0013】
1つの特定の例として、N個の把持姿勢の各々に関する対応する確率を生成するためにビジョンデータを処理する際に使用するために訓練された機械学習モデルを再び想定する。ビジョンデータが訓練された機械学習モデルを使用して処理され、その結果、第1の閾値(たとえば、85%またはその他の閾値)を超える対応する把持姿勢に関する確率を生じるとき、把持姿勢は、確認のユーザインターフェース入力を促すことなく、自動的に利用され得る。把持姿勢が第1の閾値を超えないが、把持姿勢に関する確率が第2の閾値(たとえば、50%またはその他の閾値)は超える場合、それらの把持姿勢のうちの1つまたは複数のインジケーションが、視覚的表現内に物体表現とともに提示されることが可能であり、確認の入力がその把持姿勢を対象とする場合にのみ、1つの把持姿勢が利用され得る。把持姿勢が第1の閾値または第2の閾値を超えない場合、予測された把持姿勢のいかなるインジケーションも提供することなく、把持姿勢を決定するためにユーザインターフェース入力が求められ得る。ユーザインターフェース入力に基づいて決定された把持姿勢は、訓練インスタンスを生成するのに利用されることが可能であり、任意で、把持の成功の測定値も考慮する。そして、訓練インスタンスは、モデルをさらに訓練するために利用され得る。そのような訓練インスタンスは、モデルの精度および/または堅牢性を向上させるために機械学習モデルのパラメータを効率的に更新するのに特に有益であり得る「ハードネガティブ(hard negative)」訓練インスタンスであることが留意される。
【0014】
したがって、環境におけるロボットの所与の展開に関して、最初に、ユーザインターフェース入力のインスタンスが、操作を実行する際にロボットを制御するのに利用される物体操作パラメータを決定するために利用され得る。さらに、訓練インスタンスが、ユーザインターフェース入力のインスタンスを使用して決定された物体操作パラメータに基づいて、ならびに対応するビジョンデータおよび/またはその他のセンサデータに基づいて、ならびに任意でセンサデータに基づいて決定された成功の測定値に基づいて生成され得る。訓練インスタンスは、物体操作パラメータを予測する際に利用するために機械学習モデルを訓練するために利用され得る。1つまたは複数の条件の満足に応答して、次いで訓練された機械学習モデルが、「オンライン」にされ、予測された物体操作パラメータの生成に利用され得る。予測された物体操作パラメータは、ロボットを制御するのに少なくとも選択的に自動的に利用され、および/または予測された物体操作パラメータの対応するインジケーションが、リモートクライアントデバイス上でレンダリングされ、それに応じて確認のユーザインターフェース入力が受け取られる場合に利用される。さらに、オンラインにされた後でさえも、訓練された機械学習モデルは、訓練され続けることが可能であり、その精度および効率を高め、それによって、予測がロボットを制御するのに自動的に利用され得るおよび/または確認の承認のための提案としてレンダリングされ得るインスタンスの量を増やす。
【0015】
これらのおよびその他の方法で、ロボットは、展開前に技術および/または計算リソースの著しい使用を必要とすることなく、新しい環境におよび/または新しいタスクのために展開され、すぐに利用されることが可能である。たとえば、展開時に最初に利用される物体操作パラメータは、リモートデバイスからのユーザインターフェース入力にしっかりと(またはさらにはそれのみに)基づき得る。しかし、時間の経過とともに、リモートデバイスからのユーザインターフェース入力は、環境内でロボットを操作する際に必要とされるユーザインターフェース入力の量および/または程度を下げるために、オンラインにされる機械学習モデルを訓練するために利用され得る。これは、ロボットが環境内でより効率的に動作することを可能にし、所与の量のロボットの操作のためのリモートデバイスへのネットワークトラフィックの量を削減する。さらに、これは、リモートクライアントデバイスのオペレータがより多くの量のロボットの操作の制御を支援することを可能にする。
【0016】
本明細書において開示されるいくつかの実装は、追加的または代替的に、遠隔のオペレータからのユーザインターフェース入力に基づいて、所与の物体を操作するための物体操作パラメータを決定するための特定の技術を対象とする。それらの実装の一部は、ユーザインターフェース入力の提供を待っている間のロボットのアイドル時間を軽減する(たとえば、削減するかまたはなくす)技術を対象とする。ロボットのアイドル時間を軽減することは、ロボットの操作の全体的な効率を向上させる。
【0017】
一部の実装は、ロボットが物体に到達し、操作することができるロボット作業空間に物体が搬送される前に、ロボットによって操作される物体を取り込むビジョンデータの利用によってロボットのアイドル時間を軽減しようとする。たとえば、ビジョン構成要素(たとえば、モノグラフィック(monographic)カメラおよび/もしくはステレオグラフィック(stereographic)カメラ、LIDAR構成要素、ならびに/またはその他のビジョン構成要素)が、ロボット作業空間とは異なる環境の第1の領域の視野を持ち得る。ビジョン構成要素からのビジョンデータは、ロボット作業空間に物体が搬送される前に、物体が第1の領域内にあるときの物体の特徴を取り込み得る。たとえば、第1の領域は、コンベヤシステムの一部分であることが可能であり、コンベヤシステムは、物体をその部分からロボット作業空間に搬送する。第1の領域内の物体を取り込むビジョンデータは、ビジョンデータに取り込まれた物体の物体特徴に基づいて生成される物体の少なくとも物体表現を含む視覚的表現を生成するために使用され得る。
【0018】
ロボット作業空間への物体の搬送が完了する前に(たとえば、物体がコンベヤシステムによって搬送されている間であるが、物体がロボット作業空間に到着する前に)、視覚的表現は、リモートクライアントデバイスに送信され得る。さらに、ロボット作業空間への物体の搬送の完了前に、リモートクライアントデバイスからデータが受信されることが可能であり、データは、リモートクライアントデバイスにおいてレンダリングされたときの視覚的表現を対象とするユーザインターフェース入力に基づいて生成される。
【0019】
受信されたデータは、ロボット作業空間内で物体を操作するための1つまたは複数の物体操作パラメータを直接的または間接的に示す。したがって、物体操作パラメータは、データに基づいて決定されることが可能であり、任意で、ロボット作業空間への物体の搬送の完了前に決定されることが可能である。決定された物体操作パラメータは、物体がロボット作業空間に搬送された後で、物体がロボット作業空間内にあるときに、ロボットに物体を操作させるようにロボットを制御するのに利用され得る。ロボット作業空間への物体の搬送の完了前に、少なくとも、視覚的表現が送信され、応答データが受信されるので、ロボットは、物体がロボット作業空間内に入ると、データに基づいて決定された操作パラメータに基づいて物体を迅速に操作することができる。たとえば、ロボットは、自身のビジョン構成要素からのビジョンデータに基づいて、物体がロボット作業空間内にあるときを判定し、そのような判定に応答して物体操作パラメータに従って動作することができる。ロボットは、任意で、物体が物体操作パラメータが定義される姿勢に対応する姿勢になるのを待つことが可能であり、または(たとえば、姿勢が物体操作パラメータが定義された姿勢から変化するとき)物体操作パラメータをロボット作業空間内の物体の新たに検出された姿勢に変換することが可能である。ロボット作業空間自体が物体が搬送されるコンベヤ部分を含む場合、ロボットが物体を操作する間、そのコンベヤ部分は、任意で、一時的に停止され得る。その他の実装において、物体は、コンベヤまたはその他の輸送手段(たとえば、空気管(air tube)、別個の輸送ロボット、人手)を使用してロボット作業空間に搬送されることが可能であり、ロボット作業空間自体は、コンベヤ部分を含まない場合がある。
【0020】
任意で、訓練された機械学習モデルが物体操作パラメータを予測するのに使用するためにオンラインにされた場合、第1の領域からのビジョンデータが、物体操作パラメータを予測する際に利用され得る。これは、ロボット作業領域への物体の搬送の完了前に物体操作パラメータが予測されることを可能にする。予測された物体操作パラメータは、物体操作パラメータの一部として自動的に使用されることが可能であり、ならびに/または予測された物体操作パラメータのインジケーションが、視覚的表現とともに提供されることが可能である--および受信されたデータが予測された物体操作パラメータの確認を示す場合に、予測された物体操作パラメータのうちの1つもしくは複数が利用されることが可能である。
【0021】
一部の実装においては、第1の領域内のビジョン光栄要素の姿勢およびロボットビジョン構成要素の姿勢が知られており、第1の領域内のビジョン構成要素の基準座標系(frame)と、ロボットビジョン構成要素のロボット座標系との間の変換の決定を可能にする。この変換を使用することは、リモートクライアントデバイスにおける入力がロボット座標系内で直接定義されるか、または最初に第1の基準系内で定義され、次いでロボット座標系に変換されることを可能にする。
【0022】
一部の実装において、リモートクライアントデバイスに送信される視覚的表現は、物体の物体表現と、任意で、(第1の領域内で動的な)その他の近くの動的な物体の1つまたは複数の物体表現とを含むが、静的である第1の領域のその他の部分を省略する。それらの実装の一部では、物体と、任意で、近くの動的な物体との表現のみが、リモートクライアントデバイスにおいてレンダリングされる。一部のその他の実装では、ロボットおよび/またはロボット作業空間のすべてまたは一部も、(第1の領域を取り込むビジョンデータに取り込まれていないにもかかわらず)リモートクライアントデバイスにおいてレンダリングされる。たとえば、リモートクライアントデバイスは、ロボットシミュレータを実行するか、またはロボットシミュレータを実行する追加のデバイスと通信することができる。ロボットシミュレータは、ロボットのすべてもしくは一部および/またはロボット作業空間のすべてもしくは一部をシミュレートすることができ、ロボットのシミュレーションおよび/またはロボット作業空間のシミュレーションとともに、物体のシミュレーションをレンダリングすることができる。ロボットのシミュレーションおよび/またはロボット作業空間のシミュレーションに対する物体の姿勢は、上述の変換を使用して決定され得る。これは、人間のオペレータが、物体操作パラメータを定義するためにロボットのシミュレーションを操作するためのユーザインターフェース入力を与えることを可能にし得る。たとえば、把持姿勢を定義するために、人間のオペレータは、ロボットのシミュレーションが所望の姿勢になるまでそのロボットのシミュレーションを調整するユーザインターフェース入力を与え、次いでその所望の姿勢を把持姿勢として定義するためのさらなるユーザインターフェース入力を与えることができる。
【0023】
ロボットおよび/またはロボット作業空間をシミュレートする実装は、より小さなデータサイズの視覚的表現が環境からリモートクライアントデバイスに送信されることを可能にする。これは、それらの送信が動的な物体のみを定義し、ロボット作業空間の静的な特徴を定義せず、および/またはロボットの特徴を定義しない結果であり得る。ネットワークリソースを節約することに加えて、これは、より小さなデータサイズがリモートクライアントデバイスにより迅速に送信されるおよび/またはリモートクライアントデバイスにおいてより迅速にレンダリングされることが可能であるので、リモートデバイスにおいて視覚的表現をレンダリングする際の遅延を軽減することができる。遅延のこの軽減は、ロボットのアイドル時間を同様に軽減することができる。さらに、物体表現が(異なる領域からのビジョンデータの代わりに)ロボットビジョンデータに基づいて生成される実装においてさえ、ロボットおよび/またはロボット作業空間をシミュレートすることは、より小さなデータサイズの視覚的表現が送信されることをなお可能にする--およびロボットのアイドル時間を軽減する--ことができることが留意される。
【0024】
一部の実装は、追加的または代替的に、クライアントデバイスにおいてレンダリングされる視覚的表現のうち、完全な表現よりも低い精度で物体をレンダリングするが、完全な表現よりも小さいデータサイズである物体表現を生成することによってロボットのアイドル時間を軽減しようとする。たとえば、物体は、物体の表面を近似する1つまたは複数のバウンディングボックスおよび/またはその他のバウンディング形状(bounding shape)によって表現され得る。たとえば、物体は、複数の連結されたバウンディングボックスによって定義されることが可能であり、それらのバウンディングボックスの各々は、中心点、高さの寸法、および幅の寸法によって定義されることが可能である--これは、物体の表面に対応する各ピクセルまたはボクセルの色、テクスチャ、および/または深度を定義する表現に比べて大幅に少ないデータを含む。ネットワークリソースを節約することに加えて、より精度の低い物体表現は、より小さなデータサイズがリモートクライアントデバイスにおいてより迅速に送信されるおよび/またはリモートクライアントデバイスにおいてより迅速にレンダリングされることが可能であるので、リモートデバイスにおいて視覚的表現をレンダリングする際の遅延を軽減することができる。さらに、より精度の低い物体表現は、物体からの潜在的な機密データを不明瞭にするもしくは削除するか、または物体自体を不明瞭にすることができ、リモートデバイスのオペレータがデータおよび/または物体を突き止めることを防止する。
【0025】
いくつかの例が物体を把持することおよび/または配置することを含む操作に関連して本明細書において説明されているが、本明細書に記載の技術は、物体に対する様々なロボットの操作のために利用され得ることが理解される。たとえば、技術は、物体を異なる場所に移動させるためおよび/または物体を別の物体と嵌め合わせるためにその物体を押すことおよび/または引くことを含む操作のために利用され得る。また、たとえば、技術は、第1の物体を把持すること、第2の物体を把持すること、第1の物体と第2の物体と1つに結合すること、および結合された物体を特定の場所に配置することを含む操作のために利用され得る。さらに別の例として、技術は、エッチング工具、ねじ回し工具、切削工具、および/またはその他の工具を含むエンドエフェクタを用いて物体に働きかけることを含む操作のために利用され得る。
【0026】
上の説明は、本開示の一部の実装の概要として与えられている。それらの実装およびその他の実装のさらなる説明が、下により詳細に示される。
【0027】
その他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU: tensor processing unit))によって実行可能な命令を記憶する一時的または非一時的コンピュータ可読ストレージ媒体を含む場合がある。さらにその他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つもしくは複数のコンピュータおよび/または1つもしくは複数のロボットのシステムを含む可能性がある。
【0028】
上述の概念および本明細書においてより詳細に説明される追加の概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【0029】
図1A】本明細書において説明される実装が実装され得る例示的な環境を示す図である。
図1B】本明細書において説明される様々な実装によって図1Aの構成要素がどのようにインタラクションしてよいかの例を示す図である。
図2A】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図2B】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図2C】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図2D】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図2E】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図2F】ロボットによって操作される物体の物体表現を含む視覚的表現をリモートクライアントデバイスにおいてレンダリングする例と、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例とを示す図である。
図3】リモートクライアントデバイスにおいて物体の物体表現を含む視覚的表現に応答して生成されたデータに基づいて決定された物体操作パラメータに従ってロボットに物体を操作させる例示的な方法を示す流れ図である。
図4】ロボットの物体操作の試みに基づいて訓練インスタンスを生成し、予測モデルを訓練する際に訓練インスタンスを使用する例示的な方法を示す流れ図である。
図5】物体を操作する際のロボットによる使用のために物体操作パラメータを決定するのに訓練された予測モデルを選択的に利用する例示的な方法を示す流れ図である。
図6】予測モデルを訓練し、予測モデルを検証し、予測モデルを展開し、任意で、展開された予測モデルをさらに訓練する例示的な方法を示す流れ図である。
図7】ロボットの例示的なアーキテクチャを概略的に示す図である。
図8】コンピュータシステムの例示的なアーキテクチャを概略的に示す図である。
【発明を実施するための形態】
【0030】
図1Aは、本明細書において説明される実装が実装され得る例示的な環境を示す。図1Aは、第1のロボット170Aおよび関連するロボットビジョン構成要素174A、第2のロボット170Bおよび関連するロボットビジョン構成要素174B、ならびに追加のビジョン構成要素194を含む。追加のビジョン構成要素194は、たとえば、(たとえば、2D RGB画像を生成する)モノグラフィックカメラ、(たとえば、2.5D RGB画像を生成する)ステレオグラフィックカメラ、(たとえば、2.5D「点群」を生成する)レーザースキャナであることが可能であり、本明細書において開示される1つまたは複数のシステム(たとえば、システム110)に動作可能なように接続され得る。任意で、複数の追加のビジョン構成要素が設けられることが可能であり、それぞれからのビジョンデータが、本明細書において説明されるように利用されることが可能である。ロボットビジョン構成要素174Aおよび174Bは、たとえば、モノグラフィックカメラ、ステレオグラフィックカメラ、レーザースキャナ、および/またはその他のビジョン構成要素であることが可能である--ならびに、それらからのビジョンデータは、本明細書において説明されるように、対応するロボット170Aおよび170Bに提供され、それらのロボット170Aおよび170Bによって利用され得る。図1Aにロボット170Aおよび170Bに隣接して示されているが、その他の実装においては、ロボットビジョン構成要素174Aおよび174Bは、代替的に、ロボット170Aおよび170Bに直接結合される(たとえば、エンドエフェクタ172Aおよび172Bの近くに取り付けられる)ことが可能である。
【0031】
ロボット170Aおよび170B、ロボットビジョン構成要素174Aおよび174B、ならびに追加のビジョン構成要素194は、すべて、製造施設、パッケージング施設、またはその他の環境などの環境内に展開される。環境は追加のロボットおよび/または追加のビジョン構成要素を含み得るが、簡単にするために、ロボット170Aおよび170Bならびに追加のビジョン構成要素194のみが図1に示される。
【0032】
ロボット170Aおよび170Bは、それぞれ、把持エンドエフェクタを所望の場所に位置付けるために複数の潜在的な経路のいずれかに沿った対応する把持エンドエフェクタ172A、172Bのトラバースを可能にするための複数の自由度を有する「ロボットアーム」である。ロボット170Aおよび170Bは、それぞれ、それらの対応する把持エンドエフェクタ172A、172Bの2つの対向する「爪」をさらに制御して、少なくとも開位置および閉位置(および/または任意で複数の「部分的閉」位置)との間で爪を駆動する。特定のロボット170Aおよび170Bが図1Aに示されるが、ロボット170Aおよび170Bと同様の追加のロボットアーム、その他のロボットアームの形態を有するロボット、ヒューマノイドの形態を有するロボット、動物の形態を有するロボット、1つもしくは複数の車輪によって移動するロボット、無人航空機(「UAV」)などを含む追加のおよび/または代替的なロボットが、利用されてよい。また、特定の把持エンドエフェクタ172Aおよび172Bが図1Aに示されるが、代替的な衝撃式把持エンドエフェクタ(たとえば、把持「プレート」を有するもの、より多くのもしくはより少ない「指」/「爪」を有するもの)、「侵入式」把持エンドエフェクタ、「収斂式」把持エンドエフェクタ、または「接触式」把持エンドエフェクタ、または非把持エンドエフェクタ(たとえば、溶接工具、切削工具など)などの追加のおよび/または代替的なエンドエフェクタが利用されてよい(またはさらにはエンドエフェクタが利用されなくてもよい)。たとえば、複数の吸盤を有する収斂式エンドエフェクタが、複数の物体を取り、配置するのに使用され得る(たとえば、複数の吸盤の使用によって、一度に4つの物体が取られ、配置され得る)。
【0033】
ロボット170Aは、図1Aにおいては、コンベヤシステムのコンベヤ部分103A上のサングラス192Aを含み、コンテナ193Aも含むロボット作業空間101Aにアクセスすることができる。ロボット170Aは、サングラス192Aを把持し、それらのサングラス192Aをコンテナ193A内に適切に配置する際に、本明細書において説明されるように決定された物体操作パラメータを利用することができる。異なるコンテナが異なる時間にロボット作業空間101A内のコンベヤ部分103A上にあることが可能である(たとえば、コンテナが、別のシステムによって配置されるかまたは別のコンベヤシステム上にあることが可能である)ように、その他の物体が、異なる時間にロボット作業空間101A内のコンベヤ部分103A上にあることが可能である。たとえば、コンベヤシステムが動くとき、その他の物体が、ロボット作業空間101A内に搬送され、ロボット作業空間101A内にある間、ロボット170Aによって操作され得る。ロボット170Aは、同様に、そのような物体を取り、配置する、および/またはそのような物体に対してその他の操作を実行するために対応する物体操作パラメータを利用することができる。
【0034】
ロボット170Bは、図1Aにおいては、コンベヤシステムのコンベヤ部分103B上のステープラ192Bを含み、コンテナ193Bも含むロボット作業空間101Bにアクセスすることができる。ロボット170Bは、ステープラ192Bを把持し、そのステープラ192Bをコンテナ193B内に適切に配置する際に、本明細書において説明されるように決定された物体操作パラメータを利用することができる。異なるコンテナが異なる時間にロボット作業空間101B内のコンベヤ部分103B上にあることが可能であるように、その他の物体が、異なる時間にロボット作業空間101B内のコンベヤ部分103B上にあることが可能である。ロボット170Bは、同様に、そのような物体を取り、配置する、および/またはそのような物体に対してその他の操作を実行するために対応する物体操作パラメータを利用することができる。
【0035】
追加のビジョン構成要素194は、ロボット作業空間101Aとは異なり、ロボット作業空間101Bとは異なる環境の領域101Cの視野を有する。図1Aにおいて、領域は、コンベヤシステムのコンベヤ部分103Cを含み、へら192Cも含む。領域101Cは、操作される物体がロボット作業空間101Aまたはロボット作業空間101Bに搬送される前に、まず領域101を通過するという点で、ロボット作業空間101Aおよび/またはロボット作業空間101Bの「上流」にあることが可能である。たとえば、コンベヤシステムは、物体がコンベヤシステムによって、ロボット作業空間101Aまたはロボット作業空間101Bのどちらかに送られる前に、それらの物体をまず領域101Cに通すことができる。たとえば、図1Aにおいては、へら192Cが、領域101C内にあるが、ロボット作業空間101Aまたはロボット作業空間101Bにはまだ搬送されていない。
【0036】
本明細書において詳細に説明されるように、様々な実装において、追加のビジョン構成要素194は、へら192Cの特徴を取り込むビジョンデータを取り込むことができる。さらに、ビジョンデータは、システム110(後述)によって、ロボット170Aまたはロボット170Bがへら192Cを操作すること(たとえば、ピックアンドプレース)を可能にするための物体操作パラメータを決定するのに利用され得る。たとえば、システム110は、追加のビジョン構成要素194によって取り込まれたビジョンデータに少なくとも部分的に基づいて(たとえば、へら192Cの特徴を取り込むビジョンデータの物体特徴に少なくとも部分的に基づいて)生成される視覚的表現を対象とする、リモートクライアントデバイス130からのユーザインターフェース入力に少なくとも部分的に基づいて物体操作パラメータを決定することができる。ロボット作業空間101Aおよび101Bの「上流」にある追加のビジョン構成要素194の利用により、--へら192Cがロボット作業空間101Aまたはロボット作業空間101Bに入る前に(すなわち、ロボット作業空間101A、101Bのどちらかへのへらの搬送の完了前に)--視覚的表現が、リモートクライアントデバイス130に提供されることが可能であり、ユーザインターフェース入力が、リモートクライアントデバイス130において与えられることが可能であり、および/または物体操作パラメータが、ユーザインターフェース入力に対応するデータに基づいて決定されることが可能である。これらのおよびその他の方法で、任意で、物体がロボット作業空間101Aおよび101Bに到達する前でさえも、物体を操作するための物体操作パラメータが迅速に決定され得るので、ロボット170Aおよび170Bは、より効率的に動作することができる。
【0037】
図1Aの例示的な環境は、システム110、リモートクライアントデバイス130、訓練データエンジン143、訓練データデータベース152、訓練エンジン145、および1つまたは複数の機械学習モデル165(本明細書においては「予測モデル」とも呼ばれる)も含む。
【0038】
システム110は、1つまたは複数のコンピューティングデバイスによって実装され得る。1つまたは複数のコンピューティングデバイスは、ロボット170Aおよび170Bのある環境内に置かれることが可能であり、ならびに/またはリモートサーバファームに置かれることが可能である。システム110は、1つまたは複数の予測エンジン112、視覚的表現エンジン114、および操作パラメータエンジン116を含む。システム110は、両方とも以下で詳細に説明される図3の方法300および/または図5の方法500の動作のうちの1つまたは複数(たとえば、すべて)を実行することができる。
【0039】
リモートクライアントデバイス130は、任意で環境内にあることが可能であるが、様々な実装において、環境から何マイルも離れていることもあり得る異なる構造内に置かれる。リモートクライアントデバイス130は、表示エンジン132、入力エンジン134、および入力デバイス136を含む。様々な実装において、複数のリモートクライアントデバイス130が、任意の所与の時間にシステム110にアクセス可能であることが留意される。それらの実装においては、所与のリモートクライアントデバイス130がそのキュー内に保留中の要求を有するかどうか、そのキュー内にある保留中の要求の量、および/またはそのキュー内にある保留中の要求に対処するための予想される持続期間などの様々な考慮事項に基づいて、所与のリモートクライアントデバイス130が、所与の時間に選択され得る。
【0040】
システム110の予測エンジン112は、ビジョン構成要素194、174A、およびまたは174Bからのビジョンデータと、任意で、その他のセンサデータとを受け取ることができる。予測エンジン112は、ビジョンデータによって取り込まれた物体を操作するための1つまたは複数の予測された物体操作パラメータを生成するために、それぞれ、機械学習モデル165のうちの対応する1つを利用してビジョンデータおよび/またはその他のセンサデータを処理することができる。たとえば、予測エンジン112のうちの1つは、へら192Cを把持するための予測された把持姿勢を生成するために、追加のビジョン構成要素194からのビジョンデータを、機械学習モデル165のうちの対応する1つを使用して処理することができる。また、たとえば、予測エンジン112のうちの1つは、追加的にまたは代替的に、へら192Cを配置するための予測された配置姿勢を生成するために、追加のビジョン構成要素194からのビジョンデータを、機械学習モデル165のうちの対応する1つを使用して処理することができる。また、たとえば、予測エンジン112のうちの1つは、追加的にまたは代替的に、へらのための把持姿勢にトラバースする際に遭遇する予測された中間地点を生成するために、追加のビジョン構成要素194からのビジョンデータを、機械学習モデル165のうちの対応する1つを使用して処理することができる。本明細書において説明されるように、どの予測エンジン112および対応する機械学習モデル165がオンラインであり、システム110によって使用されるか(もしあれば)は、時間とともに変化することが可能であり、(たとえば、訓練エンジン145による)機械学習モデルの十分な訓練および/または検証に依存し得る。
【0041】
所与の物体の操作のために予測エンジン112によって生成される予測された物体操作パラメータ(もしあれば)は、操作パラメータエンジン116によって操作パラメータとして自動的に使用されることが可能であるか、利用前に視覚的表現エンジン114によって確認のために最初に提示されることが可能であるか、または破棄され、利用されないことが可能である。たとえば、予測エンジン112のうちの1つは、予測された物体操作パラメータと、予測された物体操作パラメータに関する信頼性の測定値とを生成し得る。信頼性の測定値が第1の閾値を満たす場合、その予測エンジンは、確認を促すことなく、予測された物体操作パラメータが操作パラメータエンジン116によって利用されるべきであることを指定することができる。信頼性の測定値が第1の閾値を満たすことができないが、第2の閾値を満たす場合、その予測エンジンは、予測された物体操作パラメータのインジケーションが視覚的表現エンジン114によって視覚的表現に含められる--およびインジケーションを対象とする確認のユーザインターフェース入力が受け取られる場合にのみ利用される--べきであることを指定することができる。信頼性の測定値が第1の閾値および第2の閾値を満たすことができない場合、その予測エンジンは、予測された物体操作パラメータが利用されず、視覚的表現エンジン114が対応する物体操作パラメータの定義を促すことを指定することができる。
【0042】
視覚的表現エンジン114は、ビジョン構成要素194、174A、および/または174Bからビジョンデータを受信し、リモートクライアントデバイス130の表示エンジン132によるレンダリングのためにリモートクライアントデバイス130に送信する視覚的表現を生成する。リモートクライアントデバイス130への送信は、インターネットまたはその他の広域ネットワーク(WAN)などの1つまたは複数のネットワーク(図示せず)を介することができる。
【0043】
視覚的表現エンジン114によって生成された視覚的表現は、ビジョンデータによって取り込まれた少なくとも1つの物体の物体表現を含む。たとえば、視覚的表現は、追加のビジョン構成要素194からのビジョンデータに取り込まれたへら192の物体表現を含み得る。たとえば、視覚的表現は、へら192の2次元(2D)画像である物体表現を含み得る。へら192の2D画像の例が、下でより詳細に説明される図2Dおよび図2Eに示される。また、たとえば、視覚的表現は、へら192の3次元(3D)表現である物体表現を含み得る。たとえば、へら192の3D表現は、へらの表面上の1つまたは複数の点の位置(たとえば、x、y、z位置)を定義することができ、任意で、位置の各々に関する1つまたは複数の色値を含むことができる。へら192の3D表現の例が、下でより詳細に説明される図2A図2B、および図2Cに示される。また、視覚的表現は、任意で、予測エンジン112からの予測された物体操作パラメータ(もしあれば)のインジケーションを含み得る。予測エンジン112からの予測された物体操作パラメータの例が、下でより詳細に説明される図2Eに示される。また、視覚的表現は、任意で、その他の環境の物体(たとえば、作業台、少なくとも1つの物体が配置されることになるコンテナ)の環境表現、および/またはロボットのすべてもしくは一部のロボット表現を含み得る。
【0044】
一部の実装において、視覚的表現エンジン114によって生成され、リモートクライアントデバイス130に送信される視覚的表現は、物体の物体表現と、任意で、その他の近くの動的な物体の1つまたは複数の物体表現とを含むが、静的であるその他の部分を省略する。それらの実装の一部では、物体と、任意で、近くの動的な物体とのみが、リモートクライアントデバイス130においてレンダリングされる。一部の実装では、ロボットおよび/またはロボット作業空間のすべてまたは一部も、リモートクライアントデバイス130に送信されるビジョンデータに取り込まれていないにもかかわらず、リモートクライアントデバイス130においてレンダリングされる。たとえば、リモートクライアントデバイスの表示エンジン132が、ロボットシミュレータを含み得る。ロボットシミュレータは、ロボットのすべてもしくは一部および/またはロボット作業空間のすべてもしくは一部をシミュレートすることができ、ロボットのシミュレーションおよび/またはロボット作業空間のシミュレーションとともに、物体のシミュレーションをレンダリングすることができる。ロボットシミュレータは、対応する物体を含む環境をシミュレートし、シミュレートされた環境内で動作するロボットのすべてまたは一部(たとえば、ロボットの少なくともエンドエフェクタ)をシミュレートし、任意で、シミュレートされたロボットのアクションに応答して、シミュレートされたロボットとシミュレートされた環境の物体との間のインタラクションをシミュレートするために使用され得る。衝突検出、軟体(soft body)および剛体の力学などをシミュレートする物理エンジンなどの様々なシミュレータが利用され得る。そのようなシミュレータの非限定的な例は、BULLET物理エンジンである。
【0045】
1つの特定の例として、クライアントデバイスの表示エンジン132は、操作される物体の3D物体表現のみを含む視覚的表現を受け取ることができる。表示エンジン132は、3D物体表現を、シミュレートされたロボット作業空間内に、および/またはシミュレートされたロボットに対して配置することができる。たとえば、表示エンジン132のロボットシミュレータは、ロボット作業空間および/またはロボットの視覚的表現をあらかじめロードしておくことができ、それらの物体に対して3D物体表現を配置することができる。物体表現が追加のビジョン構成要素194からのビジョンデータに基づいているとき、ロボットのシミュレーションおよび/またはロボット作業空間のシミュレーションに対する物体の姿勢が、任意で、追加のビジョン構成要素194の姿勢と、ロボットビジョン構成要素174A、174Bのうちの対応する1つの姿勢との間の変換を使用して決定され得る。シミュレートされたロボットは、デフォルトの状態(たとえば、開始状態)に設定されることが可能であり、または任意で、ロボットの現在の状態(たとえば、関節の現在の位置)が、現在の状態のシミュレートされたロボットのレンダリングのための視覚的表現を与えられることが可能である。ロボットおよび/またはロボット作業空間をシミュレートする実装は、より小さなデータサイズの視覚的表現がシステム110からリモートクライアントデバイス130に送信されることを可能にする。
【0046】
一部の実装において、視覚的表現エンジン114は、クライアントデバイスにおいてレンダリングされる視覚的表現のうち、完全な表現よりも低い精度で物体をレンダリングするが、完全な表現よりも小さいデータサイズである物体表現を生成する。たとえば、視覚的表現エンジン114は、物体の表面を近似する1つまたは複数のバウンディングボックスおよび/またはその他のバウンディング形状を含む物体表現を生成することができる。たとえば、視覚的表現エンジン114は、複数の接続されたバウンディングボックスから構成される物体表現を生成することができ、それらのバウンディングボックスの各々は、中心点、高さの寸法、および幅の寸法によって定義され得る。この1つの非限定的な例が、下でより詳細に説明される図2Fに示される。より詳細でない物体表現は、データがより簡潔であり、それによって、ネットワークリソースを節約することができる。さらに、より詳細でない物体表現は、リモートデバイスにおいて視覚的表現をレンダリングする際の遅延を軽減し、および/あるいは物体からの潜在的な機密データを不明瞭にするもしくは削除するか、または物体自体を不明瞭にすることができる。
【0047】
リモートクライアントデバイス130のオペレータは、リモートクライアントデバイス130の1つまたは複数の入力デバイス136を利用して、表示エンジン132によって提供された視覚的表現とインタラクションする。入力デバイス136は、たとえば、マウス、タッチスクリーン、VRハンドコントローラ、および/またはVRグローブを含み得る。入力デバイス136は、リモートクライアントデバイスの一体的部分(たとえば、タッチスクリーン)を形成することが可能であり、または有線および/もしくはワイヤレスプロトコルを使用してリモートデバイス130と結合される周辺デバイスであることが可能である。
【0048】
リモートクライアントデバイス130の入力エンジン134は、入力デバイス136を介して与えられたユーザインターフェース入力を処理して、物体の操作において使用される1つまたは複数の物体操作パラメータを(直接的または間接的に)示すデータを生成する。たとえば、ユーザインターフェース入力のインスタンスの入力エンジン134によって生成されたデータによって示される物体操作パラメータは、把持姿勢、配置姿勢、把持姿勢にトラバースする際に遭遇する中間地点のシーケンス、(物体を把持した後に)配置姿勢にトラバースする際に遭遇する中間地点のシーケンス、操作姿勢(たとえば、把持姿勢もしくはその他の操作姿勢)におよび/もしくは操作姿勢からトラバースする際の完全な経路もしくは軌道(すなわち、速度、加速度、加加速度、および/もしくはその他のパラメータをともなう経路)、ならびに/またはその他の物体操作パラメータを含み得る。インスタンスのユーザインターフェース入力は、表示エンジン132によってレンダリングされた視覚的表現を参照して、リモートクライアントデバイス130のオペレータによって与えられる。たとえば、ユーザインターフェース入力のインスタンスは、複数の構成要素の部品を利用する部品の組み立て中に利用される完全な軌道を示し得る。
【0049】
操作パラメータエンジン116は、入力エンジン134から提供されたデータに基づいて操作パラメータを決定する。一部の実装においては、データが、物体操作パラメータを直接定義し、操作パラメータエンジン116は、データによって定義された物体操作パラメータを利用することによって物体操作パラメータを決定する。その他の実装において、操作パラメータエンジン116は、物体操作パラメータを決定する際に、データを変換するおよび/またはそれ以外の方法で処理する。
【0050】
操作パラメータエンジン116は、決定された物体操作パラメータおよび/または物体操作パラメータに基づいて生成されたコマンドをロボット170Aまたは170Bに送信する。一部の実装において、操作パラメータエンジン116は、物体操作パラメータおよび/または物体操作パラメータに基づく高レベルのコマンドを送信する。それらの実装においては、対応するロボットの制御システムが、物体操作パラメータおよび/または高レベルのコマンドを、ロボットのアクチュエータに発せられる制御コマンドなどの対応する低レベルのアクションに変換する。その他の実装において、物体操作パラメータは、(たとえば、ユーザインターフェース入力によって完全な軌道が定義されるとき)それら自体が低レベルのアクションを定義することが可能であり、および/または低レベルのアクションが、物体操作パラメータに基づいて生成されることが可能であり、操作パラメータエンジン116は、低レベルのアクションに基づく制御のために、低レベルのアクションを対応するロボットに送信する。
【0051】
訓練データエンジン143は、訓練インスタンスを生成し、訓練インスタンスを訓練データデータベース152に記憶する。訓練インスタンスの各々は、機械学習モデル165のうちの対応する1つのために生成され、インスタンスの対応する操作パラメータと、インスタンスに関するビジョンデータおよび/またはその他のデータと、任意でインスタンスに関する成功の測定値(本明細書においては「成功測定値」とも呼ばれる)とに基づいて生成される。
【0052】
一例として、訓練データエンジン143は、操作パラメータエンジン116から、操作を実行する際にロボット170A、170Bのうちの1つを制御するのに利用される操作パラメータを受け取ることができる。操作パラメータは、リモートクライアントデバイス130からのユーザインターフェース入力に基づいて生成されたもの、予測エンジン112のうちの1つによって予測され、リモートクライアントデバイスからのユーザインターフェース入力に基づいて確認されたもの、または予測エンジン112のうちの1つによって予測され、自動的に利用されるものであることが可能である。訓練データエンジン143は、操作において操作された物体を取り込むビジョンデータなどの、インスタンスに関するビジョンデータをさらに受け取ることができる。ビジョンデータは、追加のビジョン構成要素194からのものであるか、またはロボットビジョン構成要素174Aもしくは174Bのうちの1つからのものであることが可能である。一部の実装においては、訓練インスタンスを生成する際に訓練データエンジン143によって利用されるビジョンデータが、物体操作パラメータを生成する際に利用されるビジョンデータと異なることが可能であることが留意される。たとえば、物体操作パラメータは、追加のビジョン構成要素194からのビジョンデータに基づいて生成された物体表現を対象とするユーザインターフェース入力に基づいて定義され得るが、訓練インスタンスの生成においては、(物体を取り込む)ロボットビジョン構成要素174Aからのビジョンデータが使用され得る。
【0053】
訓練データエンジン143は、任意で、ビジョンデータおよび/またはその他のセンサ104からのデータに基づいて、操作の(全体として、および/または物体操作パラメータを対象とする部分の)成功の測定値をさらに決定することができる。その他のセンサ104は、たとえば、環境内の重量センサ、ロボットの非ビジョンセンサ(たとえば、トルクセンサ、位置センサ)、および/またはその他のセンサを含み得る。次いで訓練データエンジン143は、ビジョンデータと、物体操作パラメータと、任意で、成功の測定値とに基づいて訓練インスタンスを生成することができる。たとえば、訓練インスタンスは、ビジョンデータおよび物体操作パラメータ(たとえば、それらの表現)を訓練インスタンスの入力として含み、成功の測定値を訓練インスタンスの出力として含み得る。別の例として、訓練インスタンスは、ビジョンデータを訓練インスタンスの入力として含み、物体操作パラメータを訓練インスタンスの出力として含むことが可能であり、成功の測定値に基づいて正または負の訓練インスタンスとしてラベル付けされ得る。さらに別の例として、訓練インスタンスは、ビジョンデータを訓練インスタンスの入力として含み、物体操作パラメータに対応し、成功の測定値に基づいて決定される値を訓練インスタンスの出力として含み得る。
【0054】
訓練エンジン145は、訓練データデータベース152の対応する訓練インスタンスを利用して、機械学習モデル165を訓練する。次いで訓練された機械学習モデルは、1つまたは複数の対応する物体操作パラメータを予測する際に予測エンジン112のうちの1つによって少なくとも選択的に利用されることが可能であり、そのとき、1つまたは複数の対応する物体操作パラメータは、ロボットを制御するのに少なくとも選択的に利用される。一部の実装においては、訓練された機械学習モデルが、1つまたは複数の条件が満たされると訓練エンジン145が判定した後に、少なくとも選択的に利用される物体操作パラメータを予測する際にのみ利用される。1つまたは複数の条件は、たとえば、本明細書において説明されるように、少なくとも、訓練された機械学習モデルの訓練および/または検証の閾値の量を含み得る。一部の実装において、訓練データエンジン143および訓練エンジン145は、本明細書において詳細に説明される図4の方法400の1つまたは複数の態様を実施し得る。
【0055】
ここで図1Bに目を向けると、本明細書において説明される様々な実装によって、図1Aの構成要素がどのように互いにインタラクションすることができるかの例が示される。図1Bにおいては、追加のビジョン構成要素194からのビジョンデータが、予測エンジン112および視覚的表現エンジン114に提供される。たとえば、ビジョンデータは、図1Aに示されたへら192を取り込み得る。予測エンジン112は、1つまたは複数の機械学習モデル165を使用してビジョンデータを処理することに基づいて、予測された物体操作パラメータ113を生成することができる。視覚的表現エンジン114は、少なくとも物体の物体表現を含む視覚的表現115を生成し、物体表現は、ビジョンデータの物体特徴に基づく。一部の実装において、視覚的表現115は、(たとえば、対応する信頼性の測定値が確認が必要とされることを示すとき)予測された物体操作パラメータ113のインジケーションも含み得る。追加的にまたは代替的に、破線の矢印によって示されるように、予測された物体操作パラメータ113は、(たとえば、対応する信頼性の測定値が確認が必要とされないことを示すとき)視覚的表現115にそのインジケーションを含めることまたは確認を求めることなしに操作パラメータエンジン116に直ちに提供され得る。
【0056】
視覚的表現115は、表示エンジン132に送信され、表示エンジン132は、任意で、その他のシミュレートされた表現(たとえば、シミュレートされたロボットおよび/またはシミュレートされた作業空間)とともに視覚的表現をレンダリングする。入力データ135が、1つまたは複数の入力デバイス136において与えられ視覚的表現を対象とする1つまたは複数のユーザインターフェース入力に応答して、入力エンジン134によって生成される。入力データ135は、1つまたは複数の追加の物体操作パラメータ、および/または視覚的表現115に示された任意の予測された物体操作パラメータの確認を直接的または間接的に示す。
【0057】
操作パラメータエンジン116は、入力データと、任意で、任意の直接提供される予測された物体操作パラメータ113とを利用して、実施のためにロボット170Aに提供される物体操作パラメータ117を生成する。たとえば、ロボット170Aは、物体操作パラメータ117に基づく制御コマンドを生成することができ、物体がロボット170Aのロボット作業空間に入った、および/またはロボット作業空間内で特定の姿勢であると判定したことに応答して、それらの制御コマンドを実施することができる。たとえば、ロボット170Aは、ロボットビジョン構成要素174Aからのロボットビジョンデータに基づいてそのような判定を行うことができる。
【0058】
訓練データエンジン143は、実施された操作パラメータ117に基づいて訓練インスタンス144を生成することができる。訓練インスタンス144の各々は、追加のビジョン構成要素194からおよび/またはロボットビジョン構成要素174からのビジョンデータに基づく訓練インスタンスの入力を含み得る。訓練インスタンス144の各々は、さらに、操作パラメータ117のうちの対応する1つに基づき得る(たとえば、訓練インスタンスの入力または出力が、操作パラメータに基づき得る)。訓練インスタンス144の各々は、さらに、訓練データエンジンによって決定された対応する成功測定値に基づく、ビジョン構成要素174Aおよび/もしくは194からのビジョンデータに基づく、ならびに/またはその他のセンサ104からのデータに基づくことが可能である。訓練インスタンス144は、機械学習モデル165のうちの1つまたは複数を訓練する際の訓練エンジン145(図1)による利用のために訓練データデータベース152に記憶される。
【0059】
ここで図2A図2B図2C図2D図2E、および図2Fに目を向けると、それらの図の各々は、リモートクライアントデバイス130(図1A)またはその他のリモートクライアントデバイスにおいてレンダリングされ得る視覚的表現の例を示す。視覚的表現の各々は、ロボットによって操作される物体の物体表現を含み、ロボットによる物体の操作のための物体操作パラメータを定義および/または確認するために提供され得るユーザインターフェース入力の例を示す。
【0060】
図2Aは、図1Aのロボットのうちの1つのロボットのシミュレーション270Aをともなうシミュレートされた環境を含む視覚的表現を示す。さらに、図1Aのへら192Cの物体表現292Aが、シミュレートされた環境内に示される。本明細書において説明されるように、物体表現292Aの姿勢は、へら192Cを取り込み、物体表現292Aを生成するために利用されるビジョンデータに基づいて決定されることが可能であり、任意で、ロボットの基準座標系への変換を考慮に入れる。図2Aの視覚的表現は、たとえば、VRヘッドセットによってレンダリングされ得る。
【0061】
オペレータは、開始姿勢(図示せず)から示された把持姿勢までのロボットのエンドエフェクタの経路289A1を定義するために(たとえば、VRコントローラを介して)ユーザインターフェース入力を与えた。オペレータは、たとえば、第1の仮想ボタン(たとえば、仮想ボタン282A1)またはハードウェアボタンを作動させて経路289A1の定義を開始し、第2の仮想ボタンまたはハードウェアボタンを作動させて経路289A1の終わりを定義することができ、また、経路289A1の終わりは、把持姿勢を構成する。示されていないが、シミュレートされたロボット270Aは、経路289A1がロボット270Aによって実施されるとおりに経路289A1の視覚的フィードバックをオペレータに提供するために、軌道289A1の定義中に「動く」ことができることが留意される。
【0062】
図2Aにさらに示されているのは、ユーザインターフェース入力の以前のインスタンスに関して定義された後にオペレータによって「保存」されたあらかじめ定義された経路を使用するためにオペレータによって選択され得る仮想ボタン282A2である。仮想ボタン282A2を選択することは、ユーザがあらかじめ定義された経路を修正してそのあらかじめ定義された経路を特定の物体に適応させるためのオプションと一緒に、あらかじめ定義された経路を仮想環境に貼り付けることができる。また、図2Aにさらに示されているのは、経路289A1を「あらかじめ定義された経路」として後で選択され得る経路として定義するためにオペレータによって選択され得る仮想ボタン282A3である。オペレータが特定の経路を保存し、再利用することができるようにすることにより、その経路またはあらかじめ定義された経路のわずかな変更である経路を再定義するために必要とされるユーザインターフェース入力の量を削減することができる。さらに、これは、現在のインスタンスに関する経路がより迅速に定義されることを可能にすることができ、そのことは、物体操作パラメータの定義を待つ間のロボットのアイドル時間を軽減することができ、および/またはオペレータの生産性を向上させることができる。
【0063】
図2Bは、図1Aのロボットのうちの1つのロボットのシミュレーション270Bをともなうシミュレートされた環境を含む視覚的表現を示す。さらに、図1Aのへら192Cの物体表現292Bが、シミュレートされた環境内に示される。オペレータは、(完全な経路の代わりに)中間地点289B1および289B2ならびに把持姿勢289B3を定義するために(たとえば、VRコントローラを介して)ユーザインターフェース入力を提供済みであり、中間地点は、把持姿勢289B3にトラバースする際に遭遇することになり、把持姿勢289B3は、へら192Cを把持する際に利用されることになる。オペレータは、たとえば、(たとえば、VRコントローラの)第1のハードウェアボタンを第1の方法で作動させて中間地点289B1および289B2を定義することができ、第1のハードウェアボタンを第2の方法で作動させて(または第2のハードウェアボタンを作動させて)把持姿勢289B3を定義することができる。示されていないが、シミュレートされたロボット270Bは、オペレータに視覚的フィードバックを提供するために、中間地点289B1、289B2および/または把持姿勢289B3の定義中に「動く」ことができることが留意される。図2Bに示されていないが、仮想ボタンも、中間地点289B1および289B2を保存するため、ならびに/またはあらかじめ定義された中間地点を再利用する(および場合によっては適応させる)ために提供される可能性がある。
【0064】
図2Cは、図1Aのロボットのうちの1つのロボットのシミュレーション270Cをともなうシミュレートされた環境を含む視覚的表現を示す。さらに、図1Aのへら192Cの物体表現292Cが、シミュレートされた環境内に示される。オペレータは、把持姿勢289C1のみを定義するために、(たとえば、VRコントローラを介して)ユーザインターフェース入力を与えた。オペレータは、たとえば、(たとえば、VRコントローラの)第1のハードウェアボタンを作動させて把持姿勢289C1を定義することができる。示されていないが、シミュレートされたロボット270Cは、オペレータに視覚的フィードバックを提供するために、把持姿勢289C1の定義中に「動く」ことができることが留意される。一部の実装においては、少なくとも選択的に(確認を必要とせずに)自動的に実施され得る経路または中間地点の予測を可能にする機械学習モデルが訓練されるまで、図2Aおよび/または図2Bと同種の視覚的表現が提供されることが可能であり、その後は、ユーザインターフェース入力を介した把持姿勢のみの定義のために、図2Cと同種の視覚的表現が提供されることが可能である。また、図2Cでは、予測された経路および/または予測された中間地点を視覚的に示し、予測された中間地点または経路の確認、または予測された中間地点または経路の再定義(確認されなかった場合)を促すこともできる。
【0065】
図2Dは、へらの2D画像(たとえば、RGB画像)である図1Aのへら192Cの物体表現292Dを含む視覚的表現を示す。視覚的表現は、たとえば、リモートクライアントデバイスのタッチスクリーン上にレンダリングされ得る。クライアントデバイスのオペレータは、インジケーション282Dによって、対蹠的(antipodal)把持を定義するためにタッチスクリーン上をスワイプするように促される。それに応じて、オペレータは、289D1においてタッチスクリーンにタッチし、289D2までスワイプし、その地点で、オペレータは、そのタッチを止める。結果として、対蹠的把持が、289D1の第1の点および289D2の第2の点によって定義される。点289D1および289D2は、たとえば、2D画像と対応する2.5Dまたは3Dビジョンデータとの間のマッピングを使用して2Dの点から3Dの点に変換され得る。
【0066】
図2Eは、へらの2D画像(たとえば、RGB画像)である図1Aのへら192Cの物体表現292Eを含む視覚的表現を示す。視覚的表現は、予測された対蹠的把持のインジケーション288Eも含む。視覚的表現は、たとえば、リモートクライアントデバイスのスクリーン上にレンダリングされ得る。クライアントデバイスのオペレータは、インジケーション282E1によって、インジケーション288Eの予測された対蹠的把持を確認するか、または代替的に(インジケーション282E2によって)、代替的な把持を定義するように促される。オペレータは、インジケーション288Eの予測された対蹠的把持に同意する場合、単にインジケーション282E1をクリック/タップすることができる。オペレータは、インジケーション288Eの予測された対蹠的把握に同意しない場合、インジケーション282E2をクリック/タップし、インジケーション288Eを変更する(たとえば、インジケーション288Eを上/下にドラッグする、幅を変更するなど)か、または新しい対蹠的把持を一から定義することができる。
【0067】
図2Fは、へら192Aの表面を近似する3つの接続されたバウンディングボックス(破線)を含む図1Aのへら192Cの物体表現292Fを含む視覚的表現を示す。本明細書において説明されるように、物体表現292Fは、図2Dおよび図2Eの表現よりもデータ効率が高くなり得る、ならびに/または潜在的な機密データがクライアントデバイスのオペレータによって見られることを防ぎ得る。視覚的表現は、たとえば、リモートクライアントデバイスのタッチスクリーン上にレンダリングされ得る。クライアントデバイスのオペレータは、インジケーション282Fによって、対蹠的把持を定義するためにタッチスクリーン上をスワイプするように促される。それに応じて、オペレータは、289F1においてタッチスクリーンにタッチし、289F2までスワイプし、その地点で、オペレータは、そのタッチを止める。結果として、対蹠的把持が、289F1の第1の点および289F2の第2の点によって定義される。
【0068】
視覚的表現および視覚的表現とのインタラクションの様々な例が、図2A図2Fに示されている。しかし、追加的および/または代替的な視覚的表現および/またはインタラクションが、本明細書において開示される様々な実装で利用され得ることが理解される。
【0069】
ここで図3に目を向けると、リモートクライアントデバイスにおいて物体の物体表現を含む視覚的表現に応答して生成されたデータに基づいて決定された物体操作パラメータに従ってロボットに物体を操作させる例示的な方法300が示される。便宜上、方法300の動作の一部は、動作を実行するシステムに関連して説明される。このシステムは、図1Aおよび図1Bに示された1つまたは複数の構成要素などの、様々なコンピュータシステムおよび/またはロボットの様々な構成要素を含んでよい。さらに、方法300の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される場合がある。
【0070】
ブロック352において、システムは、1つまたは複数のビジョン構成要素から、1つまたは複数の物体の物体特徴を取り込むビジョンデータを受信する。方法300の一部の実装または反復において、ビジョン構成要素は、対応するロボットのロボット作業空間を見るロボットビジョン構成要素であり、ビジョンデータは、物体がロボット作業空間内にあるときの物体特徴を取り込む。一部のその他の実装または反復において、ビジョン構成要素は、環境のロボット作業空間とは異なる環境の第1の領域内にあり、ビジョンデータは、物体が第1の領域内にあるときの--およびロボット作業空間への物体の搬送の完了前の--物体特徴を取り込む。それらの実装の一部においては、ブロック354、356、358、360、362、および/または364のうちの1つまたは複数が、ロボット作業空間への物体の搬送の完了前に完了され得る。
【0071】
任意のブロック354において、システムは、ビジョンデータおよび予測モデルに基づいて、1つまたは複数の予測された物体操作パラメータを生成する。たとえば、システムは、訓練されオンラインにされた対応する予測モデルを使用してビジョンデータおよび/またはその他のセンサデータを処理して、予測された把持姿勢と、任意で、予測された把持姿勢に関する(たとえば、成功する物体の操作の)予測された確率とを生成することができる。別の例として、システムは、追加的または代替的に、訓練されオンラインにされた対応する予測モデルを使用してビジョンデータおよび/またはその他のセンサデータを処理して、把持される物体の予測された分類と、任意で、予測された分類の予測された確率(たとえば、予測された分類が正しい確率)とを生成することができる。予測された分類は、物体の予測された配置場所(たとえば、複数の利用可能なコンテナのうちの、予測された分類に対応する特定のコンテナ内)を決定するために使用され得る。予測された分類に関する予測された確率は、任意で、対応する予測された配置場所(たとえば、予測された分類と定義された関係を有する予測された配置場所)に関する確率として利用され得る。
【0072】
任意のブロック356において、システムは、(a)物体を操作するために、ブロック354の予測された操作パラメータに加えてさらなる物体操作パラメータが必要とされるかどうか、および/または(b)予測された物体操作パラメータのうちの1つもしくは複数が(たとえば、対応する予測された確率が閾値を満たすことができないために)リモートユーザインターフェース入力によって確認される必要があるかどうかを判定する。
【0073】
ブロック356において、判定が「いいえ」である場合、システムは、ブロック360に直接進み、そのような状況においてはブロック354の予測された物体操作パラメータに対応する物体操作パラメータに従ってロボットに物体を操作させる。
【0074】
ブロック356において、判定が「はい」である場合、システムは、任意のブロック358、またはブロック360に進む。
【0075】
ブロック354および356は、それらのブロックが様々な実装において方法300で利用されない場合があるので、および/またはそれらのブロックがその他の実装において一部の反復でのみ利用され得るので、(破線で示されるように)任意であるものとして示される。たとえば、その他の実装の一部では、ブロック354は、少なくとも1つの予測モデルが訓練され、オンラインにされたときにのみ実施される場合があり、これは、本明細書において説明される1つまたは複数の条件を満たすことを条件とし得る。
【0076】
任意のブロック358において、システムは、複数のクライアントデバイスからリモートクライアントデバイスを選択する。システムは、様々な考慮事項に基づいてリモートクライアントデバイスを選択することができる。たとえば、システムは、リモートクライアントデバイスがそのキュー内に物体操作パラメータのいかなる要求も現在持たないと判定したことに応答してリモートクライアントデバイスを選択することができる。また、たとえば、システムは、追加的または代替的に、リモートクライアントデバイスに関する保留中の要求の量および/または保留中の要求の予想される持続期間がその他の候補のリモートクライアントデバイス(たとえば、方法300において利用されるロボットが展開される環境内での利用のために利用可能なリモートクライアントデバイス)のもの未満であると判定したことに応答してリモートクライアントデバイスを選択することができる。さらに別の例として、システムは、リモートクライアントデバイスのオペレータの習熟度の測定値に基づいてリモートクライアントデバイスを選択することができる。習熟度の測定値は、オペレータからのユーザインターフェース入力に基づいて決定された物体操作パラメータに基づく操作に関する過去の成功測定値に基づくことが可能であり、全体的な習熟度の測定値であるか、または1つもしくは複数の特定の操作に固有(たとえば、把持し、配置する操作に関する第1の習熟度の測定値、2つの物体を把持し、それらの物体を結合する操作に関する第2の習熟度の測定値など)であることが可能である。
【0077】
ブロック360において、システムは、リモートクライアントデバイス(たとえば、ブロック358において選択されたリモートクライアントデバイス)に、ブロック352のビジョンデータに基づく視覚的表現を送信する。視覚的表現は、少なくとも、ブロック352のビジョンデータの物体特徴に基づく物体表現を含む。一部の実装において、物体表現は、ブロック352のビジョンデータの物体特徴よりも少ないデータを含む。たとえば、物体表現は、ビジョンデータ内のバウンディング形状に囲まれた個々のピクセルまたはボクセルの色および/またはその他の値を定義することなく、物体の対応する領域をそれぞれが近似するバウンディング形状を定義することができる。たとえば、ビジョンデータの64ピクセルまたはボクセルの値が、7つの値、すなわち、バウンディングボックスの中心のx、y、z座標を定義する3つの値、バウンディングボックスの向きを集合的に定義する2つの値、ならびにバウンディングボックスの幅および高さを定義する2つの値によって置き換えられ得る。
【0078】
一部の実装では、ブロック360において送信される視覚的表現は、ロボットのいかなる表現も持たず、ならびに/またはロボットのロボット作業空間内の1つもしくは複数の静的物体および/もしくはその他の物体のいかなる表現も持たない。それらの実装の一部において、クライアントデバイスは、送信された視覚的表現を、ロボットのシミュレーションおよび/またはロボット作業空間のすべてもしくは一部のシミュレーションとともにレンダリングする。たとえば、リモートクライアントデバイスは、ロボットおよびロボット作業空間をシミュレートするロボットシミュレータを実行することができ、ロボットシミュレータ内で、シミュレートされたロボットおよびロボット作業空間とともに物体表現をレンダリングすることができる。これは、リモートクライアントデバイスに視覚的表現を送信するたびにロボットおよび/またはロボット作業空間の表現を送信する必要をなくすることによってネットワークリソースを節約することができることが留意される。たとえブロック352のビジョンデータがロボット作業空間とは異なる第1の領域内で取り込まれるときでも、シミュレートされたロボットおよび/またはシミュレートされたロボット作業空間がレンダリングされることが可能であり、それと一緒に物体表現が適切にレンダリングされることが可能であることも留意される。
【0079】
任意で、ブロック360は、下位ブロック360Aを含み、下位ブロック360Aにおいて、システムは、ビジョンデータに基づいておよびブロック354の予測された操作パラメータ(もしあれば)に基づいて視覚的表現を生成する。たとえば、予測された把持姿勢がブロック354において生成される場合、予測された把持姿勢のインジケーションが、任意で、視覚的表現に含められ得る。たとえば、予測された把持姿勢のインジケーションは、物体表現と一緒に、予測された把持姿勢でレンダリングされたロボットのエンドエフェクタの表現であることが可能である。リモートクライアントデバイスのオペレータは、予測された把持姿勢を確認するか、または(たとえば、ロボットのエンドエフェクタの表現を調整することによって)代替的な把持姿勢を提案することができる。別の例として、予測された一連の中間地点がブロック354において生成される場合、それらの中間地点のインジケーションが、任意で、視覚的表現に含められ得る。たとえば、中間地点のインジケーションは、物体表現および/またはロボットのシミュレーションと一緒にレンダリングされる円または中間地点のその他の印であることが可能である。
【0080】
ブロック362において、システムは、ブロック360において送信された視覚的表現を対象とするユーザインターフェース入力に基づいて生成されたデータをリモートクライアントデバイスから受信する。ユーザインターフェース入力は、物体操作パラメータを(直接的もしくは間接的に)定義するユーザインターフェース入力、および/または予測された物体操作パラメータを確認するユーザインターフェース入力を含み得る。
【0081】
ブロック364において、システムは、ブロック362において受信されたデータに基づいて、ロボットによって物体を操作するのに使用するための物体操作パラメータを決定する。物体操作パラメータは、データが予測された物体操作パラメータの確認を示す場合、視覚的表現内に示されるそれらの予測された物体操作パラメータ(もしあれば)に基づく物体操作パラメータを含み得る。物体操作パラメータは、追加的または代替的に、いかなる予測された物体操作パラメータとも無関係に、ユーザインターフェースの入力に基づいて定義される物体操作パラメータを含み得る。
【0082】
一部の実装では、リモートクライアントデバイスにおいて生成されたデータが、物体操作パラメータを直接定義し、物体操作パラメータとして直接利用され得る。一部のその他の実装においては、データが、物体操作パラメータを間接的に定義し、物体操作パラメータを決定する際にさらに処理される。1つの非限定的な例として、ブロック364は、任意で、下位ブロック364Aを含むことが可能であり、下位ブロック364Aにおいて、システムは、姿勢および/または点をロボットのロボット座標系に変換する。たとえば、ブロック362において受信されたデータによって定義された姿勢、点(たとえば、中間地点)、および/またはその他の特徴は、ロボット座標系とは異なる所与の座標系に対して定義され、次いでロボット座標系に変換され得る。たとえば、所与の座標系は、ロボットのロボットビジョン構成要素とは異なる、ブロック352のビジョン構成要素の第1の座標系であることが可能である。
【0083】
ブロック360において、システムは、物体操作パラメータに従ってロボットに物体を操作させる。物体操作パラメータは、予測された物体操作パラメータに基づく物体操作パラメータ、および/またはいかなる予測された物体操作パラメータとも無関係にユーザインターフェース入力に基づいて定義される物体操作パラメータを含み得る。一部の実装において、システムは、物体操作パラメータおよび/または物体操作パラメータに基づく高レベルのコマンドをロボットに与える。それらの実装においては、ロボットの制御システムが、物体操作パラメータおよび/または高レベルのコマンドを、ロボットのアクチュエータに発せられる制御コマンドなどの対応する低レベルのアクションに変換する。たとえば、ロボットは、高レベルのコマンドを、ロボットの1つまたは複数のアクチュエータに与えるためのより詳細な制御コマンドに変換するコントローラを含み得る。制御コマンドは、ロボットの動きを制御するために対応するインスタンスにおいてロボットのアクチュエータに発せられる1つまたは複数の速度制御コマンドを含み得る。たとえば、ロボットの動きを制御する際、ロボットのエンドエフェクタの動きを制御するアクチュエータの各々に速度制御コマンドが発せられ得る。その他の実装において、物体操作パラメータは、(たとえば、ユーザインターフェース入力によって完全な軌道が定義されるとき)それら自体が低レベルのアクションを定義することが可能であり、および/または低レベルのアクションが、物体操作パラメータに基づいて生成されることが可能であり、低レベルのアクションが、低レベルのアクションに基づく制御のためにロボットに与えられ得る。
【0084】
ビジョン構成要素が環境のロボット作業空間とは異なる環境の第1の領域内にある実装において、ブロック360は、物体がロボット作業空間内にあると判定したことに応答して、ロボットに物体をさらに操作させることを含み得る。それらの実装の一部において、ロボットは、ロボットのビジョン構成要素からのロボットビジョンデータに基づいて物体がロボット作業空間内にあると判定することができる。一部の追加的または代替的な実装においては、物体が作業空間内にあることを示す、物体の搬送手段からのデータに基づいて、物体が作業空間内にあると判定され得る。たとえば、搬送手段がコンベヤシステムを含むとき、コンベヤシステムの動作データに基づいて、ロボット作業空間内の物体の到着時間が決定され得る。
【0085】
ブロック360の後、システムは、ブロック352に戻る。様々な実装において、方法300の複数の反復が、所与の環境に関して並列に実行されていることが可能であり、--前の物体に関する方法300の完了前(たとえば、少なくともブロック360の完了前)に--新しい物体に関する視覚的表現が生成され、送信され、対応するデータが受信され、および/または対応する物体操作パラメータが決定されることを可能にすることが留意される。たとえば、方法300の複数の反復は、それぞれが環境の異なるロボットに関して並列に実行されていることが可能である。また、たとえば、方法300の複数の反復は、所与のロボットに関して並列に実行されていることが可能であり、複数の異なる物体の各々に関して、それらの物体が所与のロボットのロボット作業空間に到達し、所与のロボットによって操作される前に、物体操作パラメータが決定されることを可能にする。
【0086】
ここで図4に目を向けると、ロボットの物体操作の試みに基づいて訓練インスタンスを生成し、予測モデルを訓練する際に訓練インスタンスを使用する例示的な方法400が示される。便宜上、方法400の動作の一部は、動作を実行するシステムに関連して説明される。このシステムは、図1Aおよび図1Bに示された1つまたは複数の構成要素などの、様々なコンピュータシステムおよび/またはロボットの様々な構成要素を含んでよい。さらに、方法400の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される場合がある。
【0087】
ブロック452において、システムは、(1)ロボットによる物体操作の試みにおいて利用された物体操作パラメータ、および(2)物体操作の試みに関連するビジョンデータを特定する。たとえば、物体操作パラメータは、第1の領域からのビジョンデータに基づいて生成された視覚的表現を対象とするユーザインターフェース入力に基づいて定義された把持姿勢および配置姿勢を含むことが可能であり、ビジョンデータは、第1の領域とは異なるロボット作業空間からのロボットビジョンデータであることが可能である。
【0088】
任意のブロック454において、システムは、センサからのセンサデータに基づいて、物体操作の試みの成功測定値を生成する。一部の実装において、システムは、物体操作の試み全体に関して単一の成功測定値を生成する。たとえば、ピックアンドプレース操作に関して、システムは、物体が成功裏に配置されたかどうかおよび/または配置の精度に基づく単一の成功測定値を決定し得る。一部のその他の実装において、システムは、それぞれが物体操作パラメータの対応するサブセットに対応するようにして、物体操作の試みに関する複数の成功測定値を生成する。たとえば、ピックアンドプレース操作に関して、システムは、ピック操作に関する(たとえば、物体が成功裏に把持されたかどうかに基づく)第1の成功測定値と、プレース操作に関する(たとえば、物体が成功裏に配置されたかどうかおよび/または配置の精度に基づく)第2の成功測定値とを決定することができる。成功指標が基づき得るセンサは、たとえば、ロボットの位置センサ、ロボットのトルクセンサ、ロボットのビジョン構成要素からのロボットビジョンデータ、環境内の重量センサ、ならびに/またはその他のロボットおよび/もしくは環境のセンサを含み得る。
【0089】
ブロック456において、システムは、物体操作パラメータと、ビジョンデータと、任意で、成功測定値とに基づいて訓練インスタンスを生成する。ブロック456からブロック452への矢印によって示されるように、システムは、追加の物体操作の試みに基づいて追加の訓練インスタンスを生成するためにブロック452、454、および456の反復を実行し続けることができる。
【0090】
ブロック456の例として、把持姿勢および配置姿勢の操作パラメータを用いるピックアンドプレース操作を想定する。第1の訓練インスタンスが、ビジョンデータおよび把持姿勢に基づいて、ならびに成功測定値(たとえば、把持の成功測定値、またはピックアンドプレースに関する全体の成功測定値)に基づいて生成され得る。たとえば、第1の訓練インスタンスは、価値関数(value function)を近似する把持予測モデルのためのものであることが可能であり、ビジョンデータおよび把持姿勢を処理し、ビジョンデータを考慮して、把持姿勢を使用して物体の把持の成功の確率を予測するために使用される。そのような場合、訓練インスタンスの入力は、ビジョンデータおよび把持姿勢(たとえば、x、y、z位置および向きの表現)を含み、訓練インスタンスの出力は、成功測定値(たとえば、成功測定値が失敗した把持を示した場合は「0」、成功測定値が成功した把持を示した場合は「1」)を含む。また、たとえば、第1の訓練インスタンスは、その代わりに、(把持姿勢も処理することはせずに)ビジョンデータを処理し、N個の把持姿勢の各々に関する対応する確率を生成する予測モデルのためのものであることが可能である。そのような場合、訓練インスタンスの入力は、ビジョンデータを含み、訓練インスタンスの出力は、成功測定値が成功した把持を示した場合、把持姿勢に対応する出力値に関して「1」を含み、任意で、すべてのその他の値に関して「0」を含む。第2の訓練インスタンスが、ビジョンデータおよび配置姿勢に基づいて、ならびに成功測定値(たとえば、把持の成功測定値、またはピックアンドプレースに関する全体の成功測定値)に基づいて生成され得る。たとえば、第2の訓練インスタンスは、価値関数を近似する配置予測モデルのためのものであることが可能であり、ビジョンデータおよび配置姿勢を処理し、ビジョンデータを考慮して把持姿勢を使用するときに物体の配置が成功する確率を予測するために使用される。そのような場合、訓練インスタンスの入力は、ビジョンデータおよび配置姿勢(たとえば、x、y、z位置および向きの表現)を含み、訓練インスタンスの出力は、成功測定値(たとえば、成功測定値が失敗した配置を示した場合は「0」、成功測定値が成功した配置を示した場合は「1」、成功測定値が成功したが完全に正確というわけではない配置を示した場合は「0.7」)を含む。
【0091】
ブロック456の別の例として、ユーザインターフェースの入力に基づいて定義された中間地点のシーケンスを含む操作パラメータを用いる操作を想定する。訓練インスタンスが、ビジョンデータおよび中間地点のシーケンスに基づいて生成され得る。たとえば、訓練インスタンスは、価値関数を近似する中間地点予測モデルのためのものであることが可能であり、ビジョンデータおよび中間地点のシーケンスを処理し、ビジョンデータを考慮して中間地点のシーケンスの確率(たとえば、中間地点のシーケンスが適切である確率)を予測するために使用される。そのような場合、訓練インスタンスの入力は、ビジョンデータおよび中間地点のシーケンスの表現(たとえば、再帰型ニューラルネットワークモデルまたはトランスフォーマネットワークを使用して生成されたシーケンスの埋め込み)を含み、訓練インスタンスの出力は、そのシーケンスがユーザインターフェースの入力に基づいて定義されたことに基づく「1」(またはその他の「正」の値)を含む。
【0092】
ブロック458において、システムは、生成された訓練インスタンスを、予測モデルのパラメータを更新するのに使用する。異なる予測モデルのための異なる訓練インスタンスがブロック456において生成された場合、対応する予測モデルのための適切な訓練インスタンスが、ブロック458の各反復において利用され得る。たとえば、ブロック458のいくつかの反復は、第1の予測モデルを訓練するために第1の種類の訓練インスタンスを使用することができ、その他の反復は、第2の予測モデルを訓練するために第2の種類の訓練インスタンスを使用することができ、以下同様である。さらに、ブロック458、460、および462の複数の反復が、任意で、並列に動作することができ、それぞれが対応する予測モデルの訓練に専念させられる。
【0093】
ブロック460において、システムは、さらなる訓練が必要とされるかどうかを判定する。一部の実装において、これは、閾値の量の訓練が発生したかどうか、閾値の持続期間の訓練が発生したかどうか、ならびに/または予測モデルの1つもしくは複数の性能特性が観測されたかどうか(たとえば、予測モデルの使用の際、少なくともX%の操作における高確率の予測および/もしくは成功した操作)に基づき得る。一部の実装において、予測モデルの訓練は、少なくとも定期的に無期限に継続し得る。
【0094】
ブロック460の判定が「はい」である場合、システムは、ブロック462において別の訓練インスタンスが利用可能になるのを待ち、利用可能な訓練インスタンスに基づいてブロック458に戻る。ブロック460の判定が「いいえ」である場合、システムは、ブロック464に進み、予測モデルの訓練を終了する(ただし、その他の予測モデルの訓練は継続することができる)。訓練された予測モデルは、方法300または方法500において利用することが可能であり、任意で、利用中に訓練され続けることが可能である。
【0095】
ここで図5に目を向けると、物体を操作する際のロボットによる使用のために物体操作パラメータを決定するのに訓練された予測モデルを選択的に利用する例示的な方法500が示される。方法500は、方法300のいくつかの実装を示す。便宜上、方法500の動作の一部は、動作を実行するシステムに関連して説明される。このシステムは、図1Aおよび図1Bに示された1つまたは複数の構成要素などの、様々なコンピュータシステムおよび/またはロボットの様々な構成要素を含んでよい。さらに、方法500の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される場合がある。
【0096】
ブロック552において、システムは、1つまたは複数のビジョン構成要素から、1つまたは複数の物体の物体特徴を取り込むビジョンデータを受信する。方法500の一部の実装または反復において、ビジョン構成要素は、対応するロボットのロボット作業空間を見るロボットビジョン構成要素であり、ビジョンデータは、物体がロボット作業空間内にあるときの物体特徴を取り込む。一部のその他の実装または反復において、ビジョン構成要素は、環境のロボット作業空間とは異なる環境の第1の領域内にあり、ビジョンデータは、物体が第1の領域内にあるときの--およびロボット作業空間への物体の搬送の完了前の--物体特徴を取り込む。それらの実装の一部においては、ブロック572に先立つブロックのうちの1つまたは複数が、ロボット作業空間への物体の搬送の完了前に完了され得る。
【0097】
ブロック554において、システムは、ロボットによる物体の操作のために解決される必要がある複数の物体操作パラメータのうちの1つまたは複数の物体操作パラメータを選択する。
【0098】
ブロック556において、システムは、選択された物体操作パラメータに関して、本明細書において説明されるように、物体操作パラメータのための訓練されたモデルがオンラインにされたかどうかを判定する。されていない場合、システムは、ブロック558に進み、リモートクライアントデバイスにおいてユーザインターフェース入力によって物体操作パラメータが指定されるように促す。たとえば、システムは、ブロック552のビジョンデータに基づいて視覚的表現を生成し、視覚的表現をクライアントデバイスに送信し、ブロック558に基づいて、クライアントデバイスにおいて、視覚的表現を対象とするユーザインターフェース入力を介して物体操作パラメータを定義するためにプロンプトをレンダリングさせることができる。次いでブロック558のプロンプトに応答して受け取られたユーザインターフェース入力によって定義された任意の物体操作パラメータが、ブロック570において、選択された物体操作パラメータとして使用され得る。
【0099】
ブロック556において、選択された物体操作パラメータに関して、物体操作パラメータのための訓練されたモデルがオンラインにされたとシステムが判定する場合、システムは、ブロック560に進む。
【0100】
ブロック560において、システムは、ブロック552のビジョンデータおよび予測モデルに基づいて、予測された物体操作パラメータおよび対応する信頼性の測定値を生成する。たとえば、システムは、物体操作パラメータに対応する予測モデルを選択し、予測モデルを使用してビジョンデータおよび/またはその他のデータを処理して、予測された物体操作パラメータおよび対応する信頼性の測定値を生成することができる。
【0101】
次いでシステムは、ブロック562に進み、予測された物体操作パラメータの信頼性の測定値が1つまたは複数の閾値(たとえば、90%またはその他の閾値)を満たすかどうかを判定する。満たさない場合、システムは、ブロック564に進み、リモートクライアントデバイスにおいて、予測された物体操作パラメータの確認を促す、および/またはリモートクライアントデバイスにおいてユーザインターフェース入力によって対応する物体操作パラメータが指定されるように促す。たとえば、システムは、予測された物体操作パラメータのうちの1つまたは複数のインジケーションを含む視覚的表現を生成し、視覚的表現をクライアントデバイスに送信し、ブロック564に基づいて、クライアントデバイスにおいて、プロンプトをレンダリングさせることができる。プロンプトは、予測された物体操作パラメータをユーザインターフェース入力によって確認するように、または対応する代替的な物体操作パラメータをユーザインターフェース入力によって定義するようにクライアントデバイスのオペレータに求めることができる。また、たとえば、システムは、追加的または代替的に、予測された物体操作パラメータを確認するオプションを提示することなく、リモートクライアントデバイスにおいてユーザインターフェース入力によって物体操作パラメータのうちの1つまたは複数が指定されるように促すことができる。一部の実装においては、所与の予測された物体操作パラメータの信頼性の測定値がブロック562の閾値を満たさないが、追加のより低い閾値(たとえば、65%またはその他の閾値)を満たす場合、システムは、所与の予測された物体操作パラメータの確認のプロンプトを引き起こし得る。それらの実装においては、所与の予測された物体操作パラメータの信頼性の測定値が追加のより低い閾値を満たさない場合、システムは、任意で、所与の予測された物体操作パラメータのいかなるインジケーションも提供することなく、対応する物体操作パラメータが定義されるように促すことができる。次いでブロック564に応答して受け取られたユーザインターフェース入力によって定義された任意の物体操作パラメータが、ブロック570において、選択された物体操作パラメータのすべてまたは一部として使用され得る。
【0102】
システムが、ブロック562において、信頼性の測定値が閾値を満たすと判定する場合、システムは、ブロック566に進み、予測された物体操作パラメータの確認を促すことなく、予測された物体操作パラメータを使用する。
【0103】
そして、ブロック568において、システムは、ロボットによる物体の操作のために解決される必要があるさらなる物体操作パラメータが存在するかどうかを判定する。そうである場合、システムは、ブロック554に戻り、追加の物体操作パラメータを選択する。そうでない場合、システムは、ブロック572に進む。ブロック556またはブロック562の判定がブロック556またはブロック562の2つ以上の反復に関して「いいえ」である方法500のインスタンスでは、クライアントデバイスにおいて促すことが、ブロック556またはブロック562において「いいえ」の判定がなされたすべての物体操作パラメータに関して、物体操作パラメータが定義されるおよび/または確認されることを要求する単一のプロンプトであることが可能であることが留意される。言い換えると、N個の反復の各々のためにN個の別々のプロンプトがあるとは限らない。むしろ、任意で、N個の反復の各々に関する要求を包含する単一のプロンプトが存在し得る。
【0104】
ブロック572において、システムは、物体操作パラメータに従ってロボットに物体を操作させる。物体操作パラメータは、ブロック566の1つもしくは複数の反復から、および/またはブロック570の1つもしくは複数の反復からの物体操作パラメータを含み得る。たとえば、物体操作パラメータは、予測された物体操作パラメータ(確認ありもしくは確認なし)に基づく物体操作パラメータ、および/またはいかなる予測された物体操作パラメータとも無関係にユーザインターフェース入力に基づいて定義される物体操作パラメータを含み得る。
【0105】
次いでシステムは、ブロック552に戻る。様々な実装において、方法500の複数の反復が、所与の環境に関して並列に実行されていることが可能であり、--前の物体に関する方法500の完了前(たとえば、少なくともブロック572の完了前)に--新しい物体に関する視覚的表現が生成され、送信され、対応するデータが受信され、および/または対応する物体操作パラメータが決定されることを可能にすることが留意される。
【0106】
ここで図6に目を向けると、予測モデルを訓練し、予測モデルを検証し、予測モデルを展開し、任意で、展開された予測モデルをさらに訓練する例示的な方法600が示される。便宜上、方法600の動作の一部は、動作を実行するシステムに関連して説明される。このシステムは、図1Aおよび図1Bに示された1つまたは複数の構成要素などの、様々なコンピュータシステムおよび/またはロボットの様々な構成要素を含んでよい。さらに、方法600の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される場合がある。
【0107】
ブロック652において、システムは、オペレータによって手引きされた物体操作の試みからのデータに基づいて予測モデルを訓練する。たとえば、システムは、方法400のブロック452、454、および456において生成された訓練インスタンスに基づいて予測モデルを訓練することができる。
【0108】
ブロック654において、システムは、1つまたは複数の条件が満たされたかどうかを判定する。満たされなかった場合、システムは、ブロック652に戻る。満たされた場合、システムは、ブロック656に進む。ブロック654において考慮される条件は、たとえば、ブロック652の訓練に利用された訓練インスタンスの閾値の量および/またはブロック652の訓練の閾値の持続期間を含み得る。
【0109】
ブロック656において、システムは、予測モデルを使用して生成された予測をオペレータによって手引きされたグラウンドトゥルースと比較することに基づいて予測モデルを検証しようと試みる。たとえば、システムは、モデルを利用して作られた予測された物体操作パラメータを、ユーザインターフェース入力に基づいて定義された対応する物体操作パラメータ(すなわち、オペレータによって手引きされたグラウンドトゥルース)と比較することができる。システムは、比較に基づいて、予測に関するエラー測定値を決定することができる。オペレータによって手引きされたグラウンドトゥルースは、任意で、決定された成功測定値に基づいて確かめられ得る。言い換えると、オペレータによって手引きされたグラウンドトゥルースは、対応する成功測定値が対応する操作の全体的な成功および/または定義された物体操作パラメータに対応する操作の一部分の成功を示す場合にのみ、グラウンドトゥルースと考えられ得る。
【0110】
ブロック658において、システムは、検証が成功であったかどうかを判定する。成功でなかった場合、システムはブロック652に戻り、任意で、(たとえば、より高レベルの訓練を要求するために)ブロック654の条件を調整する。検証が成功であったかどうかを判定する際、様々な指標が利用され得る。たとえば、システムは、ブロック656の比較に基づいて、予測の少なくとも閾値の割合が閾値のエラー測定値よりも小さい場合に、成功した検証を決定することができる。
【0111】
ブロック658の判定が、検証が成功であるということである場合、システムはブロック660に進む。ブロック660において、システムは、生成され、提案される、および/または自動的に実施される予測における使用のために予測モデルを展開する。たとえば、予測モデルは、方法300および/または方法500における使用のために展開され得る。
【0112】
任意のブロック662において、システムは、展開中の提案に対するオペレータのフィードバックに基づいて、および/または展開中のセンサに基づく成功測定値に基づいて、予測モデルをさらに訓練する。
【0113】
図7は、ロボット725の例示的なアーキテクチャを概略的に示す。ロボット725は、ロボット制御システム760と、1つまたは複数の動作構成要素740a~740nと、1つまたは複数のセンサ742a~742mとを含む。センサ742a~742mは、たとえば、ビジョン構成要素、光センサ、圧力センサ、圧力波センサ(たとえば、マイクロフォン)、近接センサ、加速度計、ジャイロスコープ、温度計、気圧計などを含んでよい。センサ742a~742mはロボット725と一体的であるように示されるが、これは限定的であるように意図されていない。一部の実装において、センサ742a~742mは、ロボット725の外部に、たとえば、スタンドアロン型ユニットとして置かれてよい。
【0114】
動作構成要素740a~740nは、たとえば、ロボットの1つまたは複数の構成要素の動きを実現するための1つもしくは複数のエンドエフェクタおよび/または1つもしくは複数のサーボモータもしくはその他のアクチュエータを含んでよい。たとえば、ロボット725は、複数の自由度を有していてよく、アクチュエータの各々は、制御コマンドに応答して自由度のうちの1つまたは複数の中でロボット725の作動を制御してよい。本明細書において使用されるとき、用語アクチュエータは、アクチュエータに関連付けられ、受信された制御コマンドをアクチュエータを駆動するための1つまたは複数の信号に変換する場合がある任意のドライバ(driver)に加えて、動きを生み出す機械的または電気的デバイス(たとえば、モータ)を包含する。したがって、制御コマンドをアクチュエータに与えることは、制御コマンドをドライバに与えることを含む場合があり、ドライバは、制御コマンドを、電気的または機械的デバイスを駆動して所望の動きを生み出すための適切な信号に変換する。
【0115】
ロボット制御システム760は、CPU、GPU、および/またはロボット725のその他のコントローラなどの1つまたは複数のプロセッサに実装されてよい。一部の実施形態において、ロボット725は、制御システム760のすべてのまたは一部の態様を含む場合がある「ブレインボックス(brain box)」を含んでよい。たとえば、ブレインボックスは、データのリアルタイムのバーストを動作構成要素740a~740nに提供してもよく、リアルタイムのバーストの各々は、とりわけ、動作構成要素740a~740nのうちの1つまたは複数の各々に関する動きのパラメータ(もしあれば)を指示する1つまたは複数の制御コマンドの組を含む。一部の実装において、ロボット制御システム760は、本明細書において説明される1つまたは複数の方法の1つまたは複数の態様を実行してよい。
【0116】
本明細書において説明されるように、一部の実装においては、制御システム760によって生成された制御コマンドのすべてのまたは一部の態様が、本明細書において説明される技術によって生成された物体操作パラメータに基づいて生成され得る。制御システム760はロボット725の一体的な部分として図7に示されているが、一部の実装においては、制御システム760のすべてのまたは一部の態様が、ロボット725と別れているがロボット725と通信する構成要素に実装されてよい。たとえば、制御システム760のすべてのまたは一部の態様は、コンピューティングデバイス810などの、ロボット725と有線および/またはワイヤレスで通信する1つまたは複数のコンピューティングデバイスに実装されてよい。
【0117】
図8は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用されてよい例示的なコンピューティングデバイス810のブロック図である。たとえば、一部の実装において、コンピューティングデバイス810は、シミュレータ120、シム差分エンジン(sim difference engine)130、リアルエピソードシステム(real episode system)110、シム訓練データシステム(sim training data system)140、および/または訓練エンジン145を実行するために利用されてよい。概して、コンピューティングデバイス810は、バスサブシステム812を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ814を含む。これらの周辺デバイスは、たとえば、メモリサブシステム825およびファイルストレージサブシステム826を含むストレージサブシステム824、ユーザインターフェース出力デバイス820、ユーザインターフェース入力デバイス822、ならびにネットワークインターフェースサブシステム816を含んでよい。入力および出力デバイスは、コンピューティングデバイス810とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム816は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【0118】
ユーザインターフェース入力デバイス822は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含んでよい。概して、用語「入力デバイス」の使用は、コンピューティングデバイス810または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【0119】
ユーザインターフェース出力デバイス820は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含んでよい。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含んでよい。ディスプレイサブシステムは、音声出力デバイスを介するなどして非視覚的表示を提供する場合もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス810からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【0120】
ストレージサブシステム824は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム824は、本明細書において説明される1つまたは複数の方法の選択された態様を実行するための論理を含んでよい。
【0121】
これらのソフトウェアモジュールは、概して、プロセッサ814によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム824において使用されるメモリ825は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)830と、決まった命令が記憶される読み出し専用メモリ(ROM)832とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム826は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含んでよい。特定の実装の機能を実装するモジュールは、ストレージサブシステム824内のファイルストレージサブシステム826によって、またはプロセッサ814によりアクセスされ得るその他のマシンに記憶される場合がある。
【0122】
バスサブシステム812は、コンピューティングデバイス810の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム812は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する場合がある。
【0123】
コンピューティングデバイス810は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図8に示されたコンピューティングデバイス810の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図8に示されたコンピューティングデバイスよりも多くのまたはより少ない構成要素を有するコンピューティングデバイス810の多くのその他の構成が可能である。
【0124】
一部の実装においては、環境の第1の領域内の1つまたは複数のビジョン構成要素から、第1の時間の第1の領域の特徴を取り込むビジョンデータを受信するステップを含む方法が提供される。取り込まれた特徴は、第1の時間に第1の領域にある物体の物体特徴を含む。方法は、第1の領域からビジョンデータによって取り込まれない、環境の異なるロボット作業空間への物体の搬送の完了前に、1つまたは複数のネットワークを介してリモートクライアントデバイスに、ビジョンデータに基づいて生成される視覚的表現を送信するステップと、1つまたは複数のネットワークを介してリモートクライアントデバイスから、1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを受信するステップとをさらに含む。視覚的表現は、物体特徴に基づいて生成された物体表現を含む。ユーザインターフェース入力は、リモートクライアントデバイスにおいて行われ、リモートクライアントデバイスにおいてレンダリングされるときの視覚的表現を対象とする。方法は、データに基づいて、ロボット作業空間内で動作するロボットによる物体の操作のための1つまたは複数の物体操作パラメータを決定するステップをさらに含む。方法は、物体がロボット作業空間内にあることを検出したことに応答して、1つまたは複数の物体操作パラメータに従って、ロボットに物体を操作させるステップをさらに含む。物体は、第1の領域からロボット作業空間への物体の搬送の後、第1の時間に続く第2の時間に、ロボット作業空間内にある。
【0125】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【0126】
一部の実装においては、1つまたは複数の物体操作パラメータを決定するステップも、第1の領域からロボット作業空間への物体の搬送の完了前である。
【0127】
一部の実装において、1つまたは複数の物体操作パラメータは、物体の把持のための把持姿勢を含む。それらの実装において、搬送後にロボット作業空間内で物体が検出されたことに応答して、1つまたは複数の物体操作パラメータに従ってロボットに物体を操作させるステップは、ロボットのエンドエフェクタに把持姿勢までトラバースさせ、把持姿勢までトラバースした後に物体の把持を試みさせることを含む。
【0128】
一部の実装において、データは、第1の基準座標系に対して1つもしくは複数の姿勢および/または1つもしくは複数の点を定義する。それらの実装の一部において、1つまたは複数の物体操作パラメータを生成することは、1つもしくは複数の姿勢および/または1つもしくは複数の点を、基準座標系とは異なるロボット座標系に変換することと、物体操作パラメータを生成する際に変換された姿勢および/または点を使用することとを含む。
【0129】
一部の実装において、方法は、ロボットに物体を操作させた後、1つまたは複数の追加のセンサからの追加のセンサデータに基づいて、操作の成功の測定値を決定するステップと、成功の測定値が閾値を満たすことに基づいて正の訓練インスタンスを生成するステップと、正の訓練インスタンスに基づいて機械学習モデルを訓練するステップとをさらに含む。それらの実装の一部のバージョンにおいて、1つまたは複数の追加のセンサは、ロボットビジョン構成要素、ロボットのトルクセンサ、および/または環境内の重量センサを含む。それらの実装の一部の追加的または代替的なバージョンにおいて、正の訓練インスタンスを生成するステップは、ビジョンデータに基づいてまたはロボットの1つもしくは複数のロボットビジョン構成要素からのロボットビジョンデータに基づいて、正の訓練インスタンスの訓練インスタンスの入力を生成すること、および/あるいは物体操作パラメータに基づいて、正の訓練インスタンスの訓練インスタンスの出力を生成することを含む。それらの追加的または代替的なバージョンの一部において、方法は、正の訓練インスタンスに基づいて機械学習モデルを訓練した後、機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、処理に基づいて、追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、1つまたは複数の予測された物体操作パラメータに従って、ロボットに追加の物体を操作させるステップとをさらに含む。さらに、方法は、予測された物体操作パラメータの視覚的インジケーションを、リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップと、リモートクライアントデバイスまたは追加のリモートクライアントデバイスから、予測された物体操作パラメータの視覚的インジケーションの提示に応答して肯定的なユーザインターフェース入力が受け取られたというインジケーションを受信するステップとを任意でさらに含み得る。1つまたは複数の予測された物体操作パラメータに従って、ロボットに追加の物体を操作させるステップは、肯定的なユーザインターフェース入力が受け取られたというインジケーションを受信したことに応答したものであることが可能である。任意で、方法は、処理に基づいて、1つまたは複数の予測された物体操作パラメータの信頼性の測定値を生成するステップをさらに含む。予測された物体操作パラメータの視覚的インジケーションを送信するステップは、信頼性の測定値が閾値の信頼性の測定値を満たすことができないことに応答したものであることが可能である。追加的または代替的に、方法は、正の訓練インスタンスに基づいて機械学習モデルを訓練した後、機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、処理に基づいて、追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、予測された物体操作パラメータの視覚的インジケーションを、リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップと、リモートクライアントデバイスまたは追加のリモートクライアントデバイスから、予測された物体操作パラメータの視覚的インジケーションの提示に応答して受け取られたユーザインターフェース入力によって定義された代替的な物体操作パラメータのインジケーションを受信するステップと、代替的な物体操作パラメータを受信したことに応答して、1つまたは複数の代替的な物体操作パラメータに従って、ロボットに追加の物体を操作させるステップとを任意でさらに含み得る。方法は、代替的な物体操作パラメータに基づくラベル付けされた出力を有する訓練インスタンスを使用して機械学習モデルをさらに訓練するステップを任意でさらに含み得る。
【0130】
一部の実装において、方法は、ロボットが物体を操作する前に、第1の領域内の1つまたは複数のビジョン構成要素から、第1の時間の後であるが第2の時間の前である第3の時間の第1の領域の特徴を取り込むビジョンデータを受信するステップであって、ビジョンデータが、第3の時間の第1の領域内にある新しい物体の新しい物体特徴を含む、ステップと、新しいビジョンデータに基づいて生成される新しい視覚的表現をリモートクライアントデバイスに送信するステップであって、新しい視覚的表現が、新しい物体特徴に基づいて生成された新しい物体表現を含む、ステップと、リモートクライアントデバイスにおいてレンダリングされるときの新しい視覚的表現を対象とするリモートクライアントデバイスにおける1つまたは複数の新しいユーザインターフェース入力に基づいて生成される新しいデータを、リモートクライアントデバイスから受信するステップと、データに基づいて、ロボット作業空間内で動作するロボットによる新しい物体の操作のための1つまたは複数の新しい物体操作パラメータを決定するステップとをさらに含む。それらの実装の一部において、方法は、ロボットが物体を操作した後に、ロボットが、1つまたは複数のロボットビジョン構成要素によって、新しい物体がロボット作業空間内にあることを検出したことに応答して、前記1つまたは複数の新しい物体操作パラメータに従って、ロボットに新しい物体を操作させるステップをさらに含む。新しい物体は、新しい物体の搬送の後、第2の時間に続く第4の時間に、ロボット作業空間内にある。
【0131】
一部の実装において、第1の領域からロボット作業空間への物体の搬送は、1つまたは複数のコンベヤによる。
【0132】
一部の実装において、方法は、複数のリモートクライアントデバイスの各々に関して、未処理のロボット操作アシスタント要求(robot manipulation assistant request)の量および/または持続期間を定義する対応するキューデータにアクセスするステップをさらに含む。それらの実装の一部において、方法は、リモートクライアントデバイスに関する対応するクエリデータに基づいて、複数のリモートクライアントデバイスからリモートクライアントデバイスを選択するステップをさらに含む。リモートクライアントデバイスに視覚的表現を送信するステップは、リモートクライアントデバイスを選択したことに応答したものであることが可能である。
【0133】
一部の実装において、物体表現は、物体のレンダリングであり、レンダリングは、物体特徴に基づいて生成され、ビジョンデータ内で可視である物体の1つまたは複数の特徴を省略する。
【0134】
一部の実装において、物体がロボット作業空間内にあることを検出することは、ロボットの1つまたは複数のロボットビジョン構成要素からのロボットビジョンデータに基づくロボットによる。
【0135】
一部の実装においては、環境内の1つまたは複数のビジョン構成要素から、環境内にある物体の物体特徴を含む環境の特徴を取り込むビジョンデータを受信するステップを含む方法が提供される。方法は、機械学習モデルを使用してビジョンデータを処理することに基づいて、物体に関する予測された物体操作パラメータと、予測された物体操作パラメータに関する信頼性の測定値とを生成するステップをさらに含む。方法は、予測された物体操作パラメータに関する信頼性の測定値が閾値の信頼性の測定値を満たすかどうかを判定するステップをさらに含む。方法は、信頼性の測定値が閾値の信頼性の測定値を満たすことができないと判定したことに応答して、1つまたは複数のネットワークを介してリモートクライアントデバイスに、(1)物体特徴に基づいて生成される物体の物体表現、および(2)予測された物体操作パラメータの視覚的インジケーションを送信するステップと、1つまたは複数のネットワークを介してリモートクライアントデバイスから、1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを受信するステップとをさらに含む。ユーザインターフェース入力は、リモートクライアントデバイスにおいて行われ、リモートクライアントデバイスにおいて物体表現および視覚的インジケーションをレンダリングしたことに応答したものである。方法は、データに基づいて、物体操作パラメータかまたは代替的な物体操作パラメータかのどちらかを利用すると決定するステップをさらに含む。方法は、決定された物体操作パラメータまたは代替的な物体操作パラメータに従って、ロボットに物体を操作させるステップをさらに含む。方法は、信頼性の測定値が閾値の信頼性の測定値を満たすと判定したことに応答して、物体操作パラメータに従って物体を操作する前に確認のために視覚的インジケーションをいかなるリモートクライアントデバイスにも送信することなく、物体操作パラメータに従ってロボットに物体を操作させるステップをさらに含む。
【0136】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【0137】
一部の実装において、ビジョン構成要素は、環境の第1の領域内にあり、予測された物体操作パラメータに関する信頼性の測定値が閾値の信頼性の測定値を満たすかどうかを判定するステップは、ロボットの異なるロボット作業空間への物体の搬送前に行われる。
【符号の説明】
【0138】
101A ロボット作業空間
101B ロボット作業空間
101C 領域
103A コンベヤ部分
103B コンベヤ部分
103C コンベヤ部分
110 システム、リアルエピソードシステム
112 予測エンジン
113 予測された物体操作パラメータ
114 視覚的表現エンジン
115 視覚的表現
116 操作パラメータエンジン
117 物体操作パラメータ
120 シミュレータ
130 リモートクライアントデバイス、シム差分エンジン
132 表示エンジン
134 入力エンジン
135 入力データ
136 入力デバイス
140 シム訓練データシステム
143 訓練データエンジン
144 訓練インスタンス
145 訓練エンジン
152 訓練データデータベース
165 機械学習モデル
170A 第1のロボット
170B 第2のロボット
172A エンドエフェクタ
172B エンドエフェクタ
174A 関連するロボットビジョン構成要素
174B 関連するロボットビジョン構成要素
194 追加のビジョン構成要素
192A サングラス
192B ステープラ
192C へら
193A コンテナ
193B コンテナ
270A ロボットのシミュレーション
270B ロボットのシミュレーション
270C ロボットのシミュレーション
282A1 仮想ボタン
282A2 仮想ボタン
282A3 仮想ボタン
282E1 インジケーション
282E2 インジケーション
288E インジケーション
289A1 経路、軌跡
289B1 中間地点
289B2 中間地点
289B3 把持姿勢
289C1 把持姿勢
289D1 点
289D2 点
289F1 点
289F2 点
292A 物体表現
292B 物体表現
292C 物体表現
292D 物体表現
292E 物体表現
292F 物体表現
300 方法
400 方法
500 方法
600 方法
725 ロボット
740a~740n 動作構成要素
742a~742m センサ
760 制御システム
810 コンピューティングデバイス
812 バスサブシステム
814 プロセッサ
816 ネットワークインターフェースサブシステム
820 ユーザインターフェース出力デバイス
822 ユーザインターフェース入力デバイス
824 ストレージサブシステム
825 メモリサブシステム
826 ファイルストレージサブシステム
830 主ランダムアクセスメモリ(RAM)
832 読み出し専用メモリ(ROM)
図1A
図1B
図2A
図2B
図2C
図2D
図2E
図2F
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-09-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
環境の第1の領域内の1つまたは複数のビジョン構成要素からビジョンデータを受信するステップであって、前記ビジョンデータは、第1の時間における前記第1の領域の特徴を取り込み、前記特徴は、前記第1の時間において前記第1の領域に位置する物体の物体特徴を含む、ステップと、
前記第1の領域から、前記ビジョンデータによって取り込まれない前記環境の異なるロボット作業空間への前記物体の搬送の完了前における、
前記第1の時間における前記第1の領域の前記特徴を取り込む前記ビジョンデータに基づいて生成される視覚的表現を1つまたは複数のネットワークを介してリモートクライアントデバイスに送信するステップであって、
前記視覚的表現が、前記物体特徴に基づいて生成される物体表現を含み、
前記物体表現はバウンディング形状を含み、前記バウンディング形状は、
前記バウンディング形状の中心を定義する2以上の座標と、
前記バウンディング形状の向きを定義する1つまたは複数の向きの値と、
前記バウンディング形状のサイズを定義する少なくとも1つのサイズ値と
により定義され、
前記視覚的表現は、前記ビジョンデータ内で可視である前記第1の領域の1つまたは複数の他の物体を省略する、ステップと、
前記リモートクライアントデバイスにおける1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを、前記リモートクライアントデバイスから前記1つまたは複数のネットワークを介して受信するステップであって、前記1つまたは複数のユーザインターフェース入力は、前記第1の時間における前記第1の領域の前記特徴を取り込む前記ビジョンデータに基づいて生成される前記視覚的表現が前記リモートクライアントデバイスにおいてレンダリングされるときの、前記視覚的表現に向けられたものである、ステップと、
前記データに基づいて、前記ロボット作業空間内で動作するロボットによる前記物体の操作に対する1つまたは複数の物体操作パラメータを決定するステップと、
前記1つまたは複数の物体操作パラメータに従って前記ロボットに前記物体を操作させるステップであって、
1つまたは複数のロボットセンサーを使用して、前記物体が前記ロボット作業空間内にあることを前記ロボットが検出することに応答して、前記ロボットは、前記1つまたは複数の物体操作パラメータに従って、前記物体を操作し、
前記1つまたは複数のロボットセンサーは、前記環境の前記第1の領域内の前記ビジョン構成要素に加えられ、
前記第1の領域から前記ロボット作業空間への前記物体の搬送の後で、かつ前記第1の時間に続く第2の時間において、前記物体が前記ロボット作業空間内にある、ステップと
を含む、方法。
【請求項2】
前記1つまたは複数の物体操作パラメータを決定するステップも、前記第1の領域から前記ロボット作業空間への前記物体の搬送の完了前に行われる、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の物体操作パラメータが、前記物体の把持のための把持姿勢を含み、
前記1つまたは複数の物体操作パラメータに従って前記ロボットに前記物体を操作させるステップが、前記ロボットのエンドエフェクタに前記把持姿勢までトラバースさせ、前記把持姿勢までトラバースした後に前記物体の把持を試みさせるステップを含む、請求項1に記載の方法。
【請求項4】
前記データは、第1の基準座標系に対して1つもしくは複数の姿勢および/または1つもしくは複数の点を定義し、
前記1つまたは複数の物体操作パラメータを生成するステップが、
前記1つもしくは複数の姿勢および/または前記1つもしくは複数の点を、前記基準座標系とは異なるロボット座標系に変換するステップと、
前記物体操作パラメータを生成する際に前記変換された姿勢および/または点を使用するステップを
を含む、請求項1に記載の方法。
【請求項5】
前記ロボットに前記物体を操作させた後において、
1つまたは複数の追加のセンサーからの追加のセンサーデータに基づいて、前記操作の成功の測定値を決定するステップと、
成功の前記測定値が閾値を満たすことに基づいて、正の訓練インスタンスを生成するステップと、
前記正の訓練インスタンスに基づいて、機械学習モデルを訓練するステップと
をさらに含む、請求項1に記載の方法。
【請求項6】
前記1つまたは複数の追加のセンサーが、前記1つまたは複数のロボットセンサー、および前記環境内の重量センサーのうちの少なくとも一方を含む、請求項5に記載の方法。
【請求項7】
前記正の訓練インスタンスを生成するステップが、
前記ビジョンデータに基づいて、または前記ロボットの1つまたは複数のロボットビジョン構成要素からのロボットビジョンデータに基づいて、前記正の訓練インスタンスの訓練インスタンス入力を生成するステップを含む、請求項5に記載の方法。
【請求項8】
前記正の訓練インスタンスを生成するステップが、前記物体操作パラメータに基づいて、前記正の訓練インスタンスの訓練インスタンス出力を生成するステップを含む、請求項7に記載の方法。
【請求項9】
前記正の訓練インスタンスに基づいて前記機械学習モデルを訓練するステップの後において、
前記機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、
前記処理に基づいて、前記追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、
前記1つまたは複数の予測された物体操作パラメータに従って、前記ロボットに前記追加の物体を操作させるステップと
をさらに含む、請求項8に記載の方法。
【請求項10】
前記予測された物体操作パラメータの視覚的インジケーションを、前記リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップと、
前記リモートクライアントデバイスまたは前記追加のリモートクライアントデバイスから、前記予測された物体操作パラメータの前記視覚的インジケーションの提示に応答して肯定的なユーザインターフェース入力が受け取られたというインジケーションを受信するステップと
をさらに含み、
前記1つまたは複数の予測された物体操作パラメータに従って前記ロボットに前記追加の物体を操作させるステップが、肯定的なユーザインターフェース入力が受け取られたという前記インジケーションを受信することに応答する、請求項9に記載の方法。
【請求項11】
前記処理に基づいて、前記1つまたは複数の予測された物体操作パラメータの信頼性の測定値を生成するステップをさらに含み、
前記予測された物体操作パラメータの前記視覚的インジケーションを送信するステップが、前記信頼性の測定値が、信頼性の測定値の閾値を満たすことができないことに応答する、請求項10に記載の方法。
【請求項12】
前記正の訓練インスタンスに基づいて前記機械学習モデルを訓練するステップの後におおいて、
前記機械学習モデルを使用して、追加の物体を取り込む追加のビジョンデータを処理するステップと、
前記処理に基づいて、前記追加の物体に関する1つまたは複数の予測された物体操作パラメータを生成するステップと、
前記予測された物体操作パラメータの視覚的インジケーションを、前記リモートクライアントデバイスまたは追加のリモートクライアントデバイスに送信するステップと、
前記予測された物体操作パラメータの視覚的インジケーションの提示に応答して受け取られたユーザインターフェース入力によって定義された代替的な物体操作パラメータのインジケーションを、前記リモートクライアントデバイスまたは前記追加のリモートクライアントデバイスから受信するステップと、
前記代替的な物体操作パラメータの受信に応答して、前記1つまたは複数の代替的な物体操作パラメータに従って、前記ロボットに前記追加の物体を操作させるステップと
をさらに含む、請求項8に記載の方法。
【請求項13】
方法であって、
環境の特徴を取り込むビジョンデータを、前記環境内の1つまたは複数のビジョン構成要素から受信するステップであって、前記環境の特徴が、前記環境に位置する物体の物体特徴を含む、ステップと、
機械学習モデルを使用して前記ビジョンデータを処理することに基づいて、前記物体に関する予測された物体操作パラメータと、前記予測された物体操作パラメータに関する信頼性の測定値とを生成するステップと、
前記予測された物体操作パラメータに関する前記信頼性の測定値が、信頼性の測定値の閾値を満たすか否かを決定するステップと、
1つまたは複数のネットワークを介してリモートクライアントデバイスに送信するために、視覚的表現を生成するステップであって、
前記物体特徴に基づいて生成される前記物体の物体表現を前記視覚的表現に含めるステップと、
前記信頼性の測定値が、信頼性の測定値の下限閾値を満たすか否かに基づいて、前記予測された物体操作パラメータの視覚的インジケーションを前記視覚的表現に含めるか否かを決定するステップと
を含む、前記視覚的表現を生成するステップと、
前記視覚的表現を前記リモートクライアントデバイスに送信するステップと、
前記リモートクライアントデバイスにおける前記視覚的表現のレンダリングに応答して、前記リモートクライアントデバイスにおいて1つまたは複数のユーザインターフェース入力に基づいて生成されるデータを、前記1つまたは複数のネットワークを介して前記リモートクライアントデバイスから受信するステップと、
受信した前記データに依存して、ロボットに前記物体を操作させるステップと
を含む、方法。
【外国語明細書】