(58)【調査した分野】(Int.Cl.,DB名)
前記ポーズ生成手段は、生成したポーズについて逆運動学の解を算出し、解が存在しないポーズに紐づく前記候補を除外する請求項1〜3のいずれか一項に記載の経路生成装置。
前記ポーズ生成手段は、前記候補に基づいて、ハンドが前記接近ポーズから把持ポーズに向かう接近動作およびハンドが前記把持ポーズから離脱ポーズに向かう離脱動作と、を生成し、
前記ポーズ生成手段は、生成した各動作について、
(二)接近動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと、
(ホ)離脱動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと、
を検査し、(二)または(ホ)のいずれか一方を満たさない場合に、該動作に紐づく候補を除外する請求項1〜6のいずれか一項に記載の経路生成装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の技術によれば、ピッキングを開始する前に、ロボットにワークを登録してワークの形態を記憶させる必要があるため、手間と工数がかかるという問題があった。また、現場にワークを登録できる技術者がいない場合、作業進められないという問題もあった。
【0005】
そこで、本発明の目的は、ワークを登録する手間を排し、自動的にロボットの動作経路を生成できる経路生成装置および経路生成プログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の経路生成装置は、以下の特徴を備える。
(1)ピッキングロボットの動作経路を生成する装置であって、ピッキングロボットを制御する制御手段を備え、ピッキングロボットが、ハンドと、ハンドを支持するアームと、を含み、制御手段が、ハンドの位置情報および姿勢情報を含むポーズを生成するポーズ生成手段を含み、制御手段は、所定の条件を満たすポーズに基づいて動作経路を生成する。
【0007】
(2)ポーズには、ハンドがワークを把持する把持ポーズの候補が含まれ、ポーズ生成手段が、候補を生成する候補生成手段を含み、候補生成手段は、ワークのポーズおよびワークの大きさに基づいて一の候補を生成し、該一の候補を所定の回転軸周りに回転させて他の複数の候補を生成する。
【0008】
(3)ポーズには、ハンドが把持ポーズの前に形成する接近ポーズと、ハンドが把持ポーズの後に形成する離脱ポーズと、が含まれ、ポーズ生成手段は、候補に基づいて接近ポーズおよび離脱ポーズを生成する。
【0009】
(4)ポーズ生成手段は、生成したポーズについて逆運動学の解を算出し、解が存在しないポーズに紐づく候補を除外する。
【0010】
(5)ポーズ生成手段は、所定の干渉条件に基づいて物体同士の干渉を検出し、干渉を検出したポーズに紐づく候補を除外する。
【0011】
(6)このとき、干渉条件には、ハンドを仮想的に表すH領域と、アームを仮想的に表すA領域と、ワークの収容容器を仮想的に表すY領域と、ワークおよびワークを把持したハンドを仮想的に表すHW領域と、H,A,Y,
HW領域に各々所定のマージンを付加したH,A,Y,
HW拡張領域と、ハンド先端から所定距離に含まれるJ領域と、について、
(条件1)H,A,Y領域が相互に干渉しないこと、
(条件2)H,A,Y,
HW領域が相互に干渉しないこと、
(条件3)H,A,Y領域が相互に干渉しないこと、または、干渉した場合であっても、干渉位置がJ領域に該当すること、
(条件4)H,A,Y拡張領域が相互に干渉しないこと、
(条件5)H,A,Y,
HW拡張領域が相互に干渉しないこと、が含まれる。
【0012】
(7)ポーズ生成手段は、生成したポーズについて、
(イ)接近ポーズの関節位置で(条件3)を満たすこと、
(ロ)候補の関節位置で(条件3)を満たすこと、
(ハ)離脱ポーズの関節位置で(条件3)および(条件5)を満たすこと、
を検査し、(イ)〜(ハ)のいずれか一つを満たさない場合に、該ポーズに紐づく候補を除外する。
【0013】
ポーズ生成手段は、候補に基づいて、ハンドが接近ポーズから把持ポーズに向かう接近動作およびハンドが把持ポーズから離脱ポーズに向かう離脱動作と、を生成し、ポーズ生成手段は、生成した各動作について、
(二)接近動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと、
(ホ)離脱動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと、
を検査し、(二)または(ホ)のいずれか一方を満たさない場合に、該動作に紐づく候補を除外する。
【0014】
また、上記課題を解決するために、本発明の経路生成プログラムは、上記(1)〜(8)の何れか一つに記載の制御手段を備える。
【発明の効果】
【0015】
本発明の経路生成装置および経路生成プログラムによれば、ワークのポーズおよびワークのサイズに基づいて把持ポーズを生成し、生成した把持ポーズに基づいて自動的にピッキングロボットの動作経路を生成するため、あらかじめワークを登録する必要がなく、手間と工数を削減できるという優れた効果を有する。
【発明を実施するための形態】
【0017】
以下、本発明をピッキングシステムに用いる演算用PCに具体化した一実施形態を図面に基づいて説明する。以下の説明において、ピッキングシステム全体を基準とするワールド座標系、各々のワークWを基準とするワーク座標系、ピッキングロボット3のハンド32を基準とするハンド座標系を用いる。詳しくは、ワールド座標系は、ピッキングロボット3の背面から前方へ向かう方向をx軸正方向、正面視左側から右側へ向かう向きをy軸正方向、鉛直方向下から上に向かう方向をz軸正方向とし、ワーク座標系は、円柱形ワークWの中心Oを通過する中心軸に沿って紙面奥から手前に向かう向きをx軸正方向、円柱の紙面向かって左側面から右側面に向かう方向をy軸正方向、鉛直方向下から上に向かう方向をz軸正方向とし(
図5,6参照)、ハンド座標系は、ハンド32の基端から先端に向かう方向をz軸正方向とする(
図7参照)。また、「ポーズ」は、所定のxyz空間のある一点を示す位置と、xyz軸を回転軸とする回転量を示す姿勢の二つの要素を含むものとする。
【0018】
図1は、ピッキングシステム1の概略図である。ピッキングシステム1は、ランダムに積まれたワークWをピッキングするピッキングロボット3と、ワークW表面の三次元形状をスキャンする3Dスキャナ4と、3Dスキャナ4から受信した計測中間データに基づいてピッキングロボット3が動作する経路を演算する経路生成装置として機能する演算用PC2から構成される。このとき、演算用PC2に経路生成プログラムをインストールして機能を実装しても良い。また、3Dスキャナ4は、ワークWの収容容器としてのパレット7をスキャンし、パレット7の2Dデータおよび3Dデータを取得するためにも用いられる。
【0019】
ピッキングロボット3は、ワークWを把持するハンド32とハンド32を所定の姿勢に支持するアーム31から構成される。ハンド32を制御するハンドコントローラ6と、ピッキングロボット3を制御するロボットコントローラ5は、演算用PC2に接続され、演算用PC2から受信した制御信号に基づいて、ハンド32またはピッキングロボット3を作動させる。このとき、経路生成装置をロボットコントローラ5またはハンドコントローラ6に搭載すること、経路生成プログラムをロボットコントローラ5またはハンドコントローラ6にインストールすることも採用できる。
【0020】
図2に示すように、演算用PC2は、ピッキングロボット3を制御する制御部11と、制御部11が算出したデータを保存する記憶部12と、3Dスキャナ4、ロボットコントローラ5、ハンドコントローラ6等の外部装置との間で信号やデータをやりとりするインターフェース(図示なし)から構成される。
【0021】
制御部11は、パレット7の3Dデータに基づいてパレット7を検出するパレット検出部21と、把持する対象となるワークWの位置、軸方向(姿勢)、大きさを認識するワーク認識部13と、ピッキングロボット3の動作経路を生成する経路生成装置または経路生成プログラムとして機能する経路生成部22から構成される。なお、このときの動作経路とは、ピッキングロボット3がワークWを把持する動作経路を示す。
【0022】
パレット検出部21は、記憶部12から、パレット縁部を抽出した点群データを読み出し、スキャンされた3Dデータと照合して、パレット7を検出し、パレット7の位置決めを実施する。なお、記憶部12には、当該画像データのほか、パレット7の深さ情報があらかじめ登録されている。
【0023】
ワーク認識部13は、3Dスキャナ4から受信した計測中間データを点群データPに変換する点群データ生成部14と、点群データPに基づいてワークWのサイズを推定するサイズ推定部15と、推定したサイズをパラメタとしてモデルMを生成するモデル生成部16と、生成したモデルMを用いて軸方向を推定する軸方向推定部17から構成される。
【0024】
経路生成部22は、ピッキングロボット3がワークWを把持するポーズを生成する把持ポーズ生成部24から構成され、把持ポーズ生成部24は、把持ポーズの候補となる複数のポーズを生成する候補生成部25を含む。
【0025】
ここで、点群データ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に変換される。また、三次元形状のスキャン手法としては、例えば、プロジェクタ方式、ステレオカメラ方式等が挙げられる。
【0026】
モデル生成部16は、パラメタとして半径rを入力し、半径r、高さrの半円柱の側面部からなるワークWのモデルを生成する。
【0027】
以下、ワーク認識部13の構成について説明する。
軸方向推定部17は、
図3(a)に示すように、まず、点群データPに含まれる各々の点pについて法線ベクトルnを推定する。そして、点pを法線ベクトルnと逆方向に半径r分進めた点qを、法線ベクトルnの曲面を側面に含む円柱の軸候補点とし、軸候補点qを記憶部12に登録する。なお、点qは、下記の数式1により求められる。
【0029】
次に、軸方向推定部17は、軸候補点qの集積度を算出し、集積度の高い点qを特定する。そして、あらかじめ生成したモデルMの原点Oを、点qに配置し、モデルMと点群データPとの一致度Dを算出する。一致度Dは、「モデルM付近に配置された点pの数」を、「モデルMを側面とする半径r、高さrの半円柱に含まれる点pの総数」で除算することにより求められる。軸方向推定部17は、モデルMを、z軸周りに0度から180度まで回転させ、z角度5度毎に一致度Dを算出して保持する。そして、最も一致度Dの高かったz角度をモデルMの軸方向として記憶部12に登録する。
【0030】
サイズ推定部15は、
図4(a)に示すように、最小半径r
minと最大半径r
maxを仮定し、下記の数式2により求められるr
i(r
min≦r
i≦r
max:i=0〜100)を半径とするモデルM
iをそれぞれ生成し、モデルM
i毎に軸方向を推定する。モデルM
iの生成および軸方向の推定は、モデル生成部16および軸方向推定部17による処理と同じであるため説明を省略する。
【0032】
その後、サイズ推定部25は、各半径r
iおよび集積度の高い点qについて、モデルM
iと点群データPとの一致度D
iを算出する。一致度D
iは、一致度Dと同様に、「モデルM
i付近に配置された点pの数」を、「モデルM
iを側面とする半径r
i、高さr
iの半円柱に含まれる点pの総数」で除算することにより求められる。
【0033】
サイズ推定部25は、モデルM
iを、z軸周りに0度から180度まで回転させ、z角度5度毎および集積度の高い軸候補点q毎に一致度D
i(r
i,q)を求める。そして、サイズ推定部25は、一致度D
i(r
i,q)の最大値maxD
i(r
i,q)を求め、さらに、maxD
i(r
i,q)をqに関して平均して、平均値maxD
i(r
i)を求める。その後、サイズ推定部25は、maxD
i(r
i)が最大になる半径r
iを実半径rとして出力する。
【0034】
図4(b)に、maxD
i(r
i)をプロットしたグラフを示す。ここでは、r
min=2.0mm、r
max=8.0mmとし、半径r
iを0.06mm増加させた毎のmaxD
iをプロットしている。この例では、maxD
iが最も大きいr
iである4.6mm付近が、ワークWの実半径rと推定される。
【0035】
記憶部12は、一致度の高い順にモデルMを記憶している。詳しくは、点群データPには複数のワークWの表面形状が含まれているため、記憶部12では、それぞれのワークWと同じ軸方向を向くモデルMを算出し、一致度の高い順にモデルMを記憶する。
【0036】
続いて、経路生成部22の構成について説明する。
まず、
図5に示すように、ポーズ生成部24の候補生成部25は、モデルMの原点Oの座標(x
o,y
o,z
o)、軸方向のベクトル、半径rに基づいて、把持ポーズの候補を一つ生成する。また、把持位置は、ハンド32がワークWを支持する支持方法により定まる。例えば、吸着式ハンドの場合は、把持位置は、位置Pa(x
o,y
o,z
o+r)となり、挟み込み式ハンドの場合は、把持位置は位置Pb(x
o,y
o,z
o)となり、すくい上げ式ハンドの場合は、位置Pc(x
o,y
o,z
o−r)となる。このとき、把持位置Pa,Pb,Pcは、実際のハンド32との接触点ではなく、例えば、挟み込み式ハンドの場合は左右の爪の中点となり、「し」型のすくい上げ式ハンドの場合は「し」の下端を示す。候補生成部25は、これらの位置Pa,Pb,Pcのいずれかに基づいて一つの把持ポーズの候補56を生成する。
【0037】
図6に示すように、候補生成部25は、ワークWのポーズおよび大きさに基づいて一の候補56を生成し、生成した一の候補56を所定の軸周りに回転させ、所定の刻み角度毎に他の候補56を生成する。具体的には、一の候補56を、位置はモデルMの原点O、姿勢はワーク座標系のx軸(モデルMの軸方向)、大きさはモデルMの半径rに基づいて生成する(
図6(a))。そして、一の候補56を、中心軸(ワーク座標系のx軸、+方向)周りに−90〜+90度の範囲で5度刻みに回転させ、他の複数の候補56を生成する。次に、先程の一の候補56を、ワーク座標系のWzを中心軸として180度回転させ、さらに新たな一の候補56を生成する(
図6(b)。そして、該新たな一の候補56を、中心軸(ワーク座標系のx軸、−方向)周りに−90〜+90度の範囲で5度刻みに回転させ、さらなる他の複数の候補56を生成し、最終的に、73個の候補56を生成する。なお、当該候補生成方法は、
図6(c)に示すように、面状のワークおよびリング状のワークに応用できる。例えば、面状のワークを吸着したり、リング状のワークに差し込むポーズの一の候補を生成し、ワーク座標系におけるz軸を中心軸として、−180度〜+180度の範囲を5度刻みに回転させ、73個の候補56を生成できる。なお、刻み角度は、適宜変更可能である。
【0038】
このようにして生成された各々の候補に基づいて、
図7に示すように、ポーズ生成部24は、ハンド32が候補56まで接近する接近ポーズ52と、ハンド32が候補56から離脱する離脱ポーズ54を生成する。具体的には、接近ポーズ52は、候補56のポーズを基点としてハンド32の先端部から基端部に向かう方向(ハンド座標系z軸、−方向)に、所定距離移動させたものであり、離脱ポーズ54は、候補56のポーズを基点として鉛直上方向(ワールド座標系z軸、+方向58)に所定距離移動したものである。
【0039】
また、このとき、ポーズ生成部24は、候補56と接近ポーズ52との間に生成した直線補間動作を接近動作57とし、候補56と離脱ポーズ54との間に生成した直線補間動作を離脱動作58とする。
【0040】
ここで、
図8〜10に示すように、記憶部12では、物体同士の干渉を検出するための所定の領域情報が保存されている。領域情報には、ハンドを仮想的に表すH領域と、アームを仮想的に表すA領域と、ワークの収容容器を仮想的に表すY領域と、ワークWおよびワークWを把持したハンド32を仮想的に表すHW領域と、H,A,Y,
HW領域に所定のマージンを付加したH,A,Y,
HW拡張領域と、ハンド32先端から所定距離dに含まれるJ領域が含まれる。
【0041】
次に、ポーズ生成部24は、生成した各々の候補56と、接近ポーズ52と、離脱ポーズ54とについて、以下(条件1)〜(条件5)の干渉条件について、(イ)〜(ホ)の検査を実施する。ポーズ生成部24は、(イ)〜(ホ)のいずれかの検査が不合格である場合は、検査対象の候補56を除外する。
(条件1)H,A,Y領域が相互に干渉しないこと(
図8(a)参照)。
(条件2)H,A,Y,
HW領域が相互に干渉しないこと(
図9(a)参照)。
(条件3)H,A,Y領域が相互に干渉しないこと、または、干渉した場合であっても、干渉位置がJ領域に該当すること(
図10参照)。
(条件4)H,A,Y拡張領域が相互に干渉しないこと(
図8(b)参照)。
(条件5)H,A,Y,
HW拡張領域が相互に干渉しないこと(
図9(b)参照)。
(イ)接近ポーズ52について逆運動学の解が存在し、接近ポーズ52の関節位置で、(条件3)を満たすこと。
(ロ)候補56について逆運動学の解が存在し、候補56の関節位置で、(条件3)を満たすこと。
(ハ)離脱ポーズ55について逆運動学の解が存在し、離脱ポーズ55の関節位置で、(条件3)および(条件5)を満たすこと。
(二)接近動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと。
(ホ)離脱動作を時系列に細分し、各時間毎の関節位置において(条件3)を満たすこと。
このとき、(ハ)の検査が不合格であった場合には、離脱ポーズ54をパレット7の中央位置に向けて、ワールド座標系のxy方向に所定距離分、平行移動させ、(ハ)について再検査することが好ましい。パレット7の隅に配置されたワークWをパレット7から引き離し、ワークWとパレット7との干渉を回避するように調整することが可能である。また、時系列に細分化する場合には、ピッキングロボット3の動作の0.1%ずつ、つまり移動距離2〜3mmごとに検査することが好適である。(イ)〜(ホ)の検査を実施する際のマージン量は、2mm以下であることが望ましい。
【0042】
最後に、制御部11は、ポーズ生成部24が生成し、ポーズ生成部24により除外されなかった候補56に基づいて、ピッキングロボット3の動作する経路を生成する。このとき、制御部11は、あらかじめ記憶部12に保存されている開始ポーズ51と終了ポーズ55を読み出し、開始ポーズ51から接近ポーズ52に向かう経路を、(条件4)の下で自動生成する。また、離脱ポーズ54から終了ポーズ55に向かう経路を、(条件5)の下で自動生成する。開始ポーズ51から接近ポーズ52に向かう経路および離脱ポーズ54から終了ポーズ55に向かう経路を自動生成する際のマージン量は、5mm程度であることが望ましい。
【0043】
経路の自動生成は、例えば、KPIECEアルゴリズムを用いることができる。また、除外されなかった候補56が複数存在する場合には、これらの候補について並列的に経路を自動生成し、最も速く生成された経路を実際のピッキング経路として採用する。一方、候補56が全て除外された場合や、所定の時間内に経路が生成されなかった場合には、経路の生成を中止し、次に一致度の高いモデルMを取り出す。
【0044】
次に、上記構成の経路生成部22の処理の流れについて、
図11に基づいて説明する。まず、3Dスキャナ4が、ワークWがランダムに山積みされたパレット7をスキャンし、スキャンされた3Dデータに基づいてパレット7を検出する(S1)。次に、3Dスキャナ4は、ワークWをスキャンし、ワーク認識部13が、スキャン結果に基づいてワークWを認識し、認識結果としてのモデルMを一致度の高い順に記憶部12に保存する(S2)。ワークWの認識が終了すると、処理は経路生成部22が引き継ぐ。
【0045】
経路生成部22において、ポーズ生成部24の候補生成部25は、記憶部12から最も一致度の高いモデルMを一つ取り出し(S3)、モデルMに基づいて把持ポーズの候補56を生成する(S4)。候補56が生成されると、ポーズ生成部24は、全ての候補56について検査を実施し、検査に不合格であった候補56を除外する(S5)。全ての候補56が除外された場合は(S6:No)、次に一致度の高いモデルMを一つ取り出す(S3)。候補56が残った場合は、制御部11は、全ての候補56について並列的に経路の自動生成を実施する。全ての候補56について、所定の時間内に経路が生成されなかった場合には(S7:No)、次に一致度の高いモデルMを一つ取り出す(S3)。一方、所定の時間内に経路が生成された場合には、最も速く経路を生成できた経路を出力する。その後、ピッキングロボット3は出力された経路に従って動作するように制御され、ピッキングが実施される(S8)。
【0046】
ここで、ワーク認識部13の処理の流れについて、
図12に基づいて説明する。3Dスキャナ4がワークWをスキャンし、演算用PC2に計測中間データを送信する。計測中間データを受信した演算用PC2は、点群データPを生成し(S21)、半径をr
min〜r
maxと仮定してサイズを推定する(S22)。その後、実半径rを用いてモデルを生成し(S23)、モデルMを点群データPにあてはめて軸方向を推定する(S24)。ここで、ワーク認識は、実半径rを用いたモデルの生成および軸方向の推定を主要部とする。この主要部となる処理は、点群データPに含まれるワークWの全てについて実施され、記憶部12では、一致度が高い順にモデルMをソートして保存する(S25)。
【0047】
以上の構成の経路生成装置および経路生成プログラムによれば、ワークWのポーズである位置、軸方向(姿勢)、大きさに基づいて把持ポーズ53を生成し、生成した把持ポーズ53をワークWの軸周りに回転させて自動的に候補56を生成するため、ワークWの登録が不要となり、手間と工数を削減できるという優れた効果を有する。また、生成した候補56に基づき、H,A,Y,
HW拡張領域に基づいて経路を自動生成するため、実際にピッキングロボット3を作動させた場合に、アーム31、ハンド32、ワークW、パレット7との間の接触や衝突をより良く防止することが可能である。さらに、(条件3)を設け、領域Jにおける干渉については無視することとしたため、過敏な検出を排除して、パレット7の隅に配置されたワークWまでハンド32の先端を届かせて、ピッキングすることができるという効果も有する。
【0048】
その他、本発明は、上記実施形態に限定されるものではなく、発明の趣旨を逸脱しない範囲で、各部の構成を任意に変更して実施することも可能である。例えば、マージンの大きさについて、領域毎に異なる値に設けることも可能である。