(57)【要約】【課題】オフラインティーチングを行う際のロボットの位置合わせ作業を指定する。【解決手段】ロボットが作業を行う実空間における所定位置を指定するべく、前記実空間に対応した仮想空間における前記所定位置に対応する仮想位置を指定する入力を受け付ける仮想位置入力部と、前記仮想位置の座標値と同じ座標値を有する実空間における対応位置が、前記所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける位置合わせ入力部と、前記位置合わせ作業を要する場合には、前記ロボットの所定箇所を前記対応位置に移動させ、前記ロボットの姿勢が手動で修正された後の前記所定箇所の座標値が、前記所定位置を表す座標値として設定されるように前記ロボットを制御する動作プログラムを生成する動作プログラム生成部と、を備える。【選択図】図５
2018180299.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが作業を行う実空間における所定位置を指定するべく、前記実空間に対応した仮想空間における前記所定位置に対応する仮想位置を指定する入力を受け付ける仮想位置入力部と、
前記仮想位置の座標値と同じ座標値を有する実空間における対応位置が、前記所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける位置合わせ入力部と、
前記位置合わせ作業を要する場合には、前記ロボットの所定箇所を前記対応位置に移動させ、前記ロボットの姿勢が手動で修正された後の前記所定箇所の座標値が、前記所定位置を表す座標値として設定されるように前記ロボットを制御する動作プログラムを生成する動作プログラム生成部と、
を備えることを特徴とするロボット教示装置。
【請求項２】
請求項１に記載のロボット教示装置であって、
前記仮想空間における第１の位置に設けられたワークの所定の点を、第１の点として取得する第１取得部と、
前記仮想空間における第２の位置に設けられた前記ワークの所定の点を、第２の点として取得する第２取得部と、
前記第１及び第２の点に基づいて、前記仮想空間における前記ロボットが、前記ワークを保持部により前記第１の位置から前記第２の位置に移動させる際の前記保持部の軌道を計算する計算部と、
を備え、
前記仮想位置入力部は、前記第１の位置及び前記第２の位置の少なくともいずれか一方を前記仮想位置として入力を受け付ける
ことを特徴とするロボット教示装置。
【請求項３】
請求項２に記載のロボット教示装置であって、
前記第２の位置に支持された前記ワークの前記第２の点から離れた第３の点を取得する第３取得部を更に備え、
前記計算部は、
前記第１〜第３の点に基づいて、前記ロボットが、前記ワークを前記第１の位置から前記第３の点を経由して前記第２の位置に移動させる際の前記保持部の軌道を計算する
ことを特徴とするロボット教示装置。
【請求項４】
請求項２または請求項３に記載のロボット教示装置であって、
前記第２の位置に支持された前記ワークの前記第２の点から離れた第４の点を取得する第４取得部を更に備え、
前記計算部は、
前記ロボットが、前記保持部を前記第４の点まで移動させる際の前記保持部の軌道を計算する
ことを特徴とするロボット教示装置。
【請求項５】
請求項２〜４の何れか一項に記載のロボット教示装置であって、
前記ロボットが前記保持部を移動させる際、前記ロボットのうち、前記保持部の動きを表示装置に表示させる表示制御部を更に備える
ことを特徴とするロボット教示装置。
【請求項６】
請求項１に記載のロボット教示装置において、
前記仮想位置入力部は、複数の前記仮想位置を指定する入力を受け付け、
前記位置合わせ入力部は、それぞれの前記仮想位置ごとに、位置合わせ作業を指定する入力を受け付ける
ことを特徴とするロボット教示装置。
【請求項７】
請求項６に記載のロボット教示装置において、
前記位置合わせ作業を要する前記仮想位置の一覧を出力するリスト出力部と、
をさらに備えることを特徴とするロボット教示装置。
【請求項８】
請求項１〜７のいずれかに記載のロボット教示装置において、
前記所定位置は、前記ロボットがワークに対して作業を行う際の教示点である
ことを特徴とするロボット教示装置。
【請求項９】
請求項１〜７のいずれかに記載のロボット教示装置において、
前記所定位置は、前記ロボットがワークに対して作業を行う際の教示点と相対的な位置関係を有する点である
ことを特徴とするロボット教示装置。
【請求項１０】
ロボットに対する教示を行うためのロボット教示装置の制御方法であって、
前記ロボット教示装置が、前記ロボットが作業を行う実空間における所定位置を指定するべく、前記実空間に対応した仮想空間における前記所定位置に対応する仮想位置を指定する入力を受け付け、
前記ロボット教示装置が、前記仮想位置の座標値と同じ座標値を有する実空間における対応位置が、前記所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付け、
前記ロボット教示装置が、前記位置合わせ作業を要する場合には、前記ロボットの所定箇所を前記対応位置に移動させ、前記ロボットの姿勢が手動で修正された後の前記所定箇所の座標値が、前記所定位置を表す座標値として設定されるように前記ロボットを制御する動作プログラムを生成する
ことを特徴とするロボット教示装置の制御方法。
【請求項１１】
ロボットに対する教示を行うためのロボット教示装置に、
前記ロボットが作業を行う実空間における所定位置を指定するべく、前記実空間に対応した仮想空間における前記所定位置に対応する仮想位置を指定する入力を受け付ける手順と、
前記仮想位置の座標値と同じ座標値を有する実空間における対応位置が、前記所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける手順と、
前記位置合わせ作業を要する場合には、前記ロボットの所定箇所を前記対応位置に移動させ、前記ロボットの姿勢が手動で修正された後の前記所定箇所の座標値が、前記所定位置を表す座標値として設定されるように前記ロボットを制御する動作プログラムを生成する手順と、
を実行させるためのロボット教示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラムに関する。
【背景技術】
【０００２】
従来より、様々な分野で産業用ロボットが用いられている。このような産業用ロボットを用いるためには、ロボットの作業時の姿勢変化を事前にロボットに記憶させるティーチングと呼ばれる作業を行わなければならない。【０００３】
近年、３次元ＣＡＤ（computer aided design）のデータを活用することで、このような時系列の姿勢変化をオフラインで動作プログラムとして作成してからロボットに記憶させるオフラインティーチングが可能になっている。そしてこのようなオフラインティーチングを行うシステムやプログラムの開発も進められている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４６２１６４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、現場に配置されるロボットやワークの実際の位置は、３次元ＣＡＤ上で設定された位置からずれている場合がある。そしてこの場合、３次元ＣＡＤデータを用いてオフラインティーチングを行った際に設定したロボットの教示点の位置もずれていることになる。【０００６】
教示点のずれは、ワークのサイズやワークに対する作業内容によっては許容される場合もあるが、ワークに対して精密な作業を行う場合などのように許容できない場合もある。【０００７】
そのため、このような特定の教示点に対しては、現場で位置合わせをする必要がある。【０００８】
本発明は上記課題を鑑みてなされたものであり、オフラインティーチングを行う際のロボットの位置合わせ作業を指定可能なロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラムを提供することを一つの目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する本発明のロボット教示装置は、ロボットが作業を行う実空間における所定位置を指定するべく、前記実空間に対応した仮想空間における前記所定位置に対応する仮想位置を指定する入力を受け付ける仮想位置入力部と、前記仮想位置の座標値と同じ座標値を有する実空間における対応位置が、前記所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける位置合わせ入力部と、前記位置合わせ作業を要する場合には、前記ロボットの所定箇所を前記対応位置に移動させ、前記ロボットの姿勢が手動で修正された後の前記所定箇所の座標値が、前記所定位置を表す座標値として設定されるように前記ロボットを制御する動作プログラムを生成する動作プログラム生成部と、を備える。
【発明の効果】
【００１０】
本発明によれば、オフラインティーチングを行う際のロボットの位置合わせ作業を指定可能なロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るアーム型ロボットがワークに対して作業を行う様子を示す図である。
【図２】本実施形態に係るロボット教示装置の構成を示す図である。
【図３】本実施形態に係る記憶装置に記憶されるプログラム及びデータを示す図である。
【図４】本実施形態に係るアーム型ロボットの作業場所に配置される各構成要素に設定される階層構造を示す図である。
【図５】本実施形態に係る動作プログラムの内容を設定するために表示される設定画面を示す図である。
【図６】本実施形態に係るアーム型ロボットが動作プログラムを実行する際の動作内容を示す図である。
【図７】本実施形態に係るロボット教示装置の機能ブロックを示す図である。
【図８】本実施形態に係る位置合わせ作業リストを示す図である。
【図９】本実施形態に係るロボット教示装置による処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に本発明の実施形態について図面を参照しながら詳細に説明する。
【００１３】
本実施形態では、一例として、工場のラインに設置されたアーム型ロボット４０に対するオフラインティーチングをロボット教示装置１０を用いて行う場合を例に説明する。
【００１４】
−−−アーム型ロボット−−−
本実施形態に係るアーム型ロボット４０を図１に示す。
【００１５】
アーム型ロボット４０は、アーム５１とハンド（保持部）５０を有して構成される６軸（ｘ軸、ｙ軸、ｚ軸、および各軸の回転方向θｘ、θｙ、θｚ）の多関節ロボットである。
【００１６】
そしてアーム型ロボット４０はワークＷに対する作業を行う。例えば、アーム型ロボット４０は、ワークＷを棚４５に置く（“place”）、あるいは棚４５から取る（“pick up”）等の作業を行う。
【００１７】
これらの作業を行う際のアーム型ロボット４０の動きは、後述するロボット教示装置１０がロボット教示プログラム６１０を実行することによって生成する動作プログラム７１０を、アーム型ロボット６０が実行することによって実現される。
【００１８】
ワークＷは、本実施形態では一例としてオルゴールＯＧである。なお、図１には、棚４５の上に１０個のオルゴールＯＧが２列に配置されていると共に、アーム型ロボット４０が１個のオルゴールＯＧを保持しているとした場合の様子が示されている。なお以下の説明において、オルゴールＯＧを個々に区別する際には、図１に示したようにオルゴールＡ１、オルゴールＢ１…オルゴールＢ１０のように示す。
【００１９】
また詳細は後述するが、図１に示したアーム型ロボット４０、棚４５及びワークＷは、以下に説明するロボット教示装置１０が３次元ＣＡＤプログラム６２０を実行することによって仮想空間上にモデル化され、３次元ＣＡＤデータＤとしてロボット教示装置１０に記憶されている。
【００２０】
−−−ロボット教示装置１０の構成−−−
次に、本実施形態に係るロボット教示装置１０について説明する。
【００２１】
ロボット教示装置１０は、アーム型ロボット４０に対するオフラインティーチングを行うための装置である。具体的には、ロボット教示装置１０は、アーム型ロボット４０が作業を行う実空間を３次元ＣＡＤにより模してなる仮想空間においてアーム型ロボット４０の動作を規定することにより、アーム型ロボット４０を制御する動作プログラム７１０を生成する。
【００２２】
図２は、ロボット教示装置１０の構成を示す図である。ロボット教示装置１０は、ＣＰＵ（Central Processing Unit）２０、メモリ２１、記憶装置２２、入力装置２３、表示装置２４、及び通信装置２５を有するコンピュータにより構成される。
【００２３】
ＣＰＵ２０は、メモリ２１や記憶装置２２に格納されたプログラム６００を実行することにより、ロボット教示装置１０における様々な機能を実現する。例えば図６に示す仮想位置入力部８０、位置合わせ入力部８１、リスト出力部８２及び動作プログラム生成部８３の各機能が実現される（詳細は後述する）。
【００２４】
ここで、図３に示すように、プログラム６００の中には、アーム型ロボット４０に対する教示を行う機能を実現するためのロボット教示プログラム６１０や、３次元ＣＡＤ機能を実現するための３次元ＣＡＤプログラム６２０が含まれる。
【００２５】
図２に戻って、メモリ２１は、例えばＲＡＭ（Random-Access Memory）等の記憶手段であり、プログラム６００やデータ７００等の一時的な記憶領域として用いられる。
【００２６】
記憶装置２２は、例えばハードディスクやＳＳＤ（Solid State Drive）等の不揮発性の記憶手段であり、プログラム６００やデータ７００を格納する。記憶装置２２に記憶されるデータ７００には、図３に示すように、上述した３次元ＣＡＤデータＤが含まれる。そして、この３次元ＣＡＤデータＤには、アーム型ロボット４０の３次元モデルを示す３次元ＣＡＤデータＤａ、作業対象物であるワークＷの３次元モデルを示す３次元ＣＡＤデータＤｂ、ワークＷが載置される棚４５の３次元モデルを示す３次元ＣＡＤデータＤｃが含まれる。
【００２７】
なお、３次元ＣＡＤデータＤａは、アーム型ロボット４０のモデルが配置される仮想空間におけるワールド座標系およびローカル座標系の情報を含む。また、３次元ＣＡＤデータＤｂ，Ｄｃも、３次元ＣＡＤデータＤａと同様である。
【００２８】
ただし、本実施形態では、複数（ｎ個）のワークＷが用いられるため、記憶装置２２には、複数のワークＷのそれぞれに対応する３次元ＣＡＤデータＤｂ１〜Ｄｂｎが格納されている。
【００２９】
また記憶装置２２に記憶されるデータ７００には、上述した“place”、“pick up”等のアーム型ロボット４０の動作を規定した動作プログラム７１０も含まれる。この動作プログラム７１０は、ロボット教示装置１０が３次元ＣＡＤデータＤを用いながらロボット教示プログラム６１０を実行することにより、生成される。
【００３０】
図２に戻って、入力装置２３は、例えばタッチパネルやキーボードであり、利用者による操作入力を受け付けるユーザインタフェース装置である。
【００３１】
表示装置２４は、例えばディスプレイであり、各種情報や処理結果を表示するユーザインタフェース装置である。
【００３２】
通信装置２５は、ネットワークインターフェイスなどの通信手段であって、インターネットやＬＡＮ（Local Area Network）等の通信網（不図示）を介して外部のコンピュータやアーム型ロボット４０との間でデータの送受信を行う。例えば通信装置２５は、アーム型ロボット４０と通信を行うことで、上述した“place”、“pick up”等の動作を実行させるための動作プログラム７１０をアーム型ロボット４０に設定する。
【００３３】
また上記のプログラム６００が外部のコンピュータに記憶されている場合には、ロボット教示装置１０は、通信装置２５を介してロボット教示プログラム６１０や３次元ＣＡＤプログラム６２０をダウンロードして記憶装置２２に記憶するようにしても良い。あるいはロボット教示装置１０は、ＣＤＲＯＭやＤＶＤ等の記録媒体８００に記録されているロボット教示プログラム６１０や３次元ＣＡＤプログラム６２０を読み出して、記憶装置２２に記憶するようにしても良い。
【００３４】
−−−各構成要素の階層構造−−−
次に、アーム型ロボット４０の作業場所に配置される各構成要素を３次元ＣＡＤ上に再現する際に設定される各構成要素の階層構造を図４に示す。この階層構造は、各構成要素の相互の配置関係を元に設定される。そしてこれらの構成要素にはそれぞれ固有の座標系が設定されるが、これら各構成要素の座標系は、上位階層の構成要素の座標系内のローカル座標系として定義される。
【００３５】
なお図４に示す階層構造図は、３次元ＣＡＤデータＤに含まれる各構成要素の座標系に関する情報を元に、ロボット教示プログラム６１０によって表示装置２４に画面３０として表示される。
【００３６】
「Ｗｏｒｌｄ」は、最上位階層に置かれ、作業場所自体に設定される座標系（以下、ワールド座標系とも記す）を表す。
【００３７】
そして、ワールド座標系の下の階層には、アーム型ロボット４０のモデルを示す「Ｒｏｂｏｔ」と、棚４５を示す「棚」が設定されている。このため、「Ｒｏｂｏｔ」および「棚」は、３次元ＣＡＤ上の仮想空間において、ワールド座標系で定められた位置に配置される。
【００３８】
また、「Ｒｏｂｏｔ」の階層の下には、アーム型ロボット４０のハンド５０のモデルを示す「ＨＡＮＤ」が設定され、「ＨＡＮＤ」の階層の下には、ワークＷであるオルゴールＡ１を示す「ＯＧ  Ａ１」が設定されている。このため、「ＨＡＮＤ」は、「Ｒｏｂｏｔ」を基準とするローカル座標系で定められた位置に配置され、「ＯＧ  Ａ１」は、「ＨＡＮＤ」を基準とするローカル座標系で定められた位置に配置される。そしてオルゴールＡ１の位置は、ハンド５０を基準とするローカル座標系で定められた位置、ここでは、ハンド５０で把持された位置に配置される。すなわち、ワークＷを保持部により保持した状態である。また、ワークＷを保持部により保持していない状態とは、ハンド５０がワークＷを把持していない状態である。
【００３９】
また、「棚」の階層の下には、１０個のオルゴールＢ１〜Ｂ１０を示す「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」が設定されている。このため、「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」は、「棚」を基準とするローカル座標系で定められた位置に配置される。
【００４０】
そしてこの画面３０で示された階層構造では、ある構成要素の位置が変更されると、その構成要素よりも下位の階層に配置された構成要素の位置も同様に変更される。
【００４１】
例えば、３次元ＣＡＤ上で「棚」の位置が変更されると、この変更に合わせて、３次元ＣＡＤデータＤ内の「棚」のワールド座標系における座標値が変化するが、同時に、「棚」の下の階層に設けられた「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」のワールド座標系における座標値も「棚」の位置変化に伴って変化する。
【００４２】
ただし、「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」のそれぞれの「棚」に対する位置は、「棚」を基準とするローカル座標系で定められているため、ワールド座標系における「棚」の位置が変更された場合であっても、「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」のそれぞれの「棚」に対する位置を表すローカル座標系における座標値は変化しない。
【００４３】
このようにしてアーム型ロボット４０は、仮想空間においては、ワールド座標系で定められる位置に配置される「Ｒｏｂｏｔ」（３次元ＣＡＤデータＤａ）として表現される。そして、ハンド５０は、仮想空間において「Ｒｏｂｏｔ」を基準とするローカル座標系で定められる位置に配置される「ＨＡＮＤ」として表現される。
【００４４】
またオルゴールＡ１は、仮想空間において「ＨＡＮＤ」を基準とするローカル座標系で定められる位置に配置される「ＯＧ  Ａ１」（３次元ＣＡＤデータＤｂ１）として表現される。
【００４５】
棚４５は、仮想空間においてワールド座標系で定められる位置に配置される「棚」（３次元ＣＡＤデータＤｃ）として表現される。
【００４６】
オルゴールＢ１〜Ｂ１０は、仮想空間において、「棚」を基準とするローカル座標系で定められる位置に配置される「ＯＧ  Ｂ１」〜「ＯＧ  Ｂ１０」（３次元ＣＡＤデータＤｂ２〜Ｄｂ１１）として表現される。
【００４７】
−−−設定画面−−−
図５は、ロボット教示装置１０が生成する動作プログラム７１０の内容を設定するために表示装置２４に表示される設定画面６０の一例を示す図である。
【００４８】
設定画面６０は、関数名指定エリア７０、作業開始位置入力エリア７１（第１取得部８４）、作業終了位置入力エリア７２（第２取得部８５）、アプローチポイント設定エリア７３（第３取得部８６）、エスケープポイント設定エリア７４（第４取得部８７）、及びティーチング設定エリア７５を含んで構成される。
【００４９】
なおこれらのうち、作業終了位置入力エリア７２は、アーム型ロボット４０が作業を行う実空間における所定位置を指定するべく、実空間に対応した仮想空間における所定位置に対応する仮想位置を指定する入力を受け付ける仮想位置入力部８０として機能する。
【００５０】
またティーチング設定エリア７５は、仮想位置の座標値と同じ座標値を有する実空間における対応位置が、所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける位置合わせ入力部８１として機能する。
【００５１】
関数名指定エリア７０では、作成される動作プログラム７１０を示す「関数名」が指定される。関数名指定エリア７０は、作業種類指定エリア７０ａおよび関数名入力エリア７０ｂを含む。作業種類指定エリア７０ａでは、アーム型ロボット４０に実行させる作業が指定される。具体的には、作業種類指定エリア７０ａでは、置く（“place”）、取る（つかむ）（“pick up”）、捨てる（“dispose”）等の作業を選択可能である。関数名入力エリア７０ｂには、利用者が指定する作業を示すファイル名（例えば、日付や整理番号）が入力される。
【００５２】
図５に示す例では、関数名として置く（“place”）が選択され、作業を示すファイル名として“OG1_to_shelf”が入力されている。
【００５３】
作業開始位置入力エリア７１は、３次元ＣＡＤ上の仮想空間における点（第１の点）の位置（第１の位置）を指定することにより、アーム型ロボット４０のハンド５０の動作の開始位置Ｐ１を教示点として設定するための入力欄である。本実施形態では、作業開始位置入力エリア７１には、仮想空間においてこの開始位置Ｐ１にワークＷのＴＣＰ（Tool Center Point）が位置するとした場合の、このワークＷのＴＣＰ（所定の点）の位置を示す情報が入力される。
【００５４】
図５に示す例では、作業開始位置入力エリア７１には、ハンド５０に保持された「オルゴールＡ１」（「ＯＧ  Ａ１」）が入力されている。したがってロボット教示装置１０は、開始位置Ｐ１としてオルゴールＡ１のＴＣＰの位置を設定する。
【００５５】
作業終了位置入力エリア７２は、３次元ＣＡＤ上の仮想空間における点（第２の点）の位置（仮想位置、第２の位置）を指定することにより、アーム型ロボット４０のハンド５０の動作の終了位置Ｐ２を教示点（所定位置）として設定するための入力欄である。
【００５６】
本実施形態では、作業終了位置入力エリア７２には、仮想空間においてこの終了位置Ｐ２にワークＷのＴＣＰが位置するとした場合の、このワークＷのＴＣＰ（所定の点）の位置を示す情報が入力される。
【００５７】
図５に示す例では、作業終了位置入力エリア７２には、棚４５に載置された「オルゴールＢ９」（「ＯＧ  Ｂ９」）が入力されている。したがってロボット教示装置１０は、終了位置Ｐ２としてオルゴールＢ９のＴＣＰの位置を設定する。
【００５８】
また、作業終了位置入力エリア７２にはティーチング設定エリア７５が設けられているが、ティーチング設定エリア７５については後述する。
【００５９】
アプローチポイント設定エリア７３は、３次元ＣＡＤ上の仮想空間における点（第３の点）の位置を指定することにより、開始位置から終了位置までの間におけるワークＷの経由点（第３の点）をアプローチポイントＰ３として設定するための入力欄である。
【００６０】
アプローチポイントＰ３は、終了位置Ｐ２から離れた点であり、終了位置Ｐ２に対して相対的な位置関係を保つように設定される点であり、ハンド５０に保持されたワークＷが終了位置Ｐ２に接近する際に、障害物や他のワークＷ等に当たることを防ぐために設定される点である。アプローチポイント設定エリア７３は、作業ワーク指定エリア７３ａ、距離指定エリア７３ｂ、および方向指示エリア７３ｃを含む。
【００６１】
作業ワーク指定エリア７３ａには、ハンド５０の動作の終了位置Ｐ２に載置されるワークＷを示す情報が入力される。
【００６２】
距離指定エリア７３ｂには、作業ワーク指定エリア７３ａで選択されたワークＷからの距離ｄ１が入力される。
【００６３】
方向指示エリア７３ｃには、作業ワーク指定エリア７３ａで選択されたワークＷの面に対して略垂直となる方向ｖ１が指示される。
【００６４】
図５に示す例では、アプローチポイント設定エリア７３の作業ワーク指定エリア７３ａには、「オルゴールＢ９」が入力され、距離指定エリア７３ｂには、「２００」が入力され、方向指示エリア７３ｃには、オルゴールＢ９の「エッジ」が指定されている。
【００６５】
エスケープポイント設定エリア７４は、３次元ＣＡＤ上の仮想空間における点（第４の点）の位置を指定することにより、ハンド５０を終了位置Ｐ２から他の位置に移動させる際にハンド５０のＴＣＰが通過する点（第４の点）をエスケープポイントＰ４として設定するための入力欄である。
【００６６】
なお、エスケープポイントも、終了位置Ｐ２に対して相対的な位置関係を保つように設定された点であり、ハンド５０により把持されたワークＷの面（例えば底面）に対して略垂直方向に離間する。そしてエスケープポイントは、ワークＷが終了位置Ｐ２に載置された後、ハンド５０が終了位置Ｐ２から離れる際に、障害物や他のワークＷ等に当たることを防ぐために設定される点である。エスケープポイント設定エリア７４は、作業ワーク指定エリア７４ａ、距離指定エリア７４ｂ、および方向指示エリア７４ｃを含む。
【００６７】
作業ワーク指定エリア７４ａには、ハンド５０の動作の終了位置Ｐ２に載置されるワークＷを示す情報が入力される。なお、作業ワーク指定エリア７３ａ、７４ａには、ハンド５０の動作の終了位置に載置されたワークＷを示す情報以外が入力されても良い。
【００６８】
距離指定エリア７４ｂには、作業ワーク指定エリア７４ａで選択されたワークＷからの距離ｄ２が入力される。
【００６９】
方向指示エリア７４ｃには、作業ワーク指定エリア７４ａで選択されたワークＷの面に対して略垂直となる方向ｖ２が指示される。
【００７０】
図５に示す例では、エスケープポイント設定エリア７４の作業ワーク指定エリア７４ａには、「オルゴールＢ９」が入力され、距離指定エリア７４ｂには、「１００」が入力され、方向指示エリア７４ｃには、オルゴールＢ９の「エッジ」が指定されている。
【００７１】
なお、方向ｖ１，ｖ２は、ワークＷの３次元モデルに含まれる、ワークＷの面に対して略垂直となっているワークＷのエッジ、ワークＷの法線ベクトル、ワークＷの中心軸等の情報に基づいて定められる。
【００７２】
上記のように開始位置Ｐ１、終了位置Ｐ２、アプローチポイントＰ３及びエスケープポイントＰ４が設定されると、ロボット教示装置１０は、ワークＷを開始位置Ｐ１からアプローチポイントＰ３を経由して終了位置Ｐ２に載置すると共に、ハンド５０をエスケープポイントＰ４に移動させるような軌道を計算する。そしてロボット教示装置１０は、アーム型ロボット４０を動作させるための動作プログラム７１０を生成する。
【００７３】
そしてこの動作プログラム７１０をアーム型ロボット４０が実行すると、図６に示すようにアーム型ロボット４０が動作する。
【００７４】
図６に示すように、まず、ハンド５０は、オルゴールＡ１のＴＣＰに設定された開始位置Ｐ１から動作を開始し、軌道Ｏ１に沿って、ハンド５０に保持されたオルゴールのＴＣＰがアプローチポイントＰ３に一致するよう移動する。
【００７５】
つぎに、ハンド５０は、軌道Ｏ２に沿って、保持されたオルゴールのＴＣＰが終了位置Ｐ２に一致するよう移動する。
【００７６】
そして、ハンド５０はオルゴールを棚４５に載置した後、軌道Ｏ３に沿ってエスケープポイントＰ４に移動する。
【００７７】
ところで、作業開始位置入力エリア７１や、作業終了位置入力エリア７２、アプローチポイント設定エリア７３及びエスケープポイント設定エリア７４に入力される位置は、３次元ＣＡＤを用いて指定される仮想空間上の点の位置である。そのため、これらの点の位置を表す仮想空間での座標値が、実空間でも同じ位置を表すとは限らない。
【００７８】
例えば実空間におけるアーム型ロボット４０の設置高さが３次元ＣＡＤで設計された高さと異なっている場合には、このずれに起因して、開始位置、終了位置、アプローチポイント、エスケープポイントの実際の位置もそれぞれずれることになる。
【００７９】
特に、本実施形態では、終了位置は棚４５の上にワークＷを載置する位置であるので、位置のずれを極力小さくする必要がある。
【００８０】
そのため、図５に示すように、作業終了位置入力エリア７２にはティーチング設定エリア７５が設けられている。
【００８１】
ティーチング設定エリア７５は、作業終了位置入力エリア７２に入力された終了位置（仮想位置）の座標値と同じ座標値を有する実空間の対応位置が、実空間における終了位置（所定位置）と一致するかを確認する位置合わせ作業を指定する入力を受け付けるための入力欄である。
【００８２】
ロボット教示装置１０は、ティーチング設定エリア７５にチェックが入力されている場合には、位置合わせ作業を要すると判定し、位置合わせ作業が実施されるような動作プログラム７１０を生成する。
【００８３】
アーム型ロボット４０は、この動作プログラム７１０を実行すると、作業終了位置入力エリア７２に入力された仮想空間上の終了位置の座標値、もしくは終了位置の座標値のアプローチポイントと同じ座標値を有する実空間の対応位置にハンド５０を移動させ、一旦停止させる。そして作業員がアーム型ロボット４０のハンド５０の位置を手動で調整して正しい位置に移動させ、その状態でアーム型ロボット４０に対してその位置を終了位置として設定する旨の入力を行う。そうするとアーム型ロボット４０は、手動で修正された後のハンド５０の座標値を、終了位置を表す座標値として記憶する。
【００８４】
もちろん、仮想空間における終了位置の座標値と、実空間における終了位置の座標値とのずれが許容される場合などには、ティーチング設定エリア７５にチェックの入力は不要であり、この場合、ロボット教示装置１０は位置合わせ作業を行わない通常の動作プログラム７１０を生成する。
【００８５】
このように、本実施形態に係るロボット教示装置１０は、ティーチング設定エリア７５を設けて、位置合わせ作業を指定できるように構成されているため、オフラインティーチングを行う際のアーム型ロボット４０の位置合わせ作業を個々の点ごとに指定することができる。
【００８６】
このことは、棚４５に載置される他のオルゴールＯＧについて同様であり、これらのオルゴールＯＧについても同じように、ティーチング設定エリア７５に位置合わせ作業を指定することができる。
【００８７】
−−−軌道計算処理−−−
次に、ロボット教示装置１０により実行される軌道計算処理について説明する。軌道計算処理は、上記設定画面６０への入力が行われた際に実行される。
【００８８】
図７は、ロボット教示装置１０に実現される機能ブロックを示す図である。図７に示すように、ロボット教示装置１０は、第１取得部８４、第２取得部８５、第３取得部８６、第４取得部８７、計算部８８、及び表示制御部８９の機能ブロックを備える。
【００８９】
第１取得部８４は、作業開始位置入力エリア７１に入力されたワークＷを示す情報（３次元ＣＡＤデータ）に基づいて、ワークＷのＴＣＰ（所定の点）を教示点Ｐ１（第１の点）として取得する。
【００９０】
第２取得部８５は、作業終了位置入力エリア７２に入力されたワークＷを示す情報（３次元ＣＡＤデータ）に基づいて、ワークＷのＴＣＰを教示点Ｐ２（第２の点）として取得する。なお、ここでは、第１取得部８４および第２取得部８５が取得する点をワークＷのＴＣＰとしたが、例えば、ワークＷの重心を示す点であっても良い。
【００９１】
第３取得部８６は、アプローチポイント設定エリア７３に入力された情報に基づいて、ワークＷが移動される際に、ワークＷが経由するアプローチポイントＰ３（第３の点）を取得する。具体的には、第３取得部８６は、作業ワーク指定エリア７３ａで選択されるワークＷを示す情報から、ワークＷのＴＣＰ（所定の点）を取得する。そして、第３取得部８６は、ワークＷのＴＣＰを始点とし、指定された方向ｖ１に距離ｄ１だけ離間した点をアプローチポイントＰ３として取得する。
【００９２】
第４取得部８７は、エスケープポイント設定エリア７４に入力された情報に基づいて、ハンド５０が移動される際に、ハンド５０が経由するエスケープポイントＰ４（第４の点）を取得する。具体的には、第４取得部８４は、作業ワーク指定エリア７４ａで選択されるワークＷを示す情報から、ワークＷのＴＣＰを取得する。そして、第４取得部８４は、ワークＷのＴＣＰを始点とし、指定された方向ｖ２に距離ｄ２だけ離間した点をエスケープポイントＰ４として取得する。なお、アプローチポイントＰ３、エスケープポイントＰ４を定める際の始点はワークＷのＴＣＰであるとしたが、例えばワークＷの重心を示す点等でも良い。
【００９３】
計算部８８は、教示点Ｐ１，Ｐ２、アプローチポイントＰ３、エスケープポイントＰ４に基づいて、ハンド５０を移動させる軌道の計算を行う。また、計算部８５は、計算結果を、記憶装置２２に格納する。
【００９４】
そして表示制御部８９は、入力装置２３からの指示やＣＰＵ２０で実行されるプログラム６００の処理結果等に基づいて、表示装置２４に各種情報を表示する。例えば、表示制御部８９は、ワークＷを移動する際のハンド５０のアニメーションを表示装置２４に表示する。
【００９５】
−−−位置合わせ作業−−
次に、ロボット教示装置１０により実行される位置合わせ作業について説明する。位置合わせ作業は、ロボット教示装置１０が生成した動作プログラム７１０をアーム型ロボット４０が実行する際に行われる。
【００９６】
ロボット教示装置１０は、図７に示すように、仮想位置入力部８０、位置合わせ入力部８１、リスト出力部８２、及び動作プログラム生成部８３の各機能ブロックを備えており、これらの機能によって位置合わせ作業を行うような動作プログラム７１０を生成する。
【００９７】
仮想位置入力部８０は、アーム型ロボット４０が作業を行う実空間における所定位置を指定するべく、仮想空間における所定位置に対応する仮想位置を指定する入力を受け付ける。
【００９８】
例えばロボット教示装置１０は、上述した作業終了位置入力エリア７２に、３次元ＣＡＤデータＤから読みだした仮想空間におけるハンド５０の動作の終了位置Ｐ２を指定する入力を受け付ける。この終了位置Ｐ２は、３次元ＣＡＤ上での位置であるため、実際の位置とは異なっている可能性がある。
【００９９】
位置合わせ入力部８１は、仮想位置入力部８０に入力された仮想位置の座標値と同じ座標値を有する実空間における対応位置が、所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける。
【０１００】
例えばロボット教示装置１０は、作業終了位置入力エリア７２に設けられているティーチング設定エリア７５を設け、位置合わせ作業を指定するためのチェックの入力を受け付ける。
【０１０１】
リスト出力部８２は、ティーチング設定エリア７５に位置合わせ作業を要する旨の指定がなされた仮想位置の一覧を出力する。
【０１０２】
例えば、オルゴールＢ１〜Ｂ１０の各ティーチング設定エリア７５にチェックが入力された場合には、リスト出力部８２は、オルゴールＢ１〜Ｂ１０のそれぞれの終了位置（仮想位置）が記載された位置合わせ作業リスト９０を出力する。
【０１０３】
リスト出力部８２により出力される位置合わせ作業リスト９０を図８に示す。図８に示すように、位置合わせ作業リスト９０には、ティーチング設定エリア７５にチェックが入力された各点の仮想空間における終了位置の座標値及びアプローチポイントの座標値が記載される。
【０１０４】
この位置合わせ作業リスト９０が出力されることにより、現場の作業員はどの点に対して位置合わせ作業を行えばよいかを確認できるため、位置合わせ作業を漏れなく行うことが可能となる。
【０１０５】
動作プログラム生成部８３は、ティーチング設定エリア７５にチェックが入力された終了位置についての動作プログラム７１０を生成する際に、アーム型ロボット４０のハンド５０を、作業終了位置入力エリア７２に入力された終了位置の座標値で指定される対応位置に移動させ、アーム型ロボット４０の姿勢が作業員によって手動で修正された後のハンド５０の座標値を、終了位置の正しい座標値として設定するように動作プログラム７１０を生成する。
【０１０６】
そして、以上のようにして生成された動作プログラム７１０は、ロボット教示装置１０によってアーム型ロボット４０に送信される。
【０１０７】
そしてアーム型ロボット４０がこの動作プログラム７１０を実行する際に、位置合わせ作業を要する場合には、アーム型ロボット４０は、まず、ハンド５０を、動作プログラム７１０に設定されている座標値で指定される対応位置に移動させ、そこで停止する。例えばオルゴールＢ１の終了位置として設定された対応位置にハンド５０を移動させて停止する。
【０１０８】
これにより、現場の作業員は、ハンド５０が実際に正しくオルゴールＢ１を載置する終了位置に移動しているか否かを確認することができる。
【０１０９】
ハンド５０の位置が意図した通りの位置である場合には、作業員はアーム型ロボット４０に対してその位置を終了位置として設定する旨の入力を行う。これにより、アーム型ロボット４０は、オルゴールＢ１の終了位置、アプローチポイント及びエスケープポイントの各位置を、作業終了位置入力エリア７２、アプローチポイント設定エリア７３、エスケープポイント設定エリア７４に入力された通りにそのまま記憶する。
【０１１０】
一方、ハンド５０の位置が意図した位置とは異なる場合は、作業員は、アーム型ロボット４０のハンド５０を手動で正しい終了位置に動かした後、アーム型ロボット４０に対して、その修正後の終了位置を設定する旨の入力を行う。そうするとアーム型ロボット４０は、修正後のハンド５０の座標値を、終了位置の座標値として記憶するとともに、アプローチポイント及びエスケープポイントの座標値も、終了位置からの位置関係を維持するように修正して記憶する。
【０１１１】
アーム型ロボット４０は、このような位置合わせ作業を、位置合わせ作業リスト９０に表示されている各点について順に一か所ずつ行う。
【０１１２】
このような態様によって、オフラインティーチングを行う際に３次元ＣＡＤを用いて設定される様々な点のうち、実際に位置合わせが必要な特定の点に対してティーチングを行うようにすることが可能となり、作業効率も向上する。
【０１１３】
次に、本実施形態に係るロボット教示装置１０による処理の流れを図９のフローチャートに沿って説明する。
【０１１４】
まずロボット教示装置１０は、アーム型ロボット４０が作業を行う実空間における所定位置を、仮想空間における仮想位置により指定する入力を受け付ける（S1000）。
【０１１５】
次にロボット教示装置１０は、仮想位置の座標値と同じ座標値を有する実空間の対応位置が、実空間における所定位置と一致するかを確認する位置合わせ作業を指定する入力を受け付ける（S1010）。
【０１１６】
次にロボット教示装置１０は、位置合わせ作業を要する仮想位置について、その一覧を出力する（S1020）。
【０１１７】
そしてロボット教示装置１０は、位置合わせ作業を要する点について位置合わせ作業が実施されるような動作プログラム７１０を生成する。
【０１１８】
アーム型ロボット４０は、この動作プログラム７１０を実行すると、アーム型ロボット４０のハンド５０を、仮想位置の座標値と同じ座標値を有する対応位置、もしくは仮想位置のアプローチポイントに移動させて停止させる。そして作業員が、アーム型ロボット４０のハンド５０の位置を手動で調整して正しい位置に移動させ、その状態でアーム型ロボット４０に対してその位置を終了位置として設定する旨の入力を行う。そうするとアーム型ロボット４０は、手動で修正された後のハンド５０の座標値を、所定位置を表す座標値として設定する（S1030）。
【０１１９】
以上本実施形態に係るロボット教示装置１０、ロボット教示装置１０の制御方法及びロボット教示プログラム６１０について説明したが、本実施形態によれば、オフラインティーチングを行う際のアーム型ロボット４０の位置合わせ作業を指定することが可能となる。
【０１２０】
また本実施形態に係るロボット教示装置１０は、複数の仮想位置を指定する入力を受け付けるとともに、それぞれの仮想位置ごとに位置合わせ作業を指定する入力を受け付けることもできる。
【０１２１】
このような態様により、アーム型ロボット４０の作業空間に存在する複数の点のうち、指定した点についてのみ位置合わせ作業を行うようにすることも可能となるため、無駄な位置合わせを行わないで済み、ティーチング作業を効率的に行うことが可能となる。
【０１２２】
また本実施形態に係るロボット教示装置１０は、位置合わせ作業を要する仮想位置の一覧である位置合わせ作業リスト９０を出力することもできる。
【０１２３】
このような態様により、現場の作業員はどの点に対して位置合わせ作業を行えばよいかが容易に確認できるため、位置合わせ作業を漏れなく行うことが可能となる。
【０１２４】
また本実施形態に係るロボット教示装置１０は、アーム型ロボット４０がワークＷに対して作業を行う際の教示点を上記所定位置として位置合わせ作業を指定することもできる。
【０１２５】
このような態様によって、アーム型ロボット４０に対して教示すべき教示点のうちの特定の教示点について、精度良く位置を合わせることが可能となる。例えばワークＷのサイズが微小であるような場合や、ワークＷに対して精密な作業を行う必要があるような場合に、これらの教示点について精度良く位置合わせを行うことが可能となる。このため、オフラインティーチング時に無駄な位置合わせを行わないことによるティーチング作業の合理化と、ワークＷに対する作業精度の維持と、を両立させることが可能となる。
【０１２６】
また本実施形態に係るロボット教示装置１０は、アーム型ロボット４０がワークＷに対して作業を行う際の教示点と相対的な位置関係を有する点を上記所定位置として位置合わせ作業を指定するようにしてもよい。
【０１２７】
このような態様により、位置合わせ作業を行う際に、アーム型ロボット４０のハンド５０を、アプローチポイントやエスケープポイントのような教示点と相対的な位置関係を有する点に移動させることが可能となるため、例えば教示点が棚４５の表面などに設けられているような場合であっても、ハンド５０を他の物体に接触させることなく位置合わせ作業を行うことが可能となる。
【０１２８】
またロボット教示装置１０の計算部８８は、オルゴールＯＧを移動する際のハンド５０の軌道を、移動前の位置にあるオルゴールＡ１のＴＣＰと、移動後の位置にあるオルゴールＢ９のＴＣＰと、に基づいて計算する。この際、ハンド５０のＴＣＰではなく、オルゴールのＴＣＰが用いられるため、ハンド５０に対するワークＷの位置の変化（例えば、ハンド５０の先端でワークＷを把持するか、ハンド５０の奥でワークＷを把持するか）等の影響が抑制される。この結果、アーム型ロボット４０は、計算部８８の計算結果を用いることにより、ワークＷを精度良く所望の位置に移動することが可能となる。
【０１２９】
また、計算部８８は、オルゴールＯＧが載置される際に、ハンド５０がオルゴールＯＧを保持部により保持した状態でアプローチポイントＰ３を経る軌道を計算する。例えば、オルゴールＯＧを載置する位置（例えば、オルゴールＢ９の位置）の周辺に他のオルゴールＯＧ等が載置されていることがある。このような場合に、移動対象のオルゴールＯＧを目標とする位置に直接移動させると、移動対象のオルゴールＯＧが、他のオルゴールＯＧに当たることがある。本実施形態では、オルゴールＢ９のＴＣＰから離れたアプローチポイントＰ３を経由してオルゴールＯＧが載置される。したがって、計算部８８は、目標位置の周辺に障害物がある場合であっても、移動対象のワークＷが障害物等に当たることを防ぐ軌道を計算できる。
【０１３０】
また、計算部８８は、オルゴールＯＧを載置した後にハンド５０を移動させる軌道として、ハンド５０がオルゴールＯＧを保持していない状態で、エスケープポイントＰ４を経る軌道を計算する。例えば、載置されたオルゴールＯＧの位置（例えば、オルゴールＢ９の位置）の周辺に他のオルゴールＯＧが載置されていることがある。このような場合に、ハンド５０を設定された位置に直接移動させると、ハンド５０が、他のオルゴールＯＧに当たることがある。本実施形態では、オルゴールＢ９のＴＣＰから垂直方向に定められたエスケープポイントＰ４を経由してハンド５０を移動させる軌道が計算される。したがって、計算部８８は、目標位置の周辺に障害物がある場合であっても、ハンド５０が障害物等に当たることを防ぐ軌道を計算できる。
【０１３１】
ワークＷを置く（“place”）作業時の計算部８８の軌道計算を説明したが、ワークＷを取る（つかむ）（“pick up”）作業時も同様である。すなわち、オルゴールＯＧをつかむ際に、ハンド５０はオルゴールＯＧを保持していない状態で、アプローチポイントＰ３を経る。そして、オルゴールＯＧをつかんだ後にハンド５０を移動させる軌道として、ハンド５０がオルゴールＯＧを保持している状態で、エスケープポイントＰ４を経る。
【０１３２】
また、表示制御部８９は、軌道に沿って動くハンド５０のアニメーションを表示装置２４に表示する。表示制御部８９は、アーム型ロボット４０全体のアニメーションを表示せず、ハンド５０のみのアニメーションを表示することから、ＣＰＵ２０への負荷は軽減される。
【０１３３】
また、本実施形態では、利用者は、ワークＷを移動させる際に、ワークＷの移動開始位置と、終了位置を、作業開始位置入力エリア７１と、作業終了位置入力エリア７２で設定できる。したがって、利用者は、複雑な座標等を指定する必要がないため、利用者は容易にアーム型ロボット４０を教示できる。
【０１３４】
また、本実施形態では、仮想空間に設けられたオルゴールＯＧの情報に基づいて、アプローチポイントＰ３が設定される。この結果、アプローチポイントＰ３の座標等を直接指定する場合と比較すると、利用者は、容易にアプローチポイントＰ３を設定できる。
【０１３５】
また、本実施形態では、仮想空間に設けられたオルゴールＯＧの情報に基づいて、エスケープポイントＰ４が設定される。この結果、エスケープポイントＰ４の座標等を直接指定する場合と比較すると、利用者は、容易にエスケープポイントＰ４を設定できる。
【０１３６】
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１３７】
例えば、上記実施形態では、ハンド５０を移動させる際の終了位置Ｐ２について、位置合わせ作業を設定できるような例を説明したが、開始位置やアプローチポイント、エスケープポイントについても、位置合わせ作業を設定できるようにしてもよい。
【０１３８】
さらには、作業空間内の任意の点を指定して位置合わせ作業を指定できるようにしてもよい。例えば棚４５のコーナー部分の点を指定して、位置合わせ作業を行うようにしてもよい。このような態様により、棚４５の位置が３次元ＣＡＤで設定されている位置とずれていても、棚４５の上に載置されるワークＷに対して正確な位置で作業を行うことが可能となる。あるいは、現場の棚４５の位置を３次元ＣＡＤの設計通りの位置に修正して対応することもできる。
【０１３９】
また、ワークＷを取る（つかむ）（“pick up”）作業の際においても、本実施形態と同様の処理が実行される。例えば、ロボット教示装置１０は、ワークＷを取る場合においても、移動前の位置にあるオルゴールＡ１のＴＣＰと、移動後の位置にあるオルゴールＢ９のＴＣＰと、に基づいてハンド５０の軌道を計算する。ハンド５０がワークＷを取る際には、ハンド５０は実際にはワークＷを把持していない。しかしながら、ハンド５０が仮にワークＷを把持しているとして計算された軌道は、ワークＷを取る際の軌道と同様である。したがって、本実施形態では、ワークＷを取る際にも、作業開始位置に設けられた「ワークＷ」を、作業終了位置に設けられた「ワークＷ」に移動させる軌道として計算する。つまり、「ワークＷ」を作業開始位置（第１の位置）から作業終了位置（第２の位置）に移動させる際の軌道とは、実際に「ワークＷ」を移動させる際の軌道のみならず、ハンド５０が仮想的に「ワークＷ」を移動させる際の軌道（ワークを取る（つかむ）（“pick up”）際の軌道）も含む。
【０１４０】
また本実施形態では、ハンド５０がワークＷである「オルゴール」を「把持」することを、保持した状態として説明したが、これに限られない。例えば、ハンド５０の代わりにワークＷを真空吸着することが可能な吸着パッドを用いても良い。このような場合、ワークＷは、吸着パッドにより「保持」されることになる。
【０１４１】
本実施形態では、ワークＷは「オルゴール」であり、「オルゴール」が載置（支持）される支持部材は、棚４５であることとしたが、これに限られない。例えば、ワークＷが「カップ（容器）」であり、「カップ」は「カップホルダー」に収納（支持）されることとしても良い。また、「カップホルダー」は、「カップ」を収納する構成のみならず、「カップい」の外側の面の一部だけを支持する構成であっても良い。このような、「カップ」および「カップホルダー」が用いられる場合であっても、本実施形態と同様の効果を得ることができる。なお、例えば、アーム型ロボット４０が「カップ」を、傾いた「カップホルダー」に支持されるように移動する際には、傾いて支持された「カップ」の底面に基づいて、アプローチポイントＰ３、エスケープポイントＰ４が取得される。
【０１４２】
また、ここでは、教示対象となるアーム型ロボット４０が６軸の多関節のロボットであることとしたが、例えば、３軸のロボットであっても良い。また、ロボット教示装置１０は、教示対象となるアーム型ロボット４０が６軸のロボットであっても、ワークＷを移動させる際に３軸の軌道のみを計算すれば良い場合、ＴＣＰ（教示点）の自由度を６から３に変更し、軌道を計算しても良い。このようにＴＣＰの自由度を低下させることにより、ＣＰＵ２０の負荷を軽減することができる
また、本実施形態では、アプローチポイントＰ３における指定された方向ｖ１は、ＴＣＰから、ワークＷの面に対して略垂直となる方向であることとしたが、これに限られない。例えば、ワークＷの面に対して略水平方向であっても良い。また、エスケープポイントＰ４における方向ｖ２も、ＴＣＰから、ワークＷの面に対して略垂直となる方向であることとしたが、例えば、ワークＷの面に対して略水平方向であっても良い。
【０１４３】
例えば、図１では、ハンド５０がワークＷを保持している状態が示されているが、ハンド５０がワークＷを保持していない場合、表示制御部８０は、ワークＷを表示装置２４に表示しない。
【０１４４】
また、ロボットの動作プログラミングをする際、座標値を扱うのは煩雑である。３次元ＣＡＤからは座標値も抽出することも可能であるが、煩雑であることに変わりない。また、この煩雑さは、機械技術者、ソフトウェア技術者などの異なる技術者が必要となる。そのためロボットを利用したオートメーションシステムを構築するために、膨大な時間を要する。本実施形態は、ロボットのオートメーションシステムを短時間で行うこともできる。
【符号の説明】
【０１４５】
１０…ロボット教示装置、２０…ＣＰＵ、２１…メモリ、２２…記憶装置、２３…入力装置、２３…表示装置、２４…通信装置、３０…画面、４０…アーム型ロボット、４５…棚、５０…ハンド、５１…アーム、６０…設定画面、７０…関数名指定エリア、７１…作業開始位置入力エリア、７２…作業終了位置入力エリア、７３…アプローチポイント設定エリア、７４…エスケープポイント設定エリア、７５…ティーチング設定エリア、８０…仮想定点入力部、８１…位置合わせ入力部、８２…リスト出力部、８３…動作プログラム生成部、８４…第１取得部、８５…第２取得部、８６…第３取得部、８７…第４取得部、８８…計算部、８９…表示制御部、９０…位置合わせ作業リスト、６００…プログラム、６１０…ロボット教示プログラム、６２０…３次元ＣＡＤプログラム、７００…データ、７１０…動作プログラム、８００…記録媒体、ＯＧ…オルゴール、Ａ…オルゴール、Ｂ…オルゴール、Ｗ…ワーク、Ｄ…３次元ＣＡＤデータ、Ｄａ…３次元ＣＡＤデータ、Ｄｂ…３次元ＣＡＤデータ、Ｄｃ…３次元ＣＡＤデータ
【図１】
2018180299.tif 000003
【図２】
2018180299.tif 000004
【図３】
2018180299.tif 000005
【図４】
2018180299.tif 000006
【図５】
2018180299.tif 000007
【図６】
2018180299.tif 000008
【図７】
2018180299.tif 000009
【図８】
2018180299.tif 000010
【図９】
2018180299.tif 000011
【国際調査報告】
2018180299.tif 000012
2018180299.tif 000013
2018180299.tif 000014
2018180299.tif 000015