(57)【要約】【課題】搬送路を移動するワークの動きを特定する動き情報を入力するユーザインタフェースを備えたロボット教示装置、ロボット教示装置の制御方法及びプログラムを提供することができる。【解決手段】搬送路を移動するワークに対して作業を行うロボットを制御する動作プログラムを生成するロボット教示装置であって、前記搬送路上の前記ワークの動きを特定する動き情報の入力を受け付ける動き情報入力受付部と、前記動き情報に基づいて、前記搬送路上の前記ワークに対して前記ロボットが作業するように前記動作プログラムを生成する動作プログラム生成部と、を備える。【選択図】図６
2020097060.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”）等の作業を選択可能である。関数名入力エリア７０ｂには、利用者が指定する作業を示すファイル名（例えば、日付や整理番号）が入力される。
【００５９】
図５に示す例では、関数名として取る（“pick up”）が選択され、作業を示すファイル名として“OG1_from_conveyor”が入力されている。
【００６０】
作業開始位置入力エリア７１は、３次元ＣＡＤ上の仮想空間における点（第１の点）の位置（第１の位置）を指定することにより、アーム型ロボット４０のハンド５０の動作の開始位置Ｐ１を教示点として設定するための入力欄である。本実施形態では、作業開始位置入力エリア７１には、仮想空間においてこの開始位置Ｐ１にワークＷのＴＣＰ（Tool Center Point）が位置するとした場合の、このワークＷのＴＣＰ（所定の点）の位置を示す情報が入力される。
【００６１】
図５に示す例では、作業開始位置入力エリア７１には、コンベア４５上の「オルゴールＢ１」（「ＯＧ  Ｂ１」）が入力されている。したがってロボット教示装置１０は、開始位置Ｐ１としてオルゴールＢ１のＴＣＰの位置を設定する。
【００６２】
作業終了位置入力エリア７２は、３次元ＣＡＤ上の仮想空間における点（第２の点）の位置（第２の位置）を指定することにより、アーム型ロボット４０のハンド５０の動作の終了位置Ｐ２を教示点として設定するための入力欄である。
【００６３】
本実施形態では、作業終了位置入力エリア７２には、仮想空間においてこの終了位置Ｐ２にワークＷのＴＣＰが位置するとした場合の、このワークＷのＴＣＰ（所定の点）の位置を示す情報が入力される。
【００６４】
図５に示す例では、作業終了位置入力エリア７２には、ハンド５０に保持された「オルゴールＡ１」（「ＯＧ  Ａ１」）が入力されている。したがってロボット教示装置１０は、終了位置Ｐ２としてオルゴールＡ１のＴＣＰの位置を設定する。
【００６５】
このようにして開始位置Ｐ１及び終了位置Ｐ２が決まると、ロボット教示装置１０は、ワークＷを開始位置Ｐ１から終了位置Ｐ２に移動させる際のハンド５０の軌道を計算する。
【００６６】
ところで、上述したように、オルゴールＢ１はコンベア４５によって搬送されてくるため、動的に位置が変化する。
【００６７】
そこで、本実施形態に係るロボット教示装置１０は、図６に示す動き情報設定画面６１を表示装置２４に表示し、オルゴールＢ１の動きを特定するための動き情報７２０の入力を受け付ける。
【００６８】
動き情報設定画面６１への動き情報７２０の設定内容を、図６及び図７を参照しながら説明する。
【００６９】
なお、動き情報設定画面６１は、例えば図４に示した階層構造図において「ＯＧ  Ｂ１」が表示されている部分をマウスでクリックすることにより、表示される。
【００７０】
動き情報設定画面６１は、図６に示すように、名前指定エリア７３、第１動き情報入力エリア７５、第２動き情報入力エリア７６、および第３動き情報入力エリア７７を有している。
【００７１】
名前指定エリア７３には、動き情報７２０の設定対象を特定するための情報が入力される。本実施形態では、図４の階層構造図において「ＯＧ  Ｂ１」が表示されている部分がマウスでクリックされたことにより、ロボット教示装置１０によって名前指定エリア７３に「ＯＧ  Ｂ１」が入力される。
【００７２】
第１動き情報入力エリア７５には、センサ３００が設置される基準位置を入力することができる。図６及び図７に示す例では、基準位置として「Ｐ（ｔ０）」で示される位置が入力されている。この「Ｐ（ｔ０）」は、例えばコンベア４５のローカル座標系を構成する座標軸の内の、コンベア４５の搬送方向に沿った座標軸上の点の座標値で表される。
【００７３】
次に、第２動き情報入力エリア７６には、コンベア４５の速度を入力することができる。図６及び図７に示す例では、コンベア４５の移動速度として「ｖ」が入力されている。
【００７４】
そして第３動き情報入力エリア７７には、ハンド５０がワークＷに対する作業を行う位置を入力することができる。図６及び図７に示す例では、「Ｐ（ｔ１）」で指定される位置で、ハンド５０がワークＷに対する作業を行うことが指定されている。この「Ｐ（ｔ１）」も、コンベア４５の搬送方向に沿った座標軸上の点の座標値で表される。
【００７５】
このように動き情報７２０が設定されると、ロボット教示装置１０は、コンベア４５上のワークＷが作業位置Ｐ（ｔ１）に到達するタイミングｔ１を、以下の式（１）、式（２）により算出することができる。ここで、ｔ０はセンサ３００がワークＷを検出したタイミングである。
【００７６】
ｔ１＝ｔ０＋Ｌ／ｖ          …（１）
Ｌ＝Ｐ（ｔ１）−Ｐ（ｔ０）  …（２）
そしてロボット教示装置１０は、図５及び図６に示した各設定画面６０、６１に入力された情報を元に、開始位置Ｐ１、終了位置Ｐ２、及び式（１）、式（２）の内容を動作プログラム７１０に組み込む。
【００７７】
つまり、ロボット教示装置１０は、センサ３００によってワークＷが基準位置Ｐ（ｔ０）で検出されたタイミングｔ０と、基準位置Ｐ（ｔ０）からワークＷに対する所定の作業位置Ｐ（ｔ１）までの距離Ｌと、ワークＷの搬送速度ｖと、を元に特定されるワークＷが作業位置Ｐ（ｔ１）に到達するタイミングｔ１で、アーム型ロボット４０によるワークＷに対する作業が行われるように、動作プログラム７１０を生成する。
【００７８】
これにより、この動作プログラム７１０を実行するアーム型ロボット４０は、コンベア４５上を搬送されてくるオルゴールＢ１が作業位置Ｐ（ｔ１）に到達したタイミングで、このオルゴールＢ１を掴みあげ、上記のように軌道を計算してハンド５０を移動させることで、オルゴールＢ１を終了位置Ｐ２に移動させる。
【００７９】
具体的には、アーム型ロボット４０は、オルゴールＢ１がセンサ３００によって検出されると、そのタイミングｔ０を基準にして、オルゴールＢ１が作業位置Ｐ（ｔ１）に到達するタイミングｔ１を式（１）、式（２）を用いて計算し、そのタイミングｔ１で、ハンド５０がオルゴールＢ１のＴＣＰに設定された開始位置Ｐ１（第１の位置）に到達するようにハンド５０を動作させてオルゴールＢ１をつかみ、そしてその後、オルゴールＡ１のＴＣＰに設定された終了位置Ｐ２（第２の位置）に移動させる。
【００８０】
このように、本実施形態に係るロボット教示装置１０によれば、動的に位置が変化するワークＷに対する作業をアーム型ロボット４０に実行させる動作プログラム７１０を生成することが可能となる。そしてロボット教示装置１０は、ワークＷの動きを特定する動き情報７２０を入力するための設定画面６１を表示するように構成されているため、ワークＷの動きを様々な状況に応じて柔軟に設定できる。
【００８１】
例えば、図６に示した動き情報設定画面６１において、第３動き情報入力エリア７７を空欄のままとすることもできる。この場合は、ハンド５０がワークＷに対する作業を行う位置が特定されない。
【００８２】
このように動き情報７２０が設定された場合には、ロボット教示装置１０は、コンベア４５上のワークＷの現在位置Ｐ（ｔ）を、以下の式（３）によって算出するように、動作プログラム７１０を生成する。ただし、ｔ０はセンサ３００がワークＷを検出したタイミングであり、ｔ−ｔ０はタイミングｔ０から現在までの経過時間を表す。
【００８３】
Ｐ（ｔ）＝Ｐ（ｔ０）＋ｖ×（ｔ−ｔ０）        …（３）
つまり、ロボット教示装置１０は、ワークＷが基準位置Ｐ（ｔ０）を通過してからの経過時間ｔ−ｔ０と、基準位置Ｐ（ｔ０）と、ワークＷの搬送速度ｖと、からワークＷの現在位置Ｐ（ｔ）を特定し、この現在位置Ｐ（ｔ）で、アーム型ロボット４０によるワークＷに対する作業が行われるように、動作プログラム７１０を生成する。
【００８４】
これにより、この動作プログラム７１０を実行するアーム型ロボット４０は、コンベア４５上を搬送されてくるオルゴールＢ１の動きに合わせてハンド５０を移動させながらオルゴールＢ１を掴みあげ、上記のように軌道を計算してハンド５０を移動させることで、オルゴールＢ１を終了位置Ｐ２に移動させる。
【００８５】
具体的には、図８に示すように、アーム型ロボット４０は、オルゴールＢ１がセンサ３００によって検出されると、そのタイミングｔ０からの経過時間ｔ−ｔ０とコンベア４５の搬送速度ｖを元に、式（３）を用いて、基準位置Ｐ（ｔ０）から現在までのオルゴールＢ１の移動距離Ｌ（ｔ）を求めることでオルゴールＢ１の現在位置Ｐ（ｔ）（第１の位置）を計算し、オルゴールＢ１のＴＣＰに設定された開始位置Ｐ１にハンド５０を移動させてオルゴールＢ１をつかみ、そしてその後、オルゴールＡ１のＴＣＰに設定された終了位置Ｐ２（第２の位置）に移動させる。
【００８６】
このように、本実施形態に係るロボット教示装置１０によれば、動的に位置が変化するワークＷに対する作業をアーム型ロボット４０に実行させる動作プログラム７１０を生成することが可能となる。そしてロボット教示装置１０は、ワークＷの動きを特定する動き情報７２０を入力するための設定画面６１を表示するように構成されているため、ワークＷの動きを柔軟に設定できる。
【００８７】
なお表示制御部８５は、上記のようなアーム型ロボット４０のハンド５０の動きを表示装置２４に表示する。その様子を図１０に示す。つまり、表示制御部８５は、アーム型ロボット４０のハンド５０がコンベア４５上の開始位置Ｐ１でオルゴールＯＧを掴み、軌道Ｏ１に沿ってハンド５０及びオルゴールＯＧを移動させ、オルゴールＯＧのＴＣＰを終了位置Ｐ２に一致させるようなアニメーションを表示装置２４に表示する。
【００８８】
−−−ロボット教示装置の処理の流れ−−−
次に、本実施形態に係るロボット教示装置１０の処理の流れについて、図１１のフローチャートを参照しながら説明する。
【００８９】
まず、ロボット教示装置１０は、コンベア４５上のワークＷの動きを特定するための動き情報７２０の入力を受け付ける（S1000）。例えば、ロボット教示装置１０は、上述した動き情報設定画面６１を表示装置２４に表示し、動き情報７２０の入力を受け付ける。
【００９０】
なお、この動き情報には、コンベア４５上のワークＷを検知するセンサ３００が設けられる基準位置Ｐ０や、コンベア４５により搬送されるワークＷの搬送速度ｖが含まれる。
【００９１】
続いてロボット教示装置１０は、動き情報７２０に基づいて、コンベア４５上のワークＷに対する作業が行われるように動作プログラム７１０を生成する（S1010）。
【００９２】
例えばロボット教示装置１０は、コンベア４５により搬送されるセンサ３００によってワーク３００が上記基準位置Ｐ０で検出されたタイミングｔ０と、この基準位置Ｐ０からワークＷに対する所定の作業位置までの距離Ｌと、ワークＷの搬送速度ｖと、を元に、ｔ０＋Ｌ／ｖで特定される、ワークＷが上記作業位置に到達するタイミングｔ１で、アーム型ロボット４０によってワークＷに対する作業が行われるように、動作プログラム７１０を生成する。
【００９３】
あるいはロボット教示装置１０は、ワークＷが基準位置Ｐ０を通過してからの経過時間Ｔと、上記基準位置Ｐ０と、ワークＷの搬送速度ｖと、を元に、Ｐ０＋ｖ×Ｔで特定されるワークＷの現在位置Ｐ１で、アーム型ロボット４０によってワークＷに対する作業が行われるように、動作プログラム７１０を生成するようにしても良い。
【００９４】
このように、本実施形態に係るロボット教示装置１０の制御方法によれば、動的に位置が変化するワークＷに対する作業をアーム型ロボット４０に実行させるための動作プログラム７１０を生成することが可能となる。そしてワークＷの動きを特定するための動き情報７２０を入力するための設定画面６１を表示することにより、ワークＷの動きを柔軟に設定することもできる。
【００９５】
以上、本実施形態に係るロボット教示装置１０、ロボット教示装置１０の制御方法及びロボット教示プログラム６１０について説明したが、本実施形態によれば、コンベア４５を移動するワークＷの動きを特定するための動き情報７２０を入力するためのユーザインタフェースを備えているため、コンベア４５により搬送されるワークＷの動きを特定するための動き情報７２０の入力を柔軟に行うことができる。
【００９６】
また本実施形態に係るロボット教示装置１０が入力を受け付ける動き情報７１０には、コンベア４５上のワークＷを検知するセンサ３００が設けられる基準位置Ｐ０及びワークＷの搬送速度ｖが含まれるようにすると良い。
【００９７】
このような態様により、コンベア４５が一定速度でワークＷを搬送する場合のワークＷの位置を特定することが可能となる。
【００９８】
またここで、本実施形態に係るロボット教示装置１０は、センサ３００によってワークＷが基準位置Ｐ０で検出されたタイミングｔ０と、基準位置Ｐ０からワークＷに対する所定の作業位置Ｐ１までの距離Ｌと、ワークＷの搬送速度ｖと、を元に特定されるワークＷが作業位置Ｐ１に到達するタイミングｔ１（＝ｔ０＋Ｌ／ｖ）で、アーム型ロボット４０によるワークＷに対する作業が行われるように、動作プログラム７１０を生成すると良い。
【００９９】
このような態様によって、アーム型ロボット４０は、ワークＷがどのタイミングでコンベア４５上を搬送されてきても、同じ場所Ｐ１でワークＷに対する作業を行うことが可能となる。
【０１００】
あるいは、ロボット教示装置１０は、ワークＷが基準位置Ｐ０を通過してからの経過時間Ｔと、上記基準位置Ｐ０と、ワークＷの搬送速度ｖと、から特定されるワークＷの現在位置Ｐ１（＝Ｐ０＋ｖ×Ｔ）で、アーム型ロボット４０によるワークＷに対する作業が行われるように、動作プログラム７１０を生成するようにしても良い。
【０１０１】
このような態様によって、アーム型ロボット４０は、ワークＷがコンベア４５上の所定の作業位置にくるまで待機することなく、ワークＷに対する作業を行うことが可能となる。例えば複数のワークＷが不規則な間隔でコンベア４５上を搬送されてくる場合であっても、アーム型ロボット４０は、作業の準備ができ次第、次々にこれらのワークＷに対する作業を行うことが可能となる。
【０１０２】
またロボット教示装置１０の計算部８８は、オルゴールＯＧを移動する際のハンド５０の軌道を、移動前の位置にあるオルゴールＢ１のＴＣＰと、移動後の位置にあるオルゴールＡ１のＴＣＰと、に基づいて計算する。この際、ハンド５０のＴＣＰではなく、オルゴールのＴＣＰが用いられるため、ハンド５０に対するワークＷの位置の変化（例えば、ハンド５０の先端でワークＷを把持するか、ハンド５０の奥でワークＷを把持するか）等の影響が抑制される。この結果、アーム型ロボット４０は、計算部８８の計算結果を用いることにより、ワークＷを精度良く所望の位置に移動することが可能となる。
【０１０３】
また、表示制御部８９は、軌道に沿って動くハンド５０のアニメーションを表示装置２４に表示する。表示制御部８９は、アーム型ロボット４０全体のアニメーションを表示せず、ハンド５０のみのアニメーションを表示することから、ＣＰＵ２０への負荷は軽減される。
【０１０４】
また、本実施形態では、利用者は、ワークＷを移動させる際に、ワークＷの移動開始位置と、終了位置を、作業開始位置入力エリア７１と、作業終了位置入力エリア７２で設定できる。したがって、利用者は、複雑な座標等を指定する必要がないため、利用者は容易にアーム型ロボット４０を教示できる。
【０１０５】
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１０６】
例えば、上記実施形態では、所定速度ｖでワークＷを搬送するベルトコンベアや駆動ローラコンベアをコンベア４５として想定した場合を一例として示したが、例えば傾斜して配置されるフリーローラコンベアやスロープ上を速度を増しながら滑走してくるワークＷに対してアーム型ロボット４０が作業を行うような形態であっても良い。
【０１０７】
この場合は、ワークＷの加速度を動き情報７２０として入力できるようにすれば、アーム型ロボット４０が作業を行う際のワークＷの位置を特定することができる。
【０１０８】
また、ワークＷを置く（“place”）作業の際においても、本実施形態と同様の処理が実行される。例えば、ロボット教示装置１０は、ワークＷを置く場合においても、移動前の位置にあるオルゴールＡ１のＴＣＰと、移動後の位置にあるオルゴールＢ１のＴＣＰと、に基づいてハンド５０の軌道を計算する。
【０１０９】
また本実施形態では、ハンド５０がワークＷである「オルゴール」を「把持」することを、保持した状態として説明したが、これに限られない。例えば、ハンド５０の代わりにワークＷを真空吸着することが可能な吸着パッドを用いても良い。このような場合、ワークＷは、吸着パッドにより「保持」されることになる。
【０１１０】
また、ここでは、教示対象となるアーム型ロボット４０が６軸の多関節のロボットであることとしたが、例えば、３軸のロボットであっても良い。また、ロボット教示装置１０は、教示対象となるアーム型ロボット４０が６軸のロボットであっても、ワークＷを移動させる際に３軸の軌道のみを計算すれば良い場合、ＴＣＰ（教示点）の自由度を６から３に変更し、軌道を計算しても良い。このようにＴＣＰの自由度を低下させることにより、ＣＰＵ２０の負荷を軽減することができる
また図１では、ハンド５０がワークＷを保持している状態が示されているが、ハンド５０がワークＷを保持していない場合、表示制御部８０は、ワークＷを表示装置２４に表示しない。
【０１１１】
また、ロボットの動作プログラミングをする際、座標値を扱うのは煩雑である。３次元ＣＡＤからは座標値も抽出することも可能であるが、煩雑であることに変わりない。また、この煩雑さは、機械技術者、ソフトウェア技術者などの異なる技術者が必要となる。そのためロボットを利用したオートメーションシステムを構築するために、膨大な時間を要する。本実施形態は、ロボットのオートメーションシステムを短時間で行うこともできる。
【符号の説明】
【０１１２】
１０  ロボット教示装置
２０  ＣＰＵ
２１  メモリ
２２  記憶装置
２３  入力装置
２３  表示装置
２４  通信装置
３０  画面
４０  アーム型ロボット
４５  コンベア
５０  ハンド
５１  アーム
６０  ロボット設定画面
６１  動き情報設定画面
７０  関数名指定エリア
７１  作業開始位置入力エリア
７２  作業終了位置入力エリア
７３  名前指定エリア
７５  動き情報入力エリア
７６  動き情報入力エリア
７７  動き情報入力エリア
８０  動き情報入力受付部
８１  動作プログラム生成部
８２  第１取得部
８３  第２取得部
８４  計算部
８５  表示制御部
３００  センサ
６００  プログラム
６１０  ロボット教示プログラム
６２０  ３次元ＣＡＤプログラム
７００  データ
７１０  動作プログラム
７２０  動き情報
８００  記録媒体
ＯＧ  オルゴール
Ａ１  オルゴール
Ｂ１  オルゴール
Ｗ    ワーク
Ｄ    ３次元ＣＡＤデータ
Ｄａ  ３次元ＣＡＤデータ
Ｄｂ  ３次元ＣＡＤデータ
Ｄｃ  ３次元ＣＡＤデータ
Ｄｄ  ３次元ＣＡＤデータ
【図１】
2020097060.tif 000003
【図２】
2020097060.tif 000004
【図３】
2020097060.tif 000005
【図４】
2020097060.tif 000006
【図５】
2020097060.tif 000007
【図６】
2020097060.tif 000008
【図７】
2020097060.tif 000009
【図８】
2020097060.tif 000010
【図９】
2020097060.tif 000011
【図１０】
2020097060.tif 000012
【図１１】
2020097060.tif 000013