(57)【要約】【課題】ロボットの把持部を把持位置に最短距離で移動させると衝突が発生する場合でも、衝突を回避して把持作業が可能な教示データを生成することができる制御装置、ロボット、制御方法及びロボットシステム等の提供。【解決手段】制御装置１００は、ロボット３００の把持部３１０の把持位置へ把持部３１０を移動させる際に通過する通過点から、把持位置までの距離情報を入力するための入力受付画面を表示させる表示処理部１３０と、入力された距離情報を受け付ける入力情報取得部１５０と、受け付けた距離情報を用いて、ロボットの教示データを生成する処理部１１０と、を含む。【選択図】  図３
2015116631.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの把持部の把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を入力するための入力受付画面を表示させる表示処理部と、
入力された前記距離情報を受け付ける入力情報取得部と、
受け付けた前記距離情報を用いて、前記ロボットの教示データを生成する処理部と、
を含むことを特徴とする制御装置。
【請求項２】
請求項１において、
前記入力情報取得部は、
前記把持位置における前記把持部の位置姿勢データを受け付け、
前記処理部は、
前記把持位置での前記位置姿勢データを含む前記教示データを生成することを特徴とする制御装置。
【請求項３】
請求項２において、
前記処理部は、
前記把持位置での前記位置姿勢データと前記距離情報とに基づいて、前記通過点における前記把持部の位置姿勢データを特定し、前記通過点での前記位置姿勢データを含む前記教示データを生成することを特徴とする制御装置。
【請求項４】
請求項３において、
前記通過点での前記位置姿勢データは、
前記距離情報により表される距離だけ、前記把持部の把持方向と交差する方向に、前記把持位置から前記把持部を移動させた時の前記把持部の位置姿勢データであることを特徴とする制御装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記距離情報は、
第１の把持位置に対応する第１の通過点を決定するために用いる第１の距離情報と、第２の把持位置に対応する第２の通過点を決定するために用いる第２の距離情報とを含み、
前記処理部は、
前記第１の距離情報と前記第２の距離情報とに基づいて、前記第１の通過点における前記把持部の位置姿勢データと、前記第２の通過点における前記把持部の位置姿勢データとを生成することを特徴とする制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記表示処理部は、
前記教示データに基づく前記ロボットの動作を、ユーザーが確認するための確認画面を更に表示させることを特徴とする制御装置。
【請求項７】
請求項６において、
前記表示処理部は、
前記ロボットの前記把持部が第１の通過点から第１の把持位置に移動可能であること確認するための前記確認画面を表示させた後に、前記ロボットの前記把持部が第２の通過点から第２の把持位置に移動可能であることを確認するための前記確認画面を表示させることを特徴とする制御装置。
【請求項８】
把持部と、
前記把持部を動作させる制御装置と、
を含み、
前記制御装置は、
把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を受け付けて、前記教示データを生成することを特徴とするロボット。
【請求項９】
ロボットの把持部の把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を受け付けることと、
受け付けた前記距離情報を用いて、前記ロボットの教示データを生成することと、
を含むことを特徴とする制御方法。
【請求項１０】
把持部を備えるロボットと、
把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を入力するための入力受付画面を表示する表示装置と、
入力された前記距離情報を受け付けて、前記ロボットの教示データを生成する制御装置と、
を含むことを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボット、制御方法及びロボットシステム等に関係する。
【背景技術】
【０００２】
ロボットに対して所望の動作を行わせるためには、例えばロボットの関節（ジョイント）をどのように変化させ、ロボットの手先（TCP：tool center point）をどの時刻にどの位置にもっていくか、といった動作指令を逐一ロボットに与える必要がある。このような動作指令は人間が記述しており、かつ、ロボットに動作指令を与えた後は、人間が確認しながらロボットを動作させる必要がある。人間が行うこの手続きを「教示（ティーチング：teaching）」と呼ぶ。
【０００３】
そして、教示の具体的な方法としては、教示者がロボットのアーム等を手で動かすことでロボット動作を教示するダイレクトティーチングや、ティーチングペンダント等の操作部を操作することでロボット動作を教示するティーチングプレイバック、或いはロボットの実機は使用せずに、コンピューター上でシミュレーションを用いて教示を行うオフラインティーチング等が知られている。また、これらのロボット動作の教示方法に関する発明としては、特許文献１に記載される従来技術なども公開されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２５４０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、溶接作業を行う場合についてのみ具体例が開示されており、ワークの把持作業については言及されていないが、把持作業を行う場合には、ワーク等を把持可能なポイント（把持位置）へ、ロボットの把持部を移動させる際に、ロボットの各部がワークや障害物（周辺物）等に衝突してしまうことがある。また、把持作業を行う場合には、ワークや障害物の配置位置などの作業環境によって、適切なアプローチポイント（通過点）が異なる。そして、ワークや障害物の配置位置は、逐次変わることが多い。そのため、把持位置から所定の距離だけ離れているポイントを、毎回アプローチポイントに設定しても、現在のポイント（把持部の現在位置）からアプローチポイントへ把持部を移動させる際に、衝突が発生してしまうことが考えられる。そのため、障害物等への衝突を回避可能な教示データを生成する必要がある。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ロボットの把持部の把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を入力するための入力受付画面を表示させる表示処理部と、入力された前記距離情報を受け付ける入力情報取得部と、受け付けた前記距離情報を用いて、前記ロボットの教示データを生成する処理部と、を含む制御装置に関係する。
【０００７】
本発明の一態様では、把持ポイント（把持位置）に対応するアプローチポイント（通過点）の決定に用いる距離情報を、ユーザーが可変に設定するための入力受付画面の表示処理を行う。そして、入力受付画面においてユーザーが入力した距離情報を取得し、取得された距離情報に基づいて、アプローチ位置姿勢データ（把持位置での位置姿勢データ）を含む教示データを生成する。
【０００８】
これにより、ロボットの把持部を把持位置に最短距離で移動させると衝突が発生する場合でも、衝突を回避して把持作業が可能な教示データを生成することが可能となる。
【０００９】
また、本発明の一態様では、前記入力情報取得部は、前記把持位置における前記把持部の位置姿勢データを受け付け、前記処理部は、前記把持位置での前記位置姿勢データを含む前記教示データを生成してもよい。
【００１０】
これにより、把持ポイントにおいて把持部が、ユーザーにより指定された位置姿勢になる教示データを生成すること等が可能になる。
【００１１】
また、本発明の一態様では、前記処理部は、前記把持位置での前記位置姿勢データと前記距離情報とに基づいて、前記通過点における前記把持部の位置姿勢データを特定し、前記通過点での前記位置姿勢データを含む前記教示データを生成してもよい。
【００１２】
これにより、アプローチポイントにおける把持部の位置姿勢を特定すること等が可能になる。
【００１３】
また、本発明の一態様では、前記通過点での前記位置姿勢データは、前記距離情報により表される距離だけ、前記把持部の把持方向と交差する方向に、前記把持位置から前記把持部を移動させた時の前記把持部の位置姿勢データであってもよい。
【００１４】
これにより、アプローチポイントから把持ポイントへ把持部を移動させる際に、把持部とワークが衝突しないようにすること等が可能になる。
【００１５】
また、本発明の一態様では、前記距離情報は、第１の把持位置に対応する第１の通過点を決定するために用いる第１の距離情報と、第２の把持位置に対応する第２の通過点を決定するために用いる第２の距離情報とを含み、前記処理部は、前記第１の距離情報と前記第２の距離情報とに基づいて、前記第１の通過点における前記把持部の位置姿勢データと、前記第２の通過点における前記把持部の位置姿勢データとを生成してもよい。
【００１６】
これにより、二つのワークを続けて把持する場合でも、ロボットの各部と障害物等との衝突を回避しつつ、把持作業を行うこと等が可能になる。
【００１７】
また、本発明の一態様では、前記表示処理部は、前記教示データに基づく前記ロボットの動作を、ユーザーが確認するための確認画面を更に表示してもよい。
【００１８】
これにより、生成した教示データに基づいて、ロボットが衝突を回避しつつ動作可能であることを、ユーザーが確認すること等が可能になる。
【００１９】
また、本発明の一態様では、前記表示処理部は、前記ロボットの前記把持部が第１の通過点から第１の把持位置に移動可能であること確認するための前記確認画面を表示させた後に、前記ロボットの前記把持部が第２の通過点から第２の把持位置に移動可能であることを確認するための前記確認画面を表示させてもよい。
【００２０】
これにより、二つの把持作業を行う場合に、衝突が発生しないかをユーザーが確認すること等が可能になる。
【００２１】
また、本発明の他の態様は、把持部と、前記把持部を動作させる制御装置と、を含み、前記制御装置は、把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を受け付けて、前記教示データを生成するロボットに関係する。
【００２２】
また、本発明の他の態様は、ロボットの把持部の把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を受け付けることと、受け付けた前記距離情報を用いて、前記ロボットの教示データを生成することと、を含む制御方法に関係する。
【００２３】
また、本発明の他の態様は、把持部を備えるロボットと、把持位置へ前記把持部を移動させる際に通過する通過点から、前記把持位置までの距離情報を入力するための入力受付画面を表示する表示装置と、入力された前記距離情報を受け付けて、前記ロボットの教示データを生成する制御装置と、を含むロボットシステムに関係する。
【００２４】
本発明の幾つかの態様によれば、ロボットの把持部を把持位置に最短距離で移動させると衝突が発生する場合でも、衝突を回避して把持作業が可能な教示データを生成することができる制御装置、ロボット、制御方法及びロボットシステム等を提供することができる。
【００２５】
また、本発明の幾つかの態様によれば、ロボットの把持部の現在位置と把持位置との間に障害物がある場合でも、障害物との衝突を回避して把持作業が可能な教示データを生成することができる制御装置、ロボット、制御方法及びロボットシステム等を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態のシステム構成例。
【図２】図２（Ａ）、図２（Ｂ）は、アプローチポイントによる衝突回避の説明図。
【図３】ユーザーインターフェースの一例の説明図。
【図４】図４（Ａ）〜図４（Ｃ）は、異なるアプローチポイントによる衝突回避の説明図。
【図５】アプローチ位置姿勢ベクトルの特定処理の説明図。
【図６】図６（Ａ）〜図６（Ｃ）は、把持部の移動方向の説明図。
【図７】把持作業を２回行う場合の処理の説明図。
【図８】図８（Ａ）、図８（Ｂ）は、確認画面の説明図。
【図９】本実施形態の処理の流れを説明するフローチャート。
【図１０】図１０（Ａ）、図１０（Ｂ）は、本実施形態のロボットの一例の説明図。
【発明を実施するための形態】
【００２７】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２８】
１．本実施形態の手法
ロボットに対して所望の動作を行わせるために、ユーザーによる教示を用いる手法が広く知られている。具体的には、上述したように、ダイレクトティーチング、ティーチングプレイバック及びオフラインティーチング等が知られている。
【００２９】
本実施形態では、ワークの把持作業を行うためのロボットの教示データを生成する。把持作業を行う場合には、ワーク等を把持可能なポイント（以下では、把持位置又は把持ポイントと呼ぶ）へ、ロボットの把持部を移動させる際に、ロボットの各部がワークや障害物（周辺物）等に衝突してしまうことがある。
【００３０】
そのため、本実施形態では、障害物等との衝突を回避するために、把持ポイントの前にアプローチポイント（通過点）を設定する。つまり、アプローチポイントを経由して把持ポイントに把持部を到達させる経路を設定して、衝突を回避できるようにする。
【００３１】
また、把持作業を行う場合には、ワークや障害物の配置位置などの作業環境によって、適切なアプローチポイントが異なる。そして、ワークや障害物の配置位置は、逐次変わることが多い。そのため、把持位置から所定の距離だけ離れているポイントを、毎回アプローチポイントに設定しても、現在のポイントからアプローチポイントへ把持部を移動させる際に、衝突が発生してしまうことが考えられる。なお、この具体例については、図４（Ａ）〜図４（Ｃ）を用いて後述する。
【００３２】
よって、ロボットによる把持作業を行う場合には、把持ポイントからアプローチポイントまでの距離を、作業環境に応じて、都度、異なる距離に設定できることが望ましい。また、そのためのユーザーインターフェースも必要である。
【００３３】
そこで、本実施形態の制御装置は、ロボットにより把持作業を行う場合に、把持ポイントからアプローチポイントへの距離をユーザーが可変に設定できるようにする。また、そのためのユーザーインターフェースについても説明する。
【００３４】
ここで、本実施形態の具体的なシステム構成例を図１に示す。本実施形態の制御装置１００は、ロボット３００の教示データの生成処理を行う処理部１１０と、ユーザーが入力情報を入力するための入力受付画面の表示処理を行う表示処理部１３０と、入力受付画面においてユーザーが入力した入力情報を取得する入力情報取得部１５０と、を含む。
【００３５】
そして、処理部１１０は、生成した教示データをロボット３００に通知する。また、表示処理部１３０は、例えば表示処理として、表示部２００に入力受付画面を表示させる処理を行う。具体的に、入力受付画面を表示させる処理とは、例えば入力受付画面の画像情報を生成する処理であってもよいし、表示部２００に対して、あらかじめ生成された入力受付画面の画像情報の表示指示を行う処理（表示タイミング制御処理等）であってもよいし、表示指示又は表示部２００からの表示要求に応じて、表示部２００に入力受付画面の画像情報を出力（送信）する処理であってもよい。なお、処理部１１０及び表示処理部１３０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００３６】
また、表示部２００は、例えば液晶であり、表示処理部１３０からの表示指示に応じて、入力受付画面等の画像情報を表示する。その他にも表示部２００は、有機ＥＬパネルや、電子ペーパーなどであってもよい。
【００３７】
そして、入力情報取得部１５０は、有線又は無線の少なくとも一方を含むネットワークを介して通信を行う通信部（Ｉ／Ｆ部）であってもよいし、ユーザー（教示者）からの入力等を直接受け付ける場合には、スイッチやボタン、キーボード、マウス或いはタッチパネル等により構成されていてもよい。
【００３８】
なお、制御装置１００は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
【００３９】
そして、表示処理部１３０は、ロボット３００の把持部３１０の把持位置へ把持部３１０を移動させる際に通過する通過点から、把持位置までの距離情報を入力するための入力受付画面を表示させる。
【００４０】
言い換えれば、表示処理部１３０は、ロボット３００の把持部３１０の把持ポイントに対応するアプローチポイントの決定に用いる距離情報を、ユーザーが可変に設定するための入力受付画面の表示処理を行う。なお、アプローチポイントとは、把持位置のことである。
【００４１】
これに対して、表示部２００に表示された入力受付画面を介してユーザーが距離情報を入力し、入力情報取得部１５０が、入力情報として距離情報を取得する。
【００４２】
さらに、処理部１１０は、受け付けた距離情報を用いて、ロボットの教示データを生成する。具体的には、処理部１１０は、取得された距離情報に基づいて、アプローチポイントにおける把持部３１０の位置姿勢データであるアプローチ位置姿勢データを含む教示データを生成する。なお、距離情報に基づいて、アプローチポイントを求める処理については後述する。
【００４３】
ここで、図２（Ａ）及び図２（Ｂ）を用いて、具体例を説明する。本例では、図２（Ａ）に示すように、作業台の上に置かれたワークＷＫをロボットの把持部（ハンド）ＨＤが把持する作業を行う。ただし、ロボットの把持部ＨＤが現在位置するポイントＰ１と、ワークＷＫを把持可能な把持部ＨＤの把持ポイントＰ２とを結ぶ直線上に、障害物ＯＢが存在するものとする。
【００４４】
本実施形態では、図２（Ａ）に示すように、現在のポイントＰ１と把持ポイントＰ２との間にアプローチポイントＰ３を設ける。そして、アプローチポイントＰ３を経由して、把持ポイントＰ２まで把持部ＨＤを移動させ、ワークＷＫを把持して、エスケープポイントＰ４に移動させる。これにより、障害物ＯＢとの衝突を回避して、把持作業を行うことができる。
【００４５】
一方で、比較例として、アプローチポイントを設定しない例を図２（Ｂ）に示す。図２（Ｂ）の矢印ＤＲのように、現在のポイントＰ１から把持ポイントＰ２まで把持部ＨＤを最短で移動させる場合には、ポイントＰＮにおいて、把持部ＨＤと障害物ＯＢが衝突してしまい、把持作業を行うことができない。
【００４６】
以上のように、図２（Ａ）及び図２（Ｂ）のような場合において、比較例では障害物と衝突して把持作業ができないが、本実施形態では障害物を回避しつつ、把持作業を行うことができる。
【００４７】
ここで、把持部（ハンド）３１０とは、ワークを把持したり、持ち上げたり、吊り上げたり、吸着させたりするために用いる部品のことをいう。把持部３１０は、ハンドであってもよいし、フックであってもよいし、吸盤等であってもよい。なお、１本のアームに対して、複数のハンドを設けても良い。
【００４８】
そして、把持ポイント（把持位置）とは、ワークを把持可能な状態における把持部３１０のポイント（点）である。そして、把持部３１０のポイント（単にポイントとも呼ぶ）とは、把持部３１０の中心位置や重心位置、ＴＣＰ（Tool Center Point）、マーカーが付された位置、又はロボットのアームのエンドポイントなどである。なお、アームのエンドポイントとは、アームの先端部分のポイントであって、エンドエフェクター以外の他の部分と接続されていない部分のことをいう。例えば、図２（Ａ）の例では、把持ポイントはポイントＰ２である。
【００４９】
また、アプローチポイント（通過点）とは、現在把持部３１０が位置するポイントから把持ポイントへ、把持部３１０を移動させる際に経由するポイント（点）のことである。例えば、図２（Ａ）の例では、把持ポイントＰ２に対応するアプローチポイントは、ポイントＰ３である。
【００５０】
さらに、距離情報とは、距離を表す情報である。距離情報は、例えば距離そのものを表す数値であってもよい。
【００５１】
そして、入力受付画面とは、入力情報を入力可能なユーザーインターフェースである。入力受付画面は、例えば図３に示すような画面ＵＩであって、表示部２００に表示される。図３の入力受付画面ＵＩでは、スライダーＳＬ１を動かすことにより、把持ポイントからアプローチポイントまでの距離を調整することが可能である。この場合、前述した距離情報は、スライダーＳＬ１の操作情報などであってもよい。また、距離情報として直接、数値を入力してもよい。その他の要素については後述する。
【００５２】
また、位置姿勢データとは、把持部３１０の位置及び姿勢を表すデータのことをいう。位置姿勢データは、例えば位置姿勢ベクトルを表すデータである。
【００５３】
一方、アプローチ位置姿勢データとは、アプローチポイントにおける把持部３１０の位置姿勢データである。つまり、通過点での位置姿勢データである。なお、アプローチ位置姿勢データの具体例についても後述する。
【００５４】
さらに、教示データとは、ロボットが行う動作をロボットに教示するためのデータであり、例えばシナリオデータのことである。シナリオデータとは、ロボットが行う処理を規定するデータであり、さらに具体的に言うと、ロボットが行う処理が時系列順に記述されたデータのことをいう。教示データがシナリオデータである場合には、把持部３１０をアプローチポイントへ移動させる処理が記載されたシナリオデータを生成する。このシナリオデータに基づいて、ロボットを動作させれば、アプローチポイントを経由して把持ポイントへ、把持部３１０を移動させることができる。
【００５５】
これにより、図２（Ｂ）のように、ロボットの把持部を把持ポイントに最短距離で移動させると衝突が発生する場合でも、図２（Ａ）のように、衝突を回避して把持作業が可能な教示データを生成することが可能となる。すなわち、ロボットの把持部が現在位置するポイントと把持ポイントとの間に障害物がある場合でも、障害物との衝突を回避して把持作業が可能な教示データを生成することが可能となる。
【００５６】
ここで、比較例として、特許文献１において開示される発明について説明する。特許文献１の発明では、ロボットにより溶接作業を行う際に、作業開始ポイント（作業開始点）の手前にアプローチポイント（アプローチ点）を自動的に設定し、ロボットのアーム先端に取り付けられたツールを一度アプローチポイントに移動させてから、作業開始ポイントまでツールを移動させて、溶接作業を開始する。
【００５７】
一方で、本実施形態では、ワークの把持作業を行うためのロボットの教示データを生成するが、特許文献１では、溶接作業を行う場合についてのみ具体例が開示されており、ワークの把持作業については言及されていない。
【００５８】
また、特許文献１の発明において、アプローチポイントを自動的に設定する理由は、実際の作業を行う区間（作業区間）と、退避ポイント（退避点）から作業区間に至る区間（エアカット区間）とで、ロボットの動作速度を変更するためである。すなわち、作業区間では、精密な位置合わせが必要なため、ロボットの最大速度よりもずっと小さい速度で動作することが要求されるが、エアカット区間では、作業時間の短縮のため、多少の位置ずれや振動を許容する代わりに、できるだけ速い速度で動作することが要求される。そのため、ロボットの動作区間を分割し、区間毎に動作速度を変えているのである。より具体的には、同文献の図８に示す退避ポイントＣ０からアプローチポイントＣａまでの区間と、エスケープポイント（エスケープ点）Ｃｅから退避ポイントＣ４までの区間では、ツールを高速で移動させ、アプローチポイントＣａから作業開始ポイントＣ１の区間、作業区間（Ｃ１〜Ｃ３）及び作業終了ポイントＣ３からエスケープポイントＣｅまでの区間では、ツールを低速で移動させる。
【００５９】
一方で、本実施形態では、区間毎に動作速度を変えるためだけではなく、図２（Ａ）及び図２（Ｂ）を用いて説明したように、障害物等との衝突を回避するためにアプローチポイントを設定する必要がある。つまり、アプローチポイントを経由して把持ポイントに到達する経路を設定して、衝突を回避できるようにする。
【００６０】
このように、本実施形態と前述した特許文献１の発明では、アプローチポイントを設定する目的が異なる。
【００６１】
また、特許文献１の発明では、作業開始ポイントからアプローチポイントまでの距離として、あらかじめ決められた値（固定値）を用いている。しかし、ロボットの把持作業に特許文献１の手法をそのまま適用すると、後述する図４（Ｂ）のような場合に、把持作業を行えないことがある。
【００６２】
ここで、図４（Ａ）〜図４（Ｃ）を用いて具体例を説明する。図４（Ａ）〜図４（Ｃ）は、図２（Ａ）及び図２（Ｂ）と同様にワークＷＫの把持作業を図示したものである。
【００６３】
ロボットの把持作業に特許文献１の手法をそのまま適用するならば、図４（Ａ）及び図４（Ｂ）に示すように、把持ポイントからアプローチポイントまでの距離を固定値Ｄ１として、アプローチポイントをポイントＰ３に設定する。この場合、ワークＷＫの周囲にある障害物が、図４（Ａ）に示すような障害物ＯＢ１である場合には、衝突を回避して、把持作業を行うことが可能である。しかし、図４（Ｂ）に示すように、ワークＷＫの周囲にある障害物が、障害物ＯＢ１よりも背が高い障害物ＯＢ２である場合には、ポイントＰＮで衝突が発生してしまい、把持作業を行うことができない。
【００６４】
また、前述した特許文献１では、作業開始ポイントからアプローチポイントまでの距離が固定であるため、距離を指定するインターフェース等についても言及されていない。
【００６５】
これに対して本実施形態では、図３に示すような入力受付画面ＵＩを介して、把持ポイントからアプローチポイントまでの距離を、作業環境に応じて異なる距離にユーザーが設定可能である。
【００６６】
これにより、例えば図４（Ｃ）に示すように、障害物がＯＢ２である場合には、把持ポイントからアプローチポイントまでの距離をＤ２に設定すれば、アプローチポイントＰ５が求められ、衝突を回避して把持作業を行うことができる。一方で、障害物がＯＢ１である場合には、把持ポイントからアプローチポイントまでの距離をＤ１に設定すれば、図４（Ａ）に示すように、把持作業を行うことができる。
【００６７】
さらに、本実施形態では、ロボットの教示データを生成し、生成した教示データに基づいて、ロボットが動作した結果を示す確認画面を表示する。これにより、把持作業を行う際に、ロボットの各部がワークや障害物等に衝突せずに移動可能であることを、ユーザーが確認することが可能となる。
【００６８】
２．処理の詳細
次に、本実施形態の処理の詳細について説明する。
【００６９】
前述してきたように、本実施形態の制御装置１００は、把持作業用の教示データを生成するが、ワークの把持作業を行う場合には、把持部３１０が特定の位置姿勢をとらなければ、ワークを把持できないことがよくある。そのため、把持ポイントにおける把持部３１０の位置姿勢をユーザーが指定できると、より便利である。
【００７０】
そこで、本実施形態では、表示処理部１３０が、把持ポイントにおける把持部３１０の把持位置姿勢データを可変に設定するための入力受付画面の表示処理を行う。
【００７１】
ここで、把持位置姿勢データとは、把持ポイントにおける把持部３１０の位置姿勢データである。
【００７２】
例えば、図３の入力受付画面ＵＩには、把持位置姿勢データを調整するためのスライダー（ＳＬ２〜ＳＬ７）を設けており、これらを動かすことにより、把持位置姿勢データを自由に設定することができる。そして、スライダーＳＬ２〜スライダーＳＬ７を動かすと、入力受付画面ＵＩの下部に表示される画像ＩＭ１〜画像ＩＭ４に、スライダーの操作結果が反映される。なお、画像ＩＭ１〜画像ＩＭ４は、それぞれ異なる方向から見た時のワークＷＫと把持部ＨＤの位置関係を表す画像である。スライダーＳＬ２〜スライダーＳＬ７を動かすと、画像ＩＭ１〜画像ＩＭ４に移るワークＷＫと把持部ＨＤの位置関係が変化する。
【００７３】
さらに、入力情報取得部１５０は、把持位置における把持部３１０の位置姿勢データを受け付ける。そして、処理部１１０は、把持位置での位置姿勢データを含む教示データを生成する。
【００７４】
言い換えれば、入力情報取得部１５０は、入力情報として、把持部３１０の把持位置姿勢データを取得する。そして、処理部１１０は、把持部３１０のアプローチ位置姿勢データと、取得された把持部３１０の把持位置姿勢データとを含む教示データを生成する。
【００７５】
これにより、把持位置姿勢データを指定することが可能になり、把持ポイントにおいて把持部３１０が、ユーザーにより指定された位置姿勢になる教示データを生成すること等が可能になる。ただし、必ずしも把持位置姿勢データをユーザーが入力しなければいけないわけではなく、あらかじめ設定（記憶）された把持位置姿勢データを用いてもよい。
【００７６】
また、処理部１１０は、把持位置での位置姿勢データと距離情報とに基づいて、通過点における把持部３１０の位置姿勢データを特定し、通過点での位置姿勢データを含む教示データを生成する。
【００７７】
つまり、処理部１１０は、把持部３１０の把持位置姿勢データと距離情報とに基づいて、把持部３１０のアプローチ位置姿勢データの特定処理を行う。
【００７８】
ここで、アプローチ位置姿勢データの特定処理の詳細について図５を用いて説明する。本例において、位置姿勢データは、位置姿勢ベクトルを表すデータであるものとする。そして、把持ポイントＨＰにおける把持部ＨＤの位置姿勢ベクトルを、把持位置姿勢ベクトルＸ１と呼び、アプローチポイントＡＰにおける把持部ＨＤの位置姿勢ベクトルを、アプローチ位置姿勢ベクトルＸ２と呼ぶ。本例のアプローチ位置姿勢データの特定処理では、アプローチ位置姿勢ベクトルＸ２を求める。
【００７９】
まず、図５の把持ポイントＨＰにおける把持位置姿勢ベクトルＸ１は、下式（１）により表される。
【００８０】
【数１】
2015116631.tif 000003
ここで、（ｘ１，ｙ１，ｚ１）は、ワールド座標系Ａにおける把持ポイントＨＰの座標（位置）を表す。なお、ワールド座標系Ａは、Ｘ軸、Ｙ軸、Ｚ軸からなる座標系であって、位置姿勢ベクトルは全て、ワールド座標系Ａを基準にしたものとする。
【００８１】
また、把持ポイントＨＰの座標（位置）は、下式（２）に示す行列Ａｑとして表すことができる。なお、行列の左肩に付記した記号は、基準となる座標系を表すものとする。例えばＡｑは、ワールド座標系Ａにおける把持ポイントＨＰの座標を表す。
【００８２】
【数２】
2015116631.tif 000004
そして、式（１）の（φ１，θ１，ψ１）は把持ポイントにおける把持部ＨＤの姿勢を表す。姿勢の表現法は多数あるが、ここでは、ワールド座標系ＡのＸ軸周りの回転を表すロール角φ、Ｙ軸周りの回転を表すピッチ角θ、Ｚ軸周りの回転を表すヨー角ψを用いるものとする。
【００８３】
そして、前述した図３の入力受付画面ＵＩでは、スライダーＳＬ２〜スライダーＳＬ４で把持ポイントＨＰの座標を、スライダーＳＬ５〜スライダーＳＬ７で把持ポイントＨＰにおける把持部ＨＤの姿勢を調整することが可能である。
【００８４】
次に、把持ポイントＨＰからアプローチポイントＡＰまでの距離Ｄと方向Ｔに基づいて、ローカル座標系ＢにおけるアプローチポイントＡＰの座標を求める。距離Ｄは、前述した図３の入力受付画面ＵＩのスライダーＳＬ１を動かして入力されたものである。また、方向Ｔは、あらかじめ決められた方向であってもよいし、ユーザーにより入力された方向であってもよい。そして、ローカル座標系Ｂは、図５に示すように、把持部ＨＤの現在位置を原点としたＴｘ軸とＴｙ軸とＴｚ軸からなる座標系である。
【００８５】
その結果、ローカル座標系ＢにおけるアプローチポイントＡＰの座標は、下式（３）に示す行列Ｂｐとして求められる。
【００８６】
【数３】
2015116631.tif 000005
本例では、ワールド座標系ＡにおけるアプローチポイントＡＰの座標を求めたいため、下式（４）により行列Ｂｐを座標変換して、ワールド座標系ＡにおけるアプローチポイントＡＰの座標を表す行列Ａｐを求める。
【００８７】
【数４】
2015116631.tif 000006
上式（４）における行列ＡＲＢは、ローカル座標系Ｂの任意の点の座標をワールド座標系Ａにおける座標に変換する行列であり、下式（５）により表される。
【００８８】
【数５】
2015116631.tif 000007
ここで、説明の簡略化のため、式（４）により求められるアプローチポイントＡＰの座標を、下式（６）のｘ２、ｙ２、ｚ２とおく。
【００８９】
【数６】
2015116631.tif 000008
さらに、アプローチポイントＡＰにおける把持部ＨＤの姿勢は、把持ポイントＨＰにおける姿勢と同じ姿勢のままにするため、アプローチ位置姿勢ベクトルＸ２は、下式（７）のように求めることができる。
【００９０】
【数７】
2015116631.tif 000009
このように、アプローチポイントにおける把持部３１０の位置姿勢を特定すること等が可能になる。
【００９１】
より具体的な例を挙げると、例えば把持ポイントＨＰがワールド座標系Ａの原点にあり（ｘ１＝ｙ１＝ｚ１＝０）、φ１＝θ１＝ψ１＝０°であるとする。すなわち、ワールド座標系Ａとローカル座標系Ｂが把持ポイントＨＰにおいて一致しているとする。そして、把持ポイントＨＰからアプローチポイントＡＰまでの距離がＤであり、把持ポイントＨＰからアプローチポイントＡＰまでの方向が、ワールド座標系ＡのＺ軸の負の方向であるとする。
【００９２】
この時、ローカル座標系ＢにおけるアプローチポイントＡＰの座標は、下式（８）により表される。
【００９３】
【数８】
2015116631.tif 000010
そして、前述した式（４）により座標変換を行うことで、下式（９）に示すように、ワールド座標系ＡにおけるアプローチポイントＡＰの座標が求められる。
【００９４】
【数９】
2015116631.tif 000011
また、把持作業を行う場合には、図６（Ａ）に示すように、アプローチポイントＡＰから把持ポイントＨＰへ把持部ＨＤを移動させる際に、把持部ＨＤがワークＷＫと衝突してしまうことがある。これは、図６（Ａ）のように、アプローチポイントＡＰから把持ポイントＨＰへの方向ＤＲＮＧと、把持方向ＤＲ１とが、（略）一致している際に起こりやすい。
【００９５】
ここで、把持方向とは、例えば図６（Ｂ）に示すように、把持ポイントＨＰにおいて把持部ＨＤがワークＷＫを把持する時に、把持部ＨＤがワークＷＫに力を加える（近付く）方向（ＤＲ１又はＤＲ２）のことを言う。
【００９６】
そこで、処理部１１０は、把持部３１０の把持方向と交差する方向に、距離情報により表される距離だけ、把持ポイントから把持部３１０を移動させた時の把持部３１０の位置姿勢データを、把持部３１０のアプローチ位置姿勢データとして特定してもよい。
【００９７】
つまり、通過点での位置姿勢データ（アプローチ位置姿勢データ）は、距離情報により表される距離だけ、把持部３１０の把持方向と交差する方向に、把持位置から把持部３１０を移動させた時の把持部３１０の位置姿勢データであってもよい。
【００９８】
ここで、把持部３１０の把持方向と交差する方向とは、例えば把持部３１０の把持方向と（略）直交する方向である。例えば、図６（Ｂ）の例では、方向ＤＲ３または方向ＤＲ４である。
【００９９】
これにより、図６（Ｃ）に示すように、アプローチポイントＡＰから把持ポイントＨＰへの方向ＤＲＯＫと、把持方向ＤＲ２（ＤＲ１）とを異ならせることができる。なお、図６（Ｃ）の例では、方向ＤＲＯＫは、把持方向ＤＲ２と直交する方向ＤＲ４と一致している。
【０１００】
よって、アプローチポイントから把持ポイントへ把持部を移動させる際に、把持部とワークが衝突しないようにすること等が可能になる。
【０１０１】
また、把持作業を行う場合には、特許文献１に例示される溶接作業を行う場合と異なり、二つのワークを続けて把持することがある。例えば、図７に示すように、ワークＷＫ１を把持した後に、ワークＷＫ１を移動させて、代わりにワークＷＫ２を把持する場合である。
【０１０２】
しかし、図７の例のように、障害物（ＯＢ１０及びＯＢ２０）がある場合には、特許文献１の方法のようにアプローチポイントを一点しか設定していないと（例えばＰ２２）、二つ目のワークＷＫ２の把持ポイントＰ２５に把持部ＨＤを移動させる際に、把持部ＨＤが障害物ＯＢ２０に衝突してしまうことがある。
【０１０３】
そこで、本実施形態では、把持ポイント毎にアプローチポイントを設定する。すなわち、入力情報取得部１５０は、入力情報として、第１の把持ポイント（第１の把持位置）に対応する第１のアプローチポイント（第１の通過点）を決定するために用いる第１の距離情報と、第２の把持ポイント（第２の把持位置）に対応する第２のアプローチポイント（第２の通過点）を決定するために用いる第２の距離情報とを取得する。そして、処理部１１０は、取得された第１の距離情報と第２の距離情報とに基づいて、第１のアプローチポイントにおける把持部３１０の第１のアプローチ位置姿勢データと、第２のアプローチポイントにおける把持部３１０の第２のアプローチ位置姿勢データと、を含む教示データを生成する。
【０１０４】
例えば、図７の例では、第１の把持ポイントＰ２３に対しては、第１のアプローチポイントＰ２２を設定し、第２の把持ポイントＰ２５に対しては、第２のアプローチポイントＰ２４を設定する。
【０１０５】
また、第１のアプローチ位置姿勢データとは、第１のアプローチポイントＰ２２における位置姿勢データである。そして、第１のアプローチ位置姿勢データは、式（１）〜式（７）を用いて前述した方法により、第１の距離情報により表される距離Ｄ１と、把持ポイントＰ２３の位置姿勢データとに基づいて求められる。
【０１０６】
同様に、第２のアプローチ位置姿勢データとは、第２のアプローチポイントＰ２４における位置姿勢データであり、同様の方法で、第２の距離情報により表される距離Ｄ２と、把持ポイントＰ２５の位置姿勢データに基づいて求められる。
【０１０７】
その結果、図７に示すように、ポイントＰ２１からポイントＰ２６を順番に通る経路が設定でき、この経路を通るように、ロボットに指示する教示データを生成することができる。
【０１０８】
これにより、二つのワークを続けて把持する場合でも、ロボットの各部と障害物等との衝突を回避しつつ、把持作業を行うこと等が可能になる。
【０１０９】
また、表示処理部１３０は、教示データに基づいてロボット３００が動作可能であることを、ユーザーが確認するための確認画面の表示処理を行ってもよい。
【０１１０】
ここで、確認画面とは、例えばロボットの把持部の移動をアニメーションなどにより、シミュレーションして表示する画面であり、具体的には図８（Ａ）の画面ＣＳ１や図８（Ｂ）の画面ＣＳ２などである。
【０１１１】
図８（Ａ）では、把持ポイントＰ２からアプローチポイントまでの距離をＤ３に設定した結果、アプローチポイントＰ３１が設定され、障害物ＯＢに衝突せずに移動可能であることが確認できる。
【０１１２】
一方で、図８（Ｂ）では、把持ポイントＰ２からアプローチポイントまでの距離をＤ４に設定した結果、アプローチポイントＰ３２が設定されたが、アプローチポイントＰ３２を通る場合には、把持部ＨＤがポイントＰＮにおいて障害物ＯＢと衝突してしまうことが確認できる。
【０１１３】
これにより、生成した教示データに基づいて、ロボット３００が衝突を回避しつつ動作可能であることを、ユーザーが確認すること等が可能になる。ただし、確認画面は、前述した例に限らず、例えば、衝突の有無を表す文字情報を表示する画面などであってもよい。
【０１１４】
また、表示処理部１３０は、ロボット３００の把持部３１０が第１のアプローチポイント（第１の通過点）から第１の把持ポイント（第１の把持位置）に移動可能であることを、ユーザーが確認するための確認画面を表示した後に、ロボット３００の把持部３１０が第２のアプローチポイント（第２の通過点）から第２の把持ポイント（第２の把持位置）に移動可能であることを、ユーザーが確認するための確認画面の表示処理を行ってもよい。
【０１１５】
例えば、図７の例では、ポイントＰ２１から把持ポイントＰ２３までの移動をシミュレーションする図８（Ａ）及び図８（Ｂ）のような画面を表示し、その後に、把持ポイントＰ２３からポイントＰ２６までの移動をシミュレーションする画面を表示する。なお、二回の把持作業を一度に続けてシミュレーションする画面を表示してもよい。
【０１１６】
これにより、二つの把持作業を行う場合に、衝突が発生しないかをユーザーが確認すること等が可能になる。
【０１１７】
３．処理の流れ
以下では、図９のフローチャートを用いて、本実施形態の処理の流れについて説明する。
【０１１８】
まず、図３に示すような入力受付画面を表示する（Ｓ１０１）。そして、ユーザーが、入力受付画面において、把持ポイントからアプローチポイントまでの距離情報を入力し、入力された距離情報を取得する（Ｓ１０２）。
【０１１９】
次に、把持ポイントにおける把持位置姿勢データを取得する（Ｓ１０３）。そして、ステップＳ１０２において取得された距離情報と、ステップＳ１０３において取得された把持位置姿勢データとに基づいて、アプローチ位置姿勢データを算出する（Ｓ１０４）。例えばアプローチ位置姿勢データは、式（１）〜式（７）を用いて説明した方法により算出される（Ｓ１０４）。
【０１２０】
ここで、全ての把持位置姿勢データに対して、アプローチ位置姿勢データを算出したか否かを判断する（Ｓ１０５）。前述した図７のように、把持ポイントが複数ある場合には、アプローチポイントも複数あるため、全てのアプローチ位置姿勢データを算出するまで、ステップＳ１０４を繰り返す。
【０１２１】
そして、全てのアプローチ位置姿勢データを算出した場合には、取得した把持位置姿勢データと、算出したアプローチ位置姿勢データとを含む教示データを生成する（Ｓ１０６）。
【０１２２】
その後に、生成した教示データに基づいて、ロボットを動作させた際に、障害物等と衝突せずに把持作業を行うことができるかを確認するための確認画面を表示する（Ｓ１０７）。例えば、図８（Ａ）や図８（Ｂ）に示すような画面である。
【０１２３】
そして、確認画面をユーザーが確認した結果、ロボットが問題なく動作すると判断された場合には（Ｓ１０８）、処理を終了し、ロボットの動作に問題があると判断された場合には（Ｓ１０８）、ステップＳ１０２から処理をやり直す。
【０１２４】
次に、本実施形態のロボット３００の構成例を図１０（Ａ）及び図１０（Ｂ）に示す。例えば、図１０（Ａ）のロボットは、ロボット本体３００（ロボット）と制御装置１００とが別体に構成されている。この場合には、制御装置１００の一部又は全部の機能は、例えばＰＣ（Personal Computer）により実現される。また、制御装置１００の一部又は全部の機能は、有線及び無線の少なくとも一方を含むネットワークによりロボット３００と接続されたサーバーにより実現されてもよい。
【０１２５】
一方で、本実施形態のロボットは図１０（Ａ）の構成に限定されず、図１０（Ｂ）のようにロボット本体３００と制御装置１００とが一体に構成されていてもよい。すなわち、ロボット３００は、制御装置１００を含んでいても良い。具体的には図１０（Ｂ）に示したように、ロボット３００は、ロボット本体（アーム及びハンドを有する）及びロボット本体を支えるベースユニット部を有し、当該ベースユニット部に制御装置１００が格納されるものであってもよい。図１０（Ｂ）のロボット３００には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図１０（Ａ）は単腕型の例であるが、ロボット３００は図１０（Ｂ）に示すように双腕型等の多腕型のロボットであってもよい。また、ロボット３００は、人手により移動させられるものであってもよいし、車輪を駆動させるモーターを設け、当該モーターを制御装置１００により制御することにより、移動させられるものであってもよい。また、制御装置１００は、図１０（Ｂ）のようにロボット３００の下に設けられたベースユニット部に設けられるとは限られない。
【０１２６】
また、本実施形態のロボットシステムは、把持部３１０を備えるロボット３００と、把持位置へ把持部３１０を移動させる際に通過する通過点から、把持位置までの距離情報を入力するための入力受付画面を表示する表示装置（表示部２００）と、入力された距離情報を受け付けて、ロボット３００の教示データを生成する制御装置１００と、を含む。
【０１２７】
なお、本実施形態の制御装置１００、ロボット３００及びロボットシステム等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の制御装置１００、ロボット３００及びロボットシステム等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１２８】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、制御装置、ロボット及びロボットシステムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１２９】
１００  制御装置、１１０  処理部、１３０  表示処理部、１５０  入力情報取得部、
２００  表示部、３００  ロボット（ロボット本体）、３１０  把持部
【図１】
2015116631.tif 000012
【図２】
2015116631.tif 000013
【図３】
2015116631.tif 000014
【図４】
2015116631.tif 000015
【図５】
2015116631.tif 000016
【図６】
2015116631.tif 000017
【図７】
2015116631.tif 000018
【図８】
2015116631.tif 000019
【図９】
2015116631.tif 000020
【図１０】
2015116631.tif 000021