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

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

▶ オートデスク,インコーポレイテッドの特許一覧

特許7291185力及びトルク誘導ロボット組立のための技術
<>
  • 特許-力及びトルク誘導ロボット組立のための技術 図1
  • 特許-力及びトルク誘導ロボット組立のための技術 図2
  • 特許-力及びトルク誘導ロボット組立のための技術 図3
  • 特許-力及びトルク誘導ロボット組立のための技術 図4
  • 特許-力及びトルク誘導ロボット組立のための技術 図5
  • 特許-力及びトルク誘導ロボット組立のための技術 図6
  • 特許-力及びトルク誘導ロボット組立のための技術 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-06
(45)【発行日】2023-06-14
(54)【発明の名称】力及びトルク誘導ロボット組立のための技術
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230607BHJP
   G06N 3/08 20230101ALI20230607BHJP
   B25J 13/00 20060101ALI20230607BHJP
【FI】
G06N20/00
G06N3/08
B25J13/00 Z
【請求項の数】 14
(21)【出願番号】P 2021163274
(22)【出願日】2021-10-04
(65)【公開番号】P2022061022
(43)【公開日】2022-04-15
【審査請求日】2021-10-04
(31)【優先権主張番号】63/087,841
(32)【優先日】2020-10-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/471,520
(32)【優先日】2021-09-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500280087
【氏名又は名称】オートデスク,インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】ルオ ジエリャン
(72)【発明者】
【氏名】フイ リー
【審査官】今城 朋彬
(56)【参考文献】
【文献】特表2019-529135(JP,A)
【文献】国際公開第2020/138436(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
ロボットを制御するためのコンピュータ実装方法であって、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含むことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練されることと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させること
を含み、
前記強化学習中に、学習者が前記機械学習モデルのパラメータを更新し、前記学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、コンピュータ実装方法。
【請求項2】
前記機械学習モデルは、少なくとも1つのメモリ層を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記機械学習モデルが、完全接続層、Qネットワーク、またはpiネットワークのうちの少なくとも1つをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記強化学習中に、前記機械学習モデルが前記ロボットのモデルを含まない環境で訓練される、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記強化学習中に、前記学習者が少なくとも1つの他の機械学習モデルのパラメータをさらに更新し、前記少なくとも1つの他の機械学習モデルが少なくとも1つのシミュレーション環境に適用される、請求項に記載のコンピュータ実装方法。
【請求項6】
それぞれが複数の遷移を含む前記シーケンスは、遷移のエピソードを形成するようにグループ化され、
前記強化学習中、それぞれが前記遷移のエピソード内の複数の遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量は前記エピソードの長さに基づ、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記動作は、目標速度を含み、前記ロボットに前記動作に基づいて前記1つまたは複数の運動を実行させることは、
前記目標速度に基づいて逆動力学を使用して、前記ロボットの1つまたは複数の関節の1つまたは複数の運動を計算することと、
前記1つまたは複数の関節の前記1つまたは複数の運動に基づいて、少なくとも1つのコマンド信号を前記ロボットに送信することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記センサデータは、前記ロボットのエンドエフェクタに取り付けられたセンサによって取得される、請求項1に記載のコンピュータ実装方法。
【請求項9】
関節部材の姿勢と目標姿勢との間の距離が閾値距離未満であるかどうかを判定することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサにロボットを制御するためのステップを実行させる命令を含む、1つまたは複数の非一時的なコンピュータ可読媒体であって、前記ステップが、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、ことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練される、ことと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させることと
を含み、
前記強化学習中に、学習者が前記機械学習モデルのパラメータを更新し、前記学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項11】
ロボットを制御するためのシステムであって、
命令を格納する1つまたは複数のメモリと、
前記1つまたは複数のメモリに結合される1つまたは複数のプロセッサであって、前記命令を実行するときに、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、ことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練される、ことと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させることと
を行うように構成される1つまたは複数のプロセッサと
を備え
前記強化学習中に、学習者が前記機械学習モデルのパラメータを更新し、前記学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、システム。
【請求項12】
ロボットを制御するためのコンピュータ実装方法であって、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、ことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練される、ことと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させることと
を含み、
前記強化学習中、遷移のエピソード内の遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量は前記エピソードの長さに基づき、
前記遷移のエピソードに含まれる各遷移は、観察、動作、及び報酬を含む、コンピュータ実装方法。
【請求項13】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサにロボットを制御するためのステップを実行させる命令を含む、1つまたは複数の非一時的なコンピュータ可読媒体であって、前記ステップが、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、ことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練される、ことと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させることと
を含み、
前記強化学習中、遷移のエピソード内の遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量は前記エピソードの長さに基づき、
前記遷移のエピソードに含まれる各遷移は、観察、動作、及び報酬を含む、1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項14】
ロボットを制御するためのシステムであって、
命令を格納する1つまたは複数のメモリと、
前記1つまたは複数のメモリに結合される1つまたは複数のプロセッサであって、前記命令を実行するときに、
前記ロボットに関連付けられたセンサデータを受信することであって、前記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、ことと、
機械学習モデルを前記センサデータに適用して動作を生成することであって、前記機械学習モデルは、強化学習を介して訓練される、ことと、
前記ロボットに前記動作に基づいて1つまたは複数の運動を実行させることと
を行うように構成される、1つまたは複数のプロセッサと
を備え、
前記強化学習中、遷移のエピソード内の遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量は前記エピソードの長さに基づき、
前記遷移のエピソードに含まれる各遷移は、観察、動作、及び報酬を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年10月5日出願の「RECURRENT DISTRIBUTED REINFORCEMENT LEARNING FOR PARTIALLY OBSERVABLE ROBOTIC ASSEMBLY」と題する米国仮特許出願第63/087,841号の優先権を主張する。本関連出願の主題は、参照により本明細書に組み込まれる。
【0002】
本開示の実施形態は、一般にロボット工学に関連し、より詳細には、力及びトルク誘導ロボット組立のための技術に関連する。
【背景技術】
【0003】
ロボットシステムは、製品を組み立て、正確に制御できる製造環境でタスクを実行するために広く使用されており、これらの環境で動作するロボットは、予測可能で反復的な方法でタスクを実行できる。ただし、建築現場などの多くの環境は、正確に制御されないか、または正確に制御できないため、これらの環境で動作するロボットは、多様で、場合によっては予測できない状況でタスクを実行する必要がある。これらの後者のタイプの環境は、本明細書では「非構造化」環境と呼ばれる。
【0004】
従来のロボット制御技術は、ロボットの初期姿勢の不整合または物理的ノイズなど、非構造化環境の多様性と不確実性に適応できないが、強化学習ベースの技術は、非構造化環境でロボットを制御するのにより成功することが証明されている。ただし、非構造化環境で複雑なタスクを実行するようにロボットを制御するために、従来の学習ベースの技術では、モーションキャプチャまたは他の追跡システムを介して直接キャプチャできるか、または視覚ベースのシステムを介して間接的に推測できる、環境内のロボット及び/またはその他のオブジェクトの姿勢を入力として必要とする。
【0005】
モーションキャプチャまたは他の追跡システムを使用することの1つの欠点は、そのようなシステムは、建築建設現場を含む多くの環境で較正及び展開が難しいことである。視覚ベースのシステムを使用することの1つの欠点は、非構造化環境での組立の接触が多い段階で、組立部品が互いに密接に接触することが多いため、視覚ベースのシステムが閉塞及び不十分な照明条件によって悪影響を受ける可能性があることである。その結果、モーションキャプチャまたは他の追跡システムを介してキャプチャされるか、または視覚ベースのシステムを介して間接的に推測される、環境内のロボット及び/または他のオブジェクトの姿勢を必要とするロボットを制御するための従来の学習ベースの技術は、実世界での有用性が限られている。ロボットを制御するための従来の学習ベースの技術の別の欠点は、そのような技術がロボット固有であり、他のロボットプラットフォームに容易に一般化できないことである。
【0006】
前述のように、当技術分野で必要とされるのは、非構造化環境においてロボットを制御するためのより効果的な技術である。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示の一実施形態は、ロボットを制御するためのコンピュータ実装方法を示す。方法は、センサデータが、力またはトルクデータの少なくとも一方を備える、ロボットに関連付けられたセンサデータを受信することを含む。方法は、機械学習モデルが、強化学習によって訓練される、機械学習モデルをセンサデータに適用して動作を生成することをさらに含む。さらに、方法は、動作に基づいてロボットに1つまたは複数の運動を実行させることを含む。
【0008】
本開示の他の実施形態は、限定されないが、開示された技術の1つまたは複数の態様を実行するための命令を含むコンピュータ可読媒体、ならびに開示された技術の1つまたは複数の態様を実行するためのコンピューティングデバイスを含む。
【0009】
従来技術に対する開示された技術の1つの技術的利点は、開示された技術を用いて、モーションキャプチャまたは他の追跡システムを介してキャプチャされる必要がある、または視覚ベースのシステムを介して間接的に推測される必要がある環境内のロボットの姿勢及び/または他のオブジェクトを入力として必要とせずに、非構造化環境で組立作業を実行するようにロボットを制御するために機械学習モデルを訓練できることである。さらに、開示された技術では、訓練中に学習されたポリシーはロボットに非依存であり、これらのポリシーを使用してさまざまなタイプのロボットを制御できる。これらの技術的利点は、先行技術の手法に勝る1つまたは複数の技術的進歩を表す。
【0010】
本開示の上記に記載した特徴をより詳細に理解できるように、上記に簡潔に簡略化された本開示のより具体的な説明は、実施形態を参照して行われ得、その実施形態の一部を添付の図面に示す。しかしながら、添付図面は、本開示の典型的な実施形態のみを示し、したがって、その範囲を制限するものではなく、本開示は他の同等に効果的な実施形態を認め得ることに留意されたい。
例えば、本願は以下の項目を提供する。
(項目1)
ロボットを制御するためのコンピュータ実装方法であって、
上記ロボットに関連付けられたセンサデータを受信することであって、上記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、センサデータを受信することと、
機械学習モデルを上記センサデータに適用して動作を生成することであって、上記機械学習モデルは、強化学習を介して訓練される、動作を生成することと、
上記ロボットに上記動作に基づいて1つまたは複数の運動を実行させることと、
を含む、上記方法。
(項目2)
上記機械学習モデルは、少なくとも1つのメモリ層を含む、上記項目に記載のコンピュータ実装方法。
(項目3)
上記機械学習モデルが、完全接続層、Qネットワーク、またはpiネットワークのうちの少なくとも1つをさらに含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目4)
上記強化学習中に、上記機械学習モデルが上記ロボットのモデルを含まない環境で訓練される、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目5)
上記強化学習中に、学習者が上記機械学習モデルのパラメータを更新し、上記学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目6)
上記強化学習中に、上記学習者が少なくとも1つの他の機械学習モデルのパラメータをさらに更新し、上記少なくとも1つの他の機械学習モデルが少なくとも1つのシミュレーション環境に適用される、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目7)
上記強化学習中、遷移のエピソード内の遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量は上記エピソードの長さに基づき、
上記遷移のエピソードに含まれる各遷移は、観察、動作、及び報酬を含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目8)
上記動作は、目標速度を含み、上記ロボットに上記動作に基づいて上記1つまたは複数の運動を実行させることは、
上記目標速度に基づいて逆動力学を使用して、上記ロボットの1つまたは複数の関節の1つまたは複数の運動を計算することと、
上記1つまたは複数の関節の上記1つまたは複数の運動に基づいて、少なくとも1つのコマンド信号を上記ロボットに送信することと、を含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目9)
上記センサデータは、上記ロボットのエンドエフェクタに取り付けられたセンサによって取得される、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目10)
関節部材の姿勢と目標姿勢との間の距離が閾値距離未満であるかどうかを判定することをさらに含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目11)
少なくとも1つのプロセッサによって実行されると、上記少なくとも1つのプロセッサにロボットを制御するためのステップを実行させる命令を含む、1つまたは複数の非一時的なコンピュータ可読媒体であって、上記ステップが、
上記ロボットに関連付けられたセンサデータを受信することであって、上記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、センサデータを受信することと、
機械学習モデルを上記センサデータに適用して動作を生成することであって、上記機械学習モデルは、強化学習を介して訓練される、動作を生成することと、
上記ロボットに上記動作に基づいて1つまたは複数の運動を実行させることと、を含む、1つまたは複数の非一時的なコンピュータ可読媒体。
(項目12)
上記少なくとも1つのプロセッサによって実行されると、上記命令は、上記少なくとも1つのプロセッサに、
関節部材の姿勢と目標姿勢との間の距離が閾値距離未満であるかどうかを判定するステップをさらに実行させる、上記項目に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目13)
上記動作が目標速度を含み、上記ロボットに上記動作に基づいて上記1つまたは複数の運動を実行させることは、
上記目標速度に基づいて逆動力学を使用して、上記ロボットの1つまたは複数の関節の1つまたは複数の運動を計算することと、
上記1つまたは複数の関節の上記1つまたは複数の運動に基づいて、少なくとも1つのコマンド信号を上記ロボットに送信することと、を含む、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目14)
上記センサデータが、上記ロボットのエンドエフェクタに取り付けられたセンサによって取得される、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目15)
上記機械学習モデルが長短期記憶を含む、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目16)
上記機械学習モデルが、完全接続層、Qネットワーク、またはpiネットワークのうちの少なくとも1つをさらに含む、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目17)
上記強化学習中に、上記機械学習モデルが、上記ロボットのモデルを含まない分散型環境内の少なくとも1つの他の機械学習モデルと共に訓練される、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目18)
上記強化学習中に、学習者が、上記機械学習モデルのパラメータを更新し、上記学習者は、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目19)
上記強化学習中、遷移のエピソード内の遷移を含む最後の2つの時間シーケンスがオーバーラップし、上記オーバーラップの量は上記エピソードの長さに基づき、
上記遷移のエピソードに含まれる各遷移は、観察、動作、及び報酬を含む、上記項目のいずれか一項に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
(項目20)
命令を格納する1つまたは複数のメモリと、
上記1つまたは複数のメモリに結合される1つまたは複数のプロセッサであって、上記命令を実行するときに、
上記ロボットに関連付けられたセンサデータを受信することであって、上記センサデータは、力データまたはトルクデータのうちの少なくとも一方を含む、センサデータを受信することと、
機械学習モデルを上記センサデータに適用して動作を生成することであって、上記機械学習モデルは、強化学習を介して訓練される、動作を生成することと、
上記ロボットに上記動作に基づいて1つまたは複数の運動を実行させることと、を行うように構成される、上記1つまたは複数のプロセッサと、を備える、システム。
(摘要)
ロボット組立を制御するための機械学習モデルを訓練及び適用するための技術が開示される。いくつかの実施形態では、力及びトルクの測定値を、再帰性を導入するメモリ層を含む機械学習モデルに入力する。機械学習モデルは、ロボット非依存環境での強化学習を介して、力及びトルクの測定値を与えられた組立作業を達成するための動作を生成するために訓練される。訓練中、経験はエピソード内の遷移として収集され、遷移はシーケンスにグループ化され、各エピソードの最後の2つのシーケンスは可変のオーバーラップを有する。収集された遷移は、優先順位付けされたシーケンス再生バッファに格納され、学習者はそこから遷移の優先順位及びシーケンスの優先順位に基づいて学習するシーケンスをサンプリングする。訓練されると、機械学習モデルを展開して、さまざまなタイプのロボットを制御し、それらのロボットのセンサによって取得された力及びトルクの測定値に基づいて組立作業を実行できる。
【図面の簡単な説明】
【0011】
図1】様々な実施形態の1つまたは複数の態様を実装するように構成されたシステムの概念図である。
図2】様々な実施形態による、ロボット組立を制御するための強化学習手法を示す。
図3】様々な実施形態による、図2のポリシーネットワークのより詳細な層を示す。
図4】様々な実施形態による、エピソード内の遷移のシーケンスへの例示的な割り当てを示す。
図5】様々な実施形態による、訓練された機械学習モデルを展開して、複数の例示的なロボットを制御する方法を示す。
図6】様々な実施形態による、ロボット組立を制御するために機械学習モデルを訓練するための方法のステップの流れ図である。
図7】様々な実施形態による、組立作業を実行するときにロボットを制御するための方法のステップの流れ図である。
【発明を実施するための形態】
【0012】
以下の説明では、本開示のより完全な理解を提供するために、多くの具体的な詳細が述べられている。しかしながら、本開示は、これらの具体的な詳細の1つまたは複数なしに実施され得ることが、当業者には明らかであろう。
システム概要
【0013】
図1は、様々な実施形態の1つまたは複数の態様を実装するように構成されたシステム100を示す。示されるように、システム100は、ネットワーク130を介して通信する機械学習サーバ110、データストア120、及びコンピューティングデバイス140を含み、ネットワーク130は、インターネット、ローカルエリアネットワーク(LAN)、またはその他の適切なネットワークなどの広域ネットワーク(WAN)であってよい。
【0014】
示されるように、モデルトレーナ116は、機械学習サーバ110のプロセッサ112上で実行され、機械学習サーバ110のシステムメモリ114に格納される。プロセッサ112は、キーボードまたはマウスなどの入力デバイスからユーザ入力を受信する。動作に際しては、プロセッサ112は機械学習サーバ110のマスタープロセッサであり、他のシステム構成要素の動作を制御及び調整する。具体的には、プロセッサ112は、例えば、ビデオ出力回路を含む、グラフィックス及びビデオ処理のために最適化された回路を組み込むグラフィックス処理ユニット(GPU)の動作を制御するコマンドを発行し得る。GPUは、任意の従来の陰極線管、液晶ディスプレイ、発光ダイオードディスプレイなどであり得るディスプレイデバイスにピクセルを送達し得る。
【0015】
機械学習サーバ110のシステムメモリ114は、プロセッサ112及びGPUによって使用するために、ソフトウェアアプリケーション及びデータなどのコンテンツを格納する。システムメモリ114は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラム可能な読み取り専用メモリ(EPROMまたはフラッシュROM)、または前述の任意の適切な組み合わせなどの、データ及びソフトウェアアプリケーションを格納することができる任意のタイプのメモリであり得る。いくつかの実施形態では、ストレージ(図示せず)は、システムメモリ114を補足または置き換え得る。ストレージは、プロセッサ112及び/またはGPUにアクセス可能な任意の数及びタイプの外部メモリを含み得る。例えば、これらに限定されないが、ストレージは、セキュアデジタルカード、外部フラッシュメモリ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光ストレージデバイス、磁気ストレージデバイス、または上記の任意の適切な組み合わせを含み得る。
【0016】
本明細書に示される機械学習サーバ110は例示的なものであり、変形及び修正が可能であることが理解されよう。例えば、プロセッサ112の数、GPUの数、システムメモリ114の数、及びシステムメモリ114に含まれるアプリケーションの数は、必要に応じて変更してもよい。さらに、図1のさまざまなユニット間の接続トポロジは、必要に応じて変更してもよい。いくつかの実施形態では、プロセッサ112、システムメモリ114、及びGPUの任意の組み合わせを、任意のタイプの仮想コンピューティングシステム、分散コンピューティングシステム、またはパブリック、プライベート、またはハイブリッドなどのクラウドコンピューティング環境と置き換えてもよい。
【0017】
モデルトレーナ116は、強化学習を介して機械学習モデルを訓練するように構成される。具体的には、モデルトレーナ116は、組立作業が模擬環境で実行される場合、図2~3及び6に関連して以下でより詳細に説明するように、報酬関数を最大化するために組立作業を実行するロボットを制御するためのポリシーのモデルを訓練する。機械学習モデルは、技術的に実行可能な任意の組立作業用に訓練できる。組立作業の実施例には、重ね継手の接続及びペグの穴への配置などが含まれる。訓練されると、機械学習モデルをエージェント150として展開して、ロボットを制御し、ロボットに取り付けられたセンサによって取得された力及びトルクの測定値に基づいて組立作業を実行することができる。例示的な機械学習モデルのアーキテクチャ、ならびに訓練の技術及び展開された機械学習モデルについては、図2~7に関連して以下で詳細に説明する。
【0018】
訓練データ及び/または訓練された機械学習モデルは、データストア120に格納することができる。いくつかの実施形態では、データストア120は、固定ディスクドライブ(複数可)、フラッシュドライブ(複数可)、光ストレージ、ネットワーク接続ストレージ(NAS)、及び/またはストレージエリアネットワーク(SAN)などの任意の1つまたは複数のストレージデバイスを含み得る。ネットワーク130を介してアクセス可能であると示されているが、いくつかの実施形態では、機械学習サーバ110は、データストア120を含み得る。
【0019】
エージェント150は、図1に示されるロボット制御アプリケーション146など、組立作業を実行するためにシミュレーションで物理ロボットまたはロボットを制御する任意の適切なアプリケーションに展開することができる。例示的に、ロボット制御アプリケーション146はメモリ144に格納され、コンピューティングデバイス140のプロセッサ142上で実行されて、ロボット160を制御する。ロボット160は、ロボット160のエンドエフェクタの力及びトルクを測定するため、センサ162として示される1つまたは複数のセンサを含む、任意の適切な環境(例えば、建設または製造環境)で動作する、任意の技術的に実現可能なロボットであり得る。図5及び7に関連して以下でより詳細に論じられるように、エージェント150は、ロボット160のセンサ162によって取得された力及びトルクの測定値を考慮してロボット160を制御するための動作を生成する。メモリ144及びプロセッサ142を含むコンピューティングデバイス140の構成要素は、上記の機械学習サーバ110の対応する構成要素と同様であり得る。
【0020】
機械学習サーバとコンピューティングデバイスの数は、必要に応じて変更してもよい。さらに、任意のアプリケーションに含まれる機能は、任意の数の物理的な場所に配置された任意の数のデバイスを介して格納され、実行する任意の数のアプリケーションまたは他のソフトウェアにまたがって分割され得る。
ロボット非依存力誘導組立作業のための強化学習
【0021】
図2は、様々な実施形態による、ロボット組立を制御するための強化学習手法を示す。示されるように、アクター250(本明細書では個別にアクター250と呼ばれ、集合的にアクター250(複数)と呼ばれる)は、入力として力及びトルクの測定値を含む観察204をするように構成される。観察204が与えられると、アクター250は、例えば、組立作業の制御下にある組立部品の中心における線形速度及び角速度などのタスク空間(例えば、デカルト空間)における線形速度及び角速度の形態で動作206を生成する。次に、動作206は、分散型ロボット非依存環境202でシミュレーションされ、それらの動作206に関連付けられた報酬が計算される。観察204、動作206、及び関連付けられた報酬は、エピソードの遷移222(「タイムステップ」とも呼ばれる)として収集され、訓練中に複数のエピソードをシミュレーションすることができる。各エピソードは、組立作業の開始で始まり、(1)目標姿勢と、ロボットが保持する外部部品である関節部材の姿勢との間の距離が、事前定義された閾値内にあるときなど、組立作業が完了するとき、または(2)事前定義された遷移の数(例えば、4000遷移)に達したときに終了し、この場合、新しいエピソードを開始できる。いくつかの実施形態では、エピソード内の遷移222は、一緒にシーケンスにグループ化することができ、エピソードの最後の2つのシーケンスは、可変のオーバーラップを有することができる。収集されたエピソード遷移222は、優先順位付けされたシーケンス再生バッファ208に持続される。再生バッファ208は、シーケンスの収集を格納し、各シーケンスは、遷移の収集を含む。
【0022】
学習者212は、シーケンスに割り当てられた優先順位及びシーケンス内の遷移に割り当てられた優先順位に基づいて学習するためにシーケンス217をサンプリングする。学習者212は、時間の経過とともに報酬を最大化するために、サンプリングされたシーケンス217に基づいて、示されるように、ポリシーネットワーク213、バリューネットワーク214、及び対応するターゲットネットワーク215及び216を含む学習者ニューラルネットワークのパラメータを更新することによって学習する。ポリシーネットワーク213(「アクター」ネットワークとも呼ばれる)は、力及びトルクの測定値 を入力として受け取り、動作を出力する人工ニューラルネットワークである。バリューネットワーク214(「クリティック」ネットワークとも呼ばれる)は、ポリシーネットワーク213によって出力された動作を批評する人工ニューラルネットワークである。例えば、バリューネットワーク214は、改善が行われているかどうかを判定され得るように、ポリシーネットワーク213によって出力された各動作の状態または動作状態ペア(q値)に関連付けられた値を予測することができる。ターゲットネットワーク215及び216は、訓練の安定性を改善し、それぞれ、ポリシーネットワーク213及びバリューネットワーク214と定期的に同期される。学習者212は、再生バッファ208の、更新された遷移及びシーケンス優先順位218として示される、遷移優先度及びシーケンス優先順位をさらに更新する。さらに、アクター250は、学習者ネットワーク213、214、215、及び216のパラメータに基づいて、自身のニューラルネットワークのパラメータを定期的に更新する。学習者212と同様に、アクター250のそれぞれは、ポリシーネットワーク、バリューネットワーク、及び対応するターゲットネットワーク(図示せず)を含むことができる。各ニューラルネットワークには、ニューラルネットワーク内の第1の完全接続層と第2の完全接続層との間に長短期記憶(LSTM)層が含まれる、それぞれがポリシーネットワーク、ターゲットポリシーネットワーク、バリューネットワーク、及びターゲットバリューネットワークを含む学習者とN個のアクターを含むシステムは、本明細書では、分散型の深層決定論的ポリシー勾配(DDPG)システム(RD2)とも呼ばれる。したがって、順次意思決定を通じて組立作業を達成するためのポリシーをモデル化する機械学習モデル、すなわちポリシーネットワーク213は、深層強化学習を介して訓練することができる。訓練された機械学習モデルは、物理ロボット、又はロボット上に取り付けられた1つまたは複数のセンサによって取得された力及びトルク測定値を与えられるとシミュレーション内のロボットを移動させるための動作を生成するエージェント(例えば、エージェント150)として展開することができる。
【0023】
より具体的には、各アクター250は、訓練中にロボット非依存環境202の独自のインスタンス内で行動して、動作206のエピソード、動作205が実行されるとき、環境202からフィードバックとして受け取られる力及びトルクの形態での観察204、ならびに関連付けられた報酬を収集する。ロボット非依存訓練環境202のインスタンスは、ロボットのモデルなしでシミュレーションすることができる。いくつかの実施形態では、シミュレーションは、力及びトルクの測定値に寄与するオブジェクトを含むことができる。例示的に、重ね継手を接続する組立作業のために、シミュレーションは、2本の指を含むグリッパ230、グリッパの上に取り付けられた力トルクセンサ232、ならびに一対の関節部材234及び236のモデルを含むことができる。グリッパ230によって保持されている関節部材234が関節部材236と接触しているとき、異なる方向の力及びトルクは、力トルクセンサ232を介して測定することができる。別の実施例として、ペグを穴に配置する組立作業の場合、シミュレーションには、グリッパ、力トルクセンサ、ならびに変更されたペグ及び穴のモデルを含めることができる。このような場合、グリッパに保持されているペグが穴の内側に接触すると、力トルクセンサはさまざまな方向の力及びトルクを感知できる。本明細書では主に参照の実施例としてグリッパに関して説明しているが、他の実施形態では、シミュレーション中及び訓練された機械学習モデルが展開されるときに、技術的に実現可能なロボットのエンドエフェクタに取り付けられた、またはその近くにあるセンサによって、力及びトルクの測定値を取得することができる。いくつかの実施形態におけるシミュレーション中に、各動的オブジェクトには、推定された慣性特性(例えば、質量及び重心)及び加えられた摩擦を割り当てることもでき、力トルクセンサを重力補償することができる。
【0024】
説明したように、それぞれが観察、動作、及び関連付けられた報酬を含む遷移222が収集され、複数の遷移を含むエピソードは、目標姿勢と関節部材の姿勢との間の距離が事前定義された閾値内にあるとき、または事前定義された遷移数に達したときに、に終了する。各エピソードの長さは、シミュレーションの前には知られていないので、モデルトレーナ116は、(動的アロケータ224として示される)動的割り当て技術を採用して、再生バッファ208に格納される
【化1】

