(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-30
(45)【発行日】2024-06-07
(54)【発明の名称】ロボット制御装置およびオフライン教示システム
(51)【国際特許分類】
B23K 9/127 20060101AFI20240531BHJP
G05B 19/42 20060101ALI20240531BHJP
B25J 9/22 20060101ALI20240531BHJP
【FI】
B23K9/127 509E
B23K9/127 509B
G05B19/42 J
B25J9/22 A
G05B19/42 W
(21)【出願番号】P 2023539063
(86)(22)【出願日】2023-02-27
(86)【国際出願番号】 JP2023006911
(87)【国際公開番号】W WO2023199620
(87)【国際公開日】2023-10-19
【審査請求日】2023-06-23
(31)【優先権主張番号】P 2022066608
(32)【優先日】2022-04-13
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100138771
【氏名又は名称】吉田 将明
(72)【発明者】
【氏名】平山 正弥
(72)【発明者】
【氏名】岡崎 嘉幸
(72)【発明者】
【氏名】大熊 克明
【審査官】松田 長親
(56)【参考文献】
【文献】特開昭63-058505(JP,A)
【文献】特開平08-328632(JP,A)
【文献】特開2004-255547(JP,A)
【文献】特開2020-069568(JP,A)
【文献】特開平9-44227(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B23K 9/00-9/32
G05B 19/42
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
溶接により生産するワークの位置に関する情報を取得する取得部と、
前記生産を行うロボットを基準とする前記ワークの設定位置を記憶する記憶部と、
前記ワークの位置に関する情報に基づく前記ワークの実測位置と、前記ワークの設定位置とに基づいて、前記ワークの位置ずれ量を算出する算出部と、
前記ワークの位置ずれ量に基づいて、前記ロボットが前記生産で用いる複数の教示プログラムの教示点の位置を修正する修正部と、
修正後の前記複数の教示プログラムを用いて、前記ロボットを制御する制御部と、を備え
るロボット制御装置
であって、
前記制御部は、
修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外であると判定した場合、修正後の前記複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻す、
ロボット制御装置。
【請求項2】
前記修正部は、
修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外であるか否かを判定し、
前記制御部は、
修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外でないと判定した場合、修正後の前記複数の教示プログラムを用いて、前記ロボットを制御する、
請求項1に記載のロボット制御装置。
【請求項3】
前記記憶部は、前記生産を行うロボットを基準とする前記ワークの前記設定位置を2つ以上記憶し、
前記制御部は、
修正後の前記教示プログラムの教示点の位置
の少なくとも1つが前記ロボットの稼働範囲外であると判定した場合、修正後の前記複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻す、
請求項2に記載のロボット制御装置。
【請求項4】
前記ワークの位置に関する情報は、前記ワークの3次元形状データであって、
前記算出部は、
前記3次元形状データに基づいて、前記ワークの実測位置を算出する、
請求項1に記載のロボット制御装置。
【請求項5】
前記算出部は、
前記3次元形状データを用いて前記ワークの特徴点を検出し、
検出された前記特徴点に基づいて、前記ワークの実測位置を算出する、
請求項4に記載のロボット制御装置。
【請求項6】
前記特徴点は、
前記ワークに形成された所定の孔である、
請求項5に記載のロボット制御装置。
【請求項7】
前記特徴点は、
前記ワークの所定の面または前記面の角部である、
請求項5に記載のロボット制御装置。
【請求項8】
前記ワークの位置に関する情報は、前記ワークに取り付けられたパターンの3次元形状データであって、
前記パターンは、異なる大きさを有する2つの孔が形成され、
前記算出部は、前記2つの孔の位置に基づいて、前記ワークの実測位置を算出する、
請求項1に記載のロボット制御装置。
【請求項9】
溶接によりワークを生産するロボットを制御するロボット制御装置と、
前記ロボット制御装置との間で通信可能に接続され、仮想空間上に前記ワークと前記ロボットとを構築するオフライン教示装置と、を備えるオフライン教示システムであって、
前記オフライン教示装置は、
前記ワークの位置に関する情報を取得し、
前記ワークの位置に関する情報に基づく前記ワークの実測位置と、前記ロボットを基準とする前記ワークの設定位置とに基づいて、前記ワークの位置ずれ量を算出し、
前記ワークの位置ずれ量に基づいて、前記ロボットが前記生産で用いる複数の教示プログラムの教示点の位置を修正し、
修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲内であると判定した場合、修正後の前記複数の教示プログラムを前記ロボット制御装置に送信し、
修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外であると判定した場合、修正後の前記複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻し、
前記ロボット制御装置は、
修正後の前記複数の教示プログラムを用いて、前記ロボットを制御する、
オフライン教示システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御装置およびオフライン教示システムに関する。
【背景技術】
【0002】
特許文献1には、モデル図に、ティーチングプログラムを実行したときのロボットの動作軌跡を表示し、複数の位置検出命令の一部および複数の溶接命令の一部を表示するオフラインティーチング装置が開示されている。オフラインティーチング装置は、ティーチングプログラムとモデル図とを表示する表示部と、ティーチングプログラムを構成する命令と、モデル図のモデルデータとを記憶する記憶部と、表示部および記憶部を制御する制御部と、を備える。ティーチングプログラムは、複数の位置検出命令で構成される位置検出プログラム、および、複数の溶接命令で構成される溶接プログラムを含む。ここで、ティーチングプログラムを構成する命令、位置検出プログラムおよび溶接プログラムのそれぞれは、作業者により作成される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、同一のロボットで使用され、それぞれ異なる作業を実行するための教示プログラムの教示点をより効率的に修正するロボット制御装置およびオフライン教示システムを提供する。
【課題を解決するための手段】
【0005】
本開示は、溶接により生産するワークの位置に関する情報を取得する取得部と、前記生産を行うロボットを基準とする前記ワークの設定位置を記憶する記憶部と、前記ワークの位置に関する情報に基づく前記ワークの実測位置と、前記ワークの設定位置とに基づいて、前記ワークの位置ずれ量を算出する算出部と、前記ワークの位置ずれ量に基づいて、前記ロボットが前記生産で用いる複数の教示プログラムの教示点の位置を修正する修正部と、修正後の前記複数の教示プログラムを用いて、前記ロボットを制御する制御部と、を備えるロボット制御装置であって、前記制御部は、修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外であると判定した場合、修正後の前記複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻す、ロボット制御装置を提供する。
【0006】
また、本開示は、溶接によりワークを生産するロボットを制御するロボット制御装置と、前記ロボット制御装置との間で通信可能に接続され、仮想空間上に前記ワークと前記ロボットとを構築するオフライン教示装置と、を備えるオフライン教示システムであって、前記オフライン教示装置は、前記ワークの位置に関する情報を取得し、前記ワークの位置に関する情報に基づく前記ワークの実測位置と、前記ロボットを基準とする前記ワークの設定位置とに基づいて、前記ワークの位置ずれ量を算出し、前記ワークの位置ずれ量に基づいて、前記ロボットが前記生産で用いる複数の教示プログラムの教示点の位置を修正し、修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲内であると判定した場合、修正後の前記複数の教示プログラムを前記ロボット制御装置に送信し、修正後の前記教示プログラムの教示点の位置が前記ロボットの稼働範囲外であると判定した場合、修正後の前記複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻し、前記ロボット制御装置は、修正後の前記複数の教示プログラムを用いて、前記ロボットを制御する、オフライン教示システムを提供する。
【発明の効果】
【0007】
本開示によれば、同一のロボットで使用され、それぞれ異なる作業を実行するための教示プログラムの教示点をより効率的に修正できる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1および実施の形態1の変形例に係る溶接システムのシステム構成例を示す概略図
【
図2】実施の形態1および実施の形態1の変形例に係る上位装置、ロボット制御装置、検査制御装置、およびオフライン教示装置の内部構成例を示す図
【
図3】ロボット座標系とワークとの関係を説明する図
【
図5】アライメントパターンの読み取り例を説明する図
【
図7】溶接ロボットに対するワークの位置ずれ量の算出例を説明する図
【
図8】実施の形態1におけるロボット制御装置による教示プログラムの補正手順例を説明するフローチャート
【
図9】実施の形態1の変形例におけるロボット制御装置およびオフライン教示装置による教示プログラムの補正手順例を説明するシーケンス図
【発明を実施するための形態】
【0009】
(本開示に至る経緯)
特許文献1のように、従来、オフライン教示装置を用いて、溶接ロボット等のロボットに、作業の作業手順、動作軌跡等を含む教示プログラム(例えば、位置検出プログラム、溶接プログラム等)を教示するオフラインティーチング装置がある。ロボットは、作業指示に基づいて、作業指示に対応する各種プログラムを読み出すことで作業を実行する。
【0010】
動作軌跡は、ロボットが通過,到達すべき位置を示す教示点の位置を含む。一般的に、教示点は、ロボットに対する相対位置(つまり、ロボットの座標系を基準とする位置)が記録される。よって、ロボットに対する作業対象物(以降、「ワーク」と表記)の位置に位置ずれがあり、教示点の位置修正がされない場合には、ロボットは、ワークの加工点に到達できない等の課題があった。したがって、教示点の位置修正は、位置ずれの形態に合わせて行われることが望ましい。しかし、教示点の数は、ワークによって数百~数千個になることがあるため、修正に要する工数が極めて大きいという課題があった。
【0011】
1台のロボットでワークを生産する場合、ロボットは、それぞれ異なる複数の教示プログラムを用いて、各作業工程を実行する。このような場合、ロボットは、ロボットにより使用されるすべての教示プログラムの教示点の位置修正が終わるまでワークの生産を行うことができず、生産性が低下する可能性があった。
【0012】
また、従来、ロボットは、ワークの位置ずれ量を算出するために接触型のセンサ、あるいはカメラ等を用いてワークの位置を計測することがあった。しかし、接触型のセンサは、ワークの表面が平らな水平面である場合、ワークに接触したか否かの判定が難しく、ワークの位置が計測できないことがあった。カメラを用いてワークを撮像する場合、ロボットは、ワークの位置の計測および教示プログラムの修正を行うたびにカメラを取り付け,取り外しによってワークの生産を停止する必要があり、教示点の位置修正を実行できる条件が限られるという課題があった。
【0013】
以下、適宜図面を参照しながら、本開示に係るロボット制御装置およびオフライン教示システムを具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるものであり、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0014】
以下、本溶接される対象物(例えば金属)を「元ワーク」、本溶接により生産(製造)された対象物を「ワーク」とそれぞれ定義する。「ワーク」は、1回の本溶接により生産されたワークに限らず、2回以上の本溶接により生産された複合的なワークであってもよい。また、元ワークと他の元ワークとが溶接ロボットにより接合等されてワークを生産する工程を「本溶接」と定義する。
【0015】
(実施の形態1)
図1は、実施の形態1および実施の形態1の変形例に係る溶接システム100,100Aのシステム構成例を示す概略図である。まず、実施の形態1に係る溶接システム100の構成について説明する。なお、実施の形態1の変形例に係る溶接システム100Aは、オフライン教示装置5、モニタMN3、および入力インターフェースUI3を含まない構成であるため、ここでは説明を省略する。
【0016】
実施の形態1に係る溶接システム100は、外部ストレージST、入力インターフェースUI1およびモニタMN1のそれぞれと接続された上位装置1と、ロボット制御装置2と、検査制御装置3と、センサ4と、溶接ロボットMC1と、モニタMN2とを含む構成である。なお、ティーチペンダントTP1は必須の構成でなく、省略されてもよい。モニタMN2は、必須の構成でなく、省略されてもよい。
【0017】
上位装置1は、ロボット制御装置2を介して溶接ロボットMC1により実行される本溶接の開始および完了を統括して制御する。例えば、上位装置1は、ユーザ(例えば、溶接作業者あるいはシステム管理者。以下同様。)により予め入力あるいは設定された溶接関連情報を外部ストレージSTから読み出し、溶接関連情報を用いて、溶接関連情報の内容を含めた本溶接の実行指令を生成して対応するロボット制御装置2に送信する。上位装置1は、溶接ロボットMC1による本溶接が完了した場合に、溶接ロボットMC1による本溶接が完了した旨の本溶接完了報告をロボット制御装置2から受信し、対応する本溶接が完了した旨のステータスに更新して外部ストレージSTに記録する。
【0018】
なお、上述した本溶接の実行指令は上位装置1により生成されることに限定されず、例えば本溶接が行われる工場等内の設備の操作盤(例えばPLC:Programmable Logic Controller)、あるいはロボット制御装置2の操作盤(例えば、ティーチペンダントTP1)により生成されてもよい。なお、ティーチペンダントTP1は、ロボット制御装置2に接続された溶接ロボットMC1を操作するための装置である。
【0019】
また、上位装置1は、ロボット制御装置2、検査制御装置3およびセンサ4を用いたビード外観検査の開始および完了を統括して制御する。例えば、上位装置1は、ロボット制御装置2から本溶接完了報告を受信すると、溶接ロボットMC1により生産されたワークのビード外観検査の実行指令を生成してロボット制御装置2および検査制御装置3のそれぞれに送信する。上位装置1は、ビード外観検査が完了した場合に、ビード外観検査が完了した旨の外観検査報告を検査制御装置3から受信し、対応するビード外観検査が完了した旨のステータスに更新して外部ストレージSTに記録する。
【0020】
ここで、溶接関連情報とは、溶接ロボットMC1により実行される本溶接の内容を示す情報であり、本溶接の工程ごとに予め作成されて外部ストレージSTに登録されている。溶接関連情報は、例えば本溶接に使用される元ワークの数と、本溶接に使用される元ワークのID、元ワークのロット情報、名前および溶接箇所(例えば、溶接線の情報、溶接線の位置情報等)を含むワーク情報と、本溶接が実行される実行予定日と、元ワークの生産台数と、本溶接時の各種の溶接条件と、を含む。なお、溶接関連情報は、上述した項目のデータに限定されず、作成済みの溶接動作およびスキャン動作の教示プログラムのそれぞれ(後述参照)、これらの教示プログラムの作成に用いられた溶接動作設定情報、スキャン動作設定情報等の情報をさらに含んでもよい。
【0021】
ここでいう溶接動作設定情報は、本溶接の各種溶接条件、溶接開始前および溶接終了後のそれぞれの溶接トーチ400の退避位置等の溶接動作に必要な各種パラメータ群であればよい。
【0022】
また、ここでいうスキャン動作設定情報は、センサ4とワークWkとの間の距離、センサ4の情報(例えば、スキャン有効範囲AR(
図6参照)等)、測定レンジ、アプローチ情報、スキャンの助走(空走)区間、スキャン区間、リトラクト情報(例えば、リトラクト開始位置およびリトラクト終了位置の情報、リトラクトを指示する指示情報等)、回避情報等の溶接ビード、あるいは他の外観検査対象のスキャン動作、ワークWkの位置計測のための外観スキャンに必要な各種パラメータ群であればよい。
【0023】
また、溶接条件は、例えば元ワークの材質および厚み、溶接ワイヤ301の材質およびワイヤ径、シールドガス種、シールドガスの流量、溶接電流の設定平均値、溶接電圧の設定平均値、溶接ワイヤ301の送給速度および送給量、溶接回数、溶接時間等である。また、これらの他に、例えば本溶接の種別(例えばTIG溶接、MAG溶接、パルス溶接)を示す情報、マニピュレータ200の移動速度および移動時間が含まれても構わない。
【0024】
ロボット制御装置2は、上位装置1から送信された本溶接の実行指令に基づいて、その実行指令で指定される元ワークを用いた本溶接の実行を溶接ロボットMC1に開始させる。なお、上述した溶接関連情報は、上位装置1が外部ストレージSTを参照して管理することに限定されず、例えばロボット制御装置2において管理されてもよい。この場合、ロボット制御装置2は本溶接が完了した状態を把握できるので、溶接関連情報のうち溶接工程が実行される予定の実行予定日の代わりに実際の実行日が管理されてよい。なお、本明細書において、本溶接の種類は問わないが、説明を分かり易くするために、複数の元ワークを接合して1つのワークを生産する工程を例示して説明する。
【0025】
上位装置1は、モニタMN1、入力インターフェースUI1および外部ストレージSTのそれぞれとの間でデータの入出力が可能となるように接続され、さらに、ロボット制御装置2および検査制御装置3との間でデータの通信が可能となるように接続される。上位装置1は、モニタMN1および入力インターフェースUI1を一体に含む端末装置P1でもよく、さらに、外部ストレージSTを一体に含んでもよい。この場合、端末装置P1は、本溶接の実行に先立ってユーザにより使用されるPC(Personal Computer)である。なお、端末装置P1は、上述したPCに限らず、例えばスマートフォン、タブレット端末等の通信機能を有するコンピュータ装置でよい。
【0026】
モニタMN1は、例えばLCD(Liquid Crystal Display)または有機EL(Electroluminescence)等の表示用デバイスを用いて構成されてよい。モニタMN1は、例えば上位装置1から出力された、本溶接が完了した旨の通知、あるいはビード外観検査が完了した旨の通知を示す画面を表示してよい。また、モニタMN1の代わりに、あるいはモニタMN1とともにスピーカ(図示略)が上位装置1に接続されてもよく、上位装置1は、本溶接が完了した旨の内容、あるいはビード外観検査が完了した旨の内容の音声を、スピーカを介して出力してもよい。
【0027】
入力インターフェースUI1は、ユーザの入力操作を検出して上位装置1に出力するユーザインターフェースであり、例えば、マウス、キーボードまたはタッチパネル等を用いて構成されてよい。入力インターフェースUI1は、例えばユーザが溶接関連情報を作成する時の入力操作を受け付けたり、ロボット制御装置2への本溶接の実行指令を送信する時の入力操作を受け付けたりする。
【0028】
外部ストレージSTは、例えばハードディスクドライブ(Hard Disk Drive)またはソリッドステートドライブ(Solid State Drive)を用いて構成される。外部ストレージSTは、例えば本溶接ごとに作成された溶接関連情報のデータ、本溶接により生産されたワークWkのステータス(生産状況)、ワークWkのワーク情報(上述参照)を記憶する。なお、外部ストレージSTは、ロボット制御装置2によって作成された溶接動作の教示プログラムと、スキャン動作の教示プログラムとを溶接線ごとに記憶していてもよい。溶接動作およびスキャン動作の教示プログラムのそれぞれについては、後述する。
【0029】
ロボット制御装置2は、上位装置1およびとの間でそれぞれデータの通信が可能に接続されるとともに、溶接ロボットMC1との間でデータの通信が可能に接続される。ロボット制御装置2は、上位装置1から送信された本溶接の実行指令を受信すると、この実行指令に対応する溶接動作の教示プログラムに基づいて、本溶接プログラムを作成し、溶接ロボットMC1を制御して本溶接を実行させる。
【0030】
ロボット制御装置2は、本溶接の完了を検出すると本溶接が完了した旨の本溶接完了報告を生成して上位装置1に通知する。これにより、上位装置1は、ロボット制御装置2による本溶接の完了を適正に検出できる。なお、ロボット制御装置2による本溶接の完了の検出方法は、例えばワイヤ送給装置300が備えるセンサ(図示略)からの本溶接の完了を示す信号に基づいて判別する方法でよく、あるいは公知の方法でもよく、本溶接の完了の検出方法の内容は限定されなくてよい。
【0031】
ロボット制御装置2は、上位装置1、および検査制御装置3との間でそれぞれデータの通信が可能に接続されるとともに、溶接ロボットMC1との間でデータの通信が可能に接続される。ロボット制御装置2は、上位装置1から送信された本溶接の実行指令を受信すると、ワークWkとの間の位置ずれ量を計測する。ロボット制御装置2は、計測されたワークWkの位置ずれ量に基づいて、スキャン動作の教示プログラムに含まれる教示点のそれぞれの位置を修正したり、溶接動作の教示プログラムに含まれる教示点のそれぞれの位置を修正したりする。ロボット制御装置2は、修正後の溶接動作の教示プログラムを用いて本溶接プログラムを作成し、作成された本溶接プログラムに基づいて、溶接ロボットMC1を制御して本溶接を実行させる。
【0032】
ロボット制御装置2は、上位装置1から送信されたビード外観検査の実行指令を受信すると、この実行指令に対応するスキャン動作の教示プログラムに基づいて、スキャンプログラムを作成し、溶接ロボットMC1(
図2参照)を制御して溶接ビードの外観検査を実行させる。
【0033】
また、ロボット制御装置2は、上位装置1から送信されたワークWkのスキャン実行指令を受信すると、センサ4が取り付けられた溶接ロボットMC1(
図2参照)を制御して、ワークWkの外観形状を取得する外観スキャンを実行する。
【0034】
ロボット制御装置2は、この実行指令に対応するスキャン動作の教示プログラムに基づいて、センサ4が取り付けられた溶接ロボットMC1(
図2参照)を制御して、ワークWkに生成された溶接ビードの外観検査を実行する。なお、ビード外観検査が完了した旨の外観検査報告は検査制御装置3から上位装置1に送信されるが、ロボット制御装置2自ら、あるいは検査制御装置3からの指示を受けたロボット制御装置2から上位装置1に送信されてもよい。これにより、上位装置1は、ビード外観検査の完了を適切に検出できる。
【0035】
ロボットの一例としての溶接ロボットMC1は、ロボット制御装置2との間でデータの通信が可能に接続される。溶接ロボットMC1は、対応するロボット制御装置2の制御の下で、上位装置1から指令された本溶接を実行する。また、溶接ロボットMC1は、スキャン動作の教示プログラムに基づいてセンサ4を移動することで、上位装置1から指令されたビード外観検査(外観スキャン)を実行する。
【0036】
検査制御装置3は、上位装置1、ロボット制御装置2、およびセンサ4のそれぞれとの間でデータの通信が可能に接続される。検査制御装置3は、上位装置1から送信されたビード外観検査の実行指令を受信すると、対応するワークWkのスキャン動作の教示プログラムに従い、溶接ロボットMC1により生産されたワークWkの溶接箇所(つまり、溶接ビード)のビード外観検査(例えば、ワークに形成された溶接ビードが予め既定された溶接基準を満たすか否かの検査)を、溶接ロボットMC1が備えるセンサ4とともに実行する。検査制御装置3は、スキャン動作の結果、センサ4により取得された溶接ビードの形状に関する3次元形状データ(例えば、溶接ビードの3次元形状を特定可能な点群データ)を用いて、ワークごとに予め既定された良品ワークのマスタデータとの比較に基づいてビード外観検査を行う。
【0037】
検査制御装置3は、ビード外観検査を行い、このビード外観検査の検査判定結果とビード外観検査が完了した旨の通知とを含む外観検査報告を生成して上位装置1に送信するとともに、モニタMN2に出力する。なお、検査制御装置3は、ワークのビード外観検査において欠陥を検知したと判定した場合に、その欠陥をリペア溶接するための欠陥区間の情報を含む外観検査結果を含む外観検査報告を生成して、上位装置1に送信する。また、検査制御装置3は、ワークのビード外観検査によって欠陥を検知したと判定した場合に、欠陥区間の情報を含む外観検査結果を用いて、欠陥箇所の補修等の修正を行う旨のリペア溶接プログラムを作成する。検査制御装置3は、このリペア溶接プログラムと外観検査結果とを対応付けて上位装置1に送信する。
【0038】
また、検査制御装置3は、上位装置1を介して送信されたワークWkをスキャンする外観スキャンの実行指令に基づいて、ワークWkの外観をスキャンする。検査制御装置3は、外観スキャンの結果、センサ4により取得されたワークWkの形状に関する3次元形状データ(例えば、ワークWkの3次元形状を特定可能な点群データ)をロボット制御装置2に送信する。
【0039】
センサ4は、検査制御装置3との間でデータの通信が可能に接続される。センサ4は、溶接ロボットMC1に取り付けられ、ロボット制御装置2の制御に基づくマニピュレータ200の駆動に応じて、ステージSTG(
図3参照)上に載置されたワークWkの3次元スキャンを実行する。センサ4は、ロボット制御装置2の制御に基づくマニピュレータ200の駆動に応じて、ステージSTGに置かれたワークWkの位置等を特定可能なワークWkの3次元形状データ(例えば、点群データ、メッシュデータ等)を取得して検査制御装置3に送信する。
【0040】
モニタMN2は、例えばLCDまたは有機EL等の表示用デバイスを用いて構成されてよい。モニタMN2は、例えば検査制御装置3から出力された、ビード外観検査が完了した旨の通知、あるいはその通知とビード外観検査の結果とを示す画面を表示する。また、モニタMN2の代わりに、あるいはモニタMN2とともにスピーカ(図示略)が検査制御装置3に接続されてもよく、検査制御装置3は、ビード外観検査が完了した旨の通知、あるいはその通知およびビード外観検査結果の内容を示す音声を、スピーカを介して出力してもよい。
【0041】
ここで、溶接線の位置情報は、本溶接工程においてワークWkに溶接される溶接線の位置を示す情報である。
【0042】
また、溶接動作の教示プログラムは、溶接線の位置に基づいて作成され、溶接ロボットMC1に本溶接を実行させるためのプログラムである。溶接動作の教示プログラムは、溶接トーチ400を用いてワークWkを本溶接するための各種動作(例えば、アプローチ、リトラクト、回避、溶接等)を実行するための教示点の位置、距離、角度(姿勢)の情報と、溶接条件等の情報と、を含んで作成される。なお、溶接動作の教示プログラムは、溶接線ごとに生成されてもよいし、任意の数の溶接線のそれぞれの本溶接を実行可能に生成されてもよい。
【0043】
また、ここでいうスキャン動作の教示プログラムは、溶接線に基づいて作成され、溶接ロボットMC1に本溶接により作成された少なくとも1つの溶接ビードのビード外観検査を実行させるためのプログラムである。スキャン動作の教示プログラムは、センサ4を用いて、作成された溶接ビードのビード外観検査を実行するための各種動作(例えば、アプローチ、リトラクト、回避、スキャン等)を実行するための教示点の位置、距離、角度(姿勢)の情報を含んで作成される。
【0044】
ティーチペンダントTP1は、ロボット制御装置2との間でデータ送受信可能に接続される。ティーチペンダントTP1は、実際の溶接ロボットMC1とワークWkとを用いたユーザ操作によって定義された溶接線の位置情報をロボット制御装置2に送信する。ロボット制御装置2は、ティーチペンダントTP1から送信された溶接線の位置情報をメモリ22(
図2参照)に記憶するとともに、ロボット制御装置2に送信する。
【0045】
図2は、実施の形態1および実施の形態1の変形例に係る上位装置1、ロボット制御装置2、検査制御装置3、およびオフライン教示装置5の内部構成例を示す図である。説明を分かり易くするために、
図2ではモニタMN1,MN2および入力インターフェースUI1,UI3等の図示を省略する。ここでは、実施の形態1に係る溶接システム100の各構成の内部構成例について説明する。また、実施の形態1の変形例に係る溶接システム100Aは、オフライン教示装置5、モニタMN3、および入力インターフェースUI3を含まない構成であるため、ここでは説明を省略する。
【0046】
溶接ロボットMC1は、ロボット制御装置2の制御の下で、溶接トーチ400を用いた溶接動作の教示プログラムに基づく本溶接工程を実行する。溶接ロボットMC1は、本溶接の工程において、例えばアーク溶接を行う。しかし、溶接ロボットMC1は、アーク溶接以外の他の溶接(例えば、レーザ溶接、ガス溶接)等を行ってもよい。この場合、図示は省略するが、溶接トーチ400に代わって、レーザヘッドを、光ファイバを介してレーザ発振器に接続してよい。溶接ロボットMC1は、マニピュレータ200と、ワイヤ送給装置300と、溶接ワイヤ301と、溶接トーチ400とを少なくとも含む構成である。
【0047】
マニピュレータ200は、多関節のアームを備え、ロボット制御装置2のロボット制御部25からの制御信号に基づいて、それぞれのアームを可動させる。これにより、マニピュレータ200は、ワークWkに対する溶接トーチ400との位置関係(例えば、溶接ロボットMC1に対する溶接トーチ400の角度)をアームの駆動によって変更できる。
【0048】
ワイヤ送給装置300は、ロボット制御装置2からの制御信号に基づいて、溶接ワイヤ301の送給速度を制御する。なお、ワイヤ送給装置300は、溶接ワイヤ301の残量を検出可能なセンサ(図示略)を備えてよい。ロボット制御装置2は、このセンサの出力に基づいて、本溶接の工程が完了したことを検出できる。
【0049】
溶接ワイヤ301は、溶接トーチ400に保持され、溶接トーチ400に電源装置500から電力が供給されることで、溶接ワイヤ301の先端とワークWkとの間にアークが発生し、アーク溶接が行われる。なお、溶接トーチ400にシールドガスを供給するための構成等は、説明の便宜上、これらの図示および説明を省略する。
【0050】
上位装置1は、ユーザにより予め入力あるいは設定された溶接関連情報を用いて、本溶接、またはビード外観検査の各種の工程の実行指令を生成してロボット制御装置2に送信する。上位装置1は、通信部10と、プロセッサ11と、メモリ12とを少なくとも含む構成である。
【0051】
通信部10は、ロボット制御装置2、検査制御装置3、および外部ストレージSTのそれぞれとの間でデータの通信が可能に接続される。通信部10は、プロセッサ11により生成される本溶接、またはビード外観検査の各種の工程の実行指令をロボット制御装置2あるいは検査制御装置3に送信する。通信部10は、ロボット制御装置2から送られる本溶接完了報告、検査制御装置3から送られる外観検査報告を受信してプロセッサ11に出力する。なお、本溶接の実行指令には、例えば溶接ロボットMC1が備えるマニピュレータ200、ワイヤ送給装置300および電源装置500のそれぞれを制御するための制御信号が含まれてもよい。
【0052】
プロセッサ11は、例えばCPU(Central Processing Unit)またはFPGA(Field Programmable Gate Array)を用いて構成され、メモリ12と協働して、各種の処理および制御を行う。具体的には、プロセッサ11は、メモリ12に保持されたプログラムを参照し、そのプログラムを実行することにより、セル制御部13を機能的に実現する。
【0053】
メモリ12は、例えばプロセッサ11の処理を実行する際に用いられるワークメモリとしてのRAM(Random Access Memory)と、プロセッサ11の処理を規定したプログラムを格納するROM(Read Only Memory)とを有する。RAMには、プロセッサ11により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ11の処理を規定するプログラムが書き込まれている。また、メモリ12は、外部ストレージSTから読み出された溶接関連情報のデータ、ワークのステータス等をそれぞれ記憶する。
【0054】
セル制御部13は、外部ストレージSTに記憶されている溶接関連情報に基づいて、本溶接、ワークWkのビード外観検査、ワークWkの外観スキャン、あるいはリペア溶接を実行するための実行指令を作成する。また、セル制御部13は、外部ストレージSTに記憶されている溶接関連情報と、ロボット制御装置2から送信された溶接動作およびスキャン動作の教示プログラムのそれぞれとに基づいて、本溶接時の本溶接プログラム、ワークWkの位置ずれ量の計測時あるいはワークWkのビード外観検査時の溶接ロボットMC1の駆動に関するスキャンプログラム等を作成する。さらに、セル制御部13は、作成されたこれらのプログラムの実行指令を作成する。なお、ワークWkの外観スキャン(位置計測)、あるいはワークWkの溶接ビードの外観検査を実行するためのスキャンプログラムは、予めワークWkごとに作成されて外部ストレージSTに保存されていてもよく、この場合には、セル制御部13は、外部ストレージSTから各種プログラムを読み出して取得する。セル制御部13は、溶接ロボットMC1で実行される本溶接の各種の工程ごとに異なる実行指令を生成してよい。セル制御部13によって生成された本溶接外観検査、外観スキャンの実行指令は、通信部10を介して、対応するロボット制御装置2あるいは検査制御装置3のそれぞれに送られる。
【0055】
ロボット制御装置2は、上位装置1から送信された本溶接、ビード外観検査、あるいは外観スキャンの実行指令に基づいて、対応するプログラムを参照する。ロボット制御装置2は、参照されたプログラムに基づいて、溶接ロボットMC1(例えば、マニピュレータ200、ワイヤ送給装置300、電源装置500)を制御する。ロボット制御装置2は、通信部20と、プロセッサ21と、メモリ22とを少なくとも含む構成である。
【0056】
取得部の一例としての通信部20は、上位装置1、溶接ロボットMC1、検査制御装置3およびティーチペンダントTP1との間でそれぞれデータの通信が可能に接続される。なお、
図2では図示を簡略化しているが、ロボット制御部25とマニピュレータ200との間、ロボット制御部25とワイヤ送給装置300との間、ならびに、電源制御部26と電源装置500との間で、それぞれ通信部20を介してデータの送受信が行われる。通信部20は、上位装置1から送信された本溶接、あるいはビード外観検査の実行指令を受信する。通信部20は、ティーチペンダントTP1から送信された溶接線の位置情報と、溶接動作の教示プログラムと、スキャン動作の教示プログラムとを受信する。通信部20は、本溶接により生産されたワークWkのワーク情報を上位装置1に送信する。
【0057】
ここで、ワーク情報には、ワークのIDだけでなく、本溶接に使用される元ワークのID、名前、溶接箇所、本溶接の実行時の溶接条件が少なくとも含まれる。
【0058】
算出部および修正部の一例としてのプロセッサ21は、例えばCPUまたはFPGAを用いて構成され、メモリ22と協働して、各種の処理および制御を行う。具体的には、プロセッサ21は、メモリ22に保持されたプログラムを参照し、そのプログラムを実行することにより、本溶接プログラム作成部23、スキャンプログラム作成部24、ロボット制御部25および電源制御部26を機能的に実現する。また、プロセッサ21は、溶接動作の教示プログラムを用いて、本溶接プログラム作成部23により生成された本溶接プログラムに基づいて、ロボット制御部25により制御される溶接ロボットMC1(具体的には、マニピュレータ200、ワイヤ送給装置300および電源装置500のそれぞれ)を制御するためのパラメータの演算等を行う。
【0059】
また、プロセッサ21は、センサ4により取得されたワークWkの形状と、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP(
図4参照)の形状とに基づいて、ワークWkの位置ずれ量(距離および角度)と、溶接ロボットMC1の位置ずれ量(距離および角度)とをそれぞれ算出する。プロセッサ21は、算出されたワークWkの位置ずれ量に基づいて、スキャン動作の教示プログラムに含まれる複数の教示点のそれぞれの位置を修正する。
【0060】
また、プロセッサ21は、算出されたワークWkの位置ずれ量に基づいて、溶接動作およびスキャン動作の教示プログラムに含まれる教示点のそれぞれの位置を修正する。プロセッサ21は、修正後の溶接動作の教示プログラムを本溶接プログラム作成部23に出力する。プロセッサ21は、修正後のスキャン動作の教示プログラムをスキャンプログラム作成部24に出力する。
【0061】
記憶部の一例としてのメモリ22は、例えばプロセッサ21の処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ21の処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ21により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ21の処理を規定するプログラムが書き込まれている。また、メモリ22は、上位装置1から送信された本溶接、ビード外観検査、あるいは外観スキャンの実行指令のデータ、本溶接により生産されるワークWkのワーク情報と溶接線の位置情報とを対応付けた溶接関連情報、ティーチペンダントTP1から送信された溶接線の位置情報等をそれぞれ記憶する。なお、ワークWkのワーク情報を含む溶接関連情報は、溶接動作およびスキャン動作の教示プログラムと、溶接動作およびスキャン動作のそれぞれの教示プログラムの作成に用いられた溶接線の位置情報と、溶接動作設定情報と、を含んでいてよい。
【0062】
本溶接プログラム作成部23は、通信部20を介して上位装置1から送信された本溶接の実行指令に基づいて、実行指令に含まれる複数の元ワークのそれぞれのワーク情報(例えばワークのID、名前、構成部品(元ワーク,部品等)の情報、溶接線の位置情報等)と、これらのワーク情報に関連付けられた溶接動作の教示プログラムとを用いて、溶接ロボットMC1により実行される本溶接の本溶接プログラムを作成する。また、本溶接プログラム作成部23は、プロセッサ21から教示点の位置が修正された後の溶接動作の教示プログラムを取得した場合には、取得された溶接動作の教示プログラムに基づいて、本溶接の本溶接プログラムを作成する。
【0063】
本溶接プログラムには、本溶接の実行中に電源装置500、マニピュレータ200、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、本溶接プログラムは、プロセッサ21内に記憶されてもよいし、メモリ22内のRAMに記憶されてもよい。
【0064】
スキャンプログラム作成部24は、通信部20を介して上位装置1から送信された外観スキャンあるいは外観検査の実行指令に基づいて、実行指令に含まれる複数の元ワークのそれぞれのワーク情報(例えばワークのID、名前、構成部品(元ワーク,部品等)の情報、溶接線の位置情報等)と、これらのワーク情報に関連付けられたスキャン動作の教示プログラムとを用いて、溶接ロボットMC1により実行されるワークWkの外観スキャンあるいはビード外観検査のスキャンプログラムを作成する。また、スキャンプログラム作成部24は、プロセッサ21から教示点の位置が修正されたスキャン動作の教示プログラムを取得した場合には、取得された溶接動作の教示プログラムに基づいて、スキャンプログラムを作成する。
【0065】
制御部の一例としてのロボット制御部25は、本溶接プログラム作成部23により生成された本溶接プログラムに基づいて、溶接ロボットMC1(具体的には、マニピュレータ200、ワイヤ送給装置300および電源装置500のそれぞれ)を駆動させるための制御信号を生成する。ロボット制御部25は、この生成された制御信号を溶接ロボットMC1に送信する。
【0066】
また、ロボット制御部25は、スキャンプログラム作成部24により生成されたスキャンプログラムに基づいて、溶接ロボットMC1(具体的には、センサ4、マニピュレータ200)を駆動させるための制御信号を生成する。ロボット制御部25は、この生成された制御信号を溶接ロボットMC1に送信する。
【0067】
また、ロボット制御部25は、ティーチペンダントTP1から送信されたスキャン動作の教示プログラム(つまり、スキャンプログラム)に基づいて、溶接ロボットMC1のマニピュレータ200およびセンサ4のそれぞれを駆動させる。これにより、溶接ロボットMC1に取り付けられたセンサ4は、ワークWk(つまり、ワークWkを構成する複数の元ワーク)の外観、ワークWkに取り付けられたアライメントパターンAP(
図4参照)、溶接ビード等をスキャンすることで、ワークWk、アライメントパターンAP、あるいは溶接ビードの形状を取得できる。
【0068】
電源制御部26は、本溶接プログラム作成部23により生成された本溶接プログラムの演算結果に基づいて、電源装置500を駆動させる。
【0069】
なお、
図1において、センサ4によりスキャンされた3次元形状データは、検査制御装置3に送信される構成を示すが、
図3に示すようにセンサ4からロボット制御装置2に直接的に送信可能な構成であってもよい。このような場合、センサ4は、ロボット制御装置2の通信部20との間でデータ送受信可能に接続され、ワークWkの外観形状に関する3次元形状データ、あるいはアライメントパターンAPの形状に関する3次元形状データをロボット制御装置2に送信する。
【0070】
検査制御装置3は、上位装置1から送信されたビード外観検査の実行指令に基づいて、溶接ロボットMC1による本溶接により生産されたワークWk、あるいは1回以上のリペア溶接によりリペアされたワークWkのビード外観検査および外観スキャンのそれぞれの処理を制御する。ビード外観検査は、例えば、ワークWkに形成された溶接ビードが既定の溶接基準(例えば、ユーザのそれぞれにより要求される溶接の品質基準)を満たすか否かの検査であり、上述した検査判定により構成される。検査制御装置3は、センサ4により取得された溶接ビードの形状に関する3次元形状データ(例えば、溶接ビードの3次元形状を特定可能な点群データ)に基づいて、ワークWkに形成された溶接ビードの外観形状が所定の溶接基準を満たすか否かを判定(検査)する。また、検査制御装置3は、センサ4により取得された溶接ビードの形状に関する3次元形状データ、あるいはワークWkの形状に関する3次元形状データをロボット制御装置2に送信する。検査制御装置3は、通信部30と、プロセッサ31と、メモリ32と、検査結果記憶部33と、を少なくとも含む構成である。
【0071】
通信部30は、上位装置1、ロボット制御装置2、およびセンサ4との間でそれぞれデータの通信が可能に接続される。なお、
図2では図示を簡略化しているが、形状検出制御部35とセンサ4との間は、それぞれ通信部30を介してデータの送受信が行われる。通信部30は、上位装置1から送信されたビード外観検査の実行指令を受信する。通信部30は、センサ4を用いたビード外観検査の検査判定結果を上位装置1に送信したり、センサ4により取得された溶接ビードの3次元形状のデータをロボット制御装置2に送信したりする。
【0072】
プロセッサ31は、例えばCPUまたはFPGAを用いて構成され、メモリ32と協働して、各種の処理および制御を行う。具体的には、プロセッサ31は、メモリ32に保持されたプログラムを参照し、そのプログラムを実行することにより、判定閾値記憶部34、形状検出制御部35、データ処理部36、検査結果判定部37、およびリペア溶接プログラム作成部38等の機能を実現する。
【0073】
メモリ32は、例えばプロセッサ31の処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ31の処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ31により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ31の処理を規定するプログラムが書き込まれている。
【0074】
検査結果記憶部33は、例えばハードディスクあるいはソリッドステートドライブを用いて構成される。検査結果記憶部33は、プロセッサ31により生成あるいは取得されるデータの一例として、ワークWk(例えばワークあるいはリペアワーク)における溶接箇所のビード外観検査の結果を示すデータを記憶する。このビード外観検査の結果を示すデータは、例えば検査結果判定部37により生成される。
【0075】
判定閾値記憶部34は、例えばプロセッサ31内に設けられたキャッシュメモリにより構成され、ユーザ操作によって予め設定され、溶接箇所と、検査結果判定部37によるビード外観検査の処理とに対応するそれぞれの閾値(例えば、溶接不良の種別ごとに設定されたそれぞれの閾値)の情報を記憶する。それぞれの閾値は、例えば溶接ビードの位置ずれの許容範囲、溶接ビードの長さ、高さ、幅のそれぞれの閾値、穴あき、ピット、アンダーカット、スパッタのそれぞれの閾値である。判定閾値記憶部34は、リペア溶接後のビード外観検査時の各閾値として、顧客等から要求される最低限の溶接基準(品質)を満たす許容範囲(例えば、最小許容値、最大許容値など)を記憶してよい。なお、これらの閾値は、検査結果判定部37よって作成された検査結果がビード外観検査に合格であるか否かを判定する処理に用いられる。さらに、判定閾値記憶部34は、溶接箇所ごとにビード外観検査の回数上限値を記憶してもよい。これにより、検査制御装置3は、リペア溶接によって不良箇所を修正する際に所定の回数上限値を上回る場合に、溶接ロボットMC1による自動リペア溶接による不良箇所の修正が困難あるいは不可能と判定して、溶接システム100の稼動率の低下を抑制できる。
【0076】
形状検出制御部35は、上位装置1から送信されたワークWk(例えばワーク)の溶接箇所のビード外観検査の実行指令に基づいて、センサ4により取得され、送信された溶接ビードの形状に関する3次元形状データ(例えば溶接ビードの3次元形状を特定可能な点群データ)を取得する。また、形状検出制御部35は、上位装置1から送信されたワークWk(例えばワーク)の外観スキャンの実行指令に基づいて、センサ4により取得され、送信されたワークWkの形状に関する3次元形状データ(例えばワークWkの3次元形状を特定可能な点群データ)を取得する。具体的に、形状検出制御部35は、上述したロボット制御装置2によるマニピュレータ200の駆動に応じてセンサ4が溶接ビードあるいはワークWkを撮像可能(言い換えると、溶接箇所あるいはワークWkの3次元形状を検出可能)な位置に到達すると、例えばレーザ光線をセンサ4から照射させて溶接ビードあるいはワークWkの形状に関する3次元形状データを取得させる。形状検出制御部35は、センサ4により取得された3次元形状データ(上述参照)を受信すると、この3次元形状データをデータ処理部36に渡す。
【0077】
データ処理部36は、形状検出制御部35からの溶接ビードの形状に関する3次元形状データ(上述参照)を取得すると、検査結果判定部37で実行される各種検査判定に適したデータ形式に変換する。データ形式の変換は、いわゆる前処理として、3次元形状データ(つまり点群データ)に含まれる不要な点群データ(例えばノイズ)が除去される修正処理が実行されてもよいし、前処理が省略されてもよい。データ処理部36は、例えば入力された形状データに対して統計処理を実行することで、溶接ビードの3次元形状を示す画像データを生成する。なお、データ処理部36は、検査判定用のデータとして、溶接ビードの位置および形状を強調するために溶接ビードの周縁部分を強調したエッジ強調修正を行ってもよい。なお、データ処理部36は、溶接不良の箇所ごとにビード外観検査の実行回数をカウントし、ビード外観検査の回数がメモリ32に予め記憶された回数を超えても溶接検査結果が良好にならない場合、自動リペア溶接による溶接不良の箇所の修正が困難あるいは不可能と判定してよい。この場合、検査結果判定部37は、溶接不良の箇所の位置および溶接不良の種別(例えば、穴あき、ピット、アンダーカット、スパッタ、突起)を含むアラート画面を生成し、生成されたアラート画面を、通信部30を介して上位装置1に送信する。上位装置1に送信されたアラート画面は、モニタMN1に表示される。なお、このアラート画面は、モニタMN2に表示されてもよい。
【0078】
データ処理部36は、判定閾値記憶部34に記憶されたビード外観検査用の閾値を用いて、センサ4により取得された溶接ビードの形状に関する3次元形状データとワークごとに予め既定された良品ワークのマスタデータとの比較に基づくビード外観検査を行う。データ処理部36は、検査判定結果としての欠陥判定結果(つまり、リペア溶接が必要な欠陥の有無を示す情報)と、欠陥箇所ごとの欠陥区間の情報とを含む外観検査報告を作成して検査結果記憶部33に記憶するとともに、通信部30を介して上位装置1あるいはロボット制御装置2に送信する。また、データ処理部36は、検査対象であるワークWkにリペア溶接が必要な欠陥箇所がないと判定した場合、ビード外観検査に合格である旨の検査判定結果を含む外観検査報告を作成して検査結果記憶部33に記憶するとともに、通信部30を介して上位装置1に送信する。
【0079】
また、データ処理部36は、形状検出制御部35からワークWkの形状に関する3次元形状データ(上述参照)を取得すると、検査結果判定部37により実行される演算処理に適したデータ形式に変換する。データ形式の変換には、いわゆる前処理として、3次元形状データ(つまり点群データ)に含まれる不要な点群データ(例えばノイズ)が除去される修正処理が含まれてもよいし、ワークWkの3Dモデルを生成する処理であってもよい。また、データ処理部36は、ワークWkの位置および形状を強調、ワークWkの周縁部分を強調したエッジ強調修正を行ってもよい。データ処理部36は、変換後のワークWkの形状に関する3次元形状データを、通信部30を介して、ロボット制御装置2に送信する。
【0080】
検査結果判定部37は、センサ4により取得された溶接ビードの形状に関する3次元形状データとワークごとに予め既定された良品ワークのマスタデータとの比較に基づくビード外観検査を行い、溶接ビードの形状信頼性(例えば直線状あるいは曲線状の溶接線に沿っているか否か)、ビード欠け、およびビード位置ずれを検査する。検査結果判定部37は、検査判定用にデータ処理部36によってデータ変換されたデータ(例えば点群データに基づいて生成された画像データ)と良品ワークのマスタデータとの比較(いわゆる画像処理)を行う。このため、検査結果判定部37は、溶接ビードの形状信頼性、ビード欠け、およびビード位置ずれを高精度に検査することができる。検査結果判定部37は、溶接ビードの形状信頼性、ビード欠けおよびビード位置ずれの検査結果を示す検査スコアを算出し、この検査スコアの算出値を検査結果として作成する。さらに、検査結果判定部37は、作成された検査結果とメモリ32に記憶された検査結果用の閾値とを比較する。検査結果判定部37は、比較した比較結果の情報(つまり、取得された第1検査結果がビード外観検査に合格あるいは不合格であるか)を含む外観検査結果を上位装置1およびモニタMN2に出力する。
【0081】
また、検査結果判定部37は、複数種類の人工知能によるニューラルネットワークをそれぞれ形成し、センサ4により取得された溶接ビードの形状に関する3次元形状データ、あるいはその3次元形状データがデータ処理部36によって前処理された後の3次元形状データを対象としたAIに基づく溶接不良の有無を判別するビード外観検査)を行い、溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の有無を検査する。溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起はあくまで例示的に列挙されたものであり、検査結果判定部37により検査される不良種別はこれらに限定されない。検査結果判定部37は、該当する種別の溶接不良を検知したと判定した場合には、その溶接不良が検知された溶接ビードの位置を特定する。検査結果判定部37は、事前に溶接不良の種別ごとあるいは溶接不良の種別のグループごとに学習処理によって得られた学習モデル(AI)を用いて、それぞれの溶接不良の有無を判別する。これにより、検査結果判定部37は、例えば溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の有無を高精度に検査することができる。検査結果判定部37は、溶接ビードの穴あき、ピット、アンダーカット、スパッタ、突起の検査結果(言い換えると、発生確率を示す検査スコア)を算出し、この検査スコアの算出値を含む外観検査結果を作成して、上位装置1およびモニタMN2に出力する。
【0082】
なお、検査結果判定部37は、上述した各外観検査結果に含まれる検査結果(検査スコア)に基づいて、溶接ロボットMC1によるリペア溶接が可能であるか否か(言い換えると、溶接ロボットMC1によるリペア溶接がよいか、あるいは人手によるリペア溶接がよいか)を判定し、その判定結果を上述した外観検査報告に含めて出力してよい。
【0083】
リペア溶接プログラム作成部38は、データ処理部36によるワークWkの外観検査報告を用いて、溶接ロボットMC1により実行されるべきワークWkのリペア溶接プログラムを作成する。リペア溶接プログラムには、リペア溶接の実行中に電源装置500、マニピュレータ200、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、生成されたリペア溶接プログラムは、プロセッサ31内に記憶されてもよいし、メモリ32内のRAMに記憶されてもよいし、外観検査報告と対応付けられて通信部30を介して上位装置1あるいはロボット制御装置2に送られてもよい。
【0084】
リペア溶接プログラム作成部38は、検査結果判定部37によるワークWk(例えばワークあるいはリペアワーク)の外観検査報告とワーク情報(例えばワークあるいはリペアワークの溶接不良の検出点の位置を示す座標等の情報)とを用いて、溶接ロボットMC1により実行されるべきワークWk(例えばワークあるいはリペアワーク)のリペア溶接プログラムを作成する。リペア溶接プログラムには、リペア溶接の実行中に電源装置500、マニピュレータ200、ワイヤ送給装置300、溶接トーチ400等を制御するための、溶接電流、溶接電圧、オフセット量、溶接速度、溶接トーチ400の姿勢角度等の各種のパラメータが含まれてよい。なお、生成されたリペア溶接プログラムは、プロセッサ31内に記憶されてもよいし、メモリ32内のRAMに記憶されてもよい。
【0085】
センサ4は、例えば3次元形状センサであり、溶接ロボットMC1の先端に取り付けられ、アライメントパターンAP、ワークWkあるいはワークWk上の溶接箇所の形状(溶接ビードの形状)を特定可能な複数の点群データを取得する。センサ4は、取得された点群データに基づいて、溶接箇所の3次元形状を特定可能な点群データを生成してロボット制御装置2あるいは検査制御装置3に送信する。
【0086】
なお、センサ4は、溶接ロボットMC1の先端に取り付けられておらず、溶接ロボットMC1とは別個に配置されている場合には、あるいは検査制御装置3から送信された溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所の位置の付近を走査可能に構成されたレーザ光源(図示略)と、溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所の位置の周辺を含む撮像領域を撮像可能に配置され、照射されたレーザ光のうち反射されたレーザ光の反射軌跡(つまり、溶接箇所の形状線)を撮像するカメラ(図示略)と、により構成されてよい。この場合、センサ4は、カメラにより撮像された溶接ロボットMC1の溶接トーチ400あるいはアライメントパターンAP、ワークWk、あるいは溶接箇所(つまり、溶接ビード)の形状データ(言い換えると、画像データ)をあるいは検査制御装置3に送信する。
【0087】
なお、上述したカメラは、少なくともレンズ(図示略)とイメージセンサ(図示略)とを有して構成される。イメージセンサは、例えばCCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semi-conductor)等の固体撮像素子であり、撮像面に結像した光学像を電気信号に変換する。
【0088】
図3を参照して、溶接ロボットMC1の座標系(溶接座標系ΣW1)と、ワークWkとの位置関係について説明する。
図3は、溶接座標系ΣW1とワークWkとの関係を説明する図である。
【0089】
溶接ロボットMC1は、溶接座標系ΣW1が設定される。溶接動作およびスキャン動作の教示プログラムに含まれる教示点の位置は、溶接座標系ΣW1に基づいて定義される。溶接座標系ΣW1の情報は、ロボット制御装置2のメモリ22に記憶される。
【0090】
図4および
図5のそれぞれを参照して、アライメントパターンAPを用いたワークWkの位置算出例について説明する。
図4は、アライメントパターンAPの一例を説明する図である。
図5は、アライメントパターンAPの読み取り例を説明する図である。
【0091】
なお、
図4に示すアライメントパターンAPの形状は、一例であってこれに限定されない。また、
図5に示すアライメントパターンAPは、一例としてワークWkの表面に取り付けられている例を示すが、これに限定されず、溶接ロボットMC1のセンサ4によりスキャン(読み取り)可能な位置に取り付けられていればよい。
【0092】
アライメントパターンAPは、溶接ロボットMC1に対するワークWkの位置(つまり、距離、向き(姿勢)等)を計測するためのプレートであって、ワークWk(つまり、ワークWkを構成する複数の元ワークのうちいずれか1つの元ワーク)上の所定位置に取り付けられる。アライメントパターンAPは、異なる大きさを有する2つの孔HO1,HO2のそれぞれが形成される。
【0093】
ロボット制御装置2は、センサ4により読み取られたアライメントパターンAPの3次元形状データから2つの孔HO1,HO2のそれぞれを検出する。ロボット制御装置2は、検出された2つの孔HO1,HO2のそれぞれの中心位置CT1,CT2を算出し、これら2つの中心位置CT1,CT2を結び、一方の孔(
図4に示す例では孔HO1)の中心位置を始点、他方の孔(
図4に示す例では孔HO2)の中心位置を終点とするベクトルVCを生成する。ロボット制御装置2は、生成されたベクトルVCの向きに基づいて、アライメントパターンAPの取付角度(姿勢)を算出し、ベクトルVCの長さに基づいて、溶接ロボットMC1とワークWkとの間の距離を算出する。これにより、ロボット制御装置2は、溶接ロボットMC1に対するワークWkの相対位置を算出することができる。
【0094】
図6を参照して、ワークWkの外観形状に基づくワークWkの位置算出例について説明する。
図6は、ワークWkのスキャン例を説明する図である。
【0095】
ロボット制御装置2は、溶接ロボットMC1を駆動させて、ワークWkをセンサ4でスキャンする。なお、ロボット制御装置2は、上位装置1から送信された現在のワークWkあるいはステージSTGの位置情報を取得し、溶接ロボットMC1を駆動させることで、ワークWkをスキャン可能な位置にセンサ4を移動させてもよい。センサ4は、ワークWkの3次元形状データをロボット制御装置2に送信する。
【0096】
ロボット制御装置2は、センサ4から送信されたワークWkの3次元形状データからワークWkの位置を特定するための特徴点(例えば、ワークWkあるいは元ワークの所定の面、所定の面の角、面に形成された所定の孔等)の形状を読み取る。ロボット制御装置2は、特徴点の形状に基づいて、溶接ロボットMC1に対するワークWkの相対位置(距離)を算出する。
【0097】
なお、特徴点の数は、1つであっても複数であってもよい。ロボット制御装置2は、2つ以上の特徴点のそれぞれの位置に基づいて、溶接ロボットMC1に対するワークWkの相対位置(距離,姿勢)を算出してもよい。
【0098】
図7を参照して、溶接座標系ΣW1におけるワークWkの位置ずれ量の算出例について説明する。
図7は、ワークWkの位置ずれ量の算出例を説明する図である。
【0099】
なお、
図7では、説明を分かりやすくするために、ワークWkのワーク情報に含まれる正常時のワークWkの位置(姿勢)を正常ワークWk10として図示し、ワークWkの実際の位置(姿勢)を位置ずれワークWk11として図示する。また、正常ワークWk10の位置PS2は、ワークWkのワーク情報に含まれる正常時(つまり、位置ずれがない場合)のワークWkの位置を示す。位置ずれワークWk11の位置PS3は、センサ4によるワークWkあるいはアライメントパターンAPの読み取り結果に基づいて算出された実際のワークWkの位置を示す。
【0100】
ロボット制御装置2は、センサ4により読み取られたワークWkの特徴点あるいはアライメントパターンAPに基づいて、溶接座標系ΣW1における溶接ロボットMC1の位置PS1に対する位置ずれワークWk11の位置PS3(距離,姿勢)を算出する。ロボット制御装置2は、算出された位置ずれワークWk11の位置PS3と、正常ワークWk10の位置PS2(正常時の位置,姿勢)とに基づいて、溶接ロボットMC1に対するワークWkの位置ずれ量(距離,角度)を算出する。以下、ワークWkの位置ずれ量の算出例を具体的に説明する。
【0101】
ロボット制御装置2は、溶接ロボットMC1の位置PS1と、正常ワークWk10の位置PS2と、位置ずれワークWk11の位置PS3とに基づいて、ベクトルVC11,VC12のそれぞれを算出する。
【0102】
ここで、ベクトルVC11は、溶接座標系ΣW1における溶接ロボットMC1の位置PS1を始点、溶接ロボットMC1に対する正常ワークWk10の位置PS2を終点とするベクトルである。ベクトルVC12は、溶接座標系ΣW1における溶接ロボットMC1の位置PS1を始点、溶接ロボットMC1に対する位置ずれワークWk11の位置PS3を終点とするベクトルである。
【0103】
ロボット制御装置2は、ベクトルVC11の逆ベクトルと、ベクトルVC12との和に基づいて、ベクトルVC13を算出する。ベクトルVC13は、正常ワークWk10の位置PS2を始点、位置ずれワークWk11の位置PS3を終点とするベクトルであって、ワークWkの位置ずれ量(距離,角度)を示すベクトルである。
【0104】
ロボット制御装置2は、算出されたベクトルVC13に基づいて、溶接ロボットMC1に対するワークWkの位置ずれ量を算出し、算出されたワークWkの位置ずれ量に基づいて、このワークWkに対応する溶接動作の教示プログラムに含まれる教示点の位置修正と、スキャン動作の教示プログラムに含まれる教示点の位置修正とを実行する。
【0105】
次に、
図8を参照して、実施の形態1におけるロボット制御装置2の動作手順について説明する。
図8は、実施の形態1におけるロボット制御装置2による教示プログラムの修正手順例を説明するフローチャートである。
【0106】
ロボット制御装置2は、センサ4から送信されたワークWk(元ワーク)あるいはアライメントパターンAPの3次元形状データを取得する。ロボット制御装置2は、取得された3次元形状データに基づいて、溶接ロボットMC1の溶接座標系ΣW1を基準とする位置ずれワークWk11の位置PS3を算出して、メモリ22に記録する(St11)。
【0107】
ロボット制御装置2は、算出された位置ずれワークWk11の位置PS3(ずれ発生時のワークWkの位置)と、正常ワークWk10の位置PS2(つまり、正常時のワークWkの位置)とをメモリ22から読み出し、ワークWkの位置ずれ量(差分)を算出する(St12)。
【0108】
ロボット制御装置2は、算出されたワークWkの位置ずれ量に基づいて、溶接動作およびスキャン動作の教示プログラムに含まれる教示点の位置を修正する(St13)。
【0109】
ロボット制御装置2は、ワークWkの生産に用いられるすべての教示プログラムに含まれる教示点の位置修正が終了した場合、修正後の教示プログラムのうち少なくとも1つの教示プログラムに修正エラーがあるか否かを判定する(St14)。ここでいう修正エラーは、修正後の教示プログラムに基づくワークWkの生産、検査等の作業工程が実行不可であることを示す。例えば、ロボット制御装置2は、修正後の教示プログラムに含まれる教示点の位置が溶接ロボットMC1の稼働領域を超える場合、修正後の教示プログラムにより溶接トーチ400あるいはセンサ4がワークWk、ワークWkを載置するステージSTG,治具等と干渉する場合等に修正エラーがあると判定する。
【0110】
ロボット制御装置2は、ステップSt14の処理において、修正後の教示プログラムのうち少なくとも1つの教示プログラムに修正エラーがあると判定した場合(St14,YES)、修正後の溶接動作およびスキャン動作の教示プログラムを、修正前の溶接動作およびスキャン動作の教示プログラムに戻す(St15)。なお、ロボット制御装置2は、ステップSt15の処理の後、溶接動作およびスキャン動作の教示プログラムの修正が不可である旨の通知(例えば、画像データ,音声データ等)を生成して、上位装置1あるいは検査制御装置3に送信し、対応するモニタMN1,MN2から出力させてもよい。また、通知は、算出されたワークWkのワーク情報、位置ずれ量の情報等を含んでもよい。
【0111】
一方、ロボット制御装置2は、ステップSt14の処理において、修正後の教示プログラムで修正エラーがないと判定した場合(St14,NO)、位置ずれワークWk11の位置PS3をワークWkのワーク情報に含まれる位置(つまり、正常ワークWk10の位置PS2)として記録(つまり、上書き)する(St16)。
【0112】
ロボット制御装置2は、修正後の溶接動作の教示プログラムに基づいて、本溶接プログラムを作成し、作成された本溶接プログラムに基づいて、溶接ロボットMC1による本溶接を実行させる(St17)。また、ロボット制御装置2は、修正後のスキャン動作の教示プログラムに基づいて、スキャンプログラムを作成し、作成されたスキャンプログラムに基づいて、溶接ロボットMC1のセンサ4によるワークWkの外観検査を実行させる(St18)。
【0113】
なお、ロボット制御装置2は、1つの教示プログラムを修正するごとにステップSt14の処理を実行してもよい。このような場合、ロボット制御装置2は、ワークWkの生産に用いられる教示プログラムの数に対応する回数だけステップSt14の処理を繰り返し実行する。
【0114】
以上により、実施の形態1におけるロボット制御装置2は、1台の溶接ロボットMC1で複数の教示プログラムを用いてワークWkを生産する場合であっても、教示プログラムに含まれる教示点の位置をより効率的に修正できる。また、ロボット制御装置2は、ワークWkの位置ずれ量を1度算出することで、このワークWkの生産に用いられるすべての教示プログラムをまとめて修正できるため、ワークWkの生産効率の低下を効果的に抑制するとともに、より高品質なワークWkの生産を実現できる。
【0115】
(実施の形態1の変形例)
上述した実施の形態1に係る溶接システム100は、ロボット制御装置2によって複数の教示プログラムの修正を実行する例を示した。実施の形態1の変形例に係る溶接システム100Aは、オフライン教示装置5によって仮想空間(3次元空間)上に構築された生産設備(例えば、溶接ロボットMC1、ワークWk等)を用いて、複数の教示プログラムの修正する例について説明する。
【0116】
まず、実施の形態1の変形例に係る溶接システム100Aについて説明する。以下、
図1を参照して、実施の形態1の変形例に係る溶接システム100Aについて説明する。なお、以下の説明において、実施の形態1に係る溶接システム100と同様の構成および機能については、説明を省略する。
【0117】
実施の形態1の変形例に係る溶接システム100Aは、外部ストレージST、入力インターフェースUI1およびモニタMN1のそれぞれと接続された上位装置1と、ロボット制御装置2と、検査制御装置3と、センサ4と、オフライン教示装置5と、溶接ロボットMC1と、モニタMN2,MN3と、を含む構成である。なお、ティーチペンダントTP1は必須の構成でなく、省略されてもよい。モニタMN2,MN3は、必須の構成でなく、省略されてもよい。
【0118】
オフライン教示装置5は、ロボット制御装置2、検査制御装置3、モニタMN3、および入力インターフェースUI3との間でそれぞれデータ通信可能に接続される。オフライン教示装置5は、教示プログラムの作成対象あるいは作成済みのワークWkごとの溶接線の位置情報、溶接ロボットMC1に対するワークWkの位置情報を設定情報として記憶する。
【0119】
また、オフライン教示装置5は、仮想空間上に仮想的な生産設備(例えば、仮想溶接ロボット、仮想ワーク、仮想ステージ、仮想治具等)を構築し、入力インターフェースUI3から送信された制御指令および各種データ(例えば、溶接ビード、あるいはワークWkの形状に関する3次元形状データ、3Dモデルのデータ、溶接線の位置情報等)、あるいはロボット制御装置2または検査制御装置3から出力された各種データ(例えば、溶接ビード、あるいはワークWkの形状に関する3次元形状データ、ワークWkの3Dモデルのデータ、溶接線の位置情報等)等に基づいて、ワークWkの溶接動作の教示プログラムとスキャン動作の教示プログラムとをそれぞれ作成する。オフライン教示装置5は、作成された溶接動作の教示プログラムおよびスキャン動作の教示プログラムのそれぞれをロボット制御装置2に送信する。なお、作成されたスキャン動作の教示プログラムは、ロボット制御装置2だけでなく、検査制御装置3に送信されてもよい。また、オフライン教示装置5は、作成された溶接動作の教示プログラムおよびスキャン動作の教示プログラムのそれぞれをワークWkごとに記憶する。
【0120】
また、オフライン教示装置5は、溶接線の位置情報に基づいて、仮想空間上に、仮想的な生産設備を構築し、ワークWkに対応する仮想ワーク上に、ワークWkに対応する溶接線、センサ4によりスキャンされるスキャン領域等を重畳した教示補助画像(不図示)を生成してモニタMN3に送信し、表示させる。
【0121】
モニタMN3は、例えばLCDまたは有機EL等の表示用デバイスを用いて構成されてよい。モニタMN3は、オフライン教示装置5から送信された教示補助画面を表示する。また、モニタMN3は、オフライン教示装置5から送信された仮想的な生産設備の画像上にセンサ4の動作軌跡あるいは溶接トーチ400の動作軌跡等を重畳した教示補助画像を表示する。
【0122】
入力インターフェースUI3は、作業者の入力操作を検出して上位装置1に出力する作業者インターフェースであり、例えば、マウス、キーボードまたはタッチパネル等を用いて構成されてよい。入力インターフェースUI3は、スキャン動作および溶接動作の教示プログラムの作成に用いられるワークWkの溶接線の位置情報、溶接設定情報、スキャン設定情報、3Dモデル等の入力操作、あるいは作成済みの溶接動作およびスキャン動作の教示プログラムのそれぞれの入力操作等を受け付ける。なお、ここでモニタMN3および入力インターフェースUI3は、一体に構成された端末装置P3(例えば、PC、ノートPC、タブレット端末等)であってもよい。
【0123】
次に、
図2を参照して、実施の形態1の変形例に係る溶接システム100Aの各構成の内部構成について説明する。なお、以下の説明において、実施の形態1に係る溶接システム100と同様の構成および機能については、説明を省略する。
【0124】
オフライン教示装置5は、ロボット制御装置2、検査制御装置3、モニタMN3、および入力インターフェースUI3との間でそれぞれデータ通信可能に接続される。オフライン教示装置5は、入力インターフェースUI3から送信された溶接線の位置情報に基づいて、ワークWkのスキャン動作の教示プログラムを作成する。なお、オフライン教示装置5は、入力インターフェースUI3から送信された溶接線の位置情報と、溶接動作設定情報、スキャン動作設定情報等の各種データとに基づいて、ワークWkの教示プログラムを作成してもよい。オフライン教示装置5は、通信部50と、プロセッサ51と、メモリ52と、入出力部53と、を含んで構成される。
【0125】
通信部50は、ロボット制御装置2、検査制御装置3、入力インターフェースUI3、およびモニタMN3との間でそれぞれデータの通信が可能に接続される。通信部50は、作成された溶接動作およびスキャン動作のそれぞれの教示プログラムと、溶接動作およびスキャン動作の教示プログラムのそれぞれの作成に用いられた各種データ(例えば、溶接線の位置情報、溶接動作設定情報、スキャン動作設定情報、ワークWkのワーク情報等)とを関連付けて、ロボット制御装置2に送信する。
【0126】
プロセッサ51は、例えばCPUまたはFPGAを用いて構成され、メモリ52と協働して、各種の処理および制御を行う。具体的には、プロセッサ51は、メモリ52に保持されたプログラム,学習モデル等を参照し、そのプログラムを実行することにより、3D演算部54およびプログラム作成部55を機能的に実現する。
【0127】
メモリ52は、例えばプロセッサ51の処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ51の処理を規定したプログラムを格納するROMとを有する。RAMには、プロセッサ51により生成あるいは取得されたデータが一時的に保存される。ROMには、プロセッサ51の処理を規定するプログラムが書き込まれている。また、メモリ52は、プログラム作成部55により作成された溶接動作の教示プログラムと、スキャン動作の教示プログラムと、ワーク情報とを関連付けて記憶する。なお、メモリ52は、溶接動作の教示プログラム、およびスキャン動作の教示プログラムのそれぞれを作成するための学習モデル,学習データを記憶していてもよい。
【0128】
学習モデルは、RAMおよびROMなどによる半導体メモリと、SSD(Solid State Drive)あるいはHDD(Hard Disk Drive)等のストレージデバイスのうちいずれかを含む記憶デバイスを有する。
【0129】
学習モデルは、例えばプロセッサ51が実行する溶接動作の教示プログラム、およびスキャン動作の教示プログラムのそれぞれを生成するための学習データ、過去に作成された溶接動作の教示プログラム、およびスキャン動作の教示プログラムのそれぞれの作成時の作業者操作に基づく編集情報,設定情報等を記憶する。
【0130】
学習モデルは、溶接動作設定情報に基づいて、溶接動作あるいはスキャン動作(つまり、センサ4の動作軌跡,スキャン区間,スキャン有効領域等)を自動生成する。なお、学習モデルは、過去に作成された溶接動作の教示プログラム、およびスキャン動作の教示プログラムのそれぞれの作成時の作業者操作に基づく編集情報,設定情報等に基づいて、溶接動作の教示プログラム、およびスキャン動作の教示プログラムのそれぞれを生成するための教師データ(学習データ)を生成してもよい。
【0131】
なお、教師データを生成するための学習は、1つ以上の統計的分類技術を用いて行っても良い。統計的分類技術としては、例えば、線形分類器(Linear Classifiers)、サポートベクターマシン(Support Vector Machines)、二次分類器(Quadratic Classifiers)、カーネル密度推測(Kernel Estimation)、決定木(Decision Trees)、人工ニューラルネットワーク(Artificial Neural Networks)、ベイジアン技術および/またはネットワーク(Bayesian Techniques and/or Networks)、隠れマルコフモデル(Hidden Markov Models)、バイナリ分類子(Binary Classifiers)、マルチクラス分類器(Multi-Class Classifiers)、クラスタリング(Clustering Technique)、ランダムフォレスト(Random Forest Technique)、ロジスティック回帰(Logistic Regression Technique)、線形回帰(Linear Regression Technique)、勾配ブースティング(Gradient Boosting Technique)等が挙げられる。但し、使用される統計的分類技術はこれらに限定されない。
【0132】
入出力部53は、入力インターフェースUI3から送信された実行指令、ワークWkの3Dモデル、溶接動作設定情報およびスキャン動作設定情報のそれぞれと、ロボット制御装置2、検査制御装置3、あるいは入力インターフェースUI3から送信された溶接線の位置情報とを取得して、プロセッサ51に出力する。また、入出力部53は、3D演算部54により生成された仮想的な生産設備(例えば、仮想溶接ロボット、仮想ワーク、仮想ステージ等)の画像、オフライン教示装置5から送信された仮想的な生産設備の画像上にセンサ4の動作軌跡あるいは溶接トーチ400の動作軌跡等を重畳した画像をモニタMN3に送信する。
【0133】
3D演算部54は、例えば、ワークWkあるいは溶接ビードの形状に関する3次元形状データ、ワークWkの3Dモデルのデータ、ワークWkのワーク情報、生産設備に関するデータ(例えば、ステージの位置情報、治具の位置情報、溶接ロボットMC1のロボット情報あるいは位置情報)等に基づいて、ワークWkの本溶接あるいは外観検査のそれぞれを実行するために必要な生産設備を仮想的に構築する。3D演算部54は、仮想的に構築された生産設備のデータを画像データに変換して入出力部53に出力し、モニタMN3に表示させる。
【0134】
また、3D演算部54は、仮想空間上に、少なくとも1つの溶接線の位置情報と、この溶接線をスキャンするセンサ4のスキャン有効領域とを、仮想的な生産設備上に重畳した教示補助画面(画像データ)を生成する。なお、3D演算部54は、プログラム作成部55により作成された溶接動作の教示プログラムを取得可能である場合には、この溶接動作の教示プログラムに含まれる1つ以上の教示点、溶接トーチ400の動作軌跡(具体的には、補助スキャン区間、溶接区間等)等を仮想的に生産設備上に重畳した教示補助画面(画像データ)を生成してもよい。
【0135】
3D演算部54は、プログラム作成部55により作成されたスキャン動作の教示プログラムに含まれる1つ以上の教示点、センサ4の動作軌跡(具体的には、アプローチ動作、リトラクト動作、回避動作等の各種動作を示す動作軌跡、補助スキャン区間、スキャン区間等)等を仮想的な生産設備上に重畳した教示補助画面(画像データ)を生成する。3D演算部54は、各種教示プログラムに含まれるデータが重畳された仮想的な生産設備のデータを画像データに変換して入出力部53に出力し、モニタMN3に表示させる。なお、3D演算部54は、溶接動作およびスキャン動作の教示プログラムのそれぞれ、あるいは、生産設備に関する各種データおよび溶接線の位置情報等に基づいて、溶接動作あるいはスキャン動作のそれぞれの教示点、溶接トーチ400あるいはセンサ4の動作軌跡(具体的には、補助スキャン区間、溶接区間、スキャン区間等)等をまとめて仮想的な生産設備上に重畳した教示補助画面(画像データ)を生成してもよい。
【0136】
プログラム作成部55は、溶接線の位置情報(例えば、ワークWkの3Dモデルのデータ、ワークWkあるいは溶接ビードの形状に関する3次元形状データ、溶接線の開始点および終了点のそれぞれの座標情報)、溶接動作設定情報、スキャン動作設定情報等に基づいて、溶接動作の教示プログラムおよびスキャン動作のそれぞれの教示プログラムを作成する。また、プログラム作成部55は、入力された各種情報と、メモリ52に記憶された学習モデル,数理計画法等のアルゴリズム等とを用いて、溶接動作の教示プログラムおよびスキャン動作のそれぞれの教示プログラムを作成してもよい。プログラム作成部55は、溶接動作作成部551と、スキャン動作作成部552とを含んで構成される。
【0137】
溶接動作作成部551は、入力された溶接線の位置情報と、溶接動作設定情報とに基づいて、ワークWkに本溶接を実行するための溶接動作の教示プログラムを作成する。
【0138】
スキャン動作作成部552は、入力された少なくとも溶接線の位置情報に基づいて、ワークWk(元ワーク)の外観スキャン、ワークWk上に生成された溶接ビードあるいは他の外観検査箇所の外観検査を実行するためのスキャン動作の教示プログラムを作成する。なお、スキャン動作作成部552は、入力された溶接動作の動作軌跡、3Dモデル、3Dモデル上に配置された1つ以上のスキャン有効領域のそれぞれ、スキャン動作設定情報等に基づいて、ワークWkの外観スキャン、ワークWk上に生成された溶接ビードあるいは他の外観検査箇所の外観検査等を実行するためのスキャン動作の教示プログラムを作成してもよい。
【0139】
ここで、溶接線の位置情報の取得例について説明する。なお、以下で説明する溶接線の位置情報の取得例は一例であって、これに限定されないことは言うまでもない。
【0140】
オフライン教示装置5は、ロボット制御装置2、あるいは端末装置P3から送信されたワークWkの溶接動作の教示プログラム、本溶接プログラム、溶接動作の動作軌跡の情報等を取得し。これらのプログラムあるいは情報に含まれるワークWkの溶接線の位置情報を取得する。
【0141】
オフライン教示装置5は、端末装置P3から送信されたワークWkの3Dモデルに基づいて、この3Dモデルに紐付けられた溶接線データから溶接線の位置情報を取得してもよい。また、オフライン教示装置5は、端末装置P3から送信されたワークWkの3Dモデルに溶接線データが紐付けられていない場合、3Dモデルの3次元形状に基づいて、溶接線の位置情報を取得してもよい。例えば、オフライン教示装置5は、ワークWkを構成する2つ以上の元ワークの面形状に基づいて、これらの元ワークの面同士が交差する交差点あるいは接触する接触点を溶接線の位置情報として取得する。
【0142】
オフライン教示装置5は、センサ4によりワークWkあるいはワークWkに形成された溶接ビードをスキャンして取得されたスキャンデータ(例えば、メッシュデータ)に基づいて、溶接線の位置情報を取得してもよい。また、オフライン教示装置5は、ティーチペンダント(不図示)を用いた教示により溶接線の位置情報を取得してもよい。
【0143】
次に、
図9を参照して、実施の形態1の変形例におけるロボット制御装置2およびオフライン教示装置5の動作手順について説明する。
図9は、実施の形態1の変形例におけるロボット制御装置2およびオフライン教示装置5による教示プログラムの補正手順例を説明するシーケンス図である。
【0144】
ロボット制御装置2は、センサ4から送信されたワークWk(元ワーク)あるいはアライメントパターンAPの3次元形状データを取得する。ロボット制御装置2は、取得された3次元形状データに基づいて、溶接ロボットMC1の溶接座標系ΣW1を基準とする位置ずれワークWk11の位置PS3を算出して、メモリ22に記録する(St21)。
【0145】
ロボット制御装置2は、算出された位置ずれワークWk11の位置PS3の情報と、位置ずれワークWk11の3次元形状データとを対応付けた読み取り結果を生成して、オフライン教示装置5に送信する(St22)。
【0146】
オフライン教示装置5は、ロボット制御装置2から送信された読み取り結果を取得する。オフライン教示装置5は、仮想空間上に構築された仮想の生産設備(仮想設備)の配置位置と、取得された位置ずれワークWk11の位置PS3(ずれ発生時のワークWkの位置)とのワークWkの位置ずれ量(差分)を算出する(St23)。具体的に、オフライン教示装置5は、正常ワークWk10の位置PS2に対応する仮想ワークの配置位置(つまり、正常時のワークWkの位置)と、位置ずれワークWk11の位置PS3とのワークWkの位置ずれ量(差分)を算出する(St23)。
【0147】
オフライン教示装置5は、算出されたワークWkの位置ずれ量に基づいて、溶接動作およびスキャン動作の教示プログラムに含まれる教示点の位置を修正する(St24)。
【0148】
オフライン教示装置5は、ワークWkの生産に用いられるすべての教示プログラムに含まれる教示点の位置修正が終了した場合、修正後の教示プログラムのうち少なくとも1つの教示プログラムに修正エラーがあるか否かを判定する(St25)。
【0149】
オフライン教示装置5は、ステップSt25の処理において、修正後の教示プログラムのうち少なくとも1つの教示プログラムに修正エラーがあると判定した場合(St25,YES)、修正後の溶接動作およびスキャン動作の教示プログラムを、修正前の溶接動作およびスキャン動作の教示プログラムに戻す(St26)。なお、オフライン教示装置5は、ステップSt26の処理の後、溶接動作およびスキャン動作の教示プログラムの修正が不可である旨の通知(例えば、画像データ,音声データ等)を生成して、モニタMN3から出力させてもよい。また、通知は、算出されたワークWkのワーク情報、位置ずれ量の情報等を含んでもよい。
【0150】
一方、オフライン教示装置5は、ステップSt25の処理において、修正後の教示プログラムで修正エラーがないと判定した場合(St25,NO)、位置ずれワークWk11の位置PS3をワークWkのワーク情報に含まれる位置(つまり、正常ワークWk10の位置PS2)として記録(つまり、上書き)する(St27)。
【0151】
オフライン教示装置5は、修正後の溶接動作およびスキャン動作の教示プログラムのそれぞれをロボット制御装置2に送信する(St28)。
【0152】
ロボット制御装置2は、オフライン教示装置5から送信された溶接動作およびスキャン動作の教示プログラムのそれぞれを取得する。ロボット制御装置2は、溶接動作に基づいて、本溶接プログラムを作成し、作成された本溶接プログラムに基づいて、溶接ロボットMC1による本溶接を実行させる(St29)。また、オフライン教示装置5は、修正後のスキャン動作の教示プログラムに基づいて、スキャンプログラムを作成し、作成されたスキャンプログラムに基づいて、溶接ロボットMC1のセンサ4によるワークWkの外観検査を実行させる(St30)。
【0153】
なお、オフライン教示装置5は、ステップSt25の処理を1つの教示プログラムの修正するごとに実行してもよい。このような場合、オフライン教示装置5は、ワークWkの生産に用いられる教示プログラムの数に対応する回数だけステップSt25の処理を繰り返し実行する。
【0154】
以上により、実施の形態1の変形例におけるオフライン教示装置5は、1台の溶接ロボットMC1で複数の教示プログラムを用いてワークWkを生産する場合であっても、教示プログラムに含まれる教示点の位置をより効率的に修正できる。また、オフライン教示装置5は、ワークWkの位置ずれ量を1度算出することで、このワークWkの生産に用いられるすべての教示プログラムをまとめて修正できるため、ワークWkの生産効率の低下を効果的に抑制するとともに、より高品質なワークWkの生産を実現できる。
【0155】
以上により、実施の形態1に係るロボット制御装置2は、溶接により生産するワークWkの位置に関する情報(例えば、3次元形状データ、アライメントパターン等)を取得する通信部20(取得部の一例)と、生産を行う溶接ロボットMC1(ロボットの一例)を基準とするワークWkの設定位置を記憶するメモリ22(記憶部の一例)と、ワークWkの位置に関する情報に基づくワークWkの実測位置(例えば、
図7に示す位置ずれワークWk11の位置PS3)と、ワークWkの設定位置(例えば、ワークWkのワーク情報に含まれるワークWkの位置であって、
図7に示す正常ワークWk10の位置PS2)とに基づいて、ワークの位置ずれ量を算出するプロセッサ21(算出部の一例)と、ワークWkの位置ずれ量に基づいて、溶接ロボットMC1が生産に用いる複数の教示プログラムの教示点の位置を修正するプロセッサ21(修正部の一例)と、修正後の複数の教示プログラムを用いて、溶接ロボットMC1を制御するロボット制御部(制御部の一例)と、を備える。
【0156】
これにより、実施の形態1に係るロボット制御装置2は、1台の溶接ロボットMC1で複数の教示プログラムを用いてワークWkを生産する場合であっても、教示プログラムに含まれる教示点の位置をより効率的に修正できる。また、ロボット制御装置2は、ワークWkの位置ずれ量を1度算出することで、このワークWkの生産に用いられるすべての教示プログラムをまとめて修正できるため、ワークWkの生産効率の低下を効果的に抑制するとともに、より高品質なワークWkの生産を実現できる。
【0157】
また、実施の形態1に係るロボット制御装置2のプロセッサ21は、修正後の教示プログラムの教示点の位置が溶接ロボットMC1の稼働範囲外であるか否かを判定する。ロボット制御部25は、修正後の教示プログラムの教示点の位置が溶接ロボットMC1の稼働範囲外でないと判定した場合、修正後の複数の教示プログラムを用いて、溶接ロボットMC1を制御する。これにより、実施の形態1に係るロボット制御装置2は、修正後の教示プログラムに修正エラーがないと判定した場合にのみ、教示点の修正が反映された複数の教示プログラムを用いてワークWkを生産できる。
【0158】
また、実施の形態1に係るロボット制御装置2のロボット制御部25は、修正後の教示プログラムの教示点の位置が溶接ロボットMC1の稼働範囲外であると判定した場合、修正後の複数の教示プログラムの教示点の位置を、修正前の複数の教示プログラムの教示点の位置に戻す。これにより、実施の形態1に係るロボット制御装置2は、修正後の教示プログラムに修正エラーがあると判定した場合には、修正済みの教示プログラムをすべて修正前の教示プログラムに戻すことで、教示点の誤修正を抑制できる。
【0159】
また、実施の形態1に係るロボット制御装置2において、ワークWkの位置に関する情報は、ワークWkの3次元形状データである。プロセッサ21は、3次元形状データに基づいて、ワークWkの実測位置を算出する。これにより、実施の形態1に係るロボット制御装置2は、溶接ロボットMC1が備えるセンサ4によりスキャンされたワークWkの3次元形状データに基づいて、実際のワークWkの位置(位置ずれワークWk11の位置PS3)を算出できる。したがって、溶接システム100は、ワークWkの位置計測のための計測装置(例えば、専用のカメラ等)が不要となる。溶接システム100は、教示プログラムの修正を行うたびに溶接ロボットMC1に計測装置を取り付けたり、取り外したりすることによるワークWkの生産効率の低下をより効果的に抑制できる。
【0160】
また、実施の形態1に係るロボット制御装置2のプロセッサ21は、3次元形状データを用いてワークWkの特徴点を検出し、検出された特徴点に基づいて、ワークWkの実測位置を算出する。これにより、実施の形態1に係るロボット制御装置2は、溶接ロボットMC1が備えるセンサ4によりスキャンされたワークWkの3次元形状データを用いて、実際のワークWkの位置(位置ずれワークWk11の位置PS3)を算出できる。
【0161】
また、実施の形態1に係るロボット制御装置2における特徴点は、ワークWkに形成された所定の孔である。これにより、実施の形態1に係るロボット制御装置2は、溶接ロボットMC1が備えるセンサ4によりスキャンされたワークWkの3次元形状データを用いて、実際のワークWkの位置(位置ずれワークWk11の位置PS3)を算出できる。
【0162】
また、実施の形態1に係るロボット制御装置2における特徴点は、ワークWkの所定の面または面の角部である。これにより、実施の形態1に係るロボット制御装置2は、溶接ロボットMC1が備えるセンサ4によりスキャンされたワークWkの3次元形状データを用いて、実際のワークWkの位置(位置ずれワークWk11の位置PS3)を算出できる。
【0163】
また、実施の形態1に係るロボット制御装置2におけるワークWkの位置に関する情報は、ワークWkに取り付けられたアライメントパターンAPの3次元形状データである。アライメントパターンAPは、異なる大きさを有する2つの孔HO1,HO2が形成される。プロセッサ21は、2つの孔HO1,HO2の位置に基づいて、ワークWkの実測位置を算出する。これにより、実施の形態1に係るロボット制御装置2は、アライメントパターンAPに基づいて、ワークWkの位置をより高精度に算出できる。
【0164】
以上により、実施の形態1の変形例に係る溶接システム100A(オフライン教示システムの一例)は、溶接によりワークWkを生産する溶接ロボットMC1(ロボットの一例)を制御するロボット制御装置2と、ロボット制御装置2との間で通信可能に接続され、仮想空間上にワークWkと溶接ロボットMC1とを構築するオフライン教示装置5と、を備える。オフライン教示装置5は、ワークWkの位置に関する情報(例えば、3次元形状データ、アライメントパターンAP等)を取得し、ワークWkの位置に関する情報に基づくワークWkの実測位置(例えば、
図7に示す位置ずれワークWk11の位置PS3)と、溶接ロボットMC1を基準とするワークWkの設定位置(例えば、ワークWkのワーク情報に含まれるワークWkの位置であって、
図7に示す正常ワークWk10の位置PS2)とに基づいて、ワークWkの位置ずれ量を算出し、ワークWkの位置ずれ量に基づいて、溶接ロボットMC1が生産に用いる複数の教示プログラムの教示点の位置を修正し、修正後の複数の教示プログラムをロボット制御装置2に送信する。ロボット制御装置2は、修正後の複数の教示プログラムを用いて、溶接ロボットMC1を制御する。
【0165】
以上により、実施の形態1の変形例におけるオフライン教示装置5を含む溶接システム100Aは、1台の溶接ロボットMC1で複数の教示プログラムを用いてワークWkを生産する場合であっても、教示プログラムに含まれる教示点の位置をより効率的に修正できる。また、オフライン教示装置5は、ワークWkの位置ずれ量を1度算出することで、このワークWkの生産に用いられるすべての教示プログラムをまとめて修正できるため、ワークWkの生産効率の低下を効果的に抑制するとともに、より高品質なワークWkの生産を実現できる。
【0166】
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
【0167】
なお、本出願は、2022年4月13日出願の日本特許出願(特願2022-066608)に基づくものであり、その内容は本出願の中に参照として援用される。
【産業上の利用可能性】
【0168】
本開示は、同一のロボットで使用され、それぞれ異なる作業を実行するための教示プログラムの教示点をより効率的に修正するオフライン教示装置およびオフライン教示システムとして有用である。
【符号の説明】
【0169】
1 上位装置
2 ロボット制御装置
3 検査制御装置
4 センサ
5 オフライン教示装置
10,20,30,50 通信部
11,21,31,51 プロセッサ
12,22,32,52 メモリ
23 本溶接プログラム作成部
24 スキャンプログラム作成部
25 ロボット制御部
26 電源制御部
100,100A 溶接システム
200 マニピュレータ
300 ワイヤ送給装置
301 溶接ワイヤ
400 溶接トーチ
500 電源装置
AP アライメントパターン
MC1 溶接ロボット
MN1,MN2,MN3 モニタ
UI1,UI3 入力インターフェース
Wk ワーク
Wk10 正常ワーク
Wk11 位置ずれワーク