(57)【要約】【課題】ユーザーにとってわかりやすい形態で、安定した把持動作を実行する教示データを生成する制御装置、ロボット、教示データ生成方法及びロボットシステム等を提供すること。【解決手段】制御装置１００は、ワークとマーカーとを撮像した撮像画像を受け付ける画像認識部１１０と、ロボットの教示データを生成する処理部１２０を含み、処理部１２０は、画像認識部１１０が受け付けた撮像画像によってロボットの第１の教示データを生成し、ロボットの把持部３１９にワークを把持させてロボットの第２の教示データを生成する。【選択図】      図１
2015112654.tif 000002
【特許請求の範囲】
【請求項１】
ワークとマーカーとを撮像した撮像画像を受け付ける画像認識部と、
ロボットの教示データを生成する処理部と、
を含み、
前記処理部は、
前記画像認識部が受け付けた前記撮像画像によって前記ロボットの第１の教示データを生成し、
前記ロボットの把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成することを特徴とする制御装置。
【請求項２】
請求項１において、
前記処理部は、
前記第１の教示データに基づいて前記把持部に前記ワークを把持させて、前記ロボットの前記第２の教示データを生成することを特徴とする制御装置。
【請求項３】
請求項１又は２において、
前記処理部は、
前記把持部に前記ワークを把持させることで、前記ロボットに設けられた力覚センサーにより出力された力覚センサー情報を取得し、
前記力覚センサー情報に基づいて、作業台に対する垂直方向での把持位置を決定し、決定した前記把持位置を含む前記第２の教示データを生成することを特徴とする制御装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記処理部は、
前記把持部に前記ワークを把持させることで、前記ロボットを駆動するモーターのトルクリミット情報を取得し、
前記トルクリミット情報に基づいて、前記ワークを把持した状態での前記把持部の開き量情報を決定し、決定した開き量情報を含む前記第２の教示データを生成することを特徴とする制御装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記画像認識部は、
前記マーカーを認識する画像認識処理を行い、
前記処理部は、
前記マーカーについての前記画像認識処理の結果に基づいて、前記第１の教示データを生成することを特徴とする制御装置。
【請求項６】
請求項５において、
前記画像認識部は、
把持対象である前記ワークの周囲に配置された複数の前記マーカーを認識する前記画像認識処理を行い、
前記処理部は、
複数の前記マーカーについての前記画像認識処理の結果に基づいて、前記第１の教示データを生成することを特徴とする制御装置。
【請求項７】
請求項６において、
前記画像認識部は、
第１の方向を示す前記マーカーである第１のマーカーと、前記第１の方向と交差する第２の方向を示す前記マーカーである第２のマーカーとを認識する前記画像認識処理を行い、
前記処理部は、
前記第１の方向と前記第２の方向が交差する位置に基づいて、仮把持位置を決定し、前記第１の方向及び前記第２の方向の少なくとも一方に基づいて、仮把持姿勢を決定し、
前記仮把持位置及び前記仮把持姿勢を含む前記第１の教示データを生成することを特徴とする制御装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
第１〜第Ｎ（Ｎは２以上の整数）の面を有する前記ワークを把持対象とした場合に、
前記処理部は、
前記ワークの第ｉ（ｉは１≦ｉ≦Ｎを満たす整数）の面を処理対象面として、前記把持部に前記ワークを把持させて、前記第ｉの面を前記処理対象面とした前記第２の教示データである第２ｉの教示データを生成し、
前記ワークの第ｊ（ｊは１≦ｊ≦Ｎ、ｊ≠ｉを満たす整数）の面を前記処理対象面として、前記把持部に前記ワークを把持させて、前記第ｊの面を前記処理対象面とした前記第２の教示データである第２ｊの教示データを生成することを特徴とする制御装置。
【請求項９】
請求項８において、
前記ワークの前記第ｉの面が作業台の鉛直上方向を向く位置姿勢で、前記ワークが配置された場合に、
前記処理部は、
前記ワークの前記第ｉの面を前記処理対象面として、前記把持部に前記ワークを把持させて、前記第２ｉの教示データを生成することを特徴とする制御装置。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記画像認識部は、
前記ワークの位置姿勢を認識する物体認識処理を行い、
前記処理部は、
前記物体認識処理により取得された前記ワークの位置姿勢と、最終的な把持位置と、最終的な把持姿勢とを含む前記第２の教示データを生成することを特徴とする制御装置。
【請求項１１】
請求項１０において、
前記画像認識部は、
前記第１の教示データに基づいて、前記把持部に前記ワークを把持させた後に、前記物体認識処理を行うことを特徴とする制御装置。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記処理部は、
前記撮像画像に基づいて、仮把持位置及び仮把持姿勢を含む前記第１の教示データを生成し、
前記仮把持位置及び前記仮把持姿勢を目標として、前記把持部に前記ワークを把持させて、最終的な把持位置及び最終的な把持姿勢を含む前記第２の教示データを生成することを特徴とする制御装置。
【請求項１３】
ワークを把持する把持部と、
前記把持部を動作させる制御装置と、
を含み、
前記制御装置は、
前記ワークとマーカーとを撮像して第１の教示データを生成し、
前記把持部に前記ワークを把持させて第２の教示データを生成することを特徴とするロボット。
【請求項１４】
ワークとマーカーとを撮像してロボットの第１の教示データを生成することと、
前記ロボットの把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成することと、を含むことを特徴とする教示データ生成方法。
【請求項１５】
ワークを把持する把持部を備えるロボットと、
前記ロボットを動作させる制御装置と、
マーカーと、を含み、
前記制御装置は、
前記ワークと前記マーカーとを撮像して前記ロボットの第１の教示データを生成し、
前記把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボット、教示データ生成方法及びロボットシステム等に関する。
【背景技術】
【０００２】
ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。具体的には、ユーザー（教示者）がロボットのアーム等を手で動かすことでロボット動作を教示するダイレクトティーチングや、ティーチングペンダント等の操作部を操作することでロボット動作を教示するティーチングプレイバック、或いはロボットの実機は使用せずにコンピューター上でシミュレーションを用いて教示を行うオフラインティーチング等が知られている。
【０００３】
例えば特許文献１には、ロボットの把持部（ハンド）とワークが当接した場合にロボットが受ける力に基づいてワークの位置を検出し、検出したワークの位置を用いたロボット制御を行う手法が開示されている。
【０００４】
また特許文献２には、画像に基づきワークの把持部位に対応する素形状モデルの指定を受け付け、指定された素形状モデルに基づいて当該ワークの把持を適切に行う把持パターンを選択する手法が開示されている。
【０００５】
また特許文献３には、画像に基づきワークの複数の把持点を指定した上で、当該把持点を表すベクトル等を用いたベクトル演算により、把持位置姿勢を教示する手法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２２０２４８号公報
【特許文献２】特開２００９−２１４２１２号公報
【特許文献３】特開平１１−５８２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、画像に基づいてハンドを制御し、その都度力を検出してワーク位置の検出、及びその後のワークの把持動作等を行う。そのため、動作の度に把持の仕方が変化することになり、安定した把持動作をロボットに実行させることが難しい。
【０００８】
特許文献２では、ロボットの実機を用いずに素形状モデルにより把持動作を教示し、また特許文献３では、同様にロボットの実機を用いずに画像に基づき決定された把持点を用いたベクトル演算により、把持動作を教示する。よっていずれの手法も、教示時には実際の把持部を用いてワークを把持させないため、安定した把持動作をロボットに実行させることが難しい。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ワークとマーカーとを撮像した撮像画像を受け付ける画像認識部と、ロボットの教示データを生成する処理部と、を含み、前記処理部は、前記画像認識部が受け付けた前記撮像画像によって前記ロボットの第１の教示データを生成し、前記ロボットの把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成する制御装置に関係する。
【００１０】
本発明の一態様では、撮像画像を用いて第１の教示データを生成し、把持部に実際にワークを把持させて第２の教示データを生成する。よって、オフラインティーチングとダイレクトティーチングを適切に組み合わせて利用することが可能になるため、ユーザーによる教示を容易にすることや、教示に基づくロボット動作を安定したものとすること等が可能になる。
【００１１】
また、本発明の一態様では、前記処理部は、前記第１の教示データに基づいて前記把持部に前記ワークを把持させて、前記ロボットの前記第２の教示データを生成してもよい。
【００１２】
これにより、把持部によるワークの把持動作に第１の教示データを利用できるため、第２の教示データを容易に生成すること等が可能になる。
【００１３】
また、本発明の一態様では、前記処理部は、前記把持部に前記ワークを把持させることで、前記ロボットに設けられた力覚センサーにより出力された力覚センサー情報を取得し、前記力覚センサー情報に基づいて、作業台に対する垂直方向での把持位置を決定し、決定した前記把持位置を含む前記第２の教示データを生成してもよい。
【００１４】
これにより、力覚センサー情報を用いて、作業台垂直方向での把持位置を決定すること等が可能になる。
【００１５】
また、本発明の一態様では、前記処理部は、前記把持部に前記ワークを把持させることで、前記ロボットを駆動するモーターのトルクリミット情報を取得し、前記トルクリミット情報に基づいて、前記ワークを把持した状態での前記把持部の開き量情報を決定し、決定した開き量情報を含む前記第２の教示データを生成してもよい。
【００１６】
これにより、トルクリミット情報を用いて、把持部の開き量情報を決定すること等が可能になる。
【００１７】
また、本発明の一態様では、前記画像認識部は、前記マーカーを認識する画像認識処理を行い、前記処理部は、前記マーカーについての前記画像認識処理の結果に基づいて、前記第１の教示データを生成してもよい。
【００１８】
これにより、マーカーを認識する画像認識処理の結果に基づいて第１の教示データを生成すること等が可能になる。
【００１９】
また、本発明の一態様では、前記画像認識部は、把持対象である前記ワークの周囲に配置された複数の前記マーカーを認識する前記画像認識処理を行い、前記処理部は、複数の前記マーカーについての前記画像認識処理の結果に基づいて、前記第１の教示データを生成してもよい。
【００２０】
これにより、画像認識処理の対象として複数のマーカーを用いること等が可能になる。
【００２１】
また、本発明の一態様では、前記画像認識部は、第１の方向を示す前記マーカーである第１のマーカーと、前記第１の方向と交差する第２の方向を示す前記マーカーである第２のマーカーとを認識する前記画像認識処理を行い、前記処理部は、前記第１の方向と前記第２の方向が交差する位置に基づいて、仮把持位置を決定し、前記第１の方向及び前記第２の方向の少なくとも一方に基づいて、仮把持姿勢を決定し、前記仮把持位置及び前記仮把持姿勢を含む前記第１の教示データを生成してもよい。
【００２２】
これにより、画像認識処理の対象として、それぞれ方向を規定する第１，第２のマーカーを用いること等が可能になる。
【００２３】
また、本発明の一態様では、第１〜第Ｎ（Ｎは２以上の整数）の面を有する前記ワークを把持対象とした場合に、前記処理部は、前記ワークの第ｉ（ｉは１≦ｉ≦Ｎを満たす整数）の面を処理対象面として、前記把持部に前記ワークを把持させて、前記第ｉの面を前記処理対象面とした前記第２の教示データである第２ｉの教示データを生成し、前記ワークの第ｊ（ｊは１≦ｊ≦Ｎ、ｊ≠ｉを満たす整数）の面を前記処理対象面として、前記把持部に前記ワークを把持させて、前記第ｊの面を前記処理対象面とした前記第２の教示データである第２ｊの教示データを生成してもよい。
【００２４】
これにより、所与のワークの異なる面に対して、それぞれ処理を行って複数の第２の教示データを生成すること等が可能になる。
【００２５】
また、本発明の一態様では、前記ワークの前記第ｉの面が作業台の鉛直上方向を向く位置姿勢で、前記ワークが配置された場合に、前記処理部は、前記ワークの前記第ｉの面を前記処理対象面として、前記把持部に前記ワークを把持させて、前記第２ｉの教示データを生成してもよい。
【００２６】
これにより、配置されたワークの位置姿勢に応じて、適切な面を対象とした第２の教示データを生成すること等が可能になる。
【００２７】
また、本発明の一態様では、前記画像認識部は、前記ワークの位置姿勢を認識する物体認識処理を行い、前記処理部は、前記物体認識処理により取得された前記ワークの位置姿勢と、最終的な把持位置と、最終的な把持姿勢とを含む前記第２の教示データを生成してもよい。
【００２８】
これにより、物体認識処理の結果に基づいて第２の教示データを生成すること等が可能になる。
【００２９】
また、本発明の一態様では、前記画像認識部は、前記第１の教示データに基づいて、前記把持部に前記ワークを把持させた後に、前記物体認識処理を行ってもよい。
【００３０】
これにより、より望ましいタイミングで物体認識処理を行うこと等が可能になる。
【００３１】
また、本発明の一態様では、前記処理部は、前記撮像画像に基づいて、仮把持位置及び仮把持姿勢を含む前記第１の教示データを生成し、前記仮把持位置及び前記仮把持姿勢を目標として、前記把持部に前記ワークを把持させて、最終的な把持位置及び最終的な把持姿勢を含む前記第２の教示データを生成してもよい。
【００３２】
これにより、仮把持位置、仮把持姿勢を用いて把持部にワークを把持させることで、最終的な把持位置、把持姿勢を第２の教示データとして生成すること等が可能になる。
【００３３】
また、本発明の他の態様は、ワークを把持する把持部と、前記把持部を動作させる制御装置と、を含み、前記制御装置は、前記ワークとマーカーとを撮像して第１の教示データを生成し、前記把持部に前記ワークを把持させて第２の教示データを生成するロボットに関係する。
【００３４】
本発明の他の態様では、撮像画像を用いて第１の教示データを生成し、把持部に実際にワークを把持させて第２の教示データを生成する。よって、オフラインティーチングとダイレクトティーチングを適切に組み合わせて利用することが可能になるため、ユーザーによる教示を容易にすることや、教示に基づくロボット動作を安定したものとすること等が可能になる。
【００３５】
また、本発明の他の態様は、ワークとマーカーとを撮像してロボットの第１の教示データを生成することと、前記ロボットの把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成することと、を含む教示データ生成方法に関係する。
【００３６】
本発明の他の態様では、ワークとマーカーの撮像により第１の教示データを生成し、把持部に実際にワークを把持させて第２の教示データを生成する。よって、オフラインティーチングとダイレクトティーチングを適切に組み合わせて利用することが可能になるため、ユーザーによる教示を容易にすることや、教示に基づくロボット動作を安定したものとすること等が可能になる。
【００３７】
また、本発明の他の態様は、ワークを把持する把持部を備えるロボットと、前記ロボットを動作させる制御装置と、マーカーと、を含み、前記制御装置は、前記ワークと前記マーカーとを撮像して前記ロボットの第１の教示データを生成し、前記把持部に前記ワークを把持させて前記ロボットの第２の教示データを生成するロボットシステムに関係する。
【００３８】
本発明の他の態様では、撮像画像を用いて第１の教示データを生成し、把持部に実際にワークを把持させて第２の教示データを生成する。よって、オフラインティーチングとダイレクトティーチングを適切に組み合わせて利用することが可能になるため、ユーザーによる教示を容易にすることや、教示に基づくロボット動作を安定したものとすること等が可能になる。
【００３９】
以上より、本発明の幾つかの態様によれば、ユーザーにとってわかりやすい形態で、安定した把持動作を実行する教示データを生成する制御装置、ロボット、教示データ生成方法及びロボットシステム等を提供することができる。
【図面の簡単な説明】
【００４０】
【図１】本実施形態に係る制御装置の構成例。
【図２】本実施形態に係る制御装置の詳細な構成例。
【図３】本実施形態に係るロボットの構成例。
【図４】本実施形態に係るロボットの他の構成例。
【図５】図５（Ａ）、図５（Ｂ）は把持部の位置、姿勢の説明図。
【図６】図６（Ａ）、図６（Ｂ）は仮把持位置姿勢を目標とする把持動作の説明図。
【図７】図７（Ａ）〜図７（Ｆ）は把持動作と作業台へのワークの配置の対応関係を説明する図。
【図８】図８（Ａ）〜図８（Ｄ）はマーカー配置の例。
【図９】撮像画像を用いた画像認識処理の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）は力覚センサーの配置例。
【図１１】図１１（Ａ）〜図１１（Ｃ）は把持部の他の構成例と、把持の深さの説明図。
【図１２】本実施形態で用いられる入力画面の例。
【図１３】本実施形態の処理を説明するフローチャート。
【発明を実施するための形態】
【００４１】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４２】
１．本実施形態の手法
まず本実施形態の手法について説明する。従来、ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。具体的には上述したように、ダイレクトティーチング、ティーチングプレイバック、オフラインティーチング等が知られている。
【００４３】
しかし近年、非常に広汎な領域でロボットが利用されるようになってきている。そのため、ロボットに対して教示を行うユーザーが、当該ロボットについての専門知識を充分有していないというケースも多くなると想定される。つまり、ロボットに対する教示は専門知識が充分でないユーザーであっても実行可能な程度に、わかりやすい形態で行われることが望ましい。その点、ティーチングペンダント等を用いたティーチングプレイバックでは、教示を行うユーザーはロボットについての知識が必要となり、且つティーチングペンダントの使用方法等を習熟しておく必要がある点で好ましくない。
【００４４】
またオフラインティーチングでは、ユーザーに対してわかりやすい入力インターフェースを提示し、ユーザーから入力された情報に基づいて、システム側でロボット動作を自動生成することで、教示を容易にすることも可能である。ユーザーからどのような入力を受け付け、それをシステム側でどのように処理するかは種々の手法が考えられ、例えば上述した特許文献２や特許文献３の手法等が開示されている。
【００４５】
しかし、オフラインティーチングではロボットや把持対象となるワーク等は実物が用いられるわけではない。そのため、オフラインティーチングにより教示されたロボット動作が、実際には安定した把持動作を実現するものでない可能性があり得る。例えば、ロボットの把持部（狭義にはハンド）の形状やワークの形状を３Ｄモデルで再現することは容易としても、ワークの重量バランスや表面の摩擦等に関する情報まで再現することは、オフラインティーチングの処理負荷を考えると現実的とは言えない。そのため、オフラインティーチングで把持動作を作成できたとしても、当該把持動作を実際に行ったところ、ワークをバランスよく把持できず落下させてしまうというおそれもある。その他、ユーザーフレンドリーの観点からユーザーによる入力をシンプルにしたり、システム側の処理負荷軽減の観点からユーザー入力に基づく処理をシンプルなものとしたりすれば、それだけ実際のロボットやワークに比べて必要な情報が欠落する。そのため、オフラインティーチングの結果として得られるロボット動作が、実機では安定的な動作とならない可能性を考慮することが重要となる場面も大いに考えられる。
【００４６】
そこで本出願人は、ユーザーにとってわかりやすい形態で、且つ実際のロボットやワークを用いて、ロボットに対して把持動作を教示する手法を提案する。その際、把持動作におけるアプローチは、例えば図６（Ａ）に示すように作業台の上方から鉛直方向下向きに行うといったように、自動生成が容易なものとする。なお、ここでのアプローチとはロボットの把持部を把持対象であるワークの位置まで移動させる動作を表す。本実施形態では、ワークを把持した状態の把持部の位置や姿勢を表す把持位置及び把持姿勢（これらを合わせて把持位置姿勢とも表記する）を暫定的に定めて、上記アプローチにより把持動作を実際に行う。そしてその把持動作の際に得られたセンシング情報を利用して、最終的な把持位置姿勢を求め、当該把持位置姿勢を含む教示データを生成する。
【００４７】
具体的には、本実施形態の制御装置１００は図１に示すように、ワークとマーカーとを撮像した撮像画像を受け付ける画像認識部１１０と、ロボット（後述する図３等のロボット本体３００に対応）の教示データを生成する処理部１２０を含む。そして、処理部１２０は、画像認識部１１０が受け付けた撮像画像によってロボットの第１の教示データを生成し、ロボット３１９の把持部（後述する図３のハンド等に対応）にワークを把持させてロボットの第２の教示データを生成する。
【００４８】
この際、処理部１２０は、第１の教示データに基づいて把持部３１９にワークを把持させて、ロボットの第２の教示データを生成してもよい。具体的には、処理部１２０は、撮像画像に基づいて、仮把持位置及び仮把持姿勢を含む第１の教示データを生成し、仮把持位置及び仮把持姿勢を目標として、把持部３１９にワークを把持させて、最終的な把持位置及び最終的な把持姿勢を含む第２の教示データを生成してもよい。
【００４９】
ここで、把持位置とはワークを把持している状態の把持部の位置を表すものであり、把持姿勢とはワークを把持している状態の把持部の姿勢を表すものである。なお、把持部は大きさを有する物体であり、且つ可変構造を有する場合も多いことから、把持部の位置をどのように定義するかは種々考えられる。本実施形態では、把持部が設けられるアームのエンドポイントＥＰを把持部の位置として用いてもよい。例えば、図５（Ａ）に示したように、アームの先端のエンドポイントＥＰに把持部が設けられる場合、当該エンドポイントＥＰの位置により把持部の位置を表現すればよい。例えば、ロボットを基準としてｘｙｚ３軸の座標系が設定される場合には、把持位置はＥＰの座標値（ｘ，ｙ，ｚ）により表現できる。また、把持部の姿勢は所与の基準姿勢に対する回転等で表現すればよい。例えば、図５（Ｂ）に示すようにｘｙｚの各軸まわりの回転をｕ，ｖ，ｗとした場合には、所与の把持部の姿勢は（ｕ，ｖ，ｗ）により表現できる。教示データに含まれる最終的な（出力結果である）把持位置及び把持姿勢は（ｘ，ｙ，ｚ，ｕ，ｖ，ｗ）で表現される情報となる。
【００５０】
また、仮把持位置及び仮把持姿勢とは、画像認識処理により取得される暫定的な把持位置姿勢である。本実施形態では、この仮把持位置及び仮把持姿勢を目標として、上述した自動決定されるアプローチによる把持動作を行う。この把持動作は、あくまで最終的な教示データを生成するためのものであるため、当該把持動作に用いられる仮把持位置は詳細なものである必要はない。
【００５１】
例えば、図６（Ｂ）に示したように、マーカーＭ１により決定される第１の方向のラインＬ１と、マーカーＭ２により決定される第２の方向のラインＬ２が作業台上に規定され、Ｍ１，Ｍ２の画像認識処理によりこれらを処理部１２０が把握していたとする。この場合、仮把持位置を例えばＬ１とＬ２の交点である（ｘ０，ｙ０）とし、仮把持姿勢を図６（Ｂ）に示したようにＬ２上に把持部の２本の指（ツメ）が並ぶ姿勢（実際には例えば上述したようにｕｖｗにより表現される）とすればよい。仮把持位置姿勢を用いた把持動作が、図６（Ａ）に示したようにｘｙ平面での位置及び把持部の姿勢を変化させず、ｚ軸方向の移動のみで実現されるものとすれば、仮把持位置のｚ座標値が不定でも一応の把持動作が可能である。具体的には、把持部を（ｘ０，ｙ０，ｚ０）となる所与の位置に、仮把持姿勢と一致する姿勢でセットし、そこから姿勢を変化させずに、把持部をｚ軸正方向（鉛直下方向）に移動させる。仮把持位置のｚ座標値が不定であるため、移動の終点が不明ではあるが、ここでは把持部とワークが接触する位置まで移動させ、接触を検知したところで止まればよい。
【００５２】
仮把持位置姿勢は画像認識処理に基づいて容易に取得可能であるし、図６（Ａ）に示したアプローチに必要な情報も、アプローチ動作がシンプルなため容易に取得可能である。つまり取得が容易な情報を用いて、一応の把持動作を実現することができる。実機を用いて把持動作を実現できたのであるから、後はこの動作時に得られた情報から、最終的な教示データ（第２の教示データ）に必要な情報を取得、出力すればよい。本実施形態では把持動作時のセンシング情報に基づいて第２の教示データを生成する。例えば、把持部に力覚センサーを持たせることで、上述した把持部とワークの接触を検知し、それに基づいてｚ方向での把持位置を決定すればよい。或いは、単純な接触ではなく、所与の力Ｆを加えたときの把持部の位置から把持位置を決定してもよい。また、把持動作では指を閉じる動作のように、把持部の開き量（閉じ量）を決定する動作も行われる。よって、センシング情報として指を駆動させるモーターのトルクリミット情報を取得して、指をどの程度閉じたらよいかという開き量情報を第２の教示データに含めることも考えられる。
【００５３】
以上に示したように、本実施形態の手法によれば、マーカーの認識処理に基づく第１の教示データと、ロボットの実機を動作させることによる第２の教示データを生成することができる。マーカーを用いて第１の教示データを生成するため、ユーザーにとってわかりやすい形態で、ロボットに対して把持動作を教示することが可能になる。図６（Ｂ）のようにマーカーＭ１及びＭ２を用いる例であれば、ユーザーにわかるように作業台上にラインＬ１，Ｌ２を表示しておく。そしてユーザーに対しては、「Ｌ１とＬ２の交点を目標として、Ｌ２方向に並んだ指を用いてロボットは把持動作を行う」ということを事前に通知する。そうすれば、ユーザーはロボットに把持させたいワークを、把持させたい位置姿勢で作業台上に配置するだけで、所望の把持動作を教示可能となる。
【００５４】
例えば、直方体のワークを図７（Ａ）に示したように、面Ａ１側から面Ａ２と面Ａ３を指で挟むように把持したいのであれば、ユーザーは図７（Ｂ）に示したように面Ａ１を作業台上方に向けて、Ａ２とＡ３がＬ２と交差する位置姿勢でワークを配置すればよい。
【００５５】
同様に、図７（Ｃ）に示したように、Ａ１の裏面であるＡ４側からＡ５，Ａ６を指で挟むように把持したいのであれば、ユーザーは図７（Ｄ）に示したように面Ａ４を作業台上方に向けて、Ａ５とＡ６がＬ２と交差する位置姿勢でワークを配置すればよい。また、把持位置をワークの端の方にすることも可能である。例えば図７（Ｅ）に示したように、Ａ１側から、Ａ２とＡ３のそれぞれＡ５寄りの位置を指で挟むように把持したいのであれば、図７（Ｆ）に示したように、図７（Ｂ）に比べて重心をずらした状態でワークを作業台上に配置すればよい。
【００５６】
その他、種々のワークを種々の把持方法で把持する場合であっても、ユーザーによる作業はワークの位置姿勢を考慮して作業台上に配置するだけであるため容易なものとなる。なお、ユーザーによるワークの配置は必ずしも厳密なものとする必要はなく、大まかな位置姿勢でワークを配置すれば充分である。もちろん、非常に高い精度で把持位置姿勢を決定する必要があれば、ユーザーによるワークの配置も高精度で行う必要がある。しかし本実施形態は、ユーザーによる教示が容易であることを重要視しているものであり、ユーザーの意図に沿った把持動作が教示データとして生成されればよく、極端に精度の高い教示データを求めることは想定していない。
【００５７】
さらに、ロボットの実機を動作させることで第２の教示データを生成するため、オフラインティーチングとは異なり、生成された教示データを用いて把持動作を実行した場合に、ワークを安定的に把持することができないといった可能性を抑止することが可能である。特に、第２の教示データ生成用の把持動作に第１の教示データを用いる例であれば、最終的な教示データ（第２の教示データ）は実際に行った把持動作時の情報を用いて生成されるものであるため、ロボットを安定的に動作させるものであり、且つ把持動作には第１の教示データが用いられるため、当該把持動作の実行が容易である。つまり、オフラインティーチングとダイレクトティーチングの利点を組み合わせることができ、ユーザーにとって容易な形態での教示を可能にしつつ、生成される教示データに基づく動作を安定したものとすることが可能である。
【００５８】
以下、本実施形態に係る制御装置１００やロボット（ロボットシステム）の詳細な構成例について説明し、その後本実施形態の処理を具体的に説明する。最後に、フローチャートを用いて本実施形態の処理の流れを説明する。
【００５９】
２．システム構成例
図２に本実施形態に係る制御装置１００の詳細なシステム構成例を示す。ただし、制御装置１００は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００６０】
図２に示したように、制御装置１００は、画像認識部１１０と、処理部１２０と、ロボット制御部１３０を含み、処理部１２０は、仮把持位置姿勢検出部１２１と、センシング情報取得部１２３と、教示データ生成部１２５を含む。
【００６１】
画像認識部１１０は画像認識処理を行う。ここでの画像認識処理とは、例えばマーカー認識処理であってもよい。また、教示データの生成においては、ワークの位置姿勢をロボットに設定された座標系で認識する処理も必要となる。よって画像認識部１１０ではワークの位置姿勢を認識する物体認識処理を、画像認識処理として行ってもよい。マーカー認識処理、及び物体認識処理の詳細については後述する。
【００６２】
処理部１２０は、画像認識処理の結果や、取得したセンシング情報に基づいて、種々の処理を行う。この処理部１２０の機能は、各種プロセッサ（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００６３】
ロボット制御部１３０は、処理部１２０の処理により生成された情報に基づいて、ロボット本体３００の制御を行う。具体的には、ロボット本体３００のアーム３１０や把持部３１９（ハンド）を駆動するモーターの制御を行う。なお、モーターの制御を行うとともに、モーターの駆動結果に基づいてトルクリミット情報を取得する処理を合わせて行ってもよい。
【００６４】
仮把持位置姿勢検出部１２１は、画像認識処理（狭義にはマーカー認識処理）の結果に基づいて、仮把持位置姿勢（仮把持位置及び仮把持姿勢）を検出する。検出された仮把持位置姿勢は、ロボット制御部１３０に出力され、当該仮位置姿勢を目標とする把持動作を行うロボット制御が実行される。
【００６５】
センシング情報取得部１２３は、仮把持位置姿勢を目標とする把持動作において検出されたセンシング情報の取得処理を行う。センシング情報とは上述したように、力覚センサー３５０からのセンサー情報でもよいし、トルクリミット情報であってもよい。
【００６６】
教示データ生成部１２５は、センシング情報取得部１２３が取得したセンシング情報に基づいて、最終的な把持位置姿勢を含む第２の教示データを生成する。教示データ生成部１２５での詳細な処理の例は後述する。
【００６７】
また本実施形態の手法は、図３に示したように、ワークを把持する把持部３１９と、把持部３１９を動作させる制御装置１００とを含み、制御装置１００は、ワークとマーカーとを撮像して第１の教示データを生成し、把持部３１９にワークを把持させて第２の教示データを生成するロボットに適用できる。図３の構成であれば、本実施形態に係るロボットは制御装置１００と、ロボット本体３００を含む。
【００６８】
ロボット本体３００は、アーム３１０と、当該アーム３１０の先端等に設けられる把持部３１９（広義にはエンドエフェクター）を含む。
【００６９】
これにより、容易なユーザー入力により、実機を用いて把持動作に関する教示データを生成するとともに、生成した教示データに基づく把持動作を実際にロボット本体３００に実行させる制御を行うロボット（ロボットシステム）を実現することが可能になる。ここでのロボットシステムは、図３に示したようにロボット本体３００と制御装置１００が別体として設けられるものであってもよい。
【００７０】
なお、本実施形態に係るロボットシステムの構成例は図３に限定されない。例えば、図４に示したように、ロボットシステムは、ロボット本体３００と、ベースユニット部４００を含んでもよい。
【００７１】
ロボット本体３００は双腕ロボットであってもよく、頭部や胴体に相当する部分に加え、第１のアーム３１０と第２のアーム３２０を含む。図４では第１のアーム３１０は、関節３１１，３１３と、関節の間に設けられるフレーム３１５，３１７から構成され、第２のアーム３２０についても同様のものとしたがこれに限定されない。また、第１のアーム３１０及び第２のアーム３２０の先端にはエンドエフェクター３１９が設けられる。なお、図４では２本のアームを有する双腕ロボットの例を示したが、本実施形態のロボットは３本以上のアームを有してもよい。
【００７２】
ベースユニット部４００は、ロボット本体３００の下部に設けられ、ロボット本体３００を支持する。図４の例では、ベースユニット部４００には車輪等が設けられ、ロボット全体が移動可能な構成となっている。ただし、ベースユニット部４００が車輪等を持たず、床面等に固定される構成であってもよい。図４のロボットシステムでは、ベースユニット部４００に制御装置１００が格納されることで、ロボット本体３００と制御装置１００とが一体として構成される。
【００７３】
また、本実施形態の手法は、ワークを把持する把持部３１９を備えるロボットと、ロボットを動作させる制御装置１００と、マーカーを含み、制御装置１００は、ワークとマーカーとを撮像してロボットの第１の教示データを生成し、把持部３１９にワークを把持させてロボットの第２の教示データを生成するロボットシステムに適用できる。なお、ここではロボットシステムに含まれる構成としてロボットと制御装置１００とマーカーを示したが、他の構成を追加してもよい。例えば、本実施形態のロボットシステムは、撮像画像を撮像する撮像部を含むものであってもよい。
【００７４】
３．具体的な処理の例
次に本実施形態の処理の具体例について説明する。以下、画像認識処理の具体例としてマーカー認識処理を説明し、マーカー認識処理の結果から仮把持位置姿勢を決定するとともに当該仮把持位置姿勢を目標とした把持動作について説明する。さらに把持動作時に得られたセンシング情報を用いた第２の教示データの生成処理を説明し、最後に変形例について説明する。
【００７５】
３．１  マーカーの配置とマーカー認識処理
まず作業空間におけるマーカーの配置例と、画像認識部１１０での画像認識処理（マーカー認識処理）の例について説明する。本実施形態での画像認識処理は、把持動作の目標となる仮把持位置姿勢を決定するために行われる。つまり、画像認識処理の対象となる画像に撮像されるべきは、仮把持位置姿勢を決定可能なものであればよい。本実施形態では例えばマーカーを用いるものとする。
【００７６】
つまり本実施形態では、画像認識部１１０は、マーカーを認識する画像認識処理を行い、処理部１２０は、マーカーについての画像認識処理（マーカー認識処理）の結果に基づいて、仮把持位置及び仮把持姿勢を決定する。
【００７７】
これにより、画像認識処理により認識が容易なマーカーを用いて、仮把持位置姿勢を決定することが可能になる。本実施形態では、仮把持位置に対応する位置にユーザーの手でワークを配置することを想定しているため、ロボットによる仮把持位置姿勢の把握が適切でないと、ユーザーが望んだ把持動作を教示することができない。つまり、ロボットによる仮把持位置姿勢の把握（例えばロボット座標系を用いて仮把持位置姿勢を表現する処理）は充分な精度で行う必要があり、その点で画像認識処理が容易なマーカーを利用することは有用である。
【００７８】
マーカーを用いる場合、上述したように当該マーカーを認識することで、仮把持位置姿勢を決定する必要がある。仮把持位置だけの特定であれば点を規定するマーカーであれば足りるが、仮把持姿勢を特定するにはさらに方向を規定するマーカーを用いる必要がある。
【００７９】
例えば、任意の角度回転させても形状模様の変化しない対称性を有するマーカーを用いた場合、当該マーカーを１つ用いることで作業空間上の１点（狭義には作業台平面上の１点）を特定できる。しかしその場合、仮把持位置は当該マーカーの位置、或いは当該マーカーからロボット座標系で（ｘ，ｙ）だけずれた位置等として決定可能であるが、仮把持姿勢を特定することができない。
【００８０】
よって画像認識部１１０は、把持対象であるワークの周囲に配置された複数のマーカーを認識する画像認識処理を行い、処理部１２０は、複数のマーカーについての画像認識処理の結果に基づいて、仮把持位置及び仮把持姿勢を決定してもよい。
【００８１】
例えば、図８（Ａ）に示したように２つのマーカーＭ３，Ｍ４を配置するものとしてもよい。この場合、Ｍ３とＭ４を結ぶラインＬ３により方向を規定できるため、例えば仮把持位置をＭ３の位置、仮把持姿勢をＬ３上に指が並ぶ姿勢として特定することが可能になる。
【００８２】
或いは、同様のマーカーを３つ以上配置してもよい。例えば図８（Ｂ）に示したように４つのマーカーＭ５〜Ｍ８を配置すれば、Ｍ５及びＭ６からラインＬ４が規定でき、Ｍ７及びＭ８からラインＬ５が規定できる。よって、Ｌ４とＬ５の交点を仮把持位置とし、Ｌ４及びＬ５の少なくとも一方から仮把持姿勢を決定すること等が可能である。
【００８３】
また、画像認識部１１０は、第１の方向を示すマーカーである第１のマーカーと、第１の方向と交差する第２の方向を示すマーカーである第２のマーカーとを認識する画像認識処理を行い、処理部１２０は、第１の方向と第２の方向が交差する位置に基づいて、仮把持位置を決定するとともに、第１の方向及び第２の方向の少なくとも一方に基づいて、仮把持姿勢を決定してもよい。
【００８４】
例えば、第１，第２のマーカーとして１８０度回転したときに形状模様が同じとなる対称性を有するマーカーを用いてもよい。図８（Ｃ）に示したように、マーカーＭ９やＭ１０は当該マーカーの模様の検出を行うことで、マーカーが存在する位置だけでなくマーカーが配置された方向を知ることができる。よって、マーカーＭ９を認識することでＭ９の位置とともに所与の方向のラインＬ６を特定でき、同様にマーカーＭ１０を認識することでＭ１０の位置とともに所与の方向のラインＬ７を特定できる。この場合には、２枚のマーカーを用いて、図８（Ｂ）と同様に２つの方向を規定し、仮把持位置姿勢を特定可能である。この場合、１つのマーカーで１つの方向を特定することができるため、図８（Ｂ）に比べて用いるマーカーの数を少なくすることが可能である。
【００８５】
また、回転対称性を有しないマーカーであれば、マーカーの形状模様を認識することで、マーカーの位置及び方向を一意に特定可能である。よって、例えばマーカーの基準方向と当該基準方向に直交する方向の２方向を考えれば、当該２つの方向が１つのマーカーを認識することで特定可能となる。つまり図８（Ｄ）に示したように１つのマーカーを用いて図８（Ｂ）や図８（Ｃ）と同様に仮把持位置姿勢を決定することも可能である。
【００８６】
ただし、１つのマーカーから認識できる情報が増えるほど、マーカーの形状や模様は複雑になる傾向がある。例えば、Ｍ３〜Ｍ８のように位置さえわかればよいマーカーは非常にシンプルにできるが、Ｍ１１のように細かな方向まで認識するマーカーは対称性を有さない形状模様となる必要がある。そのため、複雑なマーカーを用いることで、マーカーの認識精度が低下する、或いはマーカー自体のサイズを大きくする必要が生じる場合が考えられる。つまりあえて多くのマーカーを用いることで、１つ当たりのマーカーサイズを小さくしたり、検出精度を向上させてもよいと言える。以上のことより、本実施形態では種々のマーカーを種々の配置により用いることが可能であるが、配置可能なマーカー数や、画像認識処理の精度等を考慮して、適切なマーカー種類、マーカー数を決定することが望ましい。
【００８７】
画像認識部１１０では、作業空間を撮像した撮像画像に対して画像認識処理（マーカー認識処理）を行う。例えば、撮像画像ＩＭが図９に示した画像であり、ＩＭの一部にマーカーの配置された作業台が撮像されていたとする。その場合、画像認識部１１０では、ＩＭを対象としてマーカー認識処理を行い、マーカーの画像上での位置を認識する。
【００８８】
画像認識処理の結果は、マーカーの画像上位置を表すものである。例えば、図９の例であれば、画像の左上の点（画素）を基準とした場合に、マーカーは右にｍ０画素、下にｎ０画素の位置に１つ、及び右にｍ１画素、下にｎ１画素の位置に１つ検出された、という情報が取得される。このマーカー位置を表す情報は、このままではロボット制御に利用できないため、処理部１２０の仮把持位置姿勢検出部１２１では、マーカー位置をロボット座標系に変換するとともに、仮把持位置姿勢を特定する処理を行う。
【００８９】
例えば、撮像画像を撮像する撮像部の位置、及び撮像方向がロボット座標系において既知の場合には、撮像画像の画像上位置とロボット座標系での座標値を直接変換可能である。つまり画像上位置を表す座標系（図９の例であればｍｎ軸により規定される座標系）とロボット座標系との座標変換行列等が既知であるため、画像認識処理の結果に対して当該座標変換処理を行うことで、マーカー位置をロボット座標系で取得することができる。マーカー位置や、当該マーカーにより定められる方向（ライン）がロボット座標系で取得できれば、仮把持位置姿勢はそれぞれ２本のラインの交点や、１つのラインに沿った方向等から、容易にロボット座標系で決定可能である。
【００９０】
また、撮像部の位置、及び撮像方向がロボット座標系において未知の場合には、何らかの既知の情報を用いて座標変換行列等を求める必要がある。例えば、ロボットを作業空間に配置した際に、当該ロボットと作業台の位置関係が固定されたとする。その場合、作業台の位置はロボット座標系で表現可能な情報として取得される。よって、撮像画像ＩＭから作業台を認識する処理を合わせて行い、ＩＭにおける作業台の位置と、ロボット座標系での作業台の位置から、座標変換処理に用いる変換行列等を求めることができる。その後の処理は座標変換処理が既知の場合と同様である。
【００９１】
３．２  仮把持位置姿勢を目標とした把持動作と第２の教示データの生成
次に、処理部１２０では仮把持位置姿勢を目標とした把持動作を実行する。具体的には、仮把持位置姿勢を目標とし、仮把持位置の鉛直上側から鉛直下方向に向かって、仮把持姿勢と同様の姿勢で把持部を降下させるロボット制御を、ロボット制御部１３０に指示すればよい。この際、鉛直上方からのアプローチでは、把持部の指構造等が障害物（作業台やロボット、作業対象でない他のワーク）等に衝突する可能性は低いことから、把持部の指は最大限開いておけばよい。このようにすれば、指が把持対象であるワークの上面と衝突してしまう可能性を抑止できる。
【００９２】
図９に示したように撮像画像ＩＭが作業台の鉛直上方から撮像された場合には、当該撮像画像に対する画像認識処理により取得される仮把持位置はｘｙ平面内の位置となりｚ軸方向での位置が不定である。しかし本実施形態では、上述したように把持動作のアプローチがｚ軸方向の移動のみで行われるため、実際にアプローチを行ってワークに接触する位置で把持部を停止させれば把持動作を実現できる。つまり、把持動作前に仮把持位置を厳密に確定させる必要はない。
【００９３】
逆に言えば、アプローチの停止位置を決定するためには、何らかの手法により把持部とワークの接触を検出する必要がある。そこで本実施形態では、図１０（Ａ）に示したように、ロボット本体３００の把持部３１９に力覚センサー３５０を設けてもよい。
【００９４】
この場合、把持動作において取得されるセンシング情報は、ロボットに設けられた力覚センサー３５０により出力された力覚センサー情報である。図１０（Ｂ）に示したように、把持部３１９がワークと接触した場合には、力覚センサー３５０にワークが押しつけられることになるため、何らかの力が検出される。本実施形態では力覚センサー３５０で力が検出された場合に、把持動作のアプローチを停止する。
【００９５】
アプローチが停止した後に、把持部の構造を用いてワークを固定（把持）する動作を行う。例えば、把持部が図５等に示してきたように指状の可変部を有する場合には、指を閉じることでワークを把持する。その他、把持部が開閉可能な可変部を有するのであれば、開いた状態にある可変部を閉じる動作を行えばよい。
【００９６】
この把持部の可変部の閉じ量（開き量）は、事前に決定されているものではない。よって本実施形態では、アプローチの停止位置と同様に、把持動作を試行してその結果から閉じ量を決定する。具体的には、可変部を駆動するモーターに、トルクリミッター或いはそれに類する構造物を設けておき、所定以上の過負荷が生じた場合にその旨を表す情報を取得すればよい。
【００９７】
この場合、把持動作において取得されるセンシング情報は、ロボットを駆動するモーターのトルクリミット情報である。図１０（Ａ）に示したように把持部が開かれている状態から、図１０（Ｂ）に示したように把持部が閉じられた状態に移行する際には、モーターを駆動させ可変部を閉じる方向のトルクを発生させる。しかし、可変部とワークが接触し、充分な強さでワークの把持が行われた状態では、さらに可変部を閉じる方向のトルクを発生させようとすると高い負荷が生じることになる。この状態は可変部を過剰に閉じようとしているものと判定できるため、可変部の閉じ量としてその際の値を用いれば、教示対象であるワークを安定して（充分な力で）把持することが可能である。
【００９８】
つまり、本実施形態では、把持動作開始前には決定できていなかった情報を、把持動作中に取得されたセンシング情報を用いて決定していく。そして、仮把持位置姿勢の情報、及びアプローチに関する情報（ここではｚ軸方向に降下させる動作）に対して、センシング情報で決定される情報を加えることで、把持動作が実機を用いて実現されたことになる。実機を用いた把持動作が実現されたのであれば、その際の情報を第２の教示データとすれば、ここでの把持動作を再現可能にできる。
【００９９】
よって処理部１２０は、力覚センサー情報に基づいて、作業台に対する垂直方向での把持位置を決定し、決定した把持位置を含む第２の教示データを生成する。ここで、作業台に対する垂直方向での把持位置とは、図６等におけるｚ軸方向での位置のことであり、把持動作におけるアプローチの距離を特定する情報である。
【０１００】
また処理部１２０は、トルクリミット情報に基づいて、ワークを把持した状態での把持部の開き量情報を決定し、決定した開き量情報を含む第２の教示データを生成する。ここで把持部の開き量情報とは、把持部が開閉する可変部を有する場合に、当該可変部がどの程度開いているか（閉じているか）を表す情報である。可変部が１又は複数の関節により構成される場合、開き量情報は各関節の関節角で表現されてもよい。
【０１０１】
これにより、センシング情報を用いて、アプローチの停止位置や、指構造の閉じ具合等の、把持動作に必要な情報を決定することが可能になり、仮把持位置姿勢を用いた把持動作を実現することが可能になる。また、センシング情報に基づき取得された情報は、そのまま第２の教示データとして流用することで、仮把持位置姿勢を用いた把持動作を再現することが可能である。
【０１０２】
例えば、仮把持位置姿勢を用いた把持動作におけるロボットパラメーター（例えばロボットに含まれる各関節の関節角の値）を逐一記憶しておき、当該ロボットパラメーターに従ったロボット制御を行うことで、把持動作を再現してもよい。
【０１０３】
或いは、把持動作の柔軟性を向上させるために上記関節角等に比べて抽象化されたパラメーターを第２の教示データとして生成してもよい。ここでの第２の教示データは、例えば最終的な把持位置、把持姿勢、把持部の開き量情報を含む情報である。最終的な把持位置姿勢については、仮把持位置姿勢を用いた把持動作でのアプローチ終了時の把持部の位置姿勢を用いればよく、開き量情報はトルクリミット情報により決定される情報を用いればよい。
【０１０４】
第２の教示データを用いた実際のロボット制御においては、把持部を最終的な把持位置の鉛直上方に、最終的な把持姿勢となる状態でセットし、その状態から最終的な把持位置姿勢となるまでｚ軸方向に把持部を降下（アプローチ）させる。そしてアプローチ終了後に、開き量情報で指定される量だけ把持部の可動部を閉じれば把持動作が完了することになる。
【０１０５】
なお本実施形態の手法は、ロボット実機を用いて実際にワークを把持し、その結果を用いることで安定した把持動作を可能にする教示データを作成するものである。つまり、本実施形態の手法により生成される教示データは、ワークとの関係を規定する情報となるべきである。それに対して、上述の説明では、仮把持位置姿勢も最終的な把持位置姿勢も、ロボットの把持部制御における目標を表す情報であって、ワークの位置を示すものではない。つまりこのままでは「所与の位置を目標として把持動作を行う」という教示データを作成したにすぎず、当該「所与の位置」に教示時と同様の位置姿勢でワークが配置されていなければ意味はないことになる。
【０１０６】
よって本実施形態では、画像認識部１１０は、ワークの位置姿勢を認識する物体認識処理を、画像認識処理として行い、処理部１２０は、物体認識処理により取得されたワークの位置姿勢と、最終的な把持位置と、最終的な把持姿勢とを含む教示データ（狭義には第２の教示データ）を生成する。
【０１０７】
ここで物体認識処理自体は、ワークのモデルデータをテンプレートとしたテンプレートマッチング等、広く知られた手法により実現できるため、詳細な説明は省略する。
【０１０８】
これにより、ワークの画像上での位置姿勢を認識することが可能になる。また、マーカー認識処理と同様に座標変換処理を行うことで、ワークの位置姿勢をロボット座標系で取得することも可能になる。よって、所与の把持位置姿勢を目標とする教示データが得られた場合にも、当該把持位置姿勢をワークとの相対的な関係として理解することが可能になる。例えば、「ロボット座標系で（ｘ，ｙ，ｚ，ｕ，ｖ，ｗ）を目標として把持動作を行う」という教示データを、「ワーク上の所与の点を目標として把持動作を行う」という教示データに変形できる。よって、ワークの位置が変化した場合であっても、当該ワーク位置の変化に応じて把持動作も適切に変更することができ、多くの状況に柔軟に対応可能な教示データを生成することができる。
【０１０９】
また、画像認識部１１０は、仮把持位置及び仮把持姿勢を目標として、ロボットの把持部３１９でワークを把持する把持動作をロボットに行わせた後に、物体認識処理を行ってもよい。
【０１１０】
本実施形態では、仮把持位置姿勢を目標とする把持動作の前に、物体認識処理を行うことは妨げられない。しかし、ユーザーによるワークの配置や、ワーク自体の重量バランス、或いはロボットの把持部３１９の構成等によっては、把持動作の最中にワークの位置姿勢が変化してしまうことも考えられる。例えば、２本の指でワークを把持する場合、左指による力の方向と、右指による力の方向が同一直線上で反対方向となればワークの運動は考えにくい。しかし、ワークが斜めに配置されたり、把持部自体の剛性がそこまで高くない場合には、各指による力が同一直線上にならず、ワークを回転させるモーメントが発生する可能性もある。本実施形態での安定的な把持動作とは、把持動作が終了した最終的な状態を再現することで実現される。すなわち、ワークはユーザーにより配置された状態ではなく、把持動作により把持部３１９に把持された後の状態を教示データに利用することが好ましいと言える。つまり、物体認識処理を仮把持位置姿勢を目標とする把持動作の後に行うことで、把持動作によりワークが移動した場合等であっても、安定した把持動作を実現する教示データを生成することが可能になる。
【０１１１】
３．３  変形例
上述してきたように、本実施形態では仮把持位置姿勢を用いた把持動作を容易に実現するために、当該把持動作におけるアプローチは図６（Ａ）に示したようなシンプル且つ自動生成容易なものとしている。そのため、所与のワークに対して複数のアプローチ方向から把持動作を行うことが難しくなる。
【０１１２】
例えば、図７（Ａ）〜図７（Ｆ）を用いて上述したように、１つのワークに対しても、面Ａ１の方向から把持したい場面もあれば、面Ａ４の方向から把持したい場面もある。或いは、Ａ１の方向から把持する場合にも、面Ａ２，Ａ３における接触点を変更したい場面もある。本実施形態では、教示時におけるアプローチ方向が一定であることから、ワーク側の位置姿勢を変更することで、種々の方向からの把持動作を教示する。
【０１１３】
具体的には、第１〜第Ｎ（Ｎは２以上の整数）の面を有するワークを把持対象とした場合に、処理部１２０は、ワークの第ｉ（ｉは１≦ｉ≦Ｎを満たす整数）の面を処理対象面として、仮把持位置及び仮把持姿勢を目標とする把持動作をロボットに行わせ、把持動作において検出されたセンシング情報に基づいて、第ｉの面を処理対象面とした第２の教示データである第２ｉの教示データを生成する。同様に、処理部１２０は、ワークの第２ｊ（ｊは１≦ｊ≦Ｎ、ｊ≠ｉを満たす整数）の面を処理対象面として、仮把持位置及び仮把持姿勢を目標とする把持動作を前記ロボットに行わせ、把持動作において検出されたセンシング情報に基づいて、第ｊの面を処理対象面とした第２の教示データである第２ｊの教示データを生成する。
【０１１４】
これにより、所与のワークの異なる面の方向からの把持動作を教示することが可能になる。ここでの処理対象面とは、ワークの複数の面のうち、把持部３１９のアプローチポイント（アプローチを開始する把持部３１９の位置であり図６（Ａ）の上側の位置に対応）の方向を向く面を表す。図７（Ａ）であれば面Ａ１が処理対象面であるし、図７（Ｃ）であれば面Ａ４が処理対象面である。図７（Ａ）、図７（Ｃ）に示したように、複数の方向からの把持動作を教示したい場合にも、各面を対象として上述の処理を繰り返すことで、適切に教示データを生成することが可能になる。
【０１１５】
この際、ワークの第ｉの面が作業台の鉛直上方向を向く位置姿勢で、ワークが配置された場合に、処理部１２０は、ワークの第ｉの面を処理対象面として、仮把持位置及び仮把持姿勢を目標とする把持動作をロボットに行わせ、把持動作において検出されたセンシング情報に基づいて、第２ｉの教示データを生成すればよい。
【０１１６】
これにより、配置されたワークの位置姿勢に応じて、適切な教示データを生成することが可能になる。本実施形態では、仮把持位置姿勢を目標とした把持動作を実現する際に、システム側でのアプローチ動作生成についての処理負荷をできるだけ軽減することを考えている。つまりアプローチ動作についての多様性は高くないことになるが、ワークの位置姿勢を変更すれば、多様な把持動作を実現する教示データの生成が可能である。ワークの配置はユーザーに委ねられるため、制御装置１００側の処理負荷は高くならない。また、ユーザーにとっても処理対象面を上にして所定の位置にワークを置くだけであるため、ワーク配置は大きな負担となるものではない。なお、本実施形態では図６（Ａ）に示したように鉛直上方からアプローチするものとしたため、ワークの第ｉの面を鉛直上方に向けるものとした。つまり広義には、ワークの第ｉの面が把持部のアプローチポイントの方向を向く位置姿勢で、ワークが配置された場合に、処理部１２０は、ワークの第ｉの面を処理対象面として、仮把持位置及び仮把持姿勢を目標とする把持動作をロボットに行わせ、把持動作において検出されたセンシング情報に基づいて、第２ｉの教示データを生成すればよい。
【０１１７】
また、教示する把持動作に関して、ユーザーが何らかの把持パラメーターを入力してもよい。例えば、把持の深さをユーザーが指定してもよい。ここで把持の深さとは、把持部の可動部分とワークの接触位置を表す情報である。例えば、図７（Ａ）に示したように、面Ａ２と面Ａ３に把持部の指を押しつけてワークを把持する場合に、Ａ２，Ａ３と指の接触位置を作業台に近い位置にして把持してもよいし、或いは接触位置を面Ａ１に近い位置にして把持してもよい。本実施形態では、処理対象面から遠い位置（作業台に近い位置）での把持状態を「把持が深い」と表現し、処理対象面に近い位置での把持状態を「把持が浅い」と表現する。
【０１１８】
上述したように、本実施形態では、把持部とワークが接触する位置を把持位置とする。よって図５（Ａ）に示した把持部のようにワークに接触するパーツと、指との相対位置が変化しない場合には、把持の深さを調節することは難しい。しかし図１１（Ａ）に示したように、パーツ３１９３が移動可能な構成であれば、パーツ３１９３と指３１９１，３１９２との相対位置を変化させられる。よって、図１１（Ｂ）に示したようにパーツ３１９３を押し出した状態とすれば、指３１９１，３１９２によるワークの把持は浅いものとできる。一方、図１１（Ｃ）に示したようにパーツ３１９３を引いた状態とすれば、指３１９１，３１９２によるワークの把持は深いものとできる。
【０１１９】
つまり図１１（Ａ）に示したような把持部の構成であれば、ユーザーからの把持の深さに関する情報を受け付け、当該情報に対応した把持動作を実現する教示データを生成することが可能になる。図１１（Ａ）の構成であれば、把持を深くする指示があった場合にはパーツ３１９３を引き、逆に把持を浅くする指示があった場合にはパーツ３１９３を押し出す制御を行えばよい。パーツ３１９３の制御後に、仮把持位置姿勢を目標とする把持動作を行って教示データを生成すれば、当該教示データは把持の深さに関してユーザーの意図を反映したものとなる。
【０１２０】
また、把持の強さをユーザーが指定してもよい。把持の強さは上述したように把持部の可変部（例えば指３１９１，３１９２）を駆動するモーターのトルクリミット情報により決定される。その際、リミットとする負荷の程度は設定により変更可能である。例えば、比較的小さな負荷でもリミットであると判定すれば、可変部によりワークに加えられる力は比較的小さくなるし、比較的大きな負荷にならなければリミットと判定しないものとすれば、可変部によりワークに加えられる力は比較的大きくなる。つまり、ユーザーから把持の強さに関する情報を受け付け、当該情報に基づいてトルクのリミットを設定することで、ユーザーの指示に対応した把持動作を実現する教示データを生成することが可能になる。
【０１２１】
また、上述してきた本実施形態の教示や、把持パラメーターの設定のユーザーインターフェースとしては、図１２に示した画面等を用いてもよい。図１２の例では、Ｂ１に示したように、スライダーを表示することで、把持パラメーターのうち把持の深さ（握り深さ）の入力を可能にしている。また、Ｂ２に示したように、ラジオボタンを表示することで、把持パラメーターのうち把持の強さ（握り強さ）の入力を可能にしている。
【０１２２】
また、Ｂ３には必要な動作をロボットに指示するための複数のボタンを表示している。ホームボタンは、ロボットをホームポジションに戻す指示を行うためのボタンである。ロボットのアーム３１０等が駆動していると、撮像画像ＩＭにアーム３１０等が写り込んでしまい、マーカー認識処理や物体認識処理の精度が低下するおそれがある。ホームポジションとは、少なくとも撮像画像内にロボットのパーツが写り込まないようなロボットの位置（及び姿勢）を表すものである。ホームボタンは、マーカー認識処理や物体認識処理の前に押下されることが想定される。戻すボタンは、ロボット或いは制御装置１００の動作を前の状態に戻すボタンである。
【０１２３】
また、マーカー認識ボタンはマーカー認識処理を指示するボタンであり、物体認識ボタンは物体認識処理を指示するボタンである。また、把持ボタンは、仮把持位置姿勢を目標とした把持動作の開始を指示するボタンである。把持ボタンが押下された際には、Ｂ１のインターフェースで指示された把持の深さ、強さに対応する把持動作が実行される。
【０１２４】
登録ボタンは、把持ボタンの押下による把持動作に基づいて生成された教示データをデータベースに登録するボタンである。このようなインターフェースでは、把持ボタンの押下により実行された把持動作が所望の動作でない場合に、ユーザーは登録ボタンを押下しなければよい。そのようにすれば、ユーザーの意図と合わない教示データが記憶されることを抑止できる。
【０１２５】
なお、インターフェースにはＢ４に示したように、指方向に関する入力を行うものを設けてもよい。例えば図１１（Ａ）等では把持部の指は２つとしていたが、４つ等であってもよい。その場合、各指は四角形の頂点の位置に配置され、指のうち２つを使って第１の方向で挟み込む動作を行い、残りの２つを使って第１の方向と交差する（狭義には直交する）第２の方向で挟み込む動作を行う。Ｂ４のインターフェースは指の使い方を指示するものであり、指方向把持なしのチェックボックスにチェックを入れた場合、４つの指のうち２つの指を使わずに、一方向のみから挟み込む把持動作を実行させる。また指方向後のチェックボックスにチェックを入れた場合、２つの指による挟み込みと、残り２つの指による挟み込みに時間差を設ける把持動作を実行させる。
【０１２６】
なお、本実施形態の手法における入力インターフェースは図１２に限定されず、種々の変形実施が可能である。
【０１２７】
４．処理の流れ
図１３に本実施形態の処理を説明するフローチャートを示す。この処理が開始されると、まずマーカー認識処理を行う（Ｓ１０１）。マーカー認識処理の詳細は上述したとおりであり、Ｓ１０１の処理は例えば、図１２のマーカー認識ボタンの押下をトリガーとして行われてもよい。
【０１２８】
次にマーカー認識処理の結果に基づいて把持位置姿勢を特定し（Ｓ１０２）、特定した把持位置姿勢を目標として把持動作を行う（Ｓ１０３）。Ｓ１０３の処理では、上述したようにセンシング情報を取得し、アプローチの停止位置や指の開き量を決定する。
【０１２９】
そしてＳ１０３の把持動作終了時のワークの位置姿勢を物体認識処理により認識し（Ｓ１０４）、Ｓ１０３及びＳ１０４での処理結果に基づいて教示データを生成する（Ｓ１０５）。生成した教示データが適切な場合には、当該教示データをデータベースに登録する（Ｓ１０６）。
【０１３０】
その後、教示が終了したかの判定を行い（Ｓ１０７）、終了しない場合にはＳ１０１に戻って処理を継続する。なお、ロボットと作業台の相対位置が変わらない場合等には、Ｓ１０１及びＳ１０２の処理を再度行う必要はないため、Ｓ１０７でＮｏの場合にはＳ１０３に戻るものとしてもよい。Ｓ１０７でＹｅｓの場合には処理を終了する。
【０１３１】
なお、本実施形態の制御装置１００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の制御装置１００等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１３２】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また制御装置１００等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１３３】
ＥＰ  エンドポイント、ＩＭ  撮像画像、Ｌ１〜Ｌ７  ライン、
Ｍ１〜Ｍ１１  マーカー、１００  制御装置、１１０  画像認識部、１２０  処理部、
１２１  仮把持位置姿勢検出部、１２３  センシング情報取得部、
１２５  教示データ生成部、１３０  ロボット制御部、３００  ロボット本体、
３１０  アーム、３１１，３１３  関節、３１５，３１７  フレーム、３１９  把持部、３２０  第２のアーム、３５０  力覚センサー、４００  ベースユニット部、
３１９１，３１９２  指、３１９３  パーツ、
【図１】
2015112654.tif 000003
【図２】
2015112654.tif 000004
【図３】
2015112654.tif 000005
【図４】
2015112654.tif 000006
【図５】
2015112654.tif 000007
【図６】
2015112654.tif 000008
【図７】
2015112654.tif 000009
【図８】
2015112654.tif 000010
【図９】
2015112654.tif 000011
【図１０】
2015112654.tif 000012
【図１１】
2015112654.tif 000013
【図１２】
2015112654.tif 000014
【図１３】
2015112654.tif 000015