(57)【要約】【課題】オフラインロボットプログラミング装置で作業者の修正作業を排除する。【解決手段】ロボットプログラミング装置（１０）は、ワーク（１４）の三次元モデル上で加工線（４１）を指定する加工線指定部（２１）と、加工線に基づいて生成される教示点の動作形式等を指定する動作形式指定部（２２）と、加工線および動作形式等に基づいてロボット（１２）のプログラムを生成するプログラム生成部（２３）と、ワークに直接接触するツールの一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部（２４）と、教示点におけるロボット等とワーク等との干渉を検出する干渉検出部（２５）と、干渉時にロボットの位置からツール先端点を並進移動することにより、ロボット等とワーク等とが干渉しない非干渉位置を検索する非干渉位置検索部（２６）と、検索結果に基づいて教示点の位置を修正する修正部（２７）とを含む。【選択図】図１
2013099815.tif 000002
【特許請求の範囲】
【請求項１】
ツールを搭載したロボット、ワーク、及び少なくとも一つの周辺機器の三次元モデルを画面に配置して同時に表示し、前記ツールまたは前記ロボットが前記ワークまたは前記周辺機器と干渉を回避しつつワークの加工作業を行うためのロボット動作プログラムの教示を行うロボットプログラミング装置において、
ワークの三次元モデル上で加工線を指定する加工線指定部と、
該加工線指定部により指定された加工線に基づいて生成される教示点の動作形式、速度、位置、及び姿勢を指定する動作形式指定部と、
前記加工線指定部により指定された加工線と、前記動作形式指定部により指定された動作形式、速度、位置、及び姿勢とに基づいて前記ロボットの動作プログラムを生成するプログラム生成部と、
前記ツールが前記ワークに直接接触して加工する場合または前記ツールが前記ワークに接近して加工する場合に、前記ワークに直接接触するかまたは前記ワークに接近する、前記ツールの三次元モデルにおける一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部と、
前記動作プログラムの前記教示点における前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、
前記干渉検出部が干渉を検出した場合には、干渉時における前記ロボットの位置からの前記ロボットの前記ツールのツール先端点の並進移動、及び前記ツール先端点を中心とする前記ロボットの回転運動のうちの少なくとも一方を行うことにより、前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器とが干渉しない非干渉位置を検索する非干渉位置検索部と、
該非干渉位置検索部による検索結果に基づいて前記教示点の位置を修正する修正部と、を具備するロボットプログラミング装置。
【請求項２】
前記ワークは周辺機器としての他のロボットに把持されている請求項１に記載のロボットプログラミング装置。
【請求項３】
前記ワークは周辺機器としてのポジショナに把持されている請求項１に記載のロボットプログラミング装置。
【請求項４】
ツールを搭載したロボット、ワーク、及び少なくとも一つの周辺機器の三次元モデルを画面に配置して同時に表示し、前記ツールまたは前記ロボットが前記ワークまたは前記周辺機器と干渉を回避しつつワークの加工作業を行うためのロボット動作プログラムの教示を行うロボットプログラミング装置において、
前記ロボットを三次元空間上の指定位置に移動させる移動部と、
前記ツールが前記ワークに直接接触して加工する場合または前記ツールが前記ワークに接近して加工する場合に、前記ワークに直接接触するかまたは前記ワークに接近する、前記ツールの三次元モデルにおける一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部と、
前記指定位置における前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、
前記干渉検出部が干渉を検出した場合には、干渉時における前記ロボットの位置からの前記ロボットの前記ツールのツール先端点の並進移動、及び前記ツール先端点を中心とする前記ロボットの回転運動のうちの少なくとも一方を行うことにより、前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器とが干渉しない非干渉位置を検索する非干渉位置検索部と、
該非干渉位置検索部による検索結果に基づいて前記指定位置を修正する修正部と、を具備するロボットプログラミング装置。
【請求項５】
前記並進運動の並進範囲および前記回転運動の回転範囲を指定する範囲指定部を含む、請求項１から４のいずれか一項に記載のロボットプログラミング装置。
【請求項６】
所定の方向における前記並進移動および前記回転運動による検索を無効にする無効指定部を含む、請求項１から５のいずれか一項に記載のロボットプログラミング装置。
【請求項７】
所定の方向における前記並進移動および回転運動による検索を優先的に行うように検索順序を指定する検索順序指定部を含む、請求項１から６のいずれか一項に記載のロボットプログラミング装置。
【請求項８】
前記非干渉位置検索部により複数の非干渉位置が検出された場合に、最初に見つかった非干渉位置を検索結果として設定するか、または、前記複数の非干渉位置のそれぞれと対応する前記ロボットの位置との間の差が最も小さい非干渉位置を検索結果として設定する検索結果設定部を含む請求項１から７のいずれか一項に記載のロボットプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ツールを搭載したロボット、ワーク、及び少なくとも一つの周辺機器の三次元モデルを画面に配置して同時に表示し、前記ツールまたは前記ロボットが前記ワークまたは前記周辺機器と干渉を回避しつつワークの加工作業を行うためのロボット動作プログラムの教示を行う、オフラインで動作するロボットプログラミング装置に関する。
【背景技術】
【０００２】
近年では、ロボットの教示動作のためにオプラインプログラミング方式を採用するケースが増えている。そのような方式においては、ワークが加工されるべき加工線をワークのＣＡＤモデル上で指定し、ツール姿勢や動作速度などの条件を指定して教示点を生成する。その後、作業者が、各教示点におけるロボットまたはツール非加工部位とワークまたは周辺機器との干渉を確認しながら修正していた。
【０００３】
また、三次元空間上のロボットを或る位置まで移動させた際にロボットまたはツール非加工部位とワークまたは周辺機器との干渉が検出された場合には、作業者が、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しないようロボットの位置を微調整していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３６３９８７３号
【特許文献２】特許第３１９０７３７号
【特許文献３】特許第３７１５５３７号
【特許文献４】特許第２９１０４７１号
【特許文献５】特許第２７５２７８４号
【特許文献６】特開平４−１６９９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ワークのＣＡＤモデル上において教示点を生成する際には、各教示点におけるロボットまたはツール非加工部位とワークまたは周辺機器との干渉は考慮されていない。このため、教示点の生成後に作業者が各教示点に関して修正する必要があるので、修正作業に多大な時間が必要とされる。
【０００６】
また、三次元空間上でロボットを或る位置まで移動させて干渉が検出された場合にも、作業者がロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しないようにロボットの位置を微調整する必要がある。このため、三次元空間上での調整作業にも多大な時間が必要とされる。
【０００７】
本発明はこのような事情に鑑みてなされたものであり、ワークのＣＡＤモデル上において教示点を生成する場合および三次元空間上でロボットを或る位置まで移動させる場合であっても、作業者が干渉を修正する修正作業を排除できるロボットオフラインプログラミング装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために１番目の発明によれば、ツールを搭載したロボット、ワーク、及び少なくとも一つの周辺機器の三次元モデルを画面に配置して同時に表示し、前記ツールまたは前記ロボットが前記ワークまたは前記周辺機器と干渉を回避しつつワークの加工作業を行うためのロボット動作プログラムの教示を行うロボットプログラミング装置において、ワークの三次元モデル上で加工線を指定する加工線指定部と、該加工線指定部により指定された加工線に基づいて生成される教示点の動作形式、速度、位置、及び姿勢を指定する動作形式指定部と、前記加工線指定部により指定された加工線と、前記動作形式指定部により指定された動作形式、速度、位置、及び姿勢とに基づいて前記ロボットの動作プログラムを生成するプログラム生成部と、前記ツールが前記ワークに直接接触して加工する場合または前記ツールが前記ワークに接近して加工する場合に、前記ワークに直接接触するかまたは前記ワークに接近する、前記ツールの三次元モデルにおける一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部と、前記動作プログラムの前記教示点における前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、前記干渉検出部が干渉を検出した場合には、干渉時における前記ロボットの位置からの前記ロボットの前記ツールのツール先端点の並進移動、及び前記ツール先端点を中心とする前記ロボットの回転運動のうちの少なくとも一方を行うことにより、前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器とが干渉しない非干渉位置を検索する非干渉位置検索部と、該非干渉位置検索部による検索結果に基づいて前記教示点の位置を修正する修正部と、を具備するロボットプログラミング装置が提供される。
２番目の発明によれば、１番目の発明において、前記ワークは周辺機器としての他のロボットに把持されている。
３番目の発明によれば、１番目の発明において、前記ワークは周辺機器としてのポジショナに把持されている。
４番目の発明によれば、ツールを搭載したロボット、ワーク、及び少なくとも一つの周辺機器の三次元モデルを画面に配置して同時に表示し、前記ツールまたは前記ロボットが前記ワークまたは前記周辺機器と干渉を回避しつつワークの加工作業を行うためのロボット動作プログラムの教示を行うロボットプログラミング装置において、前記ロボットを三次元空間上の指定位置に移動させる移動部と、前記ツールが前記ワークに直接接触して加工する場合または前記ツールが前記ワークに接近して加工する場合に、前記ワークに直接接触するかまたは前記ワークに接近する、前記ツールの三次元モデルにおける一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部と、前記指定位置における前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、前記干渉検出部が干渉を検出した場合には、干渉時における前記ロボットの位置からの前記ロボットの前記ツールのツール先端点の並進移動、及び前記ツール先端点を中心とする前記ロボットの回転運動のうちの少なくとも一方を行うことにより、前記ロボットまたは前記ツール非加工部位と前記ワークまたは前記周辺機器とが干渉しない非干渉位置を検索する非干渉位置検索部と、該非干渉位置検索部による検索結果に基づいて前記指定位置を修正する修正部と、を具備するロボットプログラミング装置が提供される。
５番目の発明によれば、１番目から４番目のいずれかの発明において、前記並進運動の並進範囲および前記回転運動の回転範囲を指定する範囲指定部を含む。
６番目の発明によれば、１番目から５番目のいずれかの発明において、所定の方向における前記並進移動および前記回転運動による検索を無効にする無効指定部を含む。
７番目の発明によれば、１番目から６番目のいずれかの発明において、所定の方向における前記並進移動および回転運動による検索を優先的に行うように検索順序を指定する検索順序指定部を含む。
８番目の発明によれば、１番目から７番目のいずれかの発明において、前記非干渉位置検索部により複数の非干渉位置が検出された場合に、最初に見つかった非干渉位置を検索結果として設定するか、または、前記複数の非干渉位置のそれぞれと対応する前記ロボットの位置との間の差が最も小さい非干渉位置を検索結果として設定する検索結果設定部を含む。
【発明の効果】
【０００９】
１番目の発明においては、指定された加工線に基づいて生成される動作プログラムの各教示点においてロボットまたはツール非加工部位とワークまたは周辺機器との干渉を検出し、干渉する場合には、非干渉位置を検索して教示点の位置を自動で修正している。従って、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉することのないプログラムを自動的に生成できる。その結果、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減することができる。
また、ツールがワークに直接接触して加工する場合またはツールがワークに接近して加工する場合に、ツール非加工部位を干渉対象としている。従って、バリ取り作業のようにツールがワークと干渉する部位を必ず備える場合であっても、非干渉位置を適切に検索することができる。なお、ツール非加工部位を干渉対象とする代わりに、ツール非加工部位以外のツール加工部位を干渉の検出対象から除外するようにしてもよい。
２番目の発明においては、ワークが周辺機器としての他のロボットに把持されている場合であっても、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉することのないプログラムを自動的に生成できる。その結果、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減することができる。
３番目の発明においては、ワークが周辺機器としてのポジショナに把持されている場合であっても、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉することのないプログラムを自動的に生成できる。その結果、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減することができる。
４番目の発明においては、ロボットを三次元空間上の指定位置に移動させる際に、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉する場合には、非干渉位置を検索して指定位置を自動で修正している。従って、教示作業において、非干渉位置を検索するために必要としていた時間を大幅に削減することができる。
また、ツールがワークに直接接触して加工する場合またはツールがワークに接近して加工する場合に、ツール非加工部位を干渉対象としている。従って、バリ取り作業のようにツールがワークと干渉する部位を必ず備える場合であっても、非干渉位置を適切に検索することができる。なお、ツール非加工部位を干渉対象とする代わりに、ツール非加工部位以外のツール加工部位を干渉の検出対象から除外するようにしてもよい。
５番目の発明においては、並進運動の並進範囲および回転運動の回転範囲を、バリ取りやアーク溶接などアプリケーションに応じて詳細に指定できる。このため、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しない位置を適切に検索できる。
６番目の発明においては、バリ取りやアーク溶接などアプリケーションに応じて定まる所定の方向に姿勢を変更することが望ましくない場合に、所定の方向における並進移動および回転運動を無効にできる。このため、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しない位置を適切に検索できる。
７番目の発明においては、バリ取りやアーク溶接などアプリケーションに応じて定まる所定の方向から優先的に検索することが望ましい場合に、所定の方向における並進移動および回転運動による検索を所望の検索順序で行うことができる。このため、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しない位置を適切に検索できる。
８番目の発明においては、最初に見つかった非干渉位置を検索結果として設定するか、または、ロボットの位置との間の差が最も小さい非干渉位置を検索結果として設定している。従って、バリ取りやアーク溶接などアプリケーションに応じて非干渉位置の最適な検索条件が異なる場合であっても、非干渉位置の検索結果の採用方法を切替え、それにより、ロボットまたはツール非加工部位とワークまたは周辺機器とが干渉しない適切な位置を検索できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第一の実施形態に基づくロボットプログラミング装置の概念図である。
【図２】図１に示されるロボットプログラミング装置の動作を示すフローチャートである。
【図３】ワークの三次元モデルを示す図である。
【図４】（ａ）ツールの三次元モデルを示す図である。（ｂ）ツールの三次元モデルを示す他の図である。
【図５】第一の実施形態において干渉チェックを説明するための概念図である。
【図６】（ａ）〜（ｅ）ツール、ワークおよび周辺機器の三次元モデルを示す図である。
【図７】本発明の他の実施形態に基づくロボットプログラミング装置の概念図である。
【図８】他の実施形態において干渉チェックを説明するための概念図である。
【図９】本発明のさらに他の実施形態に基づくロボットプログラミング装置の概念図である。
【図１０】さらに他の実施形態において干渉チェックを説明するための概念図である。
【図１１】本発明の第二の実施形態に基づくロボットプログラミング装置の概念図である。
【図１２】図１１に示されるロボットプログラミング装置の動作を示すフローチャートである。
【図１３】第二の実施形態において干渉チェックを説明するための概念図である。
【図１４】（ａ）〜（ｄ）ツールおよび周辺機器の三次元モデルを示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は本発明の第一の実施形態に基づくロボットプログラミング装置の概念図である。ロボットプログラミング装置１０は、表示部１１、例えば液晶ディスプレイ、ＣＲＴと、表示部１１に接続された制御装置２０、例えばデジタルコンピュータとを主に含んでいる。
【００１２】
図１において、表示部１１には、ロボット１２、例えば多関節ロボットの三次元モデル、およびロボット１２の先端に取付けられたツール１３の三次元モデルが表示されている。ツール１３は、ロボット１２によって行われる作業、例えばバリ取り作業、アーク溶接などに応じて異なるものとする。
【００１３】
さらに、表示部１１には、ツール１３により加工されるべきワーク１４の三次元モデルおよび周辺機器１５Ａ、１５Ｂの三次元モデルも表示されている。なお、以下においては、ロボット１２の三次元モデルを単にロボット１２と呼ぶ場合があり、他の部材および他の部品についても同様であるものとする。
【００１４】
図１に示されるように、ロボットプログラミング装置１０の制御装置２０は、ワーク１４の三次元モデル上で加工線を指定する加工線指定部２１と、加工線指定部２１により指定された加工線に基づいて生成される教示点の動作形式、速度、位置、及び姿勢を指定する動作形式指定部２２と、加工線指定部２１により指定された加工線と動作形式指定部２２により指定された動作形式、速度、位置、及び姿勢とに基づいてロボット１２の動作プログラムを生成するプログラム生成部２３としての役目を果たす。
【００１５】
さらに、制御装置２０は、ツール１３がワーク１４に直接接触して加工する場合またはツール１３がワーク１４に接近して加工する場合に、ワーク１４に直接接触するかまたはワーク１４に接近する、ツール１３の三次元モデルにおける一部分以外のツール非加工部位を干渉対象として指定する干渉対象指定部２４としての役目を果たす。
【００１６】
さらに、制御装置２０は、動作プログラムの教示点におけるロボット１２またはツール非加工部位とワーク１４または周辺機器１５Ａ、１５Ｂとの干渉を検出する干渉検出部２５としての役目を果たす。さらに、制御装置２０は、干渉検出部２５が干渉を検出した場合には、干渉時におけるロボット１２の位置からのロボット１２のツール１３のツール先端点１３ｃの並進移動、及びツール先端点１３ｃを中心とするロボット１２の回転運動のうちの少なくとも一方を行うことにより、ロボット１２またはツール非加工部位とワーク１４または周辺機器１５Ａ、１５Ｂとが干渉しない非干渉位置を検索する非干渉位置検索部２６としての役目を果たす。さらに、制御装置２０は、非干渉位置検索部２６による検索結果に基づいて教示点の位置および指定位置を修正する修正部２７としての役目を果たす。
【００１７】
また、制御装置２０は、ロボット１２を三次元空間上の指定位置に移動させる移動部２８と、しての役目も果たす。そして、制御装置２０は、並進運動の並進範囲および回転運動の回転範囲を指定する範囲指定部２９と、所定の方向における並進移動および回転運動による検索を無効にする無効指定部３０と、所定の方向における並進移動および回転運動による検索を優先的に行うように検索順序を指定する検索順序指定部３１としての役目を果たす。
【００１８】
さらに、制御装置２０は、非干渉位置検索部２６により複数の非干渉位置が検出された場合に、最初に見つかった非干渉位置を検索結果として設定するか、または、複数の非干渉位置のそれぞれと対応するロボット１２の位置との間の差が最も小さい非干渉位置を検索結果として設定する検索結果設定部３２としての役目も果たす。なお、制御装置２０は、各種のデータを記憶する記憶部（図示しない）も含んでいるものとする。
【００１９】
図２は図１に示されるロボットプログラミング装置の動作を示すフローチャートである。以下、図２を参照しつつ、ロボットプログラミング装置１０がオフラインでロボット１２の動作プログラムを生成することについて説明する。
【００２０】
図２のステップＳ１１においては、ロボット１２、ツール１３、ワーク１４および周辺機器１５Ａ、１５Ｂの三次元モデルを表示部１１上に表示する。これら部品の位置関係は予め把握されており、表示部１１上においては、予め把握された位置関係でロボット１２等の三次元モデルが表示されるものとする。
【００２１】
次いで、ステップＳ１２において、加工線指定部２１がワーク１４の三次元モデル上で加工線を指定する。加工線は、ワーク１４がツール１３により加工されるべき線である。ワークの三次元モデルを示す図３においては、加工線指定部２１によって、ワーク１４の頂面における縁部の一部分が加工線４１として指定されている。
【００２２】
さらに、ステップＳ１３においては、動作形式指定部２２が加工線４１に基づいてロボットの教示点Ａを生成して、各教示点Ａの動作形式、速度、位置、及び姿勢を指定する（図３を参照されたい）。動作形式は、例えば各軸移動または直線移動である。後述する図５に示されるように、教示点Ａは加工線４１上に位置するものとする。
【００２３】
そして、プログラム生成部２３は、加工線指定部２１により指定された加工線４１と、動作形式指定部２２により指定された教示点Ａの動作形式、速度、位置、及び姿勢とに基づいて、公知の手法でロボット１２の動作プログラムを作成する。
【００２４】
ここで、図４（ａ）は、ツールの三次元モデルを示す図である。ツール１３がバリ取り作業に使用される場合には、図４（ａ）に示されるように、ツール１３はワーク１４に直接接触するツール加工部位１３ａと、ワーク１４に直接接触しないツール非加工部位１３ｂとを含んでいる。図４（ａ）においては、干渉対象指定部２４が、ツール加工部位１３ａを後述する干渉チェックにおける干渉対象から除外するように設定する。あるいは、図４（ｂ）に示されるように、干渉対象指定部２４が、ツール非加工部位１３ｂを干渉チェックにおける干渉対象として指定してもよい。なお、ツール１３がアーク溶接作業で使用される場合には、干渉対象指定部２４によって、ツール１３全体がツール非加工部位として指定されるものとする。
【００２５】
次いで、図２のステップＳ１４においては、干渉検出部２５が各教示点Ａにおいてロボット１２またはツール非加工部位１３ｂと、ワーク１４または周辺機器１５Ａ、１５Ｂとが干渉するか否かをチェックする。図５は第一の実施形態において干渉チェックを説明するための概念図である。図５においては、説明を簡単にする目的で、一つの周辺機器１５Ｂは図示を省略している。
【００２６】
図５においては、ロボット１２およびツール１３の三次元モデルがそれらの元位置から一つの教示点Ａに対応する位置まで表示部１１上で移動される。当然のことながら、ワーク１４および周辺機器１５Ａの三次元モデルの位置は変化しない。そのような状態で、干渉検出部２５はロボット１２またはツール非加工部位１３ｂと、ワーク１４または周辺機器１５Ａ、１５Ｂとが干渉するかをチェックする。このようなチェック動作は、各教示点Ａにおいて行われる。そして、干渉検出部２５が干渉を検出しなかった場合には、ステップＳ１７に進んで、修正無しで動作プログラムを完成させる。
【００２７】
図６（ａ）〜図６（ｅ）は、ツール、ワークおよび周辺機器の三次元モデルを示す図である。図６（ａ）においては、ツール１３のツール加工部位１３ａのツール先端点１３ｃが、ワーク１４の加工線４１における教示点Ａに配置されている。図６（ａ）からわかるように、この状態においては、ツール１３のツール非加工部位１３ｂが周辺機器１５Ａに干渉している。
【００２８】
干渉検出部２５がこのような干渉を検出した場合には、図２のステップＳ１５に進む。ステップＳ１５においては、非干渉位置検索部２６がロボット１２またはツール非加工部位とワーク１４または周辺機器１５Ａ、１５Ｂとが干渉しない非干渉位置を検索する。図６（ｂ）に示されるように、非干渉位置検索部２６は、所定の検索範囲ＳＡ内において、ツール１３をそのツール先端点１３ｃ回りに回転させる。図６（ｂ）においてはツール１３を時計回りに回転させている。ただし、所定の検索範囲ＳＡ内であれば、ツール１３を反時計回りに回転させてもよい。
【００２９】
そして、図６（ｃ）に示される位置までツール１３を回転させると、ツール１３は周辺機器１５Ａに干渉しないようになる。非干渉位置検索部２６は、このような非干渉位置を検索し、非干渉位置におけるツール１３をツール１３’として表示部１１に表示する。そして、修正部２７によって、位置や姿勢などを含む教示点Ａの情報が、検索された非干渉位置に対応するように修正される（ステップＳ１６）。
【００３０】
非干渉位置検索部２６はツール先端点１３ｃ回りの回転運動以外の運動、例えば並進移動を通じて、非干渉位置を検索してもよい。図６（ｄ）においては、所定の検索範囲ＳＢ内においてツール１３をワーク１４の加工線４１に沿って右方向に並進移動させている。そして、図６（ｅ）に示される位置までツール１３を並進移動させると、ツール１３は周辺機器１５Ａに干渉しないようになる。このような位置を非干渉位置として、ツール１３’を表示して、修正部２７が教示点Ａの情報を同様に修正してもよい（ステップＳ１６）。
【００３１】
なお、ツール１３を移動させる際には、ロボット１２がツール１３の運動に従って移動される場合がある。従って、非干渉位置は、ツール１３およびロボット１２が周辺機器１５Ａおよびワーク１４に干渉しないように検索されるものとする。
【００３２】
再び図２を参照すると、ステップＳ１７においては、プログラム生成部２３は修正された教示点Ａに基づいて、ロボット１２の動作プログラムを再作成する。本発明においては、加工線４１に基づいて生成される全ての教示点Ａに関し、ロボット１２またはツール非加工部位１３ｂとワーク１４または周辺機器１５Ａ、１５Ｂとが干渉するか否かがチェックされ、干渉する場合には、非干渉位置が検索される。そして、非干渉位置に対応する教示点Ａの情報を更新し、更新された教示点Ａに基づいてロボット１２の動作プログラムが再作成される。
【００３３】
このようにして、本発明の第一の実施形態においては、ロボット１２またはツール非加工部位１３ｂとワーク１４または周辺機器１５Ａ、１５Ｂとが干渉することのない動作プログラムを自動的に生成することができる。その結果、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減できるのが分かるであろう。
【００３４】
また、本発明の第一の実施形態においては、干渉対象指定部２４が、ツール非加工部位１３ｂを干渉対象として指定するようにしている。例えばツール１３がバリ取り作業を行う場合には、ツール１３はツール加工部位１３ａを必ず備えることになる。そのような場合であっても、本発明では、非干渉位置の検索が可能となっている。
【００３５】
ところで、図７は本発明の他の実施形態に基づくロボットプログラミング装置の概念図であり、図８は他の実施形態において干渉チェックを説明するための概念図である。図７に示されるように、他の実施形態においては、ツール１３はロボット１２ａの先端に取付けられている。そして、ワーク１４は、周辺機器としての他のロボット１２ｂの先端に取付けられたベース１６上に載置されている。
【００３６】
図７に示される他の実施形態においても、図２に示したのと概ね同様にロボット１２の動作プログラムが生成される。ただし、図８から分かるように、他の実施形態においては、ステップＳ１４において、干渉検出部２５は、ロボット１２ａまたはツール非加工部位１３ｂと、ロボット１２ｂ、ベース１６、ワーク１４または周辺機器１５Ａとが干渉するか否かを検出する。そして、非干渉位置検索部２６は、ロボット１２ａまたはツール非加工部位１３ｂと、ロボット１２ｂ、ベース１６、ワーク１４または周辺機器１５Ａとが干渉しない非干渉位置を検索し、非干渉位置に基づいて教示点Ａの情報が更新されるものとする。
【００３７】
従って、図７に示される他の実施形態においては、ワーク１４が周辺機器としての他のロボット１２ｂに把持されている場合であっても、ロボット１２ａまたはツール非加工部位１３ｂと、ロボット１２ｂ、ベース１６、ワーク１４または周辺機器１５Ａとが干渉することのないプログラムを自動的に生成することができる。その結果、図７に示される他の実施形態においても、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減できるのが分かるであろう。
【００３８】
図９は本発明のさらに他の実施形態に基づくロボットプログラミング装置の概念図であり、図１０はさらに他の実施形態において干渉チェックを説明するための概念図である。図９に示されるように、ワーク１４は、周辺機器としてのポジショナ１８の先端に取付けられたベース１６上に載置されている。ポジショナ１８はベース１６をジョイント１９回りに回転させて所望の位置で固定できる装置である。
【００３９】
図９に示されるさらに他の実施形態においても、図２に示したのと概ね同様にロボット１２の動作プログラムが生成される。ただし、図１０から分かるように、さらに他の実施形態においては、ステップＳ１４において、干渉検出部２５は、ロボット１２またはツール非加工部位１３ｂと、ポジショナ１８、ベース１６、ワーク１４または周辺機器１５Ａとが干渉するか否かを検出する。そして、非干渉位置検索部２６は、ロボット１２またはツール非加工部位１３ｂと、ポジショナ１８、ベース１６、ワーク１４または周辺機器１５Ａとが干渉しない非干渉位置を検索し、非干渉位置に基づいて教示点Ａの情報が更新されるものとする。
【００４０】
従って、図９に示されるさらに他の実施形態においては、ワーク１４が周辺機器としてのポジショナ１８に担持されている場合であっても、ロボット１２またはツール非加工部位１３ｂと、ポジショナ１８、ベース１６、ワーク１４または周辺機器１５Ａとが干渉することのないプログラムを自動的に生成することができる。その結果、図９に示されるさらに他の実施形態においても、従来ではプログラムの確認作業や教示修正に必要としていた時間を大幅に削減できるのが分かるであろう。
【００４１】
ところで、図１１は本発明の第二の実施形態に基づくロボットプログラミング装置の概念図であり、図１と概ね同様である。そして、図１２は、第二の実施形態におけるロボットプログラミング装置の動作を示すフローチャートである。さらに、図１３は、第二の実施形態において干渉チェックを説明するための概念図である。
【００４２】
図１２に示されるように、第二の実施形態においても、はじめにステップＳ２１にてロボット１２、ツール１３、ワーク１４および周辺機器１５Ａの三次元モデルを表示部１１上に表示する。
【００４３】
次いで、ステップＳ２２においては、制御装置２０の移動部２８（図１を参照されたい）がロボット１２の三次元モデルを表示部１１上において任意の指定位置まで移動させる。指定位置は三次元空間内のワーク１４に接触していない位置に在るものとする。図１３から分かるように、ステップＳ２２においては、湾曲矢印で示されるようにロボット１２を移動させている。
【００４４】
ここで、図４（ａ）および図４（ｂ）を参照して前述したように、干渉対象指定部２４が、ツール１３のツール加工部位１３ａを干渉チェックにおける干渉対象から除外するように設定する。あるいは、図４（ｂ）に示されるように、干渉対象指定部２４が、ツール非加工部位１３ｂを干渉チェックにおける干渉対象として指定してもよい。
【００４５】
そして、ステップＳ２３においては、前述したように干渉検出部２５が、ロボット１２またはツール非加工部位１３ｂと、ワーク１４または周辺機器１５Ａとが干渉するか否かをチェックする（図１３を参照されたい）。そして、干渉検出部２５が干渉を検出した場合にはステップＳ２４に進む。
【００４６】
次いで、ステップＳ２４においては、非干渉位置検索部２６が、ロボット１２またはツール非加工部位１３ｂと、ワーク１４または周辺機器１５Ａとが干渉しない非干渉位置を前述したのと同様に検索する。図１４（ａ）〜図１４（ｄ）はツールおよび周辺機器の三次元モデルを示す図であり、実線で示されるようにツール１３は周辺機器１５Ａに干渉している。以下、これら図面を参照して非干渉位置検索部２６の動作について簡潔に説明する。
【００４７】
図１４（ａ）においては、非干渉位置検索部２６は、所定の検索範囲ＳＡ内において、ツール１３をそのツール先端点１３ｃ回りに回転させる。そして、図１４（ｂ）に示される位置までツール１３を回転させると、ツール１３は周辺機器１５Ａに干渉しないようになる。非干渉位置検索部２６は、このような非干渉位置を検索し、非干渉位置におけるツール１３をツール１３’として表示部１１に表示する。そして、修正部２７は、指定位置が非干渉位置に対応するように修正する。
【００４８】
また、非干渉位置検索部２６はツール１３を並進移動させることにより、非干渉位置を検索してもよい。図１４（ｃ）においては、所定の検索範囲ＳＢ内においてツール１３をワーク１４の加工線４１に沿って右方向に並進移動させている。そして、図１４（ｄ）に示される位置までツール１３を並進移動させると、ツール１３は周辺機器１５Ａに干渉しないようになる。このような位置を非干渉位置として、ツール１３’を表示して、修正部２７は指定位置が非干渉位置に対応するように更新する。最終的に図１２に示されるステップＳ２５においては、新たな指定位置である非干渉位置にロボット１２およびツール１３を表示部１１上で移動させて処理を終了する。
【００４９】
このようにして、本発明の第二の実施形態においては、ロボット１２を三次元空間上の指定位置に移動させる際に、ロボット１２またはツール非加工部位１３ｂとワーク１４または周辺機器１５Ａとが干渉する場合には、非干渉位置を検索して指定位置を自動で修正している。従って、教示作業において、非干渉位置を検索するために必要としていた時間を大幅に削減できるのが分かるであろう。
【００５０】
また、本発明の第二の実施形態においても、干渉対象指定部２４が、ツール非加工部位１３ｂを干渉対象として指定するようにしている。例えばツール１３がバリ取り作業を行う場合には、ツール１３はツール加工部位１３ａを必ず備えることになる。そのような場合であっても、本発明では、非干渉位置の検索が可能となっている。
【００５１】
ところで、図１に示される制御装置２０の範囲指定部２９は検索範囲ＳＡ、ＳＢを指定することができる。例えば、アーク溶接では、ツール１３の移動範囲は小さくするのが好ましく、バリ取り作業では、検索範囲を大きく設定するのが好ましい。
【００５２】
さらに、バリ取りやアーク溶接などアプリケーションによっては、特定の方向にツール１３等を移動させるのが好ましくない場合がある。そのような場合には、図１に示される無効指定部３０によって、特定の方向におけるツール１３等の回転運動および並進移動を無効にするように設定するのが好ましい。
【００５３】
また、図１に示される検索順序指定部３１は、所定の方向におけるツール１３等の並進移動および回転運動による検索を優先的に行うように検索順序を指定することができる。この検索順序は、バリ取りやアーク溶接などアプリケーションに応じて定まるものとする。
【００５４】
また、図１に示される非干渉位置検索部２６によって複数の非干渉位置が検索範囲ＳＡ、ＳＢ内に検出される場合がある。そのような場合には、検索結果設定部３２によって、一つの非干渉位置のみが検索結果として採用されるようにするのが好ましい。
【００５５】
非干渉位置検索部２６は、例えば無効指定部３０により無効とされた方向以外の方向で且つ、検索順序指定部３１により指定された順序で、非干渉位置を検索する。そして、検索結果設定部３２は、最初に見つかった非干渉位置を検索結果として設定できる。この場合には、一つの非干渉位置が検出されると、非干渉位置の検索処理は停止する。従って、例えば他の方向についての非干渉位置の検索が終了していない場合であっても、他の方向についての検索は省略される。
【００５６】
あるいは、検索結果設定部３２は、複数の非干渉位置のそれぞれと対応するロボット１２の位置との間の差を算出する。そして、検索結果設定部３２は、そのような差が最も小さい非干渉位置を検索結果として採用してもよい。
【００５７】
このように、本発明では、範囲指定部２９、無効指定部３０、検索順序指定部３１および検索結果設定部３２を備えているので、バリ取りやアーク溶接などアプリケーションに応じた最適な検索内容を詳細に設定でき、アプリケーションに応じて非干渉位置を適切に検索できるのが分かるであろう。
【符号の説明】
【００５８】
１０    ロボットプログラミング装置
１１    表示部
１２、１２ａ、１２ｂ    ロボット
１３    ツール
１３ａ    ツール加工部位
１３ｂ    ツール非加工部位
１３ｃ    ツール先端点
１４    ワーク
１５Ａ、１５Ｂ    周辺機器
１６    ベース
１８    ポジショナ
２０    制御装置
２１    加工線指定部
２２    動作形式指定部
２３    プログラム生成部
２４    干渉対象指定部
２５    干渉検出部
２６    非干渉位置検索部
２７    修正部
２８    移動部
２９    範囲指定部
３０    無効指定部
３１    検索順序指定部
３２    検索結果設定部
【図１】
2013099815.tif 000003
【図２】
2013099815.tif 000004
【図３】
2013099815.tif 000005
【図４】
2013099815.tif 000006
【図５】
2013099815.tif 000007
【図６】
2013099815.tif 000008
【図７】
2013099815.tif 000009
【図８】
2013099815.tif 000010
【図９】
2013099815.tif 000011
【図１０】
2013099815.tif 000012
【図１１】
2013099815.tif 000013
【図１２】
2013099815.tif 000014
【図１３】
2013099815.tif 000015
【図１４】
2013099815.tif 000016