(57)【要約】【課題】３台以上のロボットが同時に動作するための各ロボットのティーチングデータを設定する際、各ティーチングデータを、ロボット相互の干渉を確実に防止するように、簡便な手段によって設定する。【解決手段】複数のロボットの動作の優先順位を決定し（ステップＳ２）、この優先順位に基づいて相互干渉確認順序リストを作成する（ステップＳ３）。相互干渉確認順序リストに従って選択された２つのロボットに対して、動作時間毎に相互干渉の有無を確認する（ステップＳ４）。相互干渉を起こすことが検出された箇所の群をエリアとして設定する。２つのロボットが通常作業時に前記エリアに進入する場合、優先順位の低いロボットを一時停止させるように前記ティーチングデータを補正する。補正した結果に基づいて、相互干渉確認順序リストの順にステップＳ４を繰り返し実行する。【選択図】図８
2004358630.tif 000002
【特許請求の範囲】
【請求項１】
３台以上のロボットに対して、各ティーチングデータに基づいて作業を行わせる際の前記ロボット同士の相互干渉を防止するためのロボットのティーチングデータ設定方法において、
前記複数のロボットに対して動作検証順番を設定する第１ステップと、
前記動作検証順番に従って選択された２つのロボットに対して実行され、該２つのロボットの動作工程又は動作時間毎の組合せに対して、相互干渉の有無を検出する第２ステップと、
前記２つのロボットが相互干渉を起こすことが検出された箇所の群をエリアとして設定し、前記２つのロボットが通常作業時に前記エリアに同時に進入する際、一方のロボットが前記エリアを通過するまで他方のロボットを一時停止させるように前記ティーチングデータを仮補正する第３ステップと、
前記動作検証順番に従って前記第２ステップ及び前記第３ステップを繰り返し実行した後、各ロボットが同時に同じエリアに進入することを阻止するインターロックを各ティーチングデータに設定する第４ステップと、
を実行するロボットのティーチングデータ設定方法であって、
前記第２ステップは、それ以前に実行された前記第３ステップの前記仮補正の結果に基づいて実行されることを特徴とするロボットのティーチングデータ設定方法。
【請求項２】
請求項１記載のロボットのティーチングデータ設定方法において、
前記動作検証順番は、前記ロボットの作業の標準動作時間及び／又は相互の配置位置に基づく動作優先順位に従って設定されることを特徴とするロボットのティーチングデータ設定方法。
【請求項３】
請求項２記載のロボットのティーチングデータ設定方法において、
前記第３ステップでは、前記２つのロボットのうち、前記動作優先順位の低い方を一時停止させるように前記ティーチングデータを仮補正することを特徴とするロボットのティーチングデータ設定方法。
【請求項４】
請求項１〜３のいずれか１項に記載のロボットのティーチングデータ設定方法において、
前記エリアの組合せを複数設け、各組合せに対して前記第３ステップを実行し、前記他方のロボットの動作終了時刻が許容時間を超える場合、対応する前記組合せを削除することを特徴とするロボットのティーチングデータ設定方法。
【請求項５】
請求項４記載のロボットのティーチングデータ設定方法において、
前記エリアの組合せのうち、前記エリアの数が閾値より大きい組合せを削除することを特徴とするロボットのティーチングデータ設定方法。
【請求項６】
請求項５記載のロボットのティーチングデータ設定方法において、
前記閾値は、前記動作検証順番に従って実行される前記第３ステップ毎に設定され、且つ、前記閾値の合計は前記ロボットを制御するシステム上で設定されたインターロック数以下に設定されていることを特徴とするロボットのティーチングデータ設定方法。
【請求項７】
請求項１〜６記載のロボットのティーチングデータ設定方法において、
前記動作検証順番に従って選択された２つのロボットが、相互の動作範囲外にあるときには、前記第２ステップ及び前記第３ステップの実行を省略することを特徴とするロボットのティーチングデータ設定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットのティーチングデータ設定方法に関し、特に、複数のロボット同士の干渉に関する検証を容易にするためのロボットのティーチングデータ設定方法に関する。
【０００２】
【従来の技術】
従来、製造ラインに設置された多関節ロボットを直接操作させて作業姿勢のティーチングを行おうとすると、多関節ロボットの操作を熟知したオペレータが製造ラインの現場で作業を行わなければならないため、その分、作業が非効率的となってしまう。また、その作業は、製造ラインを停止させた状態で行う必要があるために当該製造ラインの稼動率も低下してしまう。
【０００３】
そこで、近時ティーチング作業の効率化を図るため、あるいは、前記製造ラインの稼動率を向上させるために、オフラインによるティーチング（オフラインティーチング）が行われている。すなわち、コンピュータ上に多関節ロボット並びに作業対象物であるワーク及び周辺構造物のモデルを構築し、このモデルを用いてティーチングデータを作成した後、前記ティーチングデータを現場の多関節ロボットに供給するようにすれば、ティーチングデータの作成中に製造ラインを停止させる必要がない。
【０００４】
ところで、近時、生産性向上等を目的として、一度の工程において複数の多関節ロボットを採用し、これらの多関節ロボットを同時且つ集中的に動作させる作業形態が増えている。特に、複雑な形状のワークに対して作業を行う場合には、多関節ロボットを密集して配置させることもある。このような作業形態においては、多関節ロボットがワークや他の障害物と干渉することを回避することは当然ながら、多関節ロボット同士の干渉も回避するようにティーチングデータを設定しなければならない。
【０００５】
このため、一方の多関節ロボットの動作工程又は動作時間毎に他方の多関節ロボットの複数の動作工程又は動作時間を対応させて相互干渉の有無を確認し、ティーチングデータにおける相互干渉が確認された箇所の前段階に、相互干渉を防止するインターロックを設定する方法が提案されている（例えば、特許文献１、特許文献２参照）。
【０００６】
【特許文献１】
特開２００３−１０３４８４号公報（図１３）
【特許文献２】
特開２００３−１０３４９１号公報（図６）
【０００７】
【発明が解決しようとする課題】
上記の特許文献１で開示されている方法によれば、不測の事態により一方のロボットが途中で停止したときでも、他方のロボットとの干渉を防止することができて好適である。
【０００８】
しかしながら、干渉を起こす可能性のあるロボットが多数あり、その全ての組合せに対して同様の設定を行う場合には、手順が煩雑であって、実際上オペレータが試行錯誤しながら行い多大な時間を要している。また、その結果が、動作時間やインターロックの設定数上、必ずしも最適な設定とならないことがある。特に、インターロックの設定数はシステム上制限されていることがあり、この制限された数に抑えるためには、手順がより煩雑となる。
【０００９】
本発明はこのような課題を考慮してなされたものであり、３台以上のロボットが同時に動作するための各ロボットのティーチングデータを設定する際、各ティーチングデータを、ロボット相互の干渉を確実に防止するように、簡便な手段によって設定することを可能にするロボットのティーチングデータ設定方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係るロボットのティーチングデータ設定方法は、３台以上のロボットに対して、各ティーチングデータに基づいて作業を行わせる際の前記ロボット同士の相互干渉を防止するためのロボットのティーチングデータ設定方法において、前記複数のロボットに対して動作検証順番を設定する第１ステップと、前記動作検証順番に従って選択された２つのロボットに対して実行され、該２つのロボットの動作工程又は動作時間毎の組合せに対して、相互干渉の有無を検出する第２ステップと、前記２つのロボットが相互干渉を起こすことが検出された箇所の群をエリアとして設定し、前記２つのロボットが通常作業時に前記エリアに同時に進入する際、一方のロボットが前記エリアを通過するまで他方のロボットを一時停止させるように前記ティーチングデータを仮補正する第３ステップと、前記動作検証順番に従って前記第２ステップ及び前記第３ステップを繰り返し実行した後、各ロボットが同時に同じエリアに進入することを阻止するインターロックを各ティーチングデータに設定する第４ステップと、を実行するロボットのティーチングデータ設定方法であって、前記第２ステップは、それ以前に実行された前記第３ステップの前記仮補正の結果に基づいて実行されることを特徴とする。
【００１１】
このように、動作検証順番に従って、第２ステップを繰り返し実行し、その際、それ以前に実行された第３ステップの結果を反映させながら第２ステップを実行することにより、各ティーチングデータを、ロボット相互の干渉を確実に防止することができる。また、試行錯誤のない簡便な手段によってティーチングデータを設定することができる。
【００１２】
この場合、前記動作検証順番は、前記ロボットの作業の標準動作時間及び／又は相互の配置位置に基づく動作優先順位に従って設定されるようにしてもよい。これにより、ロボットの動作検証順番を適切に設定することができ、インターロックの設定数やロボットの動作時間の低減を図ることができる。
【００１３】
また、前記第３ステップでは、前記２つのロボットのうち、前記動作優先順位の低い方を一時停止させるように前記ティーチングデータを仮補正することにより、２台のロボット間における動作の優先順位が保たれる。
【００１４】
さらに、前記エリアの組合せを複数設け、各組合せに対して前記第３ステップを実行し、前記他方のロボットの動作終了時刻が許容時間を超える場合、対応する前記組合せを削除するとよい。これにより、ティーチングデータに基づくロボットの動作を許容時間以内に抑えることができる。
【００１５】
この場合、前記エリアの組合せのうち、前記エリアの数が閾値より大きい組合せを削除することにより、各エリアに対応するインターロック数を低減することができるとともに、ティーチングデータの設定の処理の簡便化と処理時間の低減を図ることができる。
【００１６】
また、前記閾値は、前記動作検証順番に従って実行される前記第３ステップ毎に設定され、且つ、前記閾値の合計は前記ロボットを制御するシステム上で設定されたインターロック数以下に設定するとよい。
【００１７】
前記動作検証順番に従って選択された２つのロボットが、相互の動作範囲外にあるときには、前記第２ステップ及び前記第３ステップの実行を省略することにより、ティーチングデータの設定の処理の簡便化と処理時間の低減を図ることができる。
【００１８】
【発明の実施の形態】
以下、本発明に係るロボットのティーチングデータ設定方法の実施の形態例を図１〜図３１を参照しながら説明する。
【００１９】
図１に示すように、本実施の形態において使用するオフラインティーチング装置１０は、溶接用の第１多関節ロボットであるロボット５０ａ、第２多関節ロボットであるロボット５０ｂ及び第３多関節ロボットであるロボット５０ｃの動作のティーチングを行うものであり、作成されたティーチングデータに基づき作業対象物に対して所望の作業を行うロボット装置１２と連係されている。
【００２０】
また、ロボット装置１２は、ロボット５０ａ、５０ｂ、５０ｃと、ティーチングデータに基づいてロボット５０ａ、５０ｂ、５０ｃのそれぞれの動作制御を行うロボット制御部２２ａ、２２ｂ、２２ｃとを備える。
【００２１】
図２に示すように、オフラインティーチング装置１０を構成する制御部１４は、オフラインティーチング装置１０の全体の制御を行う制御手段としてのＣＰＵ（コンピュータ）２６と、記録部であるＲＯＭ２８及びＲＡＭ２９と、ハードディスク３４に対してデータのアクセスを行うハードディスクドライブ（ＨＤＤ）３６と、モニタ１６の画面上における描画制御を行う描画制御回路３０と、入力装置としてのキーボード１８及びマウス２０が接続されるインタフェース回路３２と、外部記録媒体３８ａ（例えば、磁気的、光学的に記録・読み込み可能なディスク等）を制御する記録媒体ドライブ３８とを有する。
【００２２】
ハードディスク３４には、ロボット５０ａ、５０ｂ、５０ｃの動作経路を設定するとともに、ティーチングデータを設定する機能等をもつティーチングデータ設定プログラム３５、設定結果を記録するデータベース３７及び図示しないＯＳ等が格納されている。
【００２３】
図３に示すように、ティーチングデータ設定プログラム３５は、ＲＡＭ２９及びハードディスク３４等からデータを読み込む機能をもつデータ読込み部１００と、データを書き込む機能をもつデータ記録部１０２と、ロボット５０ａ、５０ｂ、５０ｃの姿勢データを３次元ＣＡＤによって定義されているロボットモデルに設定して描画する画像作成部１０６とを有する。
【００２４】
画像作成部１０６は、オペレータが設定するロボット姿勢設定コマンドと、描画コマンドとによりＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を用いて多関節ロボットのモデルや、所定のデータや図形をモニタ１６の画面に描画する機能をもつ。
【００２５】
さらに、ティーチングデータ設定プログラム３５は、記録した相互干渉結果を分析する機能をもつ相互干渉結果分析部１１４と、相互干渉を回避するためのインターロックをティーチングデータに付加する機能をもつインターロック設定部１１６を有する。
【００２６】
データ読込み部１００によって得られたデータは、ロボット動作プログラム生成部１０８において自動的にティーチングデータに変換されて相互干渉確認部１１０に伝えられる。ロボット動作プログラム生成部１０８では、オペレータの操作によって手動的又は半自動的にティーチングデータを生成することも可能である。
【００２７】
ティーチングデータは、ロボット５０ａ、５０ｂ、５０ｃを制御するプログラムであり、それぞれのロボット５０ａ、５０ｂ、５０ｃに対して個別のティーチングデータが適用される。このティーチングデータは、ロボット制御部２２ａ、２２ｂ、２２ｃにそれぞれロードされた後に実行されているが、制御部１４において、シミュレーションに適用して仮実行することも可能である。
【００２８】
相互干渉確認部１１０は、ＲＣＳモジュール等によって動作計画を計算する動作計画計算部１１０ａと、ロボット５０ａ、５０ｂ、５０ｃ同士の相互干渉及び他の障害物との干渉の有無を検証する相互干渉計算部１１０ｂとを有する。
【００２９】
さらに相互干渉確認部１１０は、ＲＣＳモジュールによる任意時刻におけるロボット５０ａ、５０ｂ、５０ｃの姿勢を計算するロボット姿勢サンプリング部１１０ｃと、ロボット５０ａ、５０ｂ、５０ｃのうち２台の多関節ロボットの姿勢組合せの記憶領域を確保する姿勢組合せ生成部１１０ｄと、ティーチングデータをコンピュータ内で実行するロボット動作実行部１１０ｅとを有する。
【００３０】
相互干渉計算部１１０ｂは、３次元ＣＡＤをベースにしており、コンピュータプログラム上の仮想空間において、ロボット５０ａ、５０ｂ、５０ｃをソリッドモデルとして表し、互いのモデル同士が相互干渉を起こすか否かを検証するものであり、相互干渉の有無を判断する機能とともに、モニタ１６の画面上にその様子を模写的に表示する機能をもつ。ここでいうＲＣＳモジュールとは、一般的な多関節ロボットのモーション設計のためのソフトウェアであり、多関節ロボットの各軸の加減速度を決定する機能等を持ち、ロボット動作データとしてロボット姿勢サンプリング部１１０ｃに擬似的に与えるものである。
【００３１】
また、相互干渉確認部１１０は、複数台のロボットのうち相互干渉を確認する２台を選択して干渉確認の順序を生成する干渉確認順序生成部１１０ｆと、相互干渉計算部１１０ｂで求められた結果に対してロボットの通常作業時に相互干渉が起きる箇所について、一方のロボットを一時停止させるようにデータをシフトさせる相互干渉計算結果シフト部１１０ｇとを有する。
【００３２】
相互干渉確認部１１０において検証された結果は相互干渉検証結果記録部１１２に伝えられ、ロボット５０ａ、５０ｂ、５０ｃの姿勢と、相互干渉判別結果と組合せの情報をデータ記録部１０２を介してハードディスク３４にデータベース３７等の形式で記録する。
【００３３】
図４Ａに示すように、ロボット制御部２２ａ、２２ｂ、２２ｃは共有メモリ１２０を備えている。この共有メモリ１２０は、各ロボット制御部２２ａ、２２ｂ、２２ｃで、ＣＰＵ１２２が共有メモリ１２０に記録を行う度に、所定の割り込みプログラムが実行されて、記録を行った部分あるいは共有メモリ１２０全体を他の全てのロボット制御部２２ａ、２２ｂ、２２ｃへ転送する。そして、転送を受けた側でもデータ受信割り込みプログラムが実行され、受信したデータを自身の共有メモリ１２０に記録する。
【００３４】
また、これ以外にも図４Ｂ及び図４Ｃに示す形態等が利用可能である。
【００３５】
図４Ｂの例は、共有メモリ１２０は、見かけ上は自身のメモリ（図示せず）を示すように設定されながら、実際にはリンクに接続した外部の記憶装置１２４に存在し、各ロボット制御部２２ａ、２２ｂ、２２ｃがＯＳの機能により共有してアクセスできるようにしたものである。
【００３６】
図４Ｃの例は、共有メモリ１２０を制御部１４内のＲＡＭ２９に設定し、ロボット制御部２２ａ、２２ｂ、２２ｃから共通にアクセスできるようにしたものである。また、これらの他にもいわゆるＤＭＡ（ダイレクトメモリアクセス）システム等を採用してもよい。
【００３７】
これらの形態においては、共有メモリ１２０にはＲＡＭ２９等のメモリアドレスと連続した同列のメモリアドレスが割り当てられており、見かけ上、一般のメモリと同様に扱うことが可能である。
【００３８】
また、共有メモリ１２０はロボット５０ａ〜５０ｃの相互干渉を防止するインターロックの機能に用いられる。
【００３９】
ロボット５０ａ、５０ｂ、５０ｃは全て同構造であり、図５に示すように、取付台である第１ベース５４に対して、先端側に向かって順に、第２ベース５６、第１リンク５８、第２リンク６０、第３リンク６２、第４リンク６４及びガン着脱部６６が接続されている。先端のガン着脱部６６にはガンユニット６８が接続されている。ロボット５０ａ、５０ｂ、５０ｃは、必ずしも同構造でなくてもよい。
【００４０】
第２ベース５６は鉛直軸である軸Ｊ１を中心にして第１ベース５４に対して旋回可能に軸支されている。第１リンク５８の基端部は水平軸である軸Ｊ２により第２ベース５６に俯仰可能に軸支されている。また、第２リンク６０の基端部は水平軸である軸Ｊ３により第１リンク５８の先端部に揺動可能に軸支されている。そして、第３リンク６２は第２リンク６０の先端側に軸Ｊ４を共通の回転中心軸として接続されている。さらに、第４リンク６４の基端部は軸Ｊ４に対して直角方向の軸Ｊ５により第３リンク６２の先端部に揺動可能に軸支されている。ガン着脱部６６は第４リンク６４の先端側に軸Ｊ６を共通の回転中心軸として接続されている。
【００４１】
ガン着脱部６６に接続されたガンユニット６８はいわゆるＣ型溶接ガンであり、アーチ状のアーム７４の両端部には、ガン軸Ｊ７に沿って開閉する一対の電極７０、７２を有する。この電極７０、７２は閉状態ではガン軸Ｊ７上の溶接作業点（以下、ＴＣＰ（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ）という）において図示しないワークに接触する。
【００４２】
軸Ｊ１〜Ｊ６の駆動機構並びに電極７０、７２の進退機構（つまり、軸Ｊ７）は、それぞれ図示しないアクチュエータにより駆動され、ＴＣＰは軸Ｊ１〜Ｊ６のそれぞれの回転角θ１〜θ６の値及びロボット５０ａ、５０ｂ、５０ｃの各部寸法により決定される。
【００４３】
また、ガンユニット６８はＣ型溶接ガンに限らず、例えば図６に示すＸ型溶接ガン（共通の支軸に軸支された開閉する一対のガンアームを備える溶接ガン）６８ａであってもよい。
【００４４】
図７に示すように、ロボット５０ａの動作を途中の教示姿勢点Ｐｎ（ｎ＝１、２、３…）における姿勢として記録するパステーブル１８０は、「ガンユニットの向き」欄１８０ａ、「ＴＣＰの位置」欄１８０ｂ及び「各軸角度」欄１８０ｃから構成されており、「各軸角度」欄１８０ｃは回転角θ１〜θ６から構成されている。「ガンユニットの向き」欄１８０ａ及び「ＴＣＰの位置」欄１８０ｂは、それぞれ３つのパラメータで表されている。
【００４５】
図７に示す例では、８つの教示姿勢点Ｐ１〜Ｐ８によってパステーブル１８０が構成されている例を示しているが、動作経路が最終的に初期位置である教示姿勢点Ｐ１に戻るような経路であるときには最終の教示姿勢点Ｐ８をＰ１に置き換えるとよい。なお、ロボット５０ｂ、５０ｃについても同様のパステーブルが存在する。
【００４６】
次に、このように構成されるオフラインティーチング装置１０、及びティーチングデータ設定プログラム３５を用いて、ロボット５０ａ、５０ｂ、５０ｃのティーチングデータ２５８ａ〜２５８ｃ（図２９、図３０、図３１参照）を設定する方法について図８〜図３１を参照しながら説明する。これらの処理は、基本的に、ティーチングデータ設定プログラム３５によって自動的に実行される。
【００４７】
なお、以下の説明では、３台のロボット５０ａ〜５０ｃに対して、そのティーチングデータ２５８ａ〜２５８ｃ（図２９、図３０、図３１参照）を設定する方法について説明するが、適用するロボットの数は、３台に限らず、４台以上でもよいことはもちろんである。また、ロボット５０ａ〜５０ｃは多関節ロボットに限らず、種々のロボットに対して適用可能である。
【００４８】
まず、図８のステップＳ１において、前記パステーブル１８０に基づいて、基本となるティーチングデータを作成する。これによって、各ロボット５０ａ〜５０ｃの標準動作時間が設定される。標準動作時間とは、各ロボット５０ａ〜５０ｃが単体で動作し、インターロックの設定がない状態のティーチングデータに基づいて動作し、途中停止することなく一連の動作を終了することのできる時間である。このステップＳ１で作成されたティーチングデータは、以下の処理によってインターロックの設定等がなされる。
【００４９】
ロボット５０ａ、５０ｂ及び５０ｃの標準動作時間は、６０［ｓｅｃ］、６０［ｓｅｃ］及び５０［ｓｅｃ］であるものとする。また、各ロボット５０ａ〜５０ｃに許容されるサイクルタイム（許容時間）は７０［ｓｅｃ］であるものとする。
【００５０】
次に、ステップＳ２において、３台の多関節ロボット５０ａ、５０ｂ、５０ｃの動作する優先順位を決定する。この優先順位は、例えば、ロボットの相互配置及び／又は標準動作時間の長い順に設定するとよい。
【００５１】
例えば、図１に示すように、ロボット５０ａ〜５０ｃが並んで配置されているときには、その中央に配置されているロボット５０ｂの優先順位を高く（番号を小さく）設定するとよい。つまり、ロボット５０ｂは両脇にロボット５０ａ及び５０ｃが配置されていることから、相互干渉の機会が多くなると判断される。このため、ロボット５０ｂの優先順位を高く設定することにより、相互干渉防止のために一時停止する回数を減らして、作業時間が伸びることを防ぐ必要があり、ロボット５０ｂの優先順位を「１」に設定するとよい。
【００５２】
一般的には、複数のロボットが密集しているときには、より中央に配置されているロボットに対して優先順位を高く設定し、周辺に配置されているロボットの優先順位を低く（番号を大きく）設定するとよい。
【００５３】
また、ロボット５０ａの標準動作時間は６０［ｓｅｃ］であり、ロボット５０ｃの標準動作時間の５０［ｓｅｃ］より長いことから、ロボット５０ａの優先順位を「２」、ロボット５０ｃの優先順位を「３」と設定する。このように設定することにより、ロボット５０ａは、ロボット５０ｃに比べて、相互干渉防止のために一時停止する回数が減り、許容されるサイクルタイムを超える可能性が低くなる。ロボット５０ｃは標準動作時間が比較的短いことから、他のロボット５０ａ、５０ｂより停止回数が多くなっても、許容されるサイクルタイム以内で動作を終了できる可能性が高い。
【００５４】
ロボットの優先順位は、必ずしも順番に設定されている必要はなく、同じ優先順位のロボットが複数あってもよいし、所定の優先順位を不使用（欠番）としてもよい。
【００５５】
このステップＳ２の処理は、オペレータが判断してもよいし、所定のデータベースに基づいて、ティーチングデータ設定プログラム３５が自動的に判断してもよい。
【００５６】
次に、ステップＳ３において、優先順位に従って相互干渉確認順序リスト（動作検証順番）２００（図９参照）を作成する。相互干渉確認順序リスト２００とは、複数のロボットのうち、相互干渉を確認するために２つのロボットを選択する順序を示すものであり、優先順位の番号の加算値が小さい順に並べればよい。また、２つのロボットのうち、優先順位の高低順に並べておくとよい。
【００５７】
なお、図１に示すように、ロボット５０ａ、ロボット５０ｂ及びロボット５０ｃのそれぞれの最大動作範囲２０２ａ、２０２ｂ及び２０２ｃのうち、両側の最大動作範囲２０２ａ及び２０２ｃは離れていて重畳する部分がないため、ロボット５０ａとロボット５０ｃは相互干渉を起こさないことが明らかであることから、順序が３番目のリストは削除しておく。また、図１０に示すように、ロボット５０ａ〜５０ｃが非常に密集して配置されている場合でも、各ティーチングデータに基づく作業動作範囲２０４が重畳しないロボット同士については、対応するロボットの組合せを相互干渉確認順序リスト２００から削除してもよい。
【００５８】
さらに、仮に、ロボットが４台あって、それぞれＲ１、Ｒ２、Ｒ３及びＲ４と表され、優先順位の番号が１、２、３、４であるときには、相互干渉確認順序リスト２００は図１１に示すようになる。この場合、順序が３番目と４番目の組合せは、優先順位の番号の加算値が同じ「５」であることから順序を入れ換えてもよい。
【００５９】
このステップＳ３の処理は、基本的に干渉確認順序生成部１１０ｆ（図３参照）によって実行される。
【００６０】
次のステップＳ４における基本的な処理では、相互干渉確認順序リスト２００の順に、各ロボット５０ａ、５０ｂ、５０ｃの相互干渉の有無を確認して、相互干渉を起こすことが検出された箇所の群をエリアとして設定する。この結果は組合せグラフの形式にまとめる。また、選択された２つのロボットが通常作業時に相互干渉を起こす場合には、優先順位の低いロボットを停止させるように設定する。このステップＳ４の処理の詳細内容については後述する。
【００６１】
次に、ステップＳ５において、相互干渉確認順序リスト２００の全ての「確認順序」についてステップＳ４の相互干渉確認の処理を終了したか否かを確認する。未終了の組合せが残っていれば、残りの分について相互干渉確認順序リスト２００の順序に従ってステップＳ４の処理を実行する。全ての組合せについて相互干渉確認の処理が終了しているときには、次のステップＳ６に移る。
【００６２】
ステップＳ６においては、抽出した組合せグラフについてサイクルタイム以内に収まるものがあるか否かを確認して、適当なものを選択する。サイクルタイム内のものがない場合には、元のティーチングデータの見直しを行う。サイクルタイム内のものが存在する場合には、次のステップＳ７に移る。
【００６３】
ステップＳ７においては、選択した組合せグラフの各エリアに対してインターロックの設定を行い、ティーチングデータの作成を終了する。ステップＳ７の詳細な処理内容については後述する。
【００６４】
次に、前記ステップＳ４の処理内容について図１２を参照しながら詳細に説明する。
【００６５】
まず、ステップＳ１０１において、相互干渉確認順序リスト２００の順序に基づいて、選択された２つのロボットの動作時間（又は動作工程）毎の組合せに対して、相互干渉の有無を検出する。この手順は、例えば、前記特許文献２に記載されている方法を用いるとよい。
【００６６】
このステップＳ１０１により、ロボット５０ａとロボット５０ｂとの相互干渉の確認結果が図１３に示すグラフ２０６で表されるものとする。この場合、干渉が確認された箇所は、マーク「○」で示されるＡ、Ｂ、Ｃ、Ｄ、Ｅの５点であるとする。また、グラフ２０６には、許容されるサイクルタイムを示す制限線２０８と、縦軸に割り振られたロボットの動作終了時刻を示す終了線２０９ａと、横軸に割り振られたロボットの動作終了時刻を示す終了線２０９ｂとが設けられている。制限線２０８は、７０［ｓｅｃ］を示すものとする。グラフは、横軸に優先順位の高いロボットの動作時間が設定されており、縦軸に優先順位の低いロボットの動作時間が設定されている。
【００６７】
グラフ２０６において横軸はロボット５０ｂの動作時間を示し、１０［ｓｅｃ］毎にＲＢｂＰ［０］、ＲＢｂＰ［１］、ＲＢｂＰ［２］、ＲＢｂＰ［３］、ＲＢｂＰ［４］、ＲＢｂＰ［５］、ＲＢｂＰ［６］と表されている。これらのＲＢｂＰ［０］〜ＲＢｂＰ［６］は、ロボット５０ｂのティーチングデータ２５８ｂ（図３０参照）に対応している。同様に、グラフ２０６では縦軸はロボット５０ａの動作時間を示し、１０［ｓｅｃ］毎にＲＢａＰ［０］、ＲＢａＰ［１］、ＲＢａＰ［２］、ＲＢａＰ［３］、ＲＢａＰ［４］、ＲＢａＰ［５］、ＲＢａＰ［６］と表されている。これらのＲＢａＰ［０］〜ＲＢａＰ［６］は、ロボット５０ａのティーチングデータ２５８ａ（図２９参照）に対応している。
【００６８】
以下に示す他の第１〜第５組合せグラフ２０６ａ〜２０６ｅも同様の構成である。ロボット５０ｃの動作時間は、１０［ｓｅｃ］毎にＲＢｃＰ［０］、ＲＢｃＰ［１］、ＲＢｃＰ［２］、ＲＢｃＰ［３］、ＲＢｃＰ［４］、ＲＢｃＰ［５］、ＲＢｃＰ［６］と表され、ロボット５０ｃのティーチングデータ２５８ｃ（図３１参照）に対応している。
【００６９】
なお、マーク「○」が一つも存在しないときには、図１２中に処理の流れを図示しないが、以下のステップＳ１０２〜Ｓ１０７を省略してステップＳ５（図８参照）に移る。
【００７０】
次に、ステップＳ１０２において、マーク「○」の群をそれぞれエリアとして設定するとともに該エリアの組合せを作成し、エリアの数毎にエリア組合せテーブル２１０（図１４参照）に記録する。エリア組合せテーブル２１０のエリア数が「１」の欄には、全てのマーク「○」を含む第１組合せのエリア２１２が記録される。このエリア２１２は、第１組合せグラフ２０６ａ（図１５参照）に設定される。
【００７１】
エリア数が「２」の欄には、マーク「○」を２つのエリアに分ける組合せが記録される。この欄には、例えば、「Ａ」のエリア２１４と「ＢＣＤＥ」のエリア２１６の第２組合せ、「ＡＢ」のエリア２１８と「ＣＤＥ」のエリア２２０の第３組合せ、「ＡＢＣＤ」のエリア２２２と「Ｅ」のエリア２２４の第４組合せ、及び、「ＡＢＤ」のエリア２２６と「ＣＥ」のエリア２２７の第５組合せ等が記録される。エリア２１４及び２１６は、第２組合せグラフ２０６ｂ（図１６参照）に設定され、エリア２１８とエリア２２０は、第３組合せグラフ２０６ｃ（図１７参照）に設定される。また、エリア２２２とエリア２２４は、第４組合せグラフ２０６ｄ（図１８参照）に設定され、エリア２２６とエリア２２７は、第５組合せグラフ２０６ｅ（図１９参照）に設定される。エリア数が「３」以降の組合せについても同様に記録される。
【００７２】
エリアの組合せを作成する方法は、例えば、前記特許文献１又は２に記載されている方法を用いるとよい。また、全てのマーク「○」に対する総組合せを作成してもよい。隣接するエリア同士は一部が重複していてもよい。
【００７３】
次に、ステップＳ１０３において、エリア組合せテーブル２１０におけるエリア数がインターロック割当数（閾値）より大きい欄を削除する。インターロック割当数は、実際の製造ラインで設定されているインターロックの数を使用するものであり、本実施の形態に係るオフラインティーチング装置１０においては、インターロック割当数を２とする。つまり、エリア組合せテーブル２１０における「エリア数」が「３」以上の領域は削除する。
【００７４】
なお、前記ステップＳ１０２におけるエリア組合せテーブル２１０の作成時に、予めインターロック割当数内のエリア数に対応する組合せだけを記録するようにしてもよい。
【００７５】
次に、ステップＳ１０４において、エリア組合せテーブル２１０に記録された各組合せについて、選択されている２つのロボットが通常動作を行う際に相互干渉があるか否かを確認する。つまり、第１〜第５組合せグラフ２０６ａ〜２０６ｅにおける対角状の行程線２３０がいずれかのエリアと交差するか否かを確認すればよい。行程線２３０がいずれのエリアとも交差しない場合、すなわち相互干渉がない場合にはステップＳ１０７へ移り、通常動作時における相互干渉がある場合にはステップＳ１０５に移る。
【００７６】
ステップＳ１０５においては、第１〜第５組合せグラフ２０６ａ〜２０６ｅに対して、行程線２３０が交差するエリア２１２、２１６、２１８、２２２、２２６が、行程線２３０と交差しない位置まで、上方向の（縦軸方向）スペース２３２又は右方向（横軸方向）のスペース２３３を挿入してシフトさせる。つまり、相互干渉を起こさないように、スペース２３２又は２３３で表される時間だけ一方のロボットを途中停止させ、又は、動作開始時間を遅らせることになる。このシフト処理は、後にエリアに入るロボットを途中停止させるように設定する。また、終了線２０９ａ、２０９ｂも同様に上又は右方向へシフトさせる。また、制限線２０８はそのままの位置に維持する。
【００７７】
図１５に示すように、第１組合せグラフ２０６ａについては、ロボット５０ａとロボット５０ｂのどちらが先にエリア２１２に進入するか判定ができない。この場合、オペレータの設定に基づいて次の３つの処理から１つを選択して実行する。
【００７８】
第１の処理では、シフト処理不可能として、第１組合せグラフ２０６ａを削除する。
【００７９】
第２の処理では、優先順位の高いロボット５０ｂに対して先にインターロック設定がなされるように、エリア２１２を１ブロック分左方向（時間的に先の方向）に拡大したエリア２１３を設定する。そして、図２０に示すように、優先順位の低いロボット５０ａを停止させるように上方向のスペース２３２を挿入して、エリア２１３を２ブロック分上へシフトさせればよい。
【００８０】
第３の処理では、ＲＢｂＰ［０］とＲＢｂＰ［１］の間に、干渉を回避することのできる別の姿勢を作りエリアを設定し直せばよい。
【００８１】
図１６に示すように、第２組合せグラフ２０６ｂについては、エリア２１６に対してロボット５０ｂが先に進入する。従って、図２１に示すように、ロボット５０ａを停止させるように上方向のスペース２３２を挿入して、エリア２１６を１ブロック分上へシフトさせればよい。
【００８２】
図１７に示すように、第３組合せグラフ２０６ｃについては、エリア２１８に対してロボット５０ａが先に進入する。従って、図２２に示すように、ロボット５０ｂを停止させるように右方向のスペース２３３を挿入して、エリア２１８を１ブロック分右へシフトさせればよい。
【００８３】
図１８に示すように、第４組合せグラフ２０６ｄについては、前記第１組合せグラフ２０６ａと同様にロボット５０ａとロボット５０ｂのどちらが先にエリア２２２に進入するか判定ができない。従って、前記第１〜第３の処理を選択的に実行すればよい。この場合、前記第２の処理を実行する場合には、エリア２２２を１ブロック分左方向（時間的に先の方向）に拡大したエリア２２３を設定する。そして、図２３に示すように、優先順位の低いロボット５０ａを停止させるように上方向のスペース２３２を挿入して、エリア２２３及び２２４を２ブロック分上へシフトさせればよい。
【００８４】
図１９に示すように、第５組合せグラフ２０６ｅについては、エリア２２６に対してロボット５０ａが先に進入する。従って、図２４に示すように、ロボット５０ｂを停止させるように右方向のスペース２３３を挿入して、エリア２２６を３ブロック分右へシフトさせればよい。
【００８５】
このステップＳ１０５の処理は、結果的には、一方のロボットがエリアを通過するまで、他方のロボットを一時停止させるように、ティーチングデータ２５８ａ（図２９参照）を仮補正することと同じ処理である。
【００８６】
このステップＳ１０５の処理は、基本的に相互干渉計算結果シフト部１１０ｇ（図３参照）によって実行される。
【００８７】
次に、ステップＳ１０６において、上方向にシフトした組合せグラフの中から、それぞれの組合せがサイクルタイム内で終了するか否かを確認し、サイクルタイムを超える組合せを削除する。具体的には、第１、第２及び第４組合せグラフ２０６ａ、２０６ｂ及び２０６ｄに対して、それぞれの終了線２０９ａがサイクルタイムの制限時間を示す制限線２０８を超えているか否かを確認する。終了線２０９ａが制限線２０８を超えている組合せグラフは削除する。つまり、第１、第４組合せグラフ２０６ａ、２０６ｄは削除され、第２組合せグラフ２０６ｂだけが残る。
【００８８】
右方向にシフトした組合せグラフを排除することにより、２台のロボット間における動作の優先順位が保たれる。
【００８９】
ただし、上方向にシフトした組合せグラフの中にサイクルタイム内で終了するものがない場合には、右方向にシフトした組合せグラフの中から終了線２０９ｂがサイクルタイムの制限時間を示す制限線２０８以内であるものを選択するようにしてもよい。この場合、第３組合せグラフ２０６ｃが選択される。
【００９０】
次に、ステップＳ１０７において、残った組合せをＲＡＭ２９等の記録部に記録した後、ステップＳ５（図８参照）に移る。
【００９１】
なお、上記のステップＳ１０１〜１０７の説明では、相互干渉確認順序リスト２００の「確認順序」が１番目であるロボット５０ａとロボット５０ｂとの組合せについて行う処理を例にして説明したが、「確認順序」が２番目であるロボット５０ｂとロボット５０ｃとの組合せについてもステップＳ１０１〜Ｓ１０７の処理を行う。この場合、図２５の組合せグラフ２０７ａに示すように、１つのエリア２４０をもつ場合と、図２６の組合せグラフ２０７ｂに示すように、２つのエリア２４２、２４４をもつ場合があるものとする。これらの場合には、エリア２４０、２４２、２４４は行程線２３０と交差することがないので、ステップＳ１０５及びＳ１０６の処理は不要であり、そのまま記録部に記録される。
【００９２】
また、このように、ステップＳ４（つまりステップＳ１０１〜１０７）を複数回行うときで、２回目以降のときには、それ以前に行った結果を反映させて行う。例えば、図１１に示す相互干渉確認順序リスト２００に基づいて、４台のロボットＲ１〜Ｒ４についてステップＳ４の処理を行う場合、ロボットＲ１とロボットＲ２との相互干渉をステップＳ４によって確認して、ロボットＲ２に対するエリア及び終了線２０９ａ、２０９ｂをシフトさせる処理（ステップＳ１０５）を行った後に、「確認順序」が「３」においてロボットＲ２とロボットＲ３との相互干渉をステップＳ４で確認する際には、ロボットＲ２のデータをシフトさせたままの状態の組合せグラフに基づいて処理を行う。このようにすることで、複数のロボットの相互間における干渉状態を適切に反映させることができる。
【００９３】
この後、ステップＳ６（図８参照）において、適当な組合せグラフを選択すればよい。組合せグラフを選択する際の基準は、エリアが少ないものを優先して選択し、次に動作時間の短いものを選択するとよい。従って、上記の例では図１６の第２組合せグラフ２０６ｂと図２５の組合せグラフ２０７ａとを選択することとなる。
【００９４】
次に、インターロックを設定する前記ステップＳ７の処理内容について図２７〜図３１を参照しながら詳細に説明する。ここでは、選択された第２組合せグラフ２０６ｂ及び組合せグラフ２０７ａについてインターロックを設定する例について説明する。
【００９５】
まず、図２７のステップＳ２０１において、図２８に示すインターロック表２５０に、第２組合せグラフ２０６ｂ及び組合せグラフ２０７ａのエリア２１４、２１６及び２４０（図１６及び図２５参照）に対応する予約設定を記録する。インターロック表２５０は、本実施の形態で設定される４つのインターロックをエリア毎に予約設定するための表であり、このインターロック表２５０で予約設定を行うことにより、インターロック設定部１１６（図３参照）によって共有メモリ１２０（図４Ａ参照）に対応する所定の記録領域が確保される。
【００９６】
この予約設定は、各エリア２１４、２１６及び２４０毎に、相互干渉を起こす１対のロボットに対して設定される。具体的には、エリア２１６に対しては、１番目のインターロックＩＬ１の欄に予約２５２を記録する。予約２５２は、ロボット５０ａのロボット５０ｂに対するインターロックを示す「ＲＢｂ−１」と、ロボット５０ｂのロボット５０ａに対するインターロックを示す「ＲＢａ−１」とからなり、それぞれ「ＲＢａ」列と「ＲＢｂ」列に記録して予約する。同様に、エリア２１４に対しては、２番目のインターロックＩＬ２の欄に予約２５４を記録する。
【００９７】
予約２５４は、ロボット５０ａのロボット５０ｂに対するインターロックを示す「ＲＢｂ−２」と、ロボット５０ｂのロボット５０ａに対するインターロックを示す「ＲＢａ−２」とからなり、それぞれ「ＲＢａ」列と「ＲＢｂ」列に記録して予約する。また、エリア２４０に対しては、３番目のインターロックＩＬ３の欄に予約２５６を記録する。予約２５６は、ロボット５０ｂのロボット５０ｃに対するインターロックを示す「ＲＢｃ−１」と、ロボット５０ｃのロボット５０ｂに対するインターロックを示す「ＲＢｂ−１」とからなり、それぞれ「ＲＢｂ」列と「ＲＢｃ」列に記録して予約する。
【００９８】
次に、ステップＳ２０２において、ロボット５０ａ、５０ｂ、５０ｃに対する各ティーチングデータ２５８ａ、２５８ｂ、２５８ｃにインターロック設定を行う。インターロック設定は、基本的には、各ロボット５０ａ、５０ｂ、５０ｃがエリアの端部を形成する一端の軸に差しかかる時にオンとし、他端の軸から抜け出るときにオフとなるように設定する。
【００９９】
具体的には、ロボット５０ａについては、エリア２１４に対応するインターロックＩＬ２について、図１６及び図２９に示すように、エリア２１４の一端の軸２６０に差しかかるＲＢａＰ［１］に「ＲＢｂ−２ＯＮ」を記録する。この「ＲＢｂ−２ＯＮ」は「ＲＢｂ−２」（図２８参照）をオンにする命令である。また、エリア２１４の他端の軸２６２から抜け出すＲＢａＰ［２］に「ＲＢｂ−２ＯＦＦ」を記録する。この「ＲＢｂ−２ＯＦＦ」は「ＲＢｂ−２」をオフにする命令である。
【０１００】
さらに、軸２６２はエリア２１６の一端となっていることから、ＲＢａＰ［２］には「ＲＢｂ−１ＯＮ」を記録する。この「ＲＢｂ−１ＯＮ」はインターロックＩＬ１の「ＲＢｂ−１」（図２８参照）をオンにする命令である。エリア２１６の他端である軸２６４から抜け出すＲＢａＰ［６］には「ＲＢｂ−１ＯＦＦ」を記録する。この「ＲＢｂ−１ＯＦＦ」はインターロックＩＬ１の「ＲＢｂ−１」（図２８参照）をオフにする命令である。
【０１０１】
図３０及び図３１に示すように、ロボット５０ｂに対するティーチングデータ２５８ｂ及びロボット５０ｃに対するティーチングデータ２５８ｃに対しても同様にインターロックの設定を行う。
【０１０２】
また、同時に２つのロボットが同じエリアに進入する場合には、そのような組合せグラフを予め無効にするか、又は、優先順位の高いロボットの方を、仮想的に前段階でエリアに進入するものとしてインターロックを設定するとよい。
【０１０３】
さらに、優先順位の低いロボットがエリアに先に進入する場合には、そのような組合せグラフを予め無効にするか、又は、優先順位の高いロボットが先にエリアに進入する時間に姿勢を作成し、そこからエリアに進入するように設定するとよい。これらの設定は、オペレータが判断するようにしてもよい。
【０１０４】
このようにティーチングデータ２５８ａ〜２５８ｃに、エリア２１４、２１６及び２４０に対するインターロックの設定を行うことにより、ロボット５０ａ〜５０ｃが相互干渉を起こすことを防止できる。例えば、ロボット５０ａがティーチングデータ２５８ａに従ってＲＢａＰ［２］の「ＲＢｂ−１ＯＮ」を実行しようとする際、それ以前に、ロボット５０ｂのティーチングデータ２５８ｂによって「ＲＢａ−１ＯＮ」が実行されているので、インターロックＩＬ１が共有メモリ１２０（図４Ａ参照）上で競合する。従って、ティーチングデータ２５８ａによる「ＲＢｂ−１ＯＮ」の実行は保留され、ロボット５０ｂは一時停止することになる。その後、ロボット５０ｂのティーチングデータ２５８ｂがＰＢ２Ｐ［３］で「ＲＢａ−１ＯＦＦ」を実行することにより、インターロックＩＬ１は解放される。これにより、ティーチングデータ２５８ａは、ＲＢａＰ［２］の「ＲＢｂ−１ＯＮ」を実行することができ、ロボット５０ａの動作が再開される。こうしてロボット５０ａは途中で一時停止することになるが、前記ステップＳ１０６（図１２参照）を実行していることにより、許容されるサイクルタイムの７０［ｓｅｃ］以内に動作を終了させることができる。
【０１０５】
また、インターロックの設定方法は、例えば、前記特許文献１に記載されている方法等を用いてもよい。
【０１０６】
さらに、パステーブル１８０、グラフ２０６及び相互干渉確認順序リスト２００等は、図示したようなオペレータが認識できる形で表されていなくてもよく、ＣＰＵ２６が認識可能なようにＲＡＭ２９上に記録されていればよい。
【０１０７】
この発明に係るロボットのティーチングデータ設定方法は、上述の実施の形態例に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【発明の効果】
以上説明したように、本発明に係るロボットのティーチングデータ設定方法によれば、３台以上のロボットが同時に動作するための各ロボットのティーチングデータを設定する際、各ティーチングデータを、ロボット相互の干渉を確実に防止するように、簡便な手段によって設定することができる。
【図面の簡単な説明】
【図１】本実施の形態で使用するオフラインティーチング装置及びロボット装置を示す説明図である。
【図２】オフラインティーチング装置の構成を示すブロック図である。
【図３】相互干渉検証プログラムの構成を示すブロック図である。
【図４】図４Ａは、各ロボット制御部に共有メモリを設けた例を示すブロック図であり、図４Ｂは、外部の記憶装置に共有メモリを設けた例を示すブロック図であり、図４Ｃは、制御部に共有メモリを設けた例を示すブロック図である。
【図５】ロボットの構成を示す模式斜視図である。
【図６】Ｘ型溶接ガンを示す模式図である。
【図７】パステーブルの内容を示す図である。
【図８】本実施の形態に係るロボットのティーチングデータ設定方法の手順を示すフローチャートである。
【図９】相互干渉確認順序リストの内容を示す図である。
【図１０】ロボットが密集して配置されている場合における各ロボットの作業動作範囲を示す模式平面図である。
【図１１】４台のロボットに対して作成した相互干渉確認順序リストの内容を示す図である。
【図１２】各ロボットの相互干渉の有無を確認し、通常作業時に相互干渉を起こす場合には、優先順位の低いロボットを停止させるように設定する手順を示すフローチャートである。
【図１３】相互干渉確認順序リストにおける確認順序１番目のロボットに対して、動作時間毎の組合せの相互干渉の有無を検出した結果を示すグラフである。
【図１４】エリア組合せテーブルの内容を示す図である。
【図１５】相互干渉を示すマークを１つのエリアにまとめた状態を示すグラフである。
【図１６】相互干渉を示すマークを２つのエリアにまとめた状態を示す第１例のグラフである。
【図１７】相互干渉を示すマークを２つのエリアにまとめた状態を示す第２例のグラフである。
【図１８】相互干渉を示すマークを２つのエリアにまとめた状態を示す第３例のグラフである。
【図１９】相互干渉を示すマークを２つのエリアにまとめた状態を示す第４例のグラフである。
【図２０】前記図１５のグラフを、エリアと行程線が交差しないように優先順位の低いロボットのデータを上へシフトさせた状態のグラフである。
【図２１】前記図１６のグラフを、エリアと行程線が交差しないように優先順位の低いロボットのデータを上へシフトさせた状態のグラフである。
【図２２】前記図１７のグラフを、エリアと行程線が交差しないように優先順位の高いロボットのデータを右へシフトさせた状態のグラフである。
【図２３】前記図１８のグラフを、エリアと行程線が交差しないように優先順位の低いロボットのデータを上へシフトさせた状態のグラフである。
【図２４】前記図１９のグラフを、エリアと行程線が交差しないように優先順位の高いロボットのデータを右へシフトさせた状態のグラフである。
【図２５】相互干渉確認順序リストにおける確認順序２番目のロボットに対して、動作時間毎の組合せの相互干渉の有無を検出し、マークを１つのエリアにまとめた結果を示すグラフである。
【図２６】相互干渉確認順序リストにおける確認順序２番目のロボットに対して、動作時間毎の組合せの相互干渉の有無を検出し、マークを２つのエリアにまとめた結果を示すグラフである。
【図２７】インターロックの設定手順を示すフローチャートである。
【図２８】インターロック表の内容を示す図である。
【図２９】第１多関節ロボットのティーチングデータの内容を示す図である。
【図３０】第２多関節ロボットのティーチングデータの内容を示す図である。
【図３１】第３多関節ロボットのティーチングデータの内容を示す図である。
【符号の説明】
１０…オフラインティーチング装置      １２…ロボット装置
２２ａ〜２２ｃ…ロボット制御部        ２６、１２２…ＣＰＵ
３５…ティーチングデータ設定プログラム
３７…データベース                    ５０ａ〜５０ｃ…ロボット
１００…データ読込み部                １０２…データ記録部
１０８…ロボット動作プログラム生成部  １１０…相互干渉確認部
１１０ａ…動作計画計算部              １１０ｂ…相互干渉計算部
１１０ｃ…ロボット姿勢サンプリング部  １１０ｄ…姿勢組合せ生成部
１１０ｅ…ロボット動作実行部          １１０ｆ…干渉確認順序生成部
１１０ｇ…相互干渉計算結果シフト部    １１４…相互干渉結果分析部
１１６…インターロック設定部          １２０…共有メモリ
１８０…パステーブル                  ２００…相互干渉確認順序リスト
２０６…グラフ
２０６ａ〜２０６ｅ、２０７ａ、２０７ｂ…組合せグラフ
２０８…制限線                        ２０９ａ、２０９ｂ…終了線
２１０…エリア組合せテーブル
２１２、２１３、２１４、２１６、２１８、２２０、２２２、２２３、２２４、２２６、２２７、２４０、２４２、２４４…エリア
２３０…行程線                        ２５０…インターロック表
２５８ａ〜２５８ｃ…ティーチングデータ
【図１】
2004358630.tif 000003
【図２】
2004358630.tif 000004
【図３】
2004358630.tif 000005
【図４】
2004358630.tif 000006
【図５】
2004358630.tif 000007
【図６】
2004358630.tif 000008
【図７】
2004358630.tif 000009
【図８】
2004358630.tif 000010
【図９】
2004358630.tif 000011
【図１０】
2004358630.tif 000012
【図１１】
2004358630.tif 000013
【図１２】
2004358630.tif 000014
【図１３】
2004358630.tif 000015
【図１４】
2004358630.tif 000016
【図１５】
2004358630.tif 000017
【図１６】
2004358630.tif 000018
【図１７】
2004358630.tif 000019
【図１８】
2004358630.tif 000020
【図１９】
2004358630.tif 000021
【図２０】
2004358630.tif 000022
【図２１】
2004358630.tif 000023
【図２２】
2004358630.tif 000024
【図２３】
2004358630.tif 000025
【図２４】
2004358630.tif 000026
【図２５】
2004358630.tif 000027
【図２６】
2004358630.tif 000028
【図２７】
2004358630.tif 000029
【図２８】
2004358630.tif 000030
【図２９】
2004358630.tif 000031
【図３０】
2004358630.tif 000032
【図３１】
2004358630.tif 000033
【手続補正書】
【提出日】平成16年2月3日(2004.2.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
【従来の技術】
従来、製造ラインに設置された多関節ロボットを直接操作させて作業姿勢のティーチングを行おうとすると、多関節ロボットの操作を熟知したオペレータが製造ラインの現場で作業を行わなければならない。その為、作業時間が限られ作業が非効率的となってしまう。また、その作業は、製造ラインを停止させた状態で行う必要があるために当該製造ラインの稼働率も低下してしまう。