遷移の固定長シーケンス210の群に遷移のエピソードを押し込む。いくつかの実施形態では、遷移222を処理する場合、図4に関連して以下により詳細に記載されるように、動的アロケータ224は、各エピソードの最後の2つのシーケンス間のオーバーラップを可変にすることができる。最後の2つのシーケンス間の可変のオーバーラップは、エピソードの境界を越えないようにしながら、最後の2つのシーケンスの遷移の情報を維持するのに役立つ。
【0025】
訓練中、複数のアクター250が自身の環境と相互作用し、収集された遷移222を再生バッファ208に送信することによって、探索は学習から切り離される。学習者212は、シーケンス及びシーケンス内の遷移に割り当てられた優先順位に基づいて、再生バッファ208から遷移のシーケンス(サンプリングされたシーケンス217として示されている)を非同期的にサンプリングする。より高い優先順位を有する遷移及びシーケンスは、より重要であると見なされ、学習者ネットワーク213、214、215、及び216のパラメータを更新するためにサンプリング及び使用される可能性が高い。優先順位を使用すると、学習プロセス中により多くの情報を提供し、より高い優先順位に関連付けられる予期しない遷移に優先順位を付けることにより、学習プロセスをスピードアップできる。経験によれば、遷移の優先順位に加えてシーケンスの優先順位を使用すると、訓練プロセスを安定させることができる。遷移及びシーケンスの優先順位に基づいてサンプリングされたシーケンスが与えられると、学習者212は、学習動作(例えば、ディープQ学習)を実行して、学習者ネットワーク213、214、215、及び216のパラメータを更新する。学習者212は、シーケンス及び個々の遷移の優先順位をさらに更新218する。更新された優先順位は、学習者212による将来のサンプリングで使用することができる。アクター250のニューラルネットワークのパラメータは、学習者ネットワーク213、214、215、及び216のパラメータに基づいて、定期的に更新される。
【0026】
訓練に続いて、学習者212のポリシーネットワーク213は、組立作業を実行するためのポリシーをモデル化する。次に、訓練されたポリシーネットワーク213は、再訓練することなく展開されて、同じ組立作業を実行するために様々なタイプのロボットを制御することができる。例えば、ポリシーネットワーク213は、図1に関連して前述したロボット制御アプリケーション146に含まれるエージェント150として展開できる。このような場合、ロボット制御アプリケーション150は、ロボット160のセンサ162によって取得された力及びトルクの測定値をエージェント150のポリシーネットワークに入力でき、その後、ロボット160を制御するために使用することができる動作を出力する。
【0027】
より正式には、ロボット組立作業の問題は、1組の状態
【化2】

