以下、図面を参照して本発明を実施するための各実施の形態について説明する。なお、以下では本発明の目的を達成するための説明に必要な範囲を模式的に示し、本発明の該当部分の説明に必要な範囲を主に説明することとし、説明を省略する箇所については公知技術によるものとする。
初めに、本発明の実施の形態に係る学習対象としての、いわゆるバラ積みピッキングについて簡単に説明を行う。バラ済みピッキングとは、例えば図5に記載されているように、箱状のトレーTR内に複数のワークWが乱雑に積み重ねられ(バラ積みされ)、これを2次元撮像装置IDからの情報等に基づいてロボットハンドRによって1個(場合によっては複数個)ずつ把持・運搬するものである。このバラ積みピッキングに際しては、ロボットハンドRによってどのワークWのどの位置を把持するのかが、ピッキング作業を成功させるための極めて重要な要素である。そのため、当該位置を特定するために、従来から、例えば特許文献1に記載されたような3次元計測器を利用する等、様々な手法が検討されている。
本発明者らは、上記バラ積みピッキングを、人手を要することなく実現するに際し、複雑で高コストな設備を新たに要することなく機械学習を実行する方法を種々検討した結果、構造が単純で安価な2次元撮像装置で取得可能な2次元撮像画像データを利用した機械学習に想到し、本発明に至ったものである。
ところで、例えば特許文献1に記載された機械学習装置は、ワークの配置やロボットの動作を実際に行うことで機械学習のための学習用データセット(以下、単に「データセット」ともいう。)を収集している。しかし、この方法では1つのデータセットを得るために、その都度一連の準備を必要とし、またロボットアームRの動作時間も必要であることから、比較的多くの時間を要する。データセットは複数個準備する必要があることから、結果として、十分な機械学習を実行するための準備に要する時間が長期となる傾向にある。本発明においても、既存の機械学習装置と同様、一般に学習用データセットの量に比例して高い精度の推論が可能な学習モデルが得られることから、このような高精度の推論が可能な学習モデルを得るためには学習用データセットはできるだけ多い方が好ましい。そこで、本発明の第1の実施の形態においては、この課題を解決する手段として、機械学習に際してシミュレータを用いる構成をさらに採用している。ただし、下記本発明の実施の形態において用いられるシミュレータを使用することなく、実際にワークの配置やロボットハンドの動作を実行することで複数のデータセットを取得するようにしても、本発明の主たる課題(ロボットハンドによるワークの把持・運搬動作の自動化を簡略な構成で実現すること)を解決できることは、当業者であれば容易に理解できることである。したがって、本発明においてはシミュレータの使用は任意である。
<機械学習システム>
図1は、本発明の第1の実施の形態に係る機械学習システムを示す概略図である。この機械学習システム1は、シミュレータ2と、機械学習装置3とを含む。なお、シミュレータ2と機械学習装置3とは別々のコンピュータ等に内蔵されていても良いし、異なるコンピュータ等に内蔵されていても良い。
<シミュレータ>
シミュレータ2は、ユーザ等により予め指定された所定の条件の下でバラ積みピッキングを実施した場合の各種情報を得るための装置である。このシミュレータ2は、情報処理部21と、条件記憶部22と、二次元撮像画像データ取得部23と、3次元座標データ取得部24と、データセット生成部25と、送信部26とを含む。
情報処理部21は、後述する条件記憶部22に記憶された各種条件に基づいて3次元で構成される仮想の作業領域VWAを生成し、この仮想の作業領域VWA内に形成されたワークW及びロボットハンドR等の3次元のグラフィックモデルを内部で動作させることにより、バラ積みピッキングのシミュレート演算を実行するものである。仮想の作業領域VWAの設定条件は、この仮想の作業領域VWAが、後述する機械学習装置3により生成される学習済モデルが実際に適用される作業環境、例えば図5に示すような現実の作業領域RWAと同様の領域となるよう、設定されている。なお、具体的な演算手法自体についてはシミュレータの技術分野において実施されている周知の方法を用いることができるので、ここでは詳細な説明を省略する。また、図1においては、理解を容易にする目的で、情報処理部21において仮想される仮想の作業領域VWAを示している。このような仮想の作業領域VWAの3次元モデルは、必要に応じ、図示しない表示手段等を介してユーザに対して視認可能とすることができる。なお、シミュレーションの具体的な方法については上記の方法に限らず、シミュレータの技術分野において周知である他の方法を採用することも可能である。
条件記憶部22は、仮想の作業領域VWAを構築するための各種条件、例えばロボットハンドRの構造やワークWの形状、2次元撮像装置IDの画角等の情報を記憶するための記憶領域である。この条件記憶部22に記憶された各種条件は、ユーザ(オペレータ)により図示しない入力手段等を介して任意に設定されるものである。
2次元撮像画像データ取得部23は、仮想の作業領域VWA内に設置された2次元撮像装置IDの3次元モデルによって撮像される2次元撮像画像データを取得するものである。ここで、2次元撮像装置IDの3次元モデルは、条件記憶部22に記憶された条件に基づいて配置や画角が定められており、例えば図1に示されているように、仮想の作業領域VWAの上方に、複数のワークWがバラ積みされたトレーTRの内部全体が漏れなく視認可能な画角で支持されている。本発明においては、2次元撮像装置ID(の3次元モデル)により取得されるデータが、特許文献1に記載されているような3次元計測器を用いた3次元データ等ではなく、構造が単純で比較的安価な1つのカメラ等でも取得可能な2次元撮像画像データである点が特徴的な構成の1つである。このように構造が単純で比較的安価なカメラ等からなる2次元撮像装置IDを1つのみ用いることで、簡単な構成によりバラ積みピッキングを実現でき、また、このような2次元撮像装置IDであれば既存の作業領域においても通常備えていることが多いため、これらを流用することが可能となり、結果、ほとんどの場合において、既存の作業領域内に本発明の技術を導入しようとする際には別途の設備投資を伴うことがない。
3次元座標データ取得部24は、仮想の作業領域VWA内のロボットハンドRの3次元モデルが、同じく仮想の作業領域VWA内のワークWの1つ(場合によっては複数)の把持に成功したときのロボットハンドRの把持位置を表す3次元の座標データを取得するものである。ここで、3次元座標データとは、図1等に示すように、ロボットハンドRの前後方向をx、左右方向をy、上下方向をzとした場合の(x、y、z)座標を示すものである。なお、この座標表記の基準となる座標系としてはどのようなものを採用しても良く、例えばベース座標系や、ワールド座標系、カメラ座標系等を採用することができる。
データセット生成部25は、2次元撮像画像データ取得部23及び3次元座標データ取得部24がそれぞれ取得した2次元撮像画像データ及び3次元座標データを、共通するシミュレート演算結果として出力されたもの同士を1つのデータセットとして関連付けるためのものである。このデータセット生成部25は、データセットの生成のみならず、生成したデータセットの一時的な記憶等を行えるものとしても良い。
送信部26は、データセット生成部25によって生成されたデータセットを、後述する機械学習装置3のデータセット取得部31へ送信するためのものである。この送信の具体的な方法は、シミュレータ2と機械学習装置3との接続状態に合わせて適宜調整することができる。また、送信のタイミングについても、随時あるいは生成されたデータセットの数が所定数に達した時等、適宜設定することが可能である。
次に、図2を参照し、上述したシミュレータ2による一連のシミュレート演算の工程について以下に説明する。図2は、本発明の第1の実施の形態に係るシミュレータ2のシミュレート演算工程を示すフローチャートである。図2に示す通り、本発明の第1の実施の形態に係るシミュレータ2は、以下の工程を実行する。
シミュレータ2が起動しシミュレート演算の動作が開始すると、先ず、条件記憶部22に記憶された条件に基づいて、情報処理部21にてロボットハンドRの3次元グラフィックモデル等を含む仮想の作業領域VWAを生成する。そして、仮想の作業領域VWA内に予め定められた位置及び画角で設置された2次元撮像装置IDから撮像した2次元撮像画像データを生成する(ステップS11)。ここで生成された2次元撮像画像データは撮像データ取得部23で取得され(一時的に)格納される。2次元撮像画像データが生成されると、次に、この撮像されたトレーTR内のワークWに対してロボットハンドRの3次元モデルを動作させて、ワークWの把持動作に係るシミュレート演算を実行する(ステップS12)。ここで行われるシミュレート演算に際しては、バラ積みピッキングの技術分野において採用されている種々の方法を適用することが可能であることは特に留意すべき点である。詳しく言えば、例えば仮想の作業領域VWA内に特許文献1に記載されたような3次元計測器を配置し、当該3次元計測器の3次元データを利用したり、図示しない入力手段を利用したオペレータによるティーチングを部分的に利用したり、あるいは種々のセンサを利用したりすることが許容される。要するに、このシミュレータ2によるシミュレート演算工程において重要なことは、撮像されたトレーTR内にバラ積みされたワークWの把持に成功した際の各種データを取得することであるため、その手法は何ら限定されない。
上述した把持動作の結果、把持が失敗した場合(ステップS13でNo)には、当該2次元撮像画像データは消去され(ステップS14)、再び2次元撮像画像データが生成し直される(ステップS11)。ステップS14において2次元撮像画像データが消去されるのと同じタイミングで、バラ積みされたワークWの配置をランダムに変更することができる。これにより、種々の配置のワークWに対するデータを取得することができる。なお、本実施例においては把持が失敗する毎に直近の2次元撮像画像データを削除した上、2次元撮像画像データを生成し直すこととしたが、2次元撮像画像データを削除及び生成し直すことなく(つまり、ステップS14及びその後のステップS11に示す処理を実行することなく)、シミュレート演算(ステップS12)を繰り返し実行しても良い。すなわち、把持動作が失敗した場合に、仮想の作業領域VWAにおけるワークWの配置を、直近に生成された2次元撮像画像データで撮像されたワークWの配置に戻したのち、引き続き把持動作を実行しても良い。
上述した把持動作の結果、把持が成功した場合(ステップS13でYes)には、次に、把持した時点のロボットハンドRの3次元座標データを取得する(ステップS15)。3次元座標データを取得するロボットハンドRの具体的な部位は、任意に決定することが可能であるが、例えばロボットハンドRのエンドエフェクタ54(図5参照。)の重心位置P(図5参照。)の位置座標を、この3次元座標データとして取得することが可能である。
次に、データセット生成部25により、ステップS15で取得した3次元座標データと、ステップS11において2次元撮像画像データ取得部23で取得され格納された直近の2次元撮像画像データとを、1つのデータセットとして特定する(ステップS16)。これにより、ワークWの把持動作が成功した際のロボットハンドRの3次元座標データと、この把持動作が成功した際の把持動作開始前のワークWの状態を示す2次元撮像画像データとが1対1の関係で関連付けられ、データセットが生成される。そして、特定されたデータセットは、送信部26により機械学習装置3へ送信される(ステップS17)。
上述した一連のシミュレート演算工程は、後述する機械学習装置3において必要とされるデータセットの量に至るまで繰り返し実行される。しかし、一連のシミュレート演算工程はシミュレータ2内で実行される工程であるため、実際にロボットハンドRを動作させてデータセットを収集する場合に比べて極めて短時間で所望の数のデータセットの収集が可能である。また、シミュレータ2内のロボットハンドR等の3次元モデルは当然ながら経年劣化しないため、安定した環境でデータの収集を実施することができる。
<機械学習装置>
次に、シミュレータ2により生成されたデータセットを用いて機械学習を行う機械学習装置3について、以下説明を行う。機械学習装置3は、図1に示すように、データセット取得部31と、データセット記憶部32と、学習部33と、学習済モデル記憶部34とを含む。
データセット取得部31は、シミュレータ2の送信部26から送信されたデータセットを取得するものである。送信部26とデータセット取得部31との接続関係については適宜変更可能であり、有線又は無線通信を介してローカルに、あるいはインターネットを介して接続していても良いし、携帯可能な記憶媒体を介してデータ送信が行われるものであってもよい。
データセット記憶部32は、データセット取得部31で取得したデータセットを記憶するための記憶領域である。
学習部33は、データセット記憶部32に記憶された複数組のデータセットを教師データとして機械学習を実行するものである。また、学習済モデル記憶部34は、学習部33で生成された学習済モデルを記憶するための記憶領域である。学習部33で実行される機械学習について、以下に説明する。
図3は、本発明の第1の実施の形態に係る機械学習装置において実施される教師あり学習のためのニューラルネットワークモデルの例を示す図である。図3に示すニューラルネットワークモデルにおけるニューラルネットワークは、入力層にあるl個のニューロン(x1〜xl)、第1中間層にあるm個のニューロン(y11〜y1m)、第2中間層にあるn個のニューロン(y21〜y2n)、及び出力層にある3個のニューロン(z1〜z3)から構成されている。第1中間層及び第2中間層は、隠れ層とも呼ばれており、ニューラルネットワークとしては、第1中間層及び第2中間層の他に、さらに複数の隠れ層を有するものであってもよく、あるいは第1中間層のみを隠れ層とするものであってもよい。
また、入力層と第1中間層との間、第1中間層と第2中間層との間、第2中間層と出力層との間には、層間のニューロンを接続するノードが張られており、それぞれのノードには、重みwi(iは自然数)が対応づけられている。
本実施の形態に係るニューラルネットワークモデルにおけるニューラルネットワークは、データセット記憶部32内に記憶された複数組のデータセットを用いて、2次元撮像画像データと3次元座標データとの相関関係を学習する。具体的には、2次元撮像画像データを複数のデータに分割し、分割した複数のデータを状態変数として、各状態変数と入力層のニューロンを対応付け、出力層にあるニューロンの値を、一般的なニューラルネットワークの出力値の算出方法、つまり、出力側のニューロンの値を、当該ニューロンに接続される入力側のニューロンの値と、出力側のニューロンと入力側のニューロンとを接続するノードに対応づけられた重みwiとの乗算値の数列の和として算出することを、入力層にあるニューロン以外の全てのニューロンに対して行う方法を用いることで、算出する。なお、状態変数を入力層のニューロンに対応付けるに際し、状態変数として取得した情報をどのような形式として対応付けるかは、生成される学習済モデルの精度等を考慮して適宜設定することができる。例えば、2次元撮像画像データを状態変数として入力層に対応付けるに際し、画像データをビット単位で分割した上で、分割された各ビットの色値(例えばRGB値)情報を入力層にそれぞれ対応付けることができる。
そして、算出された出力層にある3つのニューロンz1〜z3の値、すなわち本実施の形態においてはロボットハンドRの3次元座標データと、データセット内の、同じくロボットハンドRの3次元座標データからなる教師データt1〜t3とを、それぞれ比較して誤差を求め、求められた誤差が小さくなるように、各ノードに対応づけられた重みwiを調整する(バックプロバケーション)ことを反復する。
そして、上述した一連の工程を所定回数反復実施すること、あるいは前記誤差が許容値より小さくなること等の所定の条件が満たされた場合には、学習を終了して、そのニューラルネットワークモデル(のノードのそれぞれに対応づけられた全ての重みwi)を学習済モデルとして学習済モデル記憶部34に記憶する。
学習済モデル記憶部34に記憶された学習済モデルは、要求に応じて、インターネット等の通信手段や記憶媒体を介して実システムへ適用される。実システム(データ処理システム)に対する学習済モデルの具体的な適用態様については、後に詳述する。
<機械学習方法>
上述の機械学習装置3に関連して、本発明は、機械学習方法をも提供する。図4は、本発明の第1の実施の形態に係る機械学習方法を示すフローチャートである。この機械学習方法はコンピュータを用いることで実現されるものであるが、コンピュータとしてはパーソナルコンピュータやサーバ装置等、種々のものが適用可能である。
本発明に係る機械学習方法としての教師あり学習を実行する場合には、先ず、任意の初期値の重みを備えた学習前モデルを準備する(ステップS21)。次いで、データセット記憶部32に記憶された複数組のデータセットのうちの1つを取得し(ステップS22)、取得したデータセットのうちの2次元撮像画像データを学習前モデルの入力層x1〜xl(図3参照。)に対応付けて出力層z1〜z3(図3参照。)を生成する(ステップS23)。
ここで、ステップS23において生成された出力層を構成する3次元座標データは、学習前モデルによって生成されたものであるため、ほとんどの場合、ユーザの要求を満たす、すなわちワークWを把持できるような座標データではない。そこで、次に、ステップS22において取得された1つのデータセットのうちの3次元座標データとステップS23において生成された出力層を構成する3次元座標データとを用いて、機械学習を実施する(ステップS24)。ここで行う機械学習とは、データセットのうちの3次元座標データと出力層を構成する3次元座標データとを比較し、両者の誤差を検出し、この誤差が小さくなるような出力層が得られるよう、学習前モデル内の各ノードに対応付けられた重みを調整することによる機械学習(バックプロバケーション)を実施するものである。
ステップS24において機械学習が実施されると、さらに機械学習を継続する必要があるか否かを特定し(ステップS25)、機械学習を継続する場合(ステップS25でNo)にはステップS22に戻り、機械学習を終了する場合(ステップS25でYes)には、ステップS26に移る。機械学習を継続する場合(ステップS25でNo)には、上述したステップS22〜S24の工程を複数回、例えばデータセット記憶部32内に記憶された全てのデータセットの数と同じ回数実施することとなる。通常は、その回数に比例して、最終的に生成される学習済モデルの精度は高くなる。
機械学習を終了する場合(ステップS25でYes)には、学習モデルの各ノードに対応付けられた重みが一連の工程によって調整され生成されたニューラルネットワークを学習済モデルとして学習済モデル記憶部34に記憶し(ステップS26)、一連の学習プロセスを終了する。ここで記憶された学習済モデルが、後述する種々のデータ処理システムに適用され使用される。
上述した機械学習装置の学習プロセス及び機械学習方法においては、1つの学習済モデルを生成するために、1つのニューラルネットワーク(学習前モデル)に対して複数回の機械学習処理を繰り返し実行することで学習モデルを学習し、データ処理システムに適用可能な程度までその精度を向上させた学習済モデルを生成するものを説示しているが、本発明はこのような取得方法に限定されない。例えば、所定回数の機械学習を実施した学習済モデルを一候補として複数個学習済モデル記憶部34に格納しておき、この複数個の学習済モデル群に、妥当性判断用のデータセットを入力して(対応付けて)出力層(のニューロンの値)を生成し、出力層で特定された3次元座標データとデータセット内の3次元座標データとを比較検討して、データ処理システムに適用する最良の学習済モデルを1つ選定するようにしてもよい。なお、ここで用いられる妥当性判断用のデータセットは、学習に用いたデータセットと同様に2次元撮像画像データと3次元座標データを有し、且つ異なるデータからなるものであればよい。
以上説明した通り、上述した機械学習装置3の学習プロセス及び機械学習方法により生成された学習済モデルは、一連の工程から理解できるとおり、2次元撮像装置IDにより撮像された2次元撮像画像データが入力されると、ロボットハンドRの1つの3次元座標データを出力することができる。つまり、この学習済モデルを用いて、バラ積みピッキングを人手を要することなく実現可能なデータ処理システムを提供する際には、入力層への入力データは2次元撮像画像データのみでよい。したがって、この学習済モデルを用いたデータ処理システムにあっては、3次元計測器等の複雑な装置を要しないため、バラ積みピッキングを簡略な構成で実現でき、ひいては低コストで技術導入を実現できる。また、機械学習に用いるデータセットの生成にシミュレータ2を用いることで、大量のデータセットを短期間で収集することが可能となり、所望の学習済モデルを短時間で生成することができる。
なお、学習済モデルの入力層に対応付ける状態変数を2次元撮像画像データのみと述べたが、この2次元撮像画像データをどのような形式で入力層に対応付けるかについては適宜調整が可能である。例えば2次元撮像装置IDによる撮像された2次元撮像画像データの原データを、入力層に対応付けるために所定の前処理を実行して適宜調整することが可能である。また、本発明の機械学習装置における状態変数は、生成される学習済モデルに直接影響する重要な要素であるが、本発明の機械学習装置等における状態変数を、上述の2次元撮像画像データのみに特定し、他のデータの利用を完全に排除することを意図しているわけではない。例えば、生成される学習済モデルへの影響が、上述の実施の形態において採用したデータに比して十分に小さいデータが状態変数として追加された機械学習装置等は、実質的に本発明の技術思想を逸脱するものではないから、本発明の技術的範囲に包含されるといえる。
さらに、本実施の形態に係る機械学習方法は、当該機械学習方法により得られる学習済モデルを適用する現実の作業領域の変更に伴って逐次実行することが好ましい。バラ積みピッキングの把持成功率はワークの形状や2次元撮像装置の画角、ロボットハンドの機能等に大きく依存するものであり、例えばワークの形状のみが変更した場合でも変更前後で学習済モデルを変更しないと把持成功率は著しく低下する場合が多いためである。この場合においても、本発明の第1の実施の形態に係る機械学習システムはシミュレータを用いるため、新たな学習済モデルを生成する際にはシミュレータ及び機械学習装置を再度動作させるだけでよい。したがって、ユーザは新たな学習済モデルを得るための時間やコストを気にすることなく機械学習による学習済モデルの生成を実施することができ、最適な学習済モデルを常に短時間且つ低コストで利用することが可能となる。
<データ処理システム>
次に、本発明の第1の実施の形態に係るデータ処理システムについて説明を行う。このデータ処理システムは、上述した機械学習システム、機械学習装置あるいは機械学習方法により生成された学習済モデルを用いて、現実の作業領域におけるバラ積みピッキングを、人手を要することなく実現するためのシステムを構成している。当該データ処理システムは、具体的には、図5に記載されているようなロボットハンドR等を制御するためのロボットコントローラ100に適用される。
図5は、本発明の第1の実施の形態に係るデータ処理システムが適用される現実の作業領域を示した概略図である。図5に示す通り、現実の作業領域RWAにおける各種構成の構造及び配置については、上述したシミュレータ内で生成される仮想の作業領域VWAで規定されている構造及び配置と同一であることは特に留意すべきである。これらが同一であることは、機械学習システム1を用いて機械学習を行う際に、現実の作業領域RWAに関する情報を収集し、この情報をシミュレータ2における条件として取得し、条件記憶部22内に記憶して、仮想の作業領域VWAを生成する際に参照したことに起因する。このように現実の作業領域RWAと仮想の作業領域VWAとを同一とすることによって、仮想の作業領域RWAを基準として機械学習が行われて生成された学習済モデルが、現実の作業領域RWAにおいて極めて有効に動作できるものとなる。
現実の作業領域RWAには、主に、トレーTRと、複数個のワークWと、2次元撮像装置IDと、ロボットハンドRと、ロボットコントローラ100とが配されている。
トレーTRは、箱型の形状からなり、内部に複数個のワークWを収容し、上部に形成された開口からワークWへのアクセスが可能となったものである。なお、トレーTRの形状については何ら限定されるものではなく、例えば周壁が上方に向かって広がるテーパ形状となっているものや、周壁がワークWと比較して十分に低いもの等が採用できる。
複数個のワークWは、所定の形状を備え、トレーTR内に乱雑に配置されている。ワークWとしては、種々の機械部品等が適用できるため、その形状についても種々の形状が想定できるが、図5においては直方体形状を備えたワークWを例示している。
2次元撮像装置IDは、2次元撮像画像データで取得可能な撮像装置であって、例えばネットワークに接続して撮影した2次元撮像画像データを当該ネットワークへ送出することができる1台のWEBカメラによって実現されるものである。この2次元撮像装置IDは、トレーTRの斜め上方位置に固定され且つトレーTRの内部全体が漏れなく撮像できる画角に設定されている。
ロボットハンドRは、トレーTRの近傍に配置され、トレーTR内のワークWを把持するものである。本実施の形態においてはロボットハンドRの一例として垂直多関節ロボットについて説明を行うが、ロボットの種類については何ら限定されるものではない。例えば水平多関節ロボットやパラレルリンクロボット、直交座標ロボット、円筒座標ロボット等、バラ積みピッキングに適用可能なロボットであれば適宜採用することができる。
このロボットハンドRは、ベース51と、下リンクアーム52と、上リンクアーム53と、エンドエフェクタ54と、複数のジョイント55〜57とから構成される。これらで構成されるロボットハンドRは、軸数が6(ベース部51の旋回θ1、各ジョイント55〜57の回転θ2〜θ4、上リンクアームの旋回θ5及びエンドエフェクタ54の旋回θ6)である。また、エンドエフェクタ54には、例えばグリッパを適用することが可能であるが、ワークWの形状等を考慮して適宜変更することができ、例えば多指ハンドや吸着タイプのもの等を採用することも可能である。その他、ロボットハンドRの詳細な構成については、周知の垂直多関節ロボットの構成を採用可能であるので、ここでは説明を省略する。
ロボットコントローラ100は、ロボットハンドR及び2次元撮像装置IDに接続されてこれらを制御するためのものである。このロボットコントローラ100は、2次元撮像装置制御部110と、ロボットハンド制御部120と、主記憶部130と、推論部140とを含む。
2次元撮像装置制御部110は、本発明のデータ処理システムにおける取得部に対応する構成であって、2次元撮像装置IDを制御して所望のタイミングで2次元撮像画像データを取得するためのものである。この2次元撮像装置制御部110により取得された2次元撮像画像データは、後述する推論部120に送られて学習済モデルの入力層に対応付けられる。
ロボットハンド制御部120は、後述する推論部140により特定された3次元座標データに基づいてロボットハンドRの各軸を動作させることで、ワークWの把持を行うべくロボットハンドRを制御するためのものである。
主記憶部130は、現実の作業領域RWAにおいてワークWのピッキング作業を実現するための種々のデータを格納しておくための記憶領域であり、その内部には少なくとも学習済モデル格納部131を備えている。学習済モデル格納部131は、上述した本発明の第1の実施の形態に係る機械学習システム、機械学習装置及び機械学習方法を経て生成された学習済モデルを格納するための記憶領域である。この学習済モデル格納部131内には、現実の作業領域RWAの環境変化に合わせて逐次作成された複数の学習済モデルが格納されていることが好ましく、この場合には、後述する推論部140においては、現実の作業領域RWAの状況に合わせてこれら複数の学習済モデルから適当なものを選択・使用することができる。
推論部140は、2次元撮像装置制御部110により取得された2次元撮像画像データと、学習済モデル格納部131内の1つの学習済モデルとを用いて、ロボットハンドRの所望の3次元座標データを推論するものである。詳しくは、現実の作業領域RWAの状況に則した学習済モデルを学習済モデル格納部131内から参照し、2次元撮像装置制御部110により取得された2次元撮像画像データを、この参照した1つの学習済モデルの入力層に対応付けることで、出力層にワークWを把持可能なロボットハンドRの3次元座標データを出力するものである。
以上の構成を備えるロボットコントローラ100を制御してワークWのピッキングを行う場合の一連の工程について、図5及び図6を参照して以下に説明する。図6は、本発明の第1の実施の形態に係る現実の作業領域におけるバラ積みピッキング工程を示すフローチャートである。
図5に示す現実の作業領域RWAにおいて、バラ積みピッキング動作が開始されると、初めに、2次元撮像装置制御部110により撮像装置IDが動作されてトレーTR内を撮像した2次元撮像画像データが取得される(ステップS31)。次いで、推論部140が、図示しない入力手段からのオペレータによる入力情報や、主記憶部130に格納された2次元撮像装置ID及びロボットハンドRに関する機能情報等に基づいて、学習済モデル格納部131に格納された1乃至複数の学習済モデルから1つの学習済モデルを特定する(ステップS32)。
学習済モデルが特定されると、推論部140はこの特定された学習済モデルを参照し、当該学習済モデルの入力層に、ステップS31において2次元撮像装置制御部110が取得した2次元撮像画像データを対応付け、学習済モデルを用いた推論(データ処理)を実行し、出力層としてワークWを把持可能なロボットハンドRの一の3次元座標データを出力する(ステップS33)。この出力された3次元座標データはロボットハンド制御部120に送られ、ロボットハンド制御部120はこの3次元座標データが示す位置にロボットハンドRの所定部位(例えばエンドエフェクタ54の重心位置P)を位置させるべく、ロボットハンドの6つの軸を駆動させてワークWの把持を試みる(ステップS34)。なお、ワークWを把持した後にどのような動作(運搬等)を行うかについては、その制御自体は比較的簡単なものであるため、ロボットハンド制御部120に適宜設定しておけば機械学習等を要することなく実現できる。よって本発明においてはワークWを把持した後の作業については説明を省略する。
以上説明した通り、本発明の第1の実施の形態に係るデータ処理システムを適用したバラ積みピッキングにおいては、単純な構造のカメラ等からなる2次元撮像装置IDが撮像した画像データのみからワークWを把持可能なロボットハンドRの3次元座標データを推論することができるため、人手を要することのないバラ積みピッキングを簡略な構成で実現することができる。なお、上記第1の実施の態様において、ステップS34において把持を試みた結果を認識し、当該結果とその時に推論部140において用いた2次元撮像画像データと推論部140が出力した3次元座標データとを、学習用データセットとして活用すると更に好ましい。この場合は、ロボットコントローラ100の内部あるいは外部に上述した機械学習装置3を設け、この機械学習装置3で前記学習用データセットを用いて機械学習を実行し、結果として得られた学習済モデルに学習済モデル格納部131内のデータを更新すればよい。このようにすれば、仮想の作業領域VWAを用いた把持結果のみならず、現実の作業領域RWAでの把持結果をも学習に用いることができ、学習済モデルの精度をさらに向上させることができる。
<第2の実施の形態>
上述した第1の実施の形態においては、学習済モデルの出力層は3次元座標データを出力するものについて説明を行った。しかし、ロボットハンドRの形状(特にエンドエフェクタ54の形状)によっては、3次元座標データのみではワークWの把持に失敗する場合がある。すなわち、例えばロボットハンドRが図5に例示された垂直多関節ロボットのように自由度の高いロボットであって、且つエンドエフェクタ54の横方向あるいは上下方向の長さが(上リンクアーム52の横方向あるいは上下方向に比して)長尺な外形形状をしている場合等には、ロボットハンドRが学習済モデルが出力した3次元座標データへ移動する途中で、この長尺なエンドエフェクタ54の一部がワークWに接触してワークWの配置が変化し、結果、ワークWの把持が失敗するという状況が起こることが想定できる。
以上の点に鑑み、以下には、エンドエフェクタの形状等に関わらずワークの把持を実現するべく、本発明の第2の実施の形態として、その出力層が出力するデータとして、3次元座標データに加えてロボットハンドRの角度データをも出力できるようにした、機械学習システム、機械学習装置、機械学習方法及びデータ処理システムについて、説明を行う。図7は、本発明の第2の実施の形態に係る機械学習システムを示す概略図である。なお、以下に示す第2の実施の形態に係る機械学習システム、機械学習装置、機械学習方法及びデータ処理システムについては、上述した第1の実施の形態と異なる点を中心に説明し、第1の実施の形態と共通する構成等については同一の符号を付してその説明を省略するものとする。
本願の第2の実施の形態に係る機械学習システム1Aは、図7に示すように、シミュレータ2Aと、機械学習装置3Aとを含む。そして、シミュレータ2Aは、第1の実施の形態に係るシミュレータ2が備える一連の構成に加えて、さらに角度データ取得部27を備えている。
角度データ取得部27は、仮想の作業領域VWA内のロボットハンドRの3次元モデルが、同じく仮想の作業領域VWA内のワークWの1つ(場合によっては複数)の把持に成功したときのロボットハンドRの手元部分(エンドエフェクタ54と場合によっては上リンクアーム52で構成される部分)の角度(姿勢)データを取得するためのものである。ここで、角度データとは、図7に示すx軸に対するロボットハンドRの手元部分のなす角度RX、以下同様に、y軸に対するロボットハンドRの手元部分のなす角度RY、z軸に対するロボットハンドRの手元部分のなす角度RZとした場合の(RX、RY、RZ)からなるものである。なお、本実施の形態においては角度データを(RX、RY、RZ)からなるものとして説明するが、このような3次元の角度データに代えて、2次元(例えば、RX、RYのみ)、あるいは1次元(例えば、RXのみ)の角度データを採用することも可能である。角度データとして規定する数値の数を減らすと、後述する機械学習において、十分な精度を有する学習済モデルを得るために必要なデータセット数を減らすことができる。また、本実施の形態においては角度データを(RX、RY、RZ)と規定しているが、当該データはロボットの各軸(θ1〜θ6)のなす角度によって特定されるものであるため、この(RX、RY、RZ)で表記される角度データに代えて、ロボットハンドRの所定数の軸のなす角度を用いることも可能である。
次に、図8を参照し、上述したシミュレータ2Aによる一連のシミュレート演算の工程について以下に説明する。図8は、本発明の第2の実施の形態に係るシミュレータ2Aのシミュレート演算工程を示すフローチャートである。図8に示す通り、本発明の第2の実施の形態に係るシミュレータ2Aは、以下の工程を実行する。
シミュレータ2Aが起動しシミュレート演算の動作が開始すると、先ず、条件記憶部22に記憶された条件に基づいて、情報処理部21にてロボットハンドRの3次元グラフィックモデル等を含む仮想の作業領域VWAを生成する。そして、仮想の作業領域VWA内に予め定められた位置及び画角で設置された2次元撮像装置IDから撮像した2次元撮像画像データを生成する(ステップS41)。ここで生成された2次元撮像画像データは撮像データ取得部23で取得され(一時的に)格納される。2次元撮像画像データが生成されると、次に、この撮像されたトレーTR内のワークWに対してロボットハンドRの3次元モデルを動作させて、ワークWの把持動作に係るシミュレート演算を実行する(ステップS42)。
上述した把持動作の結果、把持が失敗した場合(ステップS43でNo)には、直近に生成された2次元撮像画像データは消去され(ステップS44)、ステップS41において再び2次元撮像画像データが生成し直される。また、上述した把持動作の結果、把持が成功した場合(ステップS43でYes)には、次に、把持した時点のロボットハンドRの3次元座標データと角度データとを取得する(ステップS45及びS46)。なおステップS45とステップS46の実行タイミングについては、何れが先でも、あるいは同時であっても良い。また、3次元座標データ及び角度データを取得するロボットハンドRの具体的な部位は、エンドエフェクタ54の任意の位置(例えば図5に示すエンドエフェクタ54の重心位置P)とすると良い。さらに、上記第1の実施の形態と同様、ステップS44及びその後のステップS41については、省略することが可能である。
ワークWを把持した時点のロボットハンドRの3次元座標データ及び角度データを取得すると、データセット生成部25が、ステップS45で取得した3次元座標データ及びステップS46で取得した角度データと、ステップS41において2次元撮像画像データ取得部23で取得され格納された直近の2次元撮像画像データとを、1つのデータセットとして特定する(ステップS47)。これにより、ワークWの把持動作が成功した際のロボットハンドRの3次元座標データ及び角度データと、この把持動作が成功した際の把持動作開始前のワークWの状態を示す2次元撮像画像データとが1対1対1の関係で関連付けられ、データセットが生成される。そして、特定されたデータセットは、送信部26により機械学習装置3Aへ送信される(ステップS48)。
次に、シミュレータ2Aにより生成されたデータセットを用いて機械学習を行う機械学習装置3Aについて、以下説明を行う。機械学習装置3Aが備える構成については、図7を見ればわかるとおり、上述した第1の実施の形態に係る機械学習装置3と同様であり、機械学習の内容及びそれに関連するデータの内容のみが第1の実施の形態とは異なっている。
図9は、本発明の第2の実施の形態に係る機械学習方法を示すフローチャートである。ここに示す機械学習方法はコンピュータを用いることで実現されるものであり、また、上述した第2の実施の形態に係る機械学習装置3Aによって実施されるものでもある。
第2の実施の形態に係る機械学習方法は、図9に示すように、先ず、任意の初期値の重みを備えた学習前モデルを準備する(ステップS51)。次いで、データセット記憶部32に記憶された複数組のデータセットのうちの1つを取得し(ステップS52)、取得したデータセットのうちの2次元撮像画像データを学習前モデルの入力層に対応付けて出力層を生成する(ステップS53)。
次に、ステップS52において取得された1つのデータセットのうちの3次元座標データ及び角度データとステップS53において生成された出力層を構成する3次元座標データ及び角度データとを用いて、機械学習を実施する(ステップS54)。ステップS54において機械学習が実施されると、さらに機械学習を継続する必要があるか否かを特定する(ステップS55)。特定の結果、機械学習を継続する場合(ステップS55でNo)には、上述したステップS52〜S54の工程を複数回実施する。また、機械学習を終了する場合(ステップS55でYes)には、学習モデルの各ノードに対応付けられた重みが一連の工程によって調整され生成されたニューラルネットワークモデルを学習済モデルとして学習済モデル記憶部34に記憶し(ステップS56)、一連の学習プロセスを終了する。
以上説明した通り、本発明の第2の実施の形態に係る機械学習システム、機械学習装置及び機械学習方法においては、上記第1の実施の形態に係る機械学習システム、機械学習装置及び機械学習方法が奏する効果に加えて、以下の効果をさらに奏する。すなわち、これらの機械学習システム、機械学習装置及び機械学習方法は、3次元座標データに加えて角度データをも出力することが可能な学習済モデルを生成することができるため。ロボットハンドの形状を問わずに精度の高い把持動作を実現することができ、広範な種類の作業領域に適応可能な機械学習システム、機械学習装置及び機械学習方法を提供することができる。
最後に、上述した第2の実施の形態に係る機械学習システム、機械学習装置あるいは機械学習方法により生成された学習済モデルを用いるデータ処理システムによって実現されるバラ積みピッキングについて、簡単に説明を行う。本実施の形態に係るデータ処理システムによるバラ積みピッキングの一連のデータ処理の流れについては、図6に示す工程と同様であるが、図6のステップS33において推論部140により出力されるデータが3次元座標データのみならず角度データをも出力する点が、第1の実施の形態に係るデータ処理システムとは異なる。そして、これに付随して、図6のステップS34に示すロボットハンドRの制御プロセスに際しても、3次元座標データに加えて角度データも参照され、当該3次元座標データが示す位置に、当該角度データが示す角度(姿勢)で位置するよう、ロボットハンドRの6つの軸を駆動させてワークWの把持を試みる。
以上説明した通り、本発明の第2の実施の形態に係るデータ処理システムを適用したバラ積みピッキングにおいては、複雑な構成を有しない2次元撮像装置IDが撮像した画像データのみからワークWを把持可能なロボットハンドRの3次元座標データ及び角度データを推論することができるため、上述した第1の実施の形態に係るデータ処理システムと同様に、人手を要することのないバラ積みピッキングを簡単な構成を用いて実現することができる。さらに、これに加えて、ロボットハンドRの角度データをも参照することにより、ロボットハンドRの形状、特にエンドエフェクタ54の形状に関わらず常に高精度にワークWの把持が実現できる。
<第3の実施の形態>
上記第1及び第2の実施の形態においては、シミュレータ2、2Aで生成されるデータセットとして、3次元座標データと2次元撮像画像データを1対1の関係で関連付けたもの、あるいは3次元座標データと角度データと2次元撮像画像データを1対1対1の関係で関連付けたものについて説示を行った。しかし、バラ積みピッキングは、ワークがトレー内に複数配されているのが前提であるため、トレー内のワークのうちのいくつかが把持可能な状態である場合や、単一のワークに対しても複数把持可能なポイントが存在する場合が生じ得る。したがって、一の2次元撮像画像データに関連付けられる3次元座標データは1つではなく複数存在する場合が多い。そこで、以下には、本発明の第3の実施の態様として、データセットが一の2次元撮像画像データと複数の3次元座標データ(あるいは複数の3次元座標データ及び角度データのセット)とにより生成される機械学習システム、機械学習装置、機械学習方法及びデータ処理システムについて、説明を行う。
図10は、本発明の第3の実施の形態に係る機械学習システムを示す概略図である。なお、以下に示す第3の実施の形態に係る機械学習システム、機械学習装置、機械学習方法及びデータ処理システムについては、上述した第1の実施の形態と異なる点を中心に説明し、第1の実施の形態と共通する構成等については同一の符号を付してその説明を省略するものとする。
本願の第3の実施の形態に係る機械学習システム1Bは、図10に示すように、シミュレータ2Bと、機械学習装置3Bとを含む。そして、シミュレータ2Bは、第1の実施の形態に係るシミュレータ2が備える一連の構成に加えて、更に2次元撮像画像データ分割部28を備えている。
2次元撮像画像データ分割部28は、情報処理部21の一部を構成しており、2次元撮像画像データ取得部23が取得した2次元撮像画像データを、複数の領域に分割するものである。図11は、本発明の第3の実施の形態に係るシミュレータで生成された2次元撮像画像データの一例を示す概略図である。なお、図11では、説明を容易にするため、2次元撮像画像データ内にワークWが2つのみ配されているものを示している。
図11に示す2次元撮像画像データに対し、2次元撮像画像データ分割部28は、ワークWが配されるトレーTR内の領域を所定の分割領域に区画する。図11においては、4行×4列で格子状に分割し、均等な大きさの計16個の分割領域DA1〜DA16を区画形成した場合を例示している。なお、この分割領域の大きさや数については適宜調整可能である。
次に、図12を参照し、上述したシミュレータ2Bによる一連のシミュレート演算の工程について以下に説明する。図12は、本発明の第3の実施の形態に係るシミュレータ2Bのシミュレート演算工程を示すフローチャートである。図12に示す通り、本発明の第3の実施の形態に係るシミュレータ2Bは、以下の工程を実行する。
シミュレータ2Bが起動しシミュレート演算の動作が開始すると、先ず、条件記憶部22に記憶された条件に基づいて、情報処理部21にてロボットハンドRの3次元グラフィックモデル等を含む仮想の作業領域VWAを生成する。そして、仮想の作業領域VWA内に予め定められた位置及び画角で設置された2次元撮像装置IDから撮像した2次元撮像画像データを生成する(ステップS61)。ここで生成された2次元撮像画像データは撮像データ取得部23で取得され(一時的に)格納される。2次元撮像画像データが生成されると、この生成された2次元撮像画像データを、2次元撮像画像データ分割部28により、図11に示すように、所定の領域に分割して複数の分割領域DA1〜DA16を形成する(ステップS62)。
次に、この撮像されたトレーTR内のワークWに対してロボットハンドRの3次元モデルを動作させて、ワークWの把持動作に係るシミュレート演算を実行するのであるが、本実施の形態において、このシミュレート演算の実行は、形成された分割領域DA1〜DA16のうちの一の分割領域についてのみ実行する(ステップS63)。具体的に言えば、前記一の分割領域として、分割領域DA1が選定された場合は、分割領域DA1内の領域に対してのみロボットハンドRの3次元モデルによるワークWの把持動作が実行され、当該分割領域DA1以外の領域に対してはワークWの把持動作を行わない。
上述した把持動作は、種々の方法を用いて複数回行われる。その上で、把持が成功した場合(ステップS64でYes)には、把持した時点のロボットハンドRの3次元座標データを取得する(ステップS65)。また、把持が失敗した場合(ステップS64でNo)には、ここでシミュレート演算の対象とした分割領域には把持できる箇所がないと判断し、3次元座標データは取得しない。上記の例に示した一の分割領域として分割領域DA1が選定された場合は、図11を見ると分かるとおり、分割領域DA1にはそもそもワークWが存在していないから、ステップS64においては把持が失敗したと判断され(ステップS64でNo)、分割領域DA1内にはワークを把持できる3次元座標が存在しないと特定されることとなる。なお、シミュレート演算において実行される把持動作は複数回実行されるが、ワークWの配置は常に同一である。したがって、把持動作の度にシミュレータ2B内でワークWを元の配置に戻す制御が実行される必要があるが、2次元撮像画像データを生成し直す必要はない。
上述した把持動作が完了すると、シミュレート動作が終了できるかどうかが特定される(ステップS66)。詳しくは、ステップS62において分割された複数の分割領域DA1〜16の全てがシミュレート演算の対象として選定されたか否かを特定する。その結果、シミュレート演算の対象となっていない分割領域が存在する場合(ステップS66でNo)には、ステップS67に移行し、シミュレート演算の対象となっていない分割領域が存在しない場合(ステップS66でYes)には、ステップS68に移行する。ステップS67では、シミュレート演算の対象となっていない分割領域のうちの1つが選定され且つ当該選定された分割領域が次のシミュレート演算の対象と特定された後、ステップS63に戻る。
複数の分割領域に対するシミュレート演算が全て完了すると、ステップS68において、データセット生成部25により、ステップS65で取得した3次元座標データと、ステップS61において2次元撮像画像データ取得部23で取得され格納された2次元撮像画像データとが、1つのデータセットとして特定される。ここで、図11に示す2次元撮像画像データのものを例にとると、複数の分割領域DA1〜DA16のうち、その領域内にワークWが存在しているのは分割領域DA6、DA7、DA10、DA11の4つのみであり、他の分割領域を対象としたシミュレート演算では把持が成功しないことは明らかである。そして、この4つの分割領域DA6、DA7、DA10、DA11に対して把持動作のシミュレート演算を実行した結果、把持が成功した領域が領域DA7、DA10、DA11の3つであったと仮定する。この場合、ステップS63〜S67の各工程を経て得られた3次元座標データは、この3つの領域DA7、DA10、DA11においてそれぞれ取得された3つの3次元座標データとなる。よって、この3つの3次元座標データとステップS61において取得され格納された2次元撮像画像データとが、データセット生成部25において関連付けられ、1つのデータセットとして特定される。そして、特定されたデータセットは、送信部26により機械学習装置3Bへ送信される(ステップS69)。
上述した一連のシミュレート演算は、ワークWの配置を変更する毎に複数回、具体的には機械学習装置3Bにおいて必要とされるデータセットの量に至るまで実行される。上述した方法によるシミュレート演算によれば、データセットとして一の2次元撮像画像データと関連付けられる3次元座標データは、最大で(分割領域の数と同数の)16個である。そして、機械学習装置3Bに送信され格納されたデータセットが含む3次元座標データの数は、1〜16個の範囲内で種々存在し得ることとなる。
次に、シミュレータ2Bにより生成されたデータセットを用いて機械学習を行う機械学習装置3B及びこの機械学習装置3Bにより実施される機械学習方法について、以下説明を行う。先ず、機械学習装置3Bが備える構成については、図10を見ればわかるとおり、上述した第1の実施の形態に係る機械学習装置3と同様である。
機械学習装置3Bにより実施される機械学習方法についても、基本的な工程は図4に示す工程と同様である。しかし、本実施の形態に係る機械学習方法においては、学習部33内の学習モデルが出力する3次元座標データの数も、データセット記憶部32内に記憶されたデータセット同様、1つに限られない。ただし、単に出力する3次元座標データの数を制限しなければ、特に学習初期の学習モデルにあっては多量の3次元座標データを出力する可能性があるため、学習モデルが出力できる3次元座標データの最大値を事前に定めておくことが好ましい。この最大値としては、シミュレータ2Bの2次元撮像画像データ分割部28にて規定される2次元撮像画像データの分割数と同数とすることが好ましいが、例えば2次元撮像画像データを分析することによって更にその数値を限定する等、種々の方法により特定でき、本発明はその特定方法については限定されない。
また、学習モデルが出力する3次元座標データが複数存在する場合、データ毎の正確性(把持が成功する確率)は一様でないのが通常である。また、機械学習装置3Bによって生成された学習済モデルをデータ処理システムに適用した場合、実際にロボットハンドRを制御する際には、出力された複数の3次元座標データの中から最適な一の3次元座標データを選定する必要がある。そこで、本実施の形態に係る学習モデルにあっては、3次元座標データを出力する際、この3次元座標データの確からしさ、すなわちデータの信用度(comfidence)を合わせて出力するように設定される。この信用度は、例えば割合(%)や0〜1の間で示される数値データである。そして、この信用度は、例えば、入力層に対応付けられた2次元画像撮像データを含むデータセット内の、教師データとしての3次元座標データの座標やデータ数に加えて、2次元撮像画像データ分割部28における分割数、及び3次元座標データが取得されなかった分割領域の情報等を総合的に考慮して学習を行った学習済みモデルを用いて推論を行うことで推定することができ、当該推定結果に基づいて特定される。なお、信用度の詳細な数値の特定方法については把持が成功する確率が推定できる方法であれば任意であるため、ここでは詳細な説明は省略する。
次に、本発明の第3の実施の形態に係るデータ処理システムについて説明を行う。このデータ処理システムは、上述した機械学習システム1B、機械学習装置3Bあるいは機械学習方法により生成された学習済モデルを用いて、現実の作業領域におけるバラ積みピッキングを人手を要することなく実現するためのシステムを構成している。当該データ処理システムは、具体的には、図13に記載されているようなロボットハンドR等を制御するためのロボットコントローラ100Bに適用される。
図13は、本発明の第3の実施の形態に係るデータ処理システムが適用される現実の作業領域を示した概略図である。図13に示す通り、本実施の形態に係る現実の作業領域RWAにおける各種構成の構造及び配置については、図5に示すものと同様である。また、ロボットコントローラ100Bは、第1の実施の形態に係るロボットコントローラ100が備える一連の構成に加えて、更に特定部150を備えている。
特定部150は、推論部140で出力された3次元座標データが複数個存在している場合に、出力された複数個の3次元座標データの中から最適な一の3次元座標データを特定するものである。この特定に際しては、出力された3次元座標データ毎に関連付けられた信用度の数値を参酌し、例えば、この信用度の数値が最も大きい3次元座標データを最適な一の3次元座標データと特定する。
以上の構成を備えるロボットコントローラ100Bを制御してワークWのピッキングを行う場合の一連の工程について、図13及び図14を参照して以下に説明する。図14は、本発明の第3の実施の形態に係る現実の作業領域におけるバラ積みピッキング工程を示すフローチャートである。
図13に示す現実の作業領域RWAにおいて、バラ積みピッキング動作が開始されると、初めに、2次元撮像装置制御部110により撮像装置IDが動作されてトレーTR内を撮像した2次元撮像画像データが取得される(ステップS71)。次いで、推論部140が、図示しない入力手段からのオペレータによる入力情報や、主記憶部130に格納された2次元撮像装置ID及びロボットハンドRに関する機能情報等に基づいて、学習済モデル格納部131に格納された1乃至複数の学習済モデルから1つの学習済モデルを特定する(ステップS72)。
学習済モデルが特定されると、推論部140はこの特定された学習済モデルを参照し、当該学習済モデルの入力層に、ステップS71において2次元撮像装置制御部110が取得した2次元撮像画像データを対応付け、学習済モデルを用いた推論(データ処理)を実行し、出力層としてワークWを把持可能なロボットハンドRの3次元座標データを出力する(ステップS73)。このとき、第3の実施の形態に係る機械学習システム1B、機械学習装置3B及び機械学習方法によって生成された学習済モデルにおいては、ほとんどの場合、3次元座標データは複数個出力される。そこで、推論部140が複数の3次元座標データを出力した後、特定部150により、複数の3次元座標データそれぞれに関連付けられた信用度の数値を参酌し、例えば最も高い信用度に関連付けられた3次元座標データを、実際にロボットハンドRの制御に使用する一の3次元座標データとして特定する(ステップS74)。そして、この特定された一の3次元座標データがロボットハンド制御部120に送られ、ロボットハンド制御部120はこの3次元座標データが示す位置にロボットハンドRの所定部位(例えばエンドエフェクタ54の重心位置P)を位置させるべく、ロボットハンドRの6つの軸を駆動させてワークWの把持を試みる(ステップS75)。なお、ステップS73において出力された3次元座標データが1つのみであった場合には、特定部150で特定する必要はないから、出力された3次元座標データをロボットハンド制御部120にそのまま送ればよい。
以上説明した通り、本発明の第3の実施の形態に係るデータ処理システムを適用したバラ積みピッキングにおいては、単純な構造のカメラ等からなる2次元撮像装置IDが撮像した画像データのみからワークWを把持可能なロボットハンドRの3次元座標データを推論することができ、人手を要することのないバラ積みピッキングを簡略な構成で実現することができる。また、2次元撮像画像データから複数の3次元座標データを推論した上で、最適な一の3次元座標データを特定し、ロボットハンドRの制御に採用するため、信頼度の高い、言い換えればより把持が成功する可能性の高い3次元座標データを用いることができ、より精度の高い把持動作を実現できるようになる。
なお、上記第3の実施の形態に係るデータ処理システムにおいて、上記第2の実施の形態に示したような、学習済モデルの出力層が、3次元座標データに加えてロボットハンドRの角度データをも出力できるようにすることが可能である。なお、その場合、角度データは3次元座標データと1対1の関係で特定されるものであるから、シミュレータ3Bで生成されるデータセットにおいては3次元座標データと角度データとは常に同数であり、また、特定部150においては、3次元座標データを特定することで対応する角度データをも特定されることは、当業者であれば容易に理解できるであろう。
本発明は上述した実施の形態に限定されるものではなく、本発明の主旨を逸脱しない範囲内で種々変更して実施することが可能である。そして、それらはすべて、本発明の技術思想に含まれるものである。