(57)【特許請求の範囲】
【請求項１】
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、移動経路が異なる類似ワークに設計変更された場合に適用され、
前記基本ロボットプログラムに記述されたロボット座標系上の座標位置は、当該基本ロボットプログラムを実行することにより前記作業ロボットのツール先端が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られたロボット座標系上の座標位置が記述された基本ロボットプログラムをベースにして、前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを代入することによって、ロボット座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本ロボットプログラム中にロボット座標系で記述された基本ワークの座標位置をシフトすることによって、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項２】
前記基本ワークと前記類似ワークのワーク座標系上の座標位置データは、ＣＡＤの出力データとして前記変換プログラムに与えられること
を特徴とする請求項１記載の作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項３】
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、移動経路が異なる類似ワークに設計変更された場合に適用され、
前記基本ロボットプログラムに記述されたロボット座標系上の座標位置は、当該基本ロボットプログラムを実行することにより前記作業ロボットのツール先端が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られたロボット座標系上の座標位置が記述された基本ロボットプログラムをベースにして、前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意するとともに、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置データのファイルを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記マクロの処理を実行させることによって、前記ファイルから前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを読み出して、ロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されている基本ワークの座標位置を、前記演算した差分だけシフトして、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項４】
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、ＣＡＤによって、類似ワークに設計変更された場合に適用され、
前記基本ロボットプログラムに記述されたロボット座標系上の座標位置は、当該基本ロボットプログラムを実行することにより前記作業ロボットのツール先端が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られたロボット座標系上の座標位置が記述された基本ロボットプログラムをベースにして、前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記ＣＡＤによって類似ワークが設計されるに応じて、前記ＣＡＤから前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを出力して前記マクロの処理を実行させ、ロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されている基本ワークの座標位置を、前記演算した差分だけシフトして、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項５】
作業ロボットとワークとの位置関係を変更するポジショナまたはスライダを備え、作業ロボットのツールの先端が移動すべきワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿ってツール先端が移動するように前記作業ロボットおよび前記ポジショナまたはスライダを駆動制御するようにした作業ロボットシステムにおいて、
前記ポジショナまたはスライダの各軸位置が変更された場合に適用され、
前記基本ロボットプログラムに記述されたロボット座標系上の座標位置は、当該基本ロボットプログラムを実行することにより前記作業ロボットのツール先端が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られたロボット座標系上の座標位置が記述された基本ロボットプログラムをベースにして、前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置を変数として、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置データを代入することによって、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本ロボットプログラム中にロボット座標系で記述されたワークの座標位置をシフトすることによって、各軸位置変更後に適合したロボットプログラムを作成すること
を特徴とする作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項６】
作業ロボットとワークとの位置関係を変更するポジショナまたはスライダを備え、作業ロボットのツールの先端が移動すべきワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿ってツール先端が移動するように前記作業ロボットおよび前記ポジショナまたはスライダを駆動制御するようにした作業ロボットシステムにおいて、
前記ポジショナまたはスライダの各軸位置が変更された場合に適用され、
前記基本ロボットプログラムに記述されたロボット座標系上の座標位置は、当該基本ロボットプログラムを実行することにより前記作業ロボットのツール先端が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られたロボット座標系上の座標位置が記述された基本ロボットプログラムをベースにして、前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置を変数として、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意するとともに、
前記ワークのワーク座標系上の座標位置データのファイルを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記マクロの処理を実行させることによって、前記ファイルから前記ワークのワーク座標系上の座標位置データを読み出して、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されているワークの座標位置を、前記演算した差分だけシフトして、各軸位置変更後に適合したロボットプログラムを作成すること
を特徴とする作業ロボットシステムにおけるロボットプログラム作成装置。
【請求項７】
自動制御機器の作業具が移動すべき基本作業対象上の移動経路の各座標位置を、作業対象座標系上の座標位置から自動制御機器座標系上の座標位置に変換して、自動制御機器座標系で各座標位置が記述された基本プログラムを予め作成し、この作成された基本プログラムに記述された各座標位置に沿って前記自動制御機器の作業具先端が移動するように、前記自動制御機器を駆動制御するようにした自動制御機器システムにおいて、
前記基本作業対象が、移動経路が異なる類似作業対象に設計変更された場合に適用され、
前記基本プログラムに記述された自動制御機器座標系上の座標位置は、当該基本プログラムを実行することにより前記自動制御機器の作業具が実際に移動した移動点と教示された移動点との誤差を修正することにより得られた座標位置であって、
当該誤差を修正することにより得られた自動制御機器座標系上の座標位置が記述された基本プログラムをベースにして、前記基本作業対象と前記類似作業対象の作業対象座標系上の座標位置を変数として、自動制御機器座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記基本作業対象と前記類似作業対象の作業対象座標系上の座標位置データを代入することによって、自動制御機器座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本プログラム中に自動制御機器座標系で記述された基本作業対象の座標位置をシフトすることによって、前記類似作業対象に適合したプログラムを作成すること
を特徴とする自動制御機器システムにおけるプログラム作成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は溶接ロボット等の作業ロボットを駆動制御してワークを溶接等する作業ロボットシステムあるいは自動制御機器を駆動制御する自動制御機器システムに関し、特に作業ロボットシステムあるいは自動制御機器システムにおいてプログラムを作成する装置に関するものである。
【０００２】
【従来の技術】
アーク溶接等を行う溶接ロボットは、最適溶接位置を確保するポジショナやスライダ（走行台車）と組み合わせてワークを溶接する作業を行う。溶接ロボットでは、ロボット各軸が駆動制御されることにより、溶接トーチの先端が溶接線に沿って移動され、溶接作業が行われる。ここで溶接作業を行わせるためには、ロボットの作業内容を教示して、ロボットの制御プログラムとしてのロボットプログラムを作成する必要がある。
【０００３】
ロボットに作業内容を教示する方法には、作業者がロボットを手動動作させることにより所望の位置、姿勢角度を教示するティーチングプレイバック方式と、ロボットのコントローラとは独立したコンピュータ上にロボットやワークのモデルを構築し、そのモデルを使用してロボットの位置、姿勢角度を教示するオフラインティーチング方式とがある。
【０００４】
しかしティーチングプレイバック方式によるときは、生産設備や治具、対象ワークが現実に揃っている必要があり、ティーチング作業をしているときは設備等を占有するので、生産現場での作業中断を招き、作業効率上望ましくない。
【０００５】
そこで溶接分野でのティーチングは、外部から数値データやプログラム形式で情報を入力することにより生産ラインから離れてティーチングできるオフラインティーチング方式が主流となっている。
【０００６】
従来のオフラインティーチングを図３０を参照して説明する。たとえば溶接対象のワークは図９に示すようなワーク１０Ａであるとする。
【０００７】
図３０に示すように３次元ＣＡＤ用端末１１で、３次元ＣＡＤ（コンピュータ・エイデッド・デザイン）のソフトウエアによって溶接対象のワーク１０Ａがワーク座標系で作成される。なお３次元ＣＡＤ用端末１１の代わりに２次元ＣＡＤ用端末１１′を使用してもよい。
【０００８】
つぎに３次元ＣＡＤ用端末１１からワーク１０Ａの座標位置データがオフラインティーチング用端末６に取り込まれる。オフラインティーチング用端末６では、ワーク１０Ａの座標位置のデータから溶接線のデータが作成され、ロボットのツール先端が移動すべき移動経路Ｌ上の各移動点（図９参照）がロボット座標系上で定義される。
【０００９】
すなわち溶接ロボットがたとえば６軸（Ｘ、Ｙ、Ｚ、Ａ、Ｂ、Ｃ）のロボットであれば、ツール先端の位置および姿勢角度のデータ（Ｘ、Ｙ、Ｚ、Ａ、Ｂ、Ｃ）が各移動点毎に教示されることになる。またポジショナあるいはスライダの各軸のデータ（Ｒ、Ｓ、Ｔ、Ｕ、Ｖ、Ｗ、Ｊ、Ｋ、Ｌ）についても各移動点毎に教示される。
【００１０】
このようにして図１０に示すようにワーク１０Ａに対応したロボットプログラム３０Ａが作成される。
【００１１】
ここで本明細書で使用する用語を定義しつつ図１０のロボットプログラム３０Ａの内容について説明する。
【００１２】
ロボットプログラムはジョブあるいはティーチングデータとほぼ同義で使用する。
【００１３】
ジョブとはロボットが行う作業の一単位のことであり、各ジョブが実行されることにより作業が終了する。
【００１４】
ロボットプログラムはジョブ単位で作成される。
【００１５】
ジョブは、各ステップ（工程）毎に、「コマンド（補間方法）」、「溶接条件データ」、「速度データ」、「各軸の位置、姿勢角データ」が対応づけられている。
【００１６】
図１０のロボットプログラム３０Ａのたとえばステップ３では、「ＥＸ（外部）各軸  位置」というコマンド（補間方法）、「速度Ｆ４  パス２」という速度データ、「Ｘ＝１４０．８９  Ｙ＝１０００．００  Ｚ＝１１１７．９９  Ａ＝７４．７３  Ｂ＝−８９．９９  Ｃ＝２．０９  Ｕ＝９３．００  Ｖ＝４０．００」という各軸の位置、姿勢角データがそれぞれ記述されている。
【００１７】
また、たとえばステップ７では、「溶接  １層盛」というコマンド、「条件６０６  電源１」という溶接条件がそれぞれ記述されている。
【００１８】
このようにしてオフラインティーチング用端末６にてロボットプラグラムとしてのジョブデータが作成される。
【００１９】
このようにして作成されたジョブデータは、プログラム作成用端末１２に送られる。プログラム作成用端末１２ではテキスト/バイナリ変換などの処理がなされジョブデータがフロッピディスクに書き込まれる。
【００２０】
このフロッピディスクがロボット１のコントローラに読み出し可能に装着され、これによりロボット１が駆動される。なお教示された移動点と実際の移動点との誤差は、実際にロボット１を動かして現場で修正される。またオフラインティーチングで対処できないコマンドは現場で教示される。
【００２１】
しかし、上述したように、各ステップ（工程）毎に、「コマンド（補間方法）」、「溶接条件データ」、「速度データ」、「各軸の位置、姿勢角データ」を記述するという作業は、人手によるものであるため、煩雑である。
【００２２】
この場合ワークの種類が異なればワークの種類毎にロボットプラグラムを作成しなければならず、ワークの種類が多種類にわたる現場ではとりわけ煩雑なものとなる。
【００２３】
また溶接線を指定する作業等は、ティーチングの知識のみならず溶接の知識や技能、ノウハウ等を要し、一定レベル以上の熟練者でなければ作業することができない。
【００２４】
このため従来のオフラインティーチングは作業に時間がかかりアーク溶接等のノウハウ等をもっていないオペレータは実質的に作業ができないことになっていた。
【００２５】
そこで近年オフラインティーチングに自動プログラミングの技術が導入されている。
【００２６】
自動プログラミングの技術によれば、類似したワークに関してジョブを、ワークの設計情報に基づいて、決められたルールにしたがい自動的に生成することができる。これによりティーチングに要する時間が短縮され、溶接のノウハウ等を有しないオペレータであってもジョブを作成することが可能になる。
【００２７】
しかし自動プログラミングでオフラインティーチングを行うシステムを開発するためには、溶接作業のパターンを類似ワーク毎に分類してパターン毎にルールを作成することが必要になる。ただし類似ワークといっても、ワーク間で微妙に異なるので、これをパターン分けする作業自体が実際には難しい。また現場でジョブの変更があった場合に、その情報を自動プログラミングのシステムにフィードバックすることも実際には困難である。
【００２８】
ここで、類似する定型的なワークに関するロボットプログラムの作成の容易化、作業効率の改善を図る技術として、たとえば特開昭６４−６４０１６号公報に記載されたものがある。
【００２９】
この公報に記載された発明は、ＣＡＤで定型的なワークの設計データを作成し、これにより予め溶接位置を変数として記述することによって、ベースとなるロボットプログラムを作成しておき、具体的なワークの溶接位置データがＣＡＤで得られたならば、ベースプログラム中の溶接位置変数に、ＣＡＤから渡された位置データを組み込み、類似する個々のワークに対応したロボットプログラムを作成するというものである。
【００３０】
【発明が解決しようとする課題】
上述した公報記載の発明は、確かにワークの位置データを、ベースとなるプログラムの変数に組み込むだけの作業でよく、オペレータがティーチングや溶接についての高度の知識を要せずとも、煩雑なロボットプログラムの作成を容易に行なえ、これにより作業効率が向上するという利点がある。
【００３１】
しかし、ベースとなるロボットプログラムは、各溶接位置を変数として記述したものであり、具体的な数値データとして記述したものではないので、実際に現場で使用されて動作が確認されたものではない。
【００３２】
ところが現場のロボット、ポジショナやスライダには、機差があり、オフラインで作成したロボットプログラムをそのまま実行しても、実際には想定した通りの移動経路を通過しなかったり、微妙な軌跡ずれ、位置ずれが生じることがある。
【００３３】
したがってベースプログラムを元に個々のワークのロボットプログラムを作成し得たとしても、そのプログラムを実行させて動作確認を必ず行わなければならない。また動作確認後にプログラムを修正する作業を行わなければならない。そしてこれらの動作確認とプログラム修正作業は、個々のワーク毎に行う必要がある。
【００３４】
このようにロボットプログラムの動作確認とプログラム修正作業を個々のワーク毎に行うことは、多大な負担をオペレータに与えるとともに作業効率上望ましくない。
【００３５】
本発明はこうした実状に鑑みてなされたものであり、実際の現場で使用された基本ロボットプログラムをベースにして、類似するワークのロボットプログラムを容易に作成できるようにするとともに、現場のロボット等の機差をプログラム中に織り込むようにして、実際にロボットを動かす動作確認とプログラム修正作業を実質的になくし作業効率を向上させることを解決課題とするものである。
【００３６】
【課題を解決するための手段および効果】
第１発明は、
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、移動経路が異なる類似ワークに設計変更された場合に適用され、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを代入することによって、ロボット座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本ロボットプログラム中にロボット座標系で記述された基本ワークの座標位置をシフトすることによって、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする。
【００３７】
第１発明を図６、図７、図８を参照して説明する。
【００３８】
第１発明は、図６（ａ）に示す基本ワーク１０Ｐ（移動経路２０）が、図６（ｂ）に示すように移動経路２０′が異なる類似ワーク１０Ｑに設計変更された場合に適用される。
【００３９】
図７に示すように基本ワーク１０Ｐの基本ロボットプログラム３０Ｐは、ロボット座標系上の座標位置データＲs、Ｒeで記述されている。
【００４０】
そこで基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換する変換プログラムＦnが用意される。
【００４１】
そして図８に示すように変換プログラムＦnに、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置データが代入されることによって、ロボット座標系上の座標位置の差分が演算され、この演算した差分だけ、基本ロボットプログラム３０Ｐ中にロボット座標系で記述された基本ワーク１０Ｐの座標位置Ｒs、Ｒeがシフトされ、シフトされたロボット座標系上の座標位置Ｒs′、Ｒe′が求められる。これによって類似ワーク１０Ｑに適合したロボットプログラム３０Ｑが作成される。
【００４２】
第１発明で、ベースとなる基本ロボットプログラム３０Ｐは、基本ワーク１０Ｐのプログラムとして作成されたものであり、実際に現場で使用されて動作が確認され、その上でプログラム修正がなされており、ロボット等の機差が既に織り込まれている。すなわち基本ロボットプログラム３０Ｐを実行すればロボットのツール先端は移動経路２０に沿って精度よく移動する。
【００４３】
そこで基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置の差分に相当する分だけ、基本ロボットプログラム３０Ｐ中にロボット座標系で記述された座標位置Ｒs、Ｒeをシフトさせることによって、ロボットプログラム３０Ｑを作成すれば、このロボットプログラム３０Ｑについても基本ロボットプログラム３０Ｐと同様に、既に機差が織り込まれており、移動経路２０′に沿って精度よくロボットのツール先端が移動する。つまり類似ワーク１０Ｑのロボットプログラム３０Ｑについては、ロボットを実際に動かす動作確認やプログラム修正の必要はない。
【００４４】
このように第１発明によれば、基本ロボットプログラム３０Ｐのロボット座標位置を、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｑを作成するようにしているので、実際の現場で使用された基本ロボットプログラム３０Ｐをベースにして、類似するワーク１０Ｑのロボットプログラム３０Ｑを容易に作成することができるとともに、現場のロボット等の機差をプログラム３０Ｑ中に織り込むことができ、ロボットを実際に動かす動作確認とプログラム修正作業を実質的に行う必要はない。これにより作業効率が飛躍的に向上する。
【００４５】
第２発明は、第１発明において、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置データは、ＣＡＤの出力データとして前記変換プログラムに与えられること
を特徴とする。
【００４６】
第２発明によれば、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置データが、ＣＡＤから出力される。
【００４７】
このため第２発明によれば、ＣＡＤによって基本ワーク１０Ｐが類似ワーク１０Ｑに設計変更されるに連動して、類似ワーク１０Ｑに適合したロボットプログラム３０Ｑを作成することができる。
【００４８】
第３発明は、
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、移動経路が異なる類似ワークに設計変更された場合に適用され、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意するとともに、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置データのファイルを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記マクロの処理を実行させることによって、前記ファイルから前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを読み出して、ロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されている基本ワークの座標位置を、前記演算した差分だけシフトして、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする。
【００４９】
第３発明を、図９、図１０、図１２、図１３、図１４、図１６、図２０を参照して説明する。
【００５０】
第３発明は、図９に示す基本ワーク１０Ａ（移動経路Ｌ）が、図１３に示すように移動経路が異なる類似ワーク１０Ｂに設計変更された場合に適用される。
【００５１】
図１０に示すように基本ワーク１０Ａの基本ロボットプログラム３０Ａは、ロボット座標系上の座標位置データ（ステップ４  Ｘ＝１２５８．１９  Ｙ＝−４２０．８１  Ｚ＝９５６．２６  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００）で記述されている。
【００５２】
そこで図１６に示すように、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換するとともに、基本ロボットプログラム３０Ａ中の指定されたエリア（２０２、２０３で指定）について、変換した差分だけ、ロボット座標系で記述された基本ワーク１０Ａの座標位置をシフトするマクロ２０１、２０２、２０３、２０４が用意される。
【００５３】
また図１２、図１４に示すように、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置データのファイルが用意される。
【００５４】
そしてマクロ２０１、２０２、２０３、２０４が、基本ロボットプログラム３０Ａに記述される（これによりメタジョブ３０′Ａが作成される）。
そしてマクロ２０１、２０２、２０３、２０４の処理を実行させる（メタジョブ３０′Ａをメタジョブ処理ソフトによって実行させる）ことによって、上述したファイルから基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置データが読み出され、ロボット座標系上の座標位置の差分が演算され、基本ロボットプログラム３０Ａ中の指定されたエリアにロボット座標系で記述されている基本ワーク１０Ａの座標位置（ステップ４  Ｘ＝１２５８．１９  Ｙ＝−４２０．８１  Ｚ＝９５６．２６  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００）が、上記演算した差分だけシフトされて、図２０に示すように、シフトされたロボット座標系上の座標位置（ステップ４  Ｘ＝８０７．７９  Ｙ＝−３９７．８３  Ｚ＝９５１．９７  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００）が求められる。これによって類似ワーク１０Ｂに適合したロボットプログラム３０Ｂが作成される。
【００５５】
第３発明によれば、第１発明と同様に、基本ロボットプログラム３０Ａのロボット座標位置を、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｂを作成するようにしているので、類似ワーク１０Ｂに適合したロボットプログラム３０Ｂを容易に作成することができるとともに、現場のロボット等の機差をプログラム３０Ｂ中に織り込むことができ、ロボットを実際に動かす動作確認とプログラム修正作業を実質的に行う必要はない。これにより作業効率が飛躍的に向上する。
【００５６】
第４発明は、
作業ロボットのツールの先端が移動すべき基本ワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿って前記作業ロボットのツール先端が移動するように、前記作業ロボットを駆動制御するようにした作業ロボットシステムにおいて、
前記基本ワークが、ＣＡＤによって、類似ワークに設計変更された場合に適用され、
前記基本ワークと前記類似ワークのワーク座標系上の座標位置を変数として、ロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記ＣＡＤによって類似ワークが設計されるに応じて、前記ＣＡＤから前記基本ワークと前記類似ワークのワーク座標系上の座標位置データを出力して前記マクロの処理を実行させ、ロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されている基本ワークの座標位置を、前記演算した差分だけシフトして、前記類似ワークに適合したロボットプログラムを作成すること
を特徴とする。
【００５７】
第４発明によれば、第２発明と同様に、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置データが、ＣＡＤから出力される。
【００５８】
このため第４発明によれば、ＣＡＤによって基本ワーク１０Ａが類似ワーク１０Ｂに設計変更されるに連動して、類似ワーク１０Ｂに適合したロボットプログラム３０Ｂを作成することができる。
【００５９】
第５発明は、
作業ロボットとワークとの位置関係を変更するポジショナまたはスライダを備え、作業ロボットのツールの先端が移動すべきワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿ってツール先端が移動するように前記作業ロボットおよび前記ポジショナまたはスライダを駆動制御するようにした作業ロボットシステムにおいて、
前記ポジショナまたはスライダの各軸位置が変更された場合に適用され、
前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置を変数として、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置データを代入することによって、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本ロボットプログラム中にロボット座標系で記述されたワークの座標位置をシフトすることによって、各軸位置変更後に適合したロボットプログラムを作成すること
を特徴とする。
【００６０】
第５発明を、図１、図９、図２９を参照して説明する。
【００６１】
第５発明は、図１に示すポジショナ９またはスライダ４の各軸位置が変更された場合に適用される。
【００６２】
図２９（ａ）に示すようにワーク１０Ａ（図９）の基本ロボットプログラム３０Ｄは、ロボット座標系上の座標位置データ（ステップ３９  Ｘ＝９３４．６７Ｙ＝−５０６．４６  Ｚ＝１２６３．７７  Ａ＝２５．９９  Ｂ＝−５５．００  Ｃ＝０．００）で記述されている。
【００６３】
そこで図２９（ａ）の５０１、５０２、５０３に示すように、ポジショナ９またはスライダ４の変更前後の各軸Ｕ、Ｖの位置およびワーク１０Ａのワーク座標系上の座標位置を変数として、各軸Ｕ、Ｖの位置変更前後におけるワーク１０Ａのロボット座標系上の座標位置の差分に変換する変換プログラム５０１、５０２、５０３が用意される。
【００６４】
そして、変換プログラム５０１、５０２、５０３に、ポジショナ９またはスライダ４の変更前後の各軸Ｕ、Ｖの位置およびワーク１０Ａのワーク座標系上の座標位置データを代入することによって、各軸Ｕ、Ｖの位置変更前後におけるワーク１０Ａのロボット座標系上の座標位置の差分が演算され、基本ロボットプログラム３０Ｄ中にロボット座標系で記述されたワーク１０Ａの座標位置（ステップ３９  Ｘ＝９３４．６７  Ｙ＝−５０６．４６  Ｚ＝１２６３．７７  Ａ＝２５．９９  Ｂ＝−５５．００  Ｃ＝０．００）が、上記演算した差分だけシフトされて、図２９（ｂ）に示すように、シフトされたロボット座標系上の座標位置（ステップ３９  Ｘ＝９５２．１５  Ｙ＝−５０４．２７  Ｚ＝１１５３．７２  Ａ＝２４．２２  Ｂ＝−５５．１１  Ｃ＝１０．００）が求められる。これによって各軸Ｕ、Ｖの位置変更後に適合したロボットプログラム３０Ｅが作成される。
【００６５】
第５発明によれば、基本ロボットプログラム３０Ｄのロボット座標位置を、ポジショナ９またはスライダ４の変更前後の各軸Ｕ、Ｖの位置およびワーク１０Ａのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｅを作成するようにしているので、ポジショナ９またはスライダ４の変更後の各軸Ｕ、Ｖの位置に適合したロボットプログラム３０Ｅを容易に作成することができる。また現場のロボット１、ポジショナ９またはスライダ４の機差をプログラム３０Ｅ中に織り込むことができ、ロボット１を実際に動かす動作確認とプログラム修正作業を実質的に行う必要はない。これにより作業効率が飛躍的に向上する。
【００６６】
第６発明は、
作業ロボットとワークとの位置関係を変更するポジショナまたはスライダを備え、作業ロボットのツールの先端が移動すべきワーク上の移動経路の各座標位置を、ワーク座標系上の座標位置からロボット座標系上の座標位置に変換して、ロボット座標系で各座標位置が記述された基本ロボットプログラムを予め作成し、この作成された基本ロボットプログラムに記述された各座標位置に沿ってツール先端が移動するように前記作業ロボットおよび前記ポジショナまたはスライダを駆動制御するようにした作業ロボットシステムにおいて、
前記ポジショナまたはスライダの各軸位置が変更された場合に適用され、
前記ポジショナまたはスライダの変更前後の各軸位置および前記ワークのワーク座標系上の座標位置を変数として、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分に変換するとともに、前記基本ロボットプログラム中の指定されたエリアについて、前記変換した差分だけ、ロボット座標系で記述された基本ワークの座標位置をシフトするマクロを用意するとともに、
前記ワークのワーク座標系上の座標位置データのファイルを用意し、
前記マクロを、前記基本ロボットプログラムに記述し、
前記マクロの処理を実行させることによって、前記ファイルから前記ワークのワーク座標系上の座標位置データを読み出して、各軸位置変更前後におけるワークのロボット座標系上の座標位置の差分を演算し、前記基本ロボットプログラム中の指定されたエリアにロボット座標系で記述されているワークの座標位置を、前記演算した差分だけシフトして、各軸位置変更後に適合したロボットプログラムを作成すること
を特徴とする。
【００６７】
第６発明によれば、第３発明と同様に、マクロ５０１、５０２、５０３を基本ロボットプログラム３０Ｄに記述し、マクロ５０１、５０２、５０３の処理を実行することによって、ポジショナ９またはスライダ４の変更後の各軸Ｕ、Ｖの位置に適合したロボットプログラム３０Ｅが作成される。
【００６８】
第７発明は、
自動制御機器の作業具が移動すべき基本作業対象上の移動経路の各座標位置を、作業対象座標系上の座標位置から自動制御機器座標系上の座標位置に変換して、自動制御機器座標系で各座標位置が記述された基本プログラムを予め作成し、この作成された基本プログラムに記述された各座標位置に沿って前記自動制御機器の作業具先端が移動するように、前記自動制御機器を駆動制御するようにした自動制御機器システムにおいて、
前記基本作業対象が、移動経路が異なる類似作業対象に設計変更された場合に適用され、
前記基本作業対象と前記類似作業対象の作業対象座標系上の座標位置を変数として、自動制御機器座標系上の座標位置の差分に変換する変換プログラムを用意し、
前記変換プログラムに、前記基本作業対象と前記類似作業対象の作業対象座標系上の座標位置データを代入することによって、自動制御機器座標系上の座標位置の差分を演算し、
この演算した差分だけ、前記基本プログラム中に自動制御機器座標系で記述された基本作業対象の座標位置をシフトすることによって、前記類似作業対象に適合したプログラムを作成すること
を特徴とする。
【００６９】
第７発明によれば、プログラムで動作し作業具が作業対象上の移動経路に沿って移動することによって作業を行う自動制御機器であれば、作業ロボットに限らず任意のものに第１発明を適用することができる。
【００７０】
【発明の実施の形態】
以下図面を参照して本発明の実施形態について説明する。
【００７１】
なお実施形態では、溶接作業を行う溶接ロボットを想定し、その溶接ロボットの各軸を駆動制御するためのロボットプログラムを作成する装置を想定している。しかし本発明としては、ツール先端をワーク上の移動経路に沿って移動させて所定の作業を行うものであれば、任意のロボットに適用可能であり、たとえばシーリングを行うシーリング作業用ロボットにも適用することができる。さらには、プログラムで動作し作業具が作業対象上の移動経路に沿って移動することによって作業を行う自動制御機器であれば、作業ロボットに限らず任意のものに適用することができる。
【００７２】
本実施形態では、ワークをすみ肉溶接する場合を例にとり説明する。
【００７３】
図１は実施形態の装置の全体構成を示している。
【００７４】
同図１に示すようにロボット１は、アーム３を有しており、このアーム３の先端には、ツールである溶接トーチ２が取り付けられている。
【００７５】
ロボット１は、たとえば６軸ロボットであり、各軸Ｘ、Ｙ、Ｚ、Ａ、Ｂ、Ｃが駆動されることによりロボット座標系Ｘ−Ｙ−Ｚ上（図１５参照）で、ツール先端２ａの座標位置およびツール姿勢角（Ｘ、Ｙ、Ｚ、Ａ、Ｂ、Ｃ）が変化される。
【００７６】
ロボット１の各軸、スライダ４の各軸、ポジショナ９の各軸は、ロボットコントローラ５によって駆動制御され、これによりツール先端２ａが、溶接対象であるワーク１０上の所定の移動経路Ｌ（図９参照）に沿って移動される。ロボットコントローラ５には、ロボットプログラムがインストールされており、このロボットプログラムにしたがいロボット１の各軸、スライダ４の各軸、ポジショナ９の各軸が動作する。
【００７７】
ワーク１０はポジショナ９に装着されている。ポジショナ９は各軸Ｕ、Ｖを有しており、各軸Ｕ、Ｖの駆動位置が変更されることにより、ロボット１に対するワーク１０の相対位置関係が変化する。
【００７８】
ロボット１は、走行台車であるスライダ４上に移動自在に載置されている。スライダ４は各軸Ｒ、Ｓを有しており、各軸Ｒ、Ｓの駆動位置が変更されることにより、ロボット１に対するワーク１０の相対位置関係が変化する。
【００７９】
これらポジショナ９、スライダ４の各軸は、ロボット１の軸に対して外部（ＥＸ）軸と呼ばれる。
【００８０】
したがってロボット１の軸が駆動されることによりロボット座標系におけるツール先端２ａの位置Ｐが変化されるとともに、外部軸が駆動されることにより、外部座標系におけるツール先端２ａの位置（外部軸位置）Ｅが変化される。ロボット軸と外部軸が駆動されたときのツール先端２ａの位置は、ロボット座標系上の位置Ｐと外部座標系上の位置Ｅとを合成した位置Ｐ＋Ｅとして表される。
【００８１】
プログラム作成用端末１２は、パソコン、ワークステーション等で構成されており、このプログラム作成用端末１２とコントローラ５との間は、例えばＲＳ−２３２Ｃのようなインターフェース７で接続されており、ロボットプログラムのデータの相互通信が行われる。またプログラム作成用端末１２とロボットコントローラ５の間で、フロッピディスク８のような携行可能な記録媒体を介してデータを相互に入出力させるようにしてもよい。
【００８２】
３次元ＣＡＤ用端末１１には、溶接対象の各種類のワーク１０Ａ、１０Ｂ、１０Ｃを、３次元モデルとして構築する３次元ＣＡＤのソフトウエアがインストールされている。この端末１１のキーボード等を操作することで画面上で各ワーク１０Ａ、１０Ｂ、１０Ｃの３次元モデルを構築することができる。
【００８３】
オフラインティーチング用端末６には、ティーチングデータに基づいてロボット１、スライダ４、ポジショナ９の動作をシミュレートするソフトウエアがインストールされている。この端末６のキーボード等を操作することで画面上でティーチングを行うことができるとともに、画面上でロボット１、スライダ４、ポジショナ９の動作をシミュレートすることができる。
【００８４】
３次元ＣＡＤ用端末１１と、オフラインティーチング用端末６と、プログラム作成用端末１２とは、たとえばインターネット１３あるいはイントラネットによって相互にデータの通信が自在に接続されている。またプログラム作成用端末１２とロボットコントローラ５の間を同様にインターネット１３あるいはイントラネットによって相互に通信自在に接続してもよい。
【００８５】
つぎに図５〜図８を参照して第１の実施形態について説明する。
【００８６】
図６（ａ）は基本ワーク１０Ｐを示している。この基本ワーク１０Ｐを溶接開始点Ｗsから溶接終了点Ｗeまで溶接する場合を想定する。溶接開始点Ｗsから溶接終了点Ｗeまでの区間が溶接線２０となる。ロボット１のツール先端２ａの移動経路Ｌは溶接線２０を含む経路となる。
【００８７】
３次元ＣＡＤ用端末１１では、３次元ＣＡＤのソフトウエアによって溶接対象のワーク１０Ｐの３次元モデルがワーク座標系ｘ−ｙ−ｚで作成される。これにより溶接開始点Ｗs（ｘs、ｙs、ｚs）、溶接終了点Ｗe（ｘe、ｙe、ｚe）、ワーク基準点ＰＯＳ（ｘp、ｙp、ｚp）の座標位置がワーク座標系で記述される。ワーク基準点ＰＯＳとは、ワークをポジショナ９にセットするときの基準となる点のことである。
【００８８】
つぎに３次元ＣＡＤ用端末１１からワーク１０Ｐの座標位置データがオフラインティーチング用端末６に取り込まれる。オフラインティーチング用端末６では、ワーク１０Ｐの座標位置のデータから溶接線のデータが作成され、ロボット１のツール先端２ａが移動すべき移動経路Ｌ上の各移動点がロボット座標系上で定義される。これにより図７に示すように、ワーク座標系で記述された溶接開始点Ｗs（ｘs、ｙs、ｚs）、溶接終了点Ｗe（ｘe、ｙe、ｚe）が、ロボット座標系Ｘ−Ｙ−Ｚで記述された溶接開始点Ｒs（Ｘs、Ｙs、Ｚs）、溶接終了点Ｒe（Ｘe、Ｙe、Ｚe）に座標変換されて、移動命令のコマンド「Ｍｏｖｅ」とともに基本ロボットプログラム３０Ｐに記述される。
【００８９】
基本ロボットプログラム３０Ｐは移動命令と作業命令とから構成されている。
ロボット１のツール先端２ａの位置および姿勢角度のデータ（Ｘ、Ｙ、Ｚ、Ａ、Ｂ、Ｃ）は各移動点Ｒs、Ｒe…毎に教示される。なおポジショナ９、スライダ４の各軸のデータ（Ｒ、Ｓ、Ｕ、Ｖ）についても各移動点毎に教示される。
【００９０】
このようにして基本ワーク１０Ｐに対応した基本ロボットプログラム３０Ｐが作成される。
【００９１】
基本ロボットプログラム３０Ｐは、プログラム作成用端末１２に送られる。プログラム作成用端末１２ではテキスト/バイナリ変換などの処理がなされて、コントローラ５の言語等に適合した基本ロボットプログラム３０Ｐが作成される。
つぎに基本ロボットプログラム３０Ｐがコントローラ５にダウンロードされる。
【００９２】
すなわち基本ロボットプログラム３０Ｐがフロッピディスク８に書き込まれてロボットコントローラ５に読み出し可能に装着されるか、インターフェース７を介してロボットコントローラ５に送られる。
【００９３】
ロボットコントローラ５に基本ロボットコントローラ３０Ｐがダウンロードされると、この基本ロボットプログラム３０Ｐを実行することによりロボット１が駆動される。ここで、教示された移動点Ｒs、Ｒe…と実際の移動点との誤差は、実際にロボット１を動かして現場で修正される。またオフラインティーチングで対処できないコマンドは現場で教示される。
【００９４】
このようにして得られたロボット座標系上の位置Ｒs、Ｒe…は、ロボット１、スライダ４、ポジショナ９の機差が織り込まれたものとなり、この基本ロボットプログラム３０Ｐにしたがってロボット１、スライダ４、ポジショナ９を駆動制御すれば、ツール先端２ａは精度よく移動経路Ｌに沿って移動し、正確にワーク１０Ｐの溶接作業を行うことができる。
【００９５】
以下の処理については図５に示すフローチャートを併せ参照して説明する。
【００９６】
つぎに３次元ＣＡＤ用端末１１で、図６（ｂ）に示すように基本ワーク１０Ｐが、この基本ワーク１０Ｐに類似する類似ワーク１０Ｑに設計変更され、類似ワーク１０Ｑの３次元モデルが作成される。
【００９７】
この類似ワーク１０Ｑは溶接開始点Ｗs′から溶接終了点Ｗe′まで溶接されるものとする。溶接開始点Ｗs′から溶接終了点Ｗe′までの区間が溶接線２０′となる。ロボット１のツール先端２ａの移動経路Ｌ′は溶接線２０′を含む経路となる。
【００９８】
３次元ＣＡＤ用端末１１では、類似ワーク１０Ｑの溶接開始点Ｗs′（ｘs′、ｙs′、ｚs′）、溶接終了点Ｗe′（ｘe′、ｙe′、ｚe′）、ワーク基準点ＰＯＳ′（ｘp′、ｙp′、ｚp′）の座標位置がワーク座標系ｘ−ｙ−ｚで記述される。これら溶接開始点、溶接終了点は、「代表点」であるとして３次元ＣＡＤ上で特定の識別符号が付与される。
【００９９】
同様に３次元ＣＡＤ用端末１１には、基本ワーク１０の座標位置データが既に記憶されている。そこで、基本ワーク１０Ｐの溶接開始点Ｗs（ｘs、ｙs、ｚs）、溶接終了点Ｗe（ｘe、ｙe、ｚe）、ワーク基準点ＰＯＳ（ｘp、ｙp、ｚp）は、「代表点」であるとして３次元ＣＡＤ上で特定の識別符号が付与される（ステップ１０１）。
【０１００】
プログラム作成用端末１２には、基本ロボットプログラム３０Ｐをベースにして、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の代表点の座標位置Ｗs、Ｗs′、Ｗe、Ｗe′、およびワーク基準点ＰＯＳ、ＰＯＳ′を変数として、これらをロボット座標系上の代表点の座標位置Ｒs、Ｒs′、Ｒe、Ｒe′に変換し、ロボット座標系上の座標位置の差分Ｒs′−Ｒs、Ｒe′−Ｒeを求め、その差分だけ基本ロボットプログラム３０Ｐ中の代表点Ｒs、Ｒeをシフトさせて、類似ワーク１０Ｑの代表点の座標位置Ｒs′、Ｒe′を求める変換プログラム（関数）Ｆnがインストールされている。
【０１０１】
そこでベースとなる基本ロボットプログラム３０Ｐがロボットコントローラ５からプログラム作成用端末１２にアップロードされる（ステップ１０２）。
【０１０２】
つぎにプログラム作成用端末１２では図８に示す処理が実行される。
【０１０３】
まず基本ロボットプログラム３０Ｐの移動命令と、その移動命令に対応する代表点の関係付けを行う（ステップ１０３）。
【０１０４】
つぎに、移動命令に対して、変換プログラムＦnがセットされて、３次元ＣＡＤ用端末１１から基本ワーク１０Ｐ、類似ワーク１０Ｑの代表点の座標位置データが出力され、プログラム作成用端末１２に取り込まれる。そして変換プログラムＦnの変数に、代表点の座標位置データが代入される。
まず「Ｍｏｖｅ  Ｒs」という移動命令は、溶接開始点という代表点まで移動する命令であるので、この移動命令「Ｍｏｖｅ  Ｒs」に、変換プログラムＦnがセットされ、この変換プログラムＦnの変数に、溶接開始点の座標位置データｘs′、ｘs、ｙs′、ｙs、ｚs′、ｚsが代入される。
【０１０５】
またワーク基準点の座標位置データｘp、ｘp′、ｙp、ｙp′、ｚp、ｚp′は、ワークによって固定された値であるので、固定パラメータとして変換プログラムＦnに組み込まれている。たとえば関数ｒ＝Ｆn（ｘ）がｒ＝ａｘ＋ｂと定義されているものとすると、ワーク基準点の座標位置データはこの関数中の定数ａ、ｂに相当する。
【０１０６】
また「Ｍｏｖｅ  Ｒe」という移動命令は、溶接終了点という代表点まで移動する命令であるので、この移動命令「Ｍｏｖｅ  Ｒe」に、変換プログラムＦnがセットされ、この変換プログラムＦnの変数に溶接終了点の座標位置データｘe′、ｘe、ｙe′、ｙe、ｚe′、ｚeが代入される（ステップ１０４）。
【０１０７】
またワーク基準点の座標位置データｘp、ｘp′、ｙp、ｙp′、ｚp、ｚp′は、ワークによって固定された値であるので、固定パラメータとして変換プログラムＦnに組み込まれている。
【０１０８】
そして上記変換プログラムＦnの処理が実行されると、移動命令「Ｍｏｖｅ  Ｒs」については、ワーク座標系上の溶接開始点の座標位置の差分Ｗs−ＰＯＳつまりｘs−ｘp、ｙs−ｙp、ｚs−ｚpが演算される。同様にして差分Ｗs′−ＰＯＳ′つまりｘs′−ｘp′、ｙs′−ｙp′、ｚs′−ｚp′が演算される。（ステップ１０５）。
【０１０９】
つぎに、このワーク座標系上の溶接開始点とワーク基準点ＰＯＳの差分が、ロボット座標系上の座標位置Ｒs、Ｒs′に変換される。つづいて、これらのロボット座標系上の座標位置の差分Ｒs′−ＲsつまりΔＸs（＝Ｘs′−Ｘs）、ΔＹs（＝Ｙs′−Ｙs）、ΔＺs（＝Ｚs′−Ｚs）が求められる。
【０１１０】
そしてロボット座標系で記述されている基本ワーク１０Ｐの溶接開始点の座標位置Ｒsがこの差分だけシフトされて、シフトされたロボット座標系上の座標位置Ｒs′（Ｘs＋ΔＸs、Ｙs＋ΔＹs、Ｚs＋ΔＺs）が求められる。こうして類似ワーク１０Ｑに適合した移動命令「Ｍｏｖｅ  Ｒs′」が求められる（ステップ１０６）。
【０１１１】
同様にして移動命令「Ｍｏｖｅ  Ｒe」については、ワーク座標系上の溶接終了点の座標位置の差分Ｗe−ＰＯＳつまりｘe−ｘp、ｙe−ｙp、ｚe−ｚpが演算される。同様にして差分Ｗe′−ＰＯＳ′つまりｘe′−ｘp′、ｙe′−ｙp′、ｚe′−ｚp′が演算される（ステップ１０５）。
【０１１２】
つぎに、このワーク座標系上の溶接終了点とワーク基準点ＰＯＳの差分がロボット座標系上の座標位置Ｒe、Ｒe′に変換される。つづいて、これらのロボット座標系上の座標位置の差分Ｒe′−ＲeつまりΔＸe（＝Ｘe′−Ｘe）、ΔＹe（＝Ｙe′−Ｙe）、ΔＺe（＝Ｚe′−Ｚe）が求められる。
【０１１３】
そしてロボット座標系で記述されている基本ワーク１０Ｐの溶接終了点の座標位置Ｒeがこの差分だけシフトされて、シフトされたロボット座標系上の座標位置Ｒe′（Ｘe＋ΔＸe、Ｙe＋ΔＹe、Ｚe＋ΔＺe）が求められる。こうして類似ワーク１０Ｑに適合した移動命令「Ｍｏｖｅ  Ｒe′」が求められる（ステップ１０６）。
【０１１４】
このようにして類似ワーク１０Ｑに適合したロボットプログラム３０Ｑが作成される。ロボットプログラム３０Ｑはオフラインティーチング用端末６に転送される。
【０１１５】
オフラインティーチング用端末６では、ロボットプログラム３０Ｑが画面上で実行され、ロボット１、スライダ４、ポジショナ９の動作がシミュレートされ、動作確認が行われる（ステップ１０８）。動作確認の結果、所望する溶接線２０′に沿ってツール先端２ａが精度よく追従しないなどの問題点があれば、所望の溶接線２０′に沿ってツール先端２ａが追従するよう、画面上でロボット１の動作を変更する（ステップ１０９）。
【０１１６】
この動作確認の結果、問題がなくなった場合には（ステップ１０８の判断ＯＫ）、ロボットプログラム３０Ｑがロボットコントローラ５にダウンロードされる。すなわちロボットプログラム３０Ｑがフロッピディスク８に書き込まれてロボットコントローラ５に読み出し可能に装着されるか、インターフェース７を介してロボットコントローラ５に送られる（ステップ１１０）。
【０１１７】
ロボットコントローラ５にロボットコントローラ３０Ｑがダウンロードされると、このロボットプログラム３０Ｑを実行することによりロボット１が駆動され、類似ワーク１０Ｑの溶接作業が行われる。
【０１１８】
以上、基本ワーク１０Ｐから一種類の類似ワーク１０Ｑに変更された場合についてのみ説明したが、さらに他種類の類似ワーク１０Ｒ、１０Ｓ、…等に順次設計変更された場合も、同様にして各類似ワークに適合したロボットプログラムを作成することができる。
【０１１９】
つぎに本実施形態の効果について説明する。
【０１２０】
ロボットコントローラ３０Ｑのベースとなった基本ロボットプログラム３０Ｐは、基本ワーク１０Ｐのプログラムとして作成されたものであり、実際に現場で使用されて動作が確認され、その上でプログラム修正がなされており、そのロボット座標系上の座標位置Ｒs、Ｒeには、ロボット１の機差が既に織り込まれている。
【０１２１】
本実施形態では、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置の差分に相当する分だけ、基本ロボットプログラム３０Ｐ中にロボット座標系で記述された座標位置Ｒs、Ｒeをシフトさせることによって座標位置Ｒs′、Ｒe′を求め、ロボットプログラム３０Ｑを作成するようにしているので、このロボットプログラム３０Ｑについても基本ロボットプログラム３０Ｐと同様に、既に機差が織り込まれることになり、移動経路２０′に沿って精度よくロボット１のツール先端２ａが移動することになる。このため類似ワーク１０Ｑのロボットプログラム３０Ｑについては、実際にロボット１を動かす動作確認やプログラム修正の必要はない。
【０１２２】
このように本実施形態によれば、基本ロボットプログラム３０Ｐのロボット座標位置を、基本ワーク１０Ｐと類似ワーク１０Ｑのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｑを作成するようにしているので、実際の現場で使用された基本ロボットプログラム３０Ｐをベースにして、類似するワーク１０Ｑのロボットプログラム３０Ｑを容易に作成することができるとともに、現場のロボット１の機差をプログラム３０Ｑ中に織り込むことができ、ロボット１を実際に動かす動作確認とプログラム修正作業を実質的に行う必要はなくなり、作業効率が飛躍的に向上する。
【０１２３】
・第２の実施形態
つぎに図９〜図２６を参照して第２の実施形態について説明する。
【０１２４】
図９は基本ワーク１０Ａを示している。ロボット１のツール先端２ａは基本ワーク１０Ａ上の移動経路Ｌに沿って移動する。移動経路Ｌは溶接線２０を含む経路となる。図９の移動経路Ｌの各移動点に対応して、基本ロボットプログラム３０Ａのステップ番号３、４、５…１２、命令（移動命令、作業命令）「ＥＸ各軸」、「各軸」、「サーチ」…「ＥＸ各軸」が対応づけられている。
【０１２５】
図１０は基本ワーク１０Ａ上の移動経路Ｌに沿ってツール先端３ａを移動させる基本ロボットプログラム３０Ａを示している。
【０１２６】
図１１は基本ワーク１０Ａの溶接線２０の溶接開始点ＰＮＴ１と、溶接終了点ＰＮＴ２の位置を示している。
【０１２７】
ロボットプログラム３０Ａは、各ステップ（工程）３、４、５…１２毎に、「コマンド（補間方法）」、「溶接条件データ」、「速度データ」、「各軸の位置、姿勢角データ」が対応づけられている。
【０１２８】
たとえばステップ４には、「各軸  位置」というコマンド（補間方法）、「速度Ｆ４  パス２」という速度データ、「Ｘ＝１２５８．１９  Ｙ＝−４２０．８１  Ｚ＝９５６．２６  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００」という各軸の位置、姿勢角データがそれぞれ記述されている。なおＳＰは構造パラメータであり、「０００１」が記述されている。
【０１２９】
また、たとえばステップ７では、「溶接  １層盛」というコマンドが、「条件６０６  電源１」という溶接条件がそれぞれ記述されている。
【０１３０】
また、たとえばステップ８には、「直線  位置」というコマンド（補間方法）、「速度２００  パス２」という速度データ、「Ｘ＝１２３４．７０  Ｙ＝−４２２．１５  Ｚ＝９１９．２６  Ａ＝１６０．０３  Ｂ＝−７０．０２  Ｃ＝−１２５．００」という各軸の位置、姿勢角データがそれぞれ記述されている。また構造パラメータＳＰ「０００１」が記述されている。
【０１３１】
ここで図１０のロボットプログラム３０Ａの各ステップと図１１の溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２との関係について説明する。
【０１３２】
ロボットプログラム３０Ａのステップ４、５、６、７は、溶接開始点ＰＮＴ１に関係するステップである。ステップ４、５、６、７は「溶接開始点ＰＮＴ１の接近位置まで各軸補間で接近し（ステップ４）溶接開始点ＰＮＴ１をセンサでサーチし（ステップ５）直線補間で溶接開始点ＰＮＴ１に移動し（ステップ６）一層盛の溶接を行う（ステップ７）」という動作を示しており、溶接開始点ＰＮＴ１が変化すれば、それに応じて各ステップ４、５、６に記述されているロボット座標系上の位置データ（Ｘ、Ｙ、Ｚ）が変化する。
【０１３３】
またロボットプログラム３０Ａのステップ８、９、１０は、溶接終了点ＰＮＴ２に関係するステップである。ステップ８、９、１０は「溶接終了点ＰＮＴ２まで直線補間で移動し（ステップ８）溶接を終了させ（ステップ９）溶接終了点ＰＮＴ２の接近位置まで直線補間で移動する（ステップ１０）」という動作を示しており、溶接終了点ＰＮＴ２が変化すれば、それに応じて各ステップ８、１０に記述されているロボット座標系上の位置データ（Ｘ、Ｙ、Ｚ）が変化する。
【０１３４】
このようにしてオフラインティーチング用端末６にて基本ワーク１０Ａの基本ロボットプラグラム３０Ａが作成される。
【０１３５】
基本ロボットプログラム３０Ａは、プログラム作成用端末１２に送られる。プログラム作成用端末１２ではテキスト/バイナリ変換などの処理がなされて、コントローラ５に適合した基本ロボットプログラム３０Ａが作成される。つぎに基本ロボットプログラム３０Ａがコントローラ５にダウンロードされる。
【０１３６】
すなわち基本ロボットプログラム３０Ａがフロッピディスク８に書き込まれてロボットコントローラ５に読み出し可能に装着されるか、インターフェース７を介してロボットコントローラ５に送られる。
【０１３７】
ロボットコントローラ５に基本ロボットコントローラ３０Ｐがダウンロードされると、この基本ロボットプログラム３０Ａを実行することによりロボット１が駆動される。ここで、教示された移動点と実際の移動点との誤差は、実際にロボット１を動かして現場で修正される。またオフラインティーチングで対処できないコマンドは現場で教示される。
【０１３８】
このようにして得られたロボット座標系上の位置たとえばステップ４の位置「Ｘ＝１２５８．１９  Ｙ＝−４２０．８１  Ｚ＝９５６．２６  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００」は、ロボット１、スライダ４、ポジショナ９の機差が織り込まれたものとなり、この基本ロボットプログラム３０Ａにしたがってロボット１、スライダ４、ポジショナ９を駆動制御すれば、ツール先端２ａは精度よく移動経路Ｌに沿って移動し、正確にワーク１０Ａの溶接作業を行うことができる（図９参照）。
【０１３９】
以下の処理については図５に示すフローチャートを併せ参照して説明する。
【０１４０】
・メタジョブの作成
メタジョブの作成処理の流れは図２に示される。
【０１４１】
３次元ＣＡＤ用端末１１では、図１３に示すように基本ワーク１０Ａが、この基本ワーク１０Ａに類似する類似ワーク１０Ｂに設計変更され、類似ワーク１０Ｂの３次元モデルが作成される。図１３は３次元ＣＡＤ用端末１１の画面４０上に類似ワーク１０Ｂの３次元モデルが表示された様子を示している。
【０１４２】
この類似ワーク１０Ｂは溶接開始点ＰＮＴ１から溶接終了点ＰＮＴ２まで溶接される。溶接開始点ＰＮＴ１から溶接終了点ＰＮＴ２までの区間が溶接線２０′となる。ロボット１のツール先端２ａの移動経路Ｌ′は溶接線２０′を含む経路となる。
【０１４３】
３次元ＣＡＤ用端末１１では、類似ワーク１０Ｂの溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置がワーク座標系で記述される。ワーク基準点ＰＯＳとは、ワークをポジショナ９にセットするときの基準となる点のことである。これら溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳは、「代表点」であるとして３次元ＣＡＤ上で特定の識別符号「ＰＮＴ１」、「ＰＮＴ２」、「ＰＯＳ」が付与される。
【０１４４】
溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳはワーク座標系の座標位置として記述されており、その具体的な数値を図１４に示す。この図１４に示す溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置データは、ポイントデータファイル「ＷＯＲＫ  Ｂ．ＴＸＴ」に、テキストデータとして格納される。
【０１４５】
同様に３次元ＣＡＤ用端末１１には、基本ワーク１０の座標位置データが既に記憶されている。
【０１４６】
そこで、図１１に示すように基本ワーク１０Ａの溶接開始点、溶接終了点にそれぞれ「ＰＮＴ１」、「ＰＮＴ２」という特定の識別符号が付与される。このように基本ワーク１０Ａと類似ワーク１０Ｂの溶接開始点、溶接終了点はそれぞれ同じ識別符号「ＰＮＴ１」、「ＰＮＴ２」で特定することができる。また基本ワーク１０Ａのワーク基準点に「ＰＯＳ」という特定の識別符号が付与される。
【０１４７】
基本ワーク１０Ａの溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳはワーク座標系の座標位置として記述されており、その具体的な数値を図１２に示す。この図１２に示す溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置データは、ポイントデータファイル「ＷＯＲＫ  Ａ．ＴＸＴ」に、テキストデータとして格納される。
【０１４８】
なお本実施形態では、溶接開始点、溶接終了点に特定の識別符号「ＰＮＴ１」、「ＰＮＴ２」を付与しているが、座標位置を特定することができるのであれば、「点」の代わりに「線分」に特定の識別符号を付与してもよい（ステップ１０１）。
【０１４９】
さて図１５は基本ワーク１０Ａと類似ワーク１０Ｂの相対位置関係を示している。
【０１５０】
同図１５に示すＧRはロボット座標系Ｘ−Ｙ−Ｚの座標原点を示しており、Ｇwはワーク座標系ｘ−ｙ−ｚの座標原点を示している。
【０１５１】
図１５を参照して本実施形態の処理内容の概要を説明する。
【０１５２】
本実施形態では、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置データの差分を求め、その差分によって基本ロボットプログラム３０Ａ中にロボット座標系で記述されている基本ワーク１０Ａの座標位置を補正して、類似ワーク１０Ｂに適合した座標位置を求めることで、機差が織り込まれた類似ワーク１０Ｂのロボット座標系上の座標位置を求めることができる点に着目している。
【０１５３】
溶接開始点「ＰＮＴ１」を例にとり説明する。
【０１５４】
基本ロボットプログラム３０Ａ中にロボット座標系で記述されている基本ワーク１０Ａの溶接開始点「ＰＮＴ１」を、類似ワーク１０Ｂの溶接開始点「ＰＮＴ１」に移動させることをシフトという。このシフトによって移動するベクトル量をシフト量という。
【０１５５】
図１５においてλＰＮＴ１  Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１  Ｚが、溶接開始点「ＰＮＴ１」のシフト量となる。
【０１５６】
溶接終了点「ＰＮＴ２」についても同様であり、λＰＮＴ２  Ｘ、λＰＮＴ２Ｙ、λＰＮＴ２  Ｚが溶接終了点「ＰＮＴ２」のシフト量となる。
【０１５７】
シフト量は、ロボット座標系上のシフト量として求める必要がある。
【０１５８】
しかしながら上述したように３次元ＣＡＤ用端末１１では、図１２、図１４に示すように、溶接開始点ＰＮＴ１、ＰＮＴ２はワーク座標系上の座標位置データとして求められていることから、一旦ワーク座標系上の差分を求め、これをロボット座標系上の差分に変換し、この変換した差分だけシフトさせる必要がある。
【０１５９】
基本ワーク１０Ａの溶接開始点「ＰＮＴ１」と類似ワーク１０Ｂの溶接開始点「ＰＮＴ１」から、シフト量λＰＮＴ１を求める式は以下のようになる。
【０１６０】
0004837837.tif 000002
ここでｗＰＮＴ１ａは基本ワーク１０Ａ上の溶接開始点の座標位置ベクトルである。これはワーク座標系で記述されている。図１７では２０５で示す箇所に＄ＰＮＴ１＿Ｘ＿０、＄ＰＮＴ１＿Ｙ＿０、＄ＰＮＴ１＿Ｚ＿０として記述されている。
【０１６１】
ｗＰＮＴ１ｂは類似ワーク１０Ｂ上の溶接開始点の座標位置ベクトルである。これはワーク座標系で記述されている。図１７では２０６で示す箇所に＄ＰＮＴ１＿Ｘ、＄ＰＮＴ１＿Ｙ、＄ＰＮＴ１＿Ｚとして記述されている。
【０１６２】
ｐＰＮＴ１ａは基本ワーク１０Ａ上の溶接開始点の座標位置ベクトルである。これはポジショナ座標系で記述されている。図１７では２０８で示す箇所に＄Ｘ＿Ｐ、＄Ｙ＿Ｐ、＄Ｚ＿Ｐとして記述されている。
【０１６３】
ｐＰＮＴ１ｂは類似ワーク１０Ｂ上の溶接開始点の座標位置ベクトルである。これはポジショナ座標系で記述されている。図１７では２１１で示す箇所に＄Ｘ＿Ｐ、＄Ｙ＿Ｐ、＄Ｚ＿Ｐとして記述されている。
【０１６４】
ｒＰＮＴ１ａは基本ワーク１０Ａ上の溶接開始点の座標位置ベクトルである。これはロボット座標系で記述されている。図１７では２０９で示す箇所に＄Ｘ＿Ｕ０、＄Ｙ＿Ｕ０、＄Ｚ＿Ｕ０として記述されている。
【０１６５】
ｒＰＮＴ１ｂは類似ワーク１０Ｂ上の溶接開始点の座標位置ベクトルである。これはロボット座標系で記述されている。図１７では２１２で示す箇所に＄Ｘ＿Ｕ１、＄Ｙ＿Ｕ１、＄Ｚ＿Ｕ１として記述されている。
【０１６６】
なお上述した「ｗＰＮＴ」におけるｗは、このベクトルがワーク座標系で記述されていることを示している。また「ｐＰＮＴ」におけるｐは、このベクトルがポジショナ座標系で記述されていることを示している。また「ｒＰＮＴ」におけるｒは、このベクトルがロボット座標系で記述されていることを示している。
【０１６７】
λＰＮＴ１は、基本ワークのＰＮＴ１と類似ワークのＰＮＴ１の、ロボット座標系における差分ベクトルである。
【０１６８】
ＰＯＳａは、基本ワーク１０Ａのワーク基準点の座標位置ベクトルである。これは基本ワーク１０Ａのワーク座標系からみた、ポジショナの原点の座標位置である。
【０１６９】
ＰＯＳｂは、類似ワーク１０Ｂのワーク基準点の座標位置ベクトルである。これは類似ワーク１０Ｂのワーク座標系からみた、ポジショナの原点の座標位置である。
【０１７０】
Ｍｐ（ＰＯＳａ）は、基本ワーク１０Ａのワーク座標系上の位置ベクトルを、ポジショナ座標系の位置ベクトルへ変換する変換マトリクスである。図１７では２０７Ｂ、２０８の箇所に一連の数式として記述されている。
【０１７１】
Ｍｐ（ＰＯＳｂ）は、類似ワーク１０Ｂのワーク座標系上の位置ベクトルを、ポジショナ座標系の位置ベクトルへ変換する変換マトリクスである。図１７では２１０Ｂ、２１１の箇所に一連の数式として記述されている。
【０１７２】
ＥＸａは、基本ワーク１０ＡのＰＮＴ１とＰＮＴ２の間の溶接線を溶接するときの、ポジショナの制御角度で構成される角度ベクトルである。図１７では２０９の箇所に＄Ｖ、９３．００として記述されている。
【０１７３】
Ｍｒ（ＥＸａ）は、ポジショナ座標系の位置ベクトルを、ロボット座標系の位置ベクトルに変換する変換マトリクスである。図１７では２０９の箇所に一連の数式として記述されている。
【０１７４】
ＥＸｂは、類似ワーク１０ＢのＰＮＴ１とＰＮＴ２の間の溶接線を溶接するときの、ポジショナの制御角度で構成される角度ベクトルである。図１７では２０９の箇所に＄Ｖ、９３．００として記述されている。
【０１７５】
Ｍｒ（ＥＸｂ）は、ポジショナ座標系の位置ベクトルを、ロボット座標系の位置ベクトルに変換する変換マトリクスである。図１７では２１２の箇所に一連の数式として記述されている。
【０１７６】
本実施形態では、このような変換処理を行うプログラムとしてマクロを使用している。
【０１７７】
ここでマクロとは一連の決まった処理を実行するソフトウエアの意味で使用する。
【０１７８】
すなわち図１６に示すようにプログラム作成用端末１２には、基本ロボットプログラム３０Ａをベースにして、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の代表点ＰＮＴ１（ＰＮＴ２）を変数とし、ワーク１０Ａとワーク１０Ｂのワーク基準点ＰＯＳを内部変数として、ロボット座標系上の座標位置ｒＰＮＴ１（ｒＰＮＴ２）に変換し、それぞれのｒＰＮＴ１（ｒＰＮＴ２）の差分λＰＮＴ１（λＰＮＴ２）だけ基本ロボットプログラム３０Ｐ中の代表点ＰＮＴ１（ＰＮＴ２）をシフトさせて、類似ワーク１０Ｂの座標点ＰＮＴ１（ＰＮＴ２）を求めるマクロ２０１、２０２、２０３、２０４がインストールされている。
【０１７９】
そこで図２に示すようにベースとなる基本ロボットプログラム３０Ａがロボットコントローラ５からプログラム作成用端末１２にアップロードされる。なおオフラインティーチング用端末６でオフラインティーチングされた基本ロボットプログラム３０Ａをそのままプログラム作成用端末１２に転送してもよい。
【０１８０】
図２に示すように、基本ロボットプログラム３０Ａはプログラム作成用端末１２からオフラインティーチング用端末６に送られる。そしてオフラインティーチング用端末６上で基本ロボットプログラム３０Ａが実行され動作の確認がなされる。この動作確認の結果、問題がなければ再度プログラム作成用端末１２に送られる（ステップ１０２）。
【０１８１】
つぎにプログラム作成用端末１２ではマクロ２０１〜２０４を基本ロボットプログラム３０Ａに記述しメタジョブ３０′Ａを作成する処理が実行される。
【０１８２】
すなわち、まず基本ロボットプログラム３０Ａの移動命令と、その移動命令に対応する代表点ＰＮＴ１、ＰＮＴ２の関係付けを行う（ステップ１０３）。
【０１８３】
つぎに、マクロ２０１〜２０４が、上記関係付けにしたがい、基本ロボットプログラム３０Ａの所定箇所に記述される。
【０１８４】
図１６に示すように基本ロボットプログラム３０Ａの先頭箇所にはマクロ２０１が記述される。このマクロ２０１中の「＃loadpoint[0]  WORK A.TXT」というコマンドは、ポイントデータファイル「ＷＯＲＫ  Ａ．ＴＸＴ」に格納されている座標位置データを、変数として取り込む処理を行う。同様にマクロ２０１中の「＃loadpoint WORK B.TXT」というコマンドは、ポイントデータファイル「ＷＯＲＫ  Ｂ．ＴＸＴ」に格納されている座標位置データを、変数として取り込む処理を行う。なおワーク１０Ａとワーク１０Ｂとで「＃loadpoint[0]」と「＃loadpoint」とを[0]で識別することにより座標変数名が重複しないようにしている。
【０１８５】
前述したようにステップ４、５、６、７は、溶接開始点ＰＮＴ１に関係するステップであるので、このステップ４、５、６、７のエリアに、溶接開始点ＰＮＴ１に関係するマクロ２０２が記述される。
【０１８６】
マクロ２０２の「shiftpoint(PNT1)」というコマンドは、変数「ＰＮＴ１」に対応する座標位置データに基づいて、シフト量を演算する処理を行う。
【０１８７】
同様に前述したようにステップ８、９、１０は、溶接終了点ＰＮＴ２に関係するステップであるので、このステップ８、９、１０のエリアに、溶接終了点ＰＮＴ２に関係するマクロ２０３が記述される。
【０１８８】
マクロ２０３の「shiftpoint(PNT2)」というコマンドは、変数「ＰＮＴ２」に対応する座標位置データに基づいて、シフト量を演算する処理を行う。
【０１８９】
ステップ１０の後には、マクロ２０４が記述される。「shiftpoint(PNT2)」は以前のマクロの効果を終了させてから、自前の処理を行うようにプログラムされている。また、このマクロ２０４の「＃ＥＮＤ」というコマンドは、実際にロボットの命令をシフトする「基本マクロ」のマクロ処理を終了させるマクロである。
【０１９０】
「＃ＥＮＤ」が２つあるのは、「shiftpoint(PNT1)」、「shiftpoint(PNT2)」の中に、「基本マクロ」が２つ組み込まれているためである。
【０１９１】
このようにしてプログラム作成用端末１２で、基本ロボットプログラム３０Ａにマクロ２０１〜２０４が記述され、図１６に示すメタジョブ３０′Ａが作成される。これにより図２の処理の流れが終了する（ステップ１０４）。
【０１９２】
以下、メタジョブ３０′Ａがメタジョブ処理ソフトウエアにかけられ、上記マクロ２０１〜２０４の処理が実行されて、類似ワーク１０Ｂに適合したロボットプログラム３０Ｂが作成される。この処理の流れを図３に示す。
【０１９３】
まず、３次元ＣＡＤ用端末１１からポイントデータファイル「ＷＯＲＫ  Ａ．ＴＸＴ」、「ＷＯＲＫ  Ｂ．ＴＸＴ」が出力され、プログラム作成用端末１２に取り込まれる。
【０１９４】
つぎにメタジョブ３０′Ａの処理が実行される。
【０１９５】
図１７〜図１９は、メタジョブ３０′Ａを処理中のリストを示している。
【０１９６】
図１９はマクロ２０１が解釈された結果を示している。すなわち「＃loadpoint[0]  WORK A.TXT」というコマンドにしたがい、ポイントデータファイル「ＷＯＲＫ  Ａ．ＴＸＴ」に格納されている座標位置データ（図１２参照）が、変数として取り込まれる。同様にマクロ２０１中の「＃loadpoint WORK B.TXT」というコマンドにしたがい、ポイントデータファイル「ＷＯＲＫ  Ｂ．ＴＸＴ」に格納されている座標位置データ（図１４参照）が、変数として取り込まれる。図１７の２０５、２０６にマクロ２０１の解釈結果を示す。
【０１９７】
図１７の２０７〜２１６はマクロ２０２、２０４の解釈結果を示している。
【０１９８】
まず２０７に示すように、基本ワーク１０Ａの溶接開始点ＰＮＴ１とワーク基準点ＰＯＳの座標系の方向が揃えられる。
【０１９９】
つぎに２０８に示すように、基本ワーク１０Ａの取付位置がオフセットされる。
【０２００】
つぎに２０９に示すように、基本ワーク１０Ａの座標位置が、ロボット座標系上の座標位置に座標変換される。
【０２０１】
つぎに２１０に示すように、類似ワーク１０Ｂの溶接開始点ＰＮＴ１とワーク基準点ＰＯＳの座標系の方向が揃えられる。
【０２０２】
つぎに２１１に示すように、類似ワーク１０Ｂの取付位置がオフセットされる。
【０２０３】
つぎに２１２に示すように、類似ワーク１０Ｂの座標位置が、ロボット座標系上の座標位置に座標変換される。
【０２０４】
つぎに２０９で求められた基本ワーク１０Ａのロボット座標系上の座標位置と、２１２で求められた類似ワーク１０Ｂのロボット座標系上の座標位置との差分が計算され、溶接開始点ＰＮＴ１のロボット座標系上におけるシフト量λＰＮＴ１  Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１  Ｚが２１３、２１４、２１５で求められる。
【０２０５】
つぎに、２１６で、ステップ４、５、６中の座標位置が、シフト量λＰＮＴ１Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１だけシフトされる（λＰＮＴ１  Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１だけオフセットされる）。
【０２０６】
図１８の２１７は図１７の２０７〜２１６に対応する処理リストを示しており、マクロ２０３、２０４の解釈結果を示している。
【０２０７】
図１８では、溶接終了点ＰＮＴ２のロボット座標系上におけるシフト量λＰＮＴ２  Ｘ、λＰＮＴ２  Ｙ、λＰＮＴ２  Ｚが求められ、ステップ８、１０中の座標位置が、シフト量λＰＮＴ２  Ｘ、λＰＮＴ２  Ｙ、λＰＮＴ２だけシフトされる（λＰＮＴ２  Ｘ、λＰＮＴ２  Ｙ、λＰＮＴ２だけオフセットされる）（ステップ１０５、１０６）。
【０２０８】
図２０はメタジョブ３０′Ａの処理後のロボットプログラム３０Ｂを示している。
【０２０９】
同図２０に示すように、ステップ４、５、６のロボット座標系上の座標位置は、シフト量λＰＮＴ１  Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１だけシフトされており、類似ワーク１０Ｂに適合した座標位置に変換されている。
【０２１０】
ステップ４を例にとると、座標位置（Ｘ＝１２５８．１９  Ｙ＝−４２０．８１  Ｚ＝９５６．２６  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００）は、シフト量λＰＮＴ１  Ｘ、λＰＮＴ１  Ｙ、λＰＮＴ１だけシフトされ、座標位置（Ｘ＝８０７．７９  Ｙ＝−３９７．８３  Ｚ＝９５１．９７  Ａ＝１６０．００  Ｂ＝−７０．００  Ｃ＝−１２５．００）に変換されている。
【０２１１】
またステップ８、１０のロボット座標系上の座標位置は、シフト量λＰＮＴ２Ｘ、λＰＮＴ２  Ｙ、λＰＮＴ２だけシフトされており、類似ワーク１０Ｂに適合した座標位置に変換されている。
【０２１２】
ステップ８を例にとると、座標位置（Ｘ＝１２３４．７０  Ｙ＝−４２２．１５  Ｚ＝９１９．２６  Ａ＝１６０．０３  Ｂ＝−７０．０２  Ｃ＝−１２５．００）は、シフト量λＰＮＴ２  Ｘ、λＰＮＴ２  Ｙ、λＰＮＴ２だけシフトされ、座標位置（Ｘ＝７９０．３３  Ｙ＝−３０２．７５  Ｚ＝８００．２２  Ａ＝１６０．０３  Ｂ＝−７０．０２  Ｃ＝−１２５．００）に変換されている。
【０２１３】
以上のように類似ワーク１０Ｂに適合したロボットプログラム３０Ｂが作成される。
【０２１４】
このようにして作成されたロボットプログラム３０Ｂは図３に示すようにオフラインティーチング用端末６に転送され、動作確認がなされる。すなわちオフラインティーチング用端末６では、ロボットプログラム３０Ｂが画面上で実行され、ロボット１、スライダ４、ポジショナ９の動作がシミュレートされ、動作確認が行われる（ステップ１０８）。動作確認の結果、所望する溶接線２０′に沿ってツール先端２ａが精度よく追従しないなどの問題点があれば、所望の溶接線２０′に沿ってツール先端２ａが追従するよう、画面上でロボット１の動作を変更する（ステップ１０９）。
【０２１５】
この動作確認の結果、問題がなくなった場合には（ステップ１０８の判断ＯＫ）、ロボットプログラム３０Ｂが図３に示すように再度プログラム作成用端末１２に転送され、プログラム作成用端末１２からロボットコントローラ５にダウンロードされる。すなわちロボットプログラム３０Ｂがフロッピディスク８に書き込まれるロボットコントローラ５に読み出し可能に装着されるか、インターフェース７を介してロボットコントローラ５に送られる（ステップ１１０）。
【０２１６】
ロボットコントローラ５にロボットプログラム３０Ｂがダウンロードされると、このロボットプログラム３０Ｂを実行することによりロボット１が駆動され、図２１に示すようにロボット１のツール先端２ａが移動経路Ｌ′に沿って精度よく移動する。これにより類似ワーク１０Ｂの溶接作業が正確に行われる。
【０２１７】
本実施形態によれば第１実施形態と同様に、基本ロボットプログラム３０Ａのロボット座標位置を、基本ワーク１０Ａと類似ワーク１０Ｂのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｂを作成するようにしているので、実際の現場で使用された基本ロボットプログラム３０Ａをベースにして、類似するワーク１０Ｂのロボットプログラム３０Ｂを容易に作成することができるとともに、現場のロボット等の機差をプログラム３０Ｂ中に織り込むことができ、ロボット１を実際に動かす動作確認とプログラム修正作業を実質的に行う必要はなくなり、作業効率が飛躍的に向上する。
【０２１８】
以上、基本ワーク１０Ａから一種類の類似ワーク１０Ｂに変更された場合についてのみ説明したが、さらに他種類の類似ワーク１０Ｃ…等に順次設計変更された場合も、同様にして各類似ワークに適合したロボットプログラムを作成することができる。
【０２１９】
以下図２２〜図２６を参照して基本ワーク１０Ａ、類似ワーク１０Ｂに類似する類似ワーク１０Ｃに適合するロボットプログラム３０Ｃを作成する場合について説明する。
【０２２０】
３次元ＣＡＤ用端末１１では、図２２に示すように基本ワーク１０Ａが、この基本ワーク１０Ａおよび類似ワーク１０Ｂに類似する類似ワーク１０Ｃに設計変更され、類似ワーク１０Ｃの３次元モデルが作成される。図２２は３次元ＣＡＤ用端末１１の画面４０上に類似ワーク１０Ｃの３次元モデルが表示された様子を示している。
【０２２１】
この類似ワーク１０Ｃは溶接開始点ＰＮＴ１から溶接終了点ＰＮＴ２まで溶接される。溶接開始点ＰＮＴ１から溶接終了点ＰＮＴ２までの区間が溶接線２０″となる。ロボット１のツール先端２ａの移動経路Ｌ″は溶接線２０″を含む経路となる。
【０２２２】
３次元ＣＡＤ用端末１１では、類似ワーク１０Ｃの溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置がワーク座標系で記述されており、その具体的な数値を図２３に示す。この図２３に示す溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置データは、ポイントデータファイル「ＷＯＲＫ  Ｃ．ＴＸＴ」に、テキストデータとして格納される。
【０２２３】
つぎにプログラム作成用端末１２では、既に作成された図１６のメタジョブ３０′Ａをベースにして、類似ワーク１０Ｃに適合したメタジョブ３０″Ａが図２４に示すように作成される。
【０２２４】
同図２４に示すようにメタジョブ３０″Ａのマクロ３０１は、図１６のメタジョブ３０′Ａのマクロ２０１に対応している。マクロ３０１はマクロ２０１中の「＃loadpoint WORK B.TXT」を、「＃loadpoint WORK C.TXT」に変更するだけでよい。他のマクロ３０２、３０３、３０４は図１６のマクロ２０２、２０３、２０４と同じである。したがってメタジョブ３０″Ａは図１６のメタジョブ３０′Ａを僅かに書き換えるだけで容易に作成可能である。
【０２２５】
つぎにメタジョブ３０″の処理が実行され、図２５に示すように類似ワーク３０Ｃに適合したロボットプログラム３０Ｃが作成される。
【０２２６】
ロボットプログラム３０Ｃを実行することによりロボット１が駆動され、図２６に示すようにロボット１のツール先端２ａが移動経路Ｌ″に沿って精度よく移動する。これにより類似ワーク１０Ｃの溶接作業が正確に行われる。
【０２２７】
・第３の実施形態
以下メタジョブ３０′Ａが既に作成されていることを前提として、ＣＡＤで新たなワーク３０Ｎが設計されるに連動してロボットプログラム３０Ｎを自動的に作成する実施形態について図２７、図２８を参照して説明する。
【０２２８】
３次元ＣＡＤ用端末１１では、図２７に示すように基本ワーク１０Ａが、この基本ワーク１０Ａおよび類似ワーク１０Ｂに類似する類似ワーク１０Ｎに設計変更され、類似ワーク１０Ｎの３次元モデルが作成される。図２７は３次元ＣＡＤ用端末１１の画面４０上に類似ワーク１０Ｎの３次元モデルが表示された様子を示している。
【０２２９】
この類似ワーク１０Ｎは溶接開始点ＰＮＴ１から溶接終了点ＰＮＴ２まで溶接される。
【０２３０】
３次元ＣＡＤ用端末１１では、類似ワーク１０Ｎの溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置がワーク座標系で記述される。
【０２３１】
溶接開始点ＰＮＴ１、溶接終了点ＰＮＴ２、ワーク基準点ＰＯＳの座標位置データは、ポイントデータファイル「ＷＯＲＫ  Ｎ．ＴＸＴ」に、テキストデータとして格納される。このポイントデータファイル「ＷＯＲＫ  Ｎ．ＴＸＴ」は所定のプログラム作成開始コマンドを入力することに応じて３次元ＣＡＤ用端末１１から出力される。
【０２３２】
一方プログラム作成用端末１２では、既に作成された図１６のメタジョブ３０′Ａをベースにして、図２８に示す内容のメタジョブ３００Ａに書き換えられている。
【０２３３】
同図２８に示すようにメタジョブ３００Ａのマクロ４０１は、図１６のメタジョブ３０′Ａのマクロ２０１に対応している。マクロ４０１はマクロ２０１中の「＃loadpoint WORK B.TXT」を、「＃loadpoint WORK N.TXT」に変更したものである。
【０２３４】
そこで３次元ＣＡＤ用端末１１で上記プログラム作成開始コマンドが入力されると、３次元ＣＡＤ用端末１１からポイントデータファイル「ＷＯＲＫ  Ｎ．ＴＸＴ」がプログラム作成用端末１２に出力される。これに応じてプログラム作成用端末１２のメタジョブ処理ソフトウエアが自動的に起動される。このためメタジョブ３００Ａの処理が実行され、類似ワーク３０Ｎに適合したロボットプログラム３０Ｎが自動的に作成される。さらに新たな類似ワークが３次元ＣＡＤ用端末１１で作成されると、ポイントデータファイル「ＷＯＲＫ  Ｎ．ＴＸＴ」のデータ内容は、この新たな類似ワークのデータに更新され、同様にしてロボットプログラムが自動的に作成される。
【０２３５】
このように本実施形態によれば、３次元ＣＡＤ用端末１１で設計変更がされるに連動して、自動的に設計変更後のワークに適合したロボットプログラムを作成することができる。
【０２３６】
・第４の実施形態
つぎに図２９、図３０を参照して、図１に示すポジショナ９またはスライダ４の各軸位置が変更された場合の処理について説明する。本実施形態ではポジショナ９の軸Ｕ、Ｖの位置が変更された場合を例にとる。
【０２３７】
図２９（ａ）に示すように、ワーク１０Ａ（図９）の基本ロボットプログラム３０Ｄは、ロボット座標系上の座標位置データで記述されている。たとえばステップ３９の座標位置はＸ＝９３４．６７  Ｙ＝−５０６．４６  Ｚ＝１２６３．７７  Ａ＝２５．９９  Ｂ＝−５５．００  Ｃ＝０．００として記述されている。
【０２３８】
そこでプログラム作成用端末１２では、基本ロボットプログラム３０Ｄに、マクロ５０１、５０２、５０３が記述されてメタジョブが作成される。
【０２３９】
マクロ５０１、５０２、５０３は、ポジショナ９の変更前後の各軸Ｕ、Ｖの位置およびワーク１０Ａのワーク座標系上の座標位置を変数として、各軸Ｕ、Ｖの位置変更前後におけるワーク１０Ａのロボット座標系上の座標位置の差分に変換する処理を行うものである。
【０２４０】
図２に示すようにポジショナ９の変更前後の各軸Ｕ、Ｖの位置データは、プログラム作成用端末１２に取り込まれる。またワーク１０Ａのワーク座標系上の座標位置データは、３次元ＣＡＤ用端末１１からプログラム作成用端末１２に取り込まれる。ワーク１０Ａのワーク座標系上の座標位置データは、座標番号APNT47、APNT48で与えられる。
【０２４１】
上記マクロ５０１、５０２、５０３には、ポジショナ９の変更前後の各軸Ｕ、Ｖの位置データおよびワーク１０Ａのワーク座標系上の座標位置データ（座標番号）が代入されることになる。
【０２４２】
プログラム作成用端末１２でメタジョブ処理ソフトウエアが起動されると、上記マクロ５０１、５０２、５０３が処理されて、各軸Ｕ、Ｖの位置変更前後におけるワーク１０Ａのロボット座標系上の座標位置の差分が演算され、基本ロボットプログラム３０Ｄ中にロボット座標系で記述されたワーク１０Ａの座標位置が上記演算した差分だけシフトされて、図２９（ｂ）に示すように、シフトされたロボット座標系上の座標位置が求められる。
【０２４３】
ステップ３９を例にとると、図２９（ｂ）に示すように、ステップ３９の座標位置（ Ｘ＝９３４．６７  Ｙ＝−５０６．４６  Ｚ＝１２６３．７７  Ａ＝２５．９９  Ｂ＝−５５．００  Ｃ＝０．００）が、（Ｘ＝９５２．１５  Ｙ＝−５０４．２７  Ｚ＝１１５３．７２  Ａ＝２４．２２  Ｂ＝−５５．１１  Ｃ＝１０．００）に変換される。他のステップも同様に変換される。
【０２４４】
このようにした各軸Ｕ、Ｖの位置変更後に適合したロボットプログラム３０Ｅが作成される。
【０２４５】
またスライダ４の各軸Ｒ、Ｓの位置を変更した場合も同様であり、スライダ４の各軸Ｒ、Ｓの位置変更後に適合したロボットプログラムを作成することができる。
【０２４６】
本実施形態によれば、基本ロボットプログラム３０Ｄのロボット座標位置を、ポジショナ９またはスライダ４の変更前後の各軸の位置およびワーク１０Ａのワーク座標系上の座標位置に応じてシフトさせることによってロボットプログラム３０Ｅを作成するようにしているので、ポジショナ９またはスライダ４の変更後の各軸の位置に適合したロボットプログラム３０Ｅを容易に作成することができる。また現場のロボット１、ポジショナ９、スライダ４の機差をプログラム３０Ｅ中に織り込むことができ、ロボット１を実際に動かす動作確認とプログラム修正作業を実質的に行う必要はない。これにより作業効率が飛躍的に向上する。
【０２４７】
・第５の実施形態
図４に示すように基本ワーク１０Ａの基本ロボットプログラム３０Ａそのものがロボット１を実際に動かして修正される。この修正されたロボットプログラム３０ＡＡがプログラム作成用端末１２にアップロードされる。そしてプログラム作成用端末１２では修正されたロボットプログラム３０ＡＡをベースにしてメタジョブ３０′ＡＡが作成される。なお必要があれば修正後のロボットプログラム３０ＡＡの動作確認がオフラインティーチング用端末６でシミュレーションで実行される。そしてメタジョブ３０′ＡＡがメタジョブ処理ソフトウエアによって処理され、類似ワーク３０Ｂに適合したロボットプログラム３０ＢＢ、他の類似ワーク３０Ｃに適合したロボットプログラム３０ＣＣが作成される。作成されたロボットプログラム３０ＢＢ、３０ＣＣはロボットコントローラ５にダウンロードされる。
【０２４８】
本実施形態によれば、作業現場でロボットジョブの修正があった場合に、その修正内容をメタジョブ３０′Ａに織り込んでメタジョブ３０′ＡＡに変更し、変更したメタジョブ３０′ＡＡに基づいて各類似ワーク３０Ｂ、３０Ｃのロボットプログラム３０ＢＢ、３０ＣＣを作成するようにしているので、各ロボットプログラムを修正する作業を容易に行うことができる。
【０２４９】
なお以上の実施形態では３次元のＣＡＤのデータに基づいてロボットプログラムを作成する場合を想定しているが、２次元のＣＡＤのデータまたは設計図面のデータに基づいてロボットプログラムを作成してもよい。
【図面の簡単な説明】
【図１】図１は実施形態のシステムの構成を示す図である。
【図２】図２はメタジョブの作成の流れを説明する図である。
【図３】図３は類似ワークのロボットプログラムを作成する流れを説明する図である。
【図４】図４は作業現場でロボットジョブの修正があった場合にロボットプログラムを修正する処理の流れを説明する図である。
【図５】図５は実施形態の処理の手順を示すフローチャートである。
【図６】図６（ａ）、（ｂ）はそれぞれ、基本ワークと類似ワークを示す図である。
【図７】図７は基本ワークの溶接開始点、終了点とロボットプログラムの関係を示す図である。
【図８】図８は基本ワーク用プログラムに基づいて類似ワーク用プログラムを作成する処理を説明する図である。
【図９】図９は基本ワーク上に沿ってロボットのツール先端が移動する様子を示す図である。
【図１０】図１０は基本ロボットプログラムを例示した図である。
【図１１】図１１は基本ワーク上の溶接開始点と溶接終了点の位置を示す図である。
【図１２】図１２は基本ワークの各位置の具体的なデータを示す図である。
【図１３】図１３は類似ワーク上の溶接開始点と溶接終了点の位置を示す図である。
【図１４】図１４は類似ワークの各位置の具体的なデータを示す図である。
【図１５】図１５は基本ワークと類似ワークの相対位置関係を示す図である。
【図１６】図１６は基本ロボットプログラムにマクロが記述されたメタジョブを例示した図である。
【図１７】図１７はメタジョブの処理の中間リストを示す図である。
【図１８】図１８はメタジョブの処理の中間リストを示す図である。
【図１９】図１９はメタジョブの処理の中間リストを示す図である。
【図２０】図２０は類似ロボットプログラムを例示した図である。
【図２１】図２１は類似ワーク上に沿ってロボットのツール先端が移動する様子を示す図である。
【図２２】図２２は別の類似ワーク上の溶接開始点と溶接終了点の位置を示す図である。
【図２３】図２３は別の類似ワークの各位置の具体的なデータを示す図である。
【図２４】図２４は図１６のメタジョブをベースに作成されたメタジョブを示した図である。
【図２５】図２５は別の類似ロボットプログラムを例示した図である。
【図２６】図２６は別の類似ワーク上に沿ってロボットのツール先端が移動する様子を示す図である。
【図２７】図２７は新たにＣＡＤ上で作成される類似ワーク上の溶接開始点と溶接終了点の位置を示す図である。
【図２８】図２８は図１６のメタジョブをベースに作成されたメタジョブを示した図である。
【図２９】図２９（ａ）はポジショナの軸が変更される場合のメタジョブを示す図で、図２９（ｂ）はポジショナの軸が変更された場合に適合したロボットプログラムの一部を示した図である。
【図３０】図３０は従来技術を示す図である。
【符号の説明】
【図１】
0004837837.tif 000003
【図２】
0004837837.tif 000004
【図３】
0004837837.tif 000005
【図４】
0004837837.tif 000006
【図５】
0004837837.tif 000007
【図６】
0004837837.tif 000008
【図７】
0004837837.tif 000009
【図８】
0004837837.tif 000010
【図９】
0004837837.tif 000011
【図１０】
0004837837.tif 000012
【図１１】
0004837837.tif 000013
【図１２】
0004837837.tif 000014
【図１３】
0004837837.tif 000015
【図１４】
0004837837.tif 000016
【図１５】
0004837837.tif 000017
【図１６】
0004837837.tif 000018
【図１７】
0004837837.tif 000019
【図１８】
0004837837.tif 000020
【図１９】
0004837837.tif 000021
【図２０】
0004837837.tif 000022
【図２１】
0004837837.tif 000023
【図２２】
0004837837.tif 000024
【図２３】
0004837837.tif 000025
【図２４】
0004837837.tif 000026
【図２５】
0004837837.tif 000027
【図２６】
0004837837.tif 000028
【図２７】
0004837837.tif 000029
【図２８】
0004837837.tif 000030
【図２９】
0004837837.tif 000031
【図３０】
0004837837.tif 000032