1組の動作
【化3】

状態の遷移
【化4】

に対する1組の条件付き確率
【化5】

報酬関数
【化6】

1組の観察
【化7】

1組の条件付き観察確率
【化8】

及び割引係数
【化9】

によって説明される部分観測マルコフ決定過程(POMDP)としてモデル化することができる。動作の際には、エージェント(例えば、エージェント150またはアクター250のうちの1つ)は、観察及び動作の履歴に基づいて決定を下す
【化10】

訓練の目標は、組立作業がどの程度うまく実行されたかを示す、期待される割引報酬を最大化するために最適なポリシー
【化11】
を学習することである。
【化12】

式中、軌道
【化13】

はポリシーのパラメータ化であり
【化14】
【0028】
いくつかの実施形態では、物理エンジン(例えば、バレット物理エンジン)を備えたシミュレータが、ロボット組立作業をシミュレーションするため訓練で使用される。このような場合、訓練は完全にシミュレータを使用して実行できるが、訓練済み機械学習モデルは、物理ロボットまたはシミュレーション内のロボットのいずれかを制御するために展開できる。さまざまなタイプの組立作業のシミュレーションの実施例については、上記で説明されている。シミュレーション中、観察空間はセンサからの6次元の力及びトルクの測定値
【化15】

であり得る。動作空間は、組立作業の制御下にある組立部品の中心での連続及び6次元の望ましいデカルト空間線形速度
【化16】

