(本開示に至る経緯)
特許文献1のように、従来、オフライン教示装置を用いて、溶接ロボット等のロボットに、作業の作業手順、動作軌跡等を含む教示プログラム(例えば、位置検出プログラム、溶接プログラム等)を教示するオフラインティーチング装置がある。ロボットは、作業指示に基づいて、作業指示に対応する各種プログラムを読み出すことで作業を実行する。
動作軌跡は、ロボットが通過,到達すべき位置を示す教示点の位置を含む。一般的に、教示点は、ロボットに対する相対位置(つまり、ロボットの座標系を基準とする位置)が記録される。よって、ロボットに対する作業対象物(以降、「ワーク」と表記)の位置に位置ずれがあり、教示点の位置修正がされない場合には、ロボットは、ワークの加工点に到達できない等の課題があった。
ここで、ワークの位置ずれの原因は、例えば、設備の移転,メンテナンス、ワークの加工条件の変化、ワークの個体差等である。ワークの位置ずれは、例えば、ワーク全体の位置が等しくずれるもの、ワークを構成する部品のそれぞれの位置がずれるもの、複数のワークのそれぞれの生産中に個体ごとにずれ量が変化するもの(つまり、経時変化が大きいもの)、ずれ量の経時変化が少ないもの等があり、位置ずれの形態ごとに作業への影響度がそれぞれ異なる。
したがって、教示点の位置修正は、位置ずれの形態に合わせて行われることが望ましい。しかし、教示点の数は、ワークによって数百~数千個になることがあるため、修正に要する工数が極めて大きいという課題があった。
また、生産されるワークに対して本溶接を行うロボットと、ワークとロボットとの間の位置ずれを計測するためのロボットとが異なる場合がある。このような場合、本溶接を行うロボットは、ワークとロボットとの間の位置ずれを認識し、修正することが困難だった。
以下、適宜図面を参照しながら、本開示に係るオフライン教示装置およびオフライン教示システムを具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるものであり、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
以下、本溶接される対象物(例えば金属)を「元ワーク」、本溶接により生産(製造)された対象物を「ワーク」とそれぞれ定義する。「ワーク」は、1回の本溶接により生産されたワークに限らず、2回以上の本溶接により生産された複合的なワークであってもよい。また、元ワークと他の元ワークとが溶接ロボットにより接合等されてワークを生産する工程を「本溶接」と定義する。
(溶接システムの構成)
図1は、実施の形態1に係る溶接システム100のシステム構成例を示す概略図である。オフライン教示システムの一例としての溶接システム100は、外部ストレージST、入力インターフェースUI1およびモニタMN1のそれぞれと接続された上位装置1と、ロボット制御装置2A,2Bのそれぞれと、検査制御装置3と、センサ4と溶接ロボットMC1と、検査ロボットMC2と、モニタMN2とを含む構成である。なお、ティーチペンダントTP1,TP2は必須の構成でなく、省略されてもよい。モニタMN2は、必須の構成でなく、省略されてもよい。
上位装置1は、ロボット制御装置2Aを介して溶接ロボットMC1により実行される本溶接の開始および完了を統括して制御する。例えば、上位装置1は、ユーザ(例えば、溶接作業者あるいはシステム管理者。以下同様。)により予め入力あるいは設定された溶接関連情報を外部ストレージSTから読み出し、溶接関連情報を用いて、溶接関連情報の内容を含めた本溶接の実行指令を生成して対応するロボット制御装置2Aに送信する。上位装置1は、溶接ロボットMC1による本溶接が完了した場合に、溶接ロボットMC1による本溶接が完了した旨の本溶接完了報告をロボット制御装置2Aから受信し、対応する本溶接が完了した旨のステータスに更新して外部ストレージSTに記録する。
なお、上述した本溶接の実行指令は上位装置1により生成されることに限定されず、例えば本溶接が行われる工場等内の設備の操作盤(例えばPLC:Programmable Logic Controller)、あるいはロボット制御装置2Aの操作盤(例えば、ティーチペンダントTP1)により生成されてもよい。なお、ティーチペンダントTP1は、ロボット制御装置2Aに接続された溶接ロボットMC1を操作するための装置である。
また、上位装置1は、ロボット制御装置2B、検査制御装置3およびセンサ4を用いたビード外観検査の開始および完了を統括して制御する。例えば、上位装置1は、ロボット制御装置2Bから本溶接完了報告を受信すると、溶接ロボットMC1により生産されたワークのビード外観検査の実行指令を生成してロボット制御装置2Bおよび検査制御装置3のそれぞれに送信する。上位装置1は、ビード外観検査が完了した場合に、ビード外観検査が完了した旨の外観検査報告を検査制御装置3から受信し、対応するビード外観検査が完了した旨のステータスに更新して外部ストレージSTに記録する。
ここで、溶接関連情報とは、溶接ロボットMC1により実行される本溶接の内容を示す情報であり、本溶接の工程ごとに予め作成されて外部ストレージSTに登録されている。溶接関連情報は、例えば本溶接に使用される元ワークの数と、本溶接に使用される元ワークのID、元ワークのロット情報、名前および溶接箇所(例えば、溶接線の情報、溶接線の位置情報等)を含むワーク情報と、本溶接が実行される実行予定日と、元ワークの生産台数と、本溶接時の各種の溶接条件と、を含む。なお、溶接関連情報は、上述した項目のデータに限定されず、作成済みの溶接動作および検査動作の教示プログラムのそれぞれ(後述参照)、これらの教示プログラムの作成に用いられた溶接動作設定情報、検査動作設定情報等の情報をさらに含んでもよい。
また、溶接条件は、例えば元ワークの材質および厚み、溶接ワイヤ301の材質およびワイヤ径、シールドガス種、シールドガスの流量、溶接電流の設定平均値、溶接電圧の設定平均値、溶接ワイヤ301の送給速度および送給量、溶接回数、溶接時間等である。また、これらの他に、例えば本溶接の種別(例えばTIG溶接、MAG溶接、パルス溶接)を示す情報、マニピュレータ200Aの移動速度および移動時間が含まれても構わない。
ロボット制御装置2Aは、上位装置1あるいはロボット制御装置2Bから送信された本溶接の実行指令に基づいて、その実行指令で指定される元ワークを用いた本溶接の実行を溶接ロボットMC1に開始させる。なお、上述した溶接関連情報は、上位装置1が外部ストレージSTを参照して管理することに限定されず、例えばロボット制御装置2Aにおいて管理されてもよい。この場合、ロボット制御装置2Aは本溶接が完了した状態を把握できるので、溶接関連情報のうち溶接工程が実行される予定の実行予定日の代わりに実際の実行日が管理されてよい。なお、本明細書において、本溶接の種類は問わないが、説明を分かり易くするために、複数の元ワークを接合して1つのワークを生産する工程を例示して説明する。
上位装置1は、モニタMN1、入力インターフェースUI1および外部ストレージSTのそれぞれとの間でデータの入出力が可能となるように接続され、さらに、ロボット制御装置2A,2Bおよび検査制御装置3との間でデータの通信が可能となるように接続される。上位装置1は、モニタMN1および入力インターフェースUI1を一体に含む端末装置P1でもよく、さらに、外部ストレージSTを一体に含んでもよい。この場合、端末装置P1は、本溶接の実行に先立ってユーザにより使用されるPC(Personal Computer)である。なお、端末装置P1は、上述したPCに限らず、例えばスマートフォン、タブレット端末等の通信機能を有するコンピュータ装置でよい。
モニタMN1は、例えばLCD(Liquid Crystal Display)または有機EL(Electroluminescence)等の表示用デバイスを用いて構成されてよい。モニタMN1は、例えば上位装置1から出力された、本溶接が完了した旨の通知、あるいはビード外観検査が完了した旨の通知を示す画面を表示してよい。また、モニタMN1の代わりに、あるいはモニタMN1とともにスピーカ(図示略)が上位装置1に接続されてもよく、上位装置1は、本溶接が完了した旨の内容、あるいはビード外観検査が完了した旨の内容の音声を、スピーカを介して出力してもよい。
入力インターフェースUI1は、ユーザの入力操作を検出して上位装置1に出力するユーザインターフェースであり、例えば、マウス、キーボードまたはタッチパネル等を用いて構成されてよい。入力インターフェースUI1は、例えばユーザが溶接関連情報を作成する時の入力操作を受け付けたり、ロボット制御装置2Aへの本溶接の実行指令を送信する時の入力操作を受け付けたりする。
外部ストレージSTは、例えばハードディスクドライブ(Hard Disk Drive)またはソリッドステートドライブ(Solid State Drive)を用いて構成される。外部ストレージSTは、例えば本溶接ごとに作成された溶接関連情報のデータ、本溶接により生産されたワークWkのステータス(生産状況)、ワークWkのワーク情報(上述参照)を記憶する。なお、外部ストレージSTは、ロボット制御装置2Aあるいはロボット制御装置2Bによって作成された溶接動作の教示プログラムと、検査動作の教示プログラムとを溶接線ごとに記憶していてもよい。溶接動作および検査動作の教示プログラムのそれぞれについては、後述する。
ロボット制御装置2Aは、上位装置1およびロボット制御装置2Bとの間でそれぞれデータの通信が可能に接続されるとともに、溶接ロボットMC1との間でデータの通信が可能に接続される。ロボット制御装置2Aは、上位装置1から送信された本溶接の実行指令を受信すると、この実行指令に対応する溶接動作の教示プログラムに基づいて、本溶接プログラムを作成し、溶接ロボットMC1を制御して本溶接を実行させる。
また、ロボット制御装置2Aは、ロボット制御装置2Bから送信された溶接動作の教示プログラム、あるいは溶接動作の教示プログラムに含まれる教示点の修正情報(例えば、位置ずれ情報)を取得する。ロボット制御装置2Aは、取得された溶接動作の教示プログラムに基づいて、本溶接プログラムを作成し、溶接ロボットMC1を制御して本溶接を実行させる。
溶接制御装置の一例としてのロボット制御装置2Aは、本溶接の完了を検出すると本溶接が完了した旨の本溶接完了報告を生成して上位装置1に通知する。これにより、上位装置1は、ロボット制御装置2Aによる本溶接の完了を適正に検出できる。なお、ロボット制御装置2Aによる本溶接の完了の検出方法は、例えばワイヤ送給装置300が備えるセンサ(図示略)からの本溶接の完了を示す信号に基づいて判別する方法でよく、あるいは公知の方法でもよく、本溶接の完了の検出方法の内容は限定されなくてよい。
オフライン教示装置および検査制御装置の一例としてのロボット制御装置2Bは、上位装置1、ロボット制御装置2A、および検査制御装置3との間でそれぞれデータの通信が可能に接続されるとともに、検査ロボットMC2との間でデータの通信が可能に接続される。ロボット制御装置2Bは、上位装置1から送信された本溶接の実行指令を受信すると、ワークWkとの間の位置ずれ量を計測する。ロボット制御装置2Bは、計測されたワークWkの位置ずれ量に基づいて、検査動作の教示プログラムに含まれる教示点のそれぞれの位置を修正したり、溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正したりする。ロボット制御装置2Bは、修正後の溶接動作の教示プログラムをロボット制御装置2Aに送信して、本溶接を実行させる。
ロボット制御装置2Bは、上位装置1から送信されたビード外観検査の実行指令を受信すると、この実行指令に対応する検査動作の教示プログラムに基づいて、外観検査プログラムを作成し、検査ロボットMC2(図2参照)を制御して溶接ビードの外観検査を実行させる。
ロボット制御装置2Bは、この実行指令に対応する検査動作の教示プログラムに基づいて、センサ4が取り付けられた溶接ロボットMC1(図2参照)を制御して、ワークWkに生成された溶接ビードの外観検査を実行する。なお、ビード外観検査が完了した旨の外観検査報告は検査制御装置3から上位装置1に送信されるが、ロボット制御装置2B自ら、あるいは検査制御装置3からの指示を受けたロボット制御装置2Bから上位装置1に送信されてもよい。これにより、上位装置1は、ビード外観検査の完了を適切に検出できる。
溶接ロボットMC1は、ロボット制御装置2Aとの間でデータの通信が可能に接続される。溶接ロボットMC1は、対応するロボット制御装置2Aの制御の下で、上位装置1から指令された本溶接を実行する。また、検査ロボットMC2は、検査動作の教示プログラムに基づいてセンサ4を移動することで、上位装置1から指令されたビード外観検査(外観スキャン)を実行する。
検査制御装置3は、上位装置1、ロボット制御装置2B、およびセンサ4のそれぞれとの間でデータの通信が可能に接続される。検査制御装置3は、上位装置1から送信されたビード外観検査の実行指令を受信すると、対応するワークWkの検査動作の教示プログラムに従い、溶接ロボットMC1により生産されたワークWkの溶接箇所(つまり、溶接ビード)のビード外観検査(例えば、ワークに形成された溶接ビードが予め既定された溶接基準を満たすか否かの検査)を、検査ロボットMC2が備えるセンサ4とともに実行する。検査制御装置3は、検査動作の結果、センサ4により取得された溶接ビードの形状に関する入力データ(例えば、溶接ビードの3次元形状を特定可能な点群データ)を用いて、ワークごとに予め既定された良品ワークのマスタデータとの比較に基づいてビード外観検査を行う。
検査制御装置3は、ビード外観検査を行い、このビード外観検査の検査判定結果とビード外観検査が完了した旨の通知とを含む外観検査報告を生成して上位装置1に送信するとともに、モニタMN2に出力する。なお、検査制御装置3は、ワークのビード外観検査において欠陥を検知したと判定した場合に、その欠陥をリペア溶接するための欠陥区間の情報を含む外観検査結果を含む外観検査報告を生成して、上位装置1およびロボット制御装置2Bに送信する。また、検査制御装置3は、ワークのビード外観検査によって欠陥を検知したと判定した場合に、欠陥区間の情報を含む外観検査結果を用いて、欠陥箇所の補修等の修正を行う旨のリペア溶接プログラムを作成する。検査制御装置3は、このリペア溶接プログラムと外観検査結果とを対応付けて上位装置1あるいはロボット制御装置2Bに送信する。
また、検査制御装置3は、上位装置1あるいはロボット制御装置2Bを介して送信されたワークWkをスキャンする外観スキャンの実行指令に基づいて、ワークWkの外観をスキャンする。検査制御装置3は、外観スキャンの結果、センサ4により取得されたワークWkの形状に関する入力データ(例えば、ワークWkの3次元形状を特定可能な点群データ)をロボット制御装置2Bに送信する。
センサ4は、検査制御装置3との間でデータの通信が可能に接続される。センサ4は、検査ロボットMC2に取り付けられ、ロボット制御装置2Bの制御に基づくマニピュレータ200Bの駆動に応じて、ステージSTG(図4参照)上に載置されたワークWkの3次元スキャンを実行する。センサ4は、ロボット制御装置2Bの制御に基づくマニピュレータ200Bの駆動に応じて、ステージSTGに置かれたワークWkの位置等を特定可能な3次元形状のデータ(例えば、点群データ、メッシュデータ等)を取得して検査制御装置3に送信する。
モニタMN2は、例えばLCDまたは有機EL等の表示用デバイスを用いて構成されてよい。モニタMN2は、例えば検査制御装置3から出力された、ビード外観検査が完了した旨の通知、あるいはその通知とビード外観検査の結果とを示す画面を表示する。また、モニタMN2の代わりに、あるいはモニタMN2とともにスピーカ(図示略)が検査制御装置3に接続されてもよく、検査制御装置3は、ビード外観検査が完了した旨の通知、あるいはその通知およびビード外観検査結果の内容を示す音声を、スピーカを介して出力してもよい。
ここで、溶接線の位置情報は、本溶接工程においてワークWkに溶接される溶接線の位置を示す情報である。
また、溶接動作の教示プログラムは、溶接線の位置に基づいて作成され、溶接ロボットMC1に本溶接を実行させるためのプログラムである。溶接動作の教示プログラムは、溶接トーチ400を用いてワークWkを本溶接するための各種動作(例えば、アプローチ、リトラクト、回避、溶接等)を実行するための教示点の位置、距離、角度(姿勢)の情報と、溶接条件等の情報と、を含んで作成される。
また、ここでいう検査動作の教示プログラムは、溶接線に基づいて作成され、溶接ロボットMC1に本溶接により作成された少なくとも1つの溶接ビードのビード外観検査を実行させるためのプログラムである。検査動作の教示プログラムは、センサ4を用いて、作成された溶接ビードのビード外観検査を実行するための各種動作(例えば、アプローチ、リトラクト、回避、スキャン等)を実行するための教示点の位置、距離、角度(姿勢)の情報を含んで作成される。
ティーチペンダントTP1は、ロボット制御装置2Aとの間でデータ送受信可能に接続される。ティーチペンダントTP1は、実際の溶接ロボットMC1とワークWkとを用いたユーザ操作によって定義された溶接線の位置情報をロボット制御装置2Aに送信する。ロボット制御装置2Aは、ティーチペンダントTP1から送信された溶接線の位置情報をメモリ22A(図2参照)に記憶するとともに、ロボット制御装置2Aに送信する。
ティーチペンダントTP2は、ロボット制御装置2Bとの間でデータ送受信可能に接続される。ティーチペンダントTP2は、実際の検査ロボットMC2とワークWkとを用いたユーザ操作によって定義されたセンサ4の位置情報をロボット制御装置2Bに送信する。ロボット制御装置2Bは、ティーチペンダントTP2から送信されたセンサ4の位置情報をメモリ22(図2参照)に記憶するとともに、ロボット制御装置2Bに送信する。
図2は、実施の形態1に係る上位装置1およびロボット制御装置2Bの内部構成例を示す図である。説明を分かり易くするために、図2ではロボット制御装置2B、検査制御装置3、検査ロボットMC2、センサ4、モニタMN1,MN2および入力インターフェースUI1等の図示を省略する。
溶接ロボットMC1は、ロボット制御装置2Aの制御の下で、溶接トーチ400を用いた溶接動作の教示プログラムに基づく本溶接工程を実行する。溶接ロボットMC1は、本溶接の工程において、例えばアーク溶接を行う。しかし、溶接ロボットMC1は、アーク溶接以外の他の溶接(例えば、レーザ溶接、ガス溶接)等を行ってもよい。この場合、図示は省略するが、溶接トーチ400に代わって、レーザヘッドを、光ファイバを介してレーザ発振器に接続してよい。溶接ロボットMC1は、マニピュレータ200Aと、ワイヤ送給装置300と、溶接ワイヤ301と、溶接トーチ400とを少なくとも含む構成である。
マニピュレータ200Aは、多関節のアームを備え、ロボット制御装置2Aのロボット制御部24Aからの制御信号に基づいて、それぞれのアームを可動させる。これにより、マニピュレータ200Aは、ワークWkに対する溶接トーチ400との位置関係(例えば、溶接ロボットMC1に対する溶接トーチ400の角度)をアームの駆動によって変更できる。
ワイヤ送給装置300は、ロボット制御装置2Aからの制御信号に基づいて、溶接ワイヤ301の送給速度を制御する。なお、ワイヤ送給装置300は、溶接ワイヤ301の残量を検出可能なセンサ(図示略)を備えてよい。ロボット制御装置2Aは、このセンサの出力に基づいて、本溶接の工程が完了したことを検出できる。
溶接ワイヤ301は、溶接トーチ400に保持されている。溶接トーチ400に電源装置500から電力が供給されることで、溶接ワイヤ301の先端とワークWkとの間にアークが発生し、アーク溶接が行われる。なお、溶接トーチ400にシールドガスを供給するための構成等は、説明の便宜上、これらの図示および説明を省略する。
上位装置1は、ユーザにより予め入力あるいは設定された溶接関連情報を用いて、本溶接、またはビード外観検査の各種の工程の実行指令を生成してロボット制御装置2Aに送信する。上位装置1は、通信部10と、プロセッサ11と、メモリ12とを少なくとも含む構成である。
通信部10は、ロボット制御装置2A、ロボット制御装置2B、検査制御装置3、および外部ストレージSTのそれぞれとの間でデータの通信が可能に接続される。通信部10は、プロセッサ11により生成される本溶接、またはビード外観検査の各種の工程の実行指令をロボット制御装置2A,2Bあるいは検査制御装置3に送信する。通信部10は、ロボット制御装置2Aから送られる本溶接完了報告、ロボット制御装置2Bあるいは検査制御装置3から送られる外観検査報告を受信してプロセッサ11に出力する。なお、本溶接の実行指令には、例えば溶接ロボットMC1が備えるマニピュレータ200A、ワイヤ送給装置300および電源装置500のそれぞれを制御するための制御信号が含まれてもよい。
プロセッサ11は、例えばCPU(Central Processing Unit)またはFPGA(Field Programmable Gate Array)を用いて構成され、メモリ12と協働して、各種の処理および制御を行う。具体的には、プロセッサ11は、メモリ12に保持されたプログラムを参照し、そのプログラムを実行することにより、セル制御部13を機能的に実現する。
メモリ12は、例えばプロセッサ11の処理を実行する際に用いられるワークメモリとしてのRAM(Random Access Memory)と、プロセッサ11の処理を規定したプログラムを格納するROM(Read Only Memory)とを有する。RAMには、プロセッサ11により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ11の処理を規定するプログラムが書き込まれている。また、メモリ12は、外部ストレージSTから読み出された溶接関連情報のデータ、ワークのステータス等をそれぞれ記憶する。
セル制御部13は、外部ストレージSTに記憶されている溶接関連情報に基づいて、本溶接、ワークWkのビード外観検査、ワークWkの外観スキャン、あるいはリペア溶接を実行するための実行指令を作成する。また、セル制御部13は、外部ストレージSTに記憶されている溶接関連情報と、ロボット制御装置2Bから送信された溶接動作および検査動作の教示プログラムのそれぞれとに基づいて、本溶接時の本溶接プログラム、ワークWkのビード外観検査時の溶接ロボットMC1の駆動に関する外観検査プログラム、または外観スキャン時の溶接ロボットMC1の駆動に関する外観スキャン用プログラム等を作成する。さらに、セル制御部13は、作成されたこれらのプログラムの実行指令を作成する。なお、外観検査プログラムあるいは外観スキャンプログラムのそれぞれは、予めワークWkごとに作成されて外部ストレージSTに保存されていてもよく、この場合には、セル制御部13は、外部ストレージSTから各種プログラムを読み出して取得する。セル制御部13は、溶接ロボットMC1で実行される本溶接の各種の工程ごとに異なる実行指令を生成してよい。セル制御部13によって生成された本溶接外観検査、外観スキャンの実行指令は、通信部10を介して、対応するロボット制御装置2A,2B、あるいは検査制御装置3のそれぞれに送られる。
ロボット制御装置2Aは、上位装置1から送信された本溶接、ビード外観検査、あるいは外観スキャンの実行指令に基づいて、対応するプログラムを参照する。ロボット制御装置2Aは、参照されたプログラムに基づいて、溶接ロボットMC1(例えば、マニピュレータ200A、ワイヤ送給装置300、電源装置500)を制御する。ロボット制御装置2Aは、通信部20Aと、プロセッサ21Aと、メモリ22Aとを少なくとも含む構成である。
通信部20Aは、上位装置1、溶接ロボットMC1、ロボット制御装置2BおよびティーチペンダントTP1との間でそれぞれデータの通信が可能に接続される。なお、図2では図示を簡略化しているが、ロボット制御部24Aとマニピュレータ200Aとの間、ロボット制御部24Aとワイヤ送給装置300との間、ならびに、電源制御部25Aと電源装置500との間で、それぞれ通信部20Aを介してデータの送受信が行われる。通信部20Aは、上位装置1から送信された本溶接、あるいはビード外観検査の実行指令を受信する。通信部20Aは、ロボット制御装置2Bから送信された溶接線の位置情報と、溶接動作の教示プログラムと、検査動作の教示プログラムとを受信する。通信部20Aは、本溶接により生産されたワークのワーク情報を上位装置1に送信する。
ここで、ワーク情報には、ワークのIDだけでなく、本溶接に使用される元ワークのID、名前、溶接箇所、本溶接の実行時の溶接条件が少なくとも含まれる。
プロセッサ21Aは、例えばCPUまたはFPGAを用いて構成され、メモリ22Aと協働して、各種の処理および制御を行う。具体的には、プロセッサ21Aは、メモリ22Aに保持されたプログラムを参照し、そのプログラムを実行することにより、本溶接プログラム作成部23A、ロボット制御部24Aおよび電源制御部25Aを機能的に実現する。また、プロセッサ21Aは、溶接動作の教示プログラムを用いて、本溶接プログラム作成部23Aにより生成された本溶接プログラムに基づいて、ロボット制御部24Aにより制御される溶接ロボットMC1(具体的には、マニピュレータ200A、ワイヤ送給装置300および電源装置500のそれぞれ)を制御するためのパラメータの演算等を行う。
メモリ22Aは、例えばプロセッサ21Aの処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ21Aの処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ21Aにより生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ21Aの処理を規定するプログラムが書き込まれている。また、メモリ22Aは、上位装置1から送信された本溶接、ビード外観検査、あるいは外観スキャンの実行指令のデータ、本溶接により生産されるワークWkのワーク情報と溶接線の位置情報とを対応付けた溶接関連情報、ティーチペンダントTP1から送信された溶接線の位置情報等をそれぞれ記憶する。なお、ワークWkのワーク情報を含む溶接関連情報は、溶接動作の教示プログラムと、溶接動作および検査動作のそれぞれの教示プログラムの作成に用いられた溶接線の位置情報と、溶接動作設定情報と、を含んでいてよい。
本溶接プログラム作成部23Aは、通信部20Aを介して上位装置1から送信された本溶接の実行指令に基づいて、実行指令に含まれる複数の元ワークのそれぞれのワーク情報(例えばワークのID、名前、構成部品(元ワーク,部品等)の情報、溶接線の位置情報等)と、これらのワーク情報に関連付けられた溶接動作の教示プログラムとを用いて、溶接ロボットMC1により実行される本溶接の本溶接プログラムを作成する。本溶接プログラムには、本溶接の実行中に電源装置500、マニピュレータ200A、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、本溶接プログラムは、プロセッサ21A内に記憶されてもよいし、メモリ22A内のRAMに記憶されてもよい。
ロボット制御部24Aは、本溶接プログラム作成部23Aにより生成された本溶接プログラムに基づいて、溶接ロボットMC1(具体的には、マニピュレータ200A、ワイヤ送給装置300および電源装置500のそれぞれ)を駆動させるための制御信号を生成する。ロボット制御部24Aは、この生成された制御信号を溶接ロボットMC1に送信する。
電源制御部25Aは、本溶接プログラム作成部23Aにより生成された本溶接プログラムの演算結果に基づいて、電源装置500を駆動させる。
図3は、実施の形態1に係る上位装置1、ロボット制御装置2B、および検査制御装置3の内部構成例を示す図である。説明を分かり易くするために、図3ではロボット制御装置2A、溶接ロボットMC1、モニタMN1,MN2、および入力インターフェースUI1等の図示を省略する。
検査ロボットMC2は、ロボット制御装置2Bの制御の下で、センサ4を用いた検査動作の教示プログラムに基づくビード外観検査工程を実行する。検査ロボットMC2は、外観検査の工程において、例えばセンサ4を用いたワークWkの3次元スキャンを行う。しかし、検査ロボットMC2は、センサ4を用いた3次元スキャン以外の他の外観検査(例えば、カメラを用いたワークWkの撮像)等を行ってもよい。検査ロボットMC2は、マニピュレータ200Bと、ワイヤ送給装置300と、溶接ワイヤ301と、センサ4とを少なくとも含む構成である。
マニピュレータ200Bは、多関節のアームを備え、ロボット制御装置2Bのロボット制御部24Bからの制御信号に基づいて、それぞれのアームを可動させる。これにより、マニピュレータ200Bは、ワークWkとセンサ4との位置関係(例えば、検査ロボットMC2に対するセンサ4の角度)をアームの駆動によって変更できる。
ロボット制御装置2Bは、上位装置1から送信されたビード外観検査の実行指令に基づいて、対応するプログラムを参照する。ロボット制御装置2Bは、参照されたプログラムに基づいて、検査ロボットMC2(例えば、センサ4、マニピュレータ200B)を制御する。ロボット制御装置2Bは、通信部20Bと、プロセッサ21Bと、メモリ22Bとを少なくとも含む構成である。
なお、図1において、センサ4によりスキャンされた3次元形状データは、検査制御装置3に送信される構成を示すが、図3に示すようにセンサ4からロボット制御装置2Bに直接的に送信可能な構成であってもよい。このような場合、センサ4は、ロボット制御装置2Bの通信部20Bとの間でデータ送受信可能に接続され、ワークWkの形状に関する入力データ、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAPの形状に関する入力データをロボット制御装置2Bに送信する。
取得部および出力部の一例としての通信部20Bは、上位装置1、ロボット制御装置2A、検査制御装置3、検査ロボットMC2、およびティーチペンダントTP2との間でそれぞれデータの通信が可能に接続される。通信部20Bは、上位装置1から送信されたビード外観検査の実行指令を受信する。通信部20Bは、ティーチペンダントTP2から送信された溶接線の位置情報と、検査動作の教示プログラムとを受信したり、ロボット制御装置2Aから現在の溶接ロボットMC1の位置(例えば、溶接トーチ400の位置)を受信したりする。通信部20Bは、外観検査結果を上位装置1に送信する。
算出部、変換部、および修正部の一例としてのプロセッサ21Bは、例えばCPUまたはFPGBを用いて構成され、メモリ22Bと協働して、各種の処理および制御を行う。具体的には、プロセッサ21Bは、メモリ22Bに保持されたプログラムを参照し、そのプログラムを実行することにより、検査プログラム作成部23B、ロボット制御部24Bの機能を実現する。また、プロセッサ21Bは、検査動作の教示プログラムを用いて検査プログラム作成部23Bにより生成された外観検査プログラムに基づいて、ロボット制御部24Bにより制御される検査ロボットMC2を制御するためのパラメータの演算等を行う。
プロセッサ21Bは、センサ4により取得されたワークWkの形状と、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP(図5参照)の形状とに基づいて、ワークWkの位置ずれ量(距離および角度)と、溶接ロボットMC1の位置ずれ量(距離および角度)とをそれぞれ算出する。プロセッサ21Bは、算出されたワークWkの位置ずれ量に基づいて、検査動作の教示プログラムに含まれる複数の教示点のそれぞれの位置を修正する。
また、プロセッサ21Bは、算出されたワークWkの位置ずれ量と、溶接ロボットMC1の位置ずれ量とに基づいて、溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する。プロセッサ21Bは、修正後の溶接動作の教示プログラムをロボット制御装置2Aに送信する。
メモリ22Bは、例えばプロセッサ21Bの処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ21Bの処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ21Bにより生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ21Bの処理を規定するプログラムが書き込まれている。また、メモリ22Bは、上位装置1から送信されたビード外観検査の実行指令のデータ、ティーチペンダントTP2から送信された検査動作の教示プログラム等をそれぞれ記憶する。
検査プログラム作成部23Bは、通信部20Bを介して上位装置1から送信された外観検査の実行指令に基づいて、ロボット制御装置2Aに溶接ロボットMC1の現在位置(具体的には、溶接ロボットMC1の位置を特定するためのスキャン位置)を要求する。検査プログラム作成部23Bは、ロボット制御装置2Aから送信され、溶接ロボットMC1の現在位置を取得する。検査プログラム作成部23Bは、取得された溶接ロボットMC1の位置情報と、実行指令に含まれる複数の元ワークのそれぞれのワーク情報(例えばワークのID、名前、構成部品(元ワーク,部品等)の情報、溶接線の位置情報等)と、これらのワーク情報に関連付けられた検査動作の教示プログラムとを用いて、検査ロボットMC2により実行されるビード外観検査の外観検査プログラムを作成する。
ロボット制御部24Bは、検査プログラム作成部23Bにより生成された外観検査プログラムに基づいて、検査ロボットMC2(具体的には、センサ4、マニピュレータ200B)を駆動させるための制御信号を生成する。ロボット制御部24Bは、この生成された制御信号を検査ロボットMC2に送信する。
また、ロボット制御部24Bは、ティーチペンダントTP2から送信された検査動作の教示プログラム(つまり、外観検査プログラム)に基づいて、検査ロボットMC2のマニピュレータ200Bおよびセンサ4のそれぞれを駆動させる。これにより、検査ロボットMC2に取り付けられたセンサ4は、溶接ロボットMC1の溶接トーチ400、あるいは溶接ロボットMC1に取り付けられたアライメントパターンAP(図5参照)をスキャンし、溶接トーチ400あるいはアライメントパターンAPの形状を取得できる。
検査制御装置3は、上位装置1あるいはロボット制御装置2Bから送信されたビード外観検査の実行指令に基づいて、溶接ロボットMC1による本溶接により生産されたワークWk、あるいは1回以上のリペア溶接によりリペアされたワークWkのビード外観検査および外観スキャンのそれぞれの処理を制御する。ビード外観検査は、例えば、ワークWkに形成された溶接ビードが既定の溶接基準(例えば、ユーザのそれぞれにより要求される溶接の品質基準)を満たすか否かの検査であり、上述した検査判定により構成される。検査制御装置3は、センサ4により取得された溶接ビードの形状に関する入力データ(例えば、溶接ビードの3次元形状を特定可能な点群データ)に基づいて、ワークWkに形成された溶接ビードの外観形状が所定の溶接基準を満たすか否かを判定(検査)する。また、検査制御装置3は、センサ4により取得された溶接ビードの形状に関する入力データ、あるいはワークWkの形状に関する入力データをロボット制御装置2Bに送信する。検査制御装置3は、通信部30と、プロセッサ31と、メモリ32と、検査結果記憶部33と、を少なくとも含む構成である。
通信部30は、上位装置1、ロボット制御装置2B、およびセンサ4との間でそれぞれデータの通信が可能に接続される。なお、図2では図示を簡略化しているが、形状検出制御部35とセンサ4との間は、それぞれ通信部30を介してデータの送受信が行われる。通信部30は、上位装置1から送信されたビード外観検査の実行指令を受信する。通信部30は、センサ4を用いたビード外観検査の検査判定結果を上位装置1に送信したり、センサ4により取得された溶接ビードの3次元形状のデータをロボット制御装置2Bに送信したりする。
プロセッサ31は、例えばCPUまたはFPGAを用いて構成され、メモリ32と協働して、各種の処理および制御を行う。具体的には、プロセッサ31は、メモリ32に保持されたプログラムを参照し、そのプログラムを実行することにより、判定閾値記憶部34、形状検出制御部35、データ処理部36、検査結果判定部37、およびリペア溶接プログラム作成部38等の機能を実現する。
メモリ32は、例えばプロセッサ31の処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ31の処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ31により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ31の処理を規定するプログラムが書き込まれている。
検査結果記憶部33は、例えばハードディスクあるいはソリッドステートドライブを用いて構成される。検査結果記憶部33は、プロセッサ31により生成あるいは取得されるデータの一例として、ワークWk(例えばワークあるいはリペアワーク)における溶接箇所のビード外観検査の結果を示すデータを記憶する。このビード外観検査の結果を示すデータは、例えば検査結果判定部37により生成される。
判定閾値記憶部34は、例えばプロセッサ31内に設けられたキャッシュメモリにより構成され、ユーザ操作によって予め設定され、溶接箇所と、検査結果判定部37によるビード外観検査の処理とに対応するそれぞれの閾値(例えば、溶接不良の種別ごとに設定されたそれぞれの閾値)の情報を記憶する。それぞれの閾値は、例えば溶接ビードの位置ずれの許容範囲、溶接ビードの長さ、高さ、幅のそれぞれの閾値、穴あき、ピット、アンダーカット、スパッタのそれぞれの閾値である。判定閾値記憶部34は、リペア溶接後のビード外観検査時の各閾値として、顧客等から要求される最低限の溶接基準(品質)を満たす許容範囲(例えば、最小許容値、最大許容値など)を記憶してよい。なお、これらの閾値は、検査結果判定部37よって作成された検査結果がビード外観検査に合格であるか否かを判定する処理に用いられる。さらに、判定閾値記憶部34は、溶接箇所ごとにビード外観検査の回数上限値を記憶してもよい。これにより、検査制御装置3は、リペア溶接によって不良箇所を修正する際に所定の回数上限値を上回る場合に、溶接ロボットMC1による自動リペア溶接による不良箇所の修正が困難あるいは不可能と判定して、溶接システム100の稼動率の低下を抑制できる。
形状検出制御部35は、上位装置1から送信されたワークWk(例えばワーク)の溶接箇所のビード外観検査の実行指令に基づいて、センサ4により取得され、送信された溶接ビードの形状に関する入力データ(例えば溶接ビードの3次元形状を特定可能な点群データ)を取得する。また、形状検出制御部35は、上位装置1から送信されたワークWk(例えばワーク)の外観スキャンの実行指令に基づいて、センサ4により取得され、送信されたワークWkの形状に関する入力データ(例えばワークWkの3次元形状を特定可能な点群データ)を取得する。具体的に、形状検出制御部35は、上述したロボット制御装置2Aによるマニピュレータ200Aの駆動に応じてセンサ4が溶接ビードあるいはワークWkを撮像可能(言い換えると、溶接箇所あるいはワークWkの3次元形状を検出可能)な位置に到達すると、例えばレーザ光線をセンサ4から照射させて溶接ビードあるいはワークWkの形状に関する入力データを取得させる。形状検出制御部35は、センサ4により取得された入力データ(上述参照)を受信すると、この入力データをデータ処理部36に渡す。
データ処理部36は、形状検出制御部35からの溶接ビードの形状に関する入力データ(上述参照)を取得すると、検査結果判定部37で実行される各種検査判定に適したデータ形式に変換する。データ形式の変換は、いわゆる前処理として、入力データ(つまり点群データ)に含まれる不要な点群データ(例えばノイズ)が除去される修正処理が実行されてもよいし、前処理が省略されてもよい。データ処理部36は、例えば入力された形状データに対して統計処理を実行することで、溶接ビードの3次元形状を示す画像データを生成する。なお、データ処理部36は、検査判定用のデータとして、溶接ビードの位置および形状を強調するために溶接ビードの周縁部分を強調したエッジ強調修正を行ってもよい。なお、データ処理部36は、溶接不良の箇所ごとにビード外観検査の実行回数をカウントし、ビード外観検査の回数がメモリ32に予め記憶された回数を超えても溶接検査結果が良好にならない場合、自動リペア溶接による溶接不良の箇所の修正が困難あるいは不可能と判定してよい。この場合、検査結果判定部37は、溶接不良の箇所の位置および溶接不良の種別(例えば、穴あき、ピット、アンダーカット、スパッタ、突起)を含むアラート画面を生成し、生成されたアラート画面を、通信部30を介して上位装置1に送信する。上位装置1に送信されたアラート画面は、モニタMN1に表示される。なお、このアラート画面は、モニタMN2に表示されてもよい。
データ処理部36は、判定閾値記憶部34に記憶されたビード外観検査用の閾値を用いて、センサ4により取得された溶接ビードの形状に関する入力データとワークごとに予め既定された良品ワークのマスタデータとの比較に基づくビード外観検査を行う。データ処理部36は、検査判定結果としての欠陥判定結果(つまり、リペア溶接が必要な欠陥の有無を示す情報)と、欠陥箇所ごとの欠陥区間の情報とを含む外観検査報告を作成して検査結果記憶部33に記憶するとともに、通信部30を介して上位装置1あるいはロボット制御装置2Bに送信する。また、データ処理部36は、検査対象であるワークWkにリペア溶接が必要な欠陥箇所がないと判定した場合、ビード外観検査に合格である旨の検査判定結果を含む外観検査報告を作成して検査結果記憶部33に記憶するとともに、通信部30を介して上位装置1に送信する。
また、データ処理部36は、形状検出制御部35からワークWkの形状に関する入力データ(上述参照)を取得すると、検査結果判定部37により実行される演算処理に適したデータ形式に変換する。データ形式の変換には、いわゆる前処理として、入力データ(つまり点群データ)に含まれる不要な点群データ(例えばノイズ)が除去される修正処理が含まれてもよいし、ワークWkの3Dモデルを生成する処理であってもよい。また、データ処理部36は、ワークWkの位置および形状を強調、ワークWkの周縁部分を強調したエッジ強調修正を行ってもよい。データ処理部36は、変換後のワークWkの形状に関する入力データを、通信部30を介して、ロボット制御装置2Bに送信する。
検査結果判定部37は、センサ4により取得された溶接ビードの形状に関する入力データとワークごとに予め既定された良品ワークのマスタデータとの比較に基づくビード外観検査を行い、溶接ビードの形状信頼性(例えば直線状あるいは曲線状の溶接線に沿っているか否か)、ビード欠け、およびビード位置ずれを検査する。検査結果判定部37は、検査判定用にデータ処理部36によってデータ変換されたデータ(例えば点群データに基づいて生成された画像データ)と良品ワークのマスタデータとの比較(いわゆる画像処理)を行う。このため、検査結果判定部37は、溶接ビードの形状信頼性、ビード欠け、およびビード位置ずれを高精度に検査することができる。検査結果判定部37は、溶接ビードの形状信頼性、ビード欠けおよびビード位置ずれの検査結果を示す検査スコアを算出し、この検査スコアの算出値を検査結果として作成する。さらに、検査結果判定部37は、作成された検査結果とメモリ32に記憶された検査結果用の閾値とを比較する。検査結果判定部37は、比較した比較結果の情報(つまり、取得された第1検査結果がビード外観検査に合格あるいは不合格であるか)を含む外観検査結果を上位装置1およびモニタMN2に出力する。
また、検査結果判定部37は、複数種類の人工知能によるニューラルネットワークをそれぞれ形成し、センサ4により取得された溶接ビードの形状に関する入力データ、あるいはその入力データがデータ処理部36によって前処理された後の入力データを対象としたAIに基づく溶接不良の有無を判別するビード外観検査)を行い、溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の有無を検査する。溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起はあくまで例示的に列挙されたものであり、検査結果判定部37により検査される不良種別はこれらに限定されない。検査結果判定部37は、該当する種別の溶接不良を検知したと判定した場合には、その溶接不良が検知された溶接ビードの位置を特定する。検査結果判定部37は、事前に溶接不良の種別ごとあるいは溶接不良の種別のグループごとに学習処理によって得られた学習モデル(AI)を用いて、それぞれの溶接不良の有無を判別する。これにより、検査結果判定部37は、例えば溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の有無を高精度に検査することができる。検査結果判定部37は、溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の検査結果(言い換えると、発生確率を示す検査スコア)を算出し、この検査スコアの算出値を含む外観検査結果を作成して、上位装置1およびモニタMN2に出力する。
なお、検査結果判定部37は、上述した各外観検査結果に含まれる検査結果(検査スコア)に基づいて、溶接ロボットMC1によるリペア溶接が可能であるか否か(言い換えると、溶接ロボットMC1によるリペア溶接がよいか、あるいは人手によるリペア溶接がよいか)を判定し、その判定結果を上述した外観検査報告に含めて出力してよい。
リペア溶接プログラム作成部38は、データ処理部36によるワークWkの外観検査報告を用いて、溶接ロボットMC1により実行されるべきワークWkのリペア溶接プログラムを作成する。リペア溶接プログラムには、リペア溶接の実行中に電源装置500、マニピュレータ200A、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、生成されたリペア溶接プログラムは、プロセッサ31内に記憶されてもよいし、メモリ32内のRAMに記憶されてもよいし、外観検査報告と対応付けられて通信部30を介して上位装置1あるいはロボット制御装置2Aに送られてもよい。
リペア溶接プログラム作成部38は、検査結果判定部37によるワークWk(例えばワークあるいはリペアワーク)の外観検査報告とワーク情報(例えばワークあるいはリペアワークの溶接不良の検出点の位置を示す座標等の情報)とを用いて、溶接ロボットMC1により実行されるべきワークWk(例えばワークあるいはリペアワーク)のリペア溶接プログラムを作成する。リペア溶接プログラムには、リペア溶接の実行中に電源装置500、マニピュレータ200A、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、生成されたリペア溶接プログラムは、プロセッサ31内に記憶されてもよいし、メモリ32内のRAMに記憶されてもよい。
センサ4は、例えば3次元形状センサであり、検査ロボットMC2の先端に取り付けられ、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWkあるいはワークWk上の溶接箇所の形状を特定可能な複数の点群データを取得する。センサ4は、取得された点群データに基づいて、溶接箇所の3次元形状を特定可能な点群データを生成してロボット制御装置2Bあるいは検査制御装置3に送信する。
なお、センサ4は、検査ロボットMC2の先端に取り付けられておらず、検査ロボットMC2とは別個に配置されている場合には、ロボット制御装置2Bあるいは検査制御装置3から送信された溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所の位置の付近を走査可能に構成されたレーザ光源(図示略)と、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所の位置の周辺を含む撮像領域を撮像可能に配置され、照射されたレーザ光のうち反射されたレーザ光の反射軌跡(つまり、溶接箇所の形状線)を撮像するカメラ(図示略)と、により構成されてよい。この場合、センサ4は、カメラにより撮像されたレーザ光に基づく溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所(つまり、溶接ビード)の形状データ(言い換えると、画像データ)をロボット制御装置2Bあるいは検査制御装置3に送信する。
なお、上述したカメラは、少なくともレンズ(図示略)とイメージセンサ(図示略)とを有して構成される。イメージセンサは、例えばCCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semi-conductor)等の固体撮像素子であり、撮像面に結像した光学像を電気信号に変換する。
図4を参照して、溶接ロボットMC1の座標系(溶接座標系ΣW1)と、検査ロボットMC2の検査座標系ΣW2とについて説明する。図4は、溶接座標系ΣW1と検査座標系ΣW2とを説明する図である。
なお、図4に示す例において、溶接ロボットMC1と検査ロボットMC2とがワークWkを挟んで向かい合うように配置され、同一の場所で溶接ロボットMC1による本溶接工程と、検査ロボットMC2によるビード外観検査工程とが実行される例を示すが、溶接ロボットMC1と検査ロボットMC2と配置はこれに限定されない。例えば、図10,図11に示すように溶接ロボットMC1と検査ロボットMC2とは、ワークWkの搬送方向RT1に沿って並んで配置されてもよいし、これ以外であってもよい。
溶接ロボットMC1は、溶接座標系ΣW1が設定される。溶接動作の教示プログラムに含まれる教示点の位置は、溶接座標系ΣW1に基づいて定義される。溶接座標系ΣW1の情報は、ロボット制御装置2A,2Bのそれぞれのメモリに記憶される。
検査ロボットMC2は、検査座標系ΣW2が設定される。検査動作の教示プログラムに含まれる教示点の位置は、検査座標系ΣW2に基づいて定義される。検査座標系ΣW2の情報は、ロボット制御装置2A,2Bのそれぞれのメモリに記憶される。
図5および図6のそれぞれを参照して、アライメントパターンAPを用いた溶接ロボットMC1の位置算出例について説明する。図5は、アライメントパターンAPの一例を説明する図である。図6は、アライメントパターンAPの読み取り例を説明する図である。なお、図5に示すアライメントパターンAPの形状は、一例であってこれに限定されない。また、図6に示すアライメントパターンAPは、一例として溶接ロボットMC1の前面に取り付けられている例を示すが、これに限定されず、検査ロボットMC2のセンサ4によりスキャン(読み取り)可能な位置に取り付けられていればよい。
アライメントパターンAPは、検査ロボットMC2に対する溶接ロボットMC1の位置(つまり、距離、向き)を計測するためのプレートであって、溶接ロボットMC1上の所定位置に取り付けられる。アライメントパターンAPは、異なる大きさを有する2つの孔HO1,HO2のそれぞれが形成される。なお、溶接座標系ΣW1の原点位置と、アライメントパターンAPの取付位置とは異なっていてよい。
ロボット制御装置2Bは、センサ4により読み取られたアライメントパターンAPの3次元形状データから2つの孔HO1,HO2のそれぞれを検出する。ロボット制御装置2Bは、検出された2つの孔HO1,HO2のそれぞれの中心位置CT1,CT2を算出し、これら2つの中心位置CT1,CT2を結び、一方の孔(図5に示す例では孔HO1)の中心位置を始点、他方の孔(図5に示す例では孔HO2)の中心位置を終点とするベクトルVCを生成する。ロボット制御装置2Bは、生成されたベクトルVCの向きに基づいて、アライメントパターンAPの取付角度を算出し、ベクトルVCの長さに基づいて、検査ロボットMC2と溶接ロボットMC1との間の距離を算出する。これにより、ロボット制御装置2Bは、検査ロボットMC2に対する溶接ロボットMC1の相対位置を算出することができる。
図7を参照して、溶接トーチ400を用いた溶接ロボットMC1の位置算出例について説明する。図7は、溶接トーチ400のスキャン例を説明する図である。なお、図7に示す例において、スキャン時の溶接トーチ400の姿勢角度はこれに限定されなくてよいことは言うまでもない。
ロボット制御装置2Bは、検査ロボットMC2を駆動させて、所定位置の溶接トーチ400をセンサ4でスキャンする。なお、ロボット制御装置2Bは、ロボット制御装置2Aから送信された現在の溶接トーチ400の位置情報を取得し、検査ロボットMC2を駆動させて、溶接トーチ400をスキャン可能な位置にセンサ4を移動させてもよい。センサ4は、溶接トーチ400の3次元形状データ(入力データ)をロボット制御装置2Bに送信する。
ロボット制御装置2Bは、センサ4から送信された溶接トーチ400の3次元形状データから溶接トーチ400の形状を読み取る。ロボット制御装置2Bは、溶接トーチ400の形状に基づいて、検査ロボットMC2に対する溶接ロボットMC1の相対位置として、溶接トーチ400の相対位置(距離,姿勢角度)を算出する。
例えば、ロボット制御装置2Bは、溶接トーチ400の形状を解析し、読取範囲PT1から溶接ロボットMC1への溶接トーチ400の取付部の検出し、取付部の形状に基づいて、検査ロボットMC2に対する溶接トーチ400の相対位置(距離および角度)を算出する。
また、例えば、ロボット制御装置2Bは、溶接トーチ400の形状を解析し、読取範囲PT2から溶接トーチ400の湾曲部を検出し、湾曲部の形状に基づいて、溶接トーチ400の角度を算出するとともに、読取範囲PT3から溶接トーチ400の先端を検出し、先端位置を算出する。ロボット制御装置2Bは、算出された溶接トーチ400の湾曲部に基づく溶接トーチ400の角度(向き)と、溶接トーチ400の先端に基づく溶接トーチ400の位置とに基づいて、検査ロボットMC2に対する溶接トーチ400の相対位置(距離および角度)を算出する。
なお、溶接トーチ400の相対位置(距離,姿勢角度)の算出方法は、上述した例に限定されない。ロボット制御装置2Bは、溶接トーチ400の取付部、湾曲部、あるいは先端のうち任意の2箇所を組み合わせて検査ロボットMC2に対する溶接トーチ400の相対位置(距離および角度)を算出してよい。
図8を参照して、溶接座標系ΣW1におけるワークWkの位置ずれ量の算出例について説明する。図8は、ワークWkの位置ずれ量の算出例を説明する図である。
ロボット制御装置2Bは、検査座標系ΣW2における検査ロボットMC2の位置PS2に対する溶接ロボットMC1の位置PS1(距離,姿勢角度)と、検査座標系ΣW2における検査ロボットMC2の位置PS2に対するワークWkの位置PS3(距離,姿勢角度)とに基づいて、溶接ロボットMC1に対するワークWkの位置を算出する。なお、ワークWkの位置は、事前に設定され、ワークWkを構成する元ワークのエッジ,ワークWk上の任意の点等であってよい。
ロボット制御装置2Bは、算出されたワークWkの位置と、ワークWkのワーク情報に含まれるワークWkの位置情報とに基づいて、ワークWkの位置ずれ量を算出する。以下、ワークWkの位置ずれ量の算出例を具体的に説明する。
ロボット制御装置2Bは、溶接ロボットMC1の位置PS1と、検査ロボットMC2の位置PS2と、ワークWkの位置PS1とに基づいて、検査ロボットMC2の位置PS2を基準とする溶接ロボットMC1の位置ずれ量と、検査ロボットMC2の位置PS2を基準とするワークWkの位置ずれ量とをそれぞれ算出する。
ロボット制御装置2Bは、ワークWkの位置ずれ量に基づいて、ワークWkに対応する検査動作の教示プログラムに含まれる教示点の位置修正を実行する。
また、ロボット制御装置2Bは、溶接ロボットMC1の位置PS1と、検査ロボットMC2の位置PS2と、ワークWkの位置PS1とに基づいて、ベクトルVC11,VC12のそれぞれを算出する。
ここで、ベクトルVC11は、検査座標系ΣW2における検査ロボットMC2の位置PS2を始点、検査ロボットMC2に対する溶接ロボットMC1の位置PS1を終点とするベクトルである。ベクトルVC12は、検査座標系ΣW2における検査ロボットMC2の位置PS2を始点、検査ロボットMC2に対するワークWkの位置PS3を終点とするベクトルである。
ロボット制御装置2Bは、ベクトルVC11の逆ベクトルと、ベクトルVC12との和に基づいて、ベクトルVC13を算出する。ベクトルVC13は、溶接ロボットMC1の溶接座標系ΣW1の位置PS1を始点、ワークWkの位置PS3を終点とするベクトルである。これにより、ロボット制御装置2Bは、ベクトルVC13により溶接ロボットMC1の溶接座標系ΣW1の位置PS1(原点)に対するワークWkの位置PS3(つまり、距離、姿勢角度)を算出できる。
ロボット制御装置2Bは、算出されたベクトルVC13に基づいて、溶接ロボットMC1に対するワークWkの位置ずれ量を算出し、算出されたワークWkの位置ずれ量に基づいて、このワークWkに対応する溶接動作の教示プログラムに含まれる教示点の位置修正を実行する。ロボット制御装置2Bは、修正された溶接動作の教示プログラムをロボット制御装置2Bに送信する。
次に、図9を参照して、実施の形態1におけるロボット制御装置2Bの動作手順について説明する。図9は、実施の形態1におけるロボット制御装置2Bによる教示プログラムの修正手順例を説明するフローチャートである。なお、ステップSt11とステップSt12との処理手順は逆であってもよい。
ロボット制御装置2Bは、センサ4から送信された溶接ロボットMC1の3次元形状データに基づいて、検査ロボットMC2の検査座標系ΣW2を基準とする溶接ロボットMC1の位置を算出する。ロボット制御装置2Bは、算出された溶接ロボットMC1の位置と、ロボット制御装置2Aから送信された溶接ロボットMC1の位置、あるいは事前に記憶された溶接ロボットMC1の位置との位置ずれ量(距離および姿勢角度)を算出する(St11)。なお、ロボット制御装置2Bにより算出される位置ずれ量は、3次元的な位置ずれ量であり、対応する座標系を基準とする3次元的な距離と、姿勢角度(回転角度)とを含む。
なお、ロボット制御装置2Bは、溶接ロボットMC1の溶接トーチ400の3次元形状データに基づいて、溶接ロボットMC1の位置ずれ量を算出する場合、溶接トーチ400の位置(具体的には、図7に示す溶接トーチ400の取付位置、溶接トーチ400の湾曲部の位置、溶接トーチ400のトーチ先端位置等)を溶接ロボットMC1の位置として算出してもよい。また、ロボット制御装置2Bは、算出された溶接トーチ400の位置に基づいて、溶接ロボットMC1の原点位置(例えば、溶接ロボットMC1の溶接座標系ΣW1の原点位置)をさらに算出することで、溶接ロボットMC1の位置を算出してもよい。
また、プロセッサ21Bは、センサ4により取得された溶接ロボットMC1に取り付けられたアライメントパターンAPの形状が取得された場合、アライメントパターンAPの形状に基づいて、検査ロボットMC2の検査座標系ΣW2を基準とする溶接ロボットMC1の位置を算出する。
ロボット制御装置2Bは、センサ4から送信されたワークWkの3次元形状データに基づいて、検査ロボットMC2の検査座標系ΣW2を基準とするワークWkの位置を算出する。ロボット制御装置2Bは、算出されたワークWkの位置と、ワークWkのワーク情報に含まれるワークWkの位置との位置ずれ量(距離および姿勢角度)を算出する(St12)。
ロボット制御装置2Bは、算出されたワークWkの位置ずれ量に基づいて、このワークWkにビード外観検査を実行するための検査動作の教示プログラムに含まれる複数の教示点のそれぞれの位置を修正する(St13)。
ロボット制御装置2Bは、溶接ロボットMC1の位置に基づいて、検査座標系ΣW2におけるワークWkの位置ずれ量を、溶接座標系ΣW1における(つまり、溶接ロボットMC1から見た)ワークWkの位置ずれ量に変換する(St14)。
ロボット制御装置2Bは、算出されたワークWkの位置ずれ量に基づいて、溶接動作の教示プログラムに含まれる教示点の位置を修正する(St15)。
ロボット制御装置2Bは、修正後の溶接動作の教示プログラムをロボット制御装置2Aに送信する(St16)。ロボット制御装置2Bは、修正後の検査動作の教示プログラムを用いて、溶接ロボットMC1による本溶接工程が完了したワークWkのビード外観検査を実行する(St17)。
なお、ロボット制御装置2Bは、ステップSt11の処理を任意のタイミング(定期、あるいは不定期)で実行された後、省略されてもよい。例えば、ロボット制御装置2Bは、ステップSt11の処理を、ワークWkを所定数生産するごとにステップSt11の処理を実行してもよいし、溶接ロボットMC1および検査ロボットMC2の電源がONになったタイミングで実行してもよいし、数日,数週間ごとに実行してもよい。
以上により、実施の形態1におけるロボット制御装置2Bは、ワークWkへの本溶接工程を実行するロボット(溶接ロボットMC1)と、生産されたワークWkのビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、ワークWkの位置ずれ量を算出できる。また、ロボット制御装置2Bは、算出されたワークWkの位置ずれ量に基づいて、溶接ロボットMC1に対するワークWkの相対位置と、検査ロボットMC2に対するワークWkの相対位置とを算出することで、溶接動作の教示プログラムに含まれる教示点の位置修正と、検査動作の教示プログラムに含まれる教示点の位置修正を実行できる。
これにより、ロボット制御装置2Bは、異なる複数のロボット(つまり、溶接ロボットMC1および検査ロボットMC2のそれぞれ)で使用される教示プログラムの教示点をより効率的に修正できる。
(実施の形態1の変形例)
上述した実施の形態1に係る溶接システム100は、1台のロボット制御装置2Bにより、2台のロボット(溶接ロボットMC1および検査ロボットMC2)のそれぞれで使用される教示プログラムの修正を実行する例を示した。実施の形態1の変形例に係る溶接システム100は、1台のロボット制御装置2Bにより、2台のロボット(溶接ロボットMC1および検査ロボットMC2)のそれぞれの位置ずれ量を算出し、それぞれのロボットを制御するロボット制御装置2A,2Bで教示プログラムの修正を実行する例について説明する。
まず、実施の形態1の変形例に係る溶接システム100について説明する。なお、実施の形態1の変形例に係る溶接システム100の構成は、実施の形態1に係る溶接システム100と同様である。以下、実施の形態1の変形例に係る溶接システム100のうち実施の形態1の溶接システム100と異なる機能について説明する。
図10は、実施の形態1の変形例における溶接システム100のユースケース例を説明する図である。図11は、ワークWk21の位置の計測例を説明する図である。なお、図10および図11のそれぞれに示す溶接ロボットMC1および検査ロボットMC2のそれぞれの配置は、一例であってこれに限定されない。また、図10および図11は、異なる場所で溶接ロボットMC1による本溶接工程と、検査ロボットMC2によるビード外観検査工程とが実行される例を示す。
実施の形態1の変形例において、ワークWk21は、溶接ロボットMC1に本溶接され、本溶接後に搬送方向RT1に搬送される。ワークWk22は、本溶接済みのワークであって、検査ロボットMC2によるビード外観検査を受ける。
実施の形態1の変形例におけるロボット制御装置2Bのプロセッサ21Bは、検査座標系ΣW2におけるワークWk22の位置ずれ量を算出する。プロセッサ21Bは、算出されたワークWk22の位置ずれ量に基づいて、ワークWk22のビード外観検査に用いられる検査動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する。
検査プログラム作成部23Bは、修正後の検査動作の教示プログラムに基づいて、ワークWk22のビード外観検査を実行するための検査プログラムを作成する。ロボット制御部24Bは、作成された検査プログラムに基づいて、検査ロボットMC2を駆動させて、ワークWk22上の溶接ビード(溶接箇所)を読み取り、ビード外観検査を実行する。
ロボット制御装置2Bのプロセッサ21Bは、検査座標系ΣW2におけるワークWk21の位置ずれ量をロボット制御装置2Aに送信する。
ロボット制御装置2Aのプロセッサ21Aは、ロボット制御装置2Bから送信された検査座標系ΣW2におけるワークWk21の位置ずれ量を、溶接座標系ΣW1におけるワークWk21の位置ずれ量に変換する。ロボット制御装置2Aのプロセッサ21Aは、溶接座標系ΣW1におけるワークWk21の位置ずれ量に基づいて、ワークWk21に対応する溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する。
本溶接プログラム作成部23Aは、修正後の溶接動作の教示プログラムに基づいて、ワークWk21への本溶接を実行するための本溶接プログラムを作成する。ロボット制御部24Aは、作成された本溶接プログラムに基づいて、溶接ロボットMC1を駆動させる。溶接ロボットMC1は、ワークWk21に対応する溶接線の位置情報に基づいて、ワークWk21に本溶接を実行する。
なお、プロセッサ21Bは、溶接座標系ΣW1におけるワークWk21の位置ずれ量を算出する。プロセッサ21Bは、算出された溶接座標系ΣW1におけるワークWk21の位置ずれ量をロボット制御装置2Aに送信してもよい。
このような場合、ロボット制御装置2Aのプロセッサ21Aは、ロボット制御装置2Bから送信されたワークWk21の位置ずれ量に基づいて、ワークWk21に対応する溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する。本溶接プログラム作成部23Aは、修正後の溶接動作の教示プログラムに基づいて、ワークWk21への本溶接を実行するための本溶接プログラムを作成する。
次に、図12を参照して、実施の形態1の変形例における教示プログラムの修正手順について説明する。実施の形態1の変形例における2台のロボット制御装置2A,2Bによる教示プログラムの第1修正手順例を説明するシーケンス図である。なお、以降の説明では説明を分かりやすくするために、溶接ロボットMC1により本溶接されるワークWk21(図10,図11参照)を「溶接ワーク」と称し、検査ロボットMC2によりビード外観検査が実行されるワークWk22(図10,図11参照)を「検査ワーク」と称する。
ロボット制御装置2Bは、検査ロボットMC2を駆動させて、センサ4により読み取られた検査ワークの3次元形状データに基づいて、検査ワークの位置を算出する。ロボット制御装置2Bは、算出された検査ワークの位置と、検査ワークのワーク情報に含まれる検査ワークの位置との差分(位置ずれ量)を算出する(St21)。なお、ロボット制御装置2Bにより算出される位置ずれ量は、3次元的な位置ずれ量であり、対応する座標系を基準とする3次元的な距離と、姿勢角度(回転角度)とを含む。
ロボット制御装置2Bは、検査ロボットMC2を駆動させて、センサ4により読み取られた溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAPの3次元形状データに基づいて、溶接ロボットMC1の位置を算出する。ロボット制御装置2Bは、算出された溶接ロボットMC1の位置に基づいて、検査座標系ΣW2における溶接ロボットMC1の位置ずれ量を算出する。
また、ロボット制御装置2Bは、検査ロボットMC2を駆動させて、センサ4により読み取られた溶接ワークの3次元形状に基づいて、検査座標系ΣW2における溶接ワークの位置を算出する。ロボット制御装置2Bは、算出された溶接ワークの位置と、溶接ワークのワーク情報に含まれる溶接ワークの位置との差分(位置ずれ量)を算出する(St22)。
ロボット制御装置2Bは、検査座標系ΣW2における溶接ロボットMC1の位置ずれ量と、溶接ワークの位置ずれ量とを対応付けて、ロボット制御装置2Aに送信する(St23)。
ロボット制御装置2Aは、ロボット制御装置2Bから送信された検査座標系ΣW2における溶接ロボットMC1の位置ずれ量と、溶接ワークの位置ずれ量とに基づいて、溶接座標系ΣW1における溶接ワークの位置ずれ量に変換し、算出する(St24A)。
ロボット制御装置2Aは、溶接座標系ΣW1における溶接ワークの位置ずれ量に基づいて、溶接ワークに対応する溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する(St25A)。ロボット制御装置2Aは、修正された溶接動作の教示プログラムに基づく本溶接プログラムを作成する。ロボット制御装置2Aは、作成された本溶接プログラムを用いて、溶接ロボットMC1を駆動させて、溶接ワークへの本溶接を実行する(St26A)。
ロボット制御装置2Bは、算出された検査ワークの位置ずれ量に基づいて、検査ワークに対応する検査動作の教示プログラムに含まれる教示点のそれぞれの位置修正を実行する(St25B)。ロボット制御装置2Bは、修正後の検査動作の教示プログラムを用いて、検査プログラムを作成する。ロボット制御装置2Bは、作成された検査プログラムを用いて、検査ロボットMC2を駆動させて、検査ワークへのビード外観検査を実行する(St26B)。
次に、図13を参照して、実施の形態1の変形例における教示プログラムの他の修正手順について説明する。実施の形態1の変形例における2台のロボット制御装置2A,2Bによる教示プログラムの第2修正手順例を説明するシーケンス図である。なお、以降の説明では、説明を分かり易くするために図12に示す処理と同様の処理については、同様の符号を付与して説明を省略する。
ロボット制御装置2Bは、検査座標系ΣW2における溶接ワークの位置ずれ量を、溶接座標系ΣW1における溶接ワークの位置ずれ量に変換し、算出する(St24B)。ロボット制御装置2Bは、算出された溶接座標系ΣW1における溶接ワークの位置ずれ量をロボット制御装置2Aに送信する(St27)。
ロボット制御装置2Aは、ロボット制御装置2Bから送信された溶接座標系ΣW1における溶接ワークの位置ずれ量に基づいて、溶接ワークに対応する溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する(St28)。
以上により、実施の形態1の変形例に係る溶接システム100は、溶接ワーク(ワークWk21)への本溶接工程を実行するロボット(溶接ロボットMC1)と、生産された検査ワーク(ワークWk22)のビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、それぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量を算出できる。ロボット制御装置2A,2Bのそれぞれは、算出されたそれぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量に基づいて、対応する教示プログラムに含まれる教示点のそれぞれの位置を修正できる。
これにより、ロボット制御装置2A,2Bのそれぞれは、異なる複数のロボット(つまり、溶接ロボットMC1および検査ロボットMC2のそれぞれ)で使用される教示プログラムの教示点をより効率的に修正できる。
以上により、実施の形態1に係るロボット制御装置2Bは、溶接により生産されるワークWkを検査する検査ロボットMC2から、ワークWkと、溶接を行う溶接ロボットMC1との位置に関する情報(例えば、3次元形状データ、画像データ等)とを取得する通信部20B(取得部の一例)と、ワークWkと溶接ロボットMC1の位置に関する情報に基づいて、ワークWkの位置と、溶接ロボットMC1の位置とをそれぞれ算出するプロセッサ21B(算出部の一例)と、検査ロボットMC2に対するワークの位置を、溶接ロボットMC1に対するワークWkの位置に変換するプロセッサ21B(変換部の一例)と、溶接ロボットMC1に対するワークWkの位置に基づいて、溶接に用いられる溶接動作の教示プログラム(溶接教示プログラムの一例)の教示点の位置を修正し、検査ロボットMC2に対するワークWkの位置に基づいて、生産されたワークWkの検査に用いられる検査動作の教示プログラム(検査教示プログラムの一例)の教示点の位置を修正するプロセッサ21B(修正部の一例)と、修正後の溶接動作の教示プログラムを出力する通信部20B(出力部の一例)と、を備える。
これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkへの本溶接工程を実行するロボット(溶接ロボットMC1)と、生産されたワークWkのビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、溶接ロボットMC1に対するワークWkの相対位置と、検査ロボットMC2に対するワークWkの相対位置とを算出することで、溶接動作の教示プログラムに含まれる教示点の位置修正と、検査動作の教示プログラムに含まれる教示点の位置修正を実行できる。よって、ロボット制御装置2Bは、異なる複数のロボット(つまり、溶接ロボットMC1および検査ロボットMC2のそれぞれ)で使用される教示プログラムの教示点をより効率的に修正できる。
また、実施の形態1に係るロボット制御装置2Bのプロセッサ21Bは、溶接ロボットMC1の位置ずれ量と、ワークWkの位置ずれ量とを算出して、溶接ロボットMC1の位置と、ワークWkの位置とを修正し、溶接ロボットMC1の位置ずれ量と、ワークWkの位置ずれ量とに基づく溶接動作の教示プログラムの修正と、ワークWkの位置ずれ量に基づく検査動作の教示プログラムの修正とを実行する。これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkへの本溶接工程を実行するロボット(溶接ロボットMC1)と、生産されたワークWkのビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、それぞれのロボットに対するワークWkの位置ずれ量(つまり、教示点の修正値)を算出できる。
また、実施の形態1に係るロボット制御装置2Bのプロセッサ21Bは、修正後の溶接ロボットMC1の位置から検査ロボットMC2の位置に向かうベクトルVC11(第1ベクトルの一例)と、検査ロボットMC2の位置から修正後のワークWkの位置に向かうベクトルVC12(第2ベクトルの一例)の和に基づいて、検査ロボットMC2に対するワークWkの位置を、溶接ロボットMC1に対するワークWkの位置に変換する。これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkへの本溶接工程を実行するロボット(溶接ロボットMC1)と、生産されたワークWkのビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、それぞれのロボットに対するワークWkの位置を算出できる。
また、実施の形態1に係るロボット制御装置2Bの通信部20Bは、ワークWkの形状に関する第1入力データと、溶接ロボットMC1の形状に関する第2入力データとを取得する。プロセッサ21Bは、第1入力データに基づいて、ワークWkの位置を算出し、第2入力データに基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkの形状に関する第1入力データに基づくワークWkの姿勢角度および位置と、溶接ロボットMC1の形状に関する第2入力データに基づく溶接ロボットMC1の姿勢角度および位置とを算出できる。したがって、ロボット制御装置2Bは、溶接動作および検査動作の教示プログラムのそれぞれに含まれる教示点のそれぞれの位置をより高精度に修正できる。
また、実施の形態1に係るロボット制御装置2Bの第2入力データは、溶接ロボットMC1が備える溶接トーチ400の形状に関するデータである。プロセッサ21Bは、溶接トーチ400の形状に基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkへの本溶接を実行する溶接ロボットMC1の溶接トーチ400に対するワークWkの位置を算出できる。
また、実施の形態1に係るロボット制御装置2Bのプロセッサ21Bは、溶接トーチ400の形状に基づいて、少なくとも1箇所の溶接トーチ400の姿勢角度および位置を算出し、算出された姿勢角度および位置に基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、ワークWkへの本溶接を実行する溶接ロボットMC1の溶接トーチ400に対するワークWkの位置を算出できる。
また、実施の形態1に係るロボット制御装置2Bのプロセッサ21Bは、溶接トーチ400の形状に基づいて、少なくとも1箇所の溶接トーチ400の姿勢角度と、少なくとも1箇所の溶接トーチ400の位置とを算出し、算出された姿勢角度および位置に基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、溶接トーチ400の姿勢角度および位置のそれぞれをより高精度に算出し、ワークWkへの本溶接を実行する溶接ロボットMC1の溶接トーチ400に対するワークWkの位置を算出できる。
また、実施の形態1に係るロボット制御装置2Bの第2入力データは、溶接ロボットMC1に取り付けられたアライメントパターンAPの3次元形状データである。アライメントパターンAPは、異なる大きさを有する2つの孔HO1,HO2が形成される。プロセッサ21Bは、2つの孔HO1,HO2の位置に基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、アライメントパターンAPに基づいて、溶接ロボットMC1の位置をより高精度に算出できる。
また、実施の形態1に係るロボット制御装置2Bのプロセッサ21Bは、2つの孔HO1,HO2のそれぞれの中心位置CT1,CT2に基づいて、溶接ロボットMC1の位置を算出する。これにより、実施の形態1に係るロボット制御装置2Bは、アライメントパターンAPに基づいて、溶接ロボットMC1の角度姿勢および位置をより高精度に算出できる。
以上により、実施の形態1の変形例に係るロボット制御装置2A,2Bを含む溶接システム100(オフライン教示システムの一例)は、溶接によりワークWk21(第1のワークの一例)を生産する溶接ロボットMC1を制御するロボット制御装置2A(溶接ロボット制御装置の一例)と、生産されたワークWk22(第2のワークの一例)を検査する検査ロボットMC2を制御するロボット制御装置2B(検査ロボット制御装置の一例)と、を備える。ロボット制御装置2Bは、検査ロボットMC2に対するワークWk21と、ワークWk22と、溶接ロボットMC1との位置に関する情報とを取得し、ワークWk21およびワークWk22の位置ずれ量をそれぞれ算出し、ワークWk22の位置ずれ量に基づいて、ワークWk22の検査に用いられる検査動作の教示プログラムの教示点の位置を修正するとともに、ワークWk21の位置ずれ量の情報をロボット制御装置2Aに送信する。ロボット制御装置2Aは、ロボット制御装置2Bから送信されたワークWk21の位置ずれ量の情報に基づいて、溶接ロボットMC1に対するワークWk21の位置ずれ量に変換し、変換されたワークWk21の位置ずれ量に基づいて、溶接に用いられる溶接動作の教示プログラムの教示点の位置を修正する。
これにより、実施の形態1の変形例に係る溶接システム100は、溶接ワーク(ワークWk21)への本溶接工程を実行するロボット(溶接ロボットMC1)と、生産された検査ワーク(ワークWk22)のビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、それぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量を算出できる。ロボット制御装置2A,2Bのそれぞれは、算出されたそれぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量に基づいて、対応する教示プログラムに含まれる教示点のそれぞれの位置を修正できる。よって、ロボット制御装置2A,2Bのそれぞれは、異なる複数のロボット(つまり、溶接ロボットMC1および検査ロボットMC2のそれぞれ)で使用される教示プログラムの教示点をより効率的に修正できる。
以上により、実施の形態1の変形例に係るロボット制御装置2A,2Bを含む溶接システム100は、溶接によりワークWk21(第1のワークの一例)を生産する溶接ロボットMC1を制御するロボット制御装置2A(溶接ロボット制御装置の一例)と、生産されたワークWk22(第2のワークの一例)を検査する検査ロボットMC2を制御するロボット制御装置2B(検査ロボット制御装置の一例)と、を備える。ロボット制御装置2Bは、検査ロボットMC2に対するワークWk21と、ワークWk22と、溶接ロボットMC1との位置に関する情報とを取得し、ワークWk21およびワークWk22の位置ずれ量をそれぞれ算出し、ワークWk22の位置ずれ量に基づいて、ワークWk22の検査に用いられる検査動作の教示プログラムの教示点の位置を修正し、ワークWk21の位置ずれ量の情報に基づいて、溶接ロボットMC1に対するワークWk21の位置ずれ量に変換してロボット制御装置2Aに送信する。ロボット制御装置2Aは、ロボット制御装置2Bから送信されたワークWk21の位置ずれ量に基づいて、溶接に用いられる溶接動作の教示プログラム(溶接教示プログラム)の教示点の位置を修正する。
これにより、実施の形態1の変形例に係る溶接システム100は、溶接ワーク(ワークWk21)への本溶接工程を実行するロボット(溶接ロボットMC1)と、生産された検査ワーク(ワークWk22)のビード外観検査を実行するロボット(検査ロボットMC2)とがそれぞれ異なる場合であっても、それぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量を算出できる。ロボット制御装置2A,2Bのそれぞれは、算出されたそれぞれのワーク(つまり、溶接ワークおよび検査ワーク)の位置ずれ量に基づいて、対応する教示プログラムに含まれる教示点のそれぞれの位置を修正できる。よって、ロボット制御装置2A,2Bのそれぞれは、異なる複数のロボット(つまり、溶接ロボットMC1および検査ロボットMC2のそれぞれ)で使用される教示プログラムの教示点をより効率的に修正できる。
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
なお、本出願は、2022年3月23日出願の日本特許出願(特願2022-047240)に基づくものであり、その内容は本出願の中に参照として援用される。