(58)【調査した分野】(Int.Cl.,DB名)
機械学習プロセスでの学習内容に基づき、対象物の形状に対応して前記対象物側の接触位置であるハンドリング位置を推定してから、前記対象物に対してハンドリング動作させるエンドエフェクタを前記ハンドリング位置に対応して選択するハンドリング設定部、
を有することを特徴とするコントローラ。
【発明を実施するための形態】
【0010】
以下、実施の形態について図面を参照しつつ説明する。
【0011】
<ハンドリングシステムの概略構成>
図1は、本実施形態のハンドリングシステムの概略的なシステムブロック構成の一例を表している。このハンドリングシステムは、コンテナ7内に乱雑に配置された複数種類で多数個の工業部品を対象物とし、これらを種類別に分類して複数の目標容器に取り分けるようハンドリングして移送するシステムである。
図1においてハンドリングシステム1は、カメラ2と、ロボットコントローラ3と、サーボアンプ4と、ハンドリングロボット5と、エンドエフェクタ交換部6とを有している。なお、本実施形態の例では、工業部品10をハンドリングの対象物とした場合を示しているが、生産ラインで取り扱われるものであれば、工業部品10の代わりに食品や化粧品、文房具などであってもよい。
【0012】
カメラ2は、この例では光学的に2次元ピクセル列の画像データを撮像する撮像機器である。このカメラ2は、コンテナ7の上方に配置されており、そのコンテナ7の内部にそれぞれ乱雑な姿勢で配置されている複数種類で多数個の工業部品10の全体を撮像可能となっている。
【0013】
ロボットコントローラ3(コントローラ)は、上記カメラ2で撮像した画像データに基づいて、ハンドリングロボット5のハンドリング作業と移送作業に関する処理を行いサーボアンプ4に駆動指令を出力する。このロボットコントローラ3は、画像認識部11と、ハンドリング設定部12と、作業計画部13と、逆キネマティクス演算部14とを有している。
【0014】
画像認識部11は、上記のカメラ2で撮像した画像データを画像認識することで、その時点でコンテナ7内に配置されている複数個の工業部品10それぞれの個体を認識し、当該画像データ中における各個体単独の外観部分画像(後述の
図3〜6参照)をそれぞれ形状情報として抽出し出力する。なお画像認識部11は、各形状情報(外観部分画像)それぞれの画像データ全体における配置位置情報も検出して、後述の作業計画部13に別途出力しているが、図中では略記している。このような画像認識部11の内部処理は、ニューラルネットワークなどでの機械学習を利用した公知の画像認識手法を用いればよく、ここでは詳細な説明を省略する。なお、上記カメラ2とこの画像認識部11が、各請求項記載の形状取得部に相当する。
【0015】
ハンドリング設定部12は、上記画像認識部11から入力された形状情報に基づいて、当該形状情報に対応する工業部品10の個体を適切にハンドリングするための情報、すなわちハンドリング位置情報(図中では「HDL位置情報」と略記)及びエンドエフェクタ選択情報(図中では「EE選択情報」と略記)を設定し、出力する。ここで本実施形態におけるハンドリングとは、対象となる工業部品10の個体を安定的に移送できるよう、ハンドリングロボット5に装着した後述のエンドエフェクタで当該工業部品10に接触し、固定させる動作そのものを意味している。本実施形態の例では、具体的に、後述する多指ハンド又はグリッパによる把持動作と、後述する吸着ノズルによる吸着動作がハンドリング動作に含まれる。このハンドリング設定部12は、ハンドリング位置推定部21と、エンドエフェクタ選択部22とを有している。
【0016】
ハンドリング位置推定部21は、上記画像認識部11から入力された形状情報に基づいて、当該形状情報に対応する工業部品10の個体に対してハンドリング動作を行う際に適切と推定される工業部品10側の接触位置をハンドリング位置情報として出力する。
【0017】
エンドエフェクタ選択部22は、上記ハンドリング位置推定部21から入力されたハンドリング位置情報に基づいて、当該ハンドリング位置情報で示される接触位置で工業部品10をハンドリングする際に適切なエンドエフェクタの種類を選択し、この種類をエンドエフェクタ選択情報として出力する。
【0018】
なお本実施形態の例におけるこのハンドリング設定部12の内部処理は、機械学習プロセスで学習したニューラルネットワークによって行うものであり、その処理内容や手法については後に詳述する。
【0019】
作業計画部13は、上記ハンドリング設定部12から入力されたハンドリング位置情報とエンドエフェクタ選択情報、及び特に図示しない上記画像認識部11から入力された配置位置情報に基づいて、ハンドリングロボット5に行わせる具体的なハンドリング動作及び移送動作の作業内容(後述するエンドエフェクタの軌道や動作など)を計画し、それにより生成した作業指令を逆キネマティクス演算部14に出力する。
【0020】
逆キネマティクス演算部14は、上記作業計画部13から入力された作業指令に基づいて、当該作業指令の作業内容(計画した軌道上でのエンドエフェクタの移動や動作など)を実現するために必要となるハンドリングロボット5の各駆動軸モータ(図示省略)の目標回転角度やエンドエフェクタ駆動用補器(図示省略)の動作値を演算し、対応する駆動指令を出力する。なお、上記作業計画部13とこの逆キネマティクス演算部14が、各請求項記載のハンドリング制御部に相当する。
【0021】
なお、上述した画像認識部11、ハンドリング設定部12(ハンドリング位置推定部21、エンドエフェクタ選択部22)、作業計画部13、逆キネマティクス演算部14等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、ロボットコントローラ3は、後述するCPU901(
図15参照)が実行するプログラムによりソフトウェア的に実装されてもよいし、その一部又は全部がASICやFPGA、その他の電気回路等(ニューロモーフィックチップ等)の実際の装置によりハードウェア的に実装されてもよい。
【0022】
サーボアンプ4は、上記ロボットコントローラ3の逆キネマティクス演算部14から入力された駆動指令に基づいて、ハンドリングロボット5の各駆動軸モータ(図示省略)やエンドエフェクタ駆動用補器(図示省略)を駆動制御する駆動電力の給電制御を行う。
【0023】
ハンドリングロボット5は、図示する本実施形態の例では6つの関節軸を備えたマニプレータアーム(6軸ロボット)である。そのアーム先端部5aは、工業部品10をハンドリング可能な各種のエンドエフェクタ8が着脱交換可能となっており、装着したエンドエフェクタ8によってコンテナ7内の工業部品10を1つずつハンドリングし、近傍の目標容器9へ移送できる機能を有している。また図示する例では、各種のエンドエフェクタ8を個別に保持可能なホルダとして機能するエンドエフェクタ交換部6がテーブルの一端に設けられており、ハンドリングロボット5はこのエンドエフェクタ交換部6で所望のエンドエフェクタ8をアーム先端部5aに着脱交換可能となっている。
【0024】
本実施形態のハンドリングシステム1の例では、
図2に示すような多指ハンド8A、グリッパ8B、及び吸着ノズル8Cの3種類のエンドエフェクタが使用可能となっている。なお、この
図2中に示すハンドリング基準点Pと把持方向ベクトルVについては、後に詳述する。
【0025】
図2(a)に示す例の多指ハンド8Aは、上記アーム先端部5aに直接装着可能な基部8Aaにおいて、平行に配置された2本の指部8Ab,8Acと、これら2本に対向するよう配置された1本の指部8Adの合計3本の指部8Ab〜8Adが設けられている。各指部8Ab〜8Adは、それぞれの基部8Aaに対する根元位置、及び長手方向の中間位置に関節を有しており、これらの関節が指間中央方向への屈曲動作と伸長動作を切り替えることで、その指間中央に位置する対象物(本実施形態の例の工業部品10)に対して把持とリリースを切り替えて行うことが可能となっている。
【0026】
図2(b)に示す例のグリッパ8Bは、上記アーム先端部5aに直接装着可能な基部8Baにおいて、平行に配置された2つの爪部8Bb,8Bcが設けられている。これら2つの爪部8Bb,8Bcが相互に対向する方向での近接動作と離間動作を切り替えることで、爪部間中央に位置する対象物に対して把持とリリースを切り替えて行うことが可能となっている。なお、図示する2爪型以外にも、3つ以上の爪部を上記爪部間中央の中心軸周りに等間隔な配置で設けた構成としてもよい(図示省略)。
【0027】
図2(c)に示す吸着ノズル8Cは、上記アーム先端部5aに直接装着可能な基部8Caから中空管8Cbが突設しており、この中空管8Cbの先端に樹脂などの弾性材料で構成される吸着口8Ccが設けられている。図示しない吸引ポンプによる空気吸引力が、基部8Ca及び中空管8Cbを介して吸着口8Ccの開口部に付加されることで、当該吸着口8Ccは対象物の表面を吸着して固定できる。
【0028】
<本実施形態の特徴>
例えば規定の形状と大きさにある対象物(本実施形態の例の工業部品10)が規定の位置と姿勢で配置されている場合には、接触するハンドリング位置や使用するエンドエフェクタ8についてユーザが人為的に設定、選択することでも機械による適切なハンドリング動作は容易に行える。
【0029】
しかし、形状が異なる複数種類の対象物が混在している場合には、それら種類ごとにユーザが人為的にハンドリング位置の設定とエンドエフェクタ8の選択を行う必要があるためそれらの設定作業が増大してしまう。そして、そのような人為的な設定と選択の作業はユーザの経験や技量に依存するところが大きく、またそれが必ずしも最適である保証がないため、ハンドリング動作の確実性を確保できない。さらに、規定の形状にある対象物であっても配置される姿勢が不定である場合には、その姿勢に対応して確実にハンドリング動作を行うために設定すべきハンドリング位置と選択すべきエンドエフェクタ8が多様に変化するため、それらの組み合わせを逐一人為的に設定することは困難であった。そして以上により、不定形状、不定姿勢にある対象物をカメラ2で撮像しても、その撮像画像に基づいて機械が対象物を確実にハンドリング動作することはさらに困難とされていた。
【0030】
これに対し本実施形態のハンドリングシステム1では、機械学習プロセスでの学習内容に基づき、対象物の形状情報に対応して、対象物側の接触位置であるハンドリング位置の推定と、対象物に対してハンドリング動作させるエンドエフェクタ8の選択を行うハンドリング設定部12を有している。そして機械学習プロセスにおいて、形状と配置姿勢が多様に異なる対象物の形状情報に対し、それぞれ多様なハンドリング位置とエンドエフェクタ8の組み合わせで繰り返しハンドリング動作を試行した結果を学習する。この機械学習プロセスは、機械自身によって自動的に行うことができ、その試行回数(成否データ)が多いほどハンドリング動作の精度や確度が向上する。これにより人為的な設定作業によらず、ハンドリング設定部12は対象物の形状と姿勢の組み合わせを表す形状情報に対応して、その対象物に対するハンドリング動作に最適なハンドリング位置の推定とエンドエフェクタ8の選択が可能となる。
【0031】
<ハンドリング動作の機械学習プロセスについて>
図3〜
図6には、多様な配置姿勢にある多様な形状の工業部品10の外観形状を示す形状情報の例が示されている。これらの形状情報は、ハンドリングロボット5の作業空間中に設定された作業座標(図中のXYZ座標)を基準として一律に同じ方向からの定点撮影により取得されている(なお、図示の理解が容易なように
図1中に示すカメラ2の撮像方向とは相違している)。つまり、外観部分画像であるこの形状情報には、1つの工業部品10の個体についてその配置姿勢と当該配置姿勢に対応する当該工業部品10の外観形状の2つの情報が含まれている。また、上記コンテナ7中に乱雑に配置(又はバラ積み)された状態の多数の工業部品10は、図示する以外にも多様な配置姿勢で形状情報が取得される。
【0032】
そして上記ハンドリング設定部12の機械学習プロセスでは、ある形状情報に含まれる外観形状と配置姿勢に対して、多様なハンドリング位置とエンドエフェクタ8の組み合わせでハンドリング動作を繰り返し試行する。例えば、
図3(a)に示すように全体形状が卵型形状であってその長軸がY軸方向に略平行な配置姿勢にある工業部品10Aの形状情報に対し、多指ハンド8Aにより多様な把持位置で把持したり、グリッパ8Bにより多様な把持位置で把持したり、吸着ノズル8Cにより多様な吸着位置で吸着するなどによりハンドリング動作を繰り返し試行する。
【0033】
そして本実施形態の例における機械学習プロセスでは、これらのハンドリング動作の試行に基づくデータ学習によって、形状情報に対応する適切なハンドリング位置とエンドエフェクタ8を学習する。例えば、ある形状情報に対応して行われたハンドリング動作の試行においてそのハンドリングの成否(例えば工業部品10を持ち上げることができたか否か)や確度(例えば安定性や信頼性)を試行結果として検出し、これらを元の形状情報及び試行したハンドリング位置とエンドエフェクタ8に対応付けてハンドリング成否データとして記録、保存する。そしてこのようなハンドリング成否データを大量に用いて機械学習(後述の
図9参照)することにより、ハンドリング設定部12は形状情報に対応した適切なハンドリング位置の推定とエンドエフェクタ8の選択が可能となる。
【0034】
例えば、上記構成の多指ハンド8Aの場合には、特に全体が略球体形状にある対象物に対してその外周側面を各指部8Ab〜8Adで包むような把持に有効である。このため上記機械学習プロセスによりハンドリング設定部12は、
図3に示すように略卵型の外観形状にある工業部品10Aに対しては、その短軸方向を挟む3点をハンドリング位置(接触位置;図中の破線部分の位置)として多指ハンド8Aで把持することが適切であると学習することが想定される。
【0035】
また例えば、上記構成の2爪グリッパ8Bの場合には、特に略平行に対向する配置の2つの平面(又は曲面)を有する対象物に対してその対向方向に各爪部8Bb,8Bcで挟持するような把持に有効である。このため、上記機械学習プロセスによりハンドリング設定部12は、
図4に示すようにボルト型の外観形状にある工業部品10Bに対しては、その配置姿勢に応じてボルト軸やボルト頭の軸径方向(対向側面)を挟む2点をハンドリング位置(接触位置;図中の破線部分の位置)として2爪グリッパ8Bで把持することが適切であると学習することが想定される。
【0036】
また例えば、上記構成の吸着ノズル8Cの場合には、特に上方に平面を有する対象物に対してその平面を吸着口8Ccで吸着して引き上げるのに有効である。このため上記機械学習プロセスによりハンドリング設定部12は、
図5に示すように略平板型の外観形状にある工業部品10Cに対しては、その平面上の1点をハンドリング位置(吸着位置;図中の破線部分の位置)として吸着ノズル8Cで吸着することが適切であると学習することが想定される。
【0037】
また同じ形状の対象物であっても、その配置姿勢によっては有効なハンドリング位置やエンドエフェクタ8が変化する場合がある。例えば、
図6に示すように2つの円錐形状の各頂点部分を結合した形状の工業部品10Dに対して、上記機械学習プロセスによりハンドリング設定部12は、工業部品10Dの軸方向が略水平方向にある配置姿勢(
図6(a)、
図6(b)参照)では、結合部分を軸径方向に挟む2点をハンドリング位置(接触位置;図中の破線部分の位置)として2爪グリッパ8Bで把持することが適切であると学習することが想定される。また、同じ工業部品10Dの軸方向が略垂直方向にある配置姿勢(
図6(c)参照)では、上方に位置する円錐部分の底面(上方に位置する平面)上の1点をハンドリング位置(吸着位置;図中の破線部分の位置)として吸着ノズル8Cで吸着することが適切であると学習することが想定される。
【0038】
なお上記のいずれの場合もハンドリング動作の確度を考慮すると、上記機械学習プロセスによりハンドリング設定部12は、各工業部品10の重心に近い位置にハンドリング位置を設定することが適切であると学習することが期待される。また上述した各学習例におけるハンドリング位置とエンドエフェクタ8の組み合わせは、あくまで想定される例示であり、工業部品10やエンドエフェクタ8等の詳細な構成や他の要因によっては、他のハンドリング位置とエンドエフェクタ8の組み合わせが適切であると学習する可能性もある。
【0039】
<ハンドリング設定部におけるニューラルネットワークの構成について>
ハンドリング設定部12は、上述したように、ニューラルネットワークを用いた深層学習の機械学習によってハンドリング位置の推定とエンドエフェクタ8の選択を行う。そして本実施形態の例では、まず先にハンドリング位置推定部21が形状情報に基づいて先にハンドリング位置の推定し、次にエンドエフェクタ選択部22がハンドリング位置情報に基づいてエンドエフェクタ8を選択する。以上から、ハンドリング設定部12は、例えば
図7のニューラルネットワークモデル概略図で示すようなハンドリング位置推定部21と、
図8のニューラルネットワークモデル概略図で示すようなエンドエフェクタ選択部22とを組み合わせることで構成できる。
【0040】
図7に示すハンドリング位置推定部21のモデル概略図では、画像認識部11から入力された2次元ピクセル列の画像データである形状情報に対して、推定したハンドリング位置を示すマーキング(図中の破線部分)を当該画像データ中に記入するよう画像の加工処理を行い、これをハンドリング位置情報として出力するよう設計されている。そのマーキングの記入位置は、上述した機械学習プロセスでの学習内容に基づくものであり、当該形状情報の画像データ中に含まれている工業部品10の外観(形状、姿勢)に対応して適切にハンドリングできると推定した工業部品10側の接触位置である。すなわち、このハンドリング位置推定部21のニューラルネットワークは、形状情報に含まれる工業部品10の外観形状パターンとハンドリング位置との相関を表す特徴量を学習している。
【0041】
また
図8に示すエンドエフェクタ選択部22のモデル概要図では、ハンドリング位置推定部21から入力された2次元ピクセル列の画像データであるハンドリング位置情報に基づいて、選択したエンドエフェクタ8の種類をクラスタリングして出力するよう設計されている。その選択したエンドエフェクタ8の種類は、上述した機械学習プロセスでの学習内容に基づくものであり、当該ハンドリング位置情報の画像データ中に含まれるマーキングの数や工業部品10との配置関係に対応して適切にハンドリングできるよう選択したエンドエフェクタ8の種類である。すなわち、このエンドエフェクタ選択部22のニューラルネットワークは、ハンドリング位置情報に含まれる工業部品10の外観形状パターン及びマーキングの配置パターンと、エンドエフェクタ8の種類との相関を表す特徴量を学習している。
【0042】
以上それぞれの基本仕様にあるニューラルネットワークにおいては、例えば入力層の直近をいわゆる畳み込み層とプーリング層の組み合わせである畳み込みニューラルネットワーク(特に図示せず)で構成することで柔軟なパターンの認識が可能となる。また例えば、出力層の直近をいわゆるパターン認識や最適値演算に適した全結合層(特に図示せず)で構成することも好適である。
【0043】
<機械学習プロセスのデータ学習について>
上記ハンドリング位置推定部21及びエンドエフェクタ選択部22のそれぞれのニューラルネットワークに対する機械学習プロセスの具体的な手順について、以下に説明する。
図9は、ロボットコントローラ3のCPU901(後述の
図15参照)が、本実施形態の例におけるデータ学習により機械学習プロセスを実行する場合の処理手順のフローチャートを示している。このフローに示すデータ学習処理は、例えば図示しない操作部から機械学習プロセスを実行するよう指令入力されることで開始する。
【0044】
まずステップS5で、CPU901は、カメラ2から画像データを取得する。
【0045】
次にステップS10へ移り、CPU901は、上記ステップS5で取得した画像データに基づく上記画像認識部11の画像認識処理により、独立した個々の工業部品10の個体を認識し、その外観部分画像を形状情報として抽出し取得する。
【0046】
次にステップS15へ移り、CPU901は、上記ステップS10で取得した形状情報に含まれる所定の工業部品10の個体の外観パターンに対して接触位置であるハンドリング位置をランダムに設定し、対応するハンドリング位置情報(マーキングが記入された画像情報)を生成する。
【0047】
次にステップS20へ移り、CPU901は、上記ステップS15で設定したハンドリング位置に対してハンドリングさせるエンドエフェクタ8の種類をランダムに選択する。このとき、ハンドリングロボット5は、選択したエンドエフェクタ8を実際にアーム先端部5aに装着するようエンドエフェクタ交換部6での着脱交換作業を行う。
【0048】
次にステップS25へ移り、CPU901は、上記ステップS15で設定したハンドリング位置と、上記ステップS20で選択したエンドエフェクタ8の種類の組み合わせで、上記所定の工業部品10の個体に対するハンドリング動作と移送動作(目標容器への取り分け)をハンドリングロボット5に行わせる。このハンドリング動作は、上記作業計画部13及び逆キネマティクス演算部14での処理により制御する。
【0049】
次にステップS30へ移り、CPU901は、特に図示しない別途の検出装置によって、上記ステップS25でのハンドリング動作が成功したか否か、つまり工業部品10の把持や吸着の試行結果としての成否を判定する。なお上記検出装置としては、例えばカメラやレーザースキャナなどの光学機器を用いた画像認識装置や、工業部品10の重量を計測する重量センサ等を別途用いればよい。またここで、単にハンドリング動作の成否を判定するだけでなく、ハンドリングした後での高速な移送動作や、特定駆動軸での回転動作や、特定のアーム節の揺動動作などを実行し、その前後でのエンドエフェクタ8における工業部品10のハンドリング状態の変化を検出することで、当該ハンドリングの確度(安定性、信頼性)を検出してもよい。
【0050】
次にステップS35へ移り、CPU901は、上記ステップS10で取得した形状情報と、上記ステップS15で設定したハンドリング位置情報と、上記ステップS20で選択したエンドエフェクタ8の種類と、上記ステップS30で判定したハンドリング動作の試行結果とを対応付けて1つのハンドリング成否データを生成し、記録する。
【0051】
次にステップS40へ移り、CPU901は、例えば上記コンテナ7内に配置された全ての工業部品10の個体についてハンドリング動作の試行を行ったか否かを判定する。まだコンテナ7内にハンドリング(目標容器への取り分け)されていない工業部品10がある場合には、判定は満たされず、上記ステップS5に戻って同様の手順を繰り返す。
【0052】
一方、コンテナ7内の全ての工業部品10がハンドリングされていた場合、判定が満たされ、ステップS45へ移る。
【0053】
ステップS45では、CPU901は、上記ステップS5〜ステップS35の試行で生成されたハンドリング成否データに基づいて、ハンドリング位置推定部21及びエンドエフェクタ選択部22のそれぞれのニューラルネットワークに対するデータ学習を行う。例えばこのデータ学習では、取得した形状情報を入力データとし、設定したハンドリング位置情報や選択したエンドエフェクタ8を出力データとした組み合わせの教師データを用いて、各ニューラルネットワークの入力層と出力層の間の関係性が成立するよう各ノードどうしをつなぐ各エッジの重み係数を調整するいわゆるバックプロパゲーション処理により学習を行う。このバックプロパゲーション処理では、多数のハンドリング成否データのうち特にハンドリング動作が成功して確度の高いデータのみを抽出し、これだけを教師データに用いて各エッジの重み係数を強めるよう調整してもよい。または、全てのハンドリング成否データを教師データとし、それぞれの成否や確度に応じて各エッジの重み係数を強めたり弱めたりするよう調整してもよい。なお、このようなバックプロパゲーションの他にも、いわゆるオートエンコーダ、ドロップアウト、ノイズ付加、及びスパース正則化などの公知の多様な学習手法を併用して処理精度を向上させてもよい。その後、このフローを終了する。
【0054】
なお、以上のデータ学習処理による機械学習プロセスは、当該ハンドリングシステム1の稼働開始前にハンドリング対象の工業部品10に対して行ってもよいし、または工業部品10の変更時や動作精度の向上を目的として稼働中の必要時に行ってもよい。
【0055】
<本実施形態による効果>
以上説明したように、本実施形態のハンドリングシステム1は、機械学習プロセスでの学習内容に基づき、工業部品10の個体の形状情報に対応して、ハンドリング位置を推定するハンドリング位置推定部21と、ハンドリング動作させるエンドエフェクタ8の選択を行うエンドエフェクタ選択部22とを備えたハンドリング設定部12を有している。そして機械学習プロセスにおいて、形状と配置姿勢が多様に異なる工業部品10の個体の形状情報に対し、それぞれ多様なハンドリング位置とエンドエフェクタ8の組み合わせで繰り返しハンドリング動作を試行した結果を学習する。この機械学習プロセスは、機械自身によって自動的に行うことができ、その試行回数(ハンドリング成否データ)が多いほどハンドリング動作の精度や確度が向上する。これにより人為的な設定作業によらず、ハンドリング設定部12は工業部品10の個体の形状と姿勢の組み合わせを表す形状情報に対応して、その工業部品10に対するハンドリング動作に最適なハンドリング位置の推定とエンドエフェクタ8の選択が可能となる。この結果、機械によるハンドリング性能を向上できる。
【0056】
また、本実施形態では特に、ハンドリングロボット5と、当該ハンドリングロボット5のハンドリング動作を制御する作業計画部13及び逆キネマティクス演算部14とを有している。これにより、多様な位置と姿勢に配置された工業部品10に対してハンドリングロボット5を利用した確実なハンドリング動作と移送動作を実現できる。なお、本実施形態の例のように、1台のハンドリングロボット5に複数種類のエンドエフェクタ8を着脱交換可能とする構成に限られない。他にも、1台のハンドリングロボットに1種類のエンドエフェクタ8を装着してエンドエフェクタ8の種類と同数のハンドリングロボットを併設してもよいし、又は1台のハンドリングロボットに複数種類のエンドエフェクタ8を装着してそれらを切り替えて利用してもよい(以上、図示省略)。また、使用するハンドリングロボット自体についても、本実施形態の例の6軸ロボットのマニプレータアームに限られない。他にも、いわゆるスカラロボット、パラレルロボット、又は直交軸ロボット等(以上、図示省略)を適用してもよい。
【0057】
また、本実施形態では特に、ハンドリング設定部12は、ハンドリング位置を推定してから、当該ハンドリング位置に対応するエンドエフェクタ8を選択する。これにより、ハンドリング位置を基準としたエンドエフェクタ8の選択が可能となり、特に工業部品10の姿勢に対応した柔軟なハンドリング動作が可能となる。
【0058】
また、本実施形態では特に、機械学習プロセスでは、ハンドリング動作を繰り返した際に得られたハンドリング成否データに基づくデータ学習により実行される。これにより、機械学習プロセスにおいて、多様な形状と姿勢にある工業部品10に対応した汎用性の高いハンドリング動作を学習できる。
【0059】
また、本実施形態では特に、機械学習プロセスは、コンテナ7内に配置された限られた所定形状の工業部品10に対して実行される。これにより、機械学習プロセスにおいて、所定の形状にある工業部品10に限定した確度の高いハンドリング動作を迅速に学習できる。なお、このように限られた所定形状の工業部品10だけでなく、多種多様な大きさと形状にある多くの工業部品10に対して機械学習プロセスを実行してもよい。その場合には、同一のニューラルネットワークで学習した内容が、多様な形状の対象物に対して柔軟に対応可能な汎用性を向上することができ、それまでに学習対象としていなかった未知の形状(不定形状)にある対象物に対しても汎用性の高いハンドリング動作を学習できる。
【0060】
また、本実施形態では特に、エンドエフェクタ8の種類は、多指ハンド8A、グリッパ8B、及び吸着ノズル8Cのうち少なくとも1つを含んでいる。上述したように、多指ハンド8Aでは特に工業部品10の外周側面を包むような把持に有効であり、グリッパ8Bでは特に対向する2方向(又は3方向以上)で挟持する把持に有効であり、吸着ノズル8Cでは特に平面の引き上げに有効である。本実施形態では、これらのうちから選択可能としていることで多様な形状と姿勢にある国行部品に対応して汎用性の高いハンドリング動作が可能となる。なお、ハンドリングシステム1で用いるエンドエフェクタ8はこれら3種に限られず、特に図示しない他の種類のエンドエフェクタを適用してもよい。
【0061】
<変形例>
なお、以上説明した実施形態は、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【0062】
<変形例1:機械学習プロセスを強化学習で行う場合>
上記実施形態では、形状情報に対応する適切なハンドリング位置とエンドエフェクタ8の機械学習プロセスをデータ学習により行っていたが、これに限られない。他にも、
図10に例示するような強化学習処理の機械学習プロセスにより、ハンドリング位置推定部21及びエンドエフェクタ選択部22のそれぞれのニューラルネットワークの学習を行ってもよい。なお、図示する本変形例の強化学習処理では、いわゆるQ学習の手法に基づいて行う。
【0063】
まずステップS105で、CPU901は、カメラ2から画像データを取得する。
【0064】
次にステップS110へ移り、CPU901は、上記ステップS105で取得した画像データに基づく上記画像認識部11の画像認識処理により、独立した個々の工業部品10の個体を認識し、その外観部分画像を形状情報として抽出し取得する。
【0065】
次にステップS115へ移り、CPU901は、上記ステップS10で取得した形状情報に含まれる所定の工業部品10の個体の外観パターンに対して新たな接触位置を探索する。この新たな接触位置の探索については、その時点まで適切(後述のいわゆるQ値が最大)であるとして設定される接触位置から、小さな確率でランダムな方向に修正した接触位置を設定するか、もしくはそれ以外のほとんどの確率ではその適切であるとされる接触位置そのままとする。このように新たに探索した接触位置を今回のハンドリング位置として設定し、対応するハンドリング位置情報(マーキングが記入された画像情報)を生成する。
【0066】
次にステップS120へ移り、CPU901は、上記ステップS115で設定したハンドリング位置に対して新たなエンドエフェクタ8を探索する。この新たなエンドエフェクタ8の探索については、その時点まで適切(後述のいわゆるQ値が最大)であるとして選択されたエンドエフェクタ8から、小さな確率でランダムに変更したエンドエフェクタ8を選択するか、もしくはそれ以外のほとんどの確率ではその適切であるとされるエンドエフェクタ8そのままとする。このように新たに探索したエンドエフェクタ8を今回使用するエンドエフェクタ8として選択し、対応するエンドエフェクタ選択情報を生成する。このとき、ハンドリングロボット5は、選択したエンドエフェクタ8を実際にアーム先端部5aに装着するようエンドエフェクタ交換部6での着脱交換作業を行う。
【0067】
次にステップS125へ移り、CPU901は、上記ステップS115で探索設定したハンドリング位置と、上記ステップS120で探索選択したエンドエフェクタ8の種類の組み合わせで、上記所定の工業部品10の個体に対するハンドリング動作と移送動作(目標容器への取り分け)をハンドリングロボット5に行わせる。このハンドリング動作は、上記作業計画部13及び逆キネマティクス演算部14での処理により制御する。
【0068】
次にステップS130へ移り、CPU901は、特に図示しない別途の検出装置によって、上記ステップS25でのハンドリング動作が成功したか否か、つまり工業部品10の把持や吸着の試行結果としての成否を判定する。なお上記検出装置としては、例えばカメラやレーザースキャナなどの光学機器を用いた画像認識装置や、工業部品10の重量を計測する重量センサ等を別途用いればよい。またここで、単にハンドリング動作の成否を判定するだけでなく、ハンドリングした後での高速な移送動作や、特定駆動軸での回転動作や、特定のアーム節の揺動動作などを実行し、その前後でのエンドエフェクタ8における工業部品10のハンドリング状態の変化を検出することで、当該ハンドリングの確度(安定性、信頼性)を検出してもよい。以上のような成否判定及び確度の検出によって今回のハンドリング動作に対する評価を行い、この評価に応じた報酬を算出する。
【0069】
次にステップS135へ移り、CPU901は、上記ステップS110で取得した形状情報と、上記ステップS115で探索設定したハンドリング位置情報と、上記ステップS120で探索選択したエンドエフェクタ8の種類と、上記ステップS130で算出したハンドリング動作の報酬に基づくいわゆるQ学習により、ハンドリング位置推定部21及びエンドエフェクタ選択部22のそれぞれのニューラルネットワークに対する強化学習を行う。上記ステップS105〜ステップS135でのハンドリング動作の試行に対してその有効性を示すQ値がより最大化するようハンドリング位置とエンドエフェクタ8を学習する。このQ学習による強化学習については、公知の手法を用いればよくここでは詳細な説明を省略する。
【0070】
次にステップS140へ移り、CPU901は、ハンドリング位置推定部21及びエンドエフェクタ選択部22のそれぞれのニューラルネットワークに対し、十分な試行回数で機械学習が行われたか否かを判定する。機械学習が不十分であって当該強化学習処理を終了しない場合には、判定は満たされず、上記ステップS105に戻って同様の手順を繰り返す。
【0071】
一方、機械学習が十分であって当該強化学習処理を終了する場合には、判定が満たされ、このフローを終了する。
【0072】
以上説明したように、本変形例のハンドリングシステム1は、機械学習プロセスが、ハンドリング動作を繰り返した際のそれぞれのハンドリング結果に基づく強化学習により実行される。これにより、機械学習プロセスにおいて、特定の形状にある工業部品10に限定した精度の高いハンドリング動作を迅速に学習できる。
【0073】
<変形例2:エンドエフェクタを選択してからハンドリング位置を推定する場合>
上記実施形態では、ハンドリング設定部12において、ハンドリング位置推定部21が形状情報に対応したハンドリング位置情報を推定してから、エンドエフェクタ選択部22がそのハンドリング位置情報に基づいてエンドエフェクタ8を選択していたが、これに限られない。他にも、
図11に示すようにロボットコントローラ3A内のハンドリング設定部12Aにおいて、エンドエフェクタ選択部22Aが形状情報に対応したエンドエフェクタ8を選択してから、ハンドリング位置推定部21Aがそのエンドエフェクタ選択情報と形状情報に対応したハンドリング位置情報を推定してもよい。
【0074】
この場合には、エンドエフェクタ選択部22Aのニューラルネットワークが、形状情報に含まれる工業部品10の外観形状パターンと、それに対応してハンドリング動作に適切なエンドエフェクタ8の種類との相関を表す特徴量を学習する。またハンドリング位置推定部21Aのニューラルネットワークは、形状情報に含まれる工業部品10の外観形状パターン及びエンドエフェクタ選択情報と、それらに対応してハンドリング動作に適切なハンドリング位置との相関を表す特徴量を学習する。
【0075】
以上説明したように、本変形例のハンドリングシステム1は、ハンドリング設定部12が、エンドエフェクタ8を選択してから、当該エンドエフェクタ8に対応するハンドリング位置を推定する。これにより、エンドエフェクタ8を基準としたハンドリング位置の推定が可能となり、特に工業部品10の形状に対応した柔軟なハンドリング動作が可能となる。
【0076】
また、ハンドリング位置推定部21とエンドエフェクタ選択部22は個別に構成せずに、
図12に示すように同一のニューラルネットワークで並列に処理するよう構成してもよい。この図示する構成では、選択するエンドエフェクタ8の種類をクラスタリングしてエンドエフェクタ選択情報を出力するとともに、ハンドリング基準目標点P′(Xp′,Yp′,Zp′)と把持方向目標ベクトルV′をハンドリング位置情報として出力するよう設計されている。なおハンドリング位置情報の出力は、いわゆる回帰問題により整数値の座標位置やベクトル値を出力するようニューラルネットワークを設計する。
【0077】
ここでハンドリング基準目標点P′とは、各エンドエフェクタ8上に設定されたハンドリング基準点Pをハンドリング動作時に位置させる目標位置である。また把持方向目標ベクトルV′とは、各エンドエフェクタ8(多指ハンド8A及びグリッパ8Bのみ)に設定された把持方向ベクトルVをハンドリング動作時に一致させる目標方向である(以上、
図3〜
図6参照)。各エンドエフェクタ8のハンドリング基準点Pは、
図2に示すように、例えば多指ハンド8Aやグリッパ8Bの場合には各指部8Ab〜8Ad間又は各爪部8Bb,8Bc間の中央位置に設定され、吸着ノズル8Cの場合には吸着口8Ccの端部中央位置に設定される。また、把持方向ベクトルVは、多指ハンド8A及びグリッパ8Bの場合における各指部8Ab〜8Ad又は各爪部8Bb,8Bcの把持方向を示す方向ベクトルである。このように、ハンドリング動作時において適切と推定されるエンドエフェクタ8の位置と姿勢をハンドリング基準目標点P′及び把持方向目標ベクトルV′で示し、これらの数値情報をハンドリング位置情報として生成してもよい。
【0078】
<変形例3:複数のカメラで撮像した複数の画像データで個体認識する場合>
図13に示す例では、それぞれの撮像領域が重複する2台のカメラ41,42で構成されたいわゆる3次元カメラ43を用いて1つの食品F(図示する例では鳥唐揚げ)をそれぞれ異なる撮像方向から撮像している。これにより、
図14の左側に示すように、1つの食品Fに対して相互に視差を有する2つの画像データ(2つの形状情報;それぞれ2次元ピクセル列)を取得することができる。
【0079】
図14に示す例では、同一のニューラルネットワークで並列に構成されたハンドリング位置推定部21とエンドエフェクタ選択部22が上記2つの形状情報をそのまま個別に入力され、それら2つの形状方向に基づいてエンドエフェクタ選択情報とハンドリング位置情報を出力するよう設計されている。このように3次元の画像データを用いることで、特に形状や大きさが不定である食品Fに対して立体形状の空間認識精度が向上する。なお、カメラは撮像領域が重複すれば3つ以上用いてもよいし、ニューラルネットワークにおいてそれぞれの形状情報の画像データを個別の畳み込みニューラルネットワークで処理してから同一の全結合層でパターン認識してもよい。
【0080】
<その他の変形例>
また特に図示しないが、対象物の画像データを取得する光学的センシング手段としてレーザースキャナ等をカメラ2(および3次元センサ8)の代わりに用いてもよい。この場合には、例えばレーザースキャナから投光された走査線で対象物の表面上における各点との距離を計測し、これらの距離データの集合で画像データを取得する。また、画像認識部11は、外観部分画像の画像データではなく、例えば3D立体モデルを形状情報として取得してもよい。
【0081】
また、カメラ2は固定的に配置される以外にも、例えばハンドリングロボット5のアーム先端部5aやエンドエフェクタ8にカメラを設置してもよい。
【0082】
また、ハンドリング位置推定部21やエンドエフェクタ選択部22の処理アルゴリズムは、図示したニューラルネットワークを用いた深層学習(ディープラーニング)によるもの以外にも、例えばサポートベクトルマシンやベイジアンネットワーク等を利用した他の処理アルゴリズム(特に図示せず)を適用してもよい。
【0083】
また、ハンドリングロボット5がエンドエフェクタ8を切り換えずに単一のものだけを装着してハンドリングする場合には、エンドエフェクタ選択部22を省略してハンドリング位置推定部21が当該エンドエフェクタ8に対応するハンドリング位置情報だけを学習し、出力させてもよい。また、装着するエンドエフェクタ8の種類は、上記
図2に例示した3種類以外の他の種類のエンドエフェクタ(特に図示せず)を装着してもよく、それらのハンドリング態様に対応してハンドリング位置推定部21がハンドリング位置情報を学習すればよい。
【0084】
<ロボットコントローラのハードウェア構成例>
次に、
図15を参照しつつ、上記で説明したCPU901が実行するプログラムによりソフトウェア的に実装された画像認識部11、ハンドリング設定部12(ハンドリング位置推定部21、エンドエフェクタ選択部22)、作業計画部13、逆キネマティクス演算部14等による処理を実現するロボットコントローラ3のハードウェア構成例について説明する。
【0085】
図15に示すように、ロボットコントローラ3は、例えば、CPU901と、ROM903と、RAM905と、ASIC又はFPGA等の特定の用途向けに構築された専用集積回路907と、入力装置913と、出力装置915と、記録装置917と、ドライブ919と、接続ポート921と、通信装置923とを有する。これらの構成は、バス909や入出力インターフェース911を介し相互に信号を伝達可能に接続されている。
【0086】
プログラムは、例えば、ROM903やRAM905、記録装置917等に記録しておくことができる。
【0087】
また、プログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD・MOディスク・DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体925に、一時的又は永続的に記録しておくこともできる。このような記録媒体925は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体925に記録されたプログラムは、ドライブ919により読み出されて、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0088】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等(図示せず)に記録しておくこともできる。この場合、プログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置923がこのプログラムを受信する。そして、通信装置923が受信したプログラムは、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0089】
また、プログラムは、例えば、適宜の外部接続機器927に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート921を介し転送され、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0090】
そして、CPU901が、上記記録装置917に記録されたプログラムに従い各種の処理を実行することにより、上記の画像認識部11、ハンドリング設定部12(ハンドリング位置推定部21、エンドエフェクタ選択部22)、作業計画部13、及び逆キネマティクス演算部14等による処理が実現される。この際、CPU901は、例えば、上記記録装置917からプログラムを直接読み出して実行してもよいし、RAM905に一旦ロードした上で実行してもよい。更にCPU901は、例えば、プログラムを通信装置923やドライブ919、接続ポート921を介し受信する場合、受信したプログラムを記録装置917に記録せずに直接実行してもよい。
【0091】
また、CPU901は、必要に応じて、例えばマウス・キーボード・マイク(図示せず)等の入力装置913から入力する信号や情報に基づいて各種の処理を行ってもよい。
【0092】
そして、CPU901は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置915から出力してもよく、さらにCPU901は、必要に応じてこの処理結果を通信装置923や接続ポート921を介し送信してもよく、上記記録装置917や記録媒体925に記録させてもよい。
【0093】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【0094】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【0095】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。