及び角速度
【化17】

である。
【0029】
訓練中、モデルトレーナ116は、目標姿勢と現在の姿勢との間の距離に基づいて、組立作業がどれだけうまく実行されたかを示す線形報酬関数を最大化する。
【化18】

式中、
【化19】

は関節部材の現在の姿勢であり、
【化20】

は目標姿勢であり、
【化21】

は距離の閾値であり、
【化22】

は大きな正の報酬である。負の距離には時間のペナルティも含まれるため、負の距離は、目標の周りを徘徊する行為を阻止するための報酬関数として使用される。
【0030】
ロボット組立作業の問題の場合、観察の履歴全体を条件付けることは、一般的な問題として、非現実的である。いくつかの実施形態は、連続動作ドメインに焦点を合わせて、分散モデルフリー強化学習を使用して訓練されたリカレントニューラルネットワークである機械学習モデルを使用して、この課題に対処する。訓練されたポリシーネットワークを展開して、建築建設現場を含むさまざまな実世界の環境でロボットを制御でき、この環境では、搭載された低次元センサによって取得された力及びトルクの測定値に基づいてロボットが制御される。説明したように、いくつかの実施形態では、LSTM層は、ポリシーネットワーク213、バリューネットワーク214、ならびに学習者212の対応する目標ネットワーク215及び216の他、アクター250の同様のニューラルネットワークにおける第1の完全接続層と第2の完全接続層との間に追加される。LSTMレイヤーは、これらのニューラルネットワークに再帰性を追加し、これにより、意思決定に役立つ履歴動作及び観察も入力することで、力及びトルクの測定値のみが利用可能であるため、部分的な可観測性を補償するメモリベースの表現を学習できる。したがって、力及びトルクの測定値のみが使用される場合、LSTM層は姿勢観察の欠如を補償できる。さらに、LSTMには、過去の記憶を忘れるためのゲートを含めることができる。さらに、経験によれば、LSTMレイヤーはポリシーネットワークを新しい環境に適合させるのに役立ち得る。本明細書では主にLSTM層に関して論じているが、いくつかの実施形態では、LSTM層以外の1つまたは複数のメモリ層を使用してもよい。
【0031】
図3は、様々な実施形態による、ポリシーネットワーク213のより詳細な層を示す。いくつかの実施形態では、バリューネットワーク214、ターゲットネットワーク215及び216、ならびにアクター250のニューラルネットワークはまた、それらのネットワークの第1の完全接続層と第2の完全接続層との間にLSTM層を含む。示されるように、ポリシーネットワーク213は、第1の完全接続層304、LSTM層306、第2の完全接続層308、及び第3の完全接続層310を含む。LSTM層306自体は、複数の層を含むことができる。いくつかの実施形態では、周知のLSTM層を使用することができる。いくつかの実施形態では、第一の完全接続層304は、入力として、複数の観察302を取り、256の出力サイズを有し、ReLU(整流線形単位)活性化関数を使用する。そのような場合、LSTM層306は、256の入力サイズ、256の出力サイズを持ち、ReLU活性化関数を使用することができる。第2の完全接続層308は、256の入力サイズ及び1の出力サイズを有するQネットワーク層とすることができる。さらに、第3の完全接続層310は
【化23】

