(57)【特許請求の範囲】
【請求項１】
第１ロボット及び第２ロボットの作業時におけるサンプリング時間ごとの姿勢を求め、前記第１ロボットの各姿勢と前記第２ロボットの各姿勢とを総当たりに比較し、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出する干渉検出方法において、
基準のサンプリング時間よりも長く設定した区切り時間で用いるサンプリング時間を、当該区切り時間での前記第１ロボット及び前記第２ロボットの距離に応じて前記基準のサンプリング時間より長く設定する第１設定での総当たりの組み合わせ数と、
前記区切り時間で用いるサンプリング時間を、前記第１ロボット及び前記第２ロボットのそれぞれごとに、前記作業時における姿勢の変化速度に応じて前記基準のサンプリング時間より長く設定する第２設定での総当たりの組み合わせ数と、を比較し、
前記区切り時間でのサンプリング時間を、前記第１設定及び前記第２設定のうち、前記組み合わせ数が少なくなる方で設定することを特徴とする干渉検出方法。
【請求項２】
前記第１ロボット及び前記第２ロボットの距離の長さに応じて、前記サンプリング時間を前記基準のサンプリング時間から段階的に長くすることを特徴とする請求項１に記載の干渉検出方法。
【請求項３】
第１ロボット及び第２ロボットの作業時におけるサンプリング時間ごとの姿勢を求め、前記第１ロボットの各姿勢と前記第２ロボットの各姿勢とを総当たりに比較し、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出する干渉検出装置において、
基準のサンプリング時間よりも長く設定した区切り時間で用いるサンプリング時間を、当該区切り時間での前記第１ロボット及び前記第２ロボットの距離に応じて前記基準のサンプリング時間より長く設定する第１設定での総当たりの組み合わせ数と、
前記区切り時間で用いるサンプリング時間を、前記第１ロボット及び前記第２ロボットのそれぞれごとに、前記作業時における姿勢の変化速度に応じて前記基準のサンプリング時間より長く設定する第２設定での総当たりの組み合わせ数と、を比較し、
前記区切り時間でのサンプリング時間を、前記第１設定及び前記第２設定のうち、前記組み合わせ数が少なくなる方で設定するサンプリング時間設定手段を備えることを特徴とする干渉検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの干渉検出方法及び干渉検出装置に関し、特に、２台のロボット同士の干渉に関する検出を迅速に行うための干渉検出方法及び干渉検出装置に関する。
【背景技術】
【０００２】
一般に、ティーチング作業の効率化を図るため、あるいは、製造ラインの稼動率を向上させるために、オフラインによるティーチング（オフラインティーチング）が行われている。すなわち、コンピュータ上に多関節ロボット並びに作業対象物であるワーク及び周辺構造物のモデルを構築し、このモデルを用いて動作プログラムとしてのティーチングデータを作成した後、当該ティーチングデータを現場の多関節ロボットに供給するようにすれば、ティーチングデータの作成中に製造ラインを停止させる必要がない。
【０００３】
また、近時、生産性向上等を目的として、一の工程において複数の多関節ロボットを採用し、これらの多関節ロボットを同時かつ集中的に動作させる作業形態が増えている。特に、複雑な形状のワークに対して作業を行う場合には、多関節ロボットを密集して配置させることもある。このような作業形態においては、ワークや他の障害物との干渉を回避することは当然ながら、多関節ロボット同士の干渉も回避するようにティーチングデータを作成しなければならない。
このため、ロボット同士の干渉の有無を検出する手法として、複数の中から選択された２台の多関節ロボットを、コンピュータによる仮装空間上にモデル化して表すとともに、当該仮想空間上で、一方の多関節ロボットの姿勢を所定動作時間毎に求め、該姿勢に対して他方の多関節ロボットの作業時間内における全ての姿勢を総当たりに比較して行うものが提案されている（例えば、特許文献１参照）。この種のものでは、干渉する箇所が発見された場合には、干渉し合う箇所を回避するステップを設定したり、動作プログラムにインターロック情報を付加することにより干渉を回避することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１０３４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、この種のものでは、多関節ロボットの姿勢を求めるサンプリング時間を微小時間に設定し、より多くのサンプリング結果から多関節ロボット同士の干渉の有無を検出することで正確な検出を行うことが望ましい。
しかしながら、従来のものでは、多関節ロボットの相対位置関係や動作速度によらず、一様に微小なサンプリング時間で各ロボットの姿勢を求め、これら各姿勢を総当たりに対応させて干渉の有無を検出していたため、例えば、１サイクルが４０秒の多関節ロボットの動作を微小なサンプリング時間（０．０２秒）ごとにサンプリングした場合、１台の多関節ロボットあたり、当該ロボットの動作が２０００ステップに分解される。この場合、１サイクルにおける多関節ロボットの干渉検出処理では、２０００×２０００＝４００００００回の検出を要し、処理時間が膨大に必要となるという問題があった。従って、条件を変えながら何度も検出を行うということが実際上困難であった。
【０００６】
本発明は、上述した事情に鑑みてなされたものであり、２台のロボットが作業する際に、ロボット同士の干渉の有無を短時間で検出することを可能にするロボットの干渉検出方法及び干渉検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、第１ロボット及び第２ロボットの作業時におけるサンプリング時間ごとの姿勢を求め、前記第１ロボットの各姿勢と前記第２ロボットの各姿勢とを総当たりに比較し、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出する干渉検出方法において、基準のサンプリング時間よりも長く設定した区切り時間で用いるサンプリング時間を、当該区切り時間での前記第１ロボット及び前記第２ロボットの距離に応じて前記基準のサンプリング時間より長く設定する第１設定での総当たりの組み合わせ数と、前記区切り時間で用いるサンプリング時間を、前記第１ロボット及び前記第２ロボットのそれぞれごとに、前記作業時における姿勢の変化速度に応じて前記基準のサンプリング時間より長く設定する第２設定での総当たりの組み合わせ数と、を比較し、前記区切り時間でのサンプリング時間を、前記第１設定及び前記第２設定のうち、前記組み合わせ数が少なくなる方で設定することを特徴とする。
【００１２】
この構成によれば、区切り時間におけるサンプリング時間が第１設定及び第２設定のうち、より組み合わせ回数の少ないサンプリング時間に設定されるため、当該区切り時間における第１ロボット及び第２ロボットの干渉の有無をより短い時間で検出することができる。
【００１３】
また、本発明は、前記第１ロボット及び前記第２ロボットの距離の長さに応じて、前記サンプリング時間を前記基準のサンプリング時間から段階的に長くすることを特徴とする。この構成によれば、区切り時間の中で第１ロボット及び第２ロボットの姿勢をサンプリングする回数を第１ロボット及び第２ロボットの距離の長さに応じて段階的に増やすことができるため、当該区切り時間における第１ロボット及び第２ロボットの干渉の有無を正確に検出することができる。
【００１８】
また、本発明によれば、第１ロボット及び第２ロボットの作業時におけるサンプリング時間ごとの姿勢を求め、前記第１ロボットの各姿勢と前記第２ロボットの各姿勢とを総当たりに比較し、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出する干渉検出装置において、基準のサンプリング時間よりも長く設定した区切り時間で用いるサンプリング時間を、当該区切り時間での前記第１ロボット及び前記第２ロボットの距離に応じて前記基準のサンプリング時間より長く設定する第１設定での総当たりの組み合わせ数と、前記区切り時間で用いるサンプリング時間を、前記第１ロボット及び前記第２ロボットのそれぞれごとに、前記作業時における姿勢の変化速度に応じて前記基準のサンプリング時間より長く設定する第２設定での総当たりの組み合わせ数と、を比較し、前記区切り時間でのサンプリング時間を、前記第１設定及び前記第２設定のうち、前記組み合わせ数が少なくなる方で設定するサンプリング時間設定手段を備えることを特徴とする。
【００１９】
この構成によれば、区切り時間におけるサンプリング時間が第１設定及び第２設定のうち、より組み合わせ回数の少ないサンプリング時間に設定されるため、当該区切り時間における第１ロボット及び第２ロボットの干渉の有無をより短い時間で検出することができる。
【発明の効果】
【００２０】
本発明によれば、区切り時間のそれぞれの中で用いるサンプリング時間を第１ロボット及び第２ロボットの距離に応じて基準のサンプリング時間より長く設定するため、当該距離が遠い場合には、この区切り時間内に第１ロボット及び第２ロボットの干渉のおそれが低いことにより、当該区切り時間でのサンプリング回数を減少することで、第１ロボット及び第２ロボットの干渉の有無を短時間で検出することができる。
また、本発明によれば、第１ロボット及び第２ロボットのそれぞれごとに、作業時における姿勢の変化速度に応じて、サンプリング時間を基準のサンプリング時間より長く設定するため、上記姿勢の変化速度が遅い場合には、第１ロボット及び第２ロボットの干渉のおそれが低いことにより、サンプリング回数を減少することで、第１ロボット及び第２ロボットの干渉の有無を短時間で検出することができる。
また、本発明によれば、区切り時間におけるサンプリング時間が第１設定及び第２設定のうち、より組み合わせ回数の少ないサンプリング時間に設定されるため、当該区切り時間における第１ロボット及び第２ロボットの干渉の有無をより短い時間で検出することができる。
また、本発明によれば、第１ロボット及び第２ロボットの距離の長さに応じて、サンプリング時間を基準のサンプリング時間から段階的に長くするため、区切り時間の中で第１ロボット及び第２ロボットの姿勢をサンプリングする回数をロボット間距離の長さに応じて段階的に増やすことができ、当該区切り時間における第１ロボット及び第２ロボットの干渉の有無を正確に検出することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態で使用するオフラインティーチング装置及びロボット装置を示す説明図である。
【図２】多関節ロボットの構成を示す斜視図である。
【図３】干渉検出装置の構成を示すブロック図である。
【図４】ＣＰＵの構成を示すブロック図である。
【図５】第１多関節ロボット及び第２多関節ロボットの動作開始から終了までの各姿勢を総当たりに比較するためのマトリクス図である。
【図６】ロボットの干渉検出方法の手順を示すフローチャートである。
【図７】多関節ロボットの姿勢データを示すテーブルである。
【図８】第１設定によるサンプリング時間を長くした状態を示す説明図である。
【図９】第２設定によるサンプリング時間を長くした状態を示す説明図である。
【図１０】区切り時間でのサンプリング時間を第１設定及び第２設定のうち、組み合わせ数が少なくなる方を選択する状態を示す説明図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の一実施の形態について説明する。
本実施形態にかかるロボットの干渉検出方法は、基本的には、２台の多関節ロボットの動作時における所定のサンプリング時間ごとの姿勢をそれぞれ求め、これら各多関節ロボットの各姿勢をシミュレーションにより総当たりに比較し、当該多関節ロボット同士の姿勢の干渉の有無を検出するものである。
【００２３】
図１に示すように、本実施の形態において使用する干渉検出装置１０は、溶接用の第１多関節ロボット５０ａ、第２多関節ロボット５０ｂ及び第３多関節ロボット５０ｃのそれぞれについて溶接作業を行う動作のティーチングデータを作成するとともに、この作成された各ティーチングデータに基づいて、第１多関節ロボット５０ａ、第２多関節ロボット５０ｂ及び第３多関節ロボット５０ｃをそれぞれ動作させたとき、これら第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃ同士の干渉の有無を検出するものである。この干渉検出装置１０は、作成されたティーチングデータに基づき作業対象物（ワーク）に対して所望の作業を行うロボット装置１２と連係されている。
このロボット装置１２は、上記した第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃと、ティーチングデータに基づいて第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃのそれぞれの動作制御を行うロボット制御部２２ａ、２２ｂ、２２ｃとを備える。
【００２４】
第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃは全て同構造であり、図２に示すように、取付台である第１ベース５４に対して、先端側に向かって順に、第２ベース５６、第１リンク５８、第２リンク６０、第３リンク６２、第４リンク６４及びガン着脱部６６が接続されている。先端のガン着脱部６６にはガンユニット（エンドエフェクタ）６８が接続されている。第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃは、必ずしも同構造でなくてもよい。
第２ベース５６は鉛直軸である軸Ｊ１を中心にして第１ベース５４に対して旋回可能に軸支されている。第１リンク５８の基端部は水平軸である軸Ｊ２により第２ベース５６に俯仰可能に軸支されている。また、第２リンク６０の基端部は水平軸である軸Ｊ３により第１リンク５８の先端部に揺動可能に軸支されている。そして、第３リンク６２は第２リンク６０の先端側に軸Ｊ４を共通の回転中心軸として接続されている。さらに、第４リンク６４の基端部は軸Ｊ４に対して直角方向の軸Ｊ５により第３リンク６２の先端部に揺動可能に軸支されている。ガン着脱部６６は第４リンク６４の先端側に軸Ｊ６を共通の回転中心軸として接続されている。
【００２５】
ガン着脱部６６に接続されたガンユニット６８はいわゆるＣ型溶接ガンであり、アーチ状のアーム７４の両端部には、ガン軸Ｊ７に沿って開閉する一対の電極７０、７２を有する。この電極７０、７２は閉状態ではガン軸Ｊ７上の作業点（以下、ＴＣＰ（Tool Center Point）という。）において図示しないワークに接触する。
軸Ｊ１〜Ｊ６の駆動機構並びに電極７０、７２の進退機構は、それぞれ図示しないアクチュエータにより駆動され、ＴＣＰは軸Ｊ１〜Ｊ６のそれぞれの回転角θ１〜θ６の値及び第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃの各部寸法により決定される。
なお、ガンユニット６８はＣ型溶接ガンに限らず、例えばＸ型溶接ガン（共通の支軸に軸支された開閉する一対のガンアームを備える溶接ガン）であってもよい。
【００２６】
図３は、干渉検出装置１０の回路構成を示すブロック図である。
干渉検出装置１０は、コンピュータによって構成されるものであり、図３に示すように、制御部１４は、干渉検出装置１０の全体の制御を行うＣＰＵ２６と、記録部であるＲＯＭ２８及びＲＡＭ２９と、ハードディスクドライブ（ＨＤＤ）３４によってデータが読み書きされるハードディスク３６と、フレキシブルディスクやコンパクトディスク等の外部記録媒体３８ａに対してティーチングデータ等の読み書きを行う記録媒体ドライブ３８と、第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃの各ティーチングデータを作成するティーチングデータ作成回路３９と、作成されたティーチングデータに基づいて第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃの動作シミュレーションを行うシミュレーション回路４０とを備える。
本構成では、干渉検出装置１０は、３台の多関節ロボット５０ａ、５０ｂ、５０ｃの中から２台ずつ選択された多関節ロボット同士の干渉の有無を検出する。すなわち、第１多関節ロボット５０ａ、第２多関節ロボット５０ｂ及び第３多関節ロボット５０ｃのうち、２台ずつ選択された第１及び第２多関節ロボット５０ａ，５０ｂ、第２及び第３多関節ロボット５０ｂ，５０ｃ、及び、第１及び第３多関節ロボット５０ａ、５０ｃについての干渉の有無がそれぞれ検出される。
なお、制御部１４には、オペレータによるティーチング作業の補助、シミュレーション画像の表示等を行うためのディスプレイ１６が描画制御回路３０を介して接続されるとともに、インタフェース３２を介して入力装置としてのキーボード１８及びマウス２０が接続される。
【００２７】
ハードディスク３６には、第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃの動作経路を規定するティーチングデータを作成するためのティーチングデータ作成プログラム４１と、第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃをそれぞれ上記ティーチングデータに基づいて動作させたときに、これら第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃ同士が干渉するか否かを検出するための干渉検出プログラム４２とが記録される。
【００２８】
ＣＰＵ２６は、図４に示すように、上記干渉検出プログラム４２により動作し、２台の多関節ロボット（例えば、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂ）の姿勢をそれぞれ所定のサンプリング時間ごとに求め、そのサンプリング時間ごとに求めた第１多関節ロボット５０ａの各姿勢と第２多関節ロボット５０ｂの各姿勢とを総当たりに比較して当該ロボット５０ａ，５０ｂ同士の干渉の有無を検出する干渉検出部８０と、上記サンプリング時間を設定するサンプリング時間設定部８１と、多関節ロボット５０ａ、５０ｂ同士が干渉すると検出された際に、少なくとも一方の多関節ロボットのティーチングデータにインターロックを付与するインターロック設定部８２とを備える。
【００２９】
干渉検出部８０は、ＲＣＳモジュール等によって動作計画を計算する動作計画計算部８３と、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂ同士の干渉および他の障害物との干渉の有無を検出する干渉計算部８４と、所定時刻における第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの姿勢を計算するロボット姿勢サンプリング部８５と、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの姿勢組合せの記憶領域を確保する姿勢組合せ部８６とを備える。
干渉計算部８４は、３次元ＣＡＤをベースにしており、コンピュータプログラム上の仮想空間において、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂをソリッドモデルとして表し、互いのモデル同士が干渉を起こすか否かを検証するものであり、干渉の有無を判断するとともに、ディスプレイ１６の画面上にその様子を模写的に表示する機能を持つ。
ＲＣＳモジュールとは、一般的な多関節ロボットのモーション設計のためのソフトウェアであり、多関節ロボットの各軸の加減速度を決定する機能等を持ち、ロボット動作データとしてロボット姿勢サンプリング部８５に擬似的に与えるものである。
【００３０】
ところで、干渉検出部８０は、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの姿勢をそれぞれ所定のサンプリング時間ごとに求め、そのサンプリング時間ごとに求めた第１多関節ロボット５０ａの各姿勢と第２多関節ロボット５０ｂの各姿勢とを総当たりに比較して当該多関節ロボット５０ａ，５０ｂ同士の干渉の有無を検出している。
具体的には、図５に示すように、第１多関節ロボット５０ａの動作時間を縦軸１００にとり、第２多関節ロボット５０ｂの動作時間を横軸１０１にとり、各多関節ロボット５０ａ、５０ｂの動作開始から終了までの姿勢を基準サンプリング時間ｔａごとに求め、この基準サンプリング時間ｔａごと求めた多関節ロボット５０ａ、５０ｂの各姿勢を総当たりに比較して行っている。基準サンプリング時間ｔａ（例えば、０．０２秒）は、多関節ロボット同士の干渉の有無を正確に検出するために基準値として設定された時間である。この基準サンプリング時間ｔａを短く設定すれば、干渉の有無を検出する処理回数が増えるため正確性が向上する一方、検出処理回数が増加することによりその分処理時間が長くなるという問題がある。
【００３１】
このため、本構成では、干渉の検出対象となる２台の多関節ロボット間の距離、もしくは、多関節ロボットの作業時における姿勢の変化速度に応じて、サンプリング時間を基準サンプリング時間ｔａよりも長く設定するサンプリング時間設定部８１を備える構成となっている。
このサンプリング時間設定部８１は、２台の多関節ロボット間の距離を区切り時間ｔｂごとに算出するロボット間距離算出部８７と、このロボット間距離算出部８７で算出された距離に応じて当該区切り時間ｔｂにおけるサンプリング時間を基準サンプリング時間ｔａよりも長く設定する第１サンプリング時間設定部８８と、多関節ロボットの変位量をロボットごとに算出するロボット変位量算出部８９と、このロボット変位量算出部８９で算出された変位量に応じてサンプリング時間を基準サンプリング時間ｔａよりも長く設定する第２サンプリング時間設定部９０とを備える。
これら第１サンプリング時間設定部８８で設定されたサンプリング時間（第１設定）及び第２サンプリング時間設定部９０で設定されたサンプリング時間（第２設定）は、それぞれ判定部９１に送られる。この判定部９１では、区切り時間ｔｂにおける第１設定及び第２設定による総当たりの組み合わせ数が少ないサンプリング時間を当該区切り時間ｔｂで用いられるサンプリング時間として設定する。
区切り時間ｔｂは、図５に示すように、基準サンプリング時間ｔａよりも長い時間（例えば０．２秒）に適宜設定されるものである。この区切り時間ｔｂは、１つの時間領域としてとらえられ、当該区切り時間ｔｂにおけるサンプリング時間を可変することで、干渉のおそれが高い領域では詳細に干渉の有無を検出することができ、干渉のおそれの低い領域では大まかに検出を行うことにより、干渉の検出精度を低下させることなく検出処理時間の短縮化を実現している。この区切り時間ｔｂで形成される領域を区切り時間領域という。
【００３２】
次に、このように構成される干渉検出装置を用いて、第１及び第２多関節ロボット５０ａ、５０ｂ同士の干渉の有無を検出する方法について説明する。以下の説明では、第１〜第３多関節ロボット５０ａ、５０ｂ、５０ｃのうち２台の第１及び第２多関節ロボット５０ａ、５０ｂについて干渉を検出する方法を例にして説明するが、これとは別個に第２及び第３多関節ロボット５０ｂ、５０ｃ同士の干渉、第１及び第３多関節ロボット５０ａ、５０ｃ同士の干渉についても検出される。
【００３３】
図６は、ロボット同士の干渉の有無を検出する動作手順を示すフローチャートである。
先ず、動作計画計算部８３は、第１及び第２多関節ロボット５０ａ、５０ｂのティーチングデータをそれぞれ読み出し、これら各ティーチングデータとＲＣＳモジュールに基づいて第１及び第２多関節ロボット５０ａ、５０ｂの動作計画を生成する（ステップＳ１）。この動作計画は、ティーチングデータに設定されている作業点間を動作速度等の条件によって補間するものである。
次に、ロボット姿勢サンプリング部８５は、生成された動作計画から基準サンプリング時間ｔａごとの第１及び第２多関節ロボット５０ａ、５０ｂの姿勢データを計算する（ステップＳ２）。姿勢データは、図７に示すように、第１多関節ロボット５０ａにおける各軸Ｊ１〜Ｊ６の回動角度、ガンユニット６８の向き，開度、及び、作業点（ＴＣＰ）の位置を３次元的に規定するパラメータＸ、Ｙ、Ｚの向きを含むデータをいう。ガンユニット６８の開度は、上述した一対の電極７０、７２間の距離であり、例えばミリメートル（ｍｍ）で表示される。本実施形態では、動作開始時から動作終了時までにおける第１多関節ロボット５０ａの姿勢データが基準サンプリング時間ｔａ（例えば０．０２秒）ごとに作成されて記憶される。この図７では、順番が８までの姿勢データを示しており、これ以降の姿勢データについての記載を省略している。なお、第２及び第３多関節ロボット５０ｂ、５０ｃについても同様に動作計画から基準サンプリング時間ｔａごとの姿勢データが計算される。
【００３４】
次に、サンプリング時間設定部（サンプリング時間設定手段）８１は、ロボット姿勢サンプリング部８５が生成した姿勢データに基づいてサンプリング時間を設定する。具体的には、２系統に分かれてそれぞれサンプリング時間の設定処理を行う。一方の系統では、ロボット間距離算出部８７が、各区切り時間ｔｂの開始位置で、この位置に相当するサンプリング時刻における第１及び第２多関節ロボット５０ａ、５０ｂの姿勢データを取得し、これら姿勢データに基づいて第１及び第２多関節ロボット５０ａ、５０ｂ間の距離を算出する（ステップＳ３）。ここで、ロボット間距離とは、第１及び第２多関節ロボット５０ａ、５０ｂの各ガンユニット６８、６８間の距離だけでなく、当該第１及び第２多関節ロボット５０ａ、５０ｂの各軸間の距離も含む最短距離をいう。この算出されたロボット間距離のデータは、第１サンプリング時間設定部８８に送られる。
【００３５】
次に、第１サンプリング時間設定部８８はロボット間距離の長さに応じて、当該区切り時間ｔｂで用いられるサンプリング時間を基準サンプリング時間ｔａよりも長く設定する（ステップＳ４）。本実施形態では、ロボット間距離とサンプリング時間との対応関係を示すテーブル（図示略）が予めハードディスク３６に記憶されており、ロボット間距離の長さに応じて段階的にサンプリング時間を長く設定するようになっている。第１サンプリング時間設定部８８によって設定されたサンプリング時間を第１設定とする。
具体的には、図８に示すように、左下に位置する第１の区切り時間領域Ａでは、第１及び第２多関節ロボット５０ａ、５０ｂが十分に離れているため、サンプリング時間ｔ１を基準サンプリング時間ｔａに比べて十分長い時間（０．２秒）に設定している。また、第１の区切り時間領域Ａの右隣に位置する第２の区切り時間領域Ｂでは、サンプリング時間ｔ１よりも短いサンプリング時間ｔ２（０．１秒）に設定されている。同様に、第２の区切り時間領域Ｂの右隣に位置する第３の区切り時間領域Ｃ、この第３の区切り時間領域Ｃの上隣に位置する第４の区切り時間領域Ｄでは、それぞれ基準サンプリング時間ｔａよりも長いサンプリング時間ｔ３（０．０５秒）、サンプリング時間ｔ４（０．０２５秒）に設定されている。なお、この図８では、図示を省略しているが、ロボット間距離が所定の下限値を下回っている場合には、第１及び第２多関節ロボット５０ａ、５０ｂが干渉するおそれが高いため、基準サンプリング時間ｔａのまま設定し、第１及び第２多関節ロボット５０ａ、５０ｂが干渉するか否かを詳細に検出する。
【００３６】
次に、第１サンプリング時間設定部８８は、設定されたサンプリング時間によって定まる区切り時間（区切り時間領域）における第１設定での組み合わせ数を算出する（ステップＳ５）。この組み合わせ数は、当該区切り時間領域における第１及び第２多関節ロボット５０ａ、５０ｂの干渉の有無を検出する処理回数を示すものであり、サンプリング時間が長いものほど処理回数は小さい。図８の例では、第１の区切り時間領域Ａでの組み合わせ数は１回となり、第２の区切り時間領域Ｂ、第３の区切り時間領域Ｃ及び第４の区切り時間領域Ｄでの組み合わせ数は、それぞれ４回、１６回、６４回となる。
このように、本実施形態では、基準サンプリング時間ｔａよりも長く設定した区切り時間ｔｂごとに、作業時における第１ロボット及び第２ロボットのロボット間距離を求め、区切り時間ｔｂのそれぞれの中で用いるサンプリング時間をロボット間距離に応じて基準サンプリング時間ｔａより長く設定するため、ロボット間の距離が遠い場合には、この区切り時間ｔｂ内に第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉のおそれが低いことにより、区切り時間領域における干渉の有無の検出を短時間で行うことができる。なお、各区切り時間領域での組み合わせ数は判定部９１に送られる。
【００３７】
また、他方の系統では、第２サンプリング時間設定部９０が第１及び第２多関節ロボット５０ａ、５０ｂのそれぞれについて、当該多関節ロボットの姿勢の変化速度に応じてサンプリング時間を基準サンプリング時間ｔａよりも長く設定する（ステップＳ６）。具体的には、ロボット変位量算出部８９が第１及び第２多関節ロボット５０ａ、５０ｂの姿勢データを動作開始時から取得し、ガンユニット６８上の作業点の位置が所定距離（例えば１６ｍｍ）移動する間の時間を算出して第２サンプリング時間設定部９０に出力する。そして、第２サンプリング時間設定部９０はロボット変位量算出部８９から入力された時間をサンプリング時間として設定する。この所定距離は、第１及び第２多関節ロボット５０ａ、５０ｂが最高速度で動作した場合に、設定されたサンプリング時間が基準サンプリング時間ｔａと略同一となるような時間である。このため、通常動作時においては、第１及び第２多関節ロボット５０ａ、５０ｂは、最高速度よりも低い速度で動作するため、サンプリング時間は基準サンプリング時間ｔａよりも長く設定される。第２サンプリング時間設定部９０によって設定されたサンプリング時間を第２設定とする。
【００３８】
本構成では、多関節ロボットのガンユニット６８が所定距離移動する時間をサンプリング時間として設定するため、このサンプリング時間は、それぞれ第１及び第２多関節ロボット５０ａ、５０ｂのガンユニット６８が動作する速度に応じて可変され、具体的には、図９に示すように、第２多関節ロボット５０ｂのサンプリング時間は、動作開始時からサンプリング時間ｔ５〜ｔ１０と変更されて設定される。同様に、第１多関節ロボット５０ａのサンプリング時間は、動作開始時からサンプリング時間ｔ１１〜ｔ１７と変更されて設定される。このため、第１及び第２多関節ロボット５０ａ、５０ｂのガンユニット６８が動作する速度（姿勢の変化速度）が遅い場合には、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉のおそれが低いことにより、サンプリング時間を長くすることでその分、干渉の検出処理を行う回数を減少させることができ、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉の有無を短時間で検出することができる。なお、本実施形態では、多関節ロボットの姿勢の変化速度として、ガンユニット６８上の作業点の速度を基準に制御しているが、他の位置を基準としても良いことは勿論である。
【００３９】
次に、第２サンプリング時間設定部９０は、設定されたサンプリング時間によって定まる区切り時間（区切り時間領域）における第２設定での組み合わせ数を算出する（ステップＳ７）。第２設定では、図９に示すサンプリング時間ｔ７、ｔ１４のように、各区切り時間ｔｂを跨いで設定されるものもあるが、これらについては、区切り時間ｔｂで分けて区切り時間領域に存在する組み合わせ数を算出する。この図９の例では、第１の区切り時間領域Ａでの組み合わせ数は１２回となり、第２の区切り時間領域Ｂ、第３の区切り時間領域Ｃ及び第４の区切り時間領域Ｄでの組み合わせ数は、それぞれ８回、１６回、１２回となる。そして各区切り時間領域での組み合わせ数は判定部９１に送られる。
【００４０】
次に、判定部９１は、各区切り時間領域でのサンプリング時間を、第１設定及び第２設定のうち組み合わせ数が少なくなる方で設定する（ステップＳ８）。具体的には、図１０に示すように、第１の区切り時間領域Ａでは第１設定のサンプリング時間に設定し、第２の区切り時間領域Ｂ、第３の区切り時間領域Ｃ及び第４の区切り時間領域Ｄでは、それぞれ第１設定、第１設定、第２設定のサンプリング時間に設定される。
これによれば、各区切り時間領域におけるサンプリング時間がより組み合わせ回数の少ないサンプリング時間に設定されるため、当該区切り時間領域における干渉の有無の検出をより短い時間で行うことができる。
【００４１】
次に、干渉計算部８４は、上記のように設定されたサンプリング時間ごとに、第１及び第２多関節ロボット５０ａ、５０ｂの各姿勢をそれぞれ求め、これら第１及び第２多関節ロボット５０ａ、５０ｂの各姿勢のすべての組み合わせに対して干渉の検出を行う（ステップＳ９）。次に、干渉計算部８４は、ステップＳ９にて検出した第１及び第２多関節ロボット５０ａ、５０ｂの干渉の有無をマッピングデータとしてディスプレイ１６の画面上に出力して（ステップＳ１０）、処理を終了する。このマッピングデータは、上記したサンプリング時間における第１及び第２多関節ロボット５０ａ、５０ｂ同士の干渉の有無を視覚的に認識可能とするものである。このマッピングデータ上に干渉が確認された場合には、例えば、インターロック設定部８２を介して、少なくとも一方の多関節ロボットのティーチングデータにインターロックを設定する。インターロックとは、干渉が生じる組み合わせの動作時間よりも前に、一方の多関節ロボットの動作を停止させる所定時間をティーチングデータに組み入れることにより、干渉の発生を防止するものである。
また、第１多関節ロボット５０ａと第３多関節ロボット５０ｃとの干渉、及び第２多関節ロボット５０ｂと第３多関節ロボット５０ｃとの干渉についても同様にサンプリング時間を設定して検出される。
【００４２】
以上説明したように、本実施形態によれば、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの作業時におけるサンプリング時間ごとの姿勢を求め、第１多関節ロボット５０ａの各姿勢と第２多関節ロボット５０ｂの各姿勢とを総当たりに比較し、第１多関節ロボット５０ａ及び第２多関節ロボット５０ａの姿勢の干渉の有無を検出する干渉検出装置１０において、基準サンプリング時間ｔａよりも長く設定した区切り時間ｔｂごとに、作業時における第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの距離を求め、区切り時間ｔｂのそれぞれの中で用いるサンプリング時間を当該距離に応じて基準サンプリング時間ｔａより長く設定する第１サンプリング時間設定部８８とを備えるため、ロボット間の距離が遠い場合には、この区切り時間ｔｂ内に第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉のおそれが低いことにより、区切り時間領域における干渉の有無の検出を短時間で行うことができる。
【００４３】
また、本実施形態によれば、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂのそれぞれごとに、作業時におけるガンユニット６８が動作する速度に応じてサンプリング時間を基準サンプリング時間ｔａより長く設定する第２サンプリング時間設定部９０を備えるため、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの各ガンユニット６８が動作する速度が遅い場合には、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉のおそれが低いことにより、サンプリング時間を長くすることで、その分、干渉の検出処理を行う回数を減少させることができ、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉の有無を短時間で検出することができる。
【００４４】
また、本実施形態によれば、基準サンプリング時間ｔａよりも長く設定した区切り時間ｔｂで用いるサンプリング時間を、当該区切り時間ｔｂでの第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの距離に応じて基準サンプリング時間ｔａより長く設定する第１設定での総当たりの組み合わせ数と、区切り時間ｔｂで用いるサンプリング時間を、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂのそれぞれごとに、作業時におけるガンユニット６８が動作する速度に応じて基準サンプリング時間ｔａより長く設定する第２設定での総当たりの組み合わせ数とを比較し、区切り時間ｔｂでのサンプリング時間を、第１設定及び第２設定のうち、組み合わせ数が少なくなる方で設定するサンプリング時間設定手段８１を備えるため、区切り時間ｔｂ（区切り時間領域）におけるサンプリング時間がより組み合わせ回数の少ないサンプリング時間に設定されるため、当該区切り時間領域における干渉の有無の検出をより短い時間で行うことができる。
【００４５】
また、本実施形態によれば、第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの距離の長さに応じて、サンプリング時間を基準サンプリング時間ｔａから段階的に長くするため、区切り時間ｔｂの中で第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの姿勢をサンプリングする回数をロボット間距離の長さに応じて段階的に増やすことができるため、当該区切り時間ｔｂにおける第１多関節ロボット５０ａ及び第２多関節ロボット５０ｂの干渉の有無を正確に検出することができる。
【００４６】
なお、本発明は、上記実施形態に限らず、本発明の要旨を逸脱することなく、種々の構成を採り得ることは勿論である。例えば、干渉検出装置が各多関節ロボットのティーチングデータを作成するものに限らず、外部から取得したティーチングデータに基づいて動作する多関節ロボット同士の干渉の有無を検出しても良い。また、本実施形態の多関節ロボットは溶接作業を行うロボットであったが、これ以外の作業を行うロボット同士の干渉検出を行うものに本発明を適用しても良いことは勿論である。
【符号の説明】
【００４７】
１０  干渉検出装置
２６  ＣＰＵ
５０ａ  第１多関節ロボット
５０ｂ  第２多関節ロボット
５０ｃ  第３多関節ロボット
６８  ガンユニット
８０  干渉検出部
８１  サンプリング時間設定部（サンプリング時間設定手段）
８２  インターロック設定部
８３  動作計画計算部
８４  干渉計算部
８５  ロボット姿勢サンプリング部
８７  ロボット間距離算出部
８８  第１サンプリング時間設定部（サンプリング時間設定手段）
８９  ロボット変位量算出部
９０  第２サンプリング時間設定部（サンプリング時間設定手段）
９１  判定部
Ａ〜Ｄ  区切り時間時間領域
ｔａ  基準サンプリング時間
ｔｂ  区切り時間
ｔ１〜ｔ１７  サンプリング時間
【図１】
0005474739.tif 000002
【図２】
0005474739.tif 000003
【図３】
0005474739.tif 000004
【図４】
0005474739.tif 000005
【図５】
0005474739.tif 000006
【図６】
0005474739.tif 000007
【図７】
0005474739.tif 000008
【図８】
0005474739.tif 000009
【図９】
0005474739.tif 000010
【図１０】
0005474739.tif 000011