(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1,2の技術によれば、検出対象物であるワーク形状毎にあらかじめモデルやテンプレートを用意しなければならず、作業が煩雑になるという問題があった。また、ワーク表面とモデル表面を精密に照合して位置姿勢を算出しているため、演算量が膨大になるという問題があった。
【0005】
そこで、本発明の目的は、あらかじめモデル等の準備をする必要がなく、位置姿勢を算出する際の演算量を抑制でき、さらにスカラロボットによるピッキングが可能なワークの位置姿勢認識装置およびこれを用いたピッキングシステムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の位置姿勢認識装置は、以下の特徴を備える。
(1)略円柱状のワークを表した点群データに基づいてワークの位置および姿勢を認識する装置であって、装置を制御する制御手段を備え、制御手段が、ワークのサイズに基づいてモデルを生成するモデル生成手段と、モデルを用いてワークの軸方向を推定する軸方向推定手段と、を含み、軸方向推定手段は、モデルを所定の回転軸周りに回転させ、点群データとの一致度が最も高い回転角度を軸方向として推定することを特徴とする。
【0007】
(2)軸方向推定手段は、点群データに基づいて法線ベクトルを推定し、点群データに含まれる点群を、点群データにより表される略円柱の中心軸に向けて集積させ、点群の集積度に基づいてモデルの回転軸を選択する。
【0008】
(3)制御手段が、ワークのサイズを推定するサイズ推定手段を含み、サイズ推定手段は、所定の値を仮ワーク径とし、仮ワーク径に対応するモデルを、モデル生成手段を用いて生成し、生成したモデルに対応する軸方向を、軸方向推定手段を用いて推定し、点群データとの一致度が最も高いモデルに対応する仮ワーク径を実ワーク径として推定する。
【0009】
(4)軸方向推定手段が、モデル毎に点群データとの一致度の平均値を算出する手段を含み、サイズ推定手段は、平均値が最も高いモデルに対応する仮ワーク径を実ワーク径として推定する。
【0010】
(5)一致度の高い順にモデルを記憶する手段を含み、制御手段は、モデルに基づいてワークが把持可能か否かを判断する把持可能性判断手段を含み、把持可能性判断手段は、記憶手段から一致度の高い順にモデルを読み出して把持可能性を判断し、把持可能なモデルを出力する。
【0011】
また、本発明のピッキングシステムは、以下の特徴を備える。
(6)上記(1)〜(5)の何れかに記載の位置姿勢認識装置と、軸方向に基づいてワークを把持するメインハンドと、メインハンドが把持したワークの姿勢を変更する補助ハンドと、を備えたことを特徴とする。
【0012】
(7)メインハンドによるワークの把持状態を検出するカメラを備え、補助ハンドは、カメラの検出結果に基づいてワークの姿勢を変更する。
【発明の効果】
【0013】
本発明の位置姿勢認識装置およびピッキングシステムによれば、把持対象のワークを略円柱形状に限定し、ランダムに積まれた状態のワークの三次元画像から点群データを生成し、点群データに基づいてワークのサイズと位置姿勢を算出するため、あらかじめモデル等を準備する必要がないという効果を有する。また、精密な照合演算が不要なため、演算量を低減できるという優れた効果も有する。
【発明を実施するための形態】
【0015】
以下、本発明をピッキングシステムに具体化した一実施形態を図面に基づいて説明する。また、以下の説明において、スカラロボット3の座標軸を、背面から前方へ向かう方向をx軸方向、正面視左側から右側へ向かう向きをy軸方向、鉛直方向下から上に向かう方向をz軸とする。
【0016】
図1,2に示すように、この実施形態のピッキングシステム1は、ランダムに積まれた測定対象物表面の三次元形状をスキャンする3Dスキャナ4と、3Dスキャナ4から受信した計測中間データを点群データPに変換し、点群データPに基づいてワークWの位置姿勢を認識する演算制御用PC2と、認識された位置姿勢に基づいてワークWをピッキングし、整列するスカラロボット3と、スカラロボット3によるワークWの把持状態を検出するカメラ5から構成される。このとき、測定対象物に含まれるワークWは、略同形状かつ略円柱状であることを要し、本実施例では、円柱状の胴体部に頭部を有するボルト状のワークWを挙げて説明する。なお、カメラ5は、バックライト6とともに使用しても良い。
【0017】
演算制御用PC2は、演算制御を実施する制御部(CPU)21と、制御部21が算出したデータを保存する記憶部22と、3Dスキャナ4等の外部装置からデータを受信し、制御部21からの制御情報を外部装置に送信するインターフェース23から構成される。
【0018】
制御部21は、3Dスキャナ4から受信した計測中間データを点群データPに変換する点群データ生成部24と、点群データPに基づいてワークWのサイズを推定するサイズ推定部25と、推定したサイズをパラメタとしてモデルMを生成するモデル生成部26と、生成したモデルMを用いて軸方向を推定する軸方向推定部27と、推定した軸方向に基づいてワークWの把持可能性を判断する把持可能性判断部28と、カメラ5の撮影画像を処理してワークWの把持状態を検出する把持状態検出部29から構成される。
【0019】
ここで、点群データPとは、三次元点情報の配列(x,y,z)のことを言う。点群データPの取得の流れは、以下の通りである。
(1)PC2が、3Dスキャナ4へ計測トリガを発行する。
(2)3Dスキャナ4が、計測対象物の表面の三次元形状をスキャンする。
(3)3Dスキャナ4が、計測中間データをPC2へ送信する。
(4)PC2が、計測中間データを点群データPに変換する。
なお、3Dスキャナ4が、点群データPへの変換を実施する場合もある。しかし、点群データPの生成は計算量が多いため、一般的には演算制御PC2にて、専用ライブラリを用いて点群データPに変換される。また、三次元形状のスキャン手法としては、例えば、プロジェクタ方式、ステレオカメラ方式等が挙げられる。
【0020】
モデル生成部26は、パラメタとして半径rを入力し、半径r、高さrの半円柱の側面部からなるワークWのモデルを生成する。
【0021】
軸方向推定部27は、
図3(a)に示すように、まず、点群データPに含まれる各々の点pについて法線ベクトルnを推定する。そして、点pを法線ベクトルnと逆方向に半径r分進めた点qを、法線ベクトルnの曲面を側面に含む円柱の軸候補点とし、軸候補点qを記憶部22に登録する。なお、点qは、下記の数式1により求められる。
【0023】
次に、軸方向推定部27は、軸候補点qの集積度を算出し、集積度の高い点qを特定する。そして、あらかじめ生成したモデルMの原点Oを、点qに配置し、点群データPとの一致度を算出する。一致度は、「モデルM付近に配置された点pの数」を、「モデルMを側面とする半径r、高さrの半円柱に含まれる点pの総数」で除算することにより求められる。軸方向推定部27は、モデルMを、z軸周りに0度から180度まで回転させ、z角度5度毎に一致度を算出して保持する。そして、最も一致度の高かったz角度をモデルMの軸方向として記憶部22に登録する。
【0024】
サイズ推定部25は、
図4(a)に示すように、最小半径r
minと最大半径r
maxを仮定し、下記の数式2により求められるr
iを半径とするモデルM
iをそれぞれ生成し、モデルM
i毎に軸方向推定処理を実施する。モデルM
iの生成および軸方向推定処理は、モデル生成部26および軸方向推定部27の処理と同じであるため説明を省略する。
【0026】
その後、サイズ推定部25は、半径r
i毎に、z角度5度毎に算出した一致度の平均値を求め、最も平均値の高い半径r
iをワークWの半径rとして出力する。
図4(b)に、一致度の平均値をプロットしたグラフを示す。ここでは、r
min=2.0mm、r
max=8.0mmとし、半径rを0.06mm増加させる毎に一致度の平均値をプロットしている。一致度の平均値が最も大きいr
iを、ワークWの実半径rと推定できる。
【0027】
記憶部22は、一致度の高い順にモデルMを記憶している。詳しくは、点群データPには複数のワークWの表面形状が含まれているため、記憶部22では、それぞれのワークWと同じ軸方向を向くモデルMを算出し、一致度の高い順にモデルMを記憶する。
【0028】
把持可能性判断部28は、記憶部22から一致度の高い順にモデルMを読み出し、メインハンド31が把持可能か否かを判断する。把持可能性の判断は、下記(1)〜(3)の条件の何れか一つに該当する場合に、把持不可能と判断する。
(1)メインハンド31による把持位置がスカラロボット3の可動範囲外である。
(2)メインハンド31とパレット12が干渉する。
(3)メインハンド31と、把持対象のワークWとは別のワークWが干渉する。
把持が不可能である場合には、記憶部22から次に一致度の高いモデルMを読み出す。そして、制御部21は、把持可能と判断されたモデルMに対応する制御情報をスカラロボット3に送信する。制御情報は、例えば、モデルMに対応する原点Oの座標(x
o,y
o,z
o)および半径r等の制御パラメタを好適に採用できる。
【0029】
スカラロボット3は、ワークWを把持するメインハンド31と、把持状態検出部29の検出結果に基づいてワークWの姿勢を変更する補助ハンド34から構成される。スカラロボット3は、z軸周りに回転し、メインハンド31を初期位置から補助ハンド34を経由しつつ整列トレイ11位置まで移動させる。
【0030】
メインハンド31は、スカラロボット3のフランジ面に取り付けられ、電動グリッパ32と、ワークWを把持する把持爪33を備える。電動グリッパ32は、把持爪33を平行に移動して開閉させる機構を有する。把持爪33は任意の位置で保持可能であるため、様々なワークW径に対応できる。
【0031】
補助ハンド34は、ピッキングシステム1を収容する筐体10に固定され、ワークWを挟持する挟持爪36と、挟持爪36を開閉させるエアチャック35と、挟持爪36およびエアチャック35を載置した回転ステージ37を備える。回転ステージ37は、−180〜180度の範囲で回転でき、任意の角度に位置決めできる。また、エアチャック35は、初期状態では挟持爪36を開位置に保持し、正圧エアを加圧することによって挟持爪36を閉じる機構を有する。
【0032】
次に、上記構成のピッキングシステム1の処理の流れについて、
図5に基づいて説明する。まず、ワークWがパレット12に投入されると(S1)、3Dスキャナ4がワークWをスキャンし、PC2に計測中間データを送信する。計測中間データを受信したPC2は、点群データPを生成し(S2)、半径をr
min〜r
maxと仮定してサイズを推定する(S3)。その後、実半径rを用いてモデルを生成し(S4)、モデルMを点群データPにあてはめて軸方向を推定する(S5)。ここで、ワークWの位置姿勢認識は、実半径rを用いたモデルの生成および軸方向の推定を主要部とする。この主要部となる処理は、点群データPに含まれるワークWの全てについて実施され、記憶部22では、一致度が高い順にモデルMをソートして記憶する。
【0033】
位置姿勢の認識が終わると、制御部21は、記憶部22から最も一致度の高いモデルMを読み出し、把持対象の候補とする(S6:Yes)。そして、把持対象候補が、メインハンド31により把持可能である場合には(S7:Yes)、スカラロボット3にピッキング動作、続いて整列動作のための制御信号を送信する(S8,S9)。一方、把持不可能である場合には(S7:No)、記憶部22から次に一致度の高いモデルMを読み出し、把持可能性を判断する(S10)。
【0034】
続いて、スカラロボット3の動作について
図6〜9に基づいて説明する。ここでは、メインハンド31の初期位置を座標(x
0,y
0,z
0)、PC2から受信したワークWの把持位置を座標(x
1,y
1,z
1)、所定の遊びをαまたはβとして説明する。また、図面の記号(a)等に付した添え字については、「1」はピッキングシステム1を上方から見下ろした図、「2」はピッキングシステム1を側方から見た図であることを示す。
【0035】
まず、メインハンド31によるピッキング動作を
図6に基づいて説明する。メインハンド31は、PC2からピッキング制御情報を受信し、爪先(把持爪33の先端部)を
図6(a)〜(g)に示すように動作させる。動作の内容を以下に記載する。
(a)爪先を待機位置(x
0,y
0,z
0)で保持する。
(b)爪先をワークWの真上である座標(x
1,y
1,z
0)に移動する。
(c)把持爪33をワークWの中心軸と平行になるように回転させる。
(d)電動グリッパ32を動作させ、爪先を「ワークWの直径+α」つまり、「半径r×2+α」まで開く。
(e)爪先を座標(x
1,y
1,z
1)に移動する。
(f)電動グリッパ32を動作させ、爪先を「直径−β」つまり、「半径r×2−β」まで閉じる。
(g)爪先を座標(x
1,y
1,z
0)に移動する。つまり、z方向に垂直に移動させ、z座標のみ待機位置z
0まで戻す。
その後、爪先を待機位置(x
0,y
0,z
0)まで戻す。このときは、ワークWは、必ずしも水平に把持されているとは限らない。
【0036】
次に、メインハンド31および補助ハンド34による整列動作を
図7〜9に基づいて説明する。ピッキング動作が終了すると、
図7に示すように、カメラ5でワークWを把持した状態のメインハンド31を撮影し、把持状態を検出する。
図7(a)〜(c)は、以下の状態を示している。
(a)メインハンド31、カメラ5、バックライト6の位置関係を示す図である。
(b)メインハンド31をカメラ5から見た図である。
(c)カメラ5が把持状態を撮影し、撮影画像51を出力する。出力した撮影画像51は、PC2に送信され、把持状態検出部29により処理される。
図7(d)〜(h)は、把持状態検出部29における以下の処理を示している。
(d)撮影画像51を二値化する。
(e)あらかじめ撮影したメインハンド31の把持爪33の画像でマスキングし、ワークWの画像のみ抽出する。
(f)抽出したワークWの画像について主成分分析し、ワークWの傾きを検出する。
(g)検出したワークWの傾きに沿って、ワークWの左端と右端を検出する。
(h)左端と右端のうち、太い方をワークの頭端W
hとし、反対側を尾端W
tとする。
【0037】
把持状態を検出した後、
図8,9に示すように、メインハンド31から補助ハンド34、補助ハンド34からメインハンド31にワークWを受け渡し、ワークWの姿勢を変更する。
図8(a)〜(f)および
図9の(g)〜(l)は、以下の動作を示している。
(a)初期状態では、補助ハンド34の挟持爪36は開いている。
(b)補助ハンド34の回転ステージ37の角度をワークWの傾きにあわせて回転させる。
(c)メインハンド31を移動させ、ワークWの尾端W
tを、補助ハンド34の爪先(挟持爪36の先端部)付近まで運ぶ。
(d)メインハンド31をさらに移動させ、ワークWの尾端W
tを、補助ハンド34の挟持爪36の間に運ぶ。
(e)補助ハンド34の挟持爪36をワークWに合わせて閉じる
(f)メインハンド31の把持爪33を開いてワークWを開放する。
(g)メインハンド31をz方向に移動させる。
(h)補助ハンド34の回転ステージ37の角度を0度に戻す。
(i)メインハンド31をワークWの把持位置まで降ろす。
(j)メインハンド31を閉じてワークWを把持するとともに、補助ハンド34を開く。
(k)メインハンド31を横に移動して、補助ハンド34からワークWを引き抜く。
(l)スカラロボット3がz軸周りに回転移動し、メインハンド31は、ワークWを整列トレイに載置する。
【0038】
以上の構成のピッキングシステム1によれば、把持対象のワークを略円柱形状に限定し、ランダムに積まれたワークWの計測中間データから点群データPを生成し、点群データPに基づいてワークWの位置および姿勢を算出するため、あらかじめモデル等を準備する必要がなく、作業工程を省くことができるという効果を有する。また、モデルMのあてはめの際に、精密な照合演算が不要であるため、演算量を低減できるという優れた効果も有する。さらに、本発明のピッキングシステムによれば、メインハンドが把持したワークの姿勢を補助ハンドによって補正するため、制御情報が少ないスカラロボットを採用できるという効果も有する。
【0039】
その他、本発明は、上記実施形態に限定されるものではなく、発明の趣旨を逸脱しない範囲で、各部の構成を任意に変更して実施することも可能である。
【課題】 ランダムに積まれたワークの位置姿勢を少ない演算量で認識でき、また、制御情報が少ないスカラロボットを使用できる位置姿勢認識装置およびこれを利用したピッキングシステムを提供する。
【解決手段】 ランダムに積まれたワークWの点群データPを生成する。ワークWの半径rを推定し、推定した半径rに基づいてモデルMを生成する。生成したモデルMを、法線ベクトルnに基づいて推定した原点Oに配置し、z軸周りに回転させ、所定の回転角度毎に点群データPとの一致度を算出する。最も一致度が大きい回転角度をワークWの軸方向として推定する。