256の入力サイズ及び複数の動作312の出力を有するネットワーク層とすることができる。他の実施形態では、LSTM層などのメモリ層を、本明細書に開示される技術に従って訓練及び展開される他のタイプのニューラルネットワークに追加することができる。
【0032】
図2に戻ると、再生バッファ208は、固定長の遷移シーケンスを格納する。いくつかの実施形態では、各シーケンスは
【化24】

遷移を含み、各遷移は形態(観察、動作、報酬)を有する。
【化25】

隣接するシーケンスは遷移によってオーバーラップすることができ、シーケンスはエピソードの境界を横断しない。
【0033】
説明したように、組立作業に対応する各エピソードの長さは変化し得る。いくつかの実施形態では、各エピソードの最後の2つのシーケンス間のオーバーラップは、
【化26】

遷移間で可変である。いくつかの実施形態では、最後のオーバーラップは次のように計算することができる。
【化27】

式中、
【化28】

は最後のオーバーラップの遷移の数であり、
【化29】

は各エピソードの遷移の総数である。各エピソードの最後のオーバーラップを可変にすることで、各エピソードの終わりに、特に訓練のための重要な情報を含む可能性のある遷移が失われたり、損なわれたりすることを防ぐ。
【0034】
図4は、様々な実施形態による、エピソード内の遷移のシーケンスへの例示的な割り当てを示す。示されているように、例示的なエピソード400は851の遷移を含む。他のエピソードには、異なる数の遷移が含まれ得る。説明したように、エピソードは組立作業の開始で始まり、(1)目標姿勢と関節部材の姿勢の間の距離が事前定義された閾値内にあるときなど、組立作業が完了するとき、または(2)事前定義された遷移の数(例えば、4000遷移)に達したときに、終了する。訓練中、エピソードは、分散型ロボット非依存環境202の環境でシミュレートされ、複数の遷移が収集される。次に、動的アロケータ224は、収集された遷移を、それぞれが固定数の遷移を含むシーケンスに分割する。例示的に、各シーケンス402、404、410、及び412は、エピソード400の851の遷移からの40の遷移を含む。シーケンスに含まれる遷移の数は、学習者212のポリシーネットワーク213及びバリューニューラルネットワーク214が入力として取る遷移の数に基づくことができる。シーケンス当たり40個の遷移の実施例では、エピソード400の遷移は、第1のシーケンス402が遷移1~40を含み、第2のシーケンスが遷移41~80を含むようになど、分割することができる。そのような分割を続けると、最後のシーケンスには、必要な40個の遷移ではなく、840~851の11個の遷移が含まれる。後続のエピソードから遷移を取得し、それらの遷移を最後のシーケンスに追加してニューラルネットワークを混乱させるのではなく、いくつかの実施形態では、最後のシーケンスを最後から2番目のシーケンスとオーバーラップするように戻す。示されるように、最後から2番目のシーケンス410は、遷移801~840を含み、最後のシーケンス412は、遷移812~851を含む。任意の所定のエピソードの遷移の数は可変である可能性があるため、エピソードの最後の2つのシーケンス間のオーバーラップも可変である。いくつかの実施形態では、最後の2つのシーケンス間のオーバーラップは、図2に関連して上述された、式(3)に従って計算することができる。
【0035】
図2に戻ると、いくつかの実施形態では訓練中に、学習者212が、以下のように、それらの優先順位
【化30】

