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