(57)【特許請求の範囲】
【請求項１】
部品の形状を示す部品形状データから前記部品の姿勢を分類し、複数の投入姿勢として生成する部品投入姿勢算出部と、
ハンドの形状を示すハンドデータから前記投入姿勢毎に前記ハンドの把持姿勢を選定する把持姿勢選定部と、
前記把持姿勢で前記部品を把持する前記ハンドの把持面及び前記ハンドに把持される前記部品の被把持面がそれぞれ一致する位置を纏めた領域を把持位置領域として抽出する把持位置領域抽出部と、
前記把持位置領域内で前記部品を前記ハンドで把持する把持位置を選定し、前記把持姿勢での前記把持位置を前記ハンドの把持位置姿勢として前記投入姿勢毎に少なくとも１つ出力する把持位置姿勢出力部と
を備え、
前記把持姿勢選定部は、前記部品の前記投入姿勢毎に前記ハンドのアプローチ方向及び前記ハンドの取付け部から前記ハンドの先端に向かう方向を一致させたとき、前記ハンドの前記把持面の法線と前記部品の各面の法線とが成す角度が、所定の許容角度以内となる前記部品の面を前記被把持面として抽出し、前記ハンドの前記把持面の法線と前記部品の前記被把持面の法線を合わせたときの前記ハンドの姿勢を前記把持姿勢として前記投入姿勢毎に選定する
ことを特徴とする把持位置姿勢教示装置。
【請求項２】
前記部品投入姿勢算出部は、前記部品の姿勢を前記部品の向きの範囲で分類し、前記投入姿勢として生成することを特徴とする請求項１に記載の把持位置姿勢教示装置。
【請求項３】
前記部品投入姿勢算出部は、前記部品の姿勢を安定姿勢毎に分類し、前記投入姿勢として生成することを特徴とする請求項１又は２に記載の把持位置姿勢教示装置。
【請求項４】
前記把持位置姿勢出力部は、前記投入姿勢における前記把持位置の選択を促す表示を表示部に表示させ、ユーザが選択した前記投入姿勢における把持位置を前記把持位置姿勢として選定する請求項１から３のいずれか一項に記載の把持位置姿勢教示装置。
【請求項５】
前記把持位置姿勢出力部は、前記把持位置領域抽出部から抽出された複数の前記把持位置領域から最も広いもの又は前記ハンドとの接触面の数が多いものを前記把持位置領域として選定することを特徴とする請求項１から４のいずれか一項に記載の把持位置姿勢教示装置。
【請求項６】
前記把持位置姿勢出力部は、前記把持位置領域の重心又は前記部品の重心に近い前記把持位置領域内の位置を前記把持位置として選定することを特徴とする請求項１から５のいずれか一項に記載の把持位置姿勢教示装置。
【請求項７】
前記部品に対する前記ハンドの位置姿勢を示す把持位置姿勢データを備えたデータベースを検索し、前記部品投入姿勢算出部が算出した前記投入姿勢に対して適用可能な前記把持位置姿勢データが抽出された場合は、前記把持位置姿勢データを前記ハンドの前記把持位置姿勢として出力するデータベース検索部を備えることを特徴とする請求項１から６のいずれか一項に記載の把持位置姿勢教示装置。
【請求項８】
前記部品に対する前記ハンドの姿勢を示す把持姿勢データが入力される把持姿勢入力部を備えることを特徴とする請求項１から７のいずれか一項に記載の把持位置姿勢教示装置。
【請求項９】
前記把持位置姿勢出力部が出力した前記ハンドの前記把持位置姿勢を調整する把持位置姿勢調整部を備えることを特徴とする請求項１から８のいずれか一項に記載の把持位置姿勢教示装置。
【請求項１０】
部品の形状を示す部品形状データから前記部品の姿勢を分類し、複数の投入姿勢として生成する部品投入姿勢算出ステップと、
ハンドの形状を示すハンドデータから前記投入姿勢毎に前記ハンドの把持姿勢を選定する把持姿勢選定ステップと、
前記把持姿勢で前記部品を把持する前記ハンドの把持面及び前記ハンドに把持される前記部品の被把持面がそれぞれ一致する位置を纏めた領域を把持位置領域として抽出する把持位置領域抽出ステップと、
前記把持位置領域内で前記部品を前記ハンドで把持する把持位置を選定し、前記把持姿勢での前記把持位置を前記ハンドの把持位置姿勢として前記投入姿勢毎に少なくとも１つ出力する把持位置姿勢出力ステップと
を備え、
前記把持姿勢選定ステップは、前記部品の前記投入姿勢毎に前記ハンドのアプローチ方向及び前記ハンドの取付け部から前記ハンドの先端に向かう方向を一致させたとき、前記ハンドの前記把持面の法線と前記部品の各面の法線とが成す角度が、所定の許容角度以内となる前記部品の面を前記被把持面として抽出し、前記ハンドの前記把持面の法線と前記部品の前記被把持面の法線を合わせたときの前記ハンドの姿勢を前記把持姿勢として前記投入姿勢毎に選定する
ことを特徴とする把持位置姿勢教示方法。
【請求項１１】
部品形状データ及びハンドデータから、ハンドの把持位置姿勢を生成する請求項１から９のいずれか一項に記載の把持位置姿勢教示装置と、
投入される部品の位置及び姿勢に関する情報を認識するセンサと、
前記センサからの情報及び前記把持位置姿勢教示装置で生成された前記把持位置姿勢に基づいて前記部品を把持するロボットと
を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、部品を把持する産業用ロボットの把持位置姿勢教示装置、把持位置姿勢教示方法及びロボットシステムに関する。
【背景技術】
【０００２】
従来から、部品を把持して所定の位置及び姿勢に整列させるハンドを備えた産業用ロボットが知られている。このようなロボットには、所定の動作を実行させるために予め把持動作が教示されるが、この教示作業には多大な時間がかかるため、教示作業の自動化や短縮が求められている。この方法として、予めロボットに登録された部品の形状データと、各部品に対するハンドの把持位置及び把持姿勢（以下、纏めて把持位置姿勢と表記する）のデータとに基づいて、ロボットに把持動作を実行させる技術が開発されている。【０００３】
特許文献１では、複数の部品の形状データと、各部品に対するハンドの把持位置姿勢とが登録されたデータベースを備え、把持対象の部品と類似形状の部品の形状データをデータベースから検索し、類似形状の部品に対する把持位置姿勢をロボットに実行させている。また、特許文献２では、複数の素形状モデルと、各素形状モデルに対するハンドの把持位置姿勢とが登録されたデータベースを備え、把持対象の部品を素形状モデルに当てはめて、ハンドの把持位置姿勢を決定している。ここで素形状とは、例えば、円柱、四角柱、円筒等の３次元幾何要素のモデルである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５６８３号公報
【特許文献２】国際公開第２００９/１１３３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、部品が乱雑に積み重なったバラ積み状態で投入される場合、部品が取り得る各姿勢に対して適用可能なハンドの把持位置姿勢を予めデータベースに登録しておくことは困難であり、把持位置姿勢がデータベースに登録されていない場合には、ロボットが把持動作を実行できないという問題があった。例えば、ロボットに把持されることを想定した取手部分を備えた部品が傾いた状態で投入され、当該取手部分が平面に接触している場合には、予めデータベースに登録されている当該取手部分を把持するための把持位置姿勢では把持動作を実行することができない。【０００６】
本発明は、上述のような問題を解決するためになされたもので、投入される部品が取り得る各姿勢に対して適用可能なハンドの把持位置姿勢を生成することが可能な把持位置姿勢教示装置を提供することを目的とする。また、把持位置姿勢教示方法を提供することを目的とする。更に、把持位置姿勢教示装置を適用したロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る把持位置姿勢教示装置は、部品の形状を示す部品形状データから部品の姿勢を分類し、複数の投入姿勢として生成する部品投入姿勢算出部と、ハンドの形状を示すハンドデータから投入姿勢毎にハンドの把持姿勢を選定する把持姿勢選定部と、把持姿勢で部品を把持するハンドの把持面及びハンドに把持される部品の被把持面がそれぞれ一致する位置を纏めた領域を把持位置領域として抽出する把持位置領域抽出部と、把持位置領域内で部品をハンドで把持する把持位置を選定し、把持姿勢での把持位置をハンドの把持位置姿勢として投入姿勢毎に少なくとも１つ出力する把持位置姿勢出力部とを備え、把持姿勢選定部は、部品の投入姿勢毎にハンドのアプローチ方向及びハンドの取付け部からハンドの先端に向かう方向を一致させたとき、ハンドの把持面の法線と部品の各面の法線とが成す角度が、所定の許容角度以内となる部品の面を被把持面として抽出し、ハンドの把持面の法線と部品の被把持面の法線を合わせたときのハンドの姿勢を把持姿勢として投入姿勢毎に選定することを特徴とする。
【０００８】
また、本発明に係る把持位置姿勢教示方法は、部品の形状を示す部品形状データから部品の姿勢を分類し、複数の投入姿勢として生成する部品投入姿勢算出ステップと、ハンドの形状を示すハンドデータから投入姿勢毎にハンドの把持姿勢を選定する把持姿勢選定ステップと、把持姿勢で部品を把持するハンドの把持面及びハンドに把持される部品の被把持面がそれぞれ一致する位置を纏めた領域を把持位置領域として抽出する把持位置領域抽出ステップと、把持位置領域内で部品をハンドで把持する把持位置を選定し、把持姿勢での把持位置をハンドの把持位置姿勢として投入姿勢毎に少なくとも１つ出力する把持位置姿勢出力ステップとを備え、把持姿勢選定ステップは、部品の投入姿勢毎にハンドのアプローチ方向及びハンドの取付け部からハンドの先端に向かう方向を一致させたとき、ハンドの把持面の法線と部品の各面の法線とが成す角度が、所定の許容角度以内となる部品の面を被把持面として抽出し、ハンドの把持面の法線と部品の被把持面の法線を合わせたときのハンドの姿勢を把持姿勢として投入姿勢毎に選定することを特徴とする。
【０００９】
また、本発明に係るロボットシステムは、部品形状データ及びハンドデータから、ハンドの把持位置姿勢を生成する把持位置姿勢教示装置と、投入される部品の位置及び姿勢に関する情報を認識するセンサと、センサからの情報及び把持位置姿勢教示装置で生成された把持位置姿勢に基づいて部品を把持するロボットとを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、部品が取り得る各姿勢に対して適用可能な把持位置姿勢を生成することができ、把持位置姿勢がデータベースに登録されていない場合でも、ロボットに把持位置姿勢を教示することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係る把持位置姿勢教示装置を備えたロボットシステムの概略構成図である。
【図２】本発明の実施の形態１に係る把持位置姿勢教示装置の概略構成図である。
【図３】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図４】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図５】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図６】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図７】本発明の実施の形態１に係るハンドと部品の一例を示す模式図である。
【図８】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図９】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図１０】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図１１】本発明の実施の形態１に係る把持位置姿勢教示装置の処理工程の一例を示す工程図である。
【図１２】本発明の実施の形態１に係る把持位置姿勢教示装置の処理工程の一例を示す模式図である。
【図１３】本発明の実施の形態１に係るハンドの一例を示す模式図である。
【図１４】本発明の実施の形態１に係る部品の把持位置姿勢の一例を示す模式図である。
【図１５】本発明の実施の形態２に係る把持位置姿勢教示装置を適用するロボットシステムの一例を示す模式図である。
【図１６】本発明の実施の形態３に係る把持位置姿勢教示装置の概略構成図である。
【図１７】本発明の実施の形態４に係る把持位置姿勢教示装置の概略構成図である。
【図１８】本発明の実施の形態５に係る把持位置姿勢教示装置の概略構成図である。
【図１９】本発明の実施の形態に係る吸着ハンドの一例を示す模式図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態に係る把持位置姿勢教示装置、把持位置姿勢教示方法及び把持位置姿勢教示装置を備えたロボットシステムについて図面を用いて具体的に説明する。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１に係る把持位置姿勢教示装置を備えたロボットシステムの概略構成図である。図１に示すように、ロボットシステム１００は、ロボット２００、把持位置姿勢教示装置３００、センサ５０を含んで構成され、互いに通信可能に接続されている。ロボットシステム１００は、把持位置姿勢教示装置３００によって生成された把持位置姿勢をロボット２００に動作させる。
【００１４】
ロボット２００は、例えば垂直多関節型ロボットで、ロボット本体２０１と、ロボット制御部２０２を有する。ロボット本体２０１は、部品１０（図示せず）を把持する把持面を有する任意の形状のハンド２０を備える。ハンド２０は、例えば、開閉可能な指部２１を備え、本体２０１の回転駆動する手首部２２の回転軸方向に向けて取り付けられる。ロボット制御部２０２は、ロボット２００の動作が記述された制御プログラムを備え、センサ５０、把持位置姿勢教示装置３００等から取得された情報を基にロボット２００の駆動の制御を行う。
【００１５】
センサ５０は、把持する部品１０の２次元画像や、３次元データを計測し、部品１０の位置及び姿勢を認識する。部品１０の認識結果は、センサ５０又はロボット制御部２０２において、ロボット２００の位置姿勢を表現する座標系のデータに変換される。把持位置姿勢教示装置３００で生成されたハンド２０の把持位置姿勢及びセンサ５０からの認識結果を基に、センサ５０で認識された部品１０の位置姿勢が算出される。
【００１６】
次に、把持位置姿勢をロボット２００に教示する把持位置姿勢教示装置３００の構成について説明する。把持位置姿勢教示装置３００は、例えば、記憶部３１、処理部３２等を備える演算処理装置である。把持位置姿勢教示装置３００には、その他にも、部品１０及びハンド２０を表示する３Ｄ表示画面や入力ボタン等を備えたＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）を設けると更に好ましい。
【００１７】
記憶部３１には、例えば、部品形状データ３０１、ハンドデータ３０２、把持位置姿勢を生成するプログラム等が格納されている。処理部３２は、記憶部３１に格納された部品形状データ３０１及びハンドデータ３０２に基づいてプログラムの演算処理を行う。部品形状データ３０１は、部品１０に関する３次元形状データである。また、ハンドデータ３０２は、例えば、ハンド２０に関する３次元形状データである。ハンドデータ３０２には、３次元形状データ以外に、部品１０との接触を許可するハンド２０の把持面、指部２１の動作方向、ハンド２０のロボット２００への取付け部からハンド２０の先端に向かう方向（以下、単に取付け方向と表記する）等のハンド２０に関する付加情報が含まれると好ましい。
【００１８】
以下に記載する把持位置姿勢教示装置３００の説明では、部品１０及びハンド２０は、特に記載のない限り、３次元形状データで規定された仮想的な空間上での部品モデル及びハンドモデルを示す。また把持位置姿勢は、仮想的な空間上での部品１０に対するハンド２０の相対的な位置及び姿勢を示す。位置は、任意の３次元座標系で表現できるものであり、姿勢は、例えば、各軸まわりの回転量のパラメータとして表現できるものである。
【００１９】
次に、把持位置姿勢教示装置３００の機能を実行する構成について説明する。図２は、把持位置姿勢教示装置３００を示す概略構成図である。
【００２０】
部品投入姿勢算出部３１０は、記憶部３１に格納された部品形状データ３０１を取得し、ロボットシステム１００に投入される部品１０の姿勢を分類し、分類された投入姿勢を各々算出する。投入姿勢を分類及び算出する方法は、部品１０がバラ積み状態で投入される場合と、姿勢を整列させずに平面上に部品１０同士が重ならないように投入される場合とで異なる方法をとる。
【００２１】
部品１０がバラ積み状態で投入される場合には、例えば、部品１０にハンド２０がアプローチする方向に対して逆方向を部品１０の方向として投入姿勢を分類する。例えば、図３に示すように、部品１０に固定された直交座標系Ｐの座標軸を（Ｐｘ，Ｐｙ，Ｐｚ）とし、ロボットシステム１００の直交座標系Ｗの座標軸を（Ｗｘ，Ｗｙ，Ｗｚ）とする。このとき、ハンド２０のアプローチ方向がＷｚの負方向であった場合、部品１０に固定された直交座標系ＰでＷｚの正方向を表すベクトルＡが部品１０の方向である。このように、バラ積み状態で投入される場合には、アプローチ方向に対する部品１０の方向によって投入姿勢を分類する。
【００２２】
姿勢を整列させずに、平面上に部品１０同士が重ならないように投入される場合には、部品１０の安定姿勢によって部品１０の投入姿勢を分類する。ここで安定姿勢とは、部品１０が平面上で安定して静止する姿勢のことである。それぞれの場合において分類された投入姿勢毎に部品１０の姿勢を算出する。
【００２３】
把持姿勢選定部３２０は、記憶部３１に格納されたハンドデータ３０２を取得し、部品投入姿勢算出部３１０が算出した投入姿勢毎にハンド２０の把持姿勢を選定する。
【００２４】
ここで、選定される把持姿勢は、実際に部品１０を把持する際のロボット２００の機械的な制約を考慮する必要がある。例えば、図４に示すように、直交座標系Ｗのロボットシステム１００に投入された部品１０を、部品１０よりＷｘの負方向に設置されたロボット２００（図示せず）がベクトルＢの方向から把持する場合を想定する。図５に示すように、図４の状態からＷｚ軸周りに部品１０が回転した場合、図４と同じ部品１０の把持位置に対するハンド２０の把持姿勢を適用すると、ハンド２０の取付け部をWｘの正方向に大きく移動させる必要があり、ロボット２００が部品１０に届かないために把持動作を実行できない。図６に示すように、部品１０が回転する軸方向Ｗｚとハンドデータ３０２で規定されるハンド２０の取付け方向（ベクトルＢと）の角度が小さい把持姿勢が適用されると、部品１０が回転しても、手首部２２を回転させることにより、ハンド２０の位置を大きく変えずに、ロボット２００が把持動作を実行できる。ここで、部品１０に対するハンド２０のアプローチ方向は、多くの場合、部品１０が回転する軸方向Ｗｚである。そこで、把持姿勢選定部３２０では、部品１０に対するハンド２０のアプローチ方向と、ハンド２０の取付け部から先端までの方向を示す取付け方向とが所定の角度以内のハンド２０の姿勢を把持姿勢として選定する。
【００２５】
把持位置領域抽出部３３０は、把持姿勢選定部３２０が選定した把持姿勢毎に、同一の把持種別となる位置を纏めた領域を把持位置領域として抽出する。ここで同一の把持種別とは、部品１０の投入姿勢に対するハンド２０の把持姿勢が同一であり、かつハンド２０の把持部に対する部品１０の被把持部が一致する場合と定義する。例えば、図７に示すように、指部２１を有するハンド２０を用いて部品１０を把持する場合、ハンド２０の把持部は、指部２１の内側の側面２０ａ、２０ｂであり、部品１０の被把持部は、部品１０の各側面１０ａ〜１０ｄである。このとき図８と図９は、部品１０の投入姿勢に対する把持姿勢が同一であり、ハンド２０の把持部２０ａ、２０ｂに対する部品１０の被把持部１０ａ、１０ｂがそれぞれ一致しているため、同一の把持種別である。一方、図１０は、図８と同一の把持姿勢であるが、ハンド２０の把持部２０ａ、２０ｂに対する部品１０の被把持部は１０ｃ、１０ｄであり、図８と一致しないため異なる把持種別である。
【００２６】
把持位置姿勢出力部３４０は、把持位置領域抽出部３３０が抽出した把持位置領域における把持位置を決定して、部品１０の投入姿勢毎に把持位置姿勢として出力する。
【００２７】
上述の構成により、本実施の形態に係る把持位置姿勢教示装置３００は、部品形状データ３０１とハンドデータ３０２から、部品１０の投入姿勢毎の把持位置姿勢を少なくとも１つ生成することができる。
【００２８】
次に、図１１を参照し、上述した構成を用いて機能を実行する処理工程の一例について説明する。図１１は、処理工程の一例であるステップＳ１からＳ４を示す工程図である。
【００２９】
ステップＳ１では、部品投入姿勢算出部３１０において、部品形状データ３０１を取得し、部品１０の投入姿勢を分類及び算出する。投入姿勢の分類及び算出方法は、部品１０がバラ積みされた状態で投入される場合と、姿勢を整列させずに平面上に部品１０同士が重ならないように投入される場合とで異なる方法を取る。
【００３０】
部品１０がバラ積み状態で投入される場合には、例えば、極座標空間で表現し、投入姿勢を分類する方法がある。図３に示すように、ハンド２０のアプローチ方向がＷｚの負方向である場合に、部品１０に固定された直交座標系Ｐでアプローチ方向と逆方向であるベクトルＡを部品１０の方向とする。このとき、ベクトルＡを部品１０に固定された極座標空間で表現し、その角度成分(θ、φ)の範囲で分類する。例えば、θとφを３０°刻みで分類した場合には、１２×１２通りの１４４通りに分類できる。部品１０を認識して、その部品１０の姿勢におけるベクトルＡの向きを極座標空間で表現し、予め分類した１４４通りの中のどの範囲になるかを判断して、部品１０の投入姿勢として算出する。
【００３１】
姿勢を整列させずに、平面上に部品１０同士が重ならないように投入される場合、部品１０は安定姿勢毎に分類される。安定姿勢の算出方法としては、例えば、まず部品投入姿勢算出部３１０は、部品１０の部品形状データ３０１を取得し、部品１０を囲む最小体積の凸多面体を算出する。そして、部品１０の重心を部品１０が設置される平面上に射影した時に、射影した点が凸多面体の表面内に位置するか否かを判断し、表面内に位置するものを部品１０の安定姿勢として算出する。このときのハンド２０のアプローチ方向は、例えば部品１０の設置平面の法線方向である。安定姿勢の算出方法は、これに限らず、平面上で部品１０が安定して静止する姿勢が算出されればその方法は問わない。このようにして、ステップＳ１では、部品１０の投入姿勢を少なくとも１つ算出する。
【００３２】
次に、ステップＳ２では、把持姿勢選定部３２０において、ハンドデータ３０２を取得し、ステップＳ１で導出した投入姿勢毎の把持姿勢を選定する。把持姿勢の選定方法の一例を、図１２を用いて説明する。図１２に示すように、まず、ハンド２０のアプローチ方向をＷｚ軸とするロボットシステム１００の直交座標系Ｗ（Ｗｘ、Ｗｙ、Ｗｚ）、及び、ハンド２０の取付け方向をＱｚ軸とするハンド２０に固定される座標系Ｑ（Ｑｘ、Ｑｙ、Ｑｚ）の基で、Ｗｚ軸及びＱｚ軸を一致させる。そして、ハンド２０の把持面の法線（ベクトルＶ）と、部品１０の各面の法線（ベクトルＷ）とが成す角度が、許容角度以内となる部品１０の面を被把持面として抽出する。更に、抽出した部品１０の被把持面と、ハンド２０の把持面とが平行に対向するように、ハンド２０の把持面の法線と部品１０の被把持面の法線を合わせ、このときのハンド２０の姿勢を、部品１０の投入姿勢に対する把持姿勢として選定する。このような選定方法により、把持姿勢選定部３２０は、実際に部品１０を把持する際のロボット２００の機械的な制約を考慮した把持姿勢を選定することができる。このとき、部品１０がバラ積み状態で投入される場合には、任意の投入姿勢に対して許容角度以内の把持姿勢が導出できるように、許容角度又は投入姿勢を分類する刻み幅、もしくはその両方を適切に設定することが望まれる。
【００３３】
ここで、ハンド２０の取付け方向は、例えば、ハンドデータ３０２で指定されてもよい。また、ハンド２０の把持面は、ハンドデータ３０２で指定されてもよいし、指部２１の開閉方向の面を把持面としてもよい。また、ハンド２０の把持面の法線と部品１０の被把持面の法線との許容角度は、ハンドデータ３０２や、その他の入力データで指定されていてもよいし、例えば５°といった固定値として設定されていてもよい。
【００３４】
また、ハンド２０の把持面が複数存在する場合には、各々のハンド２０の把持面で部品１０の被把持面を抽出する。また、部品１０の被把持面が抽出されない場合には、例えば、図１２において、ハンド２０のアプローチ方向であるＷｚ軸とハンド２０の取付け方向であるＱｚ軸とを合わせた場合のハンド２０の姿勢のうちの１つを把持姿勢として選定する。このとき把持姿勢は、ハンド２０のＱｚ軸周りの回転方向が不定となるが、この回転方向は、ロボットシステム１００の座標系ＷのＷｘ軸又はＷｙ軸と、ハンド２０の３次元形状データで規定される座標系ＱのＱｘ軸又はＱｙ軸方向とが一致する方向とする。その他、適当な座標軸や基準を用いて決めてもよい。このようにして、ステップＳ２では、部品１０の投入姿勢毎に把持姿勢を少なくとも１つ選定する。
【００３５】
次に、ステップＳ３では、把持位置領域抽出部３３０において、把持姿勢選定部３２０で選定された把持姿勢におけるハンド２０の把持部と部品１０の被把持部とがそれぞれ一致する、即ち同一の把持種別となる位置を纏めた領域を把持位置領域として抽出する。把持位置領域の抽出方法としては、例えば、ハンド２０の指部２１を開閉して部品１０を把持する動きをシミュレーションする方法がある。ここで、把持のシミュレーションは、様々な既知の方法を用いることができる。一例として、まず、所定の把持姿勢で、部品１０に対するハンド２０の相対的な位置を変更させながら指部２１を開閉させ、部品１０を把持可能な範囲を探索する。そして、把持可能とされた範囲内で部品１０とハンド２０の面を接触させた場合に、同一の把持種別となる位置を１つの把持位置領域として纏めて抽出する。
【００３６】
同一の把持種別となる把持位置領域は、その他にも、部品形状データ３０１を基に、把持種別が変更される位置を境界条件から算出してもよい。このようにして、ステップＳ３では、部品１０の投入姿勢毎に把持位置領域を少なくとも１つ抽出する。
【００３７】
次に、ステップＳ４では、把持位置姿勢出力部３４０において、ステップＳ３で抽出された把持位置領域から把持位置を選定する。把持位置の選定方法としては、例えば、まず把持位置領域抽出部３３０で抽出された複数の把持位置領域から、各々の領域の範囲を算出し、最も範囲が広い把持位置領域を投入姿勢毎に１つ選定する。そして、選定された把持位置領域の重心を把持位置として算出する。算出された把持位置を部品１０の投入姿勢毎の把持位置姿勢として出力する。
【００３８】
把持位置姿勢は、例えば、ロボット制御部２０２の制御プログラムを編集するツールに、部品１０とハンド２０との相対的な位置及び姿勢のデータとして出力される。また、ＧＵＩの表示部等を用いて、ユーザに可視化するように出力してもよいし、これらを組合せてもよい。また、基準とする部品１０の位置と、部品１０を把持する時点でのロボット２００の位置姿勢との関係を示すデータを記憶しておいてもよい。ここで、基準とする部品１０の位置とロボット２００の位置姿勢との関係を示すデータは、センサ５０等から取得された基準とする部品１０の位置のデータを利用してもよいし、入力部等を設け、ユーザが適宜入力してもよいし、ロボットシステム１００のシミュレーションによって得られたデータを入力してもよい。また、ロボット制御部２０２の制御プログラムを編集するツールから入力されてもよいし、これらを組み合わせてもよい。
【００３９】
以上のとおり、ステップＳ１からステップＳ４の処理を実行することにより、部品形状データ３０１とハンドデータ３０２から、部品１０の投入姿勢毎に把持位置姿勢を少なくとも１つ出力することができる。
【００４０】
なお、ここでは説明を簡単にするために、各機能の処理を限定して説明したが、本発明による処理はこれに限定されるものではない。
【００４１】
例えば、把持位置姿勢出力部３４０において、範囲が最も広い把持位置領域を選定するとしたが、把持位置領域として部品１０とハンド２０との接触面の数が多い領域を選定してもよい。図１３に示すように、指部２１に切り欠け部２３があるハンド２０や、複数の指を有するハンド２０の場合では、接触面の数が多い方が好ましい。これは、部品１０を把持して移動する場合に落とし難くなるという理由と、複数の接触面による部品１０の引き込みによって、把持後の部品１０の位置姿勢が収束し易いという理由からである。
【００４２】
また、把持位置姿勢出力部３４０において、把持位置領域の重心を把持位置とする例を示したが、部品１０の重心に近い把持位置領域内の位置を把持位置として選定してもよい。他にも、部品１０を把持した際の安定性を判断することによって、把持位置を選定してもよい。この安定性の判断方法としては、例えば、選定した把持姿勢及び把持位置領域で部品１０を把持し、部品１０に外力を与えた場合の部品１０の変位を算出し、変位が小さい位置を把持位置として選定してもよい。このような把持位置の選定方法とすることで、ハンド２０が部品１０を安定して把持することができる。
【００４３】
更に、把持位置姿勢出力部３４０において、部品１０の投入姿勢毎に把持位置姿勢を１つ出力する例を示したが、複数出力してもよい。例えば、把持位置領域抽出部３３０で導出される複数の把持位置領域毎に把持位置を導出し、全て把持位置姿勢として出力してもよい。
【００４４】
また、把持位置姿勢として全て出力するのではなく、優先度に基づいて一部を選定してもよい。例えば、把持位置姿勢について評価を施し、上位３件を出力する方法、一定以上の評価を得られたものを出力する方法及びそれらを組み合わせる方法がある。評価方法としては、部品１０とハンド２０の接触面の数、把持位置領域の広さ、部品１０の重心と把持位置までの距離等の個別の評価基準でもよいし、これらを組合せてもよい。
【００４５】
更に、把持位置姿勢出力部３４０で出力された複数の把持位置姿勢から、ロボット２００に動作させる把持位置姿勢を１つ選定する方法としては、把持位置姿勢教示装置３００に表示部を設け、表示部に全ての把持位置姿勢を出力し、ユーザに選択を促すようにする方法や、ロボット制御部２０２の制御プログラム内で選択できるように出力する方法がある。
【００４６】
更に、ハンド２０のアプローチ方向を部品１０が投入される位置によって変更してもよい。例えば、部品１０が壁を有する箱形状のものに投入される場合、アプローチ方向はハンド２０のサイズ等を考慮し、壁に干渉しないように設定されることが望まれる。例えば、図１４に示すように、センサ５０で認識された部品１０が、箱の壁の近くに位置する場合、ハンド２０のアプローチ方向を壁の位置と逆方向に傾ける。その場合、部品投入姿勢算出部３１０では、アプローチ方向と逆方向のベクトルＡをそれに対応させて、部品１０の投入姿勢が分類される。複数の壁が近い場合には、両方の壁の位置と逆方向となるように傾ける。更に部品１０が壁と接近し壁際に位置している場合には、更にアプローチ方向を狭めて設定し、把持位置姿勢を算出してもよい。
【００４７】
上述したように、本発明の把持位置姿勢教示装置３００によれば、部品１０の投入姿勢を分類及び算出する部品投入姿勢算出部３１０と、投入姿勢毎のハンド２０の把持姿勢を選定する把持姿勢選定部３２０と、把持姿勢毎に同一の把持種別となる把持位置領域を抽出する把持位置領域抽出部３３０と、把持位置領域抽出部３３０から把持位置を選定し、選定された把持姿勢における把持位置を、ハンド２０の把持位置姿勢として出力する把持位置姿勢出力部３４０を備えることにより、投入姿勢毎にハンド２０の把持位置姿勢を少なくとも１つ生成することができる。
【００４８】
実施の形態２.
本発明を実施するための実施の形態２に係るロボットシステムについて、図１５を参照して説明する。図１５は、本発明の実施の形態２に係るバラ積み部品を整列させるロボットシステムの一例を示す模式図である。図１５中、図１及び図２と同一符号は同一又は相当部分を示す。本実施の形態におけるロボットシステムは、実施の形態１に係る把持位置姿勢教示装置をバラ積みされた部品を整列させるシステムに適用したものである。
【００４９】
図１５に示すように、ロボットシステム１００は、３次元ビジョンセンサ１５０、２次元ビジョンセンサ１６０、ロボット２００、把持位置姿勢教示装置３００を備える。把持位置姿勢教示装置３００は、ロボット２００が把持動作を行う前に予め、実施の形態１に示した方法で部品１０の把持位置姿勢を生成し、ロボット２００に教示する。
【００５０】
部品１０は、バラ積みされた状態で、部品投入台１１０に投入されている。部品１０を部品投入台１１０に投入する方法としては、部品投入台１１０に固定されたパレットに部品１０が順次投入される方法の他に、部品１０が詰め込まれたパレットごと交換する方法及びそれらを組合せた方法がある。
【００５１】
３次元ビジョンセンサ１５０は、部品投入台１１０にバラ積みされた部品１０の位置を認識するためのセンサである。３次元ビジョンセンサ１５０の認識結果を利用して、部品投入台１１０から部品１０を１つ取り出し、直接整列台１４０に整列させるか、直接整列できない場合には、部品１０同士が接触しないように、仮置台１２０に設置する。
【００５２】
ここで、直接整列できない場合とは、部品１０の認識結果の精度が低く、整列させるための正確な把持を行うことができない場合である。例えば、部品１０の特徴点が隠れており、認識された部品１０の位置姿勢に疑義が生じている場合である。また、選択された把持位置姿勢が不安定な方法であり、ハンド２０で把持する際に部品１０が動く場合である。その他、部品１０の位置姿勢が認識されずに、把持可能な空間を認識して把持した場合である。把持可能な空間とは、挟みこみ型のハンド２０であれば、ハンド２０の指部２１が入り、かつ指部２１の間に把持対象の部品１０がある空間であり、吸着型のハンド２０であれば、物体の一定面積以上の平面である。また、把持位置姿勢の関係で、ハンド２０及びロボット２００が周りの設備に干渉する場合や、ロボット２００が機械的な制約から位置姿勢を実現できない場合である。
【００５３】
上述のような場合、直接整列台１４０に移動ができないと判断され、部品１０は仮置台１２０に安定姿勢となるように設置される。２次元ビジョンセンサ１６０は、仮置台１２０上に設置された部品１０の位置姿勢を高精度に認識する。ロボット２００は、把持位置姿勢教示装置３００によって生成された把持位置姿勢を用いて、部品１０を把持する。ロボット２００は、部品１０が整列台１４０に予め決められた最終姿勢で整列されるように動作を実行する。
【００５４】
把持位置姿勢教示装置３００によって教示された把持位置姿勢では部品１０を整列台１４０に移動させることができない場合には、持ち替え治具１３０を利用して、ロボット２００が部品１０を持ち替えてから、最終姿勢となるように整列台１４０に移動させる。移動させることができない場合とは、ハンド２０やロボット２００が周りの設備に干渉する場合や、ロボット２００が位置姿勢を実現できない場合等である。持ち替え治具１３０だけでなく、仮置台１２０に部品１０を再度置き直して持ち替えてもよい。
【００５５】
上述のような構成により、ロボットシステム１００は、バラ積みされた部品１０を、把持位置姿勢教示装置３００によって生成された把持位置姿勢で把持して、決められた位置姿勢に整列させることができる。
【００５６】
なお、本実施の形態では、把持位置姿勢教示装置３００を、バラ積みされた部品１０が投入されるシステムに適用する例を説明したが、それ以外のシステム、例えば、部品１０の姿勢が整列されずに、部品１０同士が重ならないように投入されるシステム、部品１０の姿勢が整列して投入されるシステム等にも適用することができる。
【００５７】
実施の形態３.
本発明を実施するための実施の形態３に係る把持位置姿勢教示装置について、図１６を参照して説明する。図１６は本実施の形態における把持位置姿勢教示装置３００の概略構成図である。図１６中、図１及び図２と同一符号は同一又は相当部分を示す。把持位置姿勢データ３０３及びデータベース検索部３１１が追加された以外は、実施の形態１と同様である。
【００５８】
本実施の形態では、主要な部品１０に対するハンド２０の相対的な位置及び姿勢が記述された把持位置姿勢データ３０３を記憶部３１に格納し、記憶部３１のデータベースを検索可能なデータベース検索部３１１を備えた構成とした。
【００５９】
データベース検索部３１１は、部品投入姿勢算出部３１０が算出した部品１０の投入姿勢のデータを取得する。そして、主要な部品１０の把持位置姿勢データ３０３が格納されたデータベースを検索する。算出した部品１０の投入姿勢に対して適用可能と判断される把持位置姿勢データ３０３が抽出された場合には、投入姿勢におけるハンド２０のアプローチ方向と、把持位置姿勢データ３０３のハンド２０の取付け方向との角度が、許容角度以内となるかを判定する。把持位置姿勢データ３０３の把持位置姿勢が許容角度以内と判定された場合には、それを把持位置姿勢として把持位置姿勢出力部３４０が出力する。
【００６０】
このような構成においても、実施の形態１と同様に、部品１０の投入姿勢毎に把持位置姿勢を少なくとも１つ生成することができる。更に本実施の形態では、把持位置姿勢データ３０３を記憶部３１に格納し、記憶部３１のデータベースを検索するデータベース検索部３１１を備えたので、部品１０に適用可能な把持位置姿勢データ３０３がデータベースに登録されている場合には、その把持位置姿勢データ３０３を部品１０の把持位置姿勢として出力することができる。
【００６１】
処理工程としては、部品投入姿勢算出部３１０で投入姿勢を算出し（ステップＳ１）、データベース検索部３１１で、把持位置姿勢データ３０３を含むデータベースを検索する（ステップＳ２）。適用可能な把持位置姿勢データ３０３が抽出された場合には、把持姿勢選定部３２０、把持位置領域抽出部３３０及び把持位置姿勢出力部３４０の処理を省略し、把持位置姿勢出力部３４０で出力される（ステップＳ３）。適用可能な把持位置姿勢データ３０３が抽出されなかった場合は、実施の形態１と同様の処理を行う。
【００６２】
以上の処理工程を実行することにより、実施の形態１と同様に部品形状データ３０１とハンドデータ３０２から、部品１０の投入姿勢毎に把持位置姿勢を１つ生成することができる。更に、部品１０に適用可能な把持位置姿勢データ３０３が登録されている場合には、把持姿勢選定部３２０、把持位置領域抽出部３３０及び把持位置姿勢出力部３４０での処理を省略して、その把持位置姿勢データ３０３を把持位置姿勢出力部３４０から出力することができる。
【００６３】
実施の形態４.
本発明を実施するための実施の形態４に係る把持位置姿勢教示装置について、図１７を参照して説明する。図１７は本実施の形態における概略構成図である。図１７中、図１及び図２と同一符号は同一又は相当部分を示す。把持位置姿勢教示装置３００は、把持姿勢データ３０４と把持姿勢入力部３２１が追加された以外は、実施の形態１と同様である。
【００６４】
本実施の形態では、図１７に示すように、把持姿勢データ３０４が入力される把持姿勢入力部３２１備える構成とした。
【００６５】
把持姿勢データ３０４は、部品１０に対するハンド２０の把持姿勢が記述されているデータである。把持姿勢データ３０４のデータ形式は、把持姿勢選定部３２０が出力する姿勢と同じであってもよいし、独自の形式であってもよい。独自の形式の場合には、把持姿勢入力部３２１で把持姿勢選定部３２０と同じデータ形式に変更される。
【００６６】
把持姿勢入力部３２１は、把持姿勢データ３０４を取り込んでもよいし、ＧＵＩを用いてユーザに入力を行わせてもよい。ＧＵＩは、例えば、部品１０やハンド２０の３Ｄ表示画面、把持姿勢の入力を行う入力ボタン等を備えたものである。
【００６７】
このような構成においても、実施の形態１と同様に、部品１０の投入姿勢毎に把持位置姿勢を少なくとも１つ生成することができる。更に、本実施の形態によれば、把持姿勢入力部３２１を備えたことで、取扱う部品１０やハンド２０の特徴から、把持姿勢をユーザが直接指定できる。
【００６８】
処理工程としては、部品投入姿勢算出部３１０で投入姿勢を算出し（ステップＳ１）、投入姿勢毎に把持姿勢入力部３２１で、把持姿勢データ３０４を入力する（ステップＳ２）。把持姿勢データ３０４が入力された場合は、把持姿勢選定部３２０を省略し、把持位置領域抽出部３３０、把持位置姿勢出力部３４０で実施の形態１で記載した方法で処理され、把持位置姿勢出力部で出力される（ステップＳ３）。把持姿勢データ３０４が入力されなかった場合は、実施の形態１と同様の処理を行う。
【００６９】
以上の処理工程を実行することにより、実施の形態１と同様に部品形状データ３０１とハンドデータ３０２から、部品１０の投入姿勢毎に把持位置姿勢を１つ生成して出力することができる。更に、把持姿勢入力部３２１で把持姿勢データ３０４が入力された場合には、把持姿勢選定部３２０の処理を省略して、把持位置姿勢を生成することができる。
【００７０】
実施の形態５.
本発明を実施するための実施の形態５に係る把持位置姿勢教示装置について、図１８を参照して説明する。図１８は本実施の形態における概略構成図である。図１８中、図１及び図２と同一符号は同一又は相当部分を示す。把持位置姿勢調整部３４１が追加された以外は、実施の形態１と同様である。
【００７１】
本実施の形態では、図１８に示すように、把持位置姿勢を調整する把持位置姿勢調整部３４１を備えた構成とした。把持位置姿勢調整部３４１は、把持位置姿勢をユーザに提示すると共に、ユーザは提示された情報を基に把持位置姿勢を調整する。
【００７２】
把持位置姿勢を掲示及び調整させる方法としては、ＧＵＩを用いてもよい。ＧＵＩは、例えば、部品１０やハンド２０の３Ｄ表示画面、ハンド２０の位置姿勢の変更及び把持位置姿勢の入力を行う入力ボタン等を備える。把持位置姿勢調整部３４１では、特定の把持位置領域をユーザに提示し、その範囲内でのみ位置を調整できるようにしてもよい。
【００７３】
このような構成においても、実施の形態１と同様に、部品１０の投入姿勢毎に把持位置姿勢を少なくとも１つ生成することができる。更に、本実施の形態によれば、把持位置姿勢調整部３４１を備えたので、出力された把持位置姿勢をユーザが調整できる。
【００７４】
なお、実施の形態１から５では、ハンド２０は、部品１０を挟んで把持する複数指の指部２１を有する場合について説明していたが、部品１０を吸着して把持する吸着ハンドとしてもよい。図１９に吸着ハンドの一例を示す。吸着ハンド２０の上部は、ロボット２００の手首部２２に取り付けられる。吸着ハンド２０の下部には、部品１０を吸着する円状の吸着部２４を有し、吸着部２４で部品１０を吸着して把持する。把持姿勢選定部３２０では、ハンド２０の把持面を吸着部２４として把持姿勢を選定する。把持位置領域抽出部３３０及び把持位置姿勢出力部３４０においても、上述した指部２１を有するハンド２０と同様に処理される。
【００７５】
また、実施の形態１から５では、ロボット２００と把持位置姿勢教示装置３００が別体として設けられる例を示したが、把持位置姿勢教示装置３００と同等の機能を有する教示部をロボット制御部２０２に組み込んだ構成としてもよい。
【符号の説明】
【００７６】
１００  ロボットシステム、２００  ロボット、３００  把持位置姿勢教示装置、１０  部品、２０  ハンド、３１０  部品投入姿勢算出部、３２０  把持姿勢選定部、３３０  把持位置領域抽出部、３４０  把持位置姿勢出力部。
【要約】
部品が取り得る姿勢毎にロボットの把持位置姿勢を生成することが可能な把持位置姿勢教示装置を提供する。
把持位置姿勢教示装置は、部品が取り得る投入姿勢を算出する部品投入姿勢算出部と、部品の投入姿勢に対するハンドの把持姿勢を選定する把持姿勢選定部と、同一の把持種別となる位置を纏めた領域を把持位置領域として抽出する把持位置領域抽出部と、把持位置領域抽出部が抽出した把持位置領域内の把持位置を決定して投入姿勢毎に把持位置姿勢として出力する把持位置姿勢出力部とを備える。【図１】
0006456557.tif 000002
【図２】
0006456557.tif 000003
【図３】
0006456557.tif 000004
【図４】
0006456557.tif 000005
【図５】
0006456557.tif 000006
【図６】
0006456557.tif 000007
【図７】
0006456557.tif 000008
【図８】
0006456557.tif 000009
【図９】
0006456557.tif 000010
【図１０】
0006456557.tif 000011
【図１１】
0006456557.tif 000012
【図１２】
0006456557.tif 000013
【図１３】
0006456557.tif 000014
【図１４】
0006456557.tif 000015
【図１５】
0006456557.tif 000016
【図１６】
0006456557.tif 000017
【図１７】
0006456557.tif 000018
【図１８】
0006456557.tif 000019
【図１９】
0006456557.tif 000020