に基づいて、再生バッファ208内のシーケンスをサンプリングする。
【化31】

式中、
【化32】

は、一シーケンス内の絶対的なn工程時間差(TD)-エラーのリストであり、
【化33】

は、優先順位の範囲を圧縮し、エージェントの能力を制限することを避けて、有用な経験を選別するために、例えば、0.9に設定することができる。確率的更新の分布が制御されていない方法で変更され、それによって推定が収束するソリューションが変更されるため、再生に優先順位を付けるとバイアスが発生する可能性がある。いくつかの実施形態では、シーケンス内の各遷移のバイアスは、遷移レベルでのバイアスアニーリングを使用して修正され、以下の重要なサンプリング重みを使用して、より安定した性能を達成する。
【化34】

式中、
【化35】

は再生バッファのサイズであり、
【化36】

は0.4に設定される。さらに、各遷移の重みは、シーケンスが、
【化37】

による通時的誤差逆伝播法(BPTT)のために学習者212に送信される前に正規化することができる。いくつかの実施形態では、2つの合計ツリーデータ構造を初期化することができ、一方はシーケンスの優先順位を保持し、他方は遷移の優先順位を保持する。経験によれば、このような合計ツリーデータ構造は、ロボット組立作業の訓練プロセスを安定させるのに役立つ。
【0036】
いくつかの実施形態で訓練を実施するために、モデルトレーナ116は、LSTM層でゼロ開始状態を使用して、サンプリングされたシーケンスの開始時に学習者ネットワーク213、214、215、及び216を初期化し、人口ベースの訓練(PBT)を用いて訓練を実行する。いくつかの実施形態では、すべての訓練セッションは、複数(例えば、8個)の同時試行を含むことができ、そのそれぞれは、単一の学習者及び複数(例えば、8人)の作業者を含む。シーケンスの長さとn工程は、PBTの可変ハイパーパラメータとすることができる。同時試行のそれぞれは、現在の訓練を維持するか、より良い試行からネットワークパラメータをコピーするかどうかを、数回(例えば、5回)の反復ごとに評価する。コピーする場合、可変ハイパーパラメータは、例えば、元の分布から再サンプリングされる確率が25%になるように、1.2または0.8の係数で摂動されてもよい。
【0037】
図5は、様々な実施形態による、訓練された機械学習モデルを展開して、複数の例示的なロボットを制御する方法を示す。示されているように、機械学習モデル502(例えば、ポリシーネットワーク213)は、他の機械学習モデル(例えば、学習者ネットワーク214、215、及び216、ならびにアクター250のニューラルネットワーク)とともに、ロボット非依存訓練環境500(例えば、分散型ロボット非依存環境202)で訓練されて、入力として力及びトルクの測定値を取り、組立作業を実行するための動作を出力する。訓練されると、機械学習モデル502は、組立作業を達成するためのポリシーをモデル化し、同じ組立作業を実行するための力及びトルクのセンサを含むロボットアーム504、506、及び508として示される様々なタイプのロボットを制御するために展開できる(例えば、ロボット制御アプリケーション146内に)。ロボットは、物理ロボットまたはシミュレーションのロボットであり得る。物理ロボットは、建築建設現場または製造現場など、任意の適切な環境で操作され得る。さらに、ロボットアーム504、506、及び508のいずれについても特別に訓練されていなくても、機械学習モデル502は、これらのロボットアーム504、506、及び508を制御するために適用することができる。
【0038】
いくつかの実施形態では、ロボットのいない環境202で訓練されたポリシーを物理ロボットに関連付けられた展開環境に転送するために、ロボット制御アプリケーション146は、力トルクねじれマトリックスを使用して力及びトルク測定値に座標変換を適用する。ロボットのいない環境202
【化38】

内の座標からの力及びトルクを
【化39】

にし、及びロボットアームのエンドエフェクタ
【化40】

の座標からの力及びトルクを
【化41】
にすると、変換は次の通りである。
【化42】

式中、
【化43】

は、それぞれフレーム
【化44】

からフレーム
【化45】

への回転マトリクス及び並進ベクトルである。
【0039】
いくつかの実施形態では、動作空間は、制御下にある組立部品の中心におけるデカルト空間速度として定義され、これは、ロボットアームのセットアップ全体で同一であり得る。したがって、動作に変換は必要ない。追加で、組立作業の動作が十分に小さい操作領域に限定されている場合、逆運動学が満たされることが保証される。このような場合、ロボット制御アプリケーション146は、逆運動学を使用して、機械学習モデル502によって出力される動作を達成するために要求されるロボットの関節運動を解決することができる。
【0040】
図6は、様々な実施形態による、ロボット組立を制御するために機械学習モデルを訓練するための方法のステップの流れ図である。方法のステップは、図1~3のシステムに関連して説明されているが、当業者は、方法のステップを任意の順序で実行するように構成された任意のシステムが本開示の範囲内にあることを理解するであろう。
【0041】
示されるように、方法600は、モデルトレーナ118が、分散型訓練環境(例えば、分散型ロボット非依存環境202)を開始するステップ602で開始する。いくつかの実施形態では、モデルトレーナ118は、複数の訓練環境(例えば、16の訓練環境)、複数のアクター(例えば、アクター250)のそれぞれに1つを初期化することができる。本明細書では主に分散型訓練環境に関して説明するが、他の実施形態では、機械学習モデルは、分散型ではない訓練環境で訓練することができる。
【0042】
ステップ604で、アクター(例えば、アクター250)は、それぞれの訓練環境で経験を収集し、その経験を再生バッファ(例えば、再生バッファ208)に格納する。説明したように、いくつかの実施形態では、エピソードでの経験は、観察、動作、及び関連付けられた報酬をそれぞれが含む複数の遷移を含むことができ、遷移は、シーケンス内に一緒にグループ化することができる。このような場合、エピソード内の最後の2つのシーケンス間のオーバーラップは、図2に関連して前述したように、
【化46】

