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

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

▶ ファナック株式会社の特許一覧

特開2022-187983高次元のロボット作業を学習するためのネットワークモジュール化
<>
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図1
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図2
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図3
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図4
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図5
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図6
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図7
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図8
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図9
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図10
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図11
  • 特開-高次元のロボット作業を学習するためのネットワークモジュール化 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187983
(43)【公開日】2022-12-20
(54)【発明の名称】高次元のロボット作業を学習するためのネットワークモジュール化
(51)【国際特許分類】
   B25J 13/00 20060101AFI20221213BHJP
   B25J 9/22 20060101ALI20221213BHJP
【FI】
B25J13/00 Z
B25J9/22 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022073097
(22)【出願日】2022-04-27
(31)【優先権主張番号】17/342,122
(32)【優先日】2021-06-08
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】ファン ヨンシアン
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS10
3C707KS04
3C707KS17
3C707KS20
3C707KT02
3C707KT03
3C707LS20
3C707LW12
3C707LW15
3C707MT08
3C707NS02
(57)【要約】
【課題】高次元のニューラルネットワークを低入力次元のニューラルネットワークにモジュール化する方法の提供。
【解決手段】方法は、取り出すべき部品の画像に基づく、完全自由度のロボット把持動作の生成に適している。一例では、第1及び第2のネットワークはそれぞれ、把持位置次元及び回転次元を符号化する。第1のネットワークは、把持回転の任意の値に対して把持品質が最大になる位置を予測するように訓練される。第2のネットワークは、第1のネットワークからの位置でのみ探索しながら、最大の把持品質を特定するように訓練される。故に2つのネットワークが集合的に最適な把持を特定する一方で、各ネットワークの探索空間は削減される。多くの把持の位置及び回転は、積ではなく、評価された位置及び回転の和の探索量で評価可能である。一部の用途では、3つのニューラルネットワークを含め、任意の適切な方法で次元を分離できる。
【選択図】図1
【特許請求の範囲】
【請求項1】
低入力次元のニューラルネットワークを使用して高次元のパターン認識問題を解く方法であって、
多次元問題を、2つ以上の相互に排他的な、グループ化された次元の組に分割するステップと、
プロセッサ及びメモリを備えたコンピュータ上で実行される、直列に連結された2つ以上のニューラルネットワークを提供するステップであって、前記ニューラルネットワークの1つは、前記グループ化された次元の組の各々に提供され、前記ニューラルネットワークの各々は、対応するグループ化された次元の組と、上流にある直列の他のニューラルネットワークのグループ化された次元の組とをエンコードする、ステップと、
教師あり学習を使用して2つ以上のニューラルネットワークを個別に訓練するステップであって、直列の少なくとも第1のニューラルネットワークは、出力変数の最適値を有する対応するグループ化された次元の組の目標値を見出すために、最大マージン法を使用して訓練される、ステップと、
2つ以上のニューラルネットワークを推定モードで実行するステップであって、問題の環境を定義する初期入力が提供され、各ニューラルネットワークは、対応するグループ化された次元の組のみを探索して前記目標値を見出し、各ニューラルネットワークからの前記目標値は、下流にある直列の他のニューラルネットワークによって入力として使用される、ステップと、
2つ以上のニューラルネットワークの出力を組み合わせて、グループ化された次元の2つ以上の組における全ての次元の目標値を含む最終出力を提供するステップと、
を含む、方法。
【請求項2】
前記直列に連結された2つ以上のニューラルネットワークは、画像データ入力を受信して画像データ出力を提供する完全畳み込みネットワークである直列の第1のニューラルネットワークと、画像データ入力を受信してスカラーデータ出力を提供する畳み込みニューラルネットワークである直列の最後のニューラルネットワークとを含む、請求項1に記載の方法。
【請求項3】
前記2つ以上のニューラルネットワークの訓練は、各ネットワークに複数のトレーニングサンプルを提供することを含み、各トレーニングサンプルは、前記画像データ入力と、特定のネットワークの前記画像データ出力又は前記スカラーデータ出力のいずれかとを含み、前記画像データ出力又は前記スカラーデータ出力は所望の結果である、請求項2に記載の方法。
【請求項4】
前記多次元問題はロボット把持探索問題であり、前記グループ化された次元の組はロボット把持の自由度を含む、請求項3に記載の方法。
【請求項5】
前記トレーニングサンプルはデータ生成システムによって提供され、該データ生成システムは、グリッパによる複数の対象物の安定した把持を計算し、前記対象物のランダムなパイルを含む物理環境をシミュレートし、前記対象物のランダムなパイルに適用された前記安定した把持を評価し、前記対象物のランダムなパイルとそれらに対応する、成功したシミュレートされた把持との深度画像を出力する、請求項4に記載の方法。
【請求項6】
前記最大マージン法は、前記第1のニューラルネットワークの、対応するグループ化された次元の組の目標値を特定することを含み、該次元の組は、グループ化された次元の他の組の目標値の任意の1つの組み合わせに対する出力変数の最適値を有する、請求項1に記載の方法。
【請求項7】
前記2つ以上のニューラルネットワークを推定モードで実行するステップは、前記直列の第1のニューラルネットワークが、対応するグループ化された次元の組の最大マージン目標値を特定することを含み、データ準備手法は、前記直列の第1のニューラルネットワークへの初期入力の深度画像層を提供することと、回転されトリミングされた深度画像パッチを前記直列の最後のニューラルネットワークに提供することとを含む、請求項1に記載の方法。
【請求項8】
低入力次元のニューラルネットワークを使用して高次元のパターン認識問題を解く方法であって、
多次元問題を、2つ以上の相互に排他的な、グループ化された次元の組に分割するステップと、
プロセッサ及びメモリを備えたコンピュータ上で実行される、直列に連結された2つのニューラルネットワークを提供するステップであって、前記直列の第1のニューラルネットワークは、対応するグループ化された次元の組のみをエンコードし、前記直列の第2のニューラルネットワークは、グループ化された次元の双方の組をエンコードする、ステップと、
教師あり学習を使用して前記ニューラルネットワークを個別に訓練するステップであって、前記第1のニューラルネットワークは、グループ化された次元の他の組の目標値の任意の1つの組み合わせに対する出力変数の目標値を見出すために、最大マージン法を使用して訓練される、ステップと、
前記ニューラルネットワークを推定モードで実行するステップであって、問題の環境を定義する初期入力が提供され、各ニューラルネットワークは、対応するグループ化された次元の組のみを探索して前記目標値を見出し、前記第1のニューラルネットワークからの前記目標値は、前記第2のニューラルネットワークによって入力として使用される、ステップと、
前記ニューラルネットワークの出力を組み合わせて、グループ化された次元の双方の組における全ての次元の目標値を含む最終出力を提供するステップと、
を含む、方法。
【請求項9】
前記直列の第1のニューラルネットワークは、画像データ入力を受信して画像データ出力を提供する完全畳み込みネットワークであり、前記直列の第2のニューラルネットワークは、画像データ入力を受信してスカラーデータ出力を提供する畳み込みニューラルネットワークである、請求項8に記載の方法。
【請求項10】
前記ニューラルネットワークの訓練は、複数のトレーニングサンプルを提供することを含み、前記第1のニューラルネットワークのトレーニングサンプルは、前記画像データ入力としての初期入力と、前記画像データ出力としての第1の出力とを含み、前記第2のニューラルネットワークのトレーニングサンプルは、前記画像データ入力としての初期入力と、前記スカラーデータ出力としての最終出力とを含む、請求項9に記載の方法。
【請求項11】
前記多次元問題はロボット把持探索問題であり、前記グループ化された次元の組はロボット把持の自由度を含む、請求項10に記載の方法。
【請求項12】
前記トレーニングサンプルはデータ生成システムによって提供され、該データ生成システムは、グリッパによる複数の対象物の安定した把持を計算し、前記対象物のランダムなパイルを含む物理環境をシミュレートし、前記対象物のランダムなパイルに適用された前記安定した把持を評価し、前記対象物のランダムなパイルとそれらに対応する、成功したシミュレートされた把持との深度画像を出力する、請求項11に記載の方法。
【請求項13】
前記ニューラルネットワークを推定モードで実行するステップは、前記直列の第1のニューラルネットワークが、対応するグループ化された次元の組の最大マージン目標値を特定することを含み、データ準備手法は、前記直列の第1のニューラルネットワークへの初期入力の深度画像層を提供することと、回転されトリミングされた深度画像パッチを前記直列の第2のニューラルネットワークに提供することとを含む、請求項8に記載の方法。
【請求項14】
低入力次元のニューラルネットワークを使用して高次元のパターン認識問題を解く方法であって、
多次元問題を、第1、第2及び第3の相互に排他的な、グループ化された次元の組に分割するステップと、
プロセッサ及びメモリを備えたコンピュータ上で実行される、直列に連結された3つのニューラルネットワークを提供するステップであって、前記直列の第1のニューラルネットワークは、グループ化された次元の第1の組のみをエンコードし、前記直列の第2のニューラルネットワークは、グループ化された次元の前記第1の組及び第2の組をエンコードし、前記直列の第3のニューラルネットワークは、グループ化された次元の3つの組全てをエンコードする、ステップと、
教師あり学習を使用して前記ニューラルネットワークを個別に訓練するステップであって、前記第1のニューラルネットワークは、グループ化された次元の他の組の目標値の任意の1つの組み合わせに対する出力変数の最適値を有する、グループ化された次元の前記第1の組の目標値を見出すために、最大マージン法を使用して訓練され、前記第2のニューラルネットワークは、グループ化された次元の前記第3の組の目標値の任意の1つの組み合わせに対する出力変数の最適値を有する、グループ化された次元の前記第2の組の目標値を見出すために、最大マージン法を使用して訓練される、ステップと、
前記ニューラルネットワークを推定モードで実行するステップであって、問題の環境を定義する初期入力が提供され、各ニューラルネットワークは、対応するグループ化された次元の組のみを探索して前記目標値を見出し、前記第1のニューラルネットワークからの前記目標値は、前記第2のニューラルネットワークによって入力として使用され、前記第1及び第2のニューラルネットワークからの前記目標値は、前記第3のニューラルネットワークによって入力として使用される、ステップと、
前記ニューラルネットワークの出力を組み合わせて、グループ化された次元の3つの組全てにおける全ての次元の目標値を含む最終出力を提供するステップと、
を含む、方法。
【請求項15】
前記直列の第1及び第2のニューラルネットワークは、画像データ入力を受信して画像データ出力を提供する完全畳み込みネットワークであり、前記直列の第3のニューラルネットワークは、画像データ入力を受信してスカラーデータ出力を提供する畳み込みニューラルネットワークである、請求項14に記載の方法。
【請求項16】
前記ニューラルネットワークの訓練は、複数のトレーニングサンプルを提供することを含み、前記第1のニューラルネットワークのトレーニングサンプルは、前記画像データ入力としての初期入力と、前記画像データ出力としての第1の出力とを含み、前記第2のニューラルネットワークのトレーニングサンプルは、前記画像データ入力としての初期入力及び前記第1の出力と、前記画像データ出力としての第2の出力とを含み、前記第3のニューラルネットワークのトレーニングサンプルは、前記画像データ入力としての初期入力、前記第1の出力及び前記第2の出力と、前記スカラーデータ出力としての最終出力とを含む、請求項15に記載の方法。
【請求項17】
前記多次元問題はロボット把持探索問題であり、前記グループ化された次元の組はロボット把持の自由度を含む、請求項16に記載の方法。
【請求項18】
前記トレーニングサンプルはデータ生成システムによって提供され、該データ生成システムは、グリッパによる複数の対象物の安定した把持を計算し、前記対象物のランダムなパイルを含む物理環境をシミュレートし、前記対象物のランダムなパイルに適用された前記安定した把持を評価し、前記対象物のランダムなパイルとそれらに対応する、成功したシミュレートされた把持との深度画像を出力する、請求項17に記載の方法。
【請求項19】
前記ニューラルネットワークを推定モードで実行するステップは、前記直列の第1のニューラルネットワークが、グループ化された次元の前記第1の組の最大マージン目標値を特定することと、前記直列の第2のニューラルネットワークが、グループ化された次元の前記第1の組の目標値を用いて、グループ化された次元の前記第2の組の最大マージン目標値を特定することと、を含む、請求項14に記載の方法。
【請求項20】
前記ニューラルネットワークを推定モードで実行するステップは、前記初期入力及びグループ化された次元の前記第1の組の目標値を、前記第2のニューラルネットワークに入力として提供することと、前記初期入力並びにグループ化された次元の前記第1及び第2の組の目標値を、前記第3のニューラルネットワークに入力として提供することと、を含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、広くは、高次元ニューラルネットワークを、より低い入力次元の2つ以上のニューラルネットワークに分離する方法に関し、特には、高い自由度(DOF)の動作を複数のグループに分解する高次元タスクのためのロボット動作を生成するネットワークモジュール化方法に関し、グループ分けされた各動作は、特別に設計されたデータを使用するニューラルネットワークによって個別に探索される。
【背景技術】
【0002】
産業用ロボットを使用して、製造、組み立て、及び材料移動の操作を幅広く実行することはよく知られている。そのようなアプリケーションの1つは、ロボットがビンから個々の部品を取り出し、各部品をコンベヤ又は輸送コンテナに配置する等のピックアンドプレース操作である。このアプリケーションの例では、成形又は機械加工された部品がビン内に落とされてランダムな位置及び向きに配置され、ロボットが、各部品をピックアップして予め定義された向き(ポーズ)でコンベヤ上に配置し、該コンベヤは梱包又はさらなる処理のために部品を搬送する。ビン内の部品の種類や他の要因によって、フィンガータイプのグラスパ又はサクションタイプのグリッパをロボットツールとして使用することができる。ビジョンシステム(1つ以上のカメラ)は、典型的には、ビン内の個々の部品の位置及び向きを識別するために使用される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
訓練されたニューラルネットワークシステムを使用して、ビン内の部品の把持命令を計算することは当技術分野で周知である。しかし、既存のニューラルネットワーク把持学習システムは、それらの実際の使用を制限する欠点を抱えている。既知のシステムの1つは、トップダウンの把持候補を画像パッチ内にエンコードし、ネットワークを訓練して、複数の把持候補の品質を予測する。このシステムは、把持候補の計算に長時間を要し、平行顎グリッパのトップダウン(垂直)把持しか生成できない。さらに、このシステムは、ビン内の部品のランダムな寄せ集めではなく、個々の分離された部品/対象物でのみ訓練されるため、雑然とした環境での部品間の干渉の影響を予測することはできない。
【0004】
別の周知のシステムは、元の深度画像を取得して各ピクセルの質を出力するようにネットワークを訓練することにより、時間のかかる把持候補計算の要件を除去する。しかしこのシステムは、各画像に含まれるピクセル数が多いため、各ピクセルを正確に予測することはできない。故にこのシステムは、上述のシステムほど正確ではない。さらに、このシステムは、グリッパの角度/幅のエンコードが曖昧であるため、ビン内の部品に典型的な、密集し雑然とした環境を扱うことができない。さらにこのシステムは、ストレートなトップダウンの把持ソリューションしか生成できない。最後に、このシステムは、深さを予測することなく、ロボットのグリッパをビン内の隣接する部品間に押し込み、グリッパ又は部品に損傷を与える可能性がある。
【0005】
さらに別の既存のシステムは、単一のネットワークで6自由度の把持を決定することを企図している。しかしこのシステムは、把持評価ネットワークでの乱雑な把持環境(部品のパイル等)を扱うことができず、ニューラルネットワークでの把持評価の後に、把持改良ステップを必要とする。
【0006】
上記の状況に照らして、高次元の学習ニューラルネットワークを2つ以上の低次元のネットワークに分解する方法が望まれ、この方法は十分な自由度の把持計画やその他の用途に適用可能である。
【課題を解決するための手段】
【0007】
本開示の教示に従って、高次元のニューラルネットワークを、2つ以上の低入力次元のニューラルネットワークに分離又はモジュール化する方法が、説明され図示される。開示されるネットワークモジュール化方法は、ビン内の取り出すべき部品の画像に基づく完全自由度(full-DOF)のロボット把持動作の生成に特に適している。一例では、第1のネットワークが把持位置次元をエンコードし、第2のネットワークが把持回転次元をエンコードする。第1のネットワークは、把持回転の任意の値に対して把持品質が最大となる位置を予測するために訓練される。第2のネットワークは、第1のネットワークから予め特定された位置のみでの探索をしつつ、最大把持品質を特定するために訓練される。このようにして、2つのネットワークは最適把持を共同して特定する一方で、各ネットワークの次元探索空間は著しく減少する。特に、多数の把持位置及び把持回転は、評価された位置及び回転の積ではなく、それらの和に等しい探索の総数で評価できる。ネットワーク間の次元の分離は、特定の用途に最適になるように設計可能であり、いくつかの用途では、2つではなく3つのニューラルネットワークを含む。
【0008】
開示された装置及び方法の追加の特徴は、添付の図面と併せて、以下の説明及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
図1】本開示の実施形態に係る、分離されたニューラルネットワークを用いて完全自由度の把持を計算するロボットの部品取り出しシステムのブロック図である。
【0010】
図2】単一の大規模ニューラルネットワークを使用して高自由度のロボット作業を計算する従来技術と、分断されたニューラルネットワークに自由度が分離される本開示の技術とを対比する図である。
【0011】
図3】本開示の実施形態に係る、最大マージンネットワークモジュール化アプローチを使用して探索次元を分離し、さらに初期の探索空間から最大条件を見出す方法を示す多次元探索空間の図である。
【0012】
図4】本開示の実施形態に係る、ニューラルネットワークのモジュール化技術のトレーニングフェーズのステップを示すブロック図である。
【0013】
図5】本開示の実施形態に係る、3D深度画像データがどのように深度層のセットに処理され、図4のトレーニングフェーズで提供されるかを示すグラフである。
【0014】
図6】本開示の実施形態に係る、図5の特定の深度層の深度画像層であって、図4のトレーニングフェーズで提供される深度画像層の図である。
【0015】
図7】本開示の実施形態に係る、ニューラルネットワークモジュール化技術の推定フェーズにおけるステップのブロック図である。
【0016】
図8】本開示の実施形態に係る、3自由度の把持探索問題に適用されるニューラルネットワークモジュール化技術のブロック図である。
【0017】
図9】本開示の実施形態に係る、2つのニューラルネットワークを使用した、5自由度の把持探索問題に適用されるニューラルネットワークモジュール化技術のブロック図である。
【0018】
図10】本開示の実施形態に係る、個々の対象物の把持最適化とクラスター化された対象物の変動及び干渉シミュレーションとの組み合わせを使用して、図9に示すタイプのモジュール化された把持学習ネットワークを訓練するための方法の図である。
【0019】
図11】本開示の実施形態に係る、3つのニューラルネットワークを使用した、7自由度の把持探索問題に適用されるニューラルネットワークモジュール化技術のブロック図である。
【0020】
図12】本開示の実施形態に係る、高次元のロボット作業を、直列に接続された2つ以上の低次元のニューラルネットワークにモジュール化する方法のフローチャート図である。
【発明を実施するための形態】
【0021】
高次元のロボット作業を学習するためのニューラルネットワークモジュール化技術を対象とした本開示の実施形態の以下の説明は、本質的に単なる例示であり、開示された装置及び技術、又はそれらのアプリケーション若しくは使用を制限することを意図するものではない。
【0022】
ソースから部品を取り出して搬送先に配置するために、産業用ロボットを使用することは周知である。ある一般的用途では、部品は、鋳造又は成形されたばかりの部品で満たされたビン等のビン内に供給される。部品で満たされたビン内の個々の部品を、リアルタイムで認識して把持するようにロボットを教示することは、常に困難であった。従来の方法では、構造的環境内でロボットに手動で教示する。非構造的環境での高次元タスクの場合、パターン認識用に訓練されたニューラルネットワークを使用した深層学習により、堅牢な把持スキルを習得することが望まれる。
【0023】
しかし、高次元のロボットタスクを学習するには、学習ベースの方法では通常、高次元の状態/動作をエンコードし、高次元の動作空間で探索する必要がある。例えば、6自由度(DOF)の一般的なビンピッキングタスクを学習するには、ニューラルネットワークは、動作空間で探索する前に、高次元の観測及び6自由度の把持動作をエンコードする必要がある。このことは、ネットワークを複雑にし、計算負荷を重くする場合がある。
【0024】
高次元学習の課題に関して、2つの周知の既存の方法は、探索を4次元に減らし、トップダウン方式で把持のアプローチ方向を制限する。また、これらの学習ベースの方法は、(時間のかかる把持候補計算の要件のために)十分に高速ではないか、(ニューラルネットワークでは困難な、あまりにも多くの次元を予測しようとするために)十分に正確ではない。さらに別の既存の方法は、6自由度の把持提案に単一のニューラルネットワークを使用するが、この方法は探索の複雑さが高く、その後の把持の改良が必要であり、ビン内の部品に典型的な雑然とした対象物環境を処理できない。
【0025】
既存の方法及びシステムの欠点を克服するために、本開示は、大規模な高次元ニューラルネットワークを、2つ又は3つの低次元の小さなネットワークにモジュール化又はデカップリングするための技術を説明する。このニューラルネットワークのモジュール化手法を使用すると、ネットワークのパフォーマンス及び効率を大幅に向上させつつ、探索の精度を維持できる。開示されたニューラルネットワークモジュール化技術の1つの用途は、ロボットによる部品把持であり、ここでは把持のすべての自由度(DOF)が、部品で満たされたビンの画像から計算され、計算された把持は品質閾値を超える。
【0026】
図1は、本開示の一実施形態に係る、完全な自由度(full-DOF)の把持を計算するために、分離されたニューラルネットワークを使用するロボット部品ピッキングシステムのブロック図である。図1に示すシステムは、開示されたニューラルネットワークのモジュール化技術を使用可能な例示的アプリケーションを説明するために提供される。グリッパ102を有するロボット100は、ワークスペース内で動作し、ロボット100は部品又は対象物体を第1の場所(ビン)から第2の場所(コンベヤ)に移動させる。
【0027】
ロボット100の動作はコントローラ110によって制御され、コントローラ110は通常、ケーブル112を介してロボット100と通信する。コントローラ110は、ロボット100に関節動作指令を提供し、当技術分野で周知のように、ロボット100の関節のエンコーダから関節位置データを受信する。またコントローラ110は、グリッパの回転角度及び幅を含む、グリッパ102の動作を制御するための指令、及び把持(grip)/解放(ungrip)指令を提供する。
【0028】
コンピュータ120は、コントローラ110と通信している。コンピュータ120は、3次元(3D)カメラ画像に基づいて把持提案を計算するためのニューラルネットワークで構成されたプロセッサ及びメモリ/ストレージを含む。一実施形態では、実行モード又は推定モードでニューラルネットワークを実行しているコンピュータ120は、ニューラルネットワークを以前に訓練したのと同じコンピュータである。別の実施形態では、ニューラルネットワークは、異なるコンピュータ上で訓練され、ライブのロボット把持操作で使用するためにコンピュータ120に提供される。
【0029】
一対の3Dカメラ130及び132は、有線接続又は無線でコンピュータ120と通信し、作業空間の画像を提供する。特に、カメラ130/132は、ビン150内の物体140の画像を提供する。カメラ130/132からの画像(深度データを含む)は、ビン150内の物体140の位置及び姿勢を定義する点群データを提供する。異なる視点を有する2つの3Dカメラ130及び132がある場合、任意の適切な視点から、ビン150内の物体140の3D深度マップを計算又は投影することが可能である。別の実施形態では、3Dカメラのうちの1つ(130)のみが使用され、例えば、直接垂直な視線に向けられる。
【0030】
ロボット100に対するビン150の位置は既知であるため、ビン150内の場所で物体140の把持が計算されるとき、ロボット100は把持を実行するためにグリッパ102を制御することができる。ロボット100のタスクは、ビン150から物体140の1つを拾い上げ、その物体をコンベヤ160に移動することである。図示例では、ロボット100のグリッパ102によって把持された個々の部品142が選択され、経路180に沿ってコンベヤ160に移動させられる。
【0031】
各部品のピッキング操作について、コンピュータ120は、カメラ130/132から、ビン150内の物体140の1つ以上の画像を受信する。コンピュータ120は、カメラ画像から、ビン150内の物体140のパイルの1つ以上の深度マップを計算する。コンピュータ120上で実行されるニューラルネットワークは、深度マップを使用して、ビン150内の個々の物体について高品質の完全自由度の把持を決定する。例えば、物体のパイルの頂部の物体は、その側面のかなりの部分が露出しており、周囲に物体がないので、良好な把持候補となるであろう。
【0032】
以下に詳述する技術に従って物体(物体142等)が高品質把持のための位置にあると識別されると、コンピュータ120は、個々の物体把持データをコントローラ110に提供し、次にコントローラ110は、ロボット100に対して物体を把持して動かすように指令する。コンピュータ120によってコントローラ110に提供される個々の物体把持データは、好ましくは、把持目標点の3D座標、グリッパ102が従うべきアプローチ角度、並びにグリッパの回転角及び幅(又は全ての指の位置)を含む。
【0033】
コントローラ110は、個々の物体把持データを使用して、識別された物体(例えば、物体142)をグリッパ102に把持させ、衝突のない経路(経路180)に沿って目的の場所に物体を移動させるロボット動作指令を計算することができる。コンベヤ160の代わりに、目的地は、物体が個々のコンパートメントに配置される輸送コンテナ、又は物体が後続の操作でさらに処理される他の表面若しくは装置であってもよい。
【0034】
物体142がコンベヤ160に移動された後は、物体140のパイルが変化するので、新しい画像データがカメラ130/132によって提供される。次にコンピュータ120は、訓練されたニューラルネットワークを使用して、新しい画像データに基づいて、把持する新しい目標物体を識別しなければならない。ロボット100が物体140の1つを動かして次の物体を拾い上げることができるのと同じ速さで物体の識別及び経路計算をリアルタイムで実行する必要があるので、新しい目標物体はコンピュータ120によって非常に迅速に識別されなければならない。低次元のモジュール化されたニューラルネットワークによって提供される効率的な探索により、この把持アプリケーションで必要とされる高速把持計算が可能になる。
【0035】
図1のシステムにおける上述のアプリケーションは、好ましくは、コンピュータ120からの7自由度(DOF)の把持提案を使用する。一実施形態では、7自由度は、アプローチ方向のための2自由度(ロボットグリッパの下向きz方向ユニットと組み合わされたx及びy成分)と、把持位置(x/y/z座標)のための3自由度と、グリッパの回転/スピン角度及びグリッパ幅のための2以上の自由度とを含む。部品で満たされたビンの画像に基づく7自由度の把持提案を提供するために、コンピュータ120は、開示されたニューラルネットワークモジュール化技術を有利に使用して、把持探索次元を2つ又は3つのネットワークに分離することができる。開示されたニューラルネットワークのモジュール化の一般的な概念を以下に説明し、続いてロボット把持アプリケーションに適用されるネットワークのモジュール化の例を説明する。
【0036】
図2は、単一の大規模ニューラルネットワークを使用して高自由度ロボットタスクを計算するための従来技術と、自由度が分離されたニューラルネットワークに分離される本開示の技術とを対比する図である。図2以降のいくつかの図では、ニューラルネットワークによって評価される次元の概念は、位置次元p及び回転次元rについて説明される。例えば、グリッパの幅を無視すると、ロボットのグリッパの位置及び姿勢は、3つの位置自由度(x/y/z)(p)と、3つの回転自由度(ヨー/ピッチ/ロール、又は、アプローチ方向を記述する2つの角度プラス回転角、又はオイラー角若しくは他の適切な角度)(r)とによって完全に記述可能である。
【0037】
図2のボックス210には、ニューラルネットワークを使用して把持を計算するための従来のアプローチが示される。単一のニューラルネットワーク220は、3つの位置次元p及び3つの回転次元rを含む6自由度の全てをエンコードするために使用される。一例では、ニューラルネットワーク220は、手動で識別された単一の物体の品質把持の候補とともに、物体のパイルの深度画像を使用して訓練される。実行フェーズ(展開フェーズ又は推定フェーズとも呼ばれ、訓練されたニューラルネットワークを使用してライブのロボット操作での把持を決定する)では、ライン230での入力は、グリッパの位置及び回転{p,r}の双方を含む、完全自由度の把持の品質を推測するのに十分な環境データを含む深度画像である。ライン232での出力は、提案された最適なグリッパの位置及び回転(p,r)の双方を含む、提案された個々の物体の品質把持の次元である。
【0038】
ボックス210内のニューラルネットワーク220は、把持{p,r}に関連する入力環境データによって定義されるグリッパのポーズの6つの次元をエンコードし、実行フェーズで、深度画像を探索して6次元全ての最適条件(p,r)を特定しようとする。この多くの次元をエンコードして探索するニューラルネットワークは非常に複雑(多くのレイヤー)になり、その結果、訓練及び探索が非常に遅くなり、探索結果が不正確又は曖昧になり得る。
【0039】
図2のボックス250には、ニューラルネットワークを使用して把持を計算するための新しいアプローチが示される。上述の従来のアプローチのように単一のニューラルネットワークを使用して多事の全ての次元を計算するのではなく、2つのニューラルネットワーク(260及び270)が使用される。第1のニューラルネットワーク260では、ライン252における入力環境データを使用して、第1のニューラルネットワーク260が最適な把持(最大把持品質メトリック)をもたらす位置次元値pを3つの回転次元rの全ての値にわたって探索できるように、3つの位置次元pがエンコードされる。第2のニューラルネットワーク270では、ライン252からの元の入力データに加えてライン262の最適な位置次元値pを使用して、全ての位置及び回転の次元{p,r}がエンコードされる。しかし実行フェーズでは、ネットワーク270は、最適な把持をもたらす位置値pを備えるので、第2のニューラルネットワーク270は回転次元rを探索するだけでよい。ライン272における出力は、提案された最適なグリッパの位置及び回転(p,r)の双方を含む、個々の物体の提案された品質把持の次元である。
【0040】
【0041】
図3は、本開示の一実施形態に係る、最大マージンネットワークモジュール化アプローチを使用して探索次元を分離し、元の探索空間から最大条件を見出す方法を示す多次元探索空間の図である。次元p及びrにわたる結合探索空間は、グリッド310によって表される。グリッド310は、探索空間を視覚的に表し、列はpの値(p,p,…,p)を示し、行はrの値(r,r,…,r)を示す。グリッド310の各セル内のドットのサイズは、p及びrのその特定の組み合わせに対する把持品質Q(r,p)の値を表す。ドットが大きいほど、把持品質が高いことを示す。
【0042】
前に説明したように、p及びrが把持(グリッパポーズ)の位置及び回転の次元を表す場合、p及びrの各々が3つの次元又は自由度を含む。従って、最適な把持候補を見出すためには、p及びrの多くの異なる値を探索する必要があることは容易に想像できる。つまり、i及びjの値は少なくとも数百になる可能性がある。例えば、pのx、y及びz寸法がそれぞれ10のインクリメントに分割されている場合、pの次元サイズは10×10×10=1000になる。グリッド310の探索が単一のニューラルネットワーク(図2のネットワーク220等)によって実行される場合、その探索は、i・j回(iにjを乗算したもの)実行されねばならない。これにより探索スペースが非常に大きくなり、その結果、ニューラルネットワークが非常に複雑で低速になる。グリッド310の探索が2つの低次元ニューラルネットワーク(図2のネットワーク260及び270等)によって実行される場合、その探索はi+j回実行する必要があるが、その数ははるかに小さい。これにより、以下に詳述するように、非常に簡単で高速なニューラルネットワークソリューションが実現する。
【0043】
また上述したように、本開示は、1つの大きくて高次元のニューラルネットワークを2つ(又はそれ以上)のより単純なニューラルネットワークに分離(モジュール化)するための技術を規定する。1つの大きなニューラルネットワークを2つのより単純なニューラルネットワークに分離するための鍵は、第1のニューラルネットワークをエンコードして、対応するrの値のうちの1つにおいて、全体で最大の把持品質をもたらす値pを見出すことであり、これにより第2のニューラルネットワークは、pの最適な位置でr次元を探索することができる。以下は、この手法の説明である。
【0044】
【0045】
ボックス320内の第2のニューラルネットワーク(340で表示)がp=pにおいてrの全ての値を探索してQの最大値を特定すると、pの他の全ての値は隠される。故に第2のニューラルネットワークは、rで発生するp=pの最大把持品質を見出す。グリッド310の目視検査は、(r,p)での把持品質が全体的な最大把持品質ではないことを明らかにしている。従って、ボックス320に示される通常のマージン手法は、ニューラルネットワークのモジュール化で使用されたときに最大値を確実に見出すことはできない。
【0046】
【0047】
ボックス350内の第2のニューラルネットワーク(370で表示)がp=pにおいてrの全ての値を探索してQの最大値を特定すると、pの他の全ての値は隠される。故に第2のニューラルネットワークは、rで発生するp=pの最大把持品質を見出す。グリッド310の目視検査は、(r,p)での把持品質が実際に全体的な最大把持品質であることを明らかにしている。従って、ボックス350に示される最大マージン法は、ニューラルネットワークのモジュール化で使用されたときに最大値をもたらす1次元(p)の目標値を見出すことができる。
【0048】
ボックス350内の第2のニューラルネットワーク370は、p=pにおいてのみrを探索し、pの他の全ての値は隠されるため、第2のニューラルネットワークの探索は、グリッド310の全ての次元に亘る単一のニューラルネットワークよりも、(jのファクターによって)はるかに高速である。ニューラルネットワークの探索パフォーマンスにおけるこの大幅な改善は、ロボット制御をサポートするために物品のパイルの画像に対応する把持提案をリアルタイムで計算する必要があるロボット把持アプリケーションでは非常に重要である。
【0049】
【0050】
図4は、本開示の実施形態による、ニューラルネットワークモジュール化技術の訓練フェーズにおけるステップのブロック図である。ボックス400は、第1のニューラルネットワーク410の訓練に使用されるステップを含む。ボックス450は、第2のニューラルネットワーク460の訓練に使用されるステップを含む。図4の第1(410)及び第2(460)のニューラルネットワークは、上述の図3の第1及び第2のニューラルネットワークと同様に作用する。
【0051】
ボックス400及び450の上部に概略的に示されるように、第1のニューラルネットワーク410は、グループ化された次元pをエンコードし、それにより第1のニューラルネットワークは、{p}の環境を記述する入力データに基づいて、p(いくつかのrの値において最大品質が得られるpの値)を予測する。次に第2のニューラルネットワーク460は、以前に特定されたpにおける全てのrの環境を定義する入力データに基づいて全ての次元(p,r)を符号化し、最大把持品質が存在する値(p,r)を特定する。
【0052】
第1のニューラルネットワーク410を訓練するために、420及び430で示されるように先ず最大マージンデータが準備される。420で示される入力データI(p)は、動作pを一義的にエンコードする状態を表す。動作rは非表示になっているため、I(p)はpの関数である。430で示される出力データQ(p)は、最大マージン法(図3に関して上述)を使用してr方向に沿って投影される品質Q(r,p)である。430での出力データQ(p)は、以下でさらに説明する把持品質マップの形式で提供される。Q(p)は、rを非表示にし、pのみの関数である。品質は第1のニューラルネットワーク410の出力であるが、Q(p)データはネットワークトレーニングの入力として提供される。把持タスクの場合、420及び430に示すように、I(p)は様々なpの情報(例えば深さ)を表し、Q(p)は特定のpにおける様々なrの最大品質である。図5及び図6は、入力データI(p)、把持品質データQ(p)、及びそれらの間の関係をさらに示しており、この関係は、訓練を通じて最終的に第1のニューラルネットワーク410内にエンコードされる。
【0053】
図5は、本開示の一実施形態に従い、3D深度画像データがどのようにして深度レイヤーの組に処理され、図4のトレーニングフェーズで提供されるかを示すグラフ500である。特定の3D深度画像(図4の420に示す)の場合、複数の深度画像レイヤーが、第1のニューラルネットワーク410を訓練するための入力データI(p)として提供される。グラフ500では、x軸510は3D深度画像の1つの水平寸法を表し、z軸520は深度画像の垂直寸法を表す(例えば、z軸520は、部品で満たされたビンの高さであり得る)。3D深度画像のy軸512は、グラフ500の「ページ内(への方向)」である。曲線530は、x-z平面における部品のパイルの集合的な高さを示す。換言すれば、曲線530は、x-z平面における部品のパイルの断面の頂部である。
【0054】
3D深度画像は、各々が異なる高さ(z,z,…,z,…,z)である複数のレイヤーに分割可能である。線540で表される高さzは、深度画像(例えば部品のパイル)の最高点を示す。高さzに対して1つの深度画像レイヤーが提供され、これは、zレベル(最高高さの物品)からzレベル(ビンの底部)までの全て物品を含む完全な深度マップを示す。zの深度画像レイヤーでは、深度画像のz座標の基準原点がzに設定されているため、深度画像内の全てが負のz座標になる。線542で表される高さzは、深度画像の上部より僅か下方のレベルを示す。高さzには、別の深度画像レイヤーが提供される。これも、zレベルから底部のzレベルまでの全ての物品を含む深度マップを示す。但し、z深度画像レイヤーでは、深度画像のz座標の基準原点がzに設定されているため、深度画像のzより上方の全てが正のz座標になり、深度画像のzより下方の全てが負のz座標になる。同様に、深度画像レイヤーは、追加のレベルz(線544で示す)に提供される。各深度画像レイヤーは、部品のパイル全体の完全な深度画像であるが、各深度画像レイヤーは、z方向に異なる原点を持つ。異なるレベルでスライスして複数の深度画像レイヤーを提供することにより、ニューラルネットワーク410の訓練においてz方向がエンコードされる。x及びyのエンコーディング(符号化)は、各レイヤーの2次元情報によって自然に行われる。これを図6に示す。
【0055】
曲線530は、形状特徴550及び560を有する。形状特徴550及び560は、深度マップのハイスポットであり、これらは1つ以上の部品の存在によって部品のパイルがより高くなる場所を示す。形状特徴550及び560は、後述するように、深度画像及び把持品質マップの形状で現れる。
【0056】
図6は、本開示の実施形態に係る、図5の特定の深度レイヤーとしての深度画像レイヤー600の図であり、図4のトレーニングフェーズで提供される。深度画像レイヤー600において、x軸510は、図5のx軸510に対応し、y軸512は、図5のy軸512に対応する。換言すれば、深度画像レイヤー600はトップダウンの深度画像であり、図5のz軸520は図6において「ページから出てくる方向」である。
【0057】
深度画像層600は、図5の形状特徴550及び560にそれぞれ対応する形状620及び630を含む。形状620及び630は、中央で最も暗く、最も高いz座標を示し、図5の形状特徴550及び560のピークに対応する。深度画像レイヤー600が高さzのものである場合、深度画像のz座標の基準原点がzに設定され、深度画像のz(線544)より上方の全てが正のz座標になり、深度画像のz(線544)より下方の全てが負のz座標になる。同様に、図4の430に示される品質マップも、レイヤー又はスライスにスタックされる。品質マップ430の各レイヤーは、高さzの影付き領域570内等、深度画像の現在のレイヤーに近い把持候補を示す。例えば、高さzの品質マップには、形状620及び630の中央の品質把持が含まれるが、高さzの品質マップには、そのレベルの深度画像内に把持可能な形状特徴がないため、品質把持が含まれない可能性がある。品質マップ430で提供される把持候補は、ヒューリスティック等の従来の方法によって手動で生成されてもよいし、グリッパ/部品最適化計算とそれに続く物理環境(部品のパイル)シミュレーションを使用して自動的に生成されてもよい。
【0058】
第1のニューラルネットワーク410(図4のボックス400内)を訓練するための最大マージンデータの準備を要約すると、特定の物品のパイルに対して、点群又は他の深度マップデータ(3Dカメラ等)を使用して、(複数のレイヤーにおける)深度画像420及び対応する品質マップ430(各深度画像レイヤーの様々な点での把持品質を指定する)を提供する。前述の手順は、様々な物品のパイル(好ましくは数千)に対して実行される。図4の420及び430に示され、さらに図5図6に詳細に示されるように、最大マージンデータが準備された後、第1のニューラルネットワーク410が訓練される。トレーニングステップは、ボックス400の下部に示されており、ここでは、第1のニューラルネットワーク410は、環境画像データ入力I(p)に基づいて把持品質Q(p)を予測するように訓練される。データが準備されれば、第1のニューラルネットワークの訓練は簡単かつ高速である。把持品質(第1のニューラルネットワーク410の出力)がトレーニングデータとして提供されるため、ボックス400に示される訓練は教師あり学習として知られている。
【0059】
第2のニューラルネットワーク460(図4)を訓練するために、全ての次元r及びpをエンコードするためにデータが準備される。先ず、第1のニューラルネットワーク410を訓練するために使用される(複数のレイヤーにおける)深度画像420が、対応する品質マップ430(各深度画像レイヤーでの把持品質及び位置を指定する)とともに、470で示すように組み合わされる。画像420の各々は、特定の深度画像レイヤーに関連する品質把持の位置でエンコードされる。その結果は、480で示される入力データI(r,p)であり、これは、複数の深度画像トリミング(482、484、486、…)を含み、各トリミングは、品質マップ430によって定義されるようにトリミングされ回転させられた深度画像420のうちの1つの一部である。
【0060】
把持用途に関し、480で示される入力データI(r,p)(深度画像は482、484、486、…をトリミングする)では、pはトリミング中心(深度画像レイヤー上の位置からのx及びy、並びにそのレイヤーの深さ原点からのz)によってエンコードされ、rはトリミング角度によってエンコードされ、p及びrの双方は品質マップ430から決定される。最良のビンピッキング能力を提供するために、非垂直の把持方向を可能にすることがしばしば有利である。把持のアプローチ方向(すなわち、非垂直アプローチ方向)は、異なる視野角の深度画像420(470で再び使用される)を供給することによって、第1及び第2のニューラルネットワーク(410/460)においてエンコードされ得る。図1に示すように、異なる視野角の深度画像は、異なる位置及び向きを持つ2つの3Dカメラから取得した点群データから計算可能である。
【0061】
出力データQ(r,p)は、490で表示され、これには、各深度画像のトリミング482/484/486に関連付けられた品質メトリック値が含まれる。品質メトリックは、品質マップ430での各把持のための外部トレーニングデータソース(図10に関してさらに後述される)によっても提供される。故に出力データQ(r,p)は、第2のニューラルネットワーク460のためのトレーニングデータとして利用可能である。把持について、出力データQ(r,p)は、把持動作r及びpに関連する品質を表すスカラー値である。第2のニューラルネットワーク460は、全ての動作次元r及びpをエンコードするが、第1のニューラルネットワーク410によって実行されるp次元の符号化のために、推定時にr方向を探索する必要があるだけである。図4の480及び490に示されるように、ジョイント(r及びp)の入力データが準備された後、第2のニューラルネットワーク460が訓練される。トレーニング段階は、ボックス450の下部に示され、ここでは、第2のニューラルネットワーク460は、環境画像データ入力I(r,p)に基づいて把持品質Q(r,p)を予測するために訓練される。
【0062】
第1のニューラルネットワーク410は、「イメージイン/イメージアウト」アプリケーションに最適な完全畳み込みネットワーク(FCN)であり得る。第2のニューラルネットワーク460は、出力の低次元コンテンツのために高精度が可能である「イメージイン/スカラーアウト」アプリケーションに最適な畳み込みニューラルネットワーク(CNN)であり得る。第1のニューラルネットワーク410及び第2のニューラルネットワーク460の双方は、教師あり学習を使用して訓練され、このことは、ネットワークからの所望の出力データ(第1のニューラルネットワーク410からの品質マップ430、及び第2のニューラルネットワークからの把持品質メトリック490)が、訓練のための入力として提供されることを意味する。図4のボックス400及び450に示され、かつ上述したトレーニング手順に従って、ニューラルネットワーク410及び460が訓練され、図1に示すタイプのライブロボット操作で使用できるようになる。
【0063】
図7は、本開示の実施形態に係る、ニューラルネットワークモジュール化技術の推定フェーズにおけるステップのブロック図である。推定フェーズ(展開フェーズ又は実行フェーズとしても知られている)では、ニューラルネットワーク410及び460を、3D深度画像を分析して品質把持候補の推奨事項を提供するために、ライブロボット部品ピッキング操作で使用する。ここでも、ロボットによる部品ピッキング(3D深度画像からの把持決定)は、高次元のタスクを2つ以上の低次元のネットワークに分離するためのニューラルネットワークのモジュール化の一例に過ぎないことが強調される。
【0064】
図4に示され、上述のように訓練されたニューラルネットワーク410及び460は、図7に示される推定フェーズで使用される。ニューラルネットワーク410及び460は独立して訓練されるが、それらは推定時に接続されて、全次元の動作を決定する。推定フェーズでネットワークを実行するにはいくつかのステップがあり、ボックス700は第1のニューラルネットワーク410を含むステップを有し、ボックス750は第2のニューラルネットワーク460を含むステップを有する。
【0065】
ボックス700において、第1のステップは、pをエンコードする入力データI(p)を準備することである。把持用途では、I(p)は異なるpに関連付けられた深度画像とすることができる。エンコード方法及びネットワーク構造に応じて、様々な入力/出力タイプが可能である。図示されている把持例では、複数の深度画像レイヤーが710において深度エンコーディングのために提供され、完全畳み込みネットワーク構造が使用される。従って入力は、図4図6に関して前述したように、様々な高さ又はレイヤー(pをzでエンコードする)を中心とする深度画像(x及びyでpをエンコードする水平スライス)である。
【0066】
【0067】
【0068】
【0069】
図7に示されて上述されたモジュール化されたニューラルネットワーク410及び460が何を行ったかをもう一度説明する。710に示される入力データを使用して、第1のニューラルネットワーク410は最大マージン値pを見出し、この値pは、探索空間全体で最大の個々の把持品質を有する位置次元pの値である。次に、値pを入力として使用して、第2のニューラルネットワーク460は値rを見出し、この値rは、位置次元がpに制約されたときに最大の把持品質を持つ回転次元rの値である。連結された次元(r,p)は、完全な6自由度ロボットによる物品の把持を定義する。開示されたニューラルネットワークの分離により、p空間の探索をr空間の探索から切り離すことができ、その結果、探索空間のサイズが劇的に減少する(次元サイズi及びjの積ではなく和になる)。
【0070】
図4-7に示される前述の説明及び実施例は、ロボット部品ピッキング操作のための物品の高品質の完全自由度把持を見出すアプリケーションの例に関して説明された。上述したように、これは、開示されたネットワークモジュール化技術の単なる一例のアプリケーションである。この手法は、一般に、高次元のニューラルネットワークを2つ以上の低入力次元のネットワークにモジュール化して、はるかに高速に実行するために適用可能である。いくつかの特定の把持アプリケーションについては、以下でさらに説明する。
【0071】
図8は、本開示の一実施形態に係る、3自由度把持探索問題に適用される開示されたニューラルネットワークモジュール化技術のブロック図である。図8に示す例では、物品のパイルの3D深度画像から、比較的単純な3自由度把持が特定される。計算すべき3自由度は、把持点のx、y及びzの位置である。この例では、回転は計算しない。単一のネットワークで3自由度を計算するのではなく、計算を2つのニューラルネットワークにモジュール化できる。第1のニューラルネットワークは最高品質の把持のx及びy座標を計算し、第2のニューラルネットワークはz座標を計算する。
【0072】
ボックス800は、第1のニューラルネットワーク810並びにそれに関連する入力及び出力データを含む。1つ以上の3Dカメラからのような深度画像820が、入力として提供される。トレーニングフェーズでは、教師あり学習のために、対応する最高品質の把持位置も提供される。多くの深度画像820を使用する訓練を通じて、第1のニューラルネットワーク810は、最良の把持品質に対応するように深度画像820の形状特徴からx及びyをエンコードすることを学習する。推定フェーズでは、深度画像820が第1のニューラルネットワーク810に提供され、x及びy次元で最高品質の把持位置を示す単一の品質マップ830が出力される。すなわち第1のニューラルネットワーク810は、Q(xy)の最大マージンをエンコードする。第1のニューラルネットワーク810は、矢印840で示されるように、推定フェーズにおいて第2のニューラルネットワーク860に最良の把持位置(x)のx-y次元を提供する。
【0073】
【0074】
最終出力把持位置(x)は、第1のニューラルネットワーク810によって特定された最良のx及びy次元と、第2のニューラルネットワーク860によって特定された最良のz次元とを含む。最終出力把持位置(x)は、ロボット制御装置に提供され、ロボット制御装置は、特定された座標で部品を把持するための指令をロボットに提供する。部品が把持された後、新しい深度画像がニューラルネットワーク810及び860に提供され、新たな最良の把持位置の座標が計算される。
【0075】
3自由度把持探索を2つのネットワークにモジュール化する(一方のネットワークで2つの次元を探索し、他方のネットワークで1つの次元を探索する)ことにより、全体的な探索性能が改善される。例えば、x及びy次元がそれぞれかなり粗い20×20グリッドに分割され、z次元が10レイヤーに分割されている場合を考える。開示されたネットワークモジュール化技術を使用して、第1のニューラルネットワーク810がサイズ20×20=400の空間を探索し、第2のニューラルネットワーク860がサイズ10の空間を探索すると、結果として得られるモジュール化された探索空間のサイズは400+10=410となる。3つの次元全てが単一のネットワークで探索された場合は、そのネットワークの探索空間のサイズは20×20×10=4000になる。
【0076】
図9は、本開示の実施形態に係る、2つのニューラルネットワークを使用した、5自由度把持探索問題に適用されるニューラルネットワークモジュール化技術のブロック図である。図9に示す例では、部品のパイルの3D深度画像から5自由度の把持が特定される。計算すべき5自由度には、グリッパの幅及びグリッパの回転角に加えて、把持点のx、y及びzの位置が含まれる。この例では、アプローチ角度は計算されず、トップダウンの垂直方向アプローチが想定されている。単一のネットワークで5の自由度を計算するのではなく、開示された方法を使用して、計算を2つのニューラルネットワークにモジュール化できる。ここでは第1のニューラルネットワークは、最高品質の把持のx/y/z座標を計算し、第2のニューラルネットワークは、グリッパの幅(w)及びグリッパの回転角(θ)を、最大化された最終的な把持品質とともに計算する。
【0077】
3D深度画像910(例えば、ビン内の物品のパイルを示す)は、把持提案ネットワーク920に提供される。把持提案ネットワーク920は、完全畳み込みネットワーク(FCN)であり、入力(深度画像910)としての画像を受信し、出力としての画像(把持品質マップ930)を提供する。把持品質マップ930は、畳み込みニューラルネットワーク(CNN)である把持ランキングネットワーク940に提供され、ネットワーク940は、画像を受信し、スカラーデータ(グリッパの幅及び回転角)を提供する。把持ランク付けネットワーク940からのグリッパの幅及び回転角(950で示す)は、把持提案ネットワーク920によって作成された把持品質マップ930からの最良の把持位置(x/y/z)と組み合わされる。加えて、これは、ロボット制御装置によって使用される5自由度の把持の定義(x/y/z/w/θ)を提供する。
【0078】
前に詳述したように、把持提案ネットワーク920及び把持ランキングネットワーク940は、先ず教師あり学習を使用して訓練され、次に推定モードで動作される。訓練において、把持提案ネットワーク920は、深度画像及び対応する把持品質マップを有する。把持ランキングネットワーク940は、把持提案ネットワーク920に提供される深度画像及び対応する品質マップを、グリッパの幅/回転角及び最終的な把持品質の所望の出力とともに提供することによって訓練される。この訓練を実行するための自動化された方法については、図10に関して以下でさらに説明する。
【0079】
推定モードでは、把持提案ネットワーク920は、深度画像のみを有し(そして出力として品質マップを提供し)、一方、把持ランキングネットワーク940は、入力として深度画像及び対応する品質マップを有する(そしてグリッパの幅/回転角と、品質マップから選択された最高品質把持の位置に関連する最終的な把持品質出力とを提供する)。
【0080】
図9の5自由度把持探索を2つのネットワークにモジュール化する(一方のネットワークで3つの次元を探索し、他方のネットワークで2つの次元を探索する)ことにより、全体的な探索性能が改善される。例えば、x及びy次元がそれぞれかなり粗い20×20グリッドに分割され、z次元が10レイヤーに分割され、グリッパ幅が10の位置を有し、グリッパ角度が20の位置を有する場合を考える。開示されたネットワークモジュール化技術を使用して、第1のニューラルネットワーク920がサイズ20×20×10=4000の空間を探索し、第2のニューラルネットワーク940がサイズ10×20=200の空間を探索すると、結果として得られるモジュール化された探索空間のサイズは4000+200=4200となる。5つの次元全てが単一のネットワークで探索された場合は、そのネットワークの探索空間のサイズは4000×200=800000になる。
【0081】
図10は、本開示の一実施形態に係る、個々の物品把持最適化及びクラスター化物品変動の組み合わせと干渉シミュレーションとを使用して、図9に示されるタイプのモジュール化された把持学習ネットワークを訓練するための方法の図である。図10に示すトレーニング方法のステップは、後にロボット動作の制御に使用されるロボット制御装置以外のコンピュータを使用して「オフライン」環境で実行可能であり、図9のニューラルネットワーク920及び940を訓練するための把持データを生成する非常に効率的な手段を提供する。
【0082】
ボックス1010の第1のデータ準備ステップでは、データベース内の個々の物品の自動把持探索が示される。グリッパ1014による物品1012の複数の把持が図示されている。解析対象の部品の3Dソリッドモデル又はサーフェスモデルが、ジオメトリ及び操作パラメータ(指の関節の位置、関節の角度範囲等)を含むグリッパデータとともに提供される。反復最適化手法を使用して、部品の形状及びグリッパのパラメータに基づいてロバストな把持候補が作成される。ボックス1010に示すステップは、特定のグリッパ(グリッパ1014)による個々の部品(物品1012)のための複数の品質把持の位置及び向きを提供する。これらの把持ポーズは、多くの異なるグリッパを使用して、多くの異なる部品に対して自動的に計算できる。
【0083】
ボックス1020での第2のデータ準備ステップでは、変動及び干渉を考慮に入れて、ロバストな把持シミュレーションが実行される。このステップでは、物品のストリームがビンに転がり込み、様々な位置、方向及び絡み合いを持つ物品のパイルにランダムに堆積するのをシミュレートすることにより、物品がさらにランダムに密集したクラスターにサンプリングされる。シミュレートされたパイル内の各物品のポーズは既知であるため、以前に生成された(ボックス1010からの)把持をテストして、シミュレートされた実世界の条件(絡み合い及び干渉)でのそれらの有効性を判断することができる。このようにして以前に生成された各把持の成功は、シミュレートされた物品のパイルの3D深度画像を、以前に生成された把持とともに使用してテストされる。ボックス1020に示されるステップは、実際の部品及び画像を使用せずに、完全に数学的シミュレーションを使用して実行される物理環境シミュレーションである。シミュレートされた深度画像、把持位置品質マップ、把持ポーズ、及び成功率(ボックス1022にまとめて示される)が保存され、後に図9の把持学習ネットワークのトレーニングに使用される。これらは以下の図10に示されている。
【0084】
上述され、ボックス1010及び1020に示される把持の最適化及びシミュレーションは、2020年9月10日に出願され、タイトルを「一般的グリッパによる把持学習のための効率的データ生成(EFFICIENT DATA GENERATION FOR GRASP LEARNING WITH GENERAL GRIPPERS)とする米国特許出願第17/016,731号に開示されており、この出願は本出願と出願人が共通しており、本参照によりその全体が本明細書に組み込まれる。
【0085】
図9の把持学習ネットワークは、図10のボックス1030に示される。以下は、自動的に生成把持データをどのように使用して、モジュール化されたニューラルネットワークを訓練するかを説明するが、これには、ボックス1022からのデータを使用して把持提案ネットワーク920及び把持ランキングネットワーク940を別個に訓練することが含まれる。
【0086】
把持提案ネットワーク920の訓練は、入力として深度画像910を必要とする。深度画像910は、ボックス1022から提供可能であり、深度画像910は、物理環境シミュレーションによる物品のパイルを表す。教師あり学習のために、把持提案ネットワーク920のトレーニングはまた、異なるピクセル位置での把持品質を表す把持品質マップ930を必要とする。また品質マップ930は、ボックス1022から提供され、品質マップは物理的環境シミュレーションから計算される。ボックス1020に示される物理的環境シミュレーションは、何度も(数千回)実行することができ、各ランダムシミュレーションは、物品の異なるランダムなパイルを提供し、その結果、把持提案ネットワーク920を訓練するための深度画像910及び対応する品質マップ930の十分な量及び多様性がもたらされる。
【0087】
次に、把持ランキングネットワーク940が訓練される。このネットワークは、様々な角度(品質マップ930から準備される)での深度画像トリミングを入力として使用し、線950で示すようなグリッパ回転角(θ)及びグリッパ幅(w)を、対応する把持品質とともに出力し、ボックス1022からのシミュレーション結果をトレーニング(教師あり学習)の基礎として使用する。グリッパ回転角及びグリッパ幅が含まれているため、ボックス960の出力は5つの把持自由度を含む。明確化のために再度述べるが、ボックス1010の把持最適化方法は、特定のグリッパを使用して、物品に対して多くの異なる把持を生成する。ボックス1020の物理環境シミュレーション方法は、ランダムに生成された物品のパイルに適用された異なる把持ポーズのための把持品質シミュレーション結果を生成する。そして物理環境シミュレーションの出力は、把持提案ネットワーク920及び把持ランキングネットワーク940を訓練するために使用される。
【0088】
図10に示すような2つのニューラルネットワーク(920、940)の訓練に続き、訓練されたニューラルネットワーク(920、940)を使用してロボット把持システムの実際に稼働し、図9に関して上述したように、深度画像入力に基づいて把持を決定し、ロボットを制御する。ボックス1010及び1020に示されるデータ生成ステップは、図9の5自由度把持システム/方法だけでなく、モジュール化されたより少ない(例えば3自由度の)把持ネットワークや、より多い(例えば7自由度)の複雑なものにも適用できる。
【0089】
図11は、本開示の一実施形態に係る、3つのニューラルネットワークを使用した、7自由度把持探索問題に適用されるニューラルネットワークモジュール化技術のブロック図である。図11のシステムでは、7つの把持自由度は、アプローチ方向の選択(2自由度)、把持位置の選択(3自由度)並びにグリッパの方向及び幅の選択(2自由度)を含む。上述した3自由度及び5自由度のニューラルネットワークシステムと同様に、図11に示すニューラルネットワークは、先ずトレーニングされ、次に推定モードで使用されて、図1に示されるようなロボットによる実際の部品把持操作中に把持計算を実行する。
【0090】
ボックス1110は、方法の第1フェーズのステップであり、最良のアプローチ方向を選択する。例えば、一対の3Dカメラからのビン内の部品画像であり得る入力シーン1112が与えられると、関連する点群は、合成画像1122を生成するために、方向符号化ボックス1120によって複数のサンプリングされたアプローチ方向に投影される。入力シーン1112の画像は、深度情報を含み、これにより方向符号化ボックス1120のアルゴリズムが、複数のランダムに選択された投影視点から見た合成表面画像を生成することが可能になる。換言すれば、ロボットのグリッパが特定の方向から接近した場合、その方向からの3D表面画像はどのように見えるか?これらの合成画像は、ランダムにサンプリングされた多くの異なる投影角度について作成され、合成画像1122内に提供される。投影角度は、ロボットが接近できる方向の制限内にある。
【0091】
アプローチ方向提案ネットワーク1130は、合成画像1122で提案された各アプローチ方向から把持する際の全体的な品質を予測するために使用される。換言すれば、ネットワーク1130では、把持は非表示であり、最良の把持品質を含むアプローチ方向は、上述した最大マージン手法を使用して決定される。アプローチ方向は、2つのベクトルv及びvとして定義され、これらは、極座標系の方位角及び仰角、又は3次元のアプローチ方向ベクトルを定義する他の成分であり得る。選択されたアプローチ方向(v,v)は、アプローチ方向ベクトル1138として保存され、後にロボット制御装置によって使用される。最適なアプローチ方向に関連付けられた深度画像も保存され、次のフェーズで使用される。
【0092】
ボックス1140には、最良の把持位置を決定する、方法の第2フェーズのステップが含まれる。上で選択された最適なアプローチ方向1138に関連付けられた(画像セット1122からの)合成深度画像である、深度画像1142が提供される。深度画像1142は、スライス切断ボックス1150において異なる高さでスライスに切断され、把持位置提案ネットワーク1160に送信される。把持位置提案ネットワーク1160は、1164で示すように、かつ図4に関して上述したように、異なる高さの画像スライスの品質マップを生成する。換言すれば、ネットワーク1160は、グリッパの幅及び角度を隠し、定義されたアプローチ角度が与えられると、位置の関数として把持品質をエンコードする。品質マップ1164は、アプローチ方向1138が与えられると、特定の位置(x,y,z)を選択した結果として生じる把持の品質を示す。最高品質の把持位置の3D座標は1168に格納され、次のブロックの入力として提供され、後にロボット制御装置によって使用される。
【0093】
ボックス1170には、把持の角度(θ)及び幅(w)を決定する、方法の第3の最終フェーズのステップが含まれる。所望のアプローチ方向1138(v,v)及び上で選択された所望の把持位置1168(x,y,z)に関連する深度画像である、深度画像1172が提供される。ボックス1180において、画像パッチは、1168に格納された最高品質の把持位置の周りに異なる角度でトリミングされる。これらの画像パッチ(1182)は、評価された各画像パッチの品質及び幅(1194)を出力するために、把持ランキングネットワーク1190に送られる。最高品質に対応する把持の角度(θ)及び幅(w)が選択され、1198に保存される。
【0094】
1138に格納された所望のアプローチ方向(2自由度のv、v)、1168に格納された最適な把持位置(3自由度のx、y、z)、及び1198に格納された最良の把持幅/角度(2自由度のw、θ)は、1199で示すように、実行のためにロボット制御装置に送信される。つまり、ロボット制御装置は、アプローチ方向、把持位置、及び把持幅/角度の情報から計算されたロボット動作指令を使用して、ビンから部品を把持するようにロボットに指示する。次にロボットは、部品を所定の場所(コンベヤ又は輸送コンテナ等)に配置する。次にこの方法は、新たな入力シーン1112の新しい画像が提供されるボックス1110に戻り、把持選択ステップ及びロボットの実行が繰り返される。
【0095】
図11に示すような7自由度の把持探索アプリケーションのための3つのニューラルネットワークの使用は、多くの利点を提供する。アプローチ方向提案ネットワーク1130は、トップダウンの垂直把持の制約を排除することにより、巧妙な把持を可能にする。把持位置提案ネットワーク1160は、把持位置の3つの自由度を、これらの次元を他の自由度とは別個に計算することにより、高速に計算する。把持ランキングネットワーク1190は、畳み込みニューラルネットワークのスカラー出力に固有の精度を提供する。さらに、7自由度の把持探索において、1つの大きなニューラルネットワークの代わりに3つのニューラルネットワークを使用すると、探索空間のサイズが数桁減少し、それに応じて探索速度が向上する。なお図11に示すシステムは、入力として画像を取得し、出力として画像を提供するニューラルネットワーク1130及び1160に完全畳み込みネットワーク(FCN)を使用して、さらに、スカラーデータ出力を提供するニューラルネットワーク1190に畳み込みニューラルネットワーク(CNN)を使用して、様々なタイプのニューラルネットワークの長所を活用するように設計されている。
【0096】
図8-11に関して上述した実施例(3自由度、5自由度及び7自由度の把持)は、異なる把持アプリケーションにおいて、開示されたニューラルネットワークモジュール化技術によって提供される能力および柔軟性を示す。開示されたニューラルネットワークのモジュール化技術は、把持以外の他のアプリケーション、つまりニューラルネットワークのエンコーディング及び高次元タスクの計算が必要なアプリケーションで使用可能であることを再度強調する。
【0097】
図12は、本開示の一実施形態に係る、低次元の2つ以上のニューラルネットワークを使用して多次元パターン認識問題を解決するための方法のフローチャート図1200である。ボックス1210において、解決すべき問題(ニューラルネットワークパターン認識での解決に適した多次元探索問題)が定義され、問題の次元がグループ化された次元の組に分割される。このことは、前の説明及び図面で何度も説明されている。図2-7では、6自由度の把持問題が位置次元p(x,y,z)及び回転次元r(r1,r2,r3)に分割されている。他の例では、3自由度及び5自由度の把持探索が2組のグループ化された次元に分割され、7自由度の把持探索が3組のグループ化された次元に分割されている。
【0098】
ボックス1220では、2つ以上のニューラルネットワークが提供され、ボックス1210からのグループ化された次元の組のそれぞれに対して1つのニューラルネットワークが提供される。ニューラルネットワークは、前の図に示すように(推定モードのために)直列に連結され、広く説明された。ニューラルネットワークは、図1のコンピュータ120等のコンピュータで実行される。各ニューラルネットワークは、自らのグループの次元の組に加えて、直列の上流にある他のニューラルネットワークからのグループ化された次元の組をエンコードする。例えば、図2-4では、第1のニューラルネットワークはp次元をエンコードし、第2のネットワークはp次元及びr次元の双方をエンコードする。図11の3つのネットワークの実施例では、第1のネットワークはアプローチ方向の自由度をエンコードし、第2のネットワークはアプローチ方向に関連する把持位置の自由度をエンコードし、第3のネットワークは把持位置及びアプローチ方向に関連するグリッパの角度及び幅の自由度をエンコードする。
【0099】
ボックス1230において、2つ以上のニューラルネットワークは、教師あり学習を使用して個別に訓練される。教師あり学習手法では、各ネットワークに多数のトレーニング例を提供し、各例は、ネットワークの入力及び所望の出力の双方を含む。例えば、図4では、第1のニューラルネットワーク410は、(複数のレイヤーにおける)深度画像420及び対応する(各深度画像レイヤーの様々な点での把持品質を指定する)品質マップ430を提供することによって訓練され、第2のニューラルネットワーク460は、回転されトリミングされた深度画像480及び品質メトリック出力データ490を提供することによって訓練される。2ネットワークシステムでは、第1のネットワークは、そのグループ化された次元の組をエンコードするように訓練される一方で、グループ化された次元の残りの組を非表示にしつつ、図3及び4に関連してまず説明された最大マージン法を使用する。3ネットワークシステムでは、最初の2つのネットワークが訓練のために最大マージン法を使用できる。最大マージン法では、ニューラルネットワークは、出力変数(品質等)の最適値を持つ、対応するグループ化された次元の組の目標値を見出す。目標値は、直列の下流にある他のニューラルネットワークによる入力として使用される。
【0100】
ボックス1240において、ニューラルネットワークは、問題の環境を定義する入力が提供される推定モードで実行され、各ニューラルネットワークは、対応するグループ化された次元の組のみを探索して目標値を見出す。各ニューラルネットワークから出力された目標値は、直列の下流にある他のニューラルネットワークによる入力として使用される。例えば、2ネットワークシステムでは、入力深度画像は第1のニューラルネットワークに提供される唯一の入力であり、高品質把持の位置座標(グループ化された次元の第1の組)の目標値を持つ把持品質マップ出力を計算するために第1のニューラルネットワークによって使用される。次に、入力深度画像及び品質マップが第2のニューラルネットワークへの入力として提供され(トリミングや回転によってさらに処理され)、高品質把持の回転の目標値(グループ化された次元の第2の組)を計算するために第2のニューラルネットワークによって使用される。
【0101】
ボックス1250において、2つ以上のニューラルネットワークの出力が組み合わされて最終出力を提供する。ボックス1240に関して説明した2つのネットワークの例では、最高品質のメトリック値が選択され、次に、グループ化された次元の第2の組の対応する目標値が、(第1のニューラルネットワークからの)グループ化された次元の第1の組の目標値と組み合わされて、完全な最終出力が生成される。深度画像による把持探索の場合、最終出力は、最高品質の把持に対応する次元又は自由度が連結された組である。
【0102】
高次元ロボットタスクを学習するためのニューラルネットワークモジュール化の開示された方法は、周知の方法に勝る多くの利点を提供する。開示された方法の1つの大きな利点は、高次元の動作空間(例えば、5以上の自由度)での探索が回避されることによる高速計算である。上述のように、探索次元を2つ又は3つのニューラルネットワークに分離すると、計算速度が数桁向上する。この複雑さの軽減及び速度の向上により、既存の方法では現実的でなかった高次元のタスクを計算できるようになる。
【0103】
異なるニューラルネットワークの探索空間の分離により、画像入力/画像出力計算のための完全畳み込みネットワーク、及び最終的なスカラー出力計算に使用される畳み込みニューラルネットワーク等、各タスクについてニューラルネットワークのタイプを最適に選択することが可能になる。さらに、ネットワークの設計及びパフォーマンスは明確かつ分析が容易である。開示された技術では、各ネットワークは、制御動作空間の別々の部分を探索し、各ネットワークは、他のネットワークから独立して訓練される。従って、各ネットワークのパフォーマンスは、他のネットワークからの出力を考慮せずに個別に分析できる。ネットワークの分離又はモジュール化は、最大マージン法を使用して、あるネットワークのグループ化された次元の組をエンコードし、他を非表示にすることで可能になる。
【0104】
これまでの説明を通じて、様々なコンピュータ及び制御装置が記載され暗示された。これらのコンピュータ及び制御装置のソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つ又は複数のコンピューティングデバイスで実行されることを理解されたい。特に、これには、物品の把持を実行するロボットを制御するロボット制御装置110と、コンピュータ120と、ニューラルネットワークの訓練及び推定/実行に使用される他の任意のコンピュータとに含まれるプロセッサが含まれる。具体的には、コンピュータ内のプロセッサは、把持学習又は他のニューラルネットワークアプリケーションのための、前述の開示を通して説明された方法で、画像解析、ニューラルネットワークの訓練及び実行を行うように構成される。
【0105】
開示された高次元ニューラルネットワークのモジュール化技術の複数の例示的な態様及び実施形態が説明されたが、当業者は、それらの修正、並べ替え、追加及びサブコンビネーションを認識するであろう。従って、添付の特許請求の範囲及び請求項は、それらの真の精神及び範囲内にあるそのような修正、並べ替え、追加及びサブコンビネーションの全てを含むと解釈すべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】