以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るレーザ加工装置の一例であるレーザ溶接装置100の概略構成を示す説明図である。レーザ溶接装置100は、ロボット101、レーザヘッド102、光源の一例であるレーザ発振器103、及び制御装置120を備えている。制御装置120は、装置全体の制御、具体的にはロボット101の動作、及びレーザ発振器103におけるレーザ光の発生又は停止を制御する。制御装置120は、第1のコントローラの一例であるコントローラ121と、第2のコントローラの一例であるロボットコントローラ122とを有する。ロボット101は、マニピュレータである。
レーザ発振器103とレーザヘッド102とは、レーザ光の光路となる光ファイバケーブル151で接続されている。レーザ発振器103とコントローラ121とは、互いにデジタル信号の通信が可能にケーブル153で接続されている。ロボットアーム111とロボットコントローラ122とは、動力線及び信号線を有するケーブル155で接続されている。コントローラ121とロボットコントローラ122とは、互いにデジタル信号の通信が可能にケーブル156で接続されている。
レーザ発振器103は、連続発振レーザ又はパルス発振レーザであり、レーザ発振によりレーザ光を発生する。レーザ発振器103にて発生されたレーザ光は、光ファイバケーブル151を介してレーザヘッド102に送られる。レーザヘッド102は、レーザ発振器103にて発生されたレーザ光Lを出射する。レーザヘッド102から出射されたレーザ光Lの焦点は、レーザヘッド102に対して所定距離の位置に結ばれる。コントローラ121は、レーザ発振器103におけるレーザ光の発生又は停止を制御する。即ち、コントローラ121は、レーザ発振器103にレーザ光の発生又は停止をケーブル153を介して指令する。
ロボット101は、例えば垂直多関節のロボットであり、ロボットアーム111と、ロボットアーム111に取り付けられたエンドエフェクタの一例であるロボットハンド112とを有する。ロボット101は、レーザヘッド102を支持する。第1実施形態では、ロボット101は、ロボットハンド112がレーザヘッド102を把持することで、レーザヘッド102を支持する。なお、例えばレーザヘッド102をロボットアーム111の先端又はロボットハンド112に取り付けて、ロボット101にレーザヘッド102を支持させてもよい。
レーザヘッド102がロボット101に支持されているので、ロボット101を動作させることにより、レーザヘッド102を所望の位置及び姿勢に移動させることができる。ロボット101を動作させてレーザヘッド102を所望の位置及び姿勢に移動させることにより、レーザ光Lの焦点を空間における所望の位置に移動させることができる。レーザ光Lの焦点を、加工対象物Wにおいて溶接ビードを形成させる位置に合わせることにより、加工対象物Wをレーザ光Lで溶接加工することができる。なお、加工対象物Wを加工することで、加工品が得られる。
第1実施形態では、制御装置120がレーザ発振器103及びロボット101を制御して、レーザシーム溶接を行う。レーザシーム溶接においては、レーザ光Lとして連続波を用いるものと、パルス波を用いるものとがあるが、いずれであってもよい。レーザシーム溶接では、レーザ光Lで加工対象物Wの表面を走査する必要がある。第1実施形態では、ガルバノミラーを用いず、ロボット101に支持されたレーザヘッド102を移動させながらレーザ光Lを出射し、レーザ光Lで加工対象物Wの表面を走査して、レーザ溶接加工する。ガルバノミラーを省略した分、コスト削減になる。加工対象物Wにおいて、加工箇所として溶接箇所が複数ある場合には、溶接箇所を順番にレーザ溶接加工する。
図2は、第1実施形態におけるレーザ溶接装置100の制御系の一例を示すブロック図である。コントローラ121は、例えば汎用コンピュータで構成され、プロセッサの一例であるCPU(Central Processing Unit)301を有する。また、コントローラ121は、CPU301を動作させる基本プログラム等が格納されたROM(Read Only Memory)302、及びCPU301の作業領域としてのRAM(Random Access Memory)303を有する。また、コントローラ121は、記憶装置の一例であるHDD(Hard Disk Drive)304と、ディスクドライブ305とを有する。ディスクドライブ305は、記録媒体の一例である記録ディスク323に記録されたプログラム等を読み出すことができる。
また、コントローラ121は、インタフェース(I/F)311,312を有する。これらCPU301、ROM302、RAM303、HDD304、ディスクドライブ305、I/F311,312は、バス310で互いに通信可能に接続されている。I/F312には、ケーブル153でレーザ発振器103が接続されている。
CPU301には、クロック発生回路313が接続されている。CPU301は、クロック発生回路313にて発生されたクロック信号に同期して動作する。つまり、CPU301の動作周波数は、クロック発生回路313のクロック信号によって決まる。
HDD304には、CPU301に計時処理を行わせたり、CPU301に信号の送受信処理を行わせたりする制御プログラム321が記憶(記録)されている。CPU301は、制御プログラム321に従って、計時処理や信号の送受信処理等の各種の処理を実行する。また、HDD304には、後述する第1の時間T1及び第2の時間T2jなどの時間のデータを含む各種のデータ322が記憶(記録)される。ここで、jは、正の整数であり、加工箇所である溶接箇所に対応付けて付与した通し番号であり、溶接する順番でもある。なお、データ322は、制御プログラム321に組み込まれていてもよい。
CPU301は、制御プログラム321を実行することにより、ソフトウェアタイマとして機能する。具体的には、CPU301は、第1の時間T1を計時するタイマと、第2の時間T2jを計時するタイマとして機能する。また、CPU301は、制御プログラム321を実行することにより、レーザ発振器103にレーザ発振指令SR1(信号)を送信してレーザ発振器103を制御する。また、制御プログラム321は、I/Fからの読込処理、演算処理、I/Fへの出力処理を定期的に行っている。この周期をコントローラ121の制御周期と呼ぶこととする。
なお、制御プログラム321が記録される記録媒体は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラム321を供給するための記録媒体としては、図2に示すROM302,記録ディスク323、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、DVD-ROMやCD-ROM、ブルーレイ等の光ディスク、磁気ディスク、磁気テープ、半導体メモリ等を用いることができる。
ロボットコントローラ122は、ロボット101の制御を行う専用のコンピュータである。なお、図2においては、ロボット101として、ロボットアーム111の制御系について図示し、ロボットハンド112の制御系については図示を省略している。ロボットコントローラ122は、プロセッサの一例であるCPU401、CPU401を動作させる基本プログラム等が格納されたROM402、及びCPU401の作業領域としてのRAM403を有する。また、ロボットコントローラ122は、記憶装置の一例であるHDD404を有する。
また、ロボットコントローラ122は、サーボ演算部の一例であるFPGA416、及び電流アンプ417を有する。また、ロボットコントローラ122は、インタフェース(I/F)411を有する。CPU401、ROM402、RAM403、HDD404、FPGA416、I/F411は、バス410で互いに通信可能に接続されている。また、コントローラ121のI/F311とロボットコントローラ122のI/F411とがケーブル156で接続されている。
CPU401には、クロック発生回路414が接続され、FPGA416には、クロック発生回路415が接続されている。CPU401は、クロック発生回路414にて発生されたクロック信号に同期して動作し、FPGA416は、クロック発生回路415にて発生されたクロック信号に同期して動作する。つまり、CPU401の動作周波数は、クロック発生回路414のクロック信号によって決まり、FPGA416の動作周波数は、クロック発生回路415のクロック信号によって決まる。
HDD404には、プログラム421、及びロボットプログラム422が記憶(記録)されている。
ロボットアーム111は、各関節を駆動する複数(例えば6つ)のモータM1,…,M6と、モータM1,…,M6の回転角度(回転位置)を検知する位置センサの一例である複数(例えば6つ)のエンコーダEn1,…,En6と、を有する。また、ロボットアーム111は、エンコーダEn1,…,En6に接続され、電子回路で構成された検出回路115を有する。
以上の構成で、コントローラ121、具体的にはCPU301は、I/F312からレーザ発振指令(信号)SR1をレーザ発振器103に送信する。レーザ発振指令SR1を受信したレーザ発振器103は、レーザ発振指令SR1に従い、レーザ光を発生するように動作する。具体的には、コントローラ121は、レーザ発振指令SR1として、レーザ発振器103にレーザ光の発生を指令するときには電気信号の電圧をローレベルからハイレベルに切り替えて、I/F312から送信する。電気信号の電圧をハイレベルにする場合、レーザ発振指令SR1をオンにするともいう。また、コントローラ121は、レーザ発振器103にレーザ光の停止を指令するときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、レーザ発振指令SR1をオフにするともいう。したがって、レーザ発振器103は、レーザ発振指令SR1がオンのときにはレーザ光を発生させ、レーザ発振指令SR1がオフのときにはレーザ光を停止させる。
また、レーザ発振器103は、レーザ光を発生していることを示す信号SR2をコントローラ121に送信する。具体的には、レーザ発振器103は、信号SR2として、レーザ光を発生しているときには電圧がハイレベルの電気信号をコントローラ121に送信する。電気信号の電圧をハイレベルにする場合、信号SR2をオンにするともいう。また、レーザ発振器103は、レーザ光の発生を停止しているときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、信号SR2をオフにするともいう。
ロボットコントローラ122は、ロボットプログラム422に従ってロボットアーム111とロボットハンド112の動作を制御する。また、ロボットコントローラ122は、ロボットプログラム422に従ってシーケンスを管理する。即ち、ロボットアーム111の動作を開始するタイミングは、ロボットコントローラ122が管理する。以下、ロボットアーム111を動作させることをロボット101を動作させると表現する。
また、ロボットコントローラ122は、ロボット101が溶接箇所を含む所定の区間の軌道データに基づいて動作中であることを示すデジタル信号である信号SBを、コントローラ121に送信する。具体的には、ロボットコントローラ122は、レーザヘッド102を加速させる動作をロボット101に開始させた時点で、信号SBを示す電気信号の電圧をローレベルからハイレベルに切り替えて、コントローラ121に送信する。また、ロボットコントローラ122は、所定のタイミングで信号SBを示す電気信号の電圧をハイレベルからローレベルにする。以下、信号SBを示す電気信号の電圧をハイレベルにすることを、信号SBをオンにするともいう。また、信号SBを示す電気信号の電圧をローレベルにすることを、信号SBをオフにするともいう。
ロボットアーム111の姿勢制御、即ちレーザヘッド102の位置姿勢制御、具体的にはレーザ光Lの焦点の位置制御は、ロボットコントローラ122からロボットアーム111のモータM1,…,M6へ流されるモータ電流SC1によって行われる。ロボットプログラム422は、ロボット言語で記述されたプログラムである。ユーザは、ロボット言語をテキストデータで記述することにより、ロボット101の動作を指示することができる。ロボットコントローラ122のCPU401は、プログラム421を実行することにより、ロボットプログラム422の解釈を行い、複数の指令からなる軌道データを生成し、生成した軌道データをFPGA416へ出力する。FPGA416は、軌道データに従ってサーボ演算を行う。即ち、FPGA416は、サーボ演算によってモータ電流指令を生成し、生成したモータ電流指令を電流アンプ417に送る。電流アンプ417は、モータ電流指令に応じたモータ電流SC1を生成し、ロボットアーム111の各関節にあるモータM1,…,M6に流す。流されたモータ電流SC1によってロボットアーム111の各モータM1,…,M6が駆動される。検出回路115は、モータM1,…,M6が回転するとエンコーダEn1,…,En6から検出信号を取得する。検出回路115は、検出信号をシリアルのデジタル信号SC2に変換してロボットコントローラ122のFPGA416へ送信する。
モータM1,…,M6の回転角度(位置)を示すデジタル信号SC2は、FPGA416におけるサーボ演算に使われる。また、プログラム421は、I/Fからの読込処理、演算処理、I/Fのへの出力処理を定期的に行っている。この周期をロボットコントローラ122の制御周期と呼ぶこととする。エンコーダEn1,…,En6の検出信号はABZ相のパルス信号である。検出回路115は、エンコーダEn1,…,En6のパルス信号を、パルス数(位置座標に変換可能な値)を示すデジタル信号SC2に変換してFPGA416へフィードバックする。なお、サーボ機構、即ちFPGA416及び電流アンプ417をロボットアーム111内に配置し、CPU401からケーブルを介してロボットアーム111内のサーボ機構に位置指令、即ち軌道データを送信する構成としてもよい。また、FPGA416の機能をCPU401に持たせて、FPGA416を省略してもよい。また、エンコーダEn1,…,En6のパルス信号をデジタル信号に変換してロボットコントローラ122に送信する場合について説明したが、エンコーダEn1,…,En6のパルス信号を直接ロボットコントローラ122に送信するようにしてもよい。また、位置センサとして、エンコーダEn1,…,En6のかわりにレゾルバを用いてもよい。
ここで、ロボット101の動作の制御点は、ロボット101の手先と共に移動する点であればよいが、第1実施形態では、ロボット101の動作の制御点を、レーザ光の焦点としている。制御点は、ロボット101のベースを基準とする、3次元空間における位置を表す3つのパラメータ(X,Y,Z)と、3次元空間における姿勢を表す3つのパラメータ(A,B,C)からなる6つのパラメータで表される。したがって、制御点は、6次元のタスク空間上では、1つの点としてみなすことができる。ロボットプログラム422には、制御点の移動目標である教示点がユーザによって記述(指定)される。ロボットコントローラ122は、ロボットプログラム422を解釈し、教示点を結ぶ軌道データ、すなわち教示点を補間した軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間などがあり、これら補間方法が補間命令としてロボットプログラム422にユーザによって記述(指定)される。
ロボットコントローラ122のCPU401は、補間により求めた軌道データをロボット101の各関節の角度の指令に変換し、FPGA416は、サーボ演算を行う。FPGA416は、サーボ演算の結果、電流アンプ417に送られる電流指令を決定する。サーボ演算はロボットコントローラ122のCPU401の制御周期毎に行われる。各関節の角度の指令は制御周期毎に更新されるが、その増減量をコントロールすることでロボット101の速度は決定される。すなわち、各関節の角度の指令の増減量が大きければロボット101は速く動作し、増減量が小さければロボット101は遅く動作する。
ロボット101の動作によって制御点(レーザ光の焦点)が移動する実際の経路は、位置制御の応答遅れにより、ロボットプログラム422によって指令される経路からずれることがある。
図3は、第1実施形態における制御点の経路の一例を示す説明図である。ここで、制御点(レーザ光の焦点)の経路は、ロボット101の動作によって作られるため、ロボット101に支持されたレーザヘッド102の経路と同義である。
以下、ロボットプログラム422に記述された補間命令の一例としての直線補間命令を実行する場合について説明する。直線補間命令とは、第1の位置座標と第2の位置座標とを結んだ直線に沿って制御点が移動するように補間する命令であり、制御点の経路は、3次元空間で線分となる。なお、第1の位置座標と第2の位置座標とでロボット101の姿勢も補間する方法と、第1の位置座標の姿勢を第2の位置座標まで保つ方法の2通りが可能であるが、第1実施形態では姿勢も補間する。いずれの方法であっても、ロボット101の制御点、即ちレーザ光の焦点は、第1の位置座標と第2の位置座標とを結んだ線分上を通る。なお、ロボットプログラム422では第1の位置座標はロボット101の現在の指令位置を利用し、移動先の第2の位置座標のみを指定することが多い。位置座標はユーザが設定する教示点(教示位置)を使ってもよいし、教示点に所望の演算を加えて教示点とは異なる位置を示す位置座標を使ってもよい。また、ロボットコントローラ122のCPU401が直線補間命令を実行すると、現在の指令位置と移動先の目標位置を結ぶ軌道データを生成し、その軌道データをFPGA416に制御周期毎に払い出しを行う。ロボットコントローラ122のCPU401はすべての軌道データの払い出しが完了すると直線補間命令は完了し、ロボットプログラム422に記述された次の命令を実行する。
図3中、破線は制御点の指令の経路(位置)50、実線は制御点の実際の経路(位置)51である。そして、図3の例では、レーザシーム溶接をする箇所が2箇所ある。1箇所目は、レーザ光の照射を開始する際の制御点の位置521とレーザ光の照射を終了する際の制御点の位置531との間である。2箇所目は、レーザ光の照射を開始する際の制御点の位置522とレーザ光の照射を終了する際の制御点の位置532との間である。なお、レーザシーム溶接を行う溶接箇所は、2箇所に限定するものではなく、1箇所であってもよいし、3箇所以上であってもよい。制御点の位置521,522及び制御点の位置531,532は、ユーザが設定する教示点(教示位置)である。
ロボットコントローラ122は、教示による位置521と教示による位置531とを結ぶ延長線上に位置する位置541と位置551とを、予め決められたアルゴリズムに従って求める。このアルゴリズムはロボットプログラム422に記述されている。ロボットプログラム422には直線補間命令の引数に位置551を与えて実行させる。なお、位置551への直線補間命令を実行させるためには、位置541へ移動命令を実行させ、ロボット101の位置指令が位置541へ到達している必要がある。
位置541は、制御点の移動を開始する指令の位置である。位置551は、制御点の移動を終了する指令の位置である。そして、ロボットコントローラ122は、教示による位置521,531の間の区間を含み、位置541を始点、位置551を終点とする、直線補間による所定の区間の軌道データP1を生成する。同様に、ロボットコントローラ122は、制御点の移動を開始する位置542を始点、制御点の移動を終了する位置552を終点とする所定の区間の軌道データP2を直線補間命令により生成する。なお、本実施形態では予め決められたアルゴリズムは、ロボットプログラム422に記述したが、ロボットコントローラ122の内部に実装しておき、コマンドで演算させてもよい。
このように、ロボット101へ指令する軌道データP1,P2の一部である位置521,531,522,532は、ユーザにより指定される教示点である。一方、ロボット101へ指令する軌道データP1,P2の一部である位置541,551,542,552は、ロボットコントローラ122がロボットプログラム422に従って自動計算して求める指令であり、教示点ではない。
ロボットコントローラ122は、位置551と位置542との間も、ロボットプログラム422に記述された補間命令に従って補間して、軌道データP1-2を生成する。なお、位置551と位置542との間は、単にレーザヘッド102を移動させるだけなので、任意の補間方法で補間可能である。したがって、ロボットプログラム422には、任意の補間命令を記述可能である。ロボットプログラム422に例えば直線補間命令が記述されている場合には、直線補間で補間すればよい。ロボットプログラム422に例えば関節補間命令が記述されている場合には、関節補間で補間すればよい。関節補間命令とは、ロボット101の各関節の動作量を時間で分割して補間する命令であり、制御点の経路は直線にはならない。ただし、ロボット101の動作は、直線補間命令でロボット101を動作させる場合よりも高速となる。
レーザシーム溶接を行う場合、制御点の移動速度が目標速度Vw1,Vw2となるのに必要な助走区間が必要である。第1実施形態では、位置541と位置521との間が助走区間、位置542と位置522との間が助走区間ということになる。目標速度Vw1,Vw2は、ロボットプログラム422に記述(指定)される。
なお、レーザシーム溶接を行うので、制御点は位置521,522と位置531,532との間の溶接を行う区間を高精度に移動する必要があるが、レーザシーム溶接を行わないそれ以外の区間、例えば助走区間は位置精度が低くてもよい。したがって、図3に示すように、溶接を行う区間以外の区間において、実際の経路51が指令の経路50に対してずれていてもよい。換言するとロボットコントローラ122は、制御点が位置521,522と位置531,532との区間を高精度に移動するように、始点である位置541,542及び終点である位置551,552を求める。
ここで、ロボットコントローラ122が位置541,542をロボット101に指令する時点で、ロボット101が静止している場合と、ロボット101が動作している場合とがあるが、いずれであってもよい。
図4は、第1実施形態におけるロボット101の動作による制御点の移動距離の一例を示す説明図である。図4において、説明の便宜上、時刻TP11,TP21,TP31,TP51,TP12,TP22,TP32,TP52を図示している。第1実施形態のレーザ溶接装置100では、時刻TP11,TP21,TP31,TP51,TP12,TP22,TP32,TP52となったタイミングをカウントして処理を行うものではない。なお、図3と同様、破線は指令の経路50を示し、実線は実際の経路51を示す。
ロボットコントローラ122は、軌道データP1、軌道データP1-2、軌道データP2の順にロボット101の動作を制御する。しかし、位置制御の応答遅れにより、制御点は、図4に示すように、指令した時刻に対して遅れて動作する。
1箇所目の溶接のために、ロボットコントローラ122が直線補間命令を実行して、軌道データP1の払い出しを開始すると、ロボット101の角度の指令が軌道データP1の始点である位置541から軌道データP1の終点である位置551へ変化を始める。この変化を開始する時刻TP11で、制御点、即ちレーザヘッド102を加速させるロボット101の動作が開始される。
ロボットコントローラ122が位置521をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP21で、指令した位置521に対応する位置を通過する。ロボットコントローラ122が位置531をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP31で、指令した位置531に対応する位置を通過する。ロボットコントローラ122が軌道データP1の終点である位置551をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP51で、指令した位置551に対応する位置を通過する。レーザの照射は、実際の制御点が位置521を通過したときにレーザ光の照射を開始し、実際の制御点が位置531を通過したときにレーザ光の照射を停止する必要がある。
次にロボットコントローラ122は、次の溶接動作の準備のために、位置551から位置542へ向かう軌道データP1-2に従ってロボット101を動作させる。
2箇所目の溶接のために、ロボットコントローラ122が直線補間命令を実行して、軌道データP2の払い出しを開始すると、ロボット101の角度の指令が軌道データP2の始点である位置542から軌道データP2の終点である位置552へ変化を始める。この変化を開始する時刻TP12で、制御点、即ちレーザヘッド102を加速させるロボット101の動作が開始される。
ロボットコントローラ122が位置522をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP22で、指令した位置522に対応する位置を通過する。ロボットコントローラ122が位置532をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP32で、指令した位置532に対応する位置を通過する。ロボットコントローラ122が軌道データP2の終点である位置552をロボット101へ指令すると、制御点は、指令した時刻に対して遅れた時刻TP52で、指令した位置552に対応する位置を通過する。レーザの照射は、実際の制御点が位置522を通過したときにレーザ光の照射を開始し、実際の制御点が位置532を通過したときにレーザ光の照射を停止する必要がある。
レーザ光Lの焦点の移動速度が一定の目標速度Vw1,Vw2となった状態で加工対象物Wにレーザ光Lを照射して加工を行うには、レーザヘッド102がレーザ光Lの照射を開始する位置に到達する前に、レーザヘッド102を加速させる必要である。第1の時間T1は、レーザヘッド102が一定の目標速度Vw1,Vw2で等速移動するようにレーザヘッド102を加速させる時間である。第2の時間T21,T22は、レーザヘッド102が一定の目標速度Vw1,Vw2で等速移動している状態でレーザ光Lを加工対象物Wに照射する時間である。
第1実施形態では、予め実験を行うことにより、時刻TP11と時刻TP21との間の期間、及び時刻TP12と時刻TP22との間の期間を、レーザヘッド102を加工対象物Wに対して加速させる第1の時間T1として設定する。また、予め実験又は演算を行うことにより、時刻TP21と時刻TP31との間の期間を、レーザ光Lを照射する第2の時間T21として設定し、時刻TP22と時刻TP32との間の期間を、レーザ光Lを照射する第2の時間T22として設定する。
以下、第1の時間T1、第2の時間T2jの設定について詳細に説明する。レーザヘッド102の指令の速度と実際の速度とは、位置制御の応答遅れによりずれが生じる。したがって、第1の時間T1をロボットプログラム422のみで設定するのは困難である。そこで、試行錯誤的に様々な条件でロボット101を動作させ、レーザヘッド102の実際の速度が目標速度Vwjに達して等速となる時間を各条件で測定し、これらの測定結果から、第1の時間T1を設定する。
なお、第1の時間T1が経過した時点で、レーザヘッド102の速度が目標速度Vwjに達して等速となるのが好ましいが、ロボット101の位置姿勢、目標速度Vwj、ロボット101の連続動作による残留偏差等の要因で速度誤差が生じる。よって、様々な条件で測定した中で、速度誤差が最も低くなる値、即ち最も時間がかかった時間を、第1の時間T1に定めるのが好ましい。即ち、第1の時間T1は、レーザヘッド102の加速を開始してから第1の時間T1が経過する時点で、レーザヘッド102の速度が目標速度Vwjに対して所定の範囲内に収まるように設定すればよい。第1の時間T1は、各溶接箇所におけるレーザ光の目標速度Vwjによって異ならせてもよいが、同じ時間とした方がコントローラ121の処理を簡略化できる。
図5(a)及び図5(b)は、ロボット101に支持されたレーザヘッド102の目標速度を変更した際の移動プロファイルを示す説明図である。図5(a)及び図5(b)には、溶接する箇所におけるレーザヘッド102の目標速度を3通りVw1,Vw2,Vw3に変更した場合の例を図示している。なお、図5(a)及び図5(b)には、ロボット101の指令の速度VC、ロボット101の実際の速度VRを図示している。図5(a)においては、異なる目標速度Vw1,Vw2,Vw3となっても、ロボット101の加速度を一定としている。そのため、ロボット101の加速時間は、目標速度Vw1,Vw2,Vw3に応じて変化する。図5(b)においては、異なる目標速度Vw1,Vw2,Vw3となっても、ロボット101の加速時間を一定としている。そのため、ロボット101の加速度は変化している。図5(a)及び図5(b)のいずれにおいても、第1の時間T1を十分な時間で設定すれば、指令の速度VCと実際の速度VRがおおよそ一致する。従って、第1の時間T1が経過した直後にはロボット101が等速領域に達したことを保証することができるようになる。即ち、第1の時間T1を経過した時刻TP2jにおいて等速になっていることが保証されていればよく、時刻TP2jより前の時刻においてロボット101が等速になっていてもよい。
なお、図5(a)及び図5(b)では、教示による位置52jと教示による位置53jとを結ぶ延長線上に位置する位置54jと位置55jとを求めるアルゴリズムを変える必要がある。例えば、位置54jは、位置52jと位置53jを結ぶ線分を、位置52j側に延伸して求めるが、この延伸量は、図5(a)及び図5(b)における実際の速度VRを時刻TP1jから時刻TP2jまで積分して距離となる。積分した距離は図5(a)の方式と図5(b)の方式とでは異なるし、目標速度Vw1,Vw2,Vw3が変化しても異なる。従って位置54jを求めるアルゴリズムはそれらを考慮する必要がある。位置55jを求めるアルゴリズムも同様である。
第2の時間T2
1,T2
2はレーザ照射時間であり、以下の式(1)により計算する。ここで、以下の式(1)の演算記号として、第2の時間T2
1,T2
2をTw、レーザ光の照射を開始する位置52
1,52
2をPs、レーザ光の照射を終了する位置53
1,53
2をPe、及び目標速度Vw
jをVwとする。第2の時間であるTwを、Ps、Pe及びVwを用いて、溶接箇所ごとに以下の式(1)で計算する。
即ち、PsとPeとの距離を、Vwで割り算することで、第2の時間となるTwの値を求める。Ps、Pe、及びVwは、溶接箇所ごとに異なる値とすることができる。したがって、第2の時間T21,T22となるTwは、溶接箇所の長さ(領域)に応じた値となる。このように算出されたTwが、第2の時間T21,T22として設定される。
教示点である位置521,522は、位置と姿勢の6自由度の情報で構成されている。具体的には、位置521,522は、ロボット101のベースに対する位置の情報であるX,Y,Zとレーザヘッド102の保持角度の情報であるA,B,Cを有する。位置531,532も同様である。したがって、Ps,PeとしてX,Y,Zの位置情報のみを用いて、3次元空間上の距離を求める。
なお、この演算はロボットコントローラ122が行い、第2の時間となるTwの値を、ロボットコントローラ122がコントローラ121に転送してもよい。また、ロボットコントローラ122ではPsとPeとの距離のみを演算し、距離の情報をコントローラ121に転送し、残りの演算を行って第2の時間となるTwの値を求めてもよい。どちらを選択するかは、目標速度Vwをロボットコントローラ122で記述(指定)しているか、コントローラ121で記述(指定)しているかによって適宜選択できる。
以上、実際にロボット101を生産ラインで動作させる前に、第1の時間T1及び第2の時間T21,T22を設定しておく。なお、第1の時間T1は予めコントローラ121とロボットコントローラ122の両方に設定しておくのが望ましい。
ところで、レーザシーム溶接を行う溶接箇所においては、位置521,522をロボット101に指令したタイミングではなく、制御点が実際に位置521,522を通過する時刻TP21,TP22でレーザ光Lを照射する必要がある。同様に、位置531,532をロボット101に指令したタイミングではなく、制御点が実際に位置531,532を通過する時刻TP31,TP32でレーザ光Lの照射を停止する必要がある。
即ち、等速領域に達した時刻TP21において、ロボット101の位置制御の応答遅れが生じている場合がある。位置制御の応答遅れは、指令の位置と実際の位置の差で表される。位置制御の応答遅れがある場合には、この位置制御の応答遅れを、位置541,542及び位置551,552の算出に含める必要がある。
そこでロボットコントローラ122は、レーザヘッド102を加速させる動作を開始してから第1の時間T1が経過した時点で制御点が目標位置に到達するように、移動を開始する位置541,542と移動を終了する位置551,552を演算する。ただし、図5(a)の方法を適用した場合と図5(b)の方法を適用した場合とでは、位置541,542及び位置551,552の算出する方法が変わる。
この演算は軌道データP1,P2を生成する直線補間命令を実行する前に行う必要がある。例えば、直線補間命令の直前、または、実際にロボット101を生産ラインで動作させる前に行うことができる。なお、演算アルゴリズムはロボットプログラム422に記述することでロボットコントローラ122が演算する。
図6は、第1実施形態におけるレーザ溶接装置100によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図6には、ロボットコントローラ122においてコントローラ121に送信させる信号SBが図示されている。また、図6には、ロボット101により移動されるレーザヘッド102の実際の速度VR及び指令の速度VCが図示されている。また、図6には、コントローラ121においてレーザ発振器103に送信されるレーザ発振指令SR1が図示されている。
自動運転が開始され、位置551を目標位置とする直線補間命令が実行されると、ロボットコントローラ122は、位置541から位置551へ向かう軌道データP1を、所定の制御周期で払い出す。ロボット101は軌道データP1に従って動作する。即ち、ロボットコントローラ122は、加工対象物Wに対するレーザヘッド102の移動速度が目標速度Vw1となるようにレーザヘッド102を加速させる動作をロボット101に開始させる。これにより、レーザヘッド102、即ち制御点は、位置541から位置551に向かって移動を開始し、移動速度が一定の目標速度Vw1となるように加速し始める。
また、ロボットコントローラ122は、軌道データP1の払い出しを開始すると同時に、信号SBをオフからオンに切り替えた信号SBAを送信する。信号SBをオフからオンへの切り替えたときの立ち上がりが、同期信号(所定の信号)SBAとなる。即ち、ロボットコントローラ122は、レーザヘッド102を加速させる動作をロボット101に開始させた時点で、信号SBの立ち上がりである同期信号SBAをコントローラ121へ送信することになる。このタイミングを時刻TP11として図6中に示している。
第1実施形態では、信号SBの立ち上がりを同期信号SBAとしている。したがって、次の軌道データP2の払い出しを開始する前であって、信号SBが立ち上がってからコントローラ121の制御周期以上経過していれば、信号SBはどのタイミングで立ち下がってもよい。図6の例ではロボットコントローラ122は、軌道データP1の終点である位置551を指令すると同時に、信号SBをオンからオフに切り替える。なお、信号SBを立ち上げることで同期信号SBAとしたが、これに限定するものではなく、信号SBを立ち下げることで同期信号SBAとしてもよい。
コントローラ121は、ロボットコントローラ122から送られてくる信号SBを監視しており、信号SBが立ち上がる同期信号SBAを受信した時点で、第1の時間T1の計時を開始する。第1の時間T1は、例えば200[msec]等、固定の時間である。
第1の時間T1が経過したとき、レーザヘッド102は、溶接を行う目標速度Vw1に達して等速状態となっており、また、制御点は、指令された位置521(図3)に位置している。よって、コントローラ121は、信号SBが立ち上がる同期信号SBAを受信してから第1の時間T1が経過した時点、即ち第1の時間T1の計時が終了した時点(図6中、時刻TP21)で、レーザ光Lを発生するようレーザ発振器103を制御する。具体的には、コントローラ121は、第1の時間T1の計時が終了すると同時にレーザ発振指令SR1をオフからオンに切り替える。即ち、コントローラ121は、第1の時間T1の計時が終了した時点で、レーザ発振器103にレーザ光を発生させるよう指令する。レーザ発振器103は、レーザ発振指令SR1を監視しており、レーザ発振指令SR1がオフからオンに切り替わったのを受信したとき、レーザ発振を行う。これと同時に、レーザ発振器103は、信号SR2をオフからオンに切り替える。
このように、ロボットコントローラ122は、加工対象物Wに対するレーザヘッド102の移動速度が一定の目標速度Vwjで等速となるようにレーザヘッド102を加速させる動作を、ロボット101に開始させる。そして、コントローラ121は、レーザヘッド102の加速開始から第1の時間T1が経過した時点で、レーザ光を発生するようレーザ発振器103を制御する。コントローラ121は、ロボットコントローラ122の制御によるレーザヘッド102の加速開始を、同期信号SBAを受信することで検知する。
次に、コントローラ121は、第1の時間T1の計時が終了した時点で第2の時間T21の計時を開始する。ロボットコントローラ122は、レーザヘッド102にて加工対象物Wにレーザ光Lを照射している間、レーザヘッド102の移動速度が目標速度Vwを維持するようにロボット101を動作させる。コントローラ121は、第1の時間T1が経過してから更に第2の時間T21が経過した時点、即ち第2の時間T21の計時が終了した時点(図6中、時刻TP31)で、レーザ光Lの発生を停止するようレーザ発振器103を制御する。
具体的には、コントローラ121は、第2の時間T21の計時が終了すると同時にレーザ発振指令SR1をオンからオフに切り替える。即ち、コントローラ121は、第2の時間T21の計時が終了した時点で、レーザ発振器103にレーザ光を停止させるよう指令する。レーザ発振器103は、レーザ発振指令SR1がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
ロボットコントローラ122は、軌道データP1の終点である位置551をロボット101に指令した後、次に溶接を行うために、軌道データP1-2をロボット101に指令する。なお、軌道データP2をロボット101に指令して次の溶接を行う場合も、前述の動作の繰り返しとなる。このように、ロボットコントローラ122は、互いに異なる複数の軌道データP1,P2に従って、順次、ロボット101の動作を制御する。コントローラ121は、同期信号SBAを受信する度に、第1の時間T1として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器103を制御する。即ち、第1の時間T1として、各溶接箇所に対して個別の時間としているのではなく、共通の時間としている。したがって、コントローラ121は、ロボットコントローラ122がいずれの軌道データP1,P2の指令を開始したのかを認識することなく、同期信号SBAを受信する度に、第1の時間T1として同じ時間をカウントすることになり、処理が簡略化される。
以上、第1実施形態によれば、第1の時間T1が経過した時点でレーザヘッド102が目標速度Vwに達しており、この目標速度Vwに達した等速状態でレーザ光を加工対象物Wに照射する。即ち、ロボット101に支持されたレーザヘッド102を、加工対象物Wに対して等速で移動させることにより、レーザ光Lの焦点を加工対象物Wの表面に沿って等速で移動させることができる。よって、加工対象物Wにおいてレーザ光Lの焦点の移動方向に沿って入熱量が均一化され、加工対象物Wにレーザ光Lの焦点の移動方向に沿って均一な溶接ビードを形成することができる。これにより、高精度なレーザシーム溶接を実現することができる。
ここで、ロボットコントローラ122における制御周期は、ロボット101の動作を制御するのに適した値、例えば数ミリ秒に設定されている。第1実施形態では、コントローラ121は、ロボットコントローラ122の制御周期よりも短い制御周期でレーザ発振器103のレーザ光の発停を制御している。即ち、第1実施形態では、コントローラ121においてレーザ発振器103を制御する制御周期は、ロボットコントローラ122においてロボット101を制御する制御周期よりも短い。よって、コントローラ121は、ロボットコントローラ122よりも、第1の時間T1及び第2の時間T21,T22を正確に管理することができる。即ち、コントローラ121は、レーザ発振器103を短い制御周期で制御することができるので、レーザ発振器103を発停するタイミングを正確に管理することができる。その結果、溶接ビードの長さのばらつきが低減でき、溶接強度のばらつきが低減される。
また、第1実施形態によれば、ロボットコントローラ122が軌道データPjの始点を指令するタイミングと、コントローラ121において第1の時間T1の計時を開始するタイミングとが同期信号SBAで同期するようにしている。ロボットコントローラ122が軌道データPjの始点を指令するタイミングとは、軌道データPjの払い出しを開始するタイミングである。即ち、ロボットコントローラ122においてロボット101の動作と同期させた同期信号SBAを発生させ、コントローラ121において同期信号SBAと同期した時刻からの経過時間によって、レーザ光の照射のオンオフを管理している。したがって、コントローラ121及びロボットコントローラ122は、複雑な演算処理等を行うことなく、ロボット101の動作とレーザ発振器103のレーザ発振のオンオフを同期させている。よって、ロボット101の動作とレーザ発振のタイミングのずれを低減することができる。これにより、レーザ光の照射を開始する目標の位置に対する実際の位置の誤差が低減される。また、ロボット101の動作中に複雑な演算処理を行ってレーザ発振を制御する必要がないので、レーザ加工の精度を確保しながら、ロボット101の動作を高速化することができ、加工品の生産効率を向上させることができる。
[第2実施形態]
次に、第2実施形態に係るレーザ溶接装置について説明する。図7は、第2実施形態に係るレーザ加工装置の一例であるレーザ溶接装置100Aの概略構成を示す説明図である。第2実施形態では、コントローラ121で装置全体のシーケンスを管理する構成とする。なお、第2実施形態のレーザ溶接装置100Aは、第1実施形態のレーザ溶接装置100と同様の装置構成であり、プログラム321A,422Aが第1実施形態のプログラム321,422と異なる。第2実施形態では、第1実施形態と同様の部分については説明を省略する。
図7に示すコントローラ121には、シーケンスを管理するように構成された制御プログラム321Aが予め設定されている。コントローラ121は、ロボットコントローラ122へロボット101の動作開始を指示する動作開始指令(所定の指令)SAを送信する。動作開始指令SAを受信したロボットコントローラ122は、動作開始指令SAに従い、溶接を行う軌道データP1,P2(図3)の指令を開始する。具体的には、コントローラ121は、ロボット101の動作を開始するよう動作開始指令SAを指令するときには、電圧がハイレベルの電気信号をロボットコントローラ122へ送信する。電気信号の電圧をハイレベルにする場合、動作開始指令SAをオンにするともいう。また、コントローラ121は、動作開始指令SAを示す電気信号の電圧をハイレベルにした後、所定のタイミングでローレベルとする。電気信号の電圧をローレベルにする場合、動作開始指令SAをオフにするともいう。ロボットコントローラ122は、動作開始指令SAがオフからオンに切り替わることにより、軌道データP1,P2の指令を開始する。図3の例では、ロボットコントローラ122は、動作開始指令SAを受信すると、軌道データP1に従ってロボット101を動作させ、引き続き、軌道データP1-2に従ってロボット101を動作させる。ロボットコントローラ122は、次の動作開始指令SAを受信すると、軌道データP2に従ってロボット101を動作させる。
なお、ロボットプログラム422Aには、動作開始指令SAがオフからオンに切り替わったことをロボットコントローラ122が受信すると、ロボットコントローラ122が軌道データP1,P2の指令を開始するように記述されている。
図8は、第2実施形態におけるレーザ溶接装置100Aによりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
図8において、図6に示すタイムチャートとの違いは、動作開始指令SAが追加されていることにある。動作開始指令SAによってロボット101は動作を開始する。以下、具体的に説明する。自動運転が開始されると、コントローラ121は、動作開始指令SAをオンする。このタイミングを時刻TP01として図8に示す。
ロボットコントローラ122は、動作開始指令SAを監視しており、動作開始指令SAがオフからオンに切り替わると、軌道データP1の指令を開始する。即ち、ロボットコントローラ122は、動作開始指令SAを受信した場合に、レーザヘッド102を加速させる動作をロボット101に開始させる。
ロボットコントローラ122は、軌道データP1の払い出しを開始してロボット101を制御する時点で、コントローラ121へ同期信号SBAを送信する。このタイミングを時刻TP11として図8に示している。
コントローラ121は、ロボットコントローラ122から送られてくる信号SBを監視しており、信号SBが立ち上がる同期信号SBAを受信した時点で、第1の時間T1の計時を開始する。また、コントローラ121は、動作開始指令SAをオフにする。
レーザヘッド102は、第1の時間T1が経過したとき、溶接を行う目標速度Vw1に達して等速状態となっており、また、制御点は、指令された位置521(図3)に位置している。よって、コントローラ121は、同期信号SBAを受信してから第1の時間T1が経過した時点、即ち第1の時間T1の計時が終了した時点(図8中、時刻TP21)で、レーザ光Lを発生するようレーザ発振器103を制御する。
次に、コントローラ121は、第1の時間T1の計時が終了した時点から第2の時間T21の計時を開始する。コントローラ121は、第1の時間T1が経過してから更に第2の時間T21が経過した時点、即ち第2の時間T21の計時が終了した時点(図8中、時刻TP31)で、レーザ光Lの発生を停止するようレーザ発振器103を制御する。
具体的には、コントローラ121は、第2の時間T21の計時が終了すると同時にレーザ発振指令SR1をオンからオフに切り替える。即ち、コントローラ121は、第2の時間T21の計時が終了した時点で、レーザ発振器103にレーザ光を停止させるよう指令する。レーザ発振器103は、レーザ発振指令SR1がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
ロボットコントローラ122は、軌道データP1の終点である位置551をロボット101に指令した後、次に溶接を行うために、軌道データP1-2をロボット101に指令する。ロボットコントローラ122は、軌道データP1-2の終点を指令すると同時に、信号SBをオンからオフに切り替える。
一方、コントローラ121は、第2の時間T21の計時が終了してレーザを停止させてから、信号SBがオフになることを監視する。信号SBがオフになるタイミングは軌道データP1-2の終点の指令が完了したタイミングであり、次の溶接を行う軌道データP2の実行が可能な状態であることを示している。コントローラ121は、信号SBがオフになっており、かつ、第2の時間T21の計時が終了していれば、動作開始指令SAをオンする。このタイミングを時刻TP02として図8に示す。これによりロボットコントローラ122は、次の溶接を行う軌道データP2をロボット101に指令して、前述の動作を繰り返す。
このように、ロボットコントローラ122は、互いに異なる複数の軌道データP1,P2に従って、順次、ロボット101の動作を制御する。コントローラ121は、同期信号SBAを受信する度に、第1の時間T1として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器103を制御する。
図8に示すように、ロボットコントローラ122は、軌道データP1と軌道データP2との間の軌道データP1-2の指令が終了した時点で信号SBをオフにしている。もし、その直後に、動作開始指令SAがオンにならない場合は、ロボットコントローラ122は動作開始指令SAを監視する待機状態となり、ロボットはその位置を維持する。再び、動作開始指令SAがコントローラ121からロボットコントローラ122へ送られれば、ロボットコントローラ122は軌道データP2の払い出しを開始する。
なお、信号SBを、ロボット101が待機状態になったことを示す信号としても使用しているが、信号SBとロボット101の待機状態になったことを示す信号とを別々に設定してもよい。
以上、第2実施形態によれば、コントローラ121によりシーケンスを管理する場合においても、第1実施形態と同様、高精度なレーザシーム溶接を実現することができる。また、第1実施形態と同様、ロボット101の動作中に複雑な演算処理を行う必要がなく、ロボット101の動作を高速化することができ、加工品の生産効率を向上させることができる。
また、周辺機器との接続性がよい汎用のコンピュータで構成されたコントローラ121がシーケンスを管理することにより、コントローラ121が不図示のデータベース等の周辺機器にアクセスするのも容易となる。コントローラ121は汎用のコンピュータのため、様々なフィールドバスと接続し、装置の情報を他の装置に伝達したり、センサなどの値を読み込んだりすることも容易である。イーサネット(登録商標)などで装置外のサーバとの通信を行うことも容易である。
また、ロボットコントローラ122の制御周期は、コントローラ121の制御周期よりも長い。このため、ロボットコントローラ122において動作開始指令SAを認識するタイミングにばらつきが生じる。第2実施形態では、コントローラ121は、動作開始指令SAを送信したタイミングではなく、同期信号SBAを受信したタイミングで、レーザ発振を行う第1の時間T1の計時を開始する。したがって、ロボット101の動作とレーザ発振器103におけるレーザ発振のタイミングのずれを低減できる。
[第3実施形態]
次に、第3実施形態に係るレーザ溶接装置を用いたレーザ加工方法について説明する。第3実施形態では、第1実施形態及び第2実施形態で説明した第1の時間T1の計時が完了したとき、及び第2の時間T2jの計時が完了したときに、制御点、即ちレーザ光Lの焦点が教示した点を通過するようにロボット101を制御する方法について説明する。即ちレーザ光の照射開始時に、教示した溶接開始点である位置52jを制御点が通過するロボット101の制御方法と、レーザ光の照射停止時に、教示した溶接終了点である位置53jを制御点が通過するロボット101の制御方法について説明する。また、第3実施形態では、制御点が位置52j及び位置53jを通過する時に目標速度Vwjで通過するようにロボット101を制御する方法についても説明する。なお、第3実施形態のレーザ加工方法は、第1実施形態、及び第2実施形態のいずれにも適用できる。
レーザ光の照射を開始する時に制御点が位置52jを通過し、レーザ光の照射を停止する時に制御点が位置53jを通過し、かつレーザ光の走査速度を目標速度Vwjとするための計算について説明する。
図1及び図7に示すロボットコントローラ122は、まず助走距離Laj及び減速距離Ldjを溶接箇所ごとに算出する。次に、ロボットコントローラ122は、位置52jと位置53jとを結ぶ延長線上において、位置52jから助走距離Laj分だけ延伸した位置である位置54jを求める。同様に、ロボットコントローラ122は、位置52jと位置53jとを結ぶ延長線上において、位置53jから減速距離Ldj分だけ延伸した位置である位置55jを求める。ロボットコントローラ122は、位置54jと位置52jとの間で制御点を加速させ、位置53jと位置55jとの間で制御点を減速させることで、照射するレーザ光を目標速度Vwjとすることができる。
助走距離Laj及び減速距離Ldjの必要性について、図9を用いて説明する。図9は、参考例として助走距離Laj及び減速距離Ldjを設けなかった場合の説明図である。図9中、破線は制御点の指令の経路(位置)50、実線は制御点の実際の経路(位置)51である。図9の例では、レーザシーム溶接をする箇所が2箇所ある。1箇所目は、レーザ光の照射を開始する制御点の位置521とレーザ光の照射を終了する制御点の位置531との間である。2箇所目は、レーザ光の照射を開始する制御点の位置522とレーザ光の照射を終了する制御点の位置532との間である。例として、1箇所目の溶接箇所について説明する。仮に助走距離La1及び減速距離Ld1が0であると、制御点の実際の経路(位置)51は制御点の指令の経路(位置)50からずれる。即ち、制御点は、位置521及び位置531を通過しない。なお、指令の位置とは、フィードバック制御における指令の位置を指し、実際の位置とは、ロボット101の各軸に搭載されているエンコーダから得られる角度情報から得られる実際の位置のことである。
仮に制御点が位置521に到達したことを確認してから、ロボット101に直線補間命令を実行させ、位置531に制御点を向かわせれば、制御点に位置521と位置531との間を直線移動させることはできる。しかし、この方法では、実際の経路(位置)51に沿って移動する制御点が位置521を通過する時の速度は0となってしまい、目標速度Vw1で溶接を開始することができない。したがって、助走距離La1及び減速距離Ld1を設ける必要がある。
図10は、第3実施形態において助走距離La1及び減速距離Ld1を設けた制御点の経路の一例を示す説明図である。図10で示すように、助走距離La1は、位置541と位置521の距離、減速距離Ld1は、位置531と位置551の距離である。本実施形態では、第1実施形態で説明したようにコントローラ121がロボット101の動作開始を指令しない場合(図1)と第2実施形態で説明したようにコントローラ121がロボット101の動作開始を指令する場合(図7)のそれぞれについて説明する。
第1実施形態のような場合では、ロボットコントローラ122は、直線補間命令又は関節補間命令を実行して、軌道データP0-1の払い出しを完了すると、即座に次の直線補間命令の実行を開始する。直線補間命令の目標位置は位置551である。ロボットコントローラ122は直線補間命令の実行により軌道データP1の払い出しを開始する。ロボットコントローラ122は、軌道データP1の払い出しと同時にコントローラ121に対し同期信号(所定の信号)SBA(図6)を送信し、第1の時間T1の計時をコントローラ121に開始させる。
第2実施形態のような場合では、ロボットコントローラ122は、軌道データP0-1の払い出しを完了すると、コントローラ121からの動作開始指令(所定の指令)SA(図8)を待つ。ロボットコントローラ122は、動作開始指令(所定の指令)SAを受信すると即座に次の直線補間命令の実行を開始する。直線補間命令の目標位置は位置551である。直線補間命令の実行により軌道データP1の払い出しが開始する。ロボットコントローラ122は、軌道データP1の払い出しと同時にコントローラ121に対し同期信号(所定の信号)SBAを送信し、第1の時間T1の計時をコントローラ121に開始させる。
第1実施形態のような場合、及び第2実施形態のような場合ともに、適切な助走距離La1を設けることで、第1の時間T1の計時をコントローラ121が終えると同時に位置521を制御点が通過するようにする。同様に、適切な減速距離Ld1を設けることで、コントローラ121が第2の時間T21の計時を終えると同時に位置531を制御点が通過するようにする。
指令の位置と実際の位置とは、各瞬間において一致しないことがある。これは、ロボットの応答遅れによって発生する。図11を用いて、各瞬間における指令の位置と実際の位置を説明する。図11は、第3実施形態における制御点の経路の一例であって、指令の位置と実際の位置との関係を示す説明図である。図11中のベクトル56は、始点を実際の位置、終点を指令の位置で示している。ベクトル56の始点と終点は、時間の経過とともに変化する。一定の時間間隔ごとに始点と終点を求め、始点と終点の変化を表示したものが図11のようになる。ベクトル56の始点の位置を結ぶと制御点の実際の経路(位置)51となり、ベクトル56の終点の位置を結ぶと制御点の指令の経路(位置)50となる。図11で示すように、ロボットコントローラ122が軌道データP0-1の払い出しを完了した瞬間の指令の位置は位置541にあるが、実際の位置は位置541に到達していない。従って、ロボットコントローラ122が軌道データP1の払い出しを開始した時点では、実際の位置は位置541と離れている。
制御点が、位置541に到達するのを待って軌道データP1の払い出しを開始させることで、制御点に位置541を通過させる方法(第1の方法)と、制御点が位置541に到達するのを待たない方法(第2の方法)がある。第1の方法を、図12(a)及び図13(a)に示し、第2の方法を、図12(b)と図13(b)に示す。第1の方法では、制御点が位置541に実際に到達するのを待つ必要があり、動作が遅くなるため、第2の方法が好ましい。
図12(a)及び図12(b)は、第3実施形態における制御点の経路の一例を示す説明図である。図13(a)及び図13(b)は、第3実施形態における速度と時間との関係を示す説明図である。ただし、図13(a)には、コントローラ121が、第2実施形態のように動作開始指令(所定の指令)SAを送信する場合について図示しているが、第1実施形態のように動作開始指令SAを送信しない場合であってもよい。
第1の方法では、制御点が、図12(a)及び図13(a)に示すように、位置541に実際に到達するのを待つことで、制御点に位置521及び位置531を通過させるのが容易となる。図12(a)及び図13(a)に示した第1の方法では、目標速度に実際の速度VRが到達する時間のみを考慮して第1の時間T1を決定すればよい。助走距離La1は、決定した第1の時間T1を用いて決定すればよい。ただし、第1の方法では、位置541に制御点が実際に到達するのを待つための時間TWAITが発生する。生産性の観点では、時間TWAITのような待ち時間は少ない方がよい。
第1実施形態のように動作開始指令が無い場合に第1の方法を行うには、ロボットコントローラ122に次の処理を実行させる。即ちロボットコントローラ122は、軌道データP0-1の払い出し完了の後、位置541に実際に制御点が到達することを確認してから、軌道データP1の払い出しを開始すると同時に同期信号SBAをコントローラ121に送信する。
第2実施形態のように動作開始指令がある場合に第1の方法を行うには、ロボットコントローラ122に次の処理を実行させる。即ちロボットコントローラ122は、軌道データP0-1の払い出し完了の後、位置541に実際に制御点が到達することを確認してから、信号SBをオンからオフにして動作開始指令SAを受け取る準備ができたことをコントローラ121に知らせる。以下、信号SBをオンからオフにして動作開始指令SAを受け取る準備ができたことを知らせる信号SBBを、ロボット待機信号SBBともいう。
第2の方法では、制御点が、図12(b)及び図13(b)に示すように、位置541に到達しない場合がある。到達しない場合について説明する。
第1実施形態のように動作開始指令が無い場合では、ロボットコントローラ122は、軌道データP0-1の払い出し完了の後、軌道データP1の払い出しを開始すると同時に同期信号SBAをコントローラ121に送信する。
第2実施形態のように動作開始指令がある場合では、ロボットコントローラ122は、軌道データP0-1の払い出し完了の後、ロボット待機信号SBBを送信し、動作開始指令SAを受け取る準備ができたことをコントローラ121に知らせる。
ロボットコントローラ122がコントローラ121からの動作開始指令SAを受信した時点で、制御点が位置541に到達していないことが多い。なお、ロボットコントローラ122が動作開始指令SAを即座に受信しない場合は、動作開始指令SAを受信した時点で、制御点が位置541に到達することもある。その場合には、図12(a)及び図13(a)と同じになる。
図12(b)と図13(b)に示すように、第2の方法では、制御点の指令の経路(位置)50は位置541を通過するものの、制御点の実際の経路(位置)51は位置541を通過しないことがある。これは、位置541に指令位置が到達した時、即ち軌道データP0-1の払い出し完了した時、ロボットコントローラ122が実際の位置に関わらず軌道データP1の払い出しを開始するためである。目標位置が位置541から変更されるため、制御点は、実際には位置541を通過しない。第2の方法では、図13(a)に示すような時間TWAITが発生せず、生産性の観点では有利である。ただし、第2の方法は、第1の時間T1の決定方法が煩雑になる。第1の時間T1の決定方法には、目標速度に実際の速度VRが到達する時間と、溶接開始点である位置521、及び溶接終了点である位置531を、制御点が通過する必要がある。
制御点に位置521及び位置531を通過させる手順を説明する。図14(a)及び図14(b)は、第3実施形態における制御点の経路の一例を示す説明図である。図14(a)及び図14(b)には、制御点が様々な位置から位置541にアプローチした例を示している。図14(a)及び図14(b)のいずれも、図12(b)及び図13(b)に示した、第2の方法の例であり、制御点は実際には位置541を通過しない。
図14(a)には、第1の時間T1を短く設定した場合について例示している。図14(a)において、第1の時間T1が短いため、制御点は溶接開始点である位置521を通過していない。即ち、制御点の実際の経路51が、溶接開始点である位置521から外れている。
図14(b)には、第1の時間T1を長く設定した場合について例示している。図14(b)において、制御点は溶接開始点である位置521を通過している。即ち、制御点の実際の経路51が、溶接開始点である位置521を通過している。位置541は、第1の時間T1によって決まる位置であるため、第1の時間T1が長いほど、位置521から離れた位置に設定される。位置541の決定方法については後述する。
図12(b)及び図13(b)に示した第2の方法の場合、第1の時間T1の決定方法には、2つの事項を考慮する必要がある。1つ目は、目標速度に実際の速度VRが到達する時間である。先に説明したように、試行錯誤的に様々な条件でロボット101を動作させ、レーザヘッド102の実際の速度VRが目標速度Vw1に達して等速となる時間を各条件で測定し、これらの測定結果から、第1の時間T1の下限値を決定する。
2つ目は、制御点に位置521及び位置531を通過させることである。試行錯誤的に様々な条件でロボット101を様々な位置から位置541にアプローチさせ、制御点が位置521を通過するか試験する。そして、各条件での試験結果から、第1の時間T1の下限値を決定する。最後に2者のそれぞれの下限値のうち、いずれか大きい値を第1の時間T1として決定する。
第1時間T1の決定方法の具体的な事例について説明する。図15は、第3実施形態における第1の時間T1を決定する測定方法を説明するための図である。図15には、板57Aと板57Bとを溶接する場合について図示している。位置521及び位置531が板57A上にあるものとする。位置521を始点として位置531を終点とする溶接ビードの方向を方向58qとする。方向58qに垂直で板57Aに平行な方向を方向58rとする。板57Aに垂直な法線方向を方向58dとする。位置521と位置531とを結ぶ線分を、位置521から延びる方向に延長し、延長線上に位置541を設定する。位置521と位置541との間隔は十分長くとり、助走距離La1を仮設定する。助走距離La1は、位置521と位置541とを結ぶ線分の長さである。同様に、位置521と位置531を結ぶ線分を、位置531から延びる方向に延長し、延長線上に位置551を設定する。位置531と位置551との間隔は十分長くとり、減速距離Ld1を仮設定する。減速距離Ld1は、位置531と位置551とを結ぶ線分の長さである。
位置541及び位置551の設定を行った状態で、ロボットコントローラ122に次の処理を実行させる。すなわち、ロボットコントローラ122は、様々な位置から位置541へ直線補間移動命令又は関節補間移動命令に従って制御点を移動させる制御を行い、その後、移動した位置から位置551へ直線補間移動命令に従って制御点を移動させる制御を行う。
図16は、第3実施形態において移動命令に従って制御点を移動させたときの応答の例を示したグラフである。図16には、上から順に、応答波形59、応答波形60、応答波形61、応答波形62q、応答波形62r、応答波形62dのグラフを図示している。応答波形59は、溶接ビードの方向である方向58qの速度の応答波形である。応答波形60は、溶接ビードの方向である方向58qの速度偏差の応答波形である。応答波形61は、溶接ビードの方向である方向58qの位置偏差の応答波形である。応答波形62qは、溶接ビードの方向である方向58qの位置の応答波形である。応答波形62rは、方向58rの位置の応答波形である。応答波形62dは、方向58dの位置の応答波形である。なお、図16中、横軸方向は時間である。図16中、信号SBB、信号SA、信号SBAを縦線で図示している。この測定において、コントローラ121は、信号SBBを受信後、すぐに信号SAを送信するのが望ましい。
第1の時間T1は、速度の応答波形59において、速度が目標速度Vw1に対して許容範囲内にあるか、位置の応答波形である応答波形62q、応答波形62r及び応答波形62dにおいて、位置が許容範囲内にあるかで決定する。第1の時間T1は、信号SBAを送信したときから、応答波形59、応答波形62q、応答波形62r、及び応答波形62dのすべてが、許容範囲内に入るまでの時間として決定できる。
図16においては、説明のために目標速度Vw1のみ例示しているが、溶接箇所が複数ある場合は、溶接箇所ごとに目標速度を設定する。第1の時間T1を溶接箇所に関わらず固定値にする場合、溶接箇所ごとに応答波形59、応答波形62q、応答波形62r及び応答波形62dのすべてが許容範囲内に入るまでの時間を測定するのが好ましい。
以上により、第1の時間T1を決定することができる。次に、第1の時間T1が経過した瞬間に位置521を制御点が通過するように、助走距離La1を第1の時間T1を用いて計算する。
助走距離La1を計算する計算式は制御系の特性で変化する。制御系には、「型」とよばれる概念があり、型により応答特性が変化する。図16に示す測定結果からロボットコントローラ122のフィードバック制御系の型がわかる。図16の場合、型は1型である。
フィードバック制御系は、フィードフォワード制御を行っていない場合に表1に示す偏差を持つことが知られている。
表1は、制御系の型と時間t=∞における位置偏差との関係を示したものである。ステップ入力r(t)=h、ランプ入力r(t)=vt、及び放物線入力r(t)=at2/2のそれぞれが制御系に入力されたとき、t=∞において位置偏差がどのような定常値を示すかまとめたものである。
図16において、溶接動作は、図15に示す溶接方向58qにおいて、一定の目標速度Vw1で制御する動作となるので、位置指令の入力としてランプ入力となる。すなわち、応答波形62qにおいて、図15に示す溶接方向58qにおける位置指令63qはランプ入力である。実際の位置応答64qは、位置指令63qに対しランプ応答となっている。位置偏差65qは、位置指令63qから位置応答64qを減算して求めるので、t=∞のとき一定値となることがわかる。すなわち、図16から制御系の型が1型であることがわかる。なお、説明のため1番目の溶接箇所の例を示したが、j番目の溶接箇所でも同様となる。
以上のことを踏まえて、助走距離Lajを算出する。図17は、第3実施形態における助走距離Lajの算出方法を説明するための図である。助走距離Lajを算出するには、第1の時間T1が経過した瞬間のロボット101のいるべき位置から逆算する必要がある。図17には、第1の時間T1が経過した瞬間を図示している。また、図17には、j番目の溶接箇所の例を図示している。
ベクトル56s
jは、第1の時間T1が経過した瞬間における実際の位置に対する指令の位置を示すベクトルである。ベクトル56s
jの始点が実際の位置、終点が指令の位置である。第1の時間T1が経過した瞬間に、制御点が実際に位置52
jにいる必要がある。助走距離La
jは、第1の時間T1の経過によりロボット101の指令の位置が進む距離Lsr
jと、第1の時間T1が経過した時点においてロボット101の応答遅れにより発生する距離Lse
jで表現できる。助走距離La
jは式(2)で計算する。具体的には、助走距離La
jは距離Lsr
jから距離Lse
jを減算したものとなる。図2に示すロボットコントローラ122のCPU401は、式(2)を用いて助走距離La
jを求める。
助走距離La
jが求まると、位置54
jを算出することができる。まず、延伸する方向を定めるため、CPU401は、単位ベクトルPdir
jを、式(3)を用いて求める。ここで、式(3)の演算記号として、レーザ光の照射を開始する位置52
jをPs
j、レーザ光の照射を終了する位置53
jをPe
jとする。
式(3)の計算は、位置52
jを始点として位置53
jを終点とするベクトルを、そのベクトルを距離で除算する計算となる。すなわち、単位ベクトルPdir
jはビードの形成する進行方向を指した長さ1のベクトルとなる。CPU401は、単位ベクトルPdir
jと助走距離La
jを用いて、位置54
jを算出する。位置54
jの計算式を式(4)で示す。ここで演算記号として位置54
jを、助走を開始する位置としてPa
jで示している。
次に、第1の時間T1の経過によりロボット101の指令の位置が進む距離Lsrjと、第1の時間T1が経過した時点においてロボット101の応答遅れにより発生する距離Lsejの実際の計算方法について説明する。
距離Lsrjは、ロボットコントローラ122の生成するロボット101の軌道によって変化するが、速度指令が台形の場合は簡単に算出できる。例として速度指令が台形であって、かつ、加速時間Taが固定値である場合について説明する。
図18は、第3実施形態において移動する制御点の時間と速度との関係を示す図である。図18には、第1の時間T1の経過によりロボット101の指令の位置が進む距離Lsr
jを図示している。図18に示すハッチング部の面積が距離Lsr
jとなる。従って距離Lsr
jの計算式は式(5)となる。なお、目標速度Vw
jとはj番目の溶接箇所の目標の溶接速度である。
距離Lse
jの計算方法は、表1に示した制御系の型により変わる。ロボット101は、第1の時間T1の計時及び第2の時間T2
jの計時が完了するまで目標速度を維持するように制御する。従って、表1に示すように、ランプ入力r(t)=vtとなる。よって、2型の制御系の場合、距離Lse
jは0である。1型の制御系の場合、距離Lse
jはv/Kである。0型の制御系の場合、距離Lse
jは時刻tの関数となる。ロボット101の制御系としては、0型の制御系を採用することはほとんどないため、2型又は1型となる。ロボット101の制御系が1型の場合、距離Lse
jの計算式は、目標速度Vw
jを所定の定数Kvで割った式(6)となる。図2に示すロボットコントローラ122のCPU401は、式(6)を用いて、距離Lse
jを計算する。
以上、助走距離Lajを算出することができ、位置54jを算出することができる。これにより、第1の時間T1が経過した瞬間に、制御点が位置52jを実際に通過するようにできる。
同様に、減速距離Ldjの算出方法を説明する。減速距離Ldjを算出し、位置55jを算出することで、第2の時間T2jが経過した瞬間に、制御点が位置53jを実際に通過するようにできる。
図19は、第3実施形態における減速距離Ldjの算出方法を説明するための図である。減速距離Ldjを算出するには、第2の時間T2jが経過した瞬間にロボット101のいるべき位置から逆算する必要がある。図19には、第2の時間T2jが経過した瞬間を図示している。また、図19には、j番目の溶接箇所の例を図示している。
ベクトル56e
jは、第2の時間T2
jが経過した瞬間における実際の位置に対する指令の位置を示すベクトルである。ベクトル56e
jの始点が実際の位置、終点が指令の位置である。第2の時間T2
jが経過した瞬間に、制御点が実際に位置53
jにいる必要がある。第2の時間T2
jが経過した瞬間の実際の速度は、目標速度Vw
jと一致していることが望ましい。減速距離Ld
jは、第2の時間T2
jが経過した時点から指令の位置が位置55
jに到達して停止するまでに進む距離Ler
jと、第2の時間T2
jが経過した時点においてロボット101の応答遅れにより発生する距離Lee
jで表現できる。減速距離Ld
jは式(7)で計算する。具体的には、減速距離Ld
jは、距離Ler
jと距離Lee
jを加算したものとなる。図2に示すロボットコントローラ122のCPU401は、式(7)を用いて減速距離Ld
jを求める。
減速距離Ld
jが求まると、位置55
jを算出することができる。CPU401は、式(3)で求めた単位ベクトルPdir
jを用いて、位置55
jを式(8)で計算する。ここで演算記号として、位置55
jを、減速して停止する位置としてPd
jで示している。
次に、第2の時間T2jが経過した時点から指令の位置が位置55jに到達して停止するまでに進む距離Lerjと、第2の時間T2jが経過した時点においてロボット101の応答遅れにより発生する距離Leejの実際の計算方法について説明する。
距離Lerjはロボットコントローラ122が生成するロボット101の軌道によって変化するが、速度指令が台形の場合は簡単に算出できる。例として速度指令が台形であって、かつ、減速時間Tdが固定値である場合について説明する。
図20(a)及び図20(b)は、第3実施形態において第2の時間T2
jが経過した後のロボットコントローラ122の処理を説明するための図である。図20(a)には、第2の時間T2
jが経過した後に指令の速度VCが0になる例、即ち指令の位置を位置55
jに一旦停止させる例を図示している。指令の速度VCは一旦0となるが、すぐに加速を始めるため、実際の速度VRは0にはなっていない。従って、制御点は減速するものの停止せず次の溶接箇所へ向かう。図20(a)において、ハッチング部の面積が距離Ler
jである。従って、距離Ler
jの計算式は式(9)となる。
距離Lee
jの計算方法は、表1に示した制御系の型により変わる。2型の制御系の場合、距離Lse
jは0である。1型の制御系の場合、距離Lee
jは、目標速度Vw
jを所定の定数Kvで割ったものとなる。1型の制御系の場合、計算式は式(6)と同じであり、計算上はLee
j=Lse
jとなる。図2に示すロボットコントローラ122のCPU401は、式(10)を用いて、距離Lee
jを計算する。
なお、式(6)及び式(10)で使用する定数Kvは未知数である。従って、あらかじめ同定を行い、図2に示すロボットコントローラ122の記憶装置、例えばHDD404に記録する必要がある。同定方法は、例えば図16に示すような実験を行い、応答波形61を取得し、第1の時間T1が経過した際の応答波形61の値を求め、距離Lse
jの値とすればよい。具体的には目標速度Vw
jを、測定した距離Lse
jで除算すればよい。この計算は式(11)となる。
減速距離Ldjを算出する例として、位置55jにて指令の位置を停止させる例について説明したが、停止させない方法もある。図20(b)には、第2の時間T2j経過後に指令の速度VCが0になっていない例を図示している。これは、一般に連続補間動作と呼ばれている。生産性の観点では、図20(b)のように減速させず次の溶接箇所へ移動を行う連続補間動作を行った方がよい。連続補間動作を行った際の減速距離Ldjの求め方は、ロボットコントローラ122の軌道生成方法に依存するが、連続補間動作を行わないときの加減速開始位置が次の目標位置への補間動作の乗り換え位置となる場合は、式(9)の計算式のままでよい。次の目標位置への補間動作の乗り換え位置が異なる場合は軌道生成方法に合わせて式(9)を調整する必要がある。いずれにせよ、第2の時間T2j経過の瞬間まで、指令の速度VCを目標速度Vwjまで維持し、位置52jと位置53jを結んだ線から指令の位置が外れないようにする必要がある。また、ロボット101には応答遅れがあるため、指令の位置と実際の位置とは乖離する。従って、距離Leejを用いて補正する必要がある。
以上により、減速距離Ldjを算出することができ、位置55jを算出できるようになる。これにより、第2の時間T2jが経過した瞬間に、制御点が位置53jを実際に通過するようにできる。
なお、溶接箇所が複数ある場合は、各溶接箇所の距離Lse
jを測定し、平均値から定数Kvを計算してもよい。即ち、定数Kvは、式(11)の替わりに式(12)で計算してもよい。
以上、第3実施形態によれば、第1の時間T1の計時が完了したとき、及び第2の時間T2jの計時が完了したときにおいて、ロボット101の制御点、即ちレーザ光Lの焦点に、教示した点を通過させることができる。すなわち、レーザ照射開始時に、教示した溶接開始点である位置52jを制御点に高い位置精度で通過させることができる。同様にレーザ照射停止時に、教示した溶接終了点である位置53jを制御点に高い位置精度で通過させることができる。また、第3実施形態によれば、制御点が位置52j及び位置53jを通過する時に、制御点を目標速度Vwjで通過させることができる。
[第4実施形態]
次に、第4実施形態に係るレーザ溶接装置を用いたレーザ加工方法について説明する。第3実施形態では、ロボット101の応答遅れによって発生する距離Lsej及び距離Leejを、表1の制御系の型に従った式(6)及び式(10)を用いて求める方法について説明した。また、第3実施形態では、式(6)及び式(10)における定数Kvを、溶接箇所によらず同じ値とした。
ところが、ロボット101を動作させたとき、ロボットアーム111を伸ばした姿勢と、ロボットアーム111を縮めた姿勢とでは、ロボット101の慣性モーメントが異なるため、ロボット101の応答特性が変化する。従って、溶接箇所によらず同じ値の定数Kvを用いて距離Lsejと距離Leejを計算すると、誤差が生じることがある。そこで、第4実施形態では、距離Lsejと距離Leejを、溶接箇所ごとに予め求めておく方法を示す。
図21は、第4実施形態におけるコントローラ121とロボットコントローラ122との間の通信を示すシーケンス図である。図21には、溶接箇所ごとに距離Lsejを求めるシーケンスについて例示している。溶接運転を行う前に少なくとも1度、図21のシーケンスを実行し、距離Lsejを記憶装置、例えば図2に示すHDD404に記録する。このシーケンスは、位置52j、位置53j、及び目標速度Vwjのうちのいずれかが変更された場合に実行しなおす必要がある。図21中、STEPA1~STEPA7はコントローラ121の処理、STEPB1~STEPB6及びSTEPC1~STEPC3はロボットコントローラ122の処理である。
コントローラ121は、STEPA1において、ロボットコントローラ122の「TASK1」を起動する。コントローラ121は、STEPA2において、信号SBBを受信するまで待機する。コントローラ121は、STEPA3において、動作開始指令SAをオンする。コントローラ121は、STEPA4において、信号SBAを受信するまで待機する。コントローラ121は、STEPA5において、第1の時間T1を計時する。コントローラ121は、STEPA6において、ロボットコントローラ122の「TASK2」に距離Lsejを記録するタイミングを通知する信号SDAを送信する。コントローラ121は、STEPA7において、第2の時間T2jを計時する。コントローラ121は、再びSTEPA2において、信号SBBを受信するまで待機する。図21中の「LOOP」は、枠内の処理の繰り返しを意味する。繰り返し回数は溶接箇所の個数である。
ロボットコントローラ122の処理には、第1実施形態と第2実施形態で説明した処理に対応する「TASK1」の処理と、距離Lsejを記録するために新たに追加した「TASK2」の処理がある。
「TASK1」の処理は次の通りである。ロボットコントローラ122は、STEPB1において、「TASK2」を起動する。ロボットコントローラ122は、STEPB2において、信号SBBを送信する。ロボットコントローラ122は、STEPB3において、動作開始指令SAのオンを受信するまで待機する。ロボットコントローラ122は、STEPB4において、直線補間命令を実行し軌道Pjを払い出す。ロボットコントローラ122は、STEPB5において、直線補間命令又は関節補間命令を実行し、軌道Pjー(j+1)を払い出す。軌道Pjー(j+1)とは、軌道Pjの終点と軌道P(j+1)の始点とを結ぶ軌道である。ロボットコントローラ122は、STEPB6において、「TASK2」に全ての溶接箇所を巡回したことを通知する信号SEAを送信する。
「TASK2」の処理は、次の通りである。ロボットコントローラ122は、STEPC1において、コントローラ121からの信号SDAを受信するまで待機する。ロボットコントローラ122は、STEPC2において、指令の位置と実際の位置の2点を結ぶ線分の距離を取得する関数を呼び出して、距離Lsejの値をRAM404に格納する。ロボットコントローラ122は、再びSTEPC1において、コントローラ121からの信号SDAを受信するまで待機する。ロボットコントローラ122は、STEPC3において、RAM404に格納された各溶接箇所における距離Lsejの値をファイル化してHDD404に記録する。
信号SDAは、第1の時間T1の計時が完了したタイミングでコントローラ121からロボットコントローラ122に送信されるので、距離Lsejを測定することができる。ロボットコントローラ122の制御周期は、コントローラ121の制御周期に比べて長いが、制御系の型が1型であれば、図16に示す応答波形61の通り、距離Lsejは一定値に収束する。このため、第1の時間T1の計時が完了していれば概ね正確な値を測定できる。また、制御系の型が1型であれば、距離Lsejと距離Leejとを同じ値とすることができるため、HDD404に記録する値は距離Lsejのみで十分である。
溶接運転においては、HDD404に記録した距離Lsejと式(2)及び式(7)を用いれば、各溶接箇所における助走距離Laj及び減速距離Ldjを計算することができる。
第4実施形態によれば、溶接箇所ごとに距離Lsejを実測している。このため、ロボット101の慣性モーメントの影響を受けず、第1の時間T1経過時、及び第2の時間T2j経過時に、高い位置精度で制御点に位置52j及び位置53jを通過させることができる。
なお、STEPC2では、指令の位置と実際の位置の2点を結ぶ線分の距離を取得する関数を呼び出していたが、指令の位置と実際の位置を同じタイミングで取得できるのであれば、指令の位置と実際の位置とを取得して、その差を計算してもよい。
コントローラ121は、STEPA7において、レーザ光を照射する第2の時間T2jを計時するが、図21で示したシーケンスは距離Lsejを測定及び記録するためのシーケンスである。従って、実際に加工用のレーザ光を照射する必要はない。例えば加工用のレーザ光よりも強度の低いガイド光を照射するようにしてもよいし、レーザ光を照射しなくてもよい。
第4実施形態によれば、溶接箇所ごとに距離Lsejと距離Leejとを予め求めておく、即ち測定し記録しておくため、ロボット101の姿勢によって応答特性が変化しても、位置精度よく溶接を行うことができる。
[第5実施形態]
第4実施形態では距離Lsejと距離Leejを溶接箇所ごとに測定しHDDに記録する方法について説明したが、ロボットコントローラ122の応答遅れによって誤差が発生する場合がある。誤差とは、レーザ光の照射を開始する教示位置に対する第1の時間T1が経過した時点でのロボット101(制御点)の位置の誤差、つまり教示位置に対する実位置の誤差のことである。
そこで、第5実施形態では、式(2)及び式(7)ではなく、以下の式(13)及び式(14)の計算式によって、助走距離La
j、及び減速距離Ld
jを算出することで誤差を低減する。誤差の成分は、ロボット101の移動速度に比例した成分であるため、目標速度Vw
jと係数(定数)βを用いて表現することができる。
なお、式(13)及び式(14)で使用する定数βは、未知数である。従って、予め同定を行い、図2に示すロボットコントローラ122の記憶装置、例えばHDD404に記録する必要がある。定数βは、ロボットコントローラ122に依存する定数である。
図22は、第5実施形態における光位置センサの配置例を示す図である。図22に示すように、4つの光位置センサ130A,130B,130C,130Dが、ロボット101に隣接する壁に固定されている。光位置センサ130A,130B,130C,130Dは、PSD(Position Sensitive Detector)である。4つの光位置センサ130A,130B,130C,130Dに向かってレーザ光を照射することで、レーザ光が照射された位置を測定することができる。なお、加工用のレーザ光では、光位置センサ130A,130B,130C,130Dが破損することがあるため、加工用のレーザ光よりも強度の低いガイド光を照射するようにしてもよい。ガイド光を発生させる光源は、レーザ発振器103であってもよいし、不図示の発振器であってもよい。
定数βの同定は、次の手順で行う。まず、ユーザが教示する位置52j及び位置53jを光位置センサ130A,130B,130C,130Dの測定範囲内に設定する必要がある。例えば、光位置センサ130A,130B,130C,130Dを先に設置しておき、光位置センサ130A,130B,130C,130Dを基準に位置52j及び位置53jを教示する。教示点は実際の溶接点とは異なるが、定数βを同定する試験動作なので問題ない。jは溶接順を示すが、例えばj=1は光位置センサ130A、j=2は光位置センサ130Bなどのように対応付けしておく。また、教示完了時には教示位置にロボット101を静止させた状態でガイド光をONにして、位置52j及び位置53jの位置データを光位置センサ130A,130B,130C,130Dを用いて測定しておく。次に、第4実施形態で説明した通り、距離Lsej及び距離Leejを溶接箇所ごとに求めるシーケンスを実行する。次に、β=0を仮設定し、式(13)及び式(14)で助走距離Laj、及び減速距離Ldjを用いて溶接運転を実行する。
図23(a)及び図23(b)は、第5実施形態における測定結果を示すグラフである。図23(a)には、第5実施形態における光位置センサ130A,130B,130C,130Dのデータの例を図示している。光位置センサ130A,130B,130C,130Dを用いることで、ガイド光の平面上の位置を測定することができる。図23(a)に示す位置52j及び位置53jは、教示完了時にガイド光をONにして測定したデータである。図23(a)中、丸マークは、溶接運転を行ったときのガイド光の位置を示している。ガイド光の照射は、時間T1の間で1度だけであるが、光位置センサ130A,130B,130C,130Dの位置データは、サンプリングにより離散データとなる。
本実施形態では、教示した位置52jと溶接運転におけるレーザ光の照射の開始位置との差である距離Lpjを測定する。なお、位置の差の成分は、進行方向の成分と進行方向に90度直角な成分の2つに分けられるが、進行方向の成分のみを距離Lpjとして測定する。この測定を、複数の姿勢、複数の速度、複数のレーザ走査方向で行い、これらの測定結果を用いて定数βを同定する。
図23(b)には、第5実施形態における距離Lpと目標速度Vwとの関係を図示している。複数の姿勢、複数の速度、複数のレーザ走査方向で測定を行うと、距離Lpは目標速度Vwと強い相関を示す。この傾きを定数βとして決定する。以上の方法により、定数βを同定することができ、式(13)及び式(14)を用いて助走距離Laj及び減速距離Ldjを算出することができる。
第5実施形態によれば、ロボットコントローラ122の応答遅れによって生ずる誤差を低減することができ、位置精度よく溶接を行うことができる。
[第6実施形態]
第3実施形態から第5実施形態までは、第1の時間T1の経過により指令の位置が進む距離Lsrjと、応答遅れにより発生する距離Lsejとを用いて助走距離Lajを算出する場合について説明した。同様に、第2の時間T2jの経過後から指令の位置が位置55jに到達して停止するまでの距離Lerjと、第2の時間T2jが経過した瞬間の応答遅れにより発生する距離Leejとを用いて減速距離Ldjを算出する場合について説明した。しかし、第1の時間T1の計時完了時に、制御点の実際の位置を正確にロボットコントローラ122が測定できるならば、助走距離Lajを、教示した位置52jと、第1の時間T1の計時完了時の制御点の実際の位置を用いて求めることができる。
図24は、第6実施形態における助走距離Lajの算出シーケンスを示すフローチャートである。図25は、第6実施形態における減速距離Ldjの算出シーケンスを示すフローチャートである。
図24に示す助走距離Lajを算出する方法について説明する。図2に示すロボットコントローラ122のCPU401は、STEPD1において、初期値を助走距離Lajに代入(仮設定)する。初期値は、例えば式(5)を用いて計算した距離Lsrjとしてもよい。初期値として、十分に助走可能な値を設定しておくのが望ましい。
CPU401は、STEPD2において、例えば式(4)を用いて、位置54jを計算する。その後、溶接運転を行い、第1の時間T1が経過した時の制御点の実際の位置Psmjを取得する。
CPU401は、STEPD3において、教示した位置52
j(Ps
j)と実際の位置Psm
jとの差分Errs
jを算出する。差分Errs
jは、レーザ光の照射を開始する教示位置である位置52
j(Ps
j)に対する第1の時間T1が経過した時点でのロボット101(制御点)の位置である位置Psm
jの誤差である。差分Errs
jを求める方法には、2つの方法、即ち溶接方向の成分のみ利用する方法と、溶接方向に対して90度直角な成分も含める方法とがある。以下、溶接方向の成分のみ利用する方法について説明する。差分Errs
jの計算式は式(15)となる。すなわち、差分Errs
jは、教示した位置52
j(Ps
j)と実際の位置Psm
jとの差分ベクトルに対し、単位ベクトルPdir
jの内積を計算したものとなる。
CPU401は、STEPD4において、差分Errsjが全て閾値以下であれば(YES)、STEPD6を実行してシーケンスを終了する。STEPD4で用いる閾値は、記憶装置、例えばHDD404に予め設定された値であり、例えばユーザが設定してもよい。CPU401は、STEPD6において、各溶接箇所における助走距離Lajの値をファイル化してHDD404に記憶させる。
CPU401は、STEPD4において、いずれかの差分Errs
jが閾値より大きい場合(NO)、STEPD5を実行する。CPU401は、STEPD5において、閾値を超えた差分Errs
jに対して定数Ksを掛け、元の助走距離La
jの値に加算して助走距離La
jの値を更新する。この計算処理を式(16)に示す。CPU401は、STEPD5において助走距離La
jの計算を終了したら、STEPD2の処理を再度実行する。
以上の処理により、ロボットコントローラ122のCPU401は、差分Errsjが閾値よりも小さくなるように助走距離Lajを設定する。
図25に示す減速距離Ldjを算出する方法について説明する。図2に示すロボットコントローラ122のCPU401は、STEPE1において、初期値を減速距離Ldjに代入(仮設定)する。初期値は、例えば0とする。
CPU401は、STEPE2において、例えば式(8)を用いて、位置55jを計算する。その後、溶接運転を行い、第2の時間T2jが経過した時の制御点の実際の速度Vemjを取得する。
CPU401は、STEPE3において、目標速度Vw
jと実際の速度との差分Errve
jを算出する。差分Errve
jの計算式は、式(17)となる。ロボット101(制御点)の速度は3次元ベクトルであるので、目標速度も3次元ベクトルで評価する必要がある。目標速度をベクトル化するには、スカラー量である目標速度Vw
jに単位ベクトルPdir
jを乗算すればよい。実際の速度Vem
jのベクトルから目標速度のベクトルを減算することで、目標速度に対する実際の速度の誤差である差分Errve
jのベクトルが求まる。
CPU401は、STEPE4において、差分Errvejの大きさ(絶対値)が、全て閾値以下であれば(YES)、STEPE6を実行してシーケンスを終了する。STEPE4で用いる閾値は、記憶装置、例えばHDD404に予め設定された値であり、例えばユーザが設定してもよい。CPU401は、STEPE6において、各溶接箇所における減速距離Ldjの値をファイル化してHDD404に記憶させる。
CPU401は、STEPE4において、いずれかの差分Errve
jの大きさが閾値より大きい場合(NO)、STEPE5を実行する。CPU401は、STEPE5において、閾値を超える溶接箇所に対してのみ、減速距離Ld
jを定数Ke分だけ増加させる。この計算処理を式(18)に示す。CPU401は、STEPE5において減速距離Ld
jの計算を終了したら、STEPE2の処理を再度実行する。
以上の処理により、ロボットコントローラ122のCPU401は、差分Errvejの大きさが閾値よりも小さくなるように減速距離Ldjを設定する。
以上、図24及び図25に示すシーケンスによって、助走距離Laj及び減速距離Ldjを算出することができる。なお、式(16)の定数Ksは、1としてもよいが、差分Errsjが閾値以下に収束しなければ、1よりも小さい値に変更してもよい。式(18)の定数Keは、式(9)を用いて距離Lerjを計算しその10分の1程度の値を設定してもよい。
また、ロボット101は、減速機の入力軸に設けられたエンコーダEn1,…,En6(図2)を備えており、各関節の角度を測定可能としているが、減速機の出力軸にエンコーダが設けられていてもよい。減速機の出力軸に設けられたエンコーダを用いることで、各関節の角度を直接測定することができる。よって、各関節の角度情報から位置Psmjを求めれば、位置精度よく溶接を行うことができる。
また、図24の助走距離Lajの決定シーケンスを実行した後、図25の減速距離Ldjの決定シーケンスを実行するのが望ましい。また、図24及び図25のシーケンスの実行中は加工用のレーザ光を照射する必要はないので、加工用のレーザ光の替わりにガイド光を照射するか、又はレーザ光の照射を行わないのが望ましい。また、実際の速度Vemjを直接取得できない場合、第2の時間T2jの計時完了時のサンプルとその直前のサンプルの合計2つサンプル分の実際の位置を取得し、その差分をサンプリング周期で除算して、速度Vemjを求めてもよい。
第6実施形態によれば、制御点を位置52j(Psj)に直接位置合わせするため位置精度よく溶接を行うことができる。また、実際の速度Vemjを確認して減速距離Ldjを決定するため、無駄に時間を消費せず、効率的に溶接を行うことができる。
また、第3実施形態の式(5)及び式(9)の計算が困難な場合、即ちロボットコントローラ122が生成する軌道が、台形の速度指令ではない場合や条件によって変動する場合、第6実施形態のように助走距離Lajと減速距離Ldjを設定してもよい。この場合、実際の位置Psmj及び実際の速度Vemjを使用しなくてもよく、これらの替わりに第1の時間T1の計時完了時の指令の位置と第2の時間T2jの計時完了時の速度の指令を計算に用いてもよい。
[第7実施形態]
第3実施形態から第6実施形態までは助走距離Lajの算出方法を説明し、位置54jを求めることで、第1の時間の計時が完了したときにロボット101(制御点)に位置52jを通過させる方法について説明した。また、同様に減速距離Ldjの算出方法を説明し、位置55jを求めることで、第2の時間の計時が完了したときにロボット101(制御点)に位置53jを通過させる方法について説明した。しかし、溶接箇所から溶接箇所への移動が高速である場合、ロボットに振動が発生し、ビードが曲線になる、又は制御点が等速で溶接箇所を通過できなくなるなどの問題が発生することがあった。第7実施形態では、この振動を抑制する方法について説明する。
図26(a)は、参考例としてロボットに振動が発生している状態で制御点が辿る経路51を説明するための図である。ロボットに振動が発生すると、制御点が、位置52j又は位置53jを通過しないことがある。また、ロボットに振動が発生すると、溶接ビードが曲線になることがある。図26(a)には、制御点が位置52jを通過せず、かつ、溶接ビードが曲線になる一例を図示している。
図26(b)は、参考例として移動する制御点の時間と速度との関係を示す図である。ロボットに振動が発生すると、レーザ光を照射している第2の時間T2jの計時を行っている間に、制御点の速度が目標速度Vwjとならず振動的になることがある。第7実施形態では、ロボットの振動を抑制するために、溶接箇所から溶接箇所へ移動するときの減速時の加速度αを調整する。図26(b)には、指令の速度VCとして、減速時の加速度αが100%の場合と、加速度αがその半分の50%の場合を例に図示している。また、図26(b)には、同期信号SBAを送信したタイミングを時間の基準として図示している。
加速度αの具体的な調整方法について説明する。図27は、第7実施形態における加速度を決定するシーケンスを示すフローチャートである。図27に示すシーケンスは、溶接箇所から溶接箇所へ移動するときの減速時の加速度αを決定するシーケンスを図示している。図27に示すシーケンスは、実際に加工対象物にレーザ加工する本動作の前の試験動作において実行する。試験動作では、実際に加工対象物にレーザ加工する本動作を模してロボット101を動作させる。
図2に示すロボットコントローラ122のCPU401は、STEPF1において、加速度αのリストをHDD404のファイルから読み込む。例えば、加速度αが100%、80%、60%、40%、20%の5パターンのリストなどである。CPU401は、STEPF2において、加速度αのリストから1つの値を設定して、試験的に溶接を行う試験動作をロボット101に行わせる。STEPF2では、複数の溶接箇所それぞれの加速開始位置に制御点を移動させる動作を、設定された加速度αで実行する。
CPU401は、STEPF3において、加速度αのリストをすべて実行したかチェックする。CPU401は、STEPF3において、加速度αのリストをすべて実行していない場合(NO)、STEPF2の処理に戻る。例えば加速度αのリストが100%、80%、60%、40%、20%の5パターンであれば、試験動作を、加速度αを100%から20%まで順番に変更して実行することで、STEPF2の処理を5回実行する。CPU401は、STEPF3において、加速度αのリストをすべて実行した場合(YES)、STEPF4の処理を実行する。
CPU401は、STEPF4において、ロボットの振動を評価するシーケンスを実施し、加速度αの値に対するOK/NGを判定する。OK/NGの判定は、溶接箇所ごとに行う。表2に判定結果の例を示す。表2の例では、1番目の溶接箇所については加速度100%がNGで、80%、60%、40%、20%がOKである。
CPU401は、STEPF5において、溶接箇所ごとに加速度αの値を決定する。即ち、CPU401は、加速度αとして、各溶接箇所においてSTEPF4の判定においてOKであった値の中から選ぶ。加速度αとして、各溶接箇所においてSTEPF4の判定においてOKであった値の中から、最も大きな加速度αの値を選ぶのが好ましい。例えば表2の場合、CPU401は、1番目の溶接箇所については80%、2番目の溶接箇所については40%、3番目の溶接箇所については60%の値を選ぶ。
CPU401は、STEP6において、各溶接箇所に対応付けられた加速度αの値を、HDD404に記憶させる。以上、CPU401は、試験動作時に発生したロボット101の振動に基づき、本動作においてレーザヘッド102を加速させる動作を開始する位置にロボット101(制御点)を動作させるときの加速度αを、溶接箇所ごとに調整しておく。
なお、図27に示したシーケンスのSTEPF2における試験動作においては、レーザ光の照射を行う必要はないので、レーザ光を照射しない、又は加工用のレーザ光の替わりにガイド光の照射を行うのが望ましい。
以上、第7実施形態によれば、溶接箇所から次の溶接箇所へ制御点を移動させるときの減速時の加速度αを、ロボット101の振動が許容範囲内となるように、溶接箇所ごとに本動作の前に調整しておくので、加工効率が向上する。即ち、加工に必要な位置精度及び速度精度を満たしつつ、溶接箇所から次の溶接箇所へ制御点を高速に移動させることができる。
[第8実施形態]
第7実施形態では、溶接箇所から次の溶接箇所へ制御点を移動させるときの減速時の加速度αを、ロボット101の振動が許容範囲内となるように調整する方法について説明した。第8実施形態では、ロボット101の振動の評価方法の一例について具体的に説明する。図28(a)、図28(b)及び図28(c)は、第8実施形態においてロボットの振動を評価する方法を説明するための図である。
図28(a)に示すように、溶接ビードの形成位置は、ユーザがレーザ光の照射を開始する教示位置である位置52jと、レーザ光の照射を終了する教示位置である位置53jとを教示することによって決定する。位置52j及び位置53jを結んだ線分LSjと、実際にレーザ光を照射して形成される溶接ビードの位置とが大きく異なると、位置精度の観点から問題となる。
そこで、図2に示すCPU401は、レーザ光の照射を行う第2の時間T2j中、ロボット101の制御点の位置座標を、例えば、ロボット101の各関節の角度から順運動学計算により取得して、その位置座標に基づき、ロボット101の振動の評価を行う。
ロボットコントローラ122のCPU401は、第2の時間T2j中、制御点が移動することにより時系列の複数の位置座標を取得する。そして、CPU401は、複数の位置座標が所定の領域内に収まるかどうかを判定する。CPU401は、全ての位置座標が所定の領域内に収まれば、「OK」と判定し、そうでなければ「NG」と判定する。所定の領域は、線分LSjを含むようにユーザが任意に設定可能である。本実施形態では、図28(a)、図28(b)及び図28(c)に示すように、所定の領域である許容領域R1,R2,R3を設定している。図28(a)に示す許容領域R1は、線分LSjを中心軸とする半径Rの円筒の領域である。図28(b)に示す許容領域R2は、位置52jを中心とする半径Rの球の領域である。図28(c)に示す許容領域R3は、位置53jを中心とする半径Rの球の領域である。CPU401は、各位置座標が、領域R1,R2,R3のうちいずれかの領域に収まっていれば、「OK」判定とする。CPU401は、複数の位置座標のうち、一つでも領域外の位置座標があれば「NG」判定とする。
なお、ロボット101の振動が、ロボット101の制御点の進行方向と概ね一致している場合、制御点の速度の振動として現れる。振動周期が長い場合、レーザ光の照射を行う第2の時間T2j中の制御点の速度は、速度の振動の一部を切り取ることとなる。すると、切り取った区間の速度は、目標速度Vwjと比べて遅くなる場合がある。制御点の速度が遅い場合、前述の所定の領域内に、制御点の位置座標が収まっていても、溶接ビードが短くなる。そこで、CPU401が、取得した、第2の時間T2j中の制御点の時系列の位置座標データの差分値を計算し、その差分値をサンプリング時間で除算して制御点の時系列の速度データにする。その後、時系列の速度データの平均値を計算することで、制御点の平均速度を算出する。制御点の平均速度と目標速度Vwjとの差分の絶対値が、所定値以下であれば「OK」判定し、所定値を超えていれば「NG」判定するようにしてもよい。即ち、ロボットの振動の発生の有無の判定として、目標速度Vwjと、第2の時間の計時中の制御点の平均速度との、差分の絶対値が、所定値以下に収まることを判定してもよい。
加速度αの調整は、第7実施形態と同様である。以上、CPU401は、線分LSjを含む所定の領域内に複数の位置座標が収まるように、加速度αを調整しておく。加速度αを溶接箇所ごとに本動作の前に調整しておくので、本動作においてはレーザ光による加工跡は、所定の領域内に収まる。即ち、加工に必要な位置精度及び速度精度を満たしつつ、溶接箇所から次の溶接箇所へ制御点を高速に移動させることができる。
なお、ロボット101においては、減速機が弾性変形する。したがって、減速機の出力軸にエンコーダを設けておけば、エンコーダの出力値に減速機の弾性変形による誤差が重畳するのを防止できる。したがって、減速機の出力軸に設けられたエンコーダの出力値から制御点の位置座標を計算するようにしてもよい。
CPU301がレーザ光を照射/停止させるタイミングを、CPU401が取得する方法としては、コントローラ121から第1の時間T1の計時完了時、及び、第2の時間T2jの計時完了時に信号を送信させる方法がある。他に、ロボットコントローラ122が特殊なコマンドを実行する方法、ロボットコントローラ122が第1の時間T1と第2の時間T2jを計時する方法などがある。また、振動の有無の判定をカメラで撮影し画像処理で行うこともできる。その場合、ロボット101はカメラを支持する。まず、第7実施形態のシーケンスを実行する。画像処理を用いる場合、第7実施形態のシーケンスでの試験動作は、実際の照射を伴う試験加工である。試験加工終了後、各溶接箇所をロボットで巡回し溶接ビードを撮影しHDD404に画像として記録する。すなわち、溶接箇所ごとに、加速度αのリストに対応した溶接ビードの画像をHDD404に記録する。加速度αが小さいときは振動が抑制される。従って、溶接点ごとに、加速度αのリストに対応した溶接ビードの画像を比較することで、振動の有無を判定する。具体的には、溶接箇所ごとに、加速度αを最も小さい値に設定したときの溶接ビード画像と、その他の加速度αを設定したときの溶接ビード画像を、比較することで振動の有無を判定する。例えば、各画像について、2値化処理を行い、溶接ビード部分とそれ以外の部分に分離する。その後、溶接ビード部分の重心を求め重心のX、Y座標を求める。ここで、X、Y座標とは、画像の左下を(0、0)とする画像の座標系を意味する。その後、加速度αを最も小さい値に設定したときの溶接ビード画像の重心と、その他の加速度αを設定したときの溶接ビード画像の重心の、距離を算出する。距離が一定の閾値より大きいとき、「NG」と判定し、閾値以下であれば「OK」と判定する。以上により振動の有無の判定をカメラで撮影し画像処理で行うことができる。
[第9実施形態]
第9実施形態では、ロボット101の振動の評価方法の第8実施形態とは別の例について、具体的に説明する。図29は、第9実施形態おけるコントローラ121とロボットコントローラ122との間の通信を示すシーケンス図である。図29には、ロボット101の振動の評価方法を示すシーケンスの一例を図示している。なお、図29において、図21と同様のステップについては、同一符号を付して説明を省略する。
図2に示すCPU401は、図29のSTEPB5において、制御点を溶接箇所から次の溶接箇所へ移動させる。第2実施形態から第8実施形態では、CPU401は、図21に示すように、STEPB5の処理が終了するとSTEPB2の処理である信号SBBの送信を行っていた。第9実施形態では、CPU401は、図29に示すように、STEPB5の処理が終了するとSTEPB7の処理を実施するようにする。CPU401は、STEPB7において、制御点の整定待ちを行う。STEPB5において、軌道データの払い出しが完了、すなわち、指令の位置が位置54jに到達するとSTEPB5は終了する。しかし、制御点は位置54jに到達していない。そこで、STEPB7を実行することで、制御点が振動なく、位置54jに到達したことを確認する。
本実施形態では、例えば図7に示すロボットプログラム422Aに整定待ちを実行するコマンドを記述することで、ロボット101の振動の有無を判定することができる。図29のSTEPB7においては、CPU401は、整定待ちコマンドを実行する。整定待ちコマンドは、指令の位置と実際の位置との差分が閾値以内である状態がパラメータで設定した一定時間持続すると終了する。CPU401は、整定待ちコマンドの実行前から実行完了までの時間を測定することで、ロボット101の振動の有無を簡易的に判別できる。例えば、所定の時間よりも短時間で整定待ちコマンドが終了すれば振動なし、所定の時間よりも長時間で整定待ちコマンドが終了すれば、振動ありとなる。なお、溶接を実際に行う際にはSTEPE7の整定待ちは実施しない。即ち、以上のステップは、本動作の前の試験動作として行う。そして、CPU401は、ロボット101の振動ありと判定した場合には、加速度αを低下させる調整を行う。
以上、CPU401は、試験動作として、レーザヘッド102を加速させる動作を開始させる位置(位置54j)へロボット101の指令の位置を移動させた時点からロボット101の制御点が整定するのに要した時間により、加速度αを調整する。
第9実施形態によれば、複雑な処理を必要とせず簡易的な方法で、ロボット101の振動の有無を判別することができ、簡単に加速度αを調整することができる。
なお、上述の第1~第9実施形態において、ロボット101が直線補間命令に従って動作している途中に、異常が発生する場合がある。ロボットコントローラ122は、コントローラ121に対して、ロボット101の状態を示す信号を周期的に送信すればよい。コントローラ121は、ロボット101が異常状態であることを示す信号を受信した場合、レーザ光を発振しないようにレーザ発振器103を制御すればよい。
また、上述の第1~第9実施形態において、ロボットコントローラ122が、コントローラ121に対してレーザ発振を許可する許可信号を送るようにしてもよい。例えば、ロボットコントローラ122が、直線補間命令によって軌道データPjの払い出しを実行中であるときに、許可信号をオンする。コントローラ121は、許可信号とレーザ発振指令とをAND演算し、演算結果をレーザ発振器103に送信するようにしてもよい。これにより、ロボットコントローラ122が許可信号をオンしなければ、レーザ光は発振されないようになる。このAND演算はコントローラ121が行うが、別の電子回路で処理してもよい。
また、上述の第1~第9実施形態において、ロボット101は、レーザ光が人間に暴露しないように、遮光されたブース内(図示せず)に設置されているのが好ましい。人がブースへ入室するための扉を開くと、レーザ発振器103のレーザ発振が停止するようになっている。また、光ファイバケーブル151がレーザヘッド102及びレーザ発振器103と正しく接続されていない場合には、光ファイバケーブル151内の導線が接続されず、レーザ発振器103のレーザ発振が停止するようになっている。また、光ファイバケーブル151に一定以上の曲げが加わると内部の導線が切れ、レーザ発振器103のレーザ発振が停止するようになっている。また、セーフティレーザスキャナやセーフティライトカーテンなどで人間を感知して、レーザ発振器103のレーザ発振を停止するようにすることも可能である。また、ロボットコントローラ122やコントローラ121がなんらかの原因によって応答しなくなった場合に備えて、外部のハードウェアによって監視してレーザ発振を停止することも可能である。例えば、ロボットコントローラ122やコントローラ121から一定周期ごとにオン/オフする信号を出力し、出力された信号が一定時間変化しなければレーザ発振を止めればよい。
また、上述の第1~第9実施形態では、制御装置120が、コントローラ121とロボットコントローラ122とで構成される場合について説明したが、これに限定するものではない。コントローラ121とロボットコントローラ122との機能を併せ持つことが可能であれば、制御装置を1つのコンピュータで実現してもよい。例えば、複数のプロセッサ、又はプロセッサが有する複数のコアにより並列処理が可能であれば、制御装置を1つのコンピュータで実現することは可能である。
また、上述の第1~第9実施形態では、ロボット101が、垂直多関節のロボットの場合について説明したが、これに限定するものではない。ロボットが、例えば水平多関節のロボット、パラレルリンクのロボット、又は直交ロボット等のロボットであってもよい。
また、上述の第1~第9実施形態では、レーザ加工装置がレーザ溶接加工を行う場合について説明したが、これに限定するものではなく、例えばレーザ溝あけ加工又はレーザ切断加工を行う場合であってもよい。
また、上述の第1~第9実施形態では、レーザ溶接装置がレーザヘッド102を1つ備えている場合について説明したが、これに限定するものではない。即ち、レーザ溶接装置がレーザヘッド102を複数備えていてもよい。この場合、レーザ溶接装置は、複数のレーザヘッド102を個別に移動させることができるよう、ロボット101も複数備えていればよい。
[第10実施形態]
図30は、第10実施形態に係るレーザ加工装置の一例であるレーザ溶接装置100Bの概略構成を示す説明図である。図1と同一の構成要素には同一の参照符号を付与することにする。レーザ溶接装置100Bは、複数のロボット1011,1012,…,101N(Nは2以上の正の整数)を含むロボット装置110、複数のレーザヘッド1021,1022,…,102N、及び光源の一例である1台のレーザ発振器103を備える。また、レーザ溶接装置100Bは、切替器104及び制御装置120Bを備える。制御装置120Bは、装置全体の制御、具体的にはロボット装置110の動作、レーザ発振器103におけるレーザ光の発生又は停止、及び切替器104の切り替え動作を制御する。制御装置120Bは、第1のコントローラの一例であるコントローラ121Bと、複数の第2のコントローラの一例である複数のロボットコントローラ1221,1222,…,122Nとを有する。ロボット1011,1012,…,101Nは、マニピュレータである。
切替器104とレーザヘッド1021,1022,…,102Nとは、レーザ光の光路となる光ファイバケーブル1511,1512,…,151Nで接続されている。切替器104とレーザ発振器103とは、光ファイバケーブル152で接続されている。レーザ発振器103とコントローラ121Bとは、互いにデジタル信号の通信が可能にケーブル153で接続されている。切替器104とコントローラ121Bとは、互いにデジタル信号の通信が可能にケーブル154で接続されている。
ロボットアーム1111,1112,…,111Nとロボットコントローラ1221,1222,…,122Nとは、動力線及び信号線を有するケーブル1551,1552,…,155Nで接続されている。コントローラ121Bとロボットコントローラ1221,1222,…,122Nとは、互いにデジタル信号の通信が可能にケーブル1561,1562,…,156Nで接続されている。
レーザ発振器103は、連続発振レーザ又はパルス発振レーザであり、レーザ発振によりレーザ光を発生する。レーザ発振器103にて発生されたレーザ光は、光ファイバケーブル152を介して切替器104に送られる。切替器104は、複数のレーザヘッド1021,1022,…,102Nのうちいずれかのレーザヘッドに、レーザ発振器103にて発生させたレーザ光を光ファイバケーブル1511,1512,…,151Nを介して導くよう光路を切り替えるものである。具体的に説明すると、切替器104は、複数のミラー1141,1142,…,114Nを有し、ミラー1141,1142,…,114Nを動作させて、各レーザヘッド1021,1022,…,102Nに時分割でレーザ光を導くよう光路を切り替える。よって、レーザ発振器103を複数用意する必要が無く、コスト削減になる。
レーザヘッド1021,1022,…,102Nは、切替器104により導かれたレーザ光L1,L2,…,LNを出射する。レーザヘッド1021,1022,…,102Nから出射されたレーザ光L1,L2,…,LNの焦点は、レーザヘッド1021,1022,…,102Nに対して所定距離の位置に結ばれる。コントローラ121Bは、レーザ発振器103におけるレーザ光の発生又は停止、及び切替器104の切り替え動作を制御する。即ち、コントローラ121Bは、レーザ発振器103にレーザ光の発生又は停止をケーブル153を介して指令する。
本実施形態ではロボット1011,1012,…,101Nは同一構成である。ロボット装置110のロボット101iは、例えば垂直多関節のロボットである。iは、1~Nの整数であり、ロボットに付与した通し番号でもある。ロボット101iは、ロボットアーム111iと、ロボットアーム111iに取り付けられたエンドエフェクタの一例であるロボットハンド112iとを有する。ロボット101iは、レーザヘッド102iを支持する。本実施形態では、ロボット101iは、ロボットハンド112iがレーザヘッド102iを把持することで、レーザヘッド102iを支持する。なお、例えばレーザヘッド102iをロボットアーム111iの先端又はロボットハンド112iに取り付けて、ロボット101iにレーザヘッド102iを支持させてもよい。
レーザヘッド102iがロボット101iに支持されているので、ロボット101iを動作させることにより、レーザヘッド102iを所望の位置及び姿勢に移動させることができる。ロボット101iを動作させてレーザヘッド102iを所望の位置及び姿勢に移動させることにより、レーザ光Liの焦点を空間における所望の位置に移動させることができる。レーザ光Liの焦点を、加工対象物Wにおいて溶接ビードを形成させる位置に合わせることにより、加工対象物Wをレーザ光Liで溶接加工することができる。このように、複数のロボット1011,1012,…,101Nを含むロボット装置110は、複数のレーザヘッド1021,1022,…,102Nを個別に移動させることができる。なお、加工対象物Wを加工することで、加工品が得られる。
本実施形態では、制御装置120Bがレーザ発振器103、ロボット装置110、及び切替器104を制御して、レーザシーム溶接を行う。レーザシーム溶接においては、レーザ光Liとして連続波を用いるものと、パルス波を用いるものとがあるが、いずれであってもよい。レーザシーム溶接では、レーザ光Liで加工対象物Wの表面を走査する必要がある。本実施形態では、ガルバノミラーを用いず、ロボット101iに支持されたレーザヘッド102iを移動させながらレーザ光Liを出射し、レーザ光Liで加工対象物Wの表面を走査して、レーザ溶接加工する。ガルバノミラーを省略した分、コスト削減になる。
加工対象物Wにおいて、1つのロボット101i、即ち1つのレーザヘッド102iで溶接を行う溶接箇所は1つでもよいが、本実施形態では複数あるものとして説明する。また、複数のロボット1011,1012,…,101N、即ち複数のレーザヘッド1021,1022,…,102Nには、説明の便宜上、i=1~Nの通し番号を付している。以下、1からNの順番に切り替えて、溶接箇所を1つずつ順番にレーザ溶接加工する場合について説明する。例えば、第1のロボットをロボット1011、第1のレーザヘッドをレーザヘッド1021とした場合、次に動作させる第2のロボットはロボット1012、次にレーザ光を導く第2のレーザヘッドはレーザヘッド1022ということになる。
図31は、第10実施形態におけるレーザ溶接装置100Bの制御系の一例を示すブロック図である。図2と同一の構成要素には同一の参照符号を付与することにする。コントローラ121Bは、例えば汎用コンピュータで構成され、プロセッサの一例であるCPU(Central Processing Unit)301を有する。また、コントローラ121Bは、CPU301を動作させる基本プログラム等が格納されたROM(Read Only Memory)302、及びCPU301の作業領域としてのRAM(Random Access Memory)303を有する。また、コントローラ121Bは、記憶装置の一例であるHDD(Hard Disk Drive)304と、ディスクドライブ305とを有する。ディスクドライブ305は、記録媒体の一例である記録ディスク323に記録されたプログラム等を読み出すことができる。
また、コントローラ121Bは、インタフェース(I/F)3111,3112,…,311N、インタフェース(I/F)312及びインタフェース(I/F)313を有する。これらCPU301、ROM302、RAM303、HDD304、ディスクドライブ305、I/F3111,3112,…,311N、I/F312及びI/F313は、バス310で互いに通信可能に接続されている。I/F312には、ケーブル153でレーザ発振器103が接続されている。I/F313には、ケーブル154で切替器104が接続されている。
CPU301には、クロック発生回路313が接続されている。CPU301は、クロック発生回路313にて発生されたクロック信号に同期して動作する。つまり、CPU301の動作周波数は、クロック発生回路313のクロック信号によって決まる。
HDD304には、CPU301に計時処理を行わせたり、CPU301に信号の送受信処理を行わせたりする、装置全体のシーケンスを管理するよう構成された制御プログラム321が記憶(記録)されている。CPU301は、制御プログラム321に従って、計時処理や信号の送受信処理等の各種の処理を実行する。また、HDD304には、第1の時間T1、第2の時間T2j,i及び第3の時間T3などの時間のデータを含む各種のデータ322が記憶(記録)される。なお、データ322は、制御プログラム321に組み込まれていてもよい。
ここで、第1の時間T1は、溶接箇所においてレーザヘッド102jが等速となるように溶接箇所に向かってレーザヘッド102iを加速させるのに要する時間である。また、第2の時間T2j,iは、溶接箇所においてレーザヘッド102jがレーザ光を照射するのに要する時間である。iは、上述したように、1~Nの正の整数であって、ロボット、レーザヘッド等に付与した通し番号であり、動作させる順番に対応する。jは、正の整数であり、溶接箇所に対応付けて付与した通し番号であり、溶接する順番でもある。即ち、第2の時間T2j,iは、ロボット101iに支持されたレーザヘッド102iおいて溶接されるj箇所目の溶接箇所にレーザ光を照射するのに要する時間である。また、第3の時間T3は、切替器104において切り替え動作に要する時間である。以下、符号に下付きで付与する(j,i)は、i番目のロボット101i(レーザヘッド102i)におけるj箇所目の溶接箇所を意味する。
CPU301は、制御プログラム321を実行することにより、ソフトウェアタイマとして機能する。具体的には、CPU301は、第1の時間T1を計時するタイマと、第2の時間T2j,iを計時するタイマとして機能する。また、CPU301は、第2の時間T2j,iと第3の時間T3との合計時間(T2j,i+T3)を計時するタイマとして機能する。また、CPU301は、制御プログラム321を実行することにより、レーザ発振器103にレーザ発振指令SR1(信号)を送信してレーザ発振器103を制御する。また、CPU301は、制御プログラム321を実行することにより、切替器104に切替信号SSを送信して、切替器104を制御する。さらに、CPU301は、制御プログラム321を実行することにより、ロボットコントローラ122iに、ロボット101iの動作開始を指示する動作開始指令(所定の指令)SAiを送信する。
なお、制御プログラム321が記録される記録媒体は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラム321を供給するための記録媒体としては、図31に示すROM302,記録ディスク323、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、DVD-ROMやCD-ROM、ブルーレイ等の光ディスク、磁気ディスク、磁気テープ、半導体メモリ等を用いることができる。
ロボットコントローラ122iは、ロボット101iの制御を行う専用のコンピュータである。なお、図31においては、ロボット101iとして、ロボットアーム111iの制御系について図示し、ロボットハンド112iの制御系については図示を省略している。ロボットコントローラ122iは、プロセッサの一例であるCPU401i、CPU401iを動作させる基本プログラム等が格納されたROM402i、及びCPU401iの作業領域としてのRAM403iを有する。また、ロボットコントローラ122iは、記憶装置の一例であるHDD404iを有する。
また、ロボットコントローラ122iは、サーボ演算部の一例であるFPGA416i、及び電流アンプ417iを有する。ロボットコントローラ122iは、インタフェース(I/F)411iを有する。CPU401i、ROM402i、RAM403i、HDD404i、FPGA416i、I/F411iは、バス410iで互いに通信可能に接続されている。また、コントローラ121BのI/F311iとロボットコントローラ122iのI/F411iとがケーブル156iで接続されている。
CPU401iには、クロック発生回路414iが接続され、FPGA416iには、クロック発生回路415iが接続されている。CPU401iは、クロック発生回路414iにて発生されたクロック信号に同期して動作し、FPGA416iは、クロック発生回路415iにて発生されたクロック信号に同期して動作する。つまり、CPU401iの動作周波数は、クロック発生回路414iのクロック信号によって決まり、FPGA416iの動作周波数は、クロック発生回路415iのクロック信号によって決まる。
HDD404iには、プログラム421i、及びロボットプログラム422iが記憶(記録)されている。
ロボットアーム111iは、各関節を駆動する複数(例えば6つ)のモータM1i,…,M6iと、モータM1i,…,M6iの回転角度(回転位置)を検知する位置センサの一例である複数(例えば6つ)のエンコーダEn1i,…,En6iと、を有する。また、ロボットアーム111iは、エンコーダEn1i,…,En6iに接続され、電子回路で構成された検出回路115iを有する。
以上の構成で、コントローラ121B、具体的にはCPU301は、I/F312からレーザ発振指令(信号)SR1をレーザ発振器103に送信する。レーザ発振指令SR1を受信したレーザ発振器103は、レーザ発振指令SR1に従い、レーザ光を発生するように動作する。具体的には、コントローラ121Bは、レーザ発振指令SR1として、レーザ発振器103にレーザ光の発生を指令するときには電気信号の電圧をローレベルからハイレベルに切り替えて、I/F312から送信する。電気信号の電圧をハイレベルにする場合、レーザ発振指令SR1をオンにするともいう。また、コントローラ121Bは、レーザ発振器103にレーザ光の停止を指令するときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、レーザ発振指令SR1をオフにするともいう。したがって、レーザ発振器103は、レーザ発振指令SR1がオンのときにはレーザ光を発生させ、レーザ発振指令SR1がオフのときにはレーザ光を停止させる。
また、レーザ発振器103は、レーザ光を発生していることを示す信号SR2をコントローラ121Bに送信する。具体的には、レーザ発振器103は、信号SR2として、レーザ光を発生しているときには電圧がハイレベルの電気信号をコントローラ121Bに送信する。電気信号の電圧をハイレベルにする場合、信号SR2をオンにするともいう。また、レーザ発振器103は、レーザ光の発生を停止しているときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、信号SR2をオフにするともいう。
更に、コントローラ121B、具体的にはCPU301は、I/F313から切替信号SSを切替器104に送信する。切替信号SSは、それぞれのレーザヘッド102iに割り当てられた固有の符号となる複数のビット(ビット列)からなるデジタル信号である。切替信号SSを受信した切替器104は、切替信号SSのビット列に応じて、光路の切り替えを行う。
更にまた、コントローラ121B、具体的にはCPU301は、I/F311iからロボット101iの動作開始を指示する動作開始指令(所定の指令)SAiをロボットコントローラ122iに送信する。具体的には、コントローラ121Bは、ロボット101iの動作を開始するよう動作開始指令SAiを指令するときには、電圧がハイレベルの電気信号をロボットコントローラ122iへ送信する。電気信号の電圧をハイレベルにする場合、動作開始指令SAiをオンにするともいう。また、コントローラ121Bは、動作開始指令SAiを示す電気信号の電圧をハイレベルにした後、所定のタイミングでローレベルとする。電気信号の電圧をローレベルにする場合、動作開始指令SAiをオフにするともいう。
ロボットコントローラ122iは、動作開始指令SAiを受信して、ロボットプログラム422iに従ってロボット101iの動作を制御する。即ち、ロボットコントローラ122iは、動作開始指令SAiを監視しており、動作開始指令SAiがオフからオンに切り替わると、レーザヘッド102iでレーザシーム溶接を行うためにレーザヘッド102iを加速させる動作をロボット101iに開始させる。
また、ロボットコントローラ122iは、ロボット101iが溶接箇所を含む所定の区間の軌道データに基づいて動作中であることを示すデジタル信号である信号SBiを、コントローラ121Bに送信する。具体的には、ロボットコントローラ122iは、レーザヘッド102iを加速させる動作をロボット101iに開始させた時点で、信号SBiを示す電気信号の電圧をローレベルからハイレベルに切り替えて、コントローラ121Bに送信する。また、ロボットコントローラ122iは、所定のタイミングで信号SBiを示す電気信号の電圧をハイレベルからローレベルにする。以下、信号SBiを示す電気信号の電圧をハイレベルにすることを、信号SBiをオンにするともいう。また、信号SBiを示す電気信号の電圧をローレベルにすることを、信号SBiをオフにするともいう。
ロボットアーム111iの姿勢制御、即ちレーザヘッド102iの位置姿勢制御(レーザ光Liの焦点の位置制御)は、ロボットコントローラ122iからロボットアーム111iのモータM1i,…,M6iへ流されるモータ電流SC1iによって行われる。ロボットプログラム422iは、ロボット言語で記述されたプログラムである。ユーザは、ロボット言語をテキストデータで記述することにより、ロボット101iの動作を指示することができる。ロボットコントローラ122iのCPU401iは、プログラム421iを実行することにより、ロボットプログラム422iの解釈を行い、複数の指令からなる軌道データを生成し、生成した軌道データをFPGA416iへ出力する。FPGA416iは、軌道データに従ってサーボ演算を行う。即ち、FPGA416iはサーボ演算によってモータ電流指令を生成し、生成したモータ電流指令を電流アンプ417iに送る。電流アンプ417iは、モータ電流指令に応じたモータ電流SC1iを生成し、ロボットアーム111iの各関節にあるモータM1i,…,M6iに流す。流されたモータ電流SC1iによってロボットアーム111iの各モータM1i,…,M6iが駆動される。検出回路115iは、モータM1i,…,M6iが回転するとエンコーダEn1i,…,En6iから検出信号を取得する。検出回路115iは、検出信号をシリアルのデジタル信号SC2iに変換してロボットコントローラ122iのFPGA416iへ送信する。
モータM1i,…,M6iの回転角度(位置)を示すデジタル信号SC2iは、FPGA416iにおけるサーボ演算に使われる。また、プログラム421iは、I/Fからの読込処理、演算処理、I/Fへの出力処理を定期的に行っている。この周期をロボットコントローラ122iの制御周期と呼ぶこととする。エンコーダEn1i,…,En6iの検出信号はABZ相のパルス信号である。検出回路115iは、エンコーダEn1i,…,En6iのパルス信号を、パルス数(位置座標に変換可能な値)を示すデジタル信号SC2iに変換してFPGA416iへフィードバックする。なお、サーボ機構、即ちFPGA416i及び電流アンプ417iをロボットアーム111i内に配置し、CPU401iからケーブルを介してロボットアーム111i内のサーボ機構に位置指令、即ち軌道データを送信する構成としてもよい。また、FPGA416iの機能をCPU401iに持たせて、FPGA416iを省略してもよい。エンコーダEn1i,…,En6iのパルス信号をデジタル信号に変換してロボットコントローラ122iに送信するものとして説明したが、エンコーダEn1i,…,En6iのパルス信号を直接ロボットコントローラ122iに送信するようにしてもよい。また、位置センサとして、エンコーダEn1i,…,En6iのかわりにレゾルバを用いてもよい。
ここで、ロボット101iの動作の制御点は、ロボット101iの手先と共に移動する点であればよいが、本実施形態では、ロボット101iの動作の制御点を、レーザ光の焦点としている。制御点は、ロボット101iのベースを基準とする、3次元空間における位置を表す3つのパラメータ(X,Y,Z)と、3次元空間における姿勢を表す3つのパラメータ(A,B,C)からなる6つのパラメータで表される。したがって、制御点は、6次元のタスク空間上では、1つの点としてみなすことができる。ロボットプログラム422iには、制御点の移動目標である教示点がユーザによって記述(指定)される。ロボットコントローラ122iは、ロボットプログラム422iを解釈し、教示点を結ぶ軌道データ、すなわち教示点を補間した軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間などがあり、これら補間方法が補間命令としてロボットプログラム422iにユーザによって記述(指定)される。
ロボットコントローラ122iのCPU401iは、補間により求めた軌道データをロボット101iの各関節の角度の指令に変換し、FPGA416iは、サーボ演算を行う。FPGA416iは、サーボ演算の結果、電流アンプ417iに送られる電流指令を決定する。サーボ演算はロボットコントローラ122iのCPU401iの制御周期毎に行われる。各関節の角度の指令は制御周期毎に更新されるが、その増減量をコントロールすることでロボット101iの速度は決定される。すなわち、各関節の角度の指令の増減量が大きければロボット101iは速く動作し、増減量が小さければロボット101iは遅く動作する。
ロボット101iの動作によって制御点(レーザ光の焦点)が移動する実際の経路は、位置制御の応答遅れにより、ロボットプログラム422iによって指令される経路からずれることがある。
図32は、第10実施形態における制御点の経路の一例を示す説明図である。ここで、制御点(レーザ光の焦点)の経路は、ロボット101iの動作によって作られるため、ロボット101iに支持されたレーザヘッド102iの経路と同義である。
以下、ロボットプログラム422iに記述された補間命令の一例としての直線補間命令を実行する場合について説明する。直線補間命令とは、第1の位置座標と第2の位置座標とを結んだ直線に沿って制御点が移動するように補間する命令であり、制御点の経路は、3次元空間で線分となる。なお、第1の位置座標と第2の位置座標とでロボット101iの姿勢も補間する方法と、第1の位置座標の姿勢を第2の位置座標まで保つ方法の2通りが可能であるが、本実施形態では姿勢も補間する。いずれの方法であっても、ロボット101iの制御点、即ちレーザ光の焦点は、第1の位置座標と第2の位置座標とを結んだ線分上を通る。なお、ロボットプログラム422iでは第1の位置座標はロボット101iの現在の指令位置を利用し、移動先の第2の位置座標のみを指定することが多い。位置座標はユーザが設定する教示点(教示位置)を使ってもよいし、教示点に所望の演算を加えて教示点とは異なる位置を示す位置座標を使ってもよい。また、ロボットコントローラ122iのCPU401iが直線補間命令を実行すると、現在の指令位置と移動先の目標位置を結ぶ軌道データを生成し、その軌道データをFPGA416iに制御周期毎に払い出しを行う。ロボットコントローラ122iのCPU401iは軌道データの払い出しが完了すると直線補間命令は完了し、ロボットプログラム422iに記述された次の命令を実行する。
図32中、破線は制御点の指令の経路(位置)50i、実線は制御点の実際の経路(位置)51iである。そして、図32の例では、レーザシーム溶接をする箇所が2箇所ある。j箇所目(図32の例では、j=1,2)は、レーザ光の照射を開始する際の制御点の位置52j,iとレーザ光の照射を終了する際の制御点の位置53j,iとの間である。なお、レーザシーム溶接を行う溶接箇所は、2箇所に限定するものではなく、1箇所であってもよいし、3箇所以上であってもよい。制御点の位置52j,i及び制御点の位置53j,iは、ユーザが設定する教示点(教示位置)である。
ロボットコントローラ122iは、教示による位置52j,iと教示による位置53j,iとを結ぶ延長線上に位置する位置54j,iと位置55j,iとを、予め決められたアルゴリズムに従って求める。このアルゴリズムはロボットプログラム422iに記述されている。ロボットプログラム422iには直線補間命令の引数に位置55j,iを与えて実行させる。なお、位置55j,iへの直線補間命令を実行させるためには、位置54j,iへ移動命令を実行させ、ロボット101iの位置指令が位置54j,iへ到達している必要がある。
位置54j,iは、制御点の移動を開始する指令の位置である。位置55j,iは、制御点の移動を終了する指令の位置である。そして、ロボットコントローラ122iは、教示による位置52j,i,53j,iの間の区間を含み、位置54j,iを始点、位置55j,iを終点とする、直線補間による所定の区間の軌道データPj,iを生成する。
このように、ロボット101iへ指令する軌道データPj,iの一部である位置52j,i,53j,iは、ユーザにより指定される教示点である。一方、ロボット101iへ指令する軌道データPj,iの一部である位置54j,i,55j,iは、ロボットコントローラ122iがロボットプログラム422iに従って自動計算して求める指令であり、教示点ではない。
ロボットコントローラ122iは、図32に示す位置551,iと位置542,iとの間も、ロボットプログラム422iに記述された補間命令に従って補間して、軌道データP1-2,iを生成する。なお、位置551,iと位置542,iとの間は、単にレーザヘッド102iを移動させるだけなので、任意の補間方法で補間可能である。したがって、ロボットプログラム422iには、任意の補間命令を記述可能である。ロボットプログラム422iに例えば直線補間命令が記述されている場合には、直線補間で補間すればよい。ロボットプログラム422iに例えば関節補間命令が記述されている場合には、関節補間で補間すればよい。関節補間命令とは、ロボット101iの各関節の動作量を時間で分割して補間する命令であり、制御点の経路は直線にはならない。ただし、ロボット101iの動作は、直線補間命令でロボット101iを動作させる場合よりも高速となる。
レーザシーム溶接を行う場合、制御点の移動速度が目標速度Vwj,iとなるのに必要な助走区間が必要である。本実施形態では、位置54j,iと位置52j,iとの間が助走区間ということになる。各溶接箇所の目標速度Vwj,iは、ロボットプログラム422iに記述(指定)される。
なお、レーザシーム溶接を行うので、制御点は位置52j,iと位置53j,iとの間の溶接を行う区間を高精度に移動する必要があるが、レーザシーム溶接を行わないそれ以外の区間、例えば助走区間は位置精度が低くてもよい。したがって、図32に示すように、溶接を行う区間以外の区間において、実際の経路51iが指令の経路50iに対してずれていてもよい。換言するとロボットコントローラ122iは、制御点が位置52j,iと位置53j,iとの区間を高精度に移動するように、始点である位置54j,i及び終点である位置55j,iを求める。
ここで、ロボットコントローラ122iが位置54j,iをロボット101iに指令する時点で、ロボット101iが静止している場合と、ロボット101iが動作している場合とがあるが、いずれであってもよい。
動作開始指令SAiを受信したロボットコントローラ122iは、動作開始指令SAiに従い、溶接を行う軌道データPj,iの指令を開始する。即ち、ロボットコントローラ122iは、動作開始指令SAiがオフからオンに切り替わることにより、軌道データPj,iの指令を開始する。図32の例では、ロボットコントローラ122iは、動作開始指令SAiを受信すると、軌道データP1,iに従ってロボット101iを動作させ、引き続き、軌道データP1-2,iに従ってロボット101iを動作させる。動作が完了するとロボットは準備完了状態となり次の動作開始指令SAiを監視する。ロボットコントローラ122iは、次の動作開始指令SAiを受信すると、軌道データP2,iに従ってロボット101iを動作させる。
なお、ロボットプログラム422iには、動作開始指令SAiがオフからオンに切り替わったことをロボットコントローラ122iが受信すると、ロボットコントローラ122iが軌道データPj,iの指令を開始するように記述されている。
図33は、第10実施形態におけるロボット101iの動作による制御点の移動距離の一例を示す説明図である。図4と同一の構成要素には同一の参照符号を付与することにする。図33において、説明の便宜上、時刻TP11,i,TP21,i,TP31,i,TP51,i,TP12,i,TP22,i,TP32,i,TP52,iを図示している。本実施形態のレーザ溶接装置100Bでは、時刻TP11,i,TP21,i,TP31,i,TP51,i,TP12,i,TP22,i,TP32,i,TP52,iとなったタイミングをカウントして処理を行うものではない。なお、図32と同様、破線は指令の経路50iを示し、実線は実際の経路51iを示す。
ロボットコントローラ122iは、軌道データP1,i、軌道データP1-2,i、軌道データP2,iの順にロボット101iの動作を制御する。しかし、位置制御の応答遅れにより、制御点は、図33に示すように、指令した時刻に対して遅れて動作する。
1箇所目の溶接のために、ロボットコントローラ122iが直線補間命令を実行して、軌道データP1,iの払い出しを開始する。すると、ロボット101iの角度の指令が軌道データP1,iの始点である位置541,iから軌道データP1,iの終点である位置551,iへ変化を始める。この変化を開始する時刻TP11,iで、制御点、即ちレーザヘッド102iを加速させるロボット101iの動作が開始される。
ロボットコントローラ122iが位置521,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP21,iで、指令した位置521,iに対応する位置を通過する。ロボットコントローラ122iが位置531,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP31,iで、指令した位置531,iに対応する位置を通過する。ロボットコントローラ122iが軌道データP1,iの終点である位置551,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP51,iで、指令した位置551,iに対応する位置を通過する。レーザ光の照射は、実際の制御点が位置521を通過したときにレーザ光の照射を開始し、実際の制御点が位置531を通過したときにレーザ光の照射を停止する必要がある。
次にロボットコントローラ122iは、次の溶接動作の準備のために、位置551,iから位置542,iへ向かう軌道データP1-2,iに従ってロボット101iを動作させる。
2箇所目の溶接のために、ロボットコントローラ122iが直線補間命令を実行して、軌道データP2,iの払い出しを開始する。すると、ロボット101iの角度の指令が軌道データP2,iの始点である位置542,iから軌道データP2,iの終点である位置552,iへ変化を始める。この変化を開始する時刻TP12,iで、制御点、即ちレーザヘッド102iを加速させるロボット101iの動作が開始される。
ロボットコントローラ122iが位置522,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP22,iで、指令した位置522,iに対応する位置を通過する。ロボットコントローラ122iが位置532,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP32,iで、指令した位置532,iに対応する位置を通過する。ロボットコントローラ122iが軌道データP2,iの終点である位置552,iをロボット101iへ指令すると、制御点は、指令した時刻に対して遅れた時刻TP52,iで、指令した位置552,iに対応する位置を通過する。レーザ光の照射は、実際の制御点が位置522,iを通過したときにレーザ光の照射を開始し、実際の制御点が位置532,iを通過したときにレーザ光の照射を停止する必要がある。
レーザ光Liの焦点の移動速度が一定の目標速度Vwj,iとなった状態で加工対象物Wにレーザ光Liを照射して加工を行うには、レーザヘッド102iがレーザ光Liの照射を開始する位置に到達する前に、レーザヘッド102iを加速させる必要である。第1の時間T1は、レーザヘッド102iが一定の目標速度Vwj,iで等速移動するようにレーザヘッド102iを加速させる時間である。第2の時間T2j,iは、レーザヘッド102iが一定の目標速度Vwj,iで等速移動している状態でレーザ光Liを加工対象物Wに照射する時間である。
本実施形態では、予め実験を行うことにより、時刻TP1j,iと時刻TP2j,iとの間の期間を、レーザヘッド102iを加工対象物Wに対して加速させる第1の時間T1として設定する。また、予め実験又は演算を行うことにより、時刻TP2j,iと時刻TP3j,iとの間の期間を、レーザ光Liを照射する第2の時間T2j,iとして設定する。
以下、第1の時間T1、第2の時間T2j,i、第3の時間T3の設定について詳細に説明する。レーザヘッド102iの指令の速度と実際の速度とは、位置制御の応答遅れによりずれが生じる。したがって、第1の時間T1をロボットプログラム422iのみで設定するのは困難である。そこで、試行錯誤的に様々な条件でロボット101iを動作させ、レーザヘッド102iの実際の速度が目標速度Vwj,iに達して等速となる時間を各条件で測定し、これらの測定結果から、第1の時間T1を設定する。
なお、第1の時間T1が経過した時点で、レーザヘッド102iの速度が目標速度Vwj,iに達して等速となるのが好ましいが、ロボット101iの位置姿勢、目標速度Vwj,i、ロボット101iの連続動作による残留偏差等の要因で速度誤差が生じる。よって、様々な条件で測定した中で、速度誤差が最も低くなる値、即ち最も時間がかかった時間を、第1の時間T1に定めるのが好ましい。即ち、第1の時間T1は、レーザヘッド102iの加速を開始してから第1の時間T1が経過する時点で、レーザヘッド102iの速度が目標速度Vwj,iに対して所定の範囲内に収まるように設定すればよい。第1の時間T1は、各溶接箇所におけるレーザ光の目標速度Vwj,iによって異ならせてもよいが、同じ時間とした方がコントローラ121Bの処理を簡略化できる。更に第1の時間T1は、各レーザヘッド1021,1022,…,102Nを加速移動させる場合も同じ時間、つまり共通のカウント時間としている。
図34(a)及び図34(b)は、ロボット101iに支持されたレーザヘッド102iの目標速度を変更した際の移動プロファイルを示す説明図である。図5と同一の構成要素には同一の参照符号を付与することにする。図34(a)及び図34(b)には、溶接する箇所におけるレーザヘッド102iの目標速度を3通りVw1i,Vw2i,Vw3iに変更した場合の例を図示している。なお、図34(a)及び図34(b)には、ロボット101iの指令の速度VCi、ロボット101iの実際の速度VRiを図示している。図34(a)においては、異なる目標速度Vw1i,Vw2i,Vw3iとなっても、ロボット101iの加速度を一定としている。そのため、ロボット101iの加速時間は、目標速度Vw1i,Vw2i,Vw3iに応じて変化する。図34(b)においては、異なる目標速度Vw1i,Vw2i,Vw3iとなっても、ロボット101iの加速時間を一定としている。そのため、ロボット101iの加速度は変化している。図34(a)及び図34(b)のいずれにおいても、第1の時間T1を十分な時間で設定すれば、指令の速度VCiと実際の速度VRiがおおよそ一致する。従って、第1の時間T1が経過した直後にはロボット101iが等速領域に達したことを保証することができるようになる。即ち、第1の時間T1を経過した時刻TP2j,iにおいて等速になっていることが保証されていればよく、時刻TP2j,iより前の時刻においてロボット101iが等速になっていてもよい。
なお、図34(a)及び図34(b)では、教示による位置52jと教示による位置53jとを結ぶ延長線上に位置する位置54j,iと位置55j,iとを、求めるアルゴリズムを変える必要がある。例えば、位置54j,iは、位置52j,iと位置53j,iを結ぶ線分を、位置52j,i側に延伸して求めるが、この延伸量は、図34(a)及び図34(b)における実際の速度VRiを時刻TP1j,iから時刻TP2j,iまで積分して距離となる。積分した距離は図34(a)の方式と図34(b)の方式とでは異なるし、目標速度Vw1i,Vw2i,Vw3iが変化しても異なる。従って位置54iを求めるアルゴリズムはそれらを考慮する必要がある。位置55jを求めるアルゴリズムも同様である。
第2の時間T2
j,iはレーザ照射時間であり、以下の式(19)により計算する。ここで、以下の式(19)の演算記号として、第2の時間T2
j,iをTw、レーザ光の照射を開始する位置52
1,i,52
2,iをPs、レーザ光の照射を終了する位置53
1,i,53
2,iをPe、及び目標速度Vw
j,iを、Vwとする。第2の時間であるTwを、Ps、Pe及びVwを用いて、溶接箇所ごとに以下の式(19)で計算する。
即ち、PsとPeとの距離を、Vwで割り算することで、第2の時間となるTwの値を求める。Ps、Pe、及びVwは、溶接箇所ごとに異なる値とすることができる。したがって、第2の時間T21,i,T22,iとなるTwは、溶接箇所の長さ(領域)に応じた値となる。このように算出されたTwが、第2の時間T21,i,T22,iとして設定される。
教示点である位置521,i,522,iは、位置と姿勢の6自由度の情報で構成されている。具体的には、位置521,i,522,iは、ロボット101iのベースに対する位置の情報であるX,Y,Zとレーザヘッド102iの保持角度の情報であるA,B,Cを有する。位置531,i,532,iも同様である。したがって、Ps,PeとしてX,Y,Zの位置情報のみを用いて、3次元空間上の距離を求める。
なお、この演算はロボットコントローラ122iで演算し、第2の時間となるTwの値をコントローラ121Bに転送してもよい。また、ロボットコントローラ122iではPsとPeとの距離のみを演算し、距離をコントローラ121Bに転送し、残りの演算を行って第2の時間となるTwの値を求めてもよい。どちらを選択するかは、目標速度Vwをロボットコントローラ122iで記述(指定)しているか、コントローラ121Bで記述(指定)しているかによって適宜選択できる。
第3の時間T3は、切替器104において切り替え動作に要する時間であり、予め実験を行うことにより求められる。例えば、切替器104の切り替え動作を複数回行って切り替え動作に要した時間を計測し、これら計測値の最大値に余裕を加えた値を、第3の時間T3に設定する。最大値に余裕を加えた値を設定するのは、切り替えを指令してから第3の時間T3が経過したとき確実に切替えが完了している必要があるためである。なお、切替時間のデータが予め存在していれば、その値に余裕を加えた値を第3の時間T3に設定すればよい。以上、実際にロボット101iを生産ラインで動作させる前に、第1の時間T1、第2の時間T2j,i、及び第3の時間T3を設定しておく。なお、第1の時間T1は予めコントローラ121Bとロボットコントローラ122iの両方に設定しておくのが望ましい。
ところで、レーザシーム溶接を行う溶接箇所においては、位置52j,iをロボット101iに指令したタイミングではなく、制御点が実際に位置52j,iを通過する時刻TP2j,iでレーザ光Liを照射する必要がある。同様に、位置53j,iをロボット101iに指令したタイミングではなく、制御点が実際に位置53j,iを通過する時刻TP3j,iでレーザ光Liの照射を停止する必要がある。
即ち、等速領域に達した時刻TP2j,iにおいて、ロボット101iの位置制御の応答遅れが生じている場合がある。位置制御の応答遅れは、指令の位置と実際の位置の差で表される。位置制御の応答遅れがある場合には、この位置制御の応答遅れを、位置54j,i及び位置55j,iの算出に含める必要がある。
そこでロボットコントローラ122iは、レーザヘッド102iを加速させる動作を開始してから第1の時間T1が経過した時点で制御点が目標位置に到達するように、移動を開始する位置54j,iと移動を終了する位置55j,iを演算する。ただし、図34(a)の方法を適用した場合と図34(b)の方法を適用した場合とでは、位置54j,i及び位置55j,iの算出する方法が変わる。この演算は軌道データP1、P2を生成する直線補間命令を実行する前に求めておく必要がある。例えば、直線補間命令の直前、または、実際にロボット101iを生産ラインで動作させる前に行うことができる。なお、演算アルゴリズムはロボットプログラム422iに記述することでロボットコントローラ122iが演算する。
図35は、第10実施形態におけるレーザ溶接装置100Bによりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図6と同一の構成要素には同一の参照符号を付与することにする。図35には、ロボットコントローラ1221,1222,…,122Nにおいてコントローラ121Bに送信させる信号SB1,SB2,…,SBNが図示されている。また、図35には、ロボット1011,1012,…,101Nにより移動されるレーザヘッドの実際の速度VR1,VR2,…,VRN及び指令の速度VC1,VC2,…,VCNが図示されている。また、図35には、コントローラ121Bにおいて送信されるレーザ発振指令SR1、切替信号SS、動作開始指令SA1,SA2,…,SANが図示されている。図35中、切替信号SSに付されている数字は、いずれのロボット101i(レーザヘッド102i)に切り替えるかを示す番号である。切替器104に付されている数字も、いずれのロボット101i(レーザヘッド102i)に切り替わっているかを示す番号である。切替信号SS及び切替器104に付した番号は、上述したi=1~Nの通し番号である。また、図35中、切替器104において、網掛け部分は、切り替え動作中であることを示す。
なお、前提条件として、1つのロボット101iが受け持つ溶接箇所は、自動運転が開始される前に予め決められているものとする。また、各ロボット1011、ロボット1012、…、ロボット101Nがどの順番で動作するかも、自動運転が開始する前に予め決められているものとする。つまり、溶接移動の開始を指示するロボットの順番は、コントローラ121Bに予め設定されている。以下、ロボット1011、ロボット1012、…、ロボット101N、ロボット1011、ロボット1012、…の順番で動作させる場合を例に説明する。即ち、レーザヘッド1021、レーザヘッド1022、…、レーザヘッド102N、レーザヘッド1021、レーザヘッド1022、…の順番で切替器104によりレーザ光を導く。
また、コントローラ121Bは、主に2つのシーケンスSM1,SM2の管理を行う。具体的に説明すると、1つ目のシーケンスSM1の管理として、コントローラ121Bは、ロボットコントローラ1221,1222,…,122Nに対して、レーザヘッド1021,1022,…,102Nが溶接箇所に移動を開始するタイミングを指示する。
また、2つ目のシーケンスSM2の管理として、コントローラ121Bは、レーザ発振器103におけるレーザ発振のオンオフのタイミング、及び切替器104の切り替え動作のタイミングを指示する。具体的には、コントローラ121Bは、ロボットコントローラ122iからの信号SBiの立ち上がりを受信してから第1の時間T1が経過した時点で、レーザ発振指令SR1をオンにする。そして、コントローラ121Bは、第1の時間T1が経過した時点から更に第2の時間T2j,iが経過した時点でレーザ発振指令SR1をオフにする。そして、コントローラ121Bは、レーザ発振指令SR1をオフにした後は、次のレーザ照射に備えて、切替信号SSを変更し、レーザの光路を切り替える。
以上の2つのシーケンスSM1,SM2の管理は、各ロボット101iの信号SBiがオンしたタイミングに同期して行われる。以下、シーケンスSM1,SM2の管理について詳細に説明する。自動運転が開始されると、コントローラ121Bは、シーケンスSM1として、制御プログラム321に従って動作開始指令SA1をオンにする。動作開始指令SA1をオンにしたタイミングを、図35中、時刻TP01,1とする。
ロボットコントローラ1221は、動作開始指令SA1を監視しており、動作開始指令SA1がオフからオンに切り替わったのを受信した後、位置551,1を目標位置とする直線補間移動命令が実行する。すると、位置541,1から位置551,1へ向かう軌道データP1,1が、所定の制御周期でロボット1011に払い出される。即ち、ロボットコントローラ1221は、加工対象物Wに対するレーザヘッド1021の移動速度が目標速度Vw1,1となるようにレーザヘッド1021を加速させる動作をロボット1011に開始させる。これにより、レーザヘッド1021、即ち制御点は、位置541,1から位置551,1に向かって移動を開始し、移動速度が一定の目標速度Vw1,1となるように加速し始める。
また、ロボットコントローラ1221は、軌道データP1,1の払い出しを開始すると同時に、信号SB1をオフからオンに切り替えた信号SBA1をコントローラ121Bへ送信する。
信号SB1をオフからオンへ切り替えたときの立ち上がりが、同期信号(所定の信号)SBA1となる。即ち、ロボットコントローラ1221は、レーザヘッド1021を加速させる動作をロボット1011に開始させた時点で、信号SB1の立ち上がりである同期信号SBA1をコントローラ121Bへ送信することになる。このタイミングを時刻TP11,1として図35中に示している。
本実施形態では、信号SB1の立ち上がりを同期信号SBA1としている。したがって、次の軌道データP2,1の払い出しを開始する前であって、信号SB1が立ち上がってからコントローラ121Bの制御周期以上経過していれば、信号SB1はどのタイミングで立ち下がってもよい。また、信号SB1を立ち上げることで同期信号SBA1としたが、これに限定するものではなく、信号SB1を立ち下げることで同期信号SBA1としてもよい。なお、本実施形態ではロボット101iが準備完了状態となったことを示す信号として信号SBiをオフしている。準備完了状態とはロボットコントローラ122iが軌道データPjと軌道データPj+1との間の軌道データPj-(j+1),iの払い出しを完了し、信号SAiを待つ準備が整ったことを指す。
コントローラ121Bは、ロボットコントローラ1221から送られてくる信号SB1を監視しており、信号SB1が立ち上がる同期信号SBA1を受信した時点で、シーケンスSM2としてレーザヘッド1021に対応する第1の時間T1の計時を開始する。第1の時間T1は、例えば200[msec]等、固定の時間である。
第1の時間T1が経過したとき、レーザヘッド1021は、溶接を行う目標速度Vw1,1に達して等速状態となっており、また、制御点は、指令された位置521,1(図32)に位置している。よって、コントローラ121Bは、信号SB1が立ち上がる同期信号SBA1を受信してから第1の時間T1が経過した時点、即ち第1の時間T1の計時が終了した時点(図35中、時刻TP21,1)で、レーザ光を発生するようレーザ発振器103を制御する。具体的には、コントローラ121Bは、第1の時間T1の計時が終了すると同時にレーザ発振指令SR1をオフからオンに切り替える。即ち、コントローラ121Bは、第1の時間T1の計時が終了した時点で、レーザ発振器103にレーザ光を発生させるよう指令する。レーザ発振器103は、レーザ発振指令SR1を監視しており、レーザ発振指令SR1がオフからオンに切り替わったのを受信したとき、レーザ発振を行う。これと同時に、レーザ発振器103は、信号SR2をオフからオンに切り替える。
このように、ロボットコントローラ122iは、動作開始指令SAiにより加工対象物Wに対するレーザヘッド102iの移動速度が一定の目標速度Vwj,iで等速となるようにレーザヘッド102iを加速させる動作を、ロボット101iに開始させる。一方、コントローラ121Bは、レーザヘッド102iの加速開始から第1の時間T1が経過した時点で、レーザ光を発生するようレーザ発振器103を制御する。コントローラ121Bは、ロボットコントローラ122iの制御によるレーザヘッド102iの加速開始を、同期信号SBAiを受信することで検知する。
コントローラ121Bは、第1の時間T1の計時が終了した時点で第2の時間T21,1の計時を開始する。ロボットコントローラ1221は、レーザヘッド1021にて加工対象物Wにレーザ光L1を照射している間、レーザヘッド1021の移動速度が目標速度Vw1,1を維持するようにロボット1011を動作させる。コントローラ121Bは、第1の時間T1が経過してから更に第2の時間T21,1が経過した時点、即ち第2の時間T21,1の計時が終了した時点(図35中、時刻TP31,1)で、レーザ光の発生を停止するようレーザ発振器103を制御する。
具体的には、コントローラ121Bは、第2の時間T21,1の計時が終了すると同時にレーザ発振指令SR1をオンからオフに切り替える。即ち、コントローラ121Bは、第2の時間T21,1の計時が終了した時点で、レーザ発振器103にレーザ光を停止させるよう指令する。レーザ発振器103は、レーザ発振指令SR1がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
また、コントローラ121Bは、レーザ発振指令SR1をオフにしたのと同じタイミングで、切替信号SSを変更し、1番目のレーザヘッド1021から2番目のレーザヘッド1022にレーザ光が導かれるように切替器104に指示を出す。
切替器104は、切替信号SSを監視しており、切替信号SSの指示に従い、ミラー1141~114Nを動作させて光路を変更する切り替え動作を実施する。この切り替え動作には、第3の時間T3がかかり、切り替え動作が完了した時点を図35中、時刻TP41,1で示す。この切り替え動作により、次のレーザヘッド1022からレーザ光L2を出射することができる状態となる。
ここで、切替器104において、レーザ光を導く対象をレーザヘッド1021からレーザヘッド1022へ切り替えるが、切り替え動作の後に次のロボット1012の動作を開始したのでは、レーザ発振器103の稼働率、即ち加工品の生産効率が低い。
そこで制御装置120Bは、レーザヘッド1021において加工対象物Wに対するレーザ光L1の照射が終了する前にレーザヘッド1022の移動速度が目標速度Vw1,2となるようレーザヘッド1022を加速させる動作を、ロボット1012に開始させる。レーザヘッド1021において加工対象物Wに対するレーザ光L1の照射が終了する前とは、照射開始より前の場合も含む。これにより、レーザ発振器103の稼働率、即ち加工品の生産効率が向上する。
以下、コントローラ121Bが次のロボットコントローラ1222に送信する動作開始指令SA2をオンにするタイミング、即ちコントローラ121BにおけるシーケンスSM1の管理について詳細に説明する。
本実施形態では、各レーザヘッド102iを加速移動させる度にカウントされる第1の時間T1は、例えば200[msec]等、同じ時間(固定値)である。コントローラ121Bは、レーザヘッド1021によりレーザ光を照射する第2の時間T21,1が経過した時点から更に切替器104において切り替え動作に要する第3の時間T3が経過した時点以降に、次のレーザヘッド1022にレーザ光を照射させる。よって、次のロボットコントローラ1222に動作開始指令SA2を送信するタイミングを、レーザヘッド1021の加速を開始してから、第2の時間T21,1と第3の時間T3との合計時間(T21,1+T3)が経過した時点以降とするのが好ましい。なお、レーザヘッド1021の加速の開始は、コントローラ121Bにおいて同期信号SBA1で検知される。また、第2の時間T21,1は、レーザヘッド1021において1箇所目の溶接箇所にレーザ光を照射する時間である。
本実施形態では、コントローラ121Bは、シーケンスSM1として、ロボットコントローラ1221から同期信号SBA1を受信した時点で、第2の時間T21,1と第3の時間T3との合計時間(T21,1+T3)の計時を開始する。この計時を開始するタイミングは、シーケンスSM2においてレーザヘッド1021を加速させる第1の時間T1の計時を開始するタイミングと同時である。
コントローラ121Bは、合計時間(T21,1+T3)の計時が完了すると、次に動作させるロボット1012が準備完了状態か確認する。本実施形態では信号SBiがオフであれば準備完了状態である。コントローラ121Bは信号SBiがオフでない場合はオフになるまで待機する。信号SBiがオフであれば、次に動作させるロボット1012を制御するロボットコントローラ1222に送信する動作開始指令SA2をオンにする。動作開始指令SA2をオンにしたタイミングを、図35中、時刻TP01,2とする。
ロボットコントローラ1222は、動作開始指令SA2を監視しており、動作開始指令SA2がオフからオンに切り替わると、軌道データP1,2を、所定の制御周期でロボット1012に指令する。即ち、ロボットコントローラ1222は、加工対象物Wに対するレーザヘッド1022の移動速度が目標速度Vw1,2となるようにレーザヘッド1022を加速させる動作をロボット1012に開始させる。これにより、レーザヘッド1022、即ち制御点は、移動を開始し、移動速度が一定の目標速度Vw1,2となるように加速し始める。
また、ロボットコントローラ1222は、軌道データP1,2の払い出しを開始すると同時に、信号SB2をオフからオンに切り替えた同期信号SBA2を送信する。即ち、ロボットコントローラ1222は、レーザヘッド1022を加速させる動作をロボット1012に開始させた時点で、信号SB2の立ち上がりである同期信号SBA2をコントローラ121Bへ送信する。このタイミングを時刻TP11,2として図35中に示している。
コントローラ121Bは、ロボットコントローラ1222から送られてくる信号SB2を監視しており、信号SB2が立ち上がる同期信号SBA2を受信した時点で、レーザヘッド1022を加速させる第1の時間T1の計時を開始する。同時に、コントローラ121Bは、第2の時間T21,2と第3の時間T3との合計時間(T21,2+T3)の計時を開始する。コントローラ121Bは、合計時間(T21,2+T3)の計時が完了すると、コントローラ121Bはロボット1013の準備完了状態を確認する。ロボット1013が準備完了状態であれば、更に次の動作開始指令SA3をオンにする。同様の処理を、ロボット1011,…,101N,1011,…で繰り返す。このように、コントローラ121Bは、シーケンスSM1として、各ロボット101iの動作のタイミングを同期信号SBAiで管理している。
一方、コントローラ121Bは、信号SB2が立ち上がる同期信号SBA2を受信した時点で、レーザヘッド1021に対する第1の時間T1、又は第2の時間T21,1を計時中である。図35の例では、コントローラ121Bは、第1の時間T1を計時中である。コントローラ121Bは、同期信号SBA2を受信した時点で、レーザヘッド1021に対する第1の時間T1の計時と並行して、シーケンスSM2として、レーザヘッド1022に対する第1の時間T1の計時を開始する。コントローラ121Bは、レーザヘッド1022に対する第1の時間T1が経過した時点、即ち第1の時間T1の計時が終了した時点(図35中、時刻TP21,2)で、レーザ発振指令SR1をオンにする。コントローラ121Bは、第1の時間T1の計時が終了した時点から第2の時間T21,2の計時を開始する。コントローラ121Bは、第2の時間T21,2の計時が終了した時点(図35中、時刻TP31,2)で、レーザ発振指令SR1をオフにする。
コントローラ121Bは、レーザ発振指令SR1をオフにしたのと同じタイミングで、切替信号SSを変更し、2番目のレーザヘッド1022から3番目のレーザヘッド1023にレーザ光が導かれるように切替器104に指示を出す。切替器104は、切替信号SSの指示に従って切り替え動作を行う。この切り替え動作には、第3の時間T3がかかり、切り替え動作が完了した時点を図35中、時刻TP41,2で示す。同様の処理を、N番目のレーザヘッド102Nによりレーザ溶接加工が終えるまで繰り返す。
レーザヘッド1021~102Nにおいて、それぞれ1箇所目の溶接箇所のレーザ溶接加工が終了したら、2箇所目以降の溶接箇所についても同様のシーケンスSM1,SM2を行う。
以上、コントローラ121Bは、シーケンスSM1とシーケンスSM2とを独立して行う。また、シーケンスSM1の動作とシーケンスSM2の動作は、同期信号SBAiにより同期をとっており、それ以外では同期を行っていない。即ち、コントローラ121Bは、同期信号SBAiを受信した時点からの経過時間によって各シーケンスSM1,SM2を行う。このように、同期信号SBAiでシーケンスSM1,SM2を管理することで、管理が複雑とならず、安定してシーケンスSM1,SM2を実行することができる。
本実施形態によれば、シーケンスSM1,SM2により、溶接の完了を待つことなく、次々とロボット101iを動作させるため、時間のロスを低減して、レーザ発振器103の稼働率、ひいては加工品の生産効率を向上させることができる。
また、本実施形態では、コントローラ121Bが同期信号SBAiを受信する度にカウントする第1の時間T1を、同一の時間としているので、処理が簡略化される。即ち、コントローラ121Bがレーザヘッド102iを溶接箇所に移動させるためのロボット101iの動作開始のタイミングを指示する動作においては、第1の時間T1を使用せず、第2の時間T2j,iと第3の時間T3のみによって指示することができる。
図35ではロボット101i側の処理が短く待機が必要ない場合のタイミングチャートを用いて説明した。しかし、コントローラ121Bが合計時間(T2j,i+T3)の計時を完了し、動作開始指令SAiをオンする処理を、ロボット1011,…,101N,1011,…に対して次々へ行うと、ロボットの移動が完了しない場合が発生することがある。その例を図36に示す。
図36は、第10実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図6と同一の構成要素には同一の参照符号を付与することにする。図36においては、ロボット1011が準備完了状態になるタイミングよりも、コントローラ121Bが合計時間(T21,N+T3)の計時を完了するタイミングの方が早い。図36中、コントローラ121Bは合計時間(T21,N+T3)の計時を完了しているが、計時を完了したタイミングではロボットコントローラ1221は軌道データP1-2,1の払い出しを行っているところである。ロボットコントローラ1221は、軌道データP1-2の払い出しが完了すると、準備完了状態となり、準備完了をコントローラ121Bに通知するために信号SB1をオフする。一方、コントローラ121Bは合計時間(T21,N+T3)の計時が完了すると、信号SB1がオフであることを確認する。コントローラ121Bは信号SBiがオフでない場合はオフになるまで待機する。信号SB1がオフになると、コントローラ121Bは動作開始指令SA1をオンする。なお、動作開始指令SA1をオンしたタイミングを時刻TP02,1で示す。以降の処理は図35と同じである。
なお、ロボット101iが準備完了になることを待つ、すなわち信号SBiがオフになることを待つ場合、レーザ発振器103の稼働率が低下するもののシーケンスが破綻することはない。コントローラ121Bがロボット101iの準備完了を待つとシーケンスSM2の起動が遅れる。すると、切替器104がレーザヘッド102iにレーザ光を導くために光路を切り替えた後の、シーケンスSM2による次のレーザ発振が遅れるため、レーザ発振のタイミングが遅くなる。ゆえに、シーケンスSM2の起動が遅れた分レーザ発振の機会を損なう。コントローラ121Bがロボット101iの準備完了を待ち実際に待ち時間が発生すると、レーザ発振器103および切替器104が稼働できないが、これはシーケンスを成立させるために必要な処理である。なお、図35と図36における、TP02,1からTP12,1までの時間が長くなっても、レーザ発振器103の稼働率が低下するだけでシーケンスが破綻することはない。TP02,1からTP12,1までの時間はロボットコントローラ122iに負荷がかかると長くなる場合があるが、その場合もシーケンスSM2の起動が遅れるだけとなる。ゆえに前述のとおり、シーケンスSM2の起動が遅れた分レーザ発振の機会を損なうだけである。
レーザ発振器103および切替器104の待機時間について説明する。ロボット101iを制御するロボットコントローラ122iは、コントローラ121Bからの動作開始指令SAiを受信すると、軌道データPjの払い出しを開始する。ロボットコントローラ122iは、計時を行っていないが、コントローラ121Bが第1の時間T1と第2の時間T2j,iの計時を完了したところで、軌道データPjの払い出しが完了する。次に、ロボットコントローラ122iは軌道データPj-(j+1)の払い出しを開始する。この軌道データPj-(j+1)の払い出しを行っている時間を、粗動時間T4j,iと定義する。また、レーザ発振器103および切替器104の待機時間をT5j,iと定義する。待機時間T5j,iはロボットの動作完了を、レーザ発振器103および切替器104が待つ時間である。ロボット101iが溶接箇所におけるレーザ光の照射を終了する位置53j,iから、次の溶接箇所におけるレーザ光の照射を開始する位置52j,iへ移動する時間について説明する。この時間は、第2の時間T2j,iの計時完了から第2の時間T2j+1,iの計時開始までの時間である。この時間をロボット101iの非溶接時間T6j,iと定義する。
図37(a)及び図37(b)は、第10実施形態における、ロボット101i、レーザ発振器103、切替器104の動作時間の一例を示した図である。図37(a)には、待機時間T5j,iが発生している例、図37(b)には、待機時間T5j,iが発生していない例を図示している。
図37(a)及び図37(b)には、ロボット1011による4か所目の溶接箇所から5か所目の溶接箇所へ制御点の移動中に、ロボット1012、ロボット1013、及びロボット1014が、それぞれ4か所目の溶接箇所への溶接を行う場合を例示している。非溶接時間T64,1の間にレーザ発振器103が稼働している時間は、ロボット1012、ロボット1013及びロボット1014が、それぞれ4か所目の溶接箇所への溶接を行う時間の合計時間(T24,2+T24,3+T24,4)となる。非溶接時間T64,1の間に切替器104が稼働している時間は、ロボット1011からロボット1012、ロボット1013、及びロボット1014に切り替えて、再びロボット1011に切り替えるので、4回切り替えを行う時間(4×T3)となる。すなわち、図37(a)に示すように、5か所目の溶接箇所に溶接するまでの待機時間T54,1は、[{(T44,1+T1)-{(4×T3)+(T24,2+T24,3+T24,4)}]である。図37(a)に示すように待機時間T5j,iが発生すると、レーザ発振器103および切替器104が稼働できない。
図37(b)には、図37(a)と同様に、ロボット1011の4か所目から5か所目の溶接箇所への移動中に、ロボット1012、ロボット1013及びロボット1014が、それぞれ4か所目の溶接箇所へ溶接を行う場合を例示している。ただし、ロボット1011の粗動時間T44,1中と非溶接時間T64,1中においてレーザ発振器103が稼働している時間(T24,2+T24,3+T24,4)は、図37(a)と異なる。図37(b)においては、非溶接時間T64,1の期間は、第2の時間T2j,iと第3の時間T3、の処理が間断なく実行される。このため、空き時間が発生せず、待機時間T5j,iが発生していない。ただし、軌道データP4-5の払い出しを完了すると信号SB1をオフし、動作開始指令SA1を受信するまでロボット1011を待機させている。レーザ発振器103は高価であるので、レーザ発振器103の稼働率が高くなるよう調整するのが望ましい。
一般化すると式(20)で表せる。ここで、式(20)の演算記号として、集合Aを定義する。集合Aは非溶接時間T6
j,iの間に動作するロボット101
iの番号の集合である。例えば図37(a)及び図37(b)においてAは、2,3,4という数字となる。また、count(A)は、集合要素の個数を数える関数である。図37(a)及び図37(b)の場合、集合Aは2,3,4であるため、要素の数は3となり、count(A)=3となる。ΣT2
j,kは、要素の数の分だけ加算する数式であり、図37(a)及び図37(b)では(T2
4,2+T2
4,3+T2
4,4)となる。
式(20)において、(T4j,i+T1)は、ロボット101iの制御点がj箇所目から(j+1)箇所目の溶接箇所への移動に必要な時間である。式(20)におけるTtempj,iの値が正の場合は、計算値分の待機時間T5j,iが発生する。式(20)におけるTtempj,iの値が負又は0の場合は、待機時間T5j,iが発生しない。つまり、粗動時間T4j,iを削減するか、非溶接時間T6j,i中に行う第2の時間T2j,iの合計時間又は第3の時間T3の合計時間を増加させることで、待機時間T5j,iを削減できる。
待機時間T5j,iを削減するために、各ロボット101iが受け持つ溶接箇所を工夫する方法がある。加工対象物Wの溶接箇所の一部を複数のロボット101iで溶接できる位置にそれぞれのロボット101iを配置する。そして、待機時間T5j,iが少なくなるように、それぞれのロボット101iが溶接する溶接箇所を決定する。この方法で待機時間T5j,iを削減するよう、複数のロボット101iの溶接箇所を決定する具体例について説明する。
図37(a)に示すように、ロボット1011を4か所目の溶接箇所から5か所目の溶接箇所へ動作させているものとする。このとき、ロボット1012、ロボット1013、及びロボット1014が、それぞれ4か所目の溶接箇所へ溶接を行うものとする。この場合、待機時間T54,1は、[{(T44,1+T1)-{(4×T3)+(T24,2+T24,3+T24,4)}]である。
また、ロボット1011を4か所目の溶接箇所から5か所目の溶接箇所へ動作させているものとする。このとき、ロボット1012及びロボット1013がそれぞれ4か所目の溶接箇所への溶接を行うものとし、ロボット1014は溶接を行わないものとする。この場合、待機時間T55,1は、[{(T44,1+T1)-{(3×T3)+(T24,2+T24,3)}]である。
ロボット1011を4か所目の溶接箇所から5か所目の溶接箇所へ動作させている最中に、他の3台のロボット101iが溶接する例と、他の2台のロボット101iが溶接する例について、待機時間T55,1を比較する。他の2台のロボット101iが溶接する場合の方が、待機時間T55,1が時間(T3+T24,4)だけ長くなる。すなわち、ロボット101iの非溶接時間T6j,i中に、溶接を行う他のロボット101iの台数が多いほど、待機時間T5j,iを削減できる。
なお、この例では待機時間T54,1がいずれも正の場合を示している。待機時間T54,1が0となると、更にロボットを増やしても待機時間は0のままである。
次に、図30に示す加工対象物Wが直方体形状であり、加工対象物Wの4つの側面と天面に、それぞれ溶接箇所があるものとし、加工対象物Wのまわりに4台のロボット101iが配置されているものとする。図38は、第10実施形態においてロボットの台数を4台とした場合を示す模式図である。図38において、加工対象物Wは、側面W1,W2,W3,W4と、天面W5と、を有する。4台のロボット1011,1012,1013,1014は、加工対象物Wの上方の位置から下方を見て、対角線上に配置されており、それぞれレーザヘッド1021,1022,1023,1024を支持している。ロボット1011で支持しているレーザヘッド1021は、ロボット1011が動作することにより側面W1,W2と天面W5それぞれにある溶接箇所を溶接可能である。ロボット1012で支持しているレーザヘッド1022は、ロボット1012が動作することにより側面W2,W3と天面W5それぞれにある溶接箇所を溶接可能である。ロボット1013で支持しているレーザヘッド1023は、ロボット1013が動作することにより側面W3,W4と天面W5それぞれにある溶接箇所を溶接可能である。ロボット1014で支持しているレーザヘッド1024は、ロボット1014が動作することにより側面W4,W1と天面W5それぞれにある溶接箇所を溶接可能である。側面W1上には、51点の溶接箇所があるものとする。側面W2上には、50点の溶接箇所があるものとする。側面W3上には、51点の溶接箇所があるものとする。側面W4上には、47点の溶接箇所があるものとする。天面W5上には、4点の溶接箇所があるものとする。
4台のロボット1011,1012,1013,1014がそれぞれ溶接する溶接箇所の数に差があるほど、非溶接時間T6j,i中に溶接を行う他のロボット101iの台数が少なくなり、待機時間T5j,iが長くなる。そこで、4台のロボット1011,1012,1013,1014が溶接する溶接箇所の数の差が最小となるように、加工対象物Wの溶接箇所を分担する。図38の例では、4台のロボット1011,1012,1013,1014の動作エリアが互いに重ならないように、側面W1,W2,W3,W4及び天面W5の中から、各ロボット101iが溶接を担当する面を決める。例えばロボット1011は、側面W1を担当し、側面W1上の51点の溶接箇所を溶接する。ロボット1012は、側面W2を担当し、側面W2上の50点の溶接箇所を溶接する。ロボット1013は、側面W3を担当し、側面W3上の51点の溶接箇所を溶接する。ロボット1014は、側面W4と天面W5とを担当し、側面W4上の47点と天面W5上の4点の合計51点の溶接箇所を溶接する。これにより、4台のロボット1011,1012,1013,1014が溶接する溶接箇所数の差が最小となるので、待機時間T5j,iを削減することができる。
このように、加工対象物W上の複数の溶接箇所のうちの一部を、2台以上のロボット101iが溶接できるようにそれぞれのロボット101iを配置することで、各ロボット101iが担当する溶接箇所の数の差を少なくすることができる。これにより、非溶接時間T6j,i中に溶接を行う他のロボット101iの台数を多くすることができるので、待機時間T5j,iを削減することができる。
また、上述の例のように、加工対象物Wが直方体形状のような多面体である場合には、ロボット101iの作業を側面、天面毎に分担するという簡単な対策で、各ロボット101iが干渉するのを容易に防止することができる。
ここで、図38の例では、4台のロボット101iの動作エリア同士が重ならないように、各ロボット101iが担当する加工対象物Wの面、即ち溶接箇所を決める場合について説明したが、これに限定するものではない。ロボット101i同士の動作エリアが重なっても、ロボット101i同士が干渉しないように、複数の溶接箇所を複数のロボットで分担してもよい。
図39は、第10実施形態においてロボットの台数を3台とした場合を示す模式図である。図39の加工対象物Wは、図38と同様のものである。3台のロボット1011,1012,1013は、図38と同様の配置である。図39においては、図38に示すロボット1014を除いている。上述したように、加工対象物W上の溶接箇所は、側面W1上に51点、側面W2上に50点、側面W3上に51点、側面W4上に47点、天面W5上に4点あるものとする。ロボット1011,1012,1013同士が干渉せず、かつロボット1011,1012,1013の動作エリアが重なるように各ロボット1011,1012,1013が担当する溶接箇所を決める。
ロボット1011は、側面W1の全点である51点と側面W2の17点の合計68点の溶接箇所を担当する。ロボット1012は、側面W2の33点と側面W3の35点の合計68点の溶接箇所を担当する。ロボット1013は、側面W3の16点と側面W4の全点である47点と天面W5の全点である4点の合計67点の溶接箇所を担当する。即ち、2台のロボット1011、1012が側面W2を担当し、2台のロボット1012、1013が側面W3を担当する。
2台のロボット101iの干渉を回避するように、同時に同一の側面W2,W3を溶接しないように溶接順を決める。例えば、ロボット1011は側面W1から溶接を開始し、側面W1が終了したら側面W2を溶接するようにする。ロボット1012は側面W2から溶接を開始し、側面W2内の担当する33点の溶接箇所の溶接が終了したら側面W3を溶接するようにする。ロボット1013は側面W3から溶接を開始し、側面W3内の担当する16点の溶接箇所の溶接が終了したら側面W4を溶接し、最後に天面W5を溶接するようにする。ロボット1011,1012,1013それぞれが最初に溶接する側面W1,W2,W3内の担当する溶接箇所の数に差をつけている。即ち、ロボット1011は側面W1の51点の溶接箇所の溶接を行い、ロボット1012は側面W2内の一部である33点の溶接箇所の溶接を行い、ロボット1013は側面W3内の一部である16点の溶接箇所の溶接を行う。このため、ロボット1012が側面W2内の一部である33点の溶接箇所を溶接完了して側面W3に移動する前に、ロボット1013が側面W3内の一部である16点の溶接箇所を溶接完了でき、側面W4に移動できる。また、ロボット1011が側面W1の全点である51点の溶接箇所を溶接完了して側面W2に移動する前に、ロボット1012が側面W2内の一部である33点の溶接箇所を溶接完了でき、側面W3に移動できる。このように、各ロボット101iの動作エリアが重なっても、ロボット101iの溶接順を考慮することで、ロボット101i同士の干渉を回避することができる。
ここで、上述したように、ロボット101iの台数Nが多いほど、非溶接時間T6j,i中に第2の時間T2j,iの合計時間、及び第3の時間T3の合計時間を増やすことができ、待機時間T5j,iを削減することができる。N台のロボット101iにおいては、ロボット101iの非溶接時間T6j,i中に、最大で残りの(N-1)台のロボット101iが溶接を行うことができる。そこで、時間(T4j,i+T1)よりも、(N-1)台分の第2の時間T2j,iとN台分の第3の時間T3との合計時間が長くなるように、台数Nを決めることで、待機時間T5j,iを短縮することができる。
ロボット101iの台数Nが増加するほど、レーザ発振器103の稼働率が高まり、加工品の生産効率が向上する。一方、ロボット101iの台数Nが少ないほど、装置サイズ、及び装置コストを低減できる。よって、これらを考慮して、ロボットの台数Nを決めればよい。また、レーザ発振器103の稼働率を高めるには、ロボット101iが受け持つ溶接箇所の溶接順番を工夫したり、複数のロボットの動作順番を工夫したりすればよい。これらの順番を工夫することで、待機時間T5j,iを短くできれば、レーザ発振器103の稼働率が高まるので、加工品の生産効率が向上する。
なお、同期信号SBAiによってレーザ発振のタイミングは管理しているため、TP02,1からTP12,1までの時間が変動しても、溶接ビードの長さのばらつきは変動せず、溶接強度の変動も発生しない。従って安定して溶接を行うことができる。
また、コントローラ121Bは、ロボットコントローラ122iから送信される同期信号SBAiを受信する度に、第1の時間T1として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器103を制御する。即ち、第1の時間T1として、各溶接箇所に対して個別の時間としているのではなく、共通の時間としている。したがって、コントローラ121Bは、ロボットコントローラ122iがいずれの軌道データPj,iの指令を開始したのかを認識することなく、同期信号SBAiを受信する度に、第1の時間T1として同じ時間をカウントすることになり、処理が簡略化される。
また、第1の時間T1が経過した時点でレーザヘッド102iが目標速度Vwj,iに達しており、この目標速度Vwj,iに達した等速状態でレーザ光を加工対象物Wに照射する。即ち、レーザヘッド102iを、加工対象物Wに対して等速で移動させることにより、レーザ光Liの焦点を加工対象物Wの表面に沿って等速で移動させることができる。よって、加工対象物Wにおいてレーザ光Liの焦点の移動方向に沿って入熱量が均一化され、加工対象物Wにレーザ光Liの焦点の移動方向に沿って均一な溶接ビードを形成することができる。これにより、高精度なレーザシーム溶接を実現することができる。
ここで、ロボットコントローラ122iにおける制御周期は、ロボット101iの動作を制御するのに適した値、例えば数ミリ秒に設定されている。本実施形態では、コントローラ121Bは、ロボットコントローラ122iの制御周期よりも短い制御周期でレーザ発振器103におけるレーザ発振のオンオフ、及び切替器104の切り替え動作を制御している。即ち、本実施形態では、コントローラ121Bにおいてレーザ発振器103及び切替器104を制御する制御周期は、ロボットコントローラ122iにおいてロボット101iを制御する制御周期よりも短い。よって、コントローラ121Bは、ロボットコントローラ122iよりも、第1の時間T1、第2の時間T2j,i及び第3の時間T3を正確に管理することができる。即ち、コントローラ121Bは、レーザ発振器103及び切替器104を短い制御周期で制御することができるので、レーザ発振器103を発停するタイミング、及び切替器104の切り替えのタイミングを正確に管理することができる。その結果、溶接ビードの長さのばらつきが低減でき、溶接強度のばらつきが低減される。
また、本実施形態によれば、ロボットコントローラ122iが軌道データPj,iの始点を指令するタイミングと、コントローラ121Bにおいて第1の時間T1の計時を開始するタイミングとが同期信号SBAiで同期するようにしている。ロボットコントローラ122iが軌道データPj,iの始点を指令するタイミングとは、軌道データPjの払い出しを開始するタイミングである。即ち、ロボットコントローラ122iにおいてロボット101iの動作と同期させた同期信号SBAiを発生させ、コントローラ121Bにおいて同期信号SBAiと同期した時刻からの経過時間によって、レーザ光の照射のオンオフを管理している。したがって、コントローラ121B及びロボットコントローラ122iは、複雑な演算処理等を行うことなく、ロボット101iの動作とレーザ発振器103のレーザ発振のオンオフを同期させている。よって、ロボット101iの動作とレーザ発振のタイミングのずれを低減することができる。これにより、レーザ光の照射を開始する目標の位置に対する実際の位置の誤差が低減される。また、ロボット101iの動作中に複雑な演算処理を行ってレーザ発振を制御する必要がないので、レーザ加工の精度を確保しながら、ロボット101iの動作を高速化することができ、加工品の生産効率を向上させることができる。
また、ロボットコントローラ122iの制御周期は、コントローラ121Bの制御周期よりも長い。このため、ロボットコントローラ122iにおいて動作開始指令SAiを認識するタイミングにばらつきが生じる。本実施形態では、コントローラ121Bは、動作開始指令SAiを送信したタイミングではなく、同期信号SBAiを受信したタイミングで、レーザ発振を行う第1の時間T1の計時を開始する。したがって、ロボット101iの動作とレーザ発振器103におけるレーザ発振のタイミングのずれを低減できる。
なお、ロボットコントローラ122iが、準備が完了したことを示す不図示の準備完了信号をオンするように構成してもよい。この場合、コントローラ121Bはその準備完了信号のオンを確認してから、動作開始指令SAiをオンすればよい。この場合、時刻TP02,1以降の時刻が遅れることになる。
また、動作開始指令SAiをオンするタイミングを求める演算処理は複雑になるが、第1の時間T1を一定のカウント値とせず、ロボット101iに対応して異なるカウント値としてもよい。例えば、第2の時間T2j,iと第3の時間T3とを加算した値に対して、第1の時間T1の変動分を加算したり減算したりすればよい。この演算は、最後の溶接箇所のレーザ照射タイミングから最初の溶接箇所へと、遡ってタイミングを決定して行くと、求めることができる。コントローラ121Bにこの演算を行わせる場合、コントローラ121Bは、すべての溶接箇所とロボットの順番の情報を取得する必要がある。
また、本実施形態では、ロボット1011からロボット101Nのどのロボットにどの順番で動作開始指令SAiを送るかを予め定めておいている。しかし、ロボットコントローラ122iが同期信号SBAiとともに第2の時間T2j,iをコントローラ121Bに送ることで、準備完了状態となったロボット101iに対して動作開始指令SAiを送る構成にすることもできる。コントローラ121Bで管理するシーケンスSM1とシーケンスSM2で計時に使用する時間は第1の時間T1、第2の時間T2j,i、第3の時間T3である。そのうち、第1の時間T1と第3の時間T3は固定の時間であるため予めコントローラ121Bに記憶させておくことができる。第2の時間T2j,iは溶接箇所ごとに異なる値となるため、ロボットコントローラ122iが送る同期信号SBAiとともに、ロボットコントローラ122iからコントローラ121Bに送ればよい。送信された第2の時間T2j,iは同期信号SBAiで起動されるシーケンスSM1とシーケンスSM2で使われる。この方式を使用すれば、どのロボットにどの順番で動作開始指令SAiを送るかを予め定める必要がなくロボット装置110の独立性を高めることができる。
なお、上述の第10実施形態において、ロボット101iが直線補間命令に従って動作している途中に、異常が発生する場合がある。ロボットコントローラ122iは、コントローラ121Bに対して、ロボット101iの状態を示す信号を周期的に送信すればよい。コントローラ121Bは、ロボット101iが異常状態であることを示す信号を受信した場合、レーザ光を発振しないようにレーザ発振器103を制御すればよい。
また、上述の第10実施形態において、ロボットコントローラ122iが、コントローラ121Bに対してレーザ発振を許可する許可信号を送るようにしてもよい。例えば、ロボットコントローラ122iが、直線補間命令によって軌道データPjの払い出しを実行中であるときに、許可信号をオンする。コントローラ121Bは、許可信号とレーザ発振指令とをAND演算し、演算結果をレーザ発振器103に送信するようにしてもよい。これにより、ロボットコントローラ122iが許可信号をオンしなければ、レーザ光は発振されないようになる。このAND演算はコントローラ121Bが行うが、別の電子回路で処理してもよい。
また、上述の第10実施形態において、ロボット101iは、レーザ光が人間に暴露しないように、遮光されたブース内(図示せず)に設置されているのが好ましい。人がブースへ入室するための扉を開くと、レーザ発振器103のレーザ発振が停止するようになっている。また、光ファイバケーブル151iがレーザヘッド102i及び切替器104と正しく接続されていない場合には、光ファイバケーブル151i内の導線が接続されず、レーザ発振器103のレーザ発振が停止するようになっている。また、光ファイバケーブル152がレーザ発振器103及び切替器104と正しく接続されていない場合には、光ファイバケーブル152内の導線が接続されず、レーザ発振器103のレーザ発振が停止するようになっている。また、光ファイバケーブル151i,152に一定以上の曲げが加わると内部の導線が切れ、レーザ発振器103のレーザ発振が停止するようになっている。また、セーフティレーザスキャナやセーフティライトカーテンなどで人間を感知して、レーザ発振器103のレーザ発振を停止するようにすることも可能である。また、ロボットコントローラ122iやコントローラ121Bがなんらかの原因によって応答しなくなった場合に備えて、外部のハードウェアによって監視してレーザ発振を停止することも可能である。例えば、ロボットコントローラ122iやコントローラ121Bから一定周期ごとにオン/オフする信号を出力し、出力された信号が一定時間変化しなければレーザ発振を止めればよい。
また、上述の第10実施形態では、制御装置120Bが、コントローラ121Bとロボットコントローラ1221,1222,…,122Nとで構成される場合について説明したが、これに限定するものではない。コントローラ121Bとロボットコントローラ1221,1222,…,122Nとの機能を併せ持つことが可能であれば、制御装置を1つのコンピュータで実現してもよい。例えば、複数のプロセッサ、又はプロセッサが有する複数のコアにより並列処理が可能であれば、制御装置を1つのコンピュータで実現することは可能である。
また、上述の第10実施形態では、ロボット1011,1012,…,101Nが、垂直多関節のロボットの場合について説明したが、これに限定するものではない。ロボットが、例えば水平多関節のロボット、パラレルリンクのロボット、又は直交ロボット等のロボットであってもよい。また、各ロボット1011,1012,…,101Nが異なる構成であってもよい。
また、上述の第10実施形態では、レーザ加工装置がレーザ溶接加工を行う場合について説明したが、これに限定するものではなく、例えばレーザ溝あけ加工又はレーザ切断加工を行う場合であってもよい。
[第11実施形態]
次に、第1~第10実施形態のいずれかのレーザ加工装置を用いたレーザ加工方法により製造する画像形成装置の製造方法について説明する。図40は、第10実施形態に係る画像形成装置の斜視図である。第10実施形態では、第1~第10実施形態のいずれかのレーザ加工装置を用いて、画像形成装置800の構成要素の1つである枠体(フレーム)の溶接を行い、画像形成装置800を製造する。
図40に示す画像形成装置800は、例えば、電子写真方式を採用するフルカラープリンタである。画像形成装置800は、オプションの給紙モジュール850の上面(載置面)に載置可能である。画像形成装置800は、2段の給紙カセット801A,801Bを有する。給紙モジュール850は、2段の給紙カセット851A,851Bを有する。各給紙カセットには、サイズや坪量の異なる記録材(用紙、OHPシートなどのシート材)が収納可能である。画像形成装置800の操作部802や、画像形成装置800に接続されたパーソナルコンピュータなどの外部端末から、画像形成する記録材を選択することが可能である。なお、以下の説明では、ユーザが画像形成装置800を操作する側を前側、画像形成装置800の背面側を後側とし、左右については、画像形成装置を前側から見た場合とする。
画像形成装置800内では、記録材が搬送され、記録材に画像が形成される。このため、画像形成装置800の枠体(フレーム)が歪むと画像不良や動作不良が生じる場合がある。したがって、画像形成装置800の枠体が歪むのを抑制することが、画像不良や動作不良などを抑制する上で重要となる。
図41は、第11実施形態における加工対象物である枠体900の一部を示す斜視図である。第11実施形態では、レーザ加工により、枠体900を構成する部材同士を溶接により締結する場合について説明する。
まず、枠体900となる支柱904及びステイ701を用意する。支柱904は、上下方向に平行で互いに直交する第1の側壁904A及び第2の側壁904Bを有する。ステイ701は、その端部が第1の側壁904A及び第2の側壁904Bに当接するように配置される。第1の側壁904Aは、前後方向に平行に配置され、第2の側壁904Bは、左右方向に平行に配置される。このため、ステイ701は、第1の側壁904A及び第2の側壁904Bにより前後方向及び左右方向に位置決めされた状態で上下方向に移動可能に配置される。
ステイ701の上下方向の位置調整を行った後、溶接箇所941,942,943,944を、レーザシーム溶接する。ステイ701と支柱904とをレーザ溶接により固定することで、枠体900を製造する。
このように、画像形成装置800の枠体900には、多くの溶接箇所が存在する。第1から第10実施形態のレーザ加工装置を用いたレーザ加工方法により、効率よく短時間で高精度に溶接を行うことが可能となる。これにより、枠体900が歪むのを抑制することができ、シートに形成される画像の不良や画像形成装置800の動作不良を抑制することができる。
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。即ち、上述の実施形態では、コントローラが、汎用コンピュータである場合について説明したが、これに限定するものではない。コントローラが、例えばマイクロコンピュータやデジタルシグナルプロセッサであってもよい。