遷移間で可変である可能性がある。
【0043】
ステップ606で、十分な経験が収集されて再生バッファに格納されていない場合、方法600はステップ604に戻り、そこでアクターは追加の経験を収集し、それらの経験を再生バッファに格納する。一方、十分な経験が収集され、再生バッファに格納されている場合、方法600は、ステップ608に進み、学習者(例えば、学習者212)は、再生バッファから経験をサンプリングし、学習者のニューラルネットワーク(例えば、ポリシーネットワーク213、バリューネットワーク214、ならびにターゲットネットワーク215及び216)をサンプリングされた経験に基づいて訓練する。いくつかの実施形態では、訓練は、図2に関連して上で説明したように、時間の経過とともに、組立作業がどれだけうまく実行されたかを示す報酬を最大化する。
【0044】
ステップ610で、学習者は、学習者ニューラルネットワークに類似するアクターの
ニューラルネットワークのパラメータ、ならびに再生バッファの遷移及びシーケンスの優先順位を更新する。説明したように、アクターは訓練環境で経験を収集している。いくつかの実施形態では、遷移及びシーケンスの優先順位は、図2に関連して上述した技法に従って計算される。
【0045】
ステップ612で、訓練の終了条件が満たされない場合(例えば、報酬が最大化されておらず、最大反復数が発生していない場合)、方法600はステップ604に戻り、そこでアクターはそれぞれの訓練環境で追加の経験を収集し、経験を再生バッファに格納する。ステップ604~612は、例示の目的で順次示されているが、いくつかの実施形態では、アクターは、経験を収集し、それを再生バッファに格納すると同時に、並行して、学習者は、再生バッファから経験をサンプリングし、学習ニューラルネットワークを訓練し、アクターのニューラルネットワークのパラメータならびに再生バッファの遷移及びシーケンスの優先順位を更新する。
【0046】
図7は、様々な実施形態による、組立作業を実行するときにロボットを制御するための方法のステップの流れ図である。方法のステップは、図1~3のシステムに関連して説明されているが、当業者は、方法のステップを任意の順序で実行するように構成された任意のシステムが本開示の範囲内にあることを理解するであろう。
【0047】
示されるように、方法700は、ステップ702で始まり、ここで、ロボット制御アプリケーション146は、ロボットに関連付けられた力及びトルクの測定データを受信する。説明したように、いくつかの実施形態では、センサは、ロボットのグリッパの上方、またはロボットのエンドエフェクタ上の他の場所(グリッパーであってもなくてもよい)に取り付けられて、6次元の力及びトルク測定値を取得することができる
【化47】

いくつかの実施形態では、座標変換は、図5に関連して上で説明した力トルクねじれマトリックスを使用して、力及びトルク測定値にも適用される。
【0048】
ステップ704で、ロボット制御アプリケーション146は、(座標変換が適用された後の)力及びトルク測定値を、実行する動作を生成する機械学習モデルに入力する。いくつかの実施形態では、図6に関連して上述された方法600に従って、エージェント(例えば、エージェント150)は、訓練されたポリシーネットワーク(例えば、ポリシーネットワーク213)を含んで、入力として力及びトルク測定値を与えられた組立作業を達成するための動作を生成する。
【0049】
ステップ706で、ロボット制御アプリケーション146は、ステップ704で生成された動作に基づいて逆動力学を使用して、ロボットの関節運動を決定する。説明したように、エージェントによって生成された動作は、組立作業の制御下にある組立部品の中央部における線形及び角速度などの、作業空間(例えば、デカルト空間)における線形速度及び角速度を含むことができる。このような場合、逆動力学を使用して、速度を達成するために要求されるロボットの関節運動を解決できる。
【0050】
ステップ708で、ロボット制御アプリケーション146は、決定された関節運動に従ってロボットの関節を動かす。例えば、ロボット制御アプリケーション146は、コマンド信号をロボットの関節または関節のコントローラに直接送信することができる。
【0051】
ステップ710で、終了条件が満たされない場合、方法700は、ステップ702に戻り、ここで、ロボット制御アプリケーション146は、ロボットから追加の力及びトルク測定データを受信する。いくつかの実施形態では、終了条件は、関節部材の姿勢と目標姿勢との間の距離が閾値未満であること、または遷移の数が最大遷移数に等しいことを含み得る。終了条件が満たされた場合、方法700は終了する。
【0052】
要約すると、ロボット組立作業を制御するための機械学習モデルを訓練及び適用するための技術が開示される。いくつかの実施形態では、力及びトルクの測定値は、姿勢の観察ではなく、使用されている力及びトルクの測定値による部分的な可観測性を補償するために再帰性を導入するメモリ層を含む機械学習モデルに入力される。機械学習モデルは、ロボット非依存環境での強化学習を介して、力及びトルクの測定値 を入力として与えられた組立作業を達成するための動作を生成するためのポリシーを学習するように訓練される。訓練中、経験はエピソード内の遷移として収集される。遷移はシーケンスにグループ化され、各エピソードの最後の2つのシーケンスには可変のオーバーラップがある。収集された遷移は、優先順位付けされたシーケンス再生バッファに格納され、学習者はそこから遷移の優先順位及びシーケンスの優先順位に基づいて学習するシーケンスをサンプリングする。学習者は、サンプリングされたシーケンスに基づいて学習者の機械学習モデルのパラメータを更新することで学習し、学習者は遷移の優先順位及びシーケンスの優先順位をさらに更新する。訓練されると、機械学習モデルを再訓練なしで展開して、さまざまなタイプのロボットを制御し、それらのロボットに取り付けられたセンサによって取得された力及びトルクの測定値に基づいて組立作業を実行できる。
【0053】
従来技術に対する開示された技術の1つの技術的利点は、開示された技術を用いて、モーションキャプチャまたは他の追跡システムを介してキャプチャされる必要がある、または視覚ベースのシステムを介して間接的に推測される必要がある環境内のロボットの姿勢及び/または他のオブジェクトを入力として必要とせずに、非構造化環境で組立作業を実行するようにロボットを制御するために機械学習モデルを訓練できることである。さらに、開示された技術では、訓練中に学習されたポリシーはロボットに非依存であり、これらのポリシーを使用してさまざまなタイプのロボットを制御できる。これらの技術的利点は、先行技術の手法に勝る1つまたは複数の技術的進歩を表す。
【0054】
条項1.
いくつかの実施形態では、ロボットを制御するためのコンピュータ実装方法は、ロボットに関連付けられたセンサデータを受信し、センサデータは、センサデータに機械学習モデルを適用して動作を生成する、力データまたはトルクデータのうちの少なくとも一方を含み、機械学習モデルは、強化学習を介して訓練され、動作に基づいてロボットに1つまたは複数の運動を実行させる。
【0055】
条項2.
機械学習モデルが少なくとも1つのメモリ層を含む、条項1に記載のコンピュータ実装方法。
【0056】
条項3.
機械学習モデルが、完全接続層、Qネットワーク、またはpiネットワークのうちの少なくとも1つをさらに含む、条項1または2に記載のコンピュータ実装方法。
【0057】
条項4.
強化学習中に、機械学習モデルがロボットのモデルを含まない環境で訓練される、条項1~3のいずれかに記載のコンピュータ実装方法。
【0058】
条項5.
強化学習中に、学習者が機械学習モデルのパラメータを更新し、学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、条項1~4のいずれかに記載のコンピュータ実装方法。
【0059】
条項6.
強化学習中に、学習者が少なくとも1つの他の機械学習モデルのパラメータをさらに更新し、少なくとも1つの他の機械学習モデルが少なくとも1つのシミュレーション環境に適用される、条項1~5のいずれかに記載のコンピュータ実装方法。
【0060】
条項7.
強化学習中に、遷移のエピソードの遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量がエピソードの長さに基づき、遷移のエピソードに含まれる各遷移が、観察、動作、及び報酬を含む、条項1~6のいずれかに記載のコンピュータ実装方法。
【0061】
条項8.
動作が目標速度を含み、動作に基づいてロボットに1つまたは複数の運動を実行させることは、目標速度に基づいて逆動力学を使用し、ロボットの1つまたは複数の関節の1つまたは複数の運動を計算すること、及び1つまたは複数の関節の1つまたは複数の運動に基づいて少なくとも1つのコマンド信号をロボットに送信することを含む、条項1~7のいずれかのコンピュータ実装方法。
【0062】
条項9.
センサデータは、ロボットのエンドエフェクタに取り付けられたセンサによって取得される、条項1~8のいずれかに記載のコンピュータ実装方法。
【0063】
条項10.
関節部材の姿勢と目標姿勢との間の距離が閾値距離未満であるかどうかを判定することをさらに含む、条項1~9のいずれかに記載のコンピュータ実装方法。
【0064】
条項11.
いくつかの実施形態では、1つまたは複数の非一時的なコンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行されるとき、少なくとも1つのプロセッサに、ロボットを制御するため、ロボットに関連付けられたセンサデータを受信することを含むステップを実行させる命令を含み、センサデータは、機械学習モデルをセンサデータに適用して動作を生成する、力またはトルクデータのうちの少なくとも一方を含み、機械学習モデルは、強化学習を介して訓練され、ロボットに動作に基づいて1つまたは複数の運動を実行させる。
【0065】
条項12.
少なくとも1つのプロセッサによって実行されるとき、命令はさらに、少なくとも1つのプロセッサに、関節部材の姿勢と目標姿勢との間の距離が閾値距離未満であるかどうかを判定するステップを実行させる、条項11に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0066】
条項13.
動作が目標速度を含み、動作に基づいてロボットに1つまたは複数の運動を実行させることは、目標速度に基づいて逆動力学を使用するロボットの1つまたは複数の関節の1つまたは複数の運動を計算すること、及び1つまたは複数の関節の1つまたは複数の運動に基づいて少なくとも1つのコマンド信号をロボットに送信することを含む、条項11または12に記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0067】
条項14.
センサデータが、ロボットのエンドエフェクタに取り付けられたセンサによって取得される、条項11~13のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0068】
条項15.
機械学習モデルが長短期記憶を含む、条項11~14のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0069】
条項16.
機械学習モデルが、完全接続層、Qネットワーク、またはpiネットワークのうちの少なくとも1つをさらに含む、条項11~15のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0070】
条項17.
強化学習中に、機械学習モデルが、ロボットのモデルを含まない分散型環境内の少なくとも1つの他の機械学習モデルと共に訓練される、条項11~16のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0071】
条項18.
強化学習中に、学習者が機械学習モデルのパラメータを更新し、学習者が、それぞれが観察、動作、ならびに報酬及びそれぞれが複数の遷移を含むシーケンスをサンプリングするために使用される1つまたは複数の優先順位を含む格納された遷移をサンプリングするために使用される1つまたは複数の優先順位をさらに更新する、条項11~17のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0072】
条項19.
強化学習中に、遷移のエピソードの遷移を含む最後の2つの時間シーケンスがオーバーラップし、オーバーラップの量がエピソードの長さに基づき、遷移のエピソードに含まれる各遷移が、観察、動作、及び報酬を含む、条項11~18のいずれかに記載の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【0073】
条項20.
いくつかの実施形態では、システムは、命令を記憶する1つまたは複数のメモリ、及び1つまたは複数のメモリに結合された1つまたは複数のプロセッサを備え、命令を実行するとき、ロボットに関連付けられたセンサデータを受信するように構成され、センサデータは、力またはトルクデータのうちの少なくとも一方を含み、機械学習モデルをセンサデータに適用して動作を生成し、機械学習モデルは、強化学習を介して訓練され、ロボットに動作に基づいて1つまたは複数の運動を実行させる。
【0074】
様々な実施形態の説明を例示の目的で行ったが、この説明は、包括的であることも、開示の実施形態に限定することも意図していない。多くの修正及び変形例は、説明される実施形態の範囲及び精神から逸脱することなく当業者には明白である。
【0075】
本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具体化されてよい。従って、本開示の態様は、全体的にハードウェアの実施形態、全体的にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態をとってよく、これらは全て一般的に、本明細書では、「モジュール」または「システム」と称されてよい。さらに、本開示の態様は、コンピュータ可読プログラムコードが具体化された1つまたは複数のコンピュータ可読媒体(複数可)に具体化されたコンピュータプログラム製品の形をとってよい。
【0076】
1つ以上のコンピュータ可読媒体(複数可)の任意の組み合わせを利用し得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁気、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、または、これらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な実施例(包括的でないリスト)は、1つまたは複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、またはこれらの任意の適切な組み合わせを含み得る。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによる使用のために、またはそれらと接続してプログラムを含むまたは記憶することができる任意の有形媒体であり得る。
【0077】
本開示の態様は、本方法の実施形態に従った方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/またはブロック図を参照して上記に説明されている。フローチャート図及び/またはブロック図の各ブロック、及びフローチャート図及び/またはブロック図のブロックの組み合わせは、コンピュータプログラム命令によって実施できることが理解される。これらのコンピュータプログラム命令は、機械を製造するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてよい。命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるとき、フローチャート及び/またはブロック図のブロック(複数可)で指定された機能/行為の実施態様を可能にする。このようなプロセッサは、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ、またはフィールドプログラマブルゲートアレイであってよいが、これらに限らない。
【0078】
図のフローチャート及びブロック図は、本開示の様々な実施形態に従ったシステム、方法、及びコンピュータプログラム製品の可能である実施態様のアーキテクチャ、機能、及び動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、規定された論理関数(複数可)を実装するための1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表し得る。また、いくつかの代替実施態様では、ブロックで留意される機能は、図で留意される順序とは違う順序で起こり得ることを留意されたい。例えば、連続して示される2つのブロックは、実際に、実質的に同時に実行され得る、または、ブロックは、時々、含有される機能に応じて、逆の順序で実行され得る。また、ブロック図及び/またはフローチャート図の各ブロック、及びブロック図及び/またはフローチャート図のブロックの組み合わせは、規定の機能もしくは行為、または特殊目的ハードウェア及びコンピュータ命令の組み合わせを行う特殊目的ハードウェアベースシステムによって実施され得ることを留意されたい。
【0079】
上記は本開示の実施形態を対象とするが、本開示の他の及びさらなる実施形態は、その基本的な範囲から逸脱することなく考案されてもよく、その範囲は、以下の特許請求の範囲によって決定される。
図1
図2
図3
図4
図5
図6
図7