(57)【要約】【課題】加工品の生産効率を向上させる。【解決手段】レーザ溶接装置１００は、ロボット１０１と、レーザヘッド１０２と、レーザ発振器１０３と、制御装置１２０と、を備える。制御装置１２０は、加工対象物Ｗに対するレーザヘッド１０２の移動速度が一定の目標速度となるようにレーザヘッド１０２を加速させる動作をロボット１０１に開始させてから第１の時間が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。【選択図】図１
2019038034.tif 000002
【特許請求の範囲】
【請求項１】
レーザ光を発生する光源と、
前記光源にて発生されたレーザ光を出射するレーザヘッドと、
前記レーザヘッドを移動させるロボットと、
前記光源におけるレーザ光の発生又は停止を制御し、かつ前記ロボットの動作を制御する制御装置と、を備え、
前記制御装置は、加工対象物に対する前記レーザヘッドの移動速度が一定の目標速度となるように前記レーザヘッドを加速させる動作を前記ロボットに開始させてから第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とするレーザ加工装置。
【請求項２】
前記制御装置は、前記レーザヘッドにて加工対象物にレーザ光を照射している間、前記レーザヘッドの前記移動速度が前記目標速度を維持するように前記ロボットを動作させることを特徴とする請求項１に記載のレーザ加工装置。
【請求項３】
前記制御装置は、前記第１の時間が経過してから更に第２の時間が経過した時点で、レーザ光の発生を停止するよう前記光源を制御することを特徴とする請求項１又は２に記載のレーザ加工装置。
【請求項４】
前記第２の時間は、レーザ光の照射を開始する教示位置と、レーザ光の照射を終了する教示位置との距離を、前記目標速度で割り算した値であることを特徴とする請求項３に記載のレーザ加工装置。
【請求項５】
前記制御装置は、
前記光源におけるレーザ光の発生又は停止を制御する第１のコントローラと、
前記ロボットの動作を制御する第２のコントローラと、を有し、
前記第２のコントローラは、前記レーザヘッドを加速させる動作を前記ロボットに開始させた時点で、所定の信号を前記第１のコントローラへ送信し、
前記第１のコントローラは、前記所定の信号を受信してから前記第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする請求項１乃至４のいずれか１項に記載のレーザ加工装置。
【請求項６】
前記第１のコントローラの制御周期は、前記第２のコントローラの制御周期よりも短いことを特徴とする請求項５に記載のレーザ加工装置。
【請求項７】
前記第２のコントローラは、レーザ光の照射を開始する教示位置と、レーザ光の照射を終了する教示位置とを含む所定の区間の軌道データに従って、前記ロボットの動作を制御することを特徴とする請求項５又は６に記載のレーザ加工装置。
【請求項８】
前記第２のコントローラは、前記軌道データの払い出しを開始して前記ロボットを制御する時点で、前記所定の信号を前記第１のコントローラへ送信することを特徴とする請求項７に記載のレーザ加工装置。
【請求項９】
前記軌道データは、互いに異なる複数の軌道データを含んでおり、
前記第２のコントローラは、前記複数の軌道データに従って、順次、前記ロボットの動作を制御し、
前記第１のコントローラは、前記所定の信号を受信する度に、前記第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする請求項７又は８に記載のレーザ加工装置。
【請求項１０】
前記第１のコントローラは、前記第２のコントローラに指令を送信し、
前記第２のコントローラは、前記指令を受信した場合に、前記レーザヘッドを加速させる動作を前記ロボットに開始させることを特徴とする請求項５乃至９のいずれか１項に記載のレーザ加工装置。
【請求項１１】
前記制御装置は、前記第１の時間の経過により前記ロボットの指令の位置が進む距離と、前記第１の時間が経過した時点において前記ロボットの応答遅れにより発生する距離とを用いて、前記第１の時間の経過によって前記ロボットが移動する助走距離を求め、レーザ光の照射を開始する教示位置に対して前記助走距離の分ずれた位置に前記ロボットを移動させてから、前記レーザヘッドを加速させる動作を開始させることを特徴とする請求項１乃至１０のいずれか１項に記載のレーザ加工装置。
【請求項１２】
前記制御装置は、前記第１の時間が経過した時点において前記ロボットの応答遅れにより発生する距離を、前記目標速度と所定の定数を用いて計算することを特徴とする請求項１１に記載のレーザ加工装置。
【請求項１３】
前記制御装置は、前記第１の時間が経過した時点において前記ロボットの応答遅れにより発生する距離を、加工箇所ごとに予め求めておくことを特徴とする請求項１１又は１２に記載のレーザ加工装置。
【請求項１４】
前記制御装置は、レーザ光の照射を開始する教示位置に対する前記第１の時間が経過した時点での前記ロボットの位置の誤差が閾値以上である場合、前記誤差が前記閾値よりも小さくなるように前記助走距離を設定することを特徴とする請求項１１乃至１３のいずれか１項に記載のレーザ加工装置。
【請求項１５】
前記制御装置は、加工対象物にレーザ加工する本動作の前に試験動作を前記ロボットに行わせ、
前記試験動作時に発生した前記ロボットの振動に基づき、前記本動作において前記レーザヘッドを加速させる動作を開始する位置に前記ロボットを動作させるときの加速度を、加工箇所ごとに調整しておくことを特徴とする請求項１乃至１４のいずれか１項に記載のレーザ加工装置。
【請求項１６】
前記制御装置は、前記試験動作として、前記レーザヘッドを加速させる動作を開始する位置に前記ロボットを動作させた後、レーザ光の照射を開始する教示位置と、レーザ光の照射を終了する教示位置とを含む所定の区間の軌道データに従って前記ロボットを動作させることを特徴とする請求項１５に記載のレーザ加工装置。
【請求項１７】
前記制御装置は、前記ロボットを動作させた時の、前記ロボットの関節の角度から求めた制御点に基づいて、前記加速度を調整することを特徴とする請求項１６に記載のレーザ加工装置。
【請求項１８】
前記制御装置は、前記試験動作として、前記レーザヘッドを加速させる動作を開始させる位置へ前記ロボットの指令の位置を移動させた時点から、前記ロボットの関節の角度から求めた制御点が前記レーザヘッドを加速させる動作を開始させる位置へ整定するのに要した時間により、前記加速度を調整することを特徴とする請求項１５に記載のレーザ加工装置。
【請求項１９】
前記制御装置は、前記光源及び前記ロボットを制御して、レーザシーム溶接を行うことを特徴とする請求項１乃至１８のいずれか１項に記載のレーザ加工装置。
【請求項２０】
光源におけるレーザ光の発生又は停止を制御し、かつ前記光源にて発生されたレーザ光を出射させるレーザヘッドを支持するロボットの動作を制御する制御装置であって、
加工対象物に対する前記レーザヘッドの移動速度が目標速度となるように前記レーザヘッドを加速させる動作を前記ロボットに開始させてから第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする制御装置。
【請求項２１】
光源にて発生されたレーザ光を出射するレーザヘッドを支持したロボットにより前記レーザヘッドを移動させつつ、前記レーザヘッドからレーザ光を出射して加工対象物を加工するレーザ加工方法であって、
加工対象物に対する前記レーザヘッドの移動速度が目標速度となるように前記レーザヘッドを加速させる動作を前記ロボットに開始させる工程と、
前記レーザヘッドを加速させる動作を前記ロボットに開始させてから第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御する工程と、を有することを特徴とするレーザ加工方法。
【請求項２２】
前記第１の時間が経過した時点から更に第２の時間が経過した時点で、レーザ光の発生を停止するよう前記光源を制御する工程を更に有することを特徴とする請求項２１に記載のレーザ加工方法。
【請求項２３】
レーザ光を発生する光源と、
レーザ光を出射する複数のレーザヘッドと、
前記複数のレーザヘッドをそれぞれ移動させるロボット装置と、
前記複数のレーザヘッドのうちいずれかの前記レーザヘッドに、前記光源にて発生されたレーザ光を導くよう光路を切り替える切替器と、
前記切替器の切り替え動作と前記ロボット装置の動作を制御する制御装置と、を備え、
前記複数のレーザヘッドは、第１のレーザヘッドと、第２のレーザヘッドとを含み、
前記制御装置は、前記第１のレーザヘッドにおいて加工対象物に対するレーザ光の照射が終了する前に、次にレーザ光を導く前記第２のレーザヘッドの加工対象物に対する移動速度が目標速度となるよう前記第２のレーザヘッドを加速させる動作を、前記ロボット装置に開始させることを特徴とするレーザ加工装置。
【請求項２４】
前記制御装置は、前記第２のレーザヘッドにて加工対象物にレーザ光を照射している間、前記第２のレーザヘッドの前記移動速度が前記目標速度を維持するように前記ロボット装置を動作させることを特徴とする請求項２３に記載のレーザ加工装置。
【請求項２５】
前記制御装置は、前記第２のレーザヘッドを加速させる動作を前記ロボット装置に開始させてから第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする請求項２３又は２４に記載のレーザ加工装置。
【請求項２６】
前記制御装置は、前記第１の時間が経過してから更に第２の時間が経過した時点で、レーザ光の発生を停止するよう前記光源を制御することを特徴とする請求項２５に記載のレーザ加工装置。
【請求項２７】
前記第２の時間は、レーザ光の照射を開始する教示位置と、レーザ光の照射を終了する教示位置との距離を、前記目標速度で割り算した値であることを特徴とする請求項２６に記載のレーザ加工装置。
【請求項２８】
前記制御装置は、前記第１のレーザヘッドを加速させる動作を前記ロボット装置に開始させてから、前記第２の時間と予め設定された第３の時間との合計時間が経過した時点で、前記第２のレーザヘッドを加速させる動作を前記ロボット装置に開始させることを特徴とする請求項２６又は２７に記載のレーザ加工装置。
【請求項２９】
前記第３の時間は、前記切替器において切り替え動作に要する時間であることを特徴とする請求項２８に記載のレーザ加工装置。
【請求項３０】
前記ロボット装置は、前記第１のレーザヘッドを支持する第１のロボットと、前記第２のレーザヘッドを支持する第２のロボットとを含むＮ台のロボットを有しており、
前記第１のレーザヘッドが、レーザ光の照射を終了してから再びレーザ光の照射を開始するまでの時間は、
（（前記第２の時間×（Ｎ−１））＋（前記第３の時間×Ｎ））よりも短いことを特徴とする請求項２８又は２９に記載のレーザ加工装置。
【請求項３１】
前記制御装置は、各前記レーザヘッドを加速させる動作を前記ロボット装置に開始させる度に、前記第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする請求項２５乃至３０のいずれか１項に記載のレーザ加工装置。
【請求項３２】
前記ロボット装置は、前記第１のレーザヘッドを支持する第１のロボットと、前記第２のレーザヘッドを支持する第２のロボットとを含む複数のロボットを有しており、
前記制御装置は、
前記光源にレーザ光を発生又は停止させる制御、前記第２のレーザヘッドを加速させる動作を、前記第２のロボットに開始させる制御、及び前記切替器に切り替え動作を行わせる制御を実行する第１のコントローラと、
前記複数のロボットそれぞれを制御する複数の第２のコントローラと、を有していることを特徴とする請求項２３乃至３１のいずれか１項に記載のレーザ加工装置。
【請求項３３】
前記ロボット装置は、前記第１のレーザヘッドを支持する第１のロボットと、前記第２のレーザヘッドを支持する第２のロボットとを含む複数のロボットを有しており、
前記制御装置は、
前記光源にレーザ光を発生又は停止させる制御、前記第２のレーザヘッドを加速させる動作を、前記第２のロボットに開始させる開始指令を送信する制御、及び前記切替器に切り替え動作を行わせる制御を実行する第１のコントローラと、
前記複数のロボットそれぞれを制御する複数の第２のコントローラと、を有しており、
前記第１のコントローラは、前記複数の第２のコントローラのうち、前記第２のロボットを制御する第２のコントローラに前記開始指令を送信し、
前記開始指令を受信した第２のコントローラは、前記第２のレーザヘッドを加速させる動作を、前記第２のロボットに開始させるとともに、前記第１のコントローラへ所定の信号を送信し、
前記第１のコントローラは、前記所定の信号を受信してから前記第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする請求項２５乃至３１のいずれか１項に記載のレーザ加工装置。
【請求項３４】
前記第１のコントローラの制御周期は、各前記第２のコントローラの制御周期よりも短いことを特徴とする請求項３２又は３３に記載のレーザ加工装置。
【請求項３５】
前記制御装置は、前記光源、前記ロボット装置、及び前記切替器を制御して、レーザシーム溶接を行うことを特徴とする請求項２３乃至３４のいずれか１項に記載のレーザ加工装置。
【請求項３６】
光源にて発生されたレーザ光が複数のレーザヘッドのうちいずれかの前記レーザヘッドに導かれるよう切替器の切り替え動作を制御し、かつ前記複数のレーザヘッドをそれぞれ移動させるロボット装置の動作を制御する制御装置であって、
前記複数のレーザヘッドに含まれる第１のレーザヘッド及び第２のレーザヘッドのうち前記第１のレーザヘッドにおいて加工対象物に対するレーザ光の照射が終了する前に、次にレーザ光を導く前記第２のレーザヘッドの加工対象物に対する移動速度が目標速度となるよう前記第２のレーザヘッドを加速させる動作を、前記ロボット装置に開始させることを特徴とする制御装置。
【請求項３７】
光源にて発生されたレーザ光が複数のレーザヘッドのうちいずれかの前記レーザヘッドに導かれるよう切替器の切り替え動作を制御し、かつ前記複数のレーザヘッドをそれぞれ移動させるロボット装置の動作を制御して、前記レーザヘッドからレーザ光を出射して加工対象物を加工するレーザ加工方法であって、
前記複数のレーザヘッドに含まれる第１のレーザヘッド及び第２のレーザヘッドのうち前記第１のレーザヘッドから加工対象物に対しレーザ光を照射する工程と、
前記第１のレーザヘッドにおいて加工対象物に対するレーザ光の照射が終了する前に、次にレーザ光を導く前記第２のレーザヘッドの加工対象物に対する移動速度が目標速度となるよう前記第２のレーザヘッドを加速させる動作を、前記ロボット装置に開始させる工程と、を備えたことを特徴とするレーザ加工方法。
【請求項３８】
請求項２１又は３７に記載のレーザ加工方法を用いて枠体の溶接を行うことを特徴とする画像形成装置の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザ光で加工対象物を加工するレーザ加工装置、制御装置、レーザ加工方法及び画像形成装置の製造方法に関する。
【背景技術】
【０００２】
レーザ光で加工対象物を加工するレーザ加工装置として、レーザ光を発生させる光源と、光源にて発生されたレーザ光を加工対象物に向けて照射するレーザヘッドと、レーザヘッドを移動させるロボットと、を備えたものが知られている。この種のレーザ加工装置の一例として、レーザ光で溶接するレーザ溶接装置が知られている。レーザ溶接装置を用いたレーザ溶接として、レーザ光の照射位置を固定してスポットで溶接するレーザスポット溶接と、レーザ光で加工対象物を走査して溶接ビードを形成するレーザシーム溶接とが知られている。特許文献１には、レーザヘッドをロボットハンドに装着し、ロボットハンドを移動させることでレーザシーム溶接を行うレーザ溶接装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２３７２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の方法では、ロボットコントローラが、移動中のロボットハンドの現在位置情報をエンコーダから取得し、現在位置情報に基づき、ロボットハンドがレーザ照射位置の始端に到達する時間軸上の溶接開始位置を予測している。
【０００５】
しかし、特許文献１に記載のロボットコントローラは、ロボットの動作中に予測演算等の時間を要する複雑な演算処理をリアルタイムで行わなければならない。したがって、高速動作するロボットに対しては、演算処理が間に合わず、ロボットと光源との間で制御のタイミングがずれてしまい、加工対象物に対してレーザ光を照射する位置の精度が低下することがあった。そのため、ロボットを低速で動作させなければならなかったため、加工品の生産効率が低いものであった。
【０００６】
そこで、本発明は、加工品の生産効率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のレーザ加工装置は、レーザ光を発生する光源と、前記光源にて発生されたレーザ光を出射するレーザヘッドと、前記レーザヘッドを移動させるロボットと、前記光源におけるレーザ光の発生又は停止を制御し、かつ前記ロボットの動作を制御する制御装置と、を備え、前記制御装置は、加工対象物に対する前記レーザヘッドの移動速度が一定の目標速度となるように前記レーザヘッドを加速させる動作を前記ロボットに開始させてから第１の時間が経過した時点で、レーザ光を発生するよう前記光源を制御することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、加工品の生産効率が向上する。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るレーザ加工装置の一例であるレーザ溶接装置の概略構成を示す説明図である。
【図２】第１実施形態におけるレーザ溶接装置の制御系の一例を示すブロック図である。
【図３】第１実施形態における制御点の経路の一例を示す説明図である。
【図４】第１実施形態における制御点の移動距離の一例を示す説明図である。
【図５】（ａ）及び（ｂ）は、第１実施形態におけるレーザヘッドの目標速度を変更した際の移動プロファイルを示す説明図である。
【図６】第１実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
【図７】第２実施形態に係るレーザ加工装置の一例であるレーザ溶接装置の概略構成を示す説明図である。
【図８】第２実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
【図９】参考例の説明図である。
【図１０】第３実施形態における制御点の経路の一例を示す説明図である。
【図１１】第３実施形態における制御点の経路の一例を示す説明図である。
【図１２】（ａ）及び（ｂ）は、第３実施形態における制御点の経路の一例を示す説明図である。
【図１３】（ａ）及び（ｂ）は、第３実施形態における速度と時間との関係を示す説明図である。
【図１４】（ａ）及び（ｂ）は、第３実施形態における制御点の経路の一例を示す説明図である。
【図１５】第３実施形態における第１の時間を決定する測定方法を説明するための図である。
【図１６】第３実施形態において移動命令に従って制御点を移動させたときの応答の例を示したグラフである。
【図１７】第３実施形態における助走距離の算出方法を説明するための図である。
【図１８】第３実施形態において移動する制御点の時間と速度との関係を示す図である。
【図１９】第３実施形態における減速距離の算出方法を説明するための図である。
【図２０】（ａ）及び（ｂ）は、第３実施形態におけるロボットコントローラの処理を説明するための図である。
【図２１】第４実施形態におけるコントローラとロボットコントローラとの間の通信を示すシーケンス図である。
【図２２】第５実施形態における光位置センサの配置例を示す図である。
【図２３】（ａ）及び（ｂ）は、第５実施形態における測定結果を示すグラフである。
【図２４】第６実施形態における助走距離の算出シーケンスを示すフローチャートである。
【図２５】第６実施形態における減速距離の算出シーケンスを示すフローチャートである。
【図２６】（ａ）は、参考例としてロボットに振動が発生している状態で制御点が辿る経路を説明するための図である。（ｂ）は、参考例として移動する制御点の時間と速度との関係を示す図である。
【図２７】第７実施形態における加速度を決定するシーケンスを示すフローチャートである。
【図２８】（ａ）、（ｂ）及び（ｃ）は、第８実施形態においてロボットの振動を評価する方法を説明するための図である。
【図２９】第９実施形態におけるコントローラとロボットコントローラとの間の通信を示すシーケンス図である。
【図３０】第１０実施形態に係るレーザ加工装置の一例であるレーザ溶接装置の概略構成を示す説明図である。
【図３１】第１０実施形態におけるレーザ溶接装置の制御系の一例を示すブロック図である。
【図３２】第１０実施形態における制御点の経路の一例を示す説明図である。
【図３３】第１０実施形態における制御点の移動距離の一例を示す説明図である。
【図３４】（ａ）及び（ｂ）は、第１０実施形態におけるレーザヘッドの目標速度を変更した際の移動プロファイルを示す説明図である。
【図３５】第１０実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
【図３６】第１０実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
【図３７】（ａ）及び（ｂ）は、第１０実施形態における、ロボット、レーザ発振器、切替器の動作時間の一例を示すタイミングチャートである。
【図３８】第１０実施形態における加工対象物とロボットの配置の一例を示す説明図である。
【図３９】第１０実施形態における加工対象物とロボットの配置の一例を示す説明図である。
【図４０】第１１実施形態に係る画像形成装置の斜視図である。
【図４１】第１１実施形態における加工対象物である枠体の一部を示す斜視図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るレーザ加工装置の一例であるレーザ溶接装置１００の概略構成を示す説明図である。レーザ溶接装置１００は、ロボット１０１、レーザヘッド１０２、光源の一例であるレーザ発振器１０３、及び制御装置１２０を備えている。制御装置１２０は、装置全体の制御、具体的にはロボット１０１の動作、及びレーザ発振器１０３におけるレーザ光の発生又は停止を制御する。制御装置１２０は、第１のコントローラの一例であるコントローラ１２１と、第２のコントローラの一例であるロボットコントローラ１２２とを有する。ロボット１０１は、マニピュレータである。
【００１１】
レーザ発振器１０３とレーザヘッド１０２とは、レーザ光の光路となる光ファイバケーブル１５１で接続されている。レーザ発振器１０３とコントローラ１２１とは、互いにデジタル信号の通信が可能にケーブル１５３で接続されている。ロボットアーム１１１とロボットコントローラ１２２とは、動力線及び信号線を有するケーブル１５５で接続されている。コントローラ１２１とロボットコントローラ１２２とは、互いにデジタル信号の通信が可能にケーブル１５６で接続されている。
【００１２】
レーザ発振器１０３は、連続発振レーザ又はパルス発振レーザであり、レーザ発振によりレーザ光を発生する。レーザ発振器１０３にて発生されたレーザ光は、光ファイバケーブル１５１を介してレーザヘッド１０２に送られる。レーザヘッド１０２は、レーザ発振器１０３にて発生されたレーザ光Ｌを出射する。レーザヘッド１０２から出射されたレーザ光Ｌの焦点は、レーザヘッド１０２に対して所定距離の位置に結ばれる。コントローラ１２１は、レーザ発振器１０３におけるレーザ光の発生又は停止を制御する。即ち、コントローラ１２１は、レーザ発振器１０３にレーザ光の発生又は停止をケーブル１５３を介して指令する。
【００１３】
ロボット１０１は、例えば垂直多関節のロボットであり、ロボットアーム１１１と、ロボットアーム１１１に取り付けられたエンドエフェクタの一例であるロボットハンド１１２とを有する。ロボット１０１は、レーザヘッド１０２を支持する。第１実施形態では、ロボット１０１は、ロボットハンド１１２がレーザヘッド１０２を把持することで、レーザヘッド１０２を支持する。なお、例えばレーザヘッド１０２をロボットアーム１１１の先端又はロボットハンド１１２に取り付けて、ロボット１０１にレーザヘッド１０２を支持させてもよい。
【００１４】
レーザヘッド１０２がロボット１０１に支持されているので、ロボット１０１を動作させることにより、レーザヘッド１０２を所望の位置及び姿勢に移動させることができる。ロボット１０１を動作させてレーザヘッド１０２を所望の位置及び姿勢に移動させることにより、レーザ光Ｌの焦点を空間における所望の位置に移動させることができる。レーザ光Ｌの焦点を、加工対象物Ｗにおいて溶接ビードを形成させる位置に合わせることにより、加工対象物Ｗをレーザ光Ｌで溶接加工することができる。なお、加工対象物Ｗを加工することで、加工品が得られる。
【００１５】
第１実施形態では、制御装置１２０がレーザ発振器１０３及びロボット１０１を制御して、レーザシーム溶接を行う。レーザシーム溶接においては、レーザ光Ｌとして連続波を用いるものと、パルス波を用いるものとがあるが、いずれであってもよい。レーザシーム溶接では、レーザ光Ｌで加工対象物Ｗの表面を走査する必要がある。第１実施形態では、ガルバノミラーを用いず、ロボット１０１に支持されたレーザヘッド１０２を移動させながらレーザ光Ｌを出射し、レーザ光Ｌで加工対象物Ｗの表面を走査して、レーザ溶接加工する。ガルバノミラーを省略した分、コスト削減になる。加工対象物Ｗにおいて、加工箇所として溶接箇所が複数ある場合には、溶接箇所を順番にレーザ溶接加工する。
【００１６】
図２は、第１実施形態におけるレーザ溶接装置１００の制御系の一例を示すブロック図である。コントローラ１２１は、例えば汎用コンピュータで構成され、プロセッサの一例であるＣＰＵ（Central  Processing  Unit）３０１を有する。また、コントローラ１２１は、ＣＰＵ３０１を動作させる基本プログラム等が格納されたＲＯＭ（Read  Only  Memory）３０２、及びＣＰＵ３０１の作業領域としてのＲＡＭ（Random  Access  Memory）３０３を有する。また、コントローラ１２１は、記憶装置の一例であるＨＤＤ（Hard  Disk  Drive）３０４と、ディスクドライブ３０５とを有する。ディスクドライブ３０５は、記録媒体の一例である記録ディスク３２３に記録されたプログラム等を読み出すことができる。
【００１７】
また、コントローラ１２１は、インタフェース（Ｉ／Ｆ）３１１，３１２を有する。これらＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、ディスクドライブ３０５、Ｉ／Ｆ３１１，３１２は、バス３１０で互いに通信可能に接続されている。Ｉ／Ｆ３１２には、ケーブル１５３でレーザ発振器１０３が接続されている。
【００１８】
ＣＰＵ３０１には、クロック発生回路３１３が接続されている。ＣＰＵ３０１は、クロック発生回路３１３にて発生されたクロック信号に同期して動作する。つまり、ＣＰＵ３０１の動作周波数は、クロック発生回路３１３のクロック信号によって決まる。
【００１９】
ＨＤＤ３０４には、ＣＰＵ３０１に計時処理を行わせたり、ＣＰＵ３０１に信号の送受信処理を行わせたりする制御プログラム３２１が記憶（記録）されている。ＣＰＵ３０１は、制御プログラム３２１に従って、計時処理や信号の送受信処理等の各種の処理を実行する。また、ＨＤＤ３０４には、後述する第１の時間Ｔ１及び第２の時間Ｔ２ｊなどの時間のデータを含む各種のデータ３２２が記憶（記録）される。ここで、ｊは、正の整数であり、加工箇所である溶接箇所に対応付けて付与した通し番号であり、溶接する順番でもある。なお、データ３２２は、制御プログラム３２１に組み込まれていてもよい。
【００２０】
ＣＰＵ３０１は、制御プログラム３２１を実行することにより、ソフトウェアタイマとして機能する。具体的には、ＣＰＵ３０１は、第１の時間Ｔ１を計時するタイマと、第２の時間Ｔ２ｊを計時するタイマとして機能する。また、ＣＰＵ３０１は、制御プログラム３２１を実行することにより、レーザ発振器１０３にレーザ発振指令ＳＲ１（信号）を送信してレーザ発振器１０３を制御する。また、制御プログラム３２１は、Ｉ／Ｆからの読込処理、演算処理、Ｉ／Ｆへの出力処理を定期的に行っている。この周期をコントローラ１２１の制御周期と呼ぶこととする。
【００２１】
なお、制御プログラム３２１が記録される記録媒体は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラム３２１を供給するための記録媒体としては、図２に示すＲＯＭ３０２，記録ディスク３２３、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭ、ブルーレイ等の光ディスク、磁気ディスク、磁気テープ、半導体メモリ等を用いることができる。
【００２２】
ロボットコントローラ１２２は、ロボット１０１の制御を行う専用のコンピュータである。なお、図２においては、ロボット１０１として、ロボットアーム１１１の制御系について図示し、ロボットハンド１１２の制御系については図示を省略している。ロボットコントローラ１２２は、プロセッサの一例であるＣＰＵ４０１、ＣＰＵ４０１を動作させる基本プログラム等が格納されたＲＯＭ４０２、及びＣＰＵ４０１の作業領域としてのＲＡＭ４０３を有する。また、ロボットコントローラ１２２は、記憶装置の一例であるＨＤＤ４０４を有する。
【００２３】
また、ロボットコントローラ１２２は、サーボ演算部の一例であるＦＰＧＡ４１６、及び電流アンプ４１７を有する。また、ロボットコントローラ１２２は、インタフェース（Ｉ／Ｆ）４１１を有する。ＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３、ＨＤＤ４０４、ＦＰＧＡ４１６、Ｉ／Ｆ４１１は、バス４１０で互いに通信可能に接続されている。また、コントローラ１２１のＩ／Ｆ３１１とロボットコントローラ１２２のＩ／Ｆ４１１とがケーブル１５６で接続されている。
【００２４】
ＣＰＵ４０１には、クロック発生回路４１４が接続され、ＦＰＧＡ４１６には、クロック発生回路４１５が接続されている。ＣＰＵ４０１は、クロック発生回路４１４にて発生されたクロック信号に同期して動作し、ＦＰＧＡ４１６は、クロック発生回路４１５にて発生されたクロック信号に同期して動作する。つまり、ＣＰＵ４０１の動作周波数は、クロック発生回路４１４のクロック信号によって決まり、ＦＰＧＡ４１６の動作周波数は、クロック発生回路４１５のクロック信号によって決まる。
【００２５】
ＨＤＤ４０４には、プログラム４２１、及びロボットプログラム４２２が記憶（記録）されている。
【００２６】
ロボットアーム１１１は、各関節を駆動する複数（例えば６つ）のモータＭ１，…，Ｍ６と、モータＭ１，…，Ｍ６の回転角度（回転位置）を検知する位置センサの一例である複数（例えば６つ）のエンコーダＥｎ１，…，Ｅｎ６と、を有する。また、ロボットアーム１１１は、エンコーダＥｎ１，…，Ｅｎ６に接続され、電子回路で構成された検出回路１１５を有する。
【００２７】
以上の構成で、コントローラ１２１、具体的にはＣＰＵ３０１は、Ｉ／Ｆ３１２からレーザ発振指令（信号）ＳＲ１をレーザ発振器１０３に送信する。レーザ発振指令ＳＲ１を受信したレーザ発振器１０３は、レーザ発振指令ＳＲ１に従い、レーザ光を発生するように動作する。具体的には、コントローラ１２１は、レーザ発振指令ＳＲ１として、レーザ発振器１０３にレーザ光の発生を指令するときには電気信号の電圧をローレベルからハイレベルに切り替えて、Ｉ／Ｆ３１２から送信する。電気信号の電圧をハイレベルにする場合、レーザ発振指令ＳＲ１をオンにするともいう。また、コントローラ１２１は、レーザ発振器１０３にレーザ光の停止を指令するときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、レーザ発振指令ＳＲ１をオフにするともいう。したがって、レーザ発振器１０３は、レーザ発振指令ＳＲ１がオンのときにはレーザ光を発生させ、レーザ発振指令ＳＲ１がオフのときにはレーザ光を停止させる。
【００２８】
また、レーザ発振器１０３は、レーザ光を発生していることを示す信号ＳＲ２をコントローラ１２１に送信する。具体的には、レーザ発振器１０３は、信号ＳＲ２として、レーザ光を発生しているときには電圧がハイレベルの電気信号をコントローラ１２１に送信する。電気信号の電圧をハイレベルにする場合、信号ＳＲ２をオンにするともいう。また、レーザ発振器１０３は、レーザ光の発生を停止しているときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、信号ＳＲ２をオフにするともいう。
【００２９】
ロボットコントローラ１２２は、ロボットプログラム４２２に従ってロボットアーム１１１とロボットハンド１１２の動作を制御する。また、ロボットコントローラ１２２は、ロボットプログラム４２２に従ってシーケンスを管理する。即ち、ロボットアーム１１１の動作を開始するタイミングは、ロボットコントローラ１２２が管理する。以下、ロボットアーム１１１を動作させることをロボット１０１を動作させると表現する。
【００３０】
また、ロボットコントローラ１２２は、ロボット１０１が溶接箇所を含む所定の区間の軌道データに基づいて動作中であることを示すデジタル信号である信号ＳＢを、コントローラ１２１に送信する。具体的には、ロボットコントローラ１２２は、レーザヘッド１０２を加速させる動作をロボット１０１に開始させた時点で、信号ＳＢを示す電気信号の電圧をローレベルからハイレベルに切り替えて、コントローラ１２１に送信する。また、ロボットコントローラ１２２は、所定のタイミングで信号ＳＢを示す電気信号の電圧をハイレベルからローレベルにする。以下、信号ＳＢを示す電気信号の電圧をハイレベルにすることを、信号ＳＢをオンにするともいう。また、信号ＳＢを示す電気信号の電圧をローレベルにすることを、信号ＳＢをオフにするともいう。
【００３１】
ロボットアーム１１１の姿勢制御、即ちレーザヘッド１０２の位置姿勢制御、具体的にはレーザ光Ｌの焦点の位置制御は、ロボットコントローラ１２２からロボットアーム１１１のモータＭ１，…，Ｍ６へ流されるモータ電流ＳＣ１によって行われる。ロボットプログラム４２２は、ロボット言語で記述されたプログラムである。ユーザは、ロボット言語をテキストデータで記述することにより、ロボット１０１の動作を指示することができる。ロボットコントローラ１２２のＣＰＵ４０１は、プログラム４２１を実行することにより、ロボットプログラム４２２の解釈を行い、複数の指令からなる軌道データを生成し、生成した軌道データをＦＰＧＡ４１６へ出力する。ＦＰＧＡ４１６は、軌道データに従ってサーボ演算を行う。即ち、ＦＰＧＡ４１６は、サーボ演算によってモータ電流指令を生成し、生成したモータ電流指令を電流アンプ４１７に送る。電流アンプ４１７は、モータ電流指令に応じたモータ電流ＳＣ１を生成し、ロボットアーム１１１の各関節にあるモータＭ１，…，Ｍ６に流す。流されたモータ電流ＳＣ１によってロボットアーム１１１の各モータＭ１，…，Ｍ６が駆動される。検出回路１１５は、モータＭ１，…，Ｍ６が回転するとエンコーダＥｎ１，…，Ｅｎ６から検出信号を取得する。検出回路１１５は、検出信号をシリアルのデジタル信号ＳＣ２に変換してロボットコントローラ１２２のＦＰＧＡ４１６へ送信する。
【００３２】
モータＭ１，…，Ｍ６の回転角度（位置）を示すデジタル信号ＳＣ２は、ＦＰＧＡ４１６におけるサーボ演算に使われる。また、プログラム４２１は、Ｉ／Ｆからの読込処理、演算処理、Ｉ／Ｆのへの出力処理を定期的に行っている。この周期をロボットコントローラ１２２の制御周期と呼ぶこととする。エンコーダＥｎ１，…，Ｅｎ６の検出信号はＡＢＺ相のパルス信号である。検出回路１１５は、エンコーダＥｎ１，…，Ｅｎ６のパルス信号を、パルス数（位置座標に変換可能な値）を示すデジタル信号ＳＣ２に変換してＦＰＧＡ４１６へフィードバックする。なお、サーボ機構、即ちＦＰＧＡ４１６及び電流アンプ４１７をロボットアーム１１１内に配置し、ＣＰＵ４０１からケーブルを介してロボットアーム１１１内のサーボ機構に位置指令、即ち軌道データを送信する構成としてもよい。また、ＦＰＧＡ４１６の機能をＣＰＵ４０１に持たせて、ＦＰＧＡ４１６を省略してもよい。また、エンコーダＥｎ１，…，Ｅｎ６のパルス信号をデジタル信号に変換してロボットコントローラ１２２に送信する場合について説明したが、エンコーダＥｎ１，…，Ｅｎ６のパルス信号を直接ロボットコントローラ１２２に送信するようにしてもよい。また、位置センサとして、エンコーダＥｎ１，…，Ｅｎ６のかわりにレゾルバを用いてもよい。
【００３３】
ここで、ロボット１０１の動作の制御点は、ロボット１０１の手先と共に移動する点であればよいが、第１実施形態では、ロボット１０１の動作の制御点を、レーザ光の焦点としている。制御点は、ロボット１０１のベースを基準とする、３次元空間における位置を表す３つのパラメータ（Ｘ，Ｙ，Ｚ）と、３次元空間における姿勢を表す３つのパラメータ（Ａ，Ｂ，Ｃ）からなる６つのパラメータで表される。したがって、制御点は、６次元のタスク空間上では、１つの点としてみなすことができる。ロボットプログラム４２２には、制御点の移動目標である教示点がユーザによって記述（指定）される。ロボットコントローラ１２２は、ロボットプログラム４２２を解釈し、教示点を結ぶ軌道データ、すなわち教示点を補間した軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間などがあり、これら補間方法が補間命令としてロボットプログラム４２２にユーザによって記述（指定）される。
【００３４】
ロボットコントローラ１２２のＣＰＵ４０１は、補間により求めた軌道データをロボット１０１の各関節の角度の指令に変換し、ＦＰＧＡ４１６は、サーボ演算を行う。ＦＰＧＡ４１６は、サーボ演算の結果、電流アンプ４１７に送られる電流指令を決定する。サーボ演算はロボットコントローラ１２２のＣＰＵ４０１の制御周期毎に行われる。各関節の角度の指令は制御周期毎に更新されるが、その増減量をコントロールすることでロボット１０１の速度は決定される。すなわち、各関節の角度の指令の増減量が大きければロボット１０１は速く動作し、増減量が小さければロボット１０１は遅く動作する。
【００３５】
ロボット１０１の動作によって制御点（レーザ光の焦点）が移動する実際の経路は、位置制御の応答遅れにより、ロボットプログラム４２２によって指令される経路からずれることがある。
【００３６】
図３は、第１実施形態における制御点の経路の一例を示す説明図である。ここで、制御点（レーザ光の焦点）の経路は、ロボット１０１の動作によって作られるため、ロボット１０１に支持されたレーザヘッド１０２の経路と同義である。
【００３７】
以下、ロボットプログラム４２２に記述された補間命令の一例としての直線補間命令を実行する場合について説明する。直線補間命令とは、第１の位置座標と第２の位置座標とを結んだ直線に沿って制御点が移動するように補間する命令であり、制御点の経路は、３次元空間で線分となる。なお、第１の位置座標と第２の位置座標とでロボット１０１の姿勢も補間する方法と、第１の位置座標の姿勢を第２の位置座標まで保つ方法の２通りが可能であるが、第１実施形態では姿勢も補間する。いずれの方法であっても、ロボット１０１の制御点、即ちレーザ光の焦点は、第１の位置座標と第２の位置座標とを結んだ線分上を通る。なお、ロボットプログラム４２２では第１の位置座標はロボット１０１の現在の指令位置を利用し、移動先の第２の位置座標のみを指定することが多い。位置座標はユーザが設定する教示点（教示位置）を使ってもよいし、教示点に所望の演算を加えて教示点とは異なる位置を示す位置座標を使ってもよい。また、ロボットコントローラ１２２のＣＰＵ４０１が直線補間命令を実行すると、現在の指令位置と移動先の目標位置を結ぶ軌道データを生成し、その軌道データをＦＰＧＡ４１６に制御周期毎に払い出しを行う。ロボットコントローラ１２２のＣＰＵ４０１はすべての軌道データの払い出しが完了すると直線補間命令は完了し、ロボットプログラム４２２に記述された次の命令を実行する。
【００３８】
図３中、破線は制御点の指令の経路（位置）５０、実線は制御点の実際の経路（位置）５１である。そして、図３の例では、レーザシーム溶接をする箇所が２箇所ある。１箇所目は、レーザ光の照射を開始する際の制御点の位置５２１とレーザ光の照射を終了する際の制御点の位置５３１との間である。２箇所目は、レーザ光の照射を開始する際の制御点の位置５２２とレーザ光の照射を終了する際の制御点の位置５３２との間である。なお、レーザシーム溶接を行う溶接箇所は、２箇所に限定するものではなく、１箇所であってもよいし、３箇所以上であってもよい。制御点の位置５２１，５２２及び制御点の位置５３１，５３２は、ユーザが設定する教示点（教示位置）である。
【００３９】
ロボットコントローラ１２２は、教示による位置５２１と教示による位置５３１とを結ぶ延長線上に位置する位置５４１と位置５５１とを、予め決められたアルゴリズムに従って求める。このアルゴリズムはロボットプログラム４２２に記述されている。ロボットプログラム４２２には直線補間命令の引数に位置５５１を与えて実行させる。なお、位置５５１への直線補間命令を実行させるためには、位置５４１へ移動命令を実行させ、ロボット１０１の位置指令が位置５４１へ到達している必要がある。
【００４０】
位置５４１は、制御点の移動を開始する指令の位置である。位置５５１は、制御点の移動を終了する指令の位置である。そして、ロボットコントローラ１２２は、教示による位置５２１，５３１の間の区間を含み、位置５４１を始点、位置５５１を終点とする、直線補間による所定の区間の軌道データＰ１を生成する。同様に、ロボットコントローラ１２２は、制御点の移動を開始する位置５４２を始点、制御点の移動を終了する位置５５２を終点とする所定の区間の軌道データＰ２を直線補間命令により生成する。なお、本実施形態では予め決められたアルゴリズムは、ロボットプログラム４２２に記述したが、ロボットコントローラ１２２の内部に実装しておき、コマンドで演算させてもよい。
【００４１】
このように、ロボット１０１へ指令する軌道データＰ１，Ｐ２の一部である位置５２１，５３１，５２２，５３２は、ユーザにより指定される教示点である。一方、ロボット１０１へ指令する軌道データＰ１，Ｐ２の一部である位置５４１，５５１，５４２，５５２は、ロボットコントローラ１２２がロボットプログラム４２２に従って自動計算して求める指令であり、教示点ではない。
【００４２】
ロボットコントローラ１２２は、位置５５１と位置５４２との間も、ロボットプログラム４２２に記述された補間命令に従って補間して、軌道データＰ１−２を生成する。なお、位置５５１と位置５４２との間は、単にレーザヘッド１０２を移動させるだけなので、任意の補間方法で補間可能である。したがって、ロボットプログラム４２２には、任意の補間命令を記述可能である。ロボットプログラム４２２に例えば直線補間命令が記述されている場合には、直線補間で補間すればよい。ロボットプログラム４２２に例えば関節補間命令が記述されている場合には、関節補間で補間すればよい。関節補間命令とは、ロボット１０１の各関節の動作量を時間で分割して補間する命令であり、制御点の経路は直線にはならない。ただし、ロボット１０１の動作は、直線補間命令でロボット１０１を動作させる場合よりも高速となる。
【００４３】
レーザシーム溶接を行う場合、制御点の移動速度が目標速度Ｖｗ１，Ｖｗ２となるのに必要な助走区間が必要である。第１実施形態では、位置５４１と位置５２１との間が助走区間、位置５４２と位置５２２との間が助走区間ということになる。目標速度Ｖｗ１，Ｖｗ２は、ロボットプログラム４２２に記述（指定）される。
【００４４】
なお、レーザシーム溶接を行うので、制御点は位置５２１，５２２と位置５３１，５３２との間の溶接を行う区間を高精度に移動する必要があるが、レーザシーム溶接を行わないそれ以外の区間、例えば助走区間は位置精度が低くてもよい。したがって、図３に示すように、溶接を行う区間以外の区間において、実際の経路５１が指令の経路５０に対してずれていてもよい。換言するとロボットコントローラ１２２は、制御点が位置５２１，５２２と位置５３１，５３２との区間を高精度に移動するように、始点である位置５４１，５４２及び終点である位置５５１，５５２を求める。
【００４５】
ここで、ロボットコントローラ１２２が位置５４１，５４２をロボット１０１に指令する時点で、ロボット１０１が静止している場合と、ロボット１０１が動作している場合とがあるが、いずれであってもよい。
【００４６】
図４は、第１実施形態におけるロボット１０１の動作による制御点の移動距離の一例を示す説明図である。図４において、説明の便宜上、時刻ＴＰ１１，ＴＰ２１，ＴＰ３１，ＴＰ５１，ＴＰ１２，ＴＰ２２，ＴＰ３２，ＴＰ５２を図示している。第１実施形態のレーザ溶接装置１００では、時刻ＴＰ１１，ＴＰ２１，ＴＰ３１，ＴＰ５１，ＴＰ１２，ＴＰ２２，ＴＰ３２，ＴＰ５２となったタイミングをカウントして処理を行うものではない。なお、図３と同様、破線は指令の経路５０を示し、実線は実際の経路５１を示す。
【００４７】
ロボットコントローラ１２２は、軌道データＰ１、軌道データＰ１−２、軌道データＰ２の順にロボット１０１の動作を制御する。しかし、位置制御の応答遅れにより、制御点は、図４に示すように、指令した時刻に対して遅れて動作する。
【００４８】
１箇所目の溶接のために、ロボットコントローラ１２２が直線補間命令を実行して、軌道データＰ１の払い出しを開始すると、ロボット１０１の角度の指令が軌道データＰ１の始点である位置５４１から軌道データＰ１の終点である位置５５１へ変化を始める。この変化を開始する時刻ＴＰ１１で、制御点、即ちレーザヘッド１０２を加速させるロボット１０１の動作が開始される。
【００４９】
ロボットコントローラ１２２が位置５２１をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ２１で、指令した位置５２１に対応する位置を通過する。ロボットコントローラ１２２が位置５３１をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ３１で、指令した位置５３１に対応する位置を通過する。ロボットコントローラ１２２が軌道データＰ１の終点である位置５５１をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ５１で、指令した位置５５１に対応する位置を通過する。レーザの照射は、実際の制御点が位置５２１を通過したときにレーザ光の照射を開始し、実際の制御点が位置５３１を通過したときにレーザ光の照射を停止する必要がある。
【００５０】
次にロボットコントローラ１２２は、次の溶接動作の準備のために、位置５５１から位置５４２へ向かう軌道データＰ１−２に従ってロボット１０１を動作させる。
【００５１】
２箇所目の溶接のために、ロボットコントローラ１２２が直線補間命令を実行して、軌道データＰ２の払い出しを開始すると、ロボット１０１の角度の指令が軌道データＰ２の始点である位置５４２から軌道データＰ２の終点である位置５５２へ変化を始める。この変化を開始する時刻ＴＰ１２で、制御点、即ちレーザヘッド１０２を加速させるロボット１０１の動作が開始される。
【００５２】
ロボットコントローラ１２２が位置５２２をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ２２で、指令した位置５２２に対応する位置を通過する。ロボットコントローラ１２２が位置５３２をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ３２で、指令した位置５３２に対応する位置を通過する。ロボットコントローラ１２２が軌道データＰ２の終点である位置５５２をロボット１０１へ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ５２で、指令した位置５５２に対応する位置を通過する。レーザの照射は、実際の制御点が位置５２２を通過したときにレーザ光の照射を開始し、実際の制御点が位置５３２を通過したときにレーザ光の照射を停止する必要がある。
【００５３】
レーザ光Ｌの焦点の移動速度が一定の目標速度Ｖｗ１，Ｖｗ２となった状態で加工対象物Ｗにレーザ光Ｌを照射して加工を行うには、レーザヘッド１０２がレーザ光Ｌの照射を開始する位置に到達する前に、レーザヘッド１０２を加速させる必要である。第１の時間Ｔ１は、レーザヘッド１０２が一定の目標速度Ｖｗ１，Ｖｗ２で等速移動するようにレーザヘッド１０２を加速させる時間である。第２の時間Ｔ２１，Ｔ２２は、レーザヘッド１０２が一定の目標速度Ｖｗ１，Ｖｗ２で等速移動している状態でレーザ光Ｌを加工対象物Ｗに照射する時間である。
【００５４】
第１実施形態では、予め実験を行うことにより、時刻ＴＰ１１と時刻ＴＰ２１との間の期間、及び時刻ＴＰ１２と時刻ＴＰ２２との間の期間を、レーザヘッド１０２を加工対象物Ｗに対して加速させる第１の時間Ｔ１として設定する。また、予め実験又は演算を行うことにより、時刻ＴＰ２１と時刻ＴＰ３１との間の期間を、レーザ光Ｌを照射する第２の時間Ｔ２１として設定し、時刻ＴＰ２２と時刻ＴＰ３２との間の期間を、レーザ光Ｌを照射する第２の時間Ｔ２２として設定する。
【００５５】
以下、第１の時間Ｔ１、第２の時間Ｔ２ｊの設定について詳細に説明する。レーザヘッド１０２の指令の速度と実際の速度とは、位置制御の応答遅れによりずれが生じる。したがって、第１の時間Ｔ１をロボットプログラム４２２のみで設定するのは困難である。そこで、試行錯誤的に様々な条件でロボット１０１を動作させ、レーザヘッド１０２の実際の速度が目標速度Ｖｗｊに達して等速となる時間を各条件で測定し、これらの測定結果から、第１の時間Ｔ１を設定する。
【００５６】
なお、第１の時間Ｔ１が経過した時点で、レーザヘッド１０２の速度が目標速度Ｖｗｊに達して等速となるのが好ましいが、ロボット１０１の位置姿勢、目標速度Ｖｗｊ、ロボット１０１の連続動作による残留偏差等の要因で速度誤差が生じる。よって、様々な条件で測定した中で、速度誤差が最も低くなる値、即ち最も時間がかかった時間を、第１の時間Ｔ１に定めるのが好ましい。即ち、第１の時間Ｔ１は、レーザヘッド１０２の加速を開始してから第１の時間Ｔ１が経過する時点で、レーザヘッド１０２の速度が目標速度Ｖｗｊに対して所定の範囲内に収まるように設定すればよい。第１の時間Ｔ１は、各溶接箇所におけるレーザ光の目標速度Ｖｗｊによって異ならせてもよいが、同じ時間とした方がコントローラ１２１の処理を簡略化できる。
【００５７】
図５（ａ）及び図５（ｂ）は、ロボット１０１に支持されたレーザヘッド１０２の目標速度を変更した際の移動プロファイルを示す説明図である。図５（ａ）及び図５（ｂ）には、溶接する箇所におけるレーザヘッド１０２の目標速度を３通りＶｗ１，Ｖｗ２，Ｖｗ３に変更した場合の例を図示している。なお、図５（ａ）及び図５（ｂ）には、ロボット１０１の指令の速度ＶＣ、ロボット１０１の実際の速度ＶＲを図示している。図５（ａ）においては、異なる目標速度Ｖｗ１，Ｖｗ２，Ｖｗ３となっても、ロボット１０１の加速度を一定としている。そのため、ロボット１０１の加速時間は、目標速度Ｖｗ１，Ｖｗ２，Ｖｗ３に応じて変化する。図５（ｂ）においては、異なる目標速度Ｖｗ１，Ｖｗ２，Ｖｗ３となっても、ロボット１０１の加速時間を一定としている。そのため、ロボット１０１の加速度は変化している。図５（ａ）及び図５（ｂ）のいずれにおいても、第１の時間Ｔ１を十分な時間で設定すれば、指令の速度ＶＣと実際の速度ＶＲがおおよそ一致する。従って、第１の時間Ｔ１が経過した直後にはロボット１０１が等速領域に達したことを保証することができるようになる。即ち、第１の時間Ｔ１を経過した時刻ＴＰ２ｊにおいて等速になっていることが保証されていればよく、時刻ＴＰ２ｊより前の時刻においてロボット１０１が等速になっていてもよい。
【００５８】
なお、図５（ａ）及び図５（ｂ）では、教示による位置５２ｊと教示による位置５３ｊとを結ぶ延長線上に位置する位置５４ｊと位置５５ｊとを求めるアルゴリズムを変える必要がある。例えば、位置５４ｊは、位置５２ｊと位置５３ｊを結ぶ線分を、位置５２ｊ側に延伸して求めるが、この延伸量は、図５（ａ）及び図５（ｂ）における実際の速度ＶＲを時刻ＴＰ１ｊから時刻ＴＰ２ｊまで積分して距離となる。積分した距離は図５（ａ）の方式と図５（ｂ）の方式とでは異なるし、目標速度Ｖｗ１，Ｖｗ２，Ｖｗ３が変化しても異なる。従って位置５４ｊを求めるアルゴリズムはそれらを考慮する必要がある。位置５５ｊを求めるアルゴリズムも同様である。
【００５９】
第２の時間Ｔ２１，Ｔ２２はレーザ照射時間であり、以下の式（１）により計算する。ここで、以下の式（１）の演算記号として、第２の時間Ｔ２１，Ｔ２２をＴｗ、レーザ光の照射を開始する位置５２１，５２２をＰｓ、レーザ光の照射を終了する位置５３１，５３２をＰｅ、及び目標速度ＶｗｊをＶｗとする。第２の時間であるＴｗを、Ｐｓ、Ｐｅ及びＶｗを用いて、溶接箇所ごとに以下の式（１）で計算する。
【数１】
2019038034.tif 000003
【００６０】
即ち、ＰｓとＰｅとの距離を、Ｖｗで割り算することで、第２の時間となるＴｗの値を求める。Ｐｓ、Ｐｅ、及びＶｗは、溶接箇所ごとに異なる値とすることができる。したがって、第２の時間Ｔ２１，Ｔ２２となるＴｗは、溶接箇所の長さ（領域）に応じた値となる。このように算出されたＴｗが、第２の時間Ｔ２１，Ｔ２２として設定される。
【００６１】
教示点である位置５２１，５２２は、位置と姿勢の６自由度の情報で構成されている。具体的には、位置５２１，５２２は、ロボット１０１のベースに対する位置の情報であるＸ，Ｙ，Ｚとレーザヘッド１０２の保持角度の情報であるＡ，Ｂ，Ｃを有する。位置５３１，５３２も同様である。したがって、Ｐｓ，ＰｅとしてＸ，Ｙ，Ｚの位置情報のみを用いて、３次元空間上の距離を求める。
【００６２】
なお、この演算はロボットコントローラ１２２が行い、第２の時間となるＴｗの値を、ロボットコントローラ１２２がコントローラ１２１に転送してもよい。また、ロボットコントローラ１２２ではＰｓとＰｅとの距離のみを演算し、距離の情報をコントローラ１２１に転送し、残りの演算を行って第２の時間となるＴｗの値を求めてもよい。どちらを選択するかは、目標速度Ｖｗをロボットコントローラ１２２で記述（指定）しているか、コントローラ１２１で記述（指定）しているかによって適宜選択できる。
【００６３】
以上、実際にロボット１０１を生産ラインで動作させる前に、第１の時間Ｔ１及び第２の時間Ｔ２１，Ｔ２２を設定しておく。なお、第１の時間Ｔ１は予めコントローラ１２１とロボットコントローラ１２２の両方に設定しておくのが望ましい。
【００６４】
ところで、レーザシーム溶接を行う溶接箇所においては、位置５２１，５２２をロボット１０１に指令したタイミングではなく、制御点が実際に位置５２１，５２２を通過する時刻ＴＰ２１，ＴＰ２２でレーザ光Ｌを照射する必要がある。同様に、位置５３１，５３２をロボット１０１に指令したタイミングではなく、制御点が実際に位置５３１，５３２を通過する時刻ＴＰ３１，ＴＰ３２でレーザ光Ｌの照射を停止する必要がある。
【００６５】
即ち、等速領域に達した時刻ＴＰ２１において、ロボット１０１の位置制御の応答遅れが生じている場合がある。位置制御の応答遅れは、指令の位置と実際の位置の差で表される。位置制御の応答遅れがある場合には、この位置制御の応答遅れを、位置５４１，５４２及び位置５５１，５５２の算出に含める必要がある。
【００６６】
そこでロボットコントローラ１２２は、レーザヘッド１０２を加速させる動作を開始してから第１の時間Ｔ１が経過した時点で制御点が目標位置に到達するように、移動を開始する位置５４１，５４２と移動を終了する位置５５１，５５２を演算する。ただし、図５（ａ）の方法を適用した場合と図５（ｂ）の方法を適用した場合とでは、位置５４１，５４２及び位置５５１，５５２の算出する方法が変わる。
【００６７】
この演算は軌道データＰ１，Ｐ２を生成する直線補間命令を実行する前に行う必要がある。例えば、直線補間命令の直前、または、実際にロボット１０１を生産ラインで動作させる前に行うことができる。なお、演算アルゴリズムはロボットプログラム４２２に記述することでロボットコントローラ１２２が演算する。
【００６８】
図６は、第１実施形態におけるレーザ溶接装置１００によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図６には、ロボットコントローラ１２２においてコントローラ１２１に送信させる信号ＳＢが図示されている。また、図６には、ロボット１０１により移動されるレーザヘッド１０２の実際の速度ＶＲ及び指令の速度ＶＣが図示されている。また、図６には、コントローラ１２１においてレーザ発振器１０３に送信されるレーザ発振指令ＳＲ１が図示されている。
【００６９】
自動運転が開始され、位置５５１を目標位置とする直線補間命令が実行されると、ロボットコントローラ１２２は、位置５４１から位置５５１へ向かう軌道データＰ１を、所定の制御周期で払い出す。ロボット１０１は軌道データＰ１に従って動作する。即ち、ロボットコントローラ１２２は、加工対象物Ｗに対するレーザヘッド１０２の移動速度が目標速度Ｖｗ１となるようにレーザヘッド１０２を加速させる動作をロボット１０１に開始させる。これにより、レーザヘッド１０２、即ち制御点は、位置５４１から位置５５１に向かって移動を開始し、移動速度が一定の目標速度Ｖｗ１となるように加速し始める。
【００７０】
また、ロボットコントローラ１２２は、軌道データＰ１の払い出しを開始すると同時に、信号ＳＢをオフからオンに切り替えた信号ＳＢＡを送信する。信号ＳＢをオフからオンへの切り替えたときの立ち上がりが、同期信号（所定の信号）ＳＢＡとなる。即ち、ロボットコントローラ１２２は、レーザヘッド１０２を加速させる動作をロボット１０１に開始させた時点で、信号ＳＢの立ち上がりである同期信号ＳＢＡをコントローラ１２１へ送信することになる。このタイミングを時刻ＴＰ１１として図６中に示している。
【００７１】
第１実施形態では、信号ＳＢの立ち上がりを同期信号ＳＢＡとしている。したがって、次の軌道データＰ２の払い出しを開始する前であって、信号ＳＢが立ち上がってからコントローラ１２１の制御周期以上経過していれば、信号ＳＢはどのタイミングで立ち下がってもよい。図６の例ではロボットコントローラ１２２は、軌道データＰ１の終点である位置５５１を指令すると同時に、信号ＳＢをオンからオフに切り替える。なお、信号ＳＢを立ち上げることで同期信号ＳＢＡとしたが、これに限定するものではなく、信号ＳＢを立ち下げることで同期信号ＳＢＡとしてもよい。
【００７２】
コントローラ１２１は、ロボットコントローラ１２２から送られてくる信号ＳＢを監視しており、信号ＳＢが立ち上がる同期信号ＳＢＡを受信した時点で、第１の時間Ｔ１の計時を開始する。第１の時間Ｔ１は、例えば２００［ｍｓｅｃ］等、固定の時間である。
【００７３】
第１の時間Ｔ１が経過したとき、レーザヘッド１０２は、溶接を行う目標速度Ｖｗ１に達して等速状態となっており、また、制御点は、指令された位置５２１（図３）に位置している。よって、コントローラ１２１は、信号ＳＢが立ち上がる同期信号ＳＢＡを受信してから第１の時間Ｔ１が経過した時点、即ち第１の時間Ｔ１の計時が終了した時点（図６中、時刻ＴＰ２１）で、レーザ光Ｌを発生するようレーザ発振器１０３を制御する。具体的には、コントローラ１２１は、第１の時間Ｔ１の計時が終了すると同時にレーザ発振指令ＳＲ１をオフからオンに切り替える。即ち、コントローラ１２１は、第１の時間Ｔ１の計時が終了した時点で、レーザ発振器１０３にレーザ光を発生させるよう指令する。レーザ発振器１０３は、レーザ発振指令ＳＲ１を監視しており、レーザ発振指令ＳＲ１がオフからオンに切り替わったのを受信したとき、レーザ発振を行う。これと同時に、レーザ発振器１０３は、信号ＳＲ２をオフからオンに切り替える。
【００７４】
このように、ロボットコントローラ１２２は、加工対象物Ｗに対するレーザヘッド１０２の移動速度が一定の目標速度Ｖｗｊで等速となるようにレーザヘッド１０２を加速させる動作を、ロボット１０１に開始させる。そして、コントローラ１２１は、レーザヘッド１０２の加速開始から第１の時間Ｔ１が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。コントローラ１２１は、ロボットコントローラ１２２の制御によるレーザヘッド１０２の加速開始を、同期信号ＳＢＡを受信することで検知する。
【００７５】
次に、コントローラ１２１は、第１の時間Ｔ１の計時が終了した時点で第２の時間Ｔ２１の計時を開始する。ロボットコントローラ１２２は、レーザヘッド１０２にて加工対象物Ｗにレーザ光Ｌを照射している間、レーザヘッド１０２の移動速度が目標速度Ｖｗを維持するようにロボット１０１を動作させる。コントローラ１２１は、第１の時間Ｔ１が経過してから更に第２の時間Ｔ２１が経過した時点、即ち第２の時間Ｔ２１の計時が終了した時点（図６中、時刻ＴＰ３１）で、レーザ光Ｌの発生を停止するようレーザ発振器１０３を制御する。
【００７６】
具体的には、コントローラ１２１は、第２の時間Ｔ２１の計時が終了すると同時にレーザ発振指令ＳＲ１をオンからオフに切り替える。即ち、コントローラ１２１は、第２の時間Ｔ２１の計時が終了した時点で、レーザ発振器１０３にレーザ光を停止させるよう指令する。レーザ発振器１０３は、レーザ発振指令ＳＲ１がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
【００７７】
ロボットコントローラ１２２は、軌道データＰ１の終点である位置５５１をロボット１０１に指令した後、次に溶接を行うために、軌道データＰ１−２をロボット１０１に指令する。なお、軌道データＰ２をロボット１０１に指令して次の溶接を行う場合も、前述の動作の繰り返しとなる。このように、ロボットコントローラ１２２は、互いに異なる複数の軌道データＰ１，Ｐ２に従って、順次、ロボット１０１の動作を制御する。コントローラ１２１は、同期信号ＳＢＡを受信する度に、第１の時間Ｔ１として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。即ち、第１の時間Ｔ１として、各溶接箇所に対して個別の時間としているのではなく、共通の時間としている。したがって、コントローラ１２１は、ロボットコントローラ１２２がいずれの軌道データＰ１，Ｐ２の指令を開始したのかを認識することなく、同期信号ＳＢＡを受信する度に、第１の時間Ｔ１として同じ時間をカウントすることになり、処理が簡略化される。
【００７８】
以上、第１実施形態によれば、第１の時間Ｔ１が経過した時点でレーザヘッド１０２が目標速度Ｖｗに達しており、この目標速度Ｖｗに達した等速状態でレーザ光を加工対象物Ｗに照射する。即ち、ロボット１０１に支持されたレーザヘッド１０２を、加工対象物Ｗに対して等速で移動させることにより、レーザ光Ｌの焦点を加工対象物Ｗの表面に沿って等速で移動させることができる。よって、加工対象物Ｗにおいてレーザ光Ｌの焦点の移動方向に沿って入熱量が均一化され、加工対象物Ｗにレーザ光Ｌの焦点の移動方向に沿って均一な溶接ビードを形成することができる。これにより、高精度なレーザシーム溶接を実現することができる。
【００７９】
ここで、ロボットコントローラ１２２における制御周期は、ロボット１０１の動作を制御するのに適した値、例えば数ミリ秒に設定されている。第１実施形態では、コントローラ１２１は、ロボットコントローラ１２２の制御周期よりも短い制御周期でレーザ発振器１０３のレーザ光の発停を制御している。即ち、第１実施形態では、コントローラ１２１においてレーザ発振器１０３を制御する制御周期は、ロボットコントローラ１２２においてロボット１０１を制御する制御周期よりも短い。よって、コントローラ１２１は、ロボットコントローラ１２２よりも、第１の時間Ｔ１及び第２の時間Ｔ２１，Ｔ２２を正確に管理することができる。即ち、コントローラ１２１は、レーザ発振器１０３を短い制御周期で制御することができるので、レーザ発振器１０３を発停するタイミングを正確に管理することができる。その結果、溶接ビードの長さのばらつきが低減でき、溶接強度のばらつきが低減される。
【００８０】
また、第１実施形態によれば、ロボットコントローラ１２２が軌道データＰｊの始点を指令するタイミングと、コントローラ１２１において第１の時間Ｔ１の計時を開始するタイミングとが同期信号ＳＢＡで同期するようにしている。ロボットコントローラ１２２が軌道データＰｊの始点を指令するタイミングとは、軌道データＰｊの払い出しを開始するタイミングである。即ち、ロボットコントローラ１２２においてロボット１０１の動作と同期させた同期信号ＳＢＡを発生させ、コントローラ１２１において同期信号ＳＢＡと同期した時刻からの経過時間によって、レーザ光の照射のオンオフを管理している。したがって、コントローラ１２１及びロボットコントローラ１２２は、複雑な演算処理等を行うことなく、ロボット１０１の動作とレーザ発振器１０３のレーザ発振のオンオフを同期させている。よって、ロボット１０１の動作とレーザ発振のタイミングのずれを低減することができる。これにより、レーザ光の照射を開始する目標の位置に対する実際の位置の誤差が低減される。また、ロボット１０１の動作中に複雑な演算処理を行ってレーザ発振を制御する必要がないので、レーザ加工の精度を確保しながら、ロボット１０１の動作を高速化することができ、加工品の生産効率を向上させることができる。
【００８１】
［第２実施形態］
次に、第２実施形態に係るレーザ溶接装置について説明する。図７は、第２実施形態に係るレーザ加工装置の一例であるレーザ溶接装置１００Ａの概略構成を示す説明図である。第２実施形態では、コントローラ１２１で装置全体のシーケンスを管理する構成とする。なお、第２実施形態のレーザ溶接装置１００Ａは、第１実施形態のレーザ溶接装置１００と同様の装置構成であり、プログラム３２１Ａ，４２２Ａが第１実施形態のプログラム３２１，４２２と異なる。第２実施形態では、第１実施形態と同様の部分については説明を省略する。
【００８２】
図７に示すコントローラ１２１には、シーケンスを管理するように構成された制御プログラム３２１Ａが予め設定されている。コントローラ１２１は、ロボットコントローラ１２２へロボット１０１の動作開始を指示する動作開始指令（所定の指令）ＳＡを送信する。動作開始指令ＳＡを受信したロボットコントローラ１２２は、動作開始指令ＳＡに従い、溶接を行う軌道データＰ１，Ｐ２（図３）の指令を開始する。具体的には、コントローラ１２１は、ロボット１０１の動作を開始するよう動作開始指令ＳＡを指令するときには、電圧がハイレベルの電気信号をロボットコントローラ１２２へ送信する。電気信号の電圧をハイレベルにする場合、動作開始指令ＳＡをオンにするともいう。また、コントローラ１２１は、動作開始指令ＳＡを示す電気信号の電圧をハイレベルにした後、所定のタイミングでローレベルとする。電気信号の電圧をローレベルにする場合、動作開始指令ＳＡをオフにするともいう。ロボットコントローラ１２２は、動作開始指令ＳＡがオフからオンに切り替わることにより、軌道データＰ１，Ｐ２の指令を開始する。図３の例では、ロボットコントローラ１２２は、動作開始指令ＳＡを受信すると、軌道データＰ１に従ってロボット１０１を動作させ、引き続き、軌道データＰ１−２に従ってロボット１０１を動作させる。ロボットコントローラ１２２は、次の動作開始指令ＳＡを受信すると、軌道データＰ２に従ってロボット１０１を動作させる。
【００８３】
なお、ロボットプログラム４２２Ａには、動作開始指令ＳＡがオフからオンに切り替わったことをロボットコントローラ１２２が受信すると、ロボットコントローラ１２２が軌道データＰ１，Ｐ２の指令を開始するように記述されている。
【００８４】
図８は、第２実施形態におけるレーザ溶接装置１００Ａによりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。
【００８５】
図８において、図６に示すタイムチャートとの違いは、動作開始指令ＳＡが追加されていることにある。動作開始指令ＳＡによってロボット１０１は動作を開始する。以下、具体的に説明する。自動運転が開始されると、コントローラ１２１は、動作開始指令ＳＡをオンする。このタイミングを時刻ＴＰ０１として図８に示す。
【００８６】
ロボットコントローラ１２２は、動作開始指令ＳＡを監視しており、動作開始指令ＳＡがオフからオンに切り替わると、軌道データＰ１の指令を開始する。即ち、ロボットコントローラ１２２は、動作開始指令ＳＡを受信した場合に、レーザヘッド１０２を加速させる動作をロボット１０１に開始させる。
【００８７】
ロボットコントローラ１２２は、軌道データＰ１の払い出しを開始してロボット１０１を制御する時点で、コントローラ１２１へ同期信号ＳＢＡを送信する。このタイミングを時刻ＴＰ１１として図８に示している。
【００８８】
コントローラ１２１は、ロボットコントローラ１２２から送られてくる信号ＳＢを監視しており、信号ＳＢが立ち上がる同期信号ＳＢＡを受信した時点で、第１の時間Ｔ１の計時を開始する。また、コントローラ１２１は、動作開始指令ＳＡをオフにする。
【００８９】
レーザヘッド１０２は、第１の時間Ｔ１が経過したとき、溶接を行う目標速度Ｖｗ１に達して等速状態となっており、また、制御点は、指令された位置５２１（図３）に位置している。よって、コントローラ１２１は、同期信号ＳＢＡを受信してから第１の時間Ｔ１が経過した時点、即ち第１の時間Ｔ１の計時が終了した時点（図８中、時刻ＴＰ２１）で、レーザ光Ｌを発生するようレーザ発振器１０３を制御する。
【００９０】
次に、コントローラ１２１は、第１の時間Ｔ１の計時が終了した時点から第２の時間Ｔ２１の計時を開始する。コントローラ１２１は、第１の時間Ｔ１が経過してから更に第２の時間Ｔ２１が経過した時点、即ち第２の時間Ｔ２１の計時が終了した時点（図８中、時刻ＴＰ３１）で、レーザ光Ｌの発生を停止するようレーザ発振器１０３を制御する。
【００９１】
具体的には、コントローラ１２１は、第２の時間Ｔ２１の計時が終了すると同時にレーザ発振指令ＳＲ１をオンからオフに切り替える。即ち、コントローラ１２１は、第２の時間Ｔ２１の計時が終了した時点で、レーザ発振器１０３にレーザ光を停止させるよう指令する。レーザ発振器１０３は、レーザ発振指令ＳＲ１がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
【００９２】
ロボットコントローラ１２２は、軌道データＰ１の終点である位置５５１をロボット１０１に指令した後、次に溶接を行うために、軌道データＰ１−２をロボット１０１に指令する。ロボットコントローラ１２２は、軌道データＰ１−２の終点を指令すると同時に、信号ＳＢをオンからオフに切り替える。
【００９３】
一方、コントローラ１２１は、第２の時間Ｔ２１の計時が終了してレーザを停止させてから、信号ＳＢがオフになることを監視する。信号ＳＢがオフになるタイミングは軌道データＰ１−２の終点の指令が完了したタイミングであり、次の溶接を行う軌道データＰ２の実行が可能な状態であることを示している。コントローラ１２１は、信号ＳＢがオフになっており、かつ、第２の時間Ｔ２１の計時が終了していれば、動作開始指令ＳＡをオンする。このタイミングを時刻ＴＰ０２として図８に示す。これによりロボットコントローラ１２２は、次の溶接を行う軌道データＰ２をロボット１０１に指令して、前述の動作を繰り返す。
【００９４】
このように、ロボットコントローラ１２２は、互いに異なる複数の軌道データＰ１，Ｐ２に従って、順次、ロボット１０１の動作を制御する。コントローラ１２１は、同期信号ＳＢＡを受信する度に、第１の時間Ｔ１として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。
【００９５】
図８に示すように、ロボットコントローラ１２２は、軌道データＰ１と軌道データＰ２との間の軌道データＰ１−２の指令が終了した時点で信号ＳＢをオフにしている。もし、その直後に、動作開始指令ＳＡがオンにならない場合は、ロボットコントローラ１２２は動作開始指令ＳＡを監視する待機状態となり、ロボットはその位置を維持する。再び、動作開始指令ＳＡがコントローラ１２１からロボットコントローラ１２２へ送られれば、ロボットコントローラ１２２は軌道データＰ２の払い出しを開始する。
【００９６】
なお、信号ＳＢを、ロボット１０１が待機状態になったことを示す信号としても使用しているが、信号ＳＢとロボット１０１の待機状態になったことを示す信号とを別々に設定してもよい。
【００９７】
以上、第２実施形態によれば、コントローラ１２１によりシーケンスを管理する場合においても、第１実施形態と同様、高精度なレーザシーム溶接を実現することができる。また、第１実施形態と同様、ロボット１０１の動作中に複雑な演算処理を行う必要がなく、ロボット１０１の動作を高速化することができ、加工品の生産効率を向上させることができる。
【００９８】
また、周辺機器との接続性がよい汎用のコンピュータで構成されたコントローラ１２１がシーケンスを管理することにより、コントローラ１２１が不図示のデータベース等の周辺機器にアクセスするのも容易となる。コントローラ１２１は汎用のコンピュータのため、様々なフィールドバスと接続し、装置の情報を他の装置に伝達したり、センサなどの値を読み込んだりすることも容易である。イーサネット（登録商標）などで装置外のサーバとの通信を行うことも容易である。
【００９９】
また、ロボットコントローラ１２２の制御周期は、コントローラ１２１の制御周期よりも長い。このため、ロボットコントローラ１２２において動作開始指令ＳＡを認識するタイミングにばらつきが生じる。第２実施形態では、コントローラ１２１は、動作開始指令ＳＡを送信したタイミングではなく、同期信号ＳＢＡを受信したタイミングで、レーザ発振を行う第１の時間Ｔ１の計時を開始する。したがって、ロボット１０１の動作とレーザ発振器１０３におけるレーザ発振のタイミングのずれを低減できる。
【０１００】
［第３実施形態］
次に、第３実施形態に係るレーザ溶接装置を用いたレーザ加工方法について説明する。第３実施形態では、第１実施形態及び第２実施形態で説明した第１の時間Ｔ１の計時が完了したとき、及び第２の時間Ｔ２ｊの計時が完了したときに、制御点、即ちレーザ光Ｌの焦点が教示した点を通過するようにロボット１０１を制御する方法について説明する。即ちレーザ光の照射開始時に、教示した溶接開始点である位置５２ｊを制御点が通過するロボット１０１の制御方法と、レーザ光の照射停止時に、教示した溶接終了点である位置５３ｊを制御点が通過するロボット１０１の制御方法について説明する。また、第３実施形態では、制御点が位置５２ｊ及び位置５３ｊを通過する時に目標速度Ｖｗｊで通過するようにロボット１０１を制御する方法についても説明する。なお、第３実施形態のレーザ加工方法は、第１実施形態、及び第２実施形態のいずれにも適用できる。
【０１０１】
レーザ光の照射を開始する時に制御点が位置５２ｊを通過し、レーザ光の照射を停止する時に制御点が位置５３ｊを通過し、かつレーザ光の走査速度を目標速度Ｖｗｊとするための計算について説明する。
【０１０２】
図１及び図７に示すロボットコントローラ１２２は、まず助走距離Ｌａｊ及び減速距離Ｌｄｊを溶接箇所ごとに算出する。次に、ロボットコントローラ１２２は、位置５２ｊと位置５３ｊとを結ぶ延長線上において、位置５２ｊから助走距離Ｌａｊ分だけ延伸した位置である位置５４ｊを求める。同様に、ロボットコントローラ１２２は、位置５２ｊと位置５３ｊとを結ぶ延長線上において、位置５３ｊから減速距離Ｌｄｊ分だけ延伸した位置である位置５５ｊを求める。ロボットコントローラ１２２は、位置５４ｊと位置５２ｊとの間で制御点を加速させ、位置５３ｊと位置５５ｊとの間で制御点を減速させることで、照射するレーザ光を目標速度Ｖｗｊとすることができる。
【０１０３】
助走距離Ｌａｊ及び減速距離Ｌｄｊの必要性について、図９を用いて説明する。図９は、参考例として助走距離Ｌａｊ及び減速距離Ｌｄｊを設けなかった場合の説明図である。図９中、破線は制御点の指令の経路（位置）５０、実線は制御点の実際の経路（位置）５１である。図９の例では、レーザシーム溶接をする箇所が２箇所ある。１箇所目は、レーザ光の照射を開始する制御点の位置５２１とレーザ光の照射を終了する制御点の位置５３１との間である。２箇所目は、レーザ光の照射を開始する制御点の位置５２２とレーザ光の照射を終了する制御点の位置５３２との間である。例として、１箇所目の溶接箇所について説明する。仮に助走距離Ｌａ１及び減速距離Ｌｄ１が０であると、制御点の実際の経路（位置）５１は制御点の指令の経路（位置）５０からずれる。即ち、制御点は、位置５２１及び位置５３１を通過しない。なお、指令の位置とは、フィードバック制御における指令の位置を指し、実際の位置とは、ロボット１０１の各軸に搭載されているエンコーダから得られる角度情報から得られる実際の位置のことである。
【０１０４】
仮に制御点が位置５２１に到達したことを確認してから、ロボット１０１に直線補間命令を実行させ、位置５３１に制御点を向かわせれば、制御点に位置５２１と位置５３１との間を直線移動させることはできる。しかし、この方法では、実際の経路（位置）５１に沿って移動する制御点が位置５２１を通過する時の速度は０となってしまい、目標速度Ｖｗ１で溶接を開始することができない。したがって、助走距離Ｌａ１及び減速距離Ｌｄ１を設ける必要がある。
【０１０５】
図１０は、第３実施形態において助走距離Ｌａ１及び減速距離Ｌｄ１を設けた制御点の経路の一例を示す説明図である。図１０で示すように、助走距離Ｌａ１は、位置５４１と位置５２１の距離、減速距離Ｌｄ１は、位置５３１と位置５５１の距離である。本実施形態では、第１実施形態で説明したようにコントローラ１２１がロボット１０１の動作開始を指令しない場合（図１）と第２実施形態で説明したようにコントローラ１２１がロボット１０１の動作開始を指令する場合（図７）のそれぞれについて説明する。
【０１０６】
第１実施形態のような場合では、ロボットコントローラ１２２は、直線補間命令又は関節補間命令を実行して、軌道データＰ０−１の払い出しを完了すると、即座に次の直線補間命令の実行を開始する。直線補間命令の目標位置は位置５５１である。ロボットコントローラ１２２は直線補間命令の実行により軌道データＰ１の払い出しを開始する。ロボットコントローラ１２２は、軌道データＰ１の払い出しと同時にコントローラ１２１に対し同期信号（所定の信号）ＳＢＡ（図６）を送信し、第１の時間Ｔ１の計時をコントローラ１２１に開始させる。
【０１０７】
第２実施形態のような場合では、ロボットコントローラ１２２は、軌道データＰ０−１の払い出しを完了すると、コントローラ１２１からの動作開始指令（所定の指令）ＳＡ（図８）を待つ。ロボットコントローラ１２２は、動作開始指令（所定の指令）ＳＡを受信すると即座に次の直線補間命令の実行を開始する。直線補間命令の目標位置は位置５５１である。直線補間命令の実行により軌道データＰ１の払い出しが開始する。ロボットコントローラ１２２は、軌道データＰ１の払い出しと同時にコントローラ１２１に対し同期信号（所定の信号）ＳＢＡを送信し、第１の時間Ｔ１の計時をコントローラ１２１に開始させる。
【０１０８】
第１実施形態のような場合、及び第２実施形態のような場合ともに、適切な助走距離Ｌａ１を設けることで、第１の時間Ｔ１の計時をコントローラ１２１が終えると同時に位置５２１を制御点が通過するようにする。同様に、適切な減速距離Ｌｄ１を設けることで、コントローラ１２１が第２の時間Ｔ２１の計時を終えると同時に位置５３１を制御点が通過するようにする。
【０１０９】
指令の位置と実際の位置とは、各瞬間において一致しないことがある。これは、ロボットの応答遅れによって発生する。図１１を用いて、各瞬間における指令の位置と実際の位置を説明する。図１１は、第３実施形態における制御点の経路の一例であって、指令の位置と実際の位置との関係を示す説明図である。図１１中のベクトル５６は、始点を実際の位置、終点を指令の位置で示している。ベクトル５６の始点と終点は、時間の経過とともに変化する。一定の時間間隔ごとに始点と終点を求め、始点と終点の変化を表示したものが図１１のようになる。ベクトル５６の始点の位置を結ぶと制御点の実際の経路（位置）５１となり、ベクトル５６の終点の位置を結ぶと制御点の指令の経路（位置）５０となる。図１１で示すように、ロボットコントローラ１２２が軌道データＰ０−１の払い出しを完了した瞬間の指令の位置は位置５４１にあるが、実際の位置は位置５４１に到達していない。従って、ロボットコントローラ１２２が軌道データＰ１の払い出しを開始した時点では、実際の位置は位置５４１と離れている。
【０１１０】
制御点が、位置５４１に到達するのを待って軌道データＰ１の払い出しを開始させることで、制御点に位置５４１を通過させる方法（第１の方法）と、制御点が位置５４１に到達するのを待たない方法（第２の方法）がある。第１の方法を、図１２（ａ）及び図１３（ａ）に示し、第２の方法を、図１２（ｂ）と図１３（ｂ）に示す。第１の方法では、制御点が位置５４１に実際に到達するのを待つ必要があり、動作が遅くなるため、第２の方法が好ましい。
【０１１１】
図１２（ａ）及び図１２（ｂ）は、第３実施形態における制御点の経路の一例を示す説明図である。図１３（ａ）及び図１３（ｂ）は、第３実施形態における速度と時間との関係を示す説明図である。ただし、図１３（ａ）には、コントローラ１２１が、第２実施形態のように動作開始指令（所定の指令）ＳＡを送信する場合について図示しているが、第１実施形態のように動作開始指令ＳＡを送信しない場合であってもよい。
【０１１２】
第１の方法では、制御点が、図１２（ａ）及び図１３（ａ）に示すように、位置５４１に実際に到達するのを待つことで、制御点に位置５２１及び位置５３１を通過させるのが容易となる。図１２（ａ）及び図１３（ａ）に示した第１の方法では、目標速度に実際の速度ＶＲが到達する時間のみを考慮して第１の時間Ｔ１を決定すればよい。助走距離Ｌａ１は、決定した第１の時間Ｔ１を用いて決定すればよい。ただし、第１の方法では、位置５４１に制御点が実際に到達するのを待つための時間ＴＷＡＩＴが発生する。生産性の観点では、時間ＴＷＡＩＴのような待ち時間は少ない方がよい。
【０１１３】
第１実施形態のように動作開始指令が無い場合に第１の方法を行うには、ロボットコントローラ１２２に次の処理を実行させる。即ちロボットコントローラ１２２は、軌道データＰ０−１の払い出し完了の後、位置５４１に実際に制御点が到達することを確認してから、軌道データＰ１の払い出しを開始すると同時に同期信号ＳＢＡをコントローラ１２１に送信する。
【０１１４】
第２実施形態のように動作開始指令がある場合に第１の方法を行うには、ロボットコントローラ１２２に次の処理を実行させる。即ちロボットコントローラ１２２は、軌道データＰ０−１の払い出し完了の後、位置５４１に実際に制御点が到達することを確認してから、信号ＳＢをオンからオフにして動作開始指令ＳＡを受け取る準備ができたことをコントローラ１２１に知らせる。以下、信号ＳＢをオンからオフにして動作開始指令ＳＡを受け取る準備ができたことを知らせる信号ＳＢＢを、ロボット待機信号ＳＢＢともいう。
【０１１５】
第２の方法では、制御点が、図１２（ｂ）及び図１３（ｂ）に示すように、位置５４１に到達しない場合がある。到達しない場合について説明する。
【０１１６】
第１実施形態のように動作開始指令が無い場合では、ロボットコントローラ１２２は、軌道データＰ０−１の払い出し完了の後、軌道データＰ１の払い出しを開始すると同時に同期信号ＳＢＡをコントローラ１２１に送信する。
【０１１７】
第２実施形態のように動作開始指令がある場合では、ロボットコントローラ１２２は、軌道データＰ０−１の払い出し完了の後、ロボット待機信号ＳＢＢを送信し、動作開始指令ＳＡを受け取る準備ができたことをコントローラ１２１に知らせる。
【０１１８】
ロボットコントローラ１２２がコントローラ１２１からの動作開始指令ＳＡを受信した時点で、制御点が位置５４１に到達していないことが多い。なお、ロボットコントローラ１２２が動作開始指令ＳＡを即座に受信しない場合は、動作開始指令ＳＡを受信した時点で、制御点が位置５４１に到達することもある。その場合には、図１２（ａ）及び図１３（ａ）と同じになる。
【０１１９】
図１２（ｂ）と図１３（ｂ）に示すように、第２の方法では、制御点の指令の経路（位置）５０は位置５４１を通過するものの、制御点の実際の経路（位置）５１は位置５４１を通過しないことがある。これは、位置５４１に指令位置が到達した時、即ち軌道データＰ０−１の払い出し完了した時、ロボットコントローラ１２２が実際の位置に関わらず軌道データＰ１の払い出しを開始するためである。目標位置が位置５４１から変更されるため、制御点は、実際には位置５４１を通過しない。第２の方法では、図１３（ａ）に示すような時間ＴＷＡＩＴが発生せず、生産性の観点では有利である。ただし、第２の方法は、第１の時間Ｔ１の決定方法が煩雑になる。第１の時間Ｔ１の決定方法には、目標速度に実際の速度ＶＲが到達する時間と、溶接開始点である位置５２１、及び溶接終了点である位置５３１を、制御点が通過する必要がある。
【０１２０】
制御点に位置５２１及び位置５３１を通過させる手順を説明する。図１４（ａ）及び図１４（ｂ）は、第３実施形態における制御点の経路の一例を示す説明図である。図１４（ａ）及び図１４（ｂ）には、制御点が様々な位置から位置５４１にアプローチした例を示している。図１４（ａ）及び図１４（ｂ）のいずれも、図１２（ｂ）及び図１３（ｂ）に示した、第２の方法の例であり、制御点は実際には位置５４１を通過しない。
【０１２１】
図１４（ａ）には、第１の時間Ｔ１を短く設定した場合について例示している。図１４（ａ）において、第１の時間Ｔ１が短いため、制御点は溶接開始点である位置５２１を通過していない。即ち、制御点の実際の経路５１が、溶接開始点である位置５２１から外れている。
【０１２２】
図１４（ｂ）には、第１の時間Ｔ１を長く設定した場合について例示している。図１４（ｂ）において、制御点は溶接開始点である位置５２１を通過している。即ち、制御点の実際の経路５１が、溶接開始点である位置５２１を通過している。位置５４１は、第１の時間Ｔ１によって決まる位置であるため、第１の時間Ｔ１が長いほど、位置５２１から離れた位置に設定される。位置５４１の決定方法については後述する。
【０１２３】
図１２（ｂ）及び図１３（ｂ）に示した第２の方法の場合、第１の時間Ｔ１の決定方法には、２つの事項を考慮する必要がある。１つ目は、目標速度に実際の速度ＶＲが到達する時間である。先に説明したように、試行錯誤的に様々な条件でロボット１０１を動作させ、レーザヘッド１０２の実際の速度ＶＲが目標速度Ｖｗ１に達して等速となる時間を各条件で測定し、これらの測定結果から、第１の時間Ｔ１の下限値を決定する。
【０１２４】
２つ目は、制御点に位置５２１及び位置５３１を通過させることである。試行錯誤的に様々な条件でロボット１０１を様々な位置から位置５４１にアプローチさせ、制御点が位置５２１を通過するか試験する。そして、各条件での試験結果から、第１の時間Ｔ１の下限値を決定する。最後に２者のそれぞれの下限値のうち、いずれか大きい値を第１の時間Ｔ１として決定する。
【０１２５】
第１時間Ｔ１の決定方法の具体的な事例について説明する。図１５は、第３実施形態における第１の時間Ｔ１を決定する測定方法を説明するための図である。図１５には、板５７Ａと板５７Ｂとを溶接する場合について図示している。位置５２１及び位置５３１が板５７Ａ上にあるものとする。位置５２１を始点として位置５３１を終点とする溶接ビードの方向を方向５８ｑとする。方向５８ｑに垂直で板５７Ａに平行な方向を方向５８ｒとする。板５７Ａに垂直な法線方向を方向５８ｄとする。位置５２１と位置５３１とを結ぶ線分を、位置５２１から延びる方向に延長し、延長線上に位置５４１を設定する。位置５２１と位置５４１との間隔は十分長くとり、助走距離Ｌａ１を仮設定する。助走距離Ｌａ１は、位置５２１と位置５４１とを結ぶ線分の長さである。同様に、位置５２１と位置５３１を結ぶ線分を、位置５３１から延びる方向に延長し、延長線上に位置５５１を設定する。位置５３１と位置５５１との間隔は十分長くとり、減速距離Ｌｄ１を仮設定する。減速距離Ｌｄ１は、位置５３１と位置５５１とを結ぶ線分の長さである。
【０１２６】
位置５４１及び位置５５１の設定を行った状態で、ロボットコントローラ１２２に次の処理を実行させる。すなわち、ロボットコントローラ１２２は、様々な位置から位置５４１へ直線補間移動命令又は関節補間移動命令に従って制御点を移動させる制御を行い、その後、移動した位置から位置５５１へ直線補間移動命令に従って制御点を移動させる制御を行う。
【０１２７】
図１６は、第３実施形態において移動命令に従って制御点を移動させたときの応答の例を示したグラフである。図１６には、上から順に、応答波形５９、応答波形６０、応答波形６１、応答波形６２ｑ、応答波形６２ｒ、応答波形６２ｄのグラフを図示している。応答波形５９は、溶接ビードの方向である方向５８ｑの速度の応答波形である。応答波形６０は、溶接ビードの方向である方向５８ｑの速度偏差の応答波形である。応答波形６１は、溶接ビードの方向である方向５８ｑの位置偏差の応答波形である。応答波形６２ｑは、溶接ビードの方向である方向５８ｑの位置の応答波形である。応答波形６２ｒは、方向５８ｒの位置の応答波形である。応答波形６２ｄは、方向５８ｄの位置の応答波形である。なお、図１６中、横軸方向は時間である。図１６中、信号ＳＢＢ、信号ＳＡ、信号ＳＢＡを縦線で図示している。この測定において、コントローラ１２１は、信号ＳＢＢを受信後、すぐに信号ＳＡを送信するのが望ましい。
【０１２８】
第１の時間Ｔ１は、速度の応答波形５９において、速度が目標速度Ｖｗ１に対して許容範囲内にあるか、位置の応答波形である応答波形６２ｑ、応答波形６２ｒ及び応答波形６２ｄにおいて、位置が許容範囲内にあるかで決定する。第１の時間Ｔ１は、信号ＳＢＡを送信したときから、応答波形５９、応答波形６２ｑ、応答波形６２ｒ、及び応答波形６２ｄのすべてが、許容範囲内に入るまでの時間として決定できる。
【０１２９】
図１６においては、説明のために目標速度Ｖｗ１のみ例示しているが、溶接箇所が複数ある場合は、溶接箇所ごとに目標速度を設定する。第１の時間Ｔ１を溶接箇所に関わらず固定値にする場合、溶接箇所ごとに応答波形５９、応答波形６２ｑ、応答波形６２ｒ及び応答波形６２ｄのすべてが許容範囲内に入るまでの時間を測定するのが好ましい。
【０１３０】
以上により、第１の時間Ｔ１を決定することができる。次に、第１の時間Ｔ１が経過した瞬間に位置５２１を制御点が通過するように、助走距離Ｌａ１を第１の時間Ｔ１を用いて計算する。
【０１３１】
助走距離Ｌａ１を計算する計算式は制御系の特性で変化する。制御系には、「型」とよばれる概念があり、型により応答特性が変化する。図１６に示す測定結果からロボットコントローラ１２２のフィードバック制御系の型がわかる。図１６の場合、型は１型である。
【０１３２】
フィードバック制御系は、フィードフォワード制御を行っていない場合に表１に示す偏差を持つことが知られている。
【表１】
2019038034.tif 000004
【０１３３】
表１は、制御系の型と時間ｔ＝∞における位置偏差との関係を示したものである。ステップ入力ｒ（ｔ）＝ｈ、ランプ入力ｒ（ｔ）＝ｖｔ、及び放物線入力ｒ（ｔ）＝ａｔ２／２のそれぞれが制御系に入力されたとき、ｔ＝∞において位置偏差がどのような定常値を示すかまとめたものである。
【０１３４】
図１６において、溶接動作は、図１５に示す溶接方向５８ｑにおいて、一定の目標速度Ｖｗ１で制御する動作となるので、位置指令の入力としてランプ入力となる。すなわち、応答波形６２ｑにおいて、図１５に示す溶接方向５８ｑにおける位置指令６３ｑはランプ入力である。実際の位置応答６４ｑは、位置指令６３ｑに対しランプ応答となっている。位置偏差６５ｑは、位置指令６３ｑから位置応答６４ｑを減算して求めるので、ｔ＝∞のとき一定値となることがわかる。すなわち、図１６から制御系の型が１型であることがわかる。なお、説明のため１番目の溶接箇所の例を示したが、ｊ番目の溶接箇所でも同様となる。
【０１３５】
以上のことを踏まえて、助走距離Ｌａｊを算出する。図１７は、第３実施形態における助走距離Ｌａｊの算出方法を説明するための図である。助走距離Ｌａｊを算出するには、第１の時間Ｔ１が経過した瞬間のロボット１０１のいるべき位置から逆算する必要がある。図１７には、第１の時間Ｔ１が経過した瞬間を図示している。また、図１７には、ｊ番目の溶接箇所の例を図示している。
【０１３６】
ベクトル５６ｓｊは、第１の時間Ｔ１が経過した瞬間における実際の位置に対する指令の位置を示すベクトルである。ベクトル５６ｓｊの始点が実際の位置、終点が指令の位置である。第１の時間Ｔ１が経過した瞬間に、制御点が実際に位置５２ｊにいる必要がある。助走距離Ｌａｊは、第１の時間Ｔ１の経過によりロボット１０１の指令の位置が進む距離Ｌｓｒｊと、第１の時間Ｔ１が経過した時点においてロボット１０１の応答遅れにより発生する距離Ｌｓｅｊで表現できる。助走距離Ｌａｊは式（２）で計算する。具体的には、助走距離Ｌａｊは距離Ｌｓｒｊから距離Ｌｓｅｊを減算したものとなる。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、式（２）を用いて助走距離Ｌａｊを求める。
【数２】
2019038034.tif 000005
【０１３７】
助走距離Ｌａｊが求まると、位置５４ｊを算出することができる。まず、延伸する方向を定めるため、ＣＰＵ４０１は、単位ベクトルＰｄｉｒｊを、式（３）を用いて求める。ここで、式（３）の演算記号として、レーザ光の照射を開始する位置５２ｊをＰｓｊ、レーザ光の照射を終了する位置５３ｊをＰｅｊとする。
【数３】
2019038034.tif 000006
【０１３８】
式（３）の計算は、位置５２ｊを始点として位置５３ｊを終点とするベクトルを、そのベクトルを距離で除算する計算となる。すなわち、単位ベクトルＰｄｉｒｊはビードの形成する進行方向を指した長さ１のベクトルとなる。ＣＰＵ４０１は、単位ベクトルＰｄｉｒｊと助走距離Ｌａｊを用いて、位置５４ｊを算出する。位置５４ｊの計算式を式（４）で示す。ここで演算記号として位置５４ｊを、助走を開始する位置としてＰａｊで示している。
【数４】
2019038034.tif 000007
【０１３９】
次に、第１の時間Ｔ１の経過によりロボット１０１の指令の位置が進む距離Ｌｓｒｊと、第１の時間Ｔ１が経過した時点においてロボット１０１の応答遅れにより発生する距離Ｌｓｅｊの実際の計算方法について説明する。
【０１４０】
距離Ｌｓｒｊは、ロボットコントローラ１２２の生成するロボット１０１の軌道によって変化するが、速度指令が台形の場合は簡単に算出できる。例として速度指令が台形であって、かつ、加速時間Ｔａが固定値である場合について説明する。
【０１４１】
図１８は、第３実施形態において移動する制御点の時間と速度との関係を示す図である。図１８には、第１の時間Ｔ１の経過によりロボット１０１の指令の位置が進む距離Ｌｓｒｊを図示している。図１８に示すハッチング部の面積が距離Ｌｓｒｊとなる。従って距離Ｌｓｒｊの計算式は式（５）となる。なお、目標速度Ｖｗｊとはｊ番目の溶接箇所の目標の溶接速度である。
【数５】
2019038034.tif 000008
【０１４２】
距離Ｌｓｅｊの計算方法は、表１に示した制御系の型により変わる。ロボット１０１は、第１の時間Ｔ１の計時及び第２の時間Ｔ２ｊの計時が完了するまで目標速度を維持するように制御する。従って、表１に示すように、ランプ入力ｒ（ｔ）＝ｖｔとなる。よって、２型の制御系の場合、距離Ｌｓｅｊは０である。１型の制御系の場合、距離Ｌｓｅｊはｖ／Ｋである。０型の制御系の場合、距離Ｌｓｅｊは時刻ｔの関数となる。ロボット１０１の制御系としては、０型の制御系を採用することはほとんどないため、２型又は１型となる。ロボット１０１の制御系が１型の場合、距離Ｌｓｅｊの計算式は、目標速度Ｖｗｊを所定の定数Ｋｖで割った式（６）となる。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、式（６）を用いて、距離Ｌｓｅｊを計算する。
【数６】
2019038034.tif 000009
【０１４３】
以上、助走距離Ｌａｊを算出することができ、位置５４ｊを算出することができる。これにより、第１の時間Ｔ１が経過した瞬間に、制御点が位置５２ｊを実際に通過するようにできる。
【０１４４】
同様に、減速距離Ｌｄｊの算出方法を説明する。減速距離Ｌｄｊを算出し、位置５５ｊを算出することで、第２の時間Ｔ２ｊが経過した瞬間に、制御点が位置５３ｊを実際に通過するようにできる。
【０１４５】
図１９は、第３実施形態における減速距離Ｌｄｊの算出方法を説明するための図である。減速距離Ｌｄｊを算出するには、第２の時間Ｔ２ｊが経過した瞬間にロボット１０１のいるべき位置から逆算する必要がある。図１９には、第２の時間Ｔ２ｊが経過した瞬間を図示している。また、図１９には、ｊ番目の溶接箇所の例を図示している。
【０１４６】
ベクトル５６ｅｊは、第２の時間Ｔ２ｊが経過した瞬間における実際の位置に対する指令の位置を示すベクトルである。ベクトル５６ｅｊの始点が実際の位置、終点が指令の位置である。第２の時間Ｔ２ｊが経過した瞬間に、制御点が実際に位置５３ｊにいる必要がある。第２の時間Ｔ２ｊが経過した瞬間の実際の速度は、目標速度Ｖｗｊと一致していることが望ましい。減速距離Ｌｄｊは、第２の時間Ｔ２ｊが経過した時点から指令の位置が位置５５ｊに到達して停止するまでに進む距離Ｌｅｒｊと、第２の時間Ｔ２ｊが経過した時点においてロボット１０１の応答遅れにより発生する距離Ｌｅｅｊで表現できる。減速距離Ｌｄｊは式（７）で計算する。具体的には、減速距離Ｌｄｊは、距離Ｌｅｒｊと距離Ｌｅｅｊを加算したものとなる。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、式（７）を用いて減速距離Ｌｄｊを求める。
【数７】
2019038034.tif 000010
【０１４７】
減速距離Ｌｄｊが求まると、位置５５ｊを算出することができる。ＣＰＵ４０１は、式（３）で求めた単位ベクトルＰｄｉｒｊを用いて、位置５５ｊを式（８）で計算する。ここで演算記号として、位置５５ｊを、減速して停止する位置としてＰｄｊで示している。
【数８】
2019038034.tif 000011
【０１４８】
次に、第２の時間Ｔ２ｊが経過した時点から指令の位置が位置５５ｊに到達して停止するまでに進む距離Ｌｅｒｊと、第２の時間Ｔ２ｊが経過した時点においてロボット１０１の応答遅れにより発生する距離Ｌｅｅｊの実際の計算方法について説明する。
【０１４９】
距離Ｌｅｒｊはロボットコントローラ１２２が生成するロボット１０１の軌道によって変化するが、速度指令が台形の場合は簡単に算出できる。例として速度指令が台形であって、かつ、減速時間Ｔｄが固定値である場合について説明する。
【０１５０】
図２０（ａ）及び図２０（ｂ）は、第３実施形態において第２の時間Ｔ２ｊが経過した後のロボットコントローラ１２２の処理を説明するための図である。図２０（ａ）には、第２の時間Ｔ２ｊが経過した後に指令の速度ＶＣが０になる例、即ち指令の位置を位置５５ｊに一旦停止させる例を図示している。指令の速度ＶＣは一旦０となるが、すぐに加速を始めるため、実際の速度ＶＲは０にはなっていない。従って、制御点は減速するものの停止せず次の溶接箇所へ向かう。図２０（ａ）において、ハッチング部の面積が距離Ｌｅｒｊである。従って、距離Ｌｅｒｊの計算式は式（９）となる。
【数９】
2019038034.tif 000012
【０１５１】
距離Ｌｅｅｊの計算方法は、表１に示した制御系の型により変わる。２型の制御系の場合、距離Ｌｓｅｊは０である。１型の制御系の場合、距離Ｌｅｅｊは、目標速度Ｖｗｊを所定の定数Ｋｖで割ったものとなる。１型の制御系の場合、計算式は式（６）と同じであり、計算上はＬｅｅｊ＝Ｌｓｅｊとなる。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、式（１０）を用いて、距離Ｌｅｅｊを計算する。
【数１０】
2019038034.tif 000013
【０１５２】
なお、式（６）及び式（１０）で使用する定数Ｋｖは未知数である。従って、あらかじめ同定を行い、図２に示すロボットコントローラ１２２の記憶装置、例えばＨＤＤ４０４に記録する必要がある。同定方法は、例えば図１６に示すような実験を行い、応答波形６１を取得し、第１の時間Ｔ１が経過した際の応答波形６１の値を求め、距離Ｌｓｅｊの値とすればよい。具体的には目標速度Ｖｗｊを、測定した距離Ｌｓｅｊで除算すればよい。この計算は式（１１）となる。
【数１１】
2019038034.tif 000014
【０１５３】
減速距離Ｌｄｊを算出する例として、位置５５ｊにて指令の位置を停止させる例について説明したが、停止させない方法もある。図２０（ｂ）には、第２の時間Ｔ２ｊ経過後に指令の速度ＶＣが０になっていない例を図示している。これは、一般に連続補間動作と呼ばれている。生産性の観点では、図２０（ｂ）のように減速させず次の溶接箇所へ移動を行う連続補間動作を行った方がよい。連続補間動作を行った際の減速距離Ｌｄｊの求め方は、ロボットコントローラ１２２の軌道生成方法に依存するが、連続補間動作を行わないときの加減速開始位置が次の目標位置への補間動作の乗り換え位置となる場合は、式（９）の計算式のままでよい。次の目標位置への補間動作の乗り換え位置が異なる場合は軌道生成方法に合わせて式（９）を調整する必要がある。いずれにせよ、第２の時間Ｔ２ｊ経過の瞬間まで、指令の速度ＶＣを目標速度Ｖｗｊまで維持し、位置５２ｊと位置５３ｊを結んだ線から指令の位置が外れないようにする必要がある。また、ロボット１０１には応答遅れがあるため、指令の位置と実際の位置とは乖離する。従って、距離Ｌｅｅｊを用いて補正する必要がある。
【０１５４】
以上により、減速距離Ｌｄｊを算出することができ、位置５５ｊを算出できるようになる。これにより、第２の時間Ｔ２ｊが経過した瞬間に、制御点が位置５３ｊを実際に通過するようにできる。
【０１５５】
なお、溶接箇所が複数ある場合は、各溶接箇所の距離Ｌｓｅｊを測定し、平均値から定数Ｋｖを計算してもよい。即ち、定数Ｋｖは、式（１１）の替わりに式（１２）で計算してもよい。
【数１２】
2019038034.tif 000015
【０１５６】
以上、第３実施形態によれば、第１の時間Ｔ１の計時が完了したとき、及び第２の時間Ｔ２ｊの計時が完了したときにおいて、ロボット１０１の制御点、即ちレーザ光Ｌの焦点に、教示した点を通過させることができる。すなわち、レーザ照射開始時に、教示した溶接開始点である位置５２ｊを制御点に高い位置精度で通過させることができる。同様にレーザ照射停止時に、教示した溶接終了点である位置５３ｊを制御点に高い位置精度で通過させることができる。また、第３実施形態によれば、制御点が位置５２ｊ及び位置５３ｊを通過する時に、制御点を目標速度Ｖｗｊで通過させることができる。
【０１５７】
［第４実施形態］
次に、第４実施形態に係るレーザ溶接装置を用いたレーザ加工方法について説明する。第３実施形態では、ロボット１０１の応答遅れによって発生する距離Ｌｓｅｊ及び距離Ｌｅｅｊを、表１の制御系の型に従った式（６）及び式（１０）を用いて求める方法について説明した。また、第３実施形態では、式（６）及び式（１０）における定数Ｋｖを、溶接箇所によらず同じ値とした。
【０１５８】
ところが、ロボット１０１を動作させたとき、ロボットアーム１１１を伸ばした姿勢と、ロボットアーム１１１を縮めた姿勢とでは、ロボット１０１の慣性モーメントが異なるため、ロボット１０１の応答特性が変化する。従って、溶接箇所によらず同じ値の定数Ｋｖを用いて距離Ｌｓｅｊと距離Ｌｅｅｊを計算すると、誤差が生じることがある。そこで、第４実施形態では、距離Ｌｓｅｊと距離Ｌｅｅｊを、溶接箇所ごとに予め求めておく方法を示す。
【０１５９】
図２１は、第４実施形態におけるコントローラ１２１とロボットコントローラ１２２との間の通信を示すシーケンス図である。図２１には、溶接箇所ごとに距離Ｌｓｅｊを求めるシーケンスについて例示している。溶接運転を行う前に少なくとも１度、図２１のシーケンスを実行し、距離Ｌｓｅｊを記憶装置、例えば図２に示すＨＤＤ４０４に記録する。このシーケンスは、位置５２ｊ、位置５３ｊ、及び目標速度Ｖｗｊのうちのいずれかが変更された場合に実行しなおす必要がある。図２１中、ＳＴＥＰＡ１〜ＳＴＥＰＡ７はコントローラ１２１の処理、ＳＴＥＰＢ１〜ＳＴＥＰＢ６及びＳＴＥＰＣ１〜ＳＴＥＰＣ３はロボットコントローラ１２２の処理である。
【０１６０】
コントローラ１２１は、ＳＴＥＰＡ１において、ロボットコントローラ１２２の「ＴＡＳＫ１」を起動する。コントローラ１２１は、ＳＴＥＰＡ２において、信号ＳＢＢを受信するまで待機する。コントローラ１２１は、ＳＴＥＰＡ３において、動作開始指令ＳＡをオンする。コントローラ１２１は、ＳＴＥＰＡ４において、信号ＳＢＡを受信するまで待機する。コントローラ１２１は、ＳＴＥＰＡ５において、第１の時間Ｔ１を計時する。コントローラ１２１は、ＳＴＥＰＡ６において、ロボットコントローラ１２２の「ＴＡＳＫ２」に距離Ｌｓｅｊを記録するタイミングを通知する信号ＳＤＡを送信する。コントローラ１２１は、ＳＴＥＰＡ７において、第２の時間Ｔ２ｊを計時する。コントローラ１２１は、再びＳＴＥＰＡ２において、信号ＳＢＢを受信するまで待機する。図２１中の「ＬＯＯＰ」は、枠内の処理の繰り返しを意味する。繰り返し回数は溶接箇所の個数である。
【０１６１】
ロボットコントローラ１２２の処理には、第１実施形態と第２実施形態で説明した処理に対応する「ＴＡＳＫ１」の処理と、距離Ｌｓｅｊを記録するために新たに追加した「ＴＡＳＫ２」の処理がある。
【０１６２】
「ＴＡＳＫ１」の処理は次の通りである。ロボットコントローラ１２２は、ＳＴＥＰＢ１において、「ＴＡＳＫ２」を起動する。ロボットコントローラ１２２は、ＳＴＥＰＢ２において、信号ＳＢＢを送信する。ロボットコントローラ１２２は、ＳＴＥＰＢ３において、動作開始指令ＳＡのオンを受信するまで待機する。ロボットコントローラ１２２は、ＳＴＥＰＢ４において、直線補間命令を実行し軌道Ｐｊを払い出す。ロボットコントローラ１２２は、ＳＴＥＰＢ５において、直線補間命令又は関節補間命令を実行し、軌道Ｐｊー（ｊ＋１）を払い出す。軌道Ｐｊー（ｊ＋１）とは、軌道Ｐｊの終点と軌道Ｐ（ｊ＋１）の始点とを結ぶ軌道である。ロボットコントローラ１２２は、ＳＴＥＰＢ６において、「ＴＡＳＫ２」に全ての溶接箇所を巡回したことを通知する信号ＳＥＡを送信する。
【０１６３】
「ＴＡＳＫ２」の処理は、次の通りである。ロボットコントローラ１２２は、ＳＴＥＰＣ１において、コントローラ１２１からの信号ＳＤＡを受信するまで待機する。ロボットコントローラ１２２は、ＳＴＥＰＣ２において、指令の位置と実際の位置の２点を結ぶ線分の距離を取得する関数を呼び出して、距離Ｌｓｅｊの値をＲＡＭ４０４に格納する。ロボットコントローラ１２２は、再びＳＴＥＰＣ１において、コントローラ１２１からの信号ＳＤＡを受信するまで待機する。ロボットコントローラ１２２は、ＳＴＥＰＣ３において、ＲＡＭ４０４に格納された各溶接箇所における距離Ｌｓｅｊの値をファイル化してＨＤＤ４０４に記録する。
【０１６４】
信号ＳＤＡは、第１の時間Ｔ１の計時が完了したタイミングでコントローラ１２１からロボットコントローラ１２２に送信されるので、距離Ｌｓｅｊを測定することができる。ロボットコントローラ１２２の制御周期は、コントローラ１２１の制御周期に比べて長いが、制御系の型が１型であれば、図１６に示す応答波形６１の通り、距離Ｌｓｅｊは一定値に収束する。このため、第１の時間Ｔ１の計時が完了していれば概ね正確な値を測定できる。また、制御系の型が１型であれば、距離Ｌｓｅｊと距離Ｌｅｅｊとを同じ値とすることができるため、ＨＤＤ４０４に記録する値は距離Ｌｓｅｊのみで十分である。
【０１６５】
溶接運転においては、ＨＤＤ４０４に記録した距離Ｌｓｅｊと式（２）及び式（７）を用いれば、各溶接箇所における助走距離Ｌａｊ及び減速距離Ｌｄｊを計算することができる。
【０１６６】
第４実施形態によれば、溶接箇所ごとに距離Ｌｓｅｊを実測している。このため、ロボット１０１の慣性モーメントの影響を受けず、第１の時間Ｔ１経過時、及び第２の時間Ｔ２ｊ経過時に、高い位置精度で制御点に位置５２ｊ及び位置５３ｊを通過させることができる。
【０１６７】
なお、ＳＴＥＰＣ２では、指令の位置と実際の位置の２点を結ぶ線分の距離を取得する関数を呼び出していたが、指令の位置と実際の位置を同じタイミングで取得できるのであれば、指令の位置と実際の位置とを取得して、その差を計算してもよい。
【０１６８】
コントローラ１２１は、ＳＴＥＰＡ７において、レーザ光を照射する第２の時間Ｔ２ｊを計時するが、図２１で示したシーケンスは距離Ｌｓｅｊを測定及び記録するためのシーケンスである。従って、実際に加工用のレーザ光を照射する必要はない。例えば加工用のレーザ光よりも強度の低いガイド光を照射するようにしてもよいし、レーザ光を照射しなくてもよい。
【０１６９】
第４実施形態によれば、溶接箇所ごとに距離Ｌｓｅｊと距離Ｌｅｅｊとを予め求めておく、即ち測定し記録しておくため、ロボット１０１の姿勢によって応答特性が変化しても、位置精度よく溶接を行うことができる。
【０１７０】
［第５実施形態］
第４実施形態では距離Ｌｓｅｊと距離Ｌｅｅｊを溶接箇所ごとに測定しＨＤＤに記録する方法について説明したが、ロボットコントローラ１２２の応答遅れによって誤差が発生する場合がある。誤差とは、レーザ光の照射を開始する教示位置に対する第１の時間Ｔ１が経過した時点でのロボット１０１（制御点）の位置の誤差、つまり教示位置に対する実位置の誤差のことである。
【０１７１】
そこで、第５実施形態では、式（２）及び式（７）ではなく、以下の式（１３）及び式（１４）の計算式によって、助走距離Ｌａｊ、及び減速距離Ｌｄｊを算出することで誤差を低減する。誤差の成分は、ロボット１０１の移動速度に比例した成分であるため、目標速度Ｖｗｊと係数（定数）βを用いて表現することができる。
【数１３】
2019038034.tif 000016
【数１４】
2019038034.tif 000017
【０１７２】
なお、式（１３）及び式（１４）で使用する定数βは、未知数である。従って、予め同定を行い、図２に示すロボットコントローラ１２２の記憶装置、例えばＨＤＤ４０４に記録する必要がある。定数βは、ロボットコントローラ１２２に依存する定数である。
【０１７３】
図２２は、第５実施形態における光位置センサの配置例を示す図である。図２２に示すように、４つの光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄが、ロボット１０１に隣接する壁に固定されている。光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄは、ＰＳＤ（Position  Sensitive  Detector）である。４つの光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄに向かってレーザ光を照射することで、レーザ光が照射された位置を測定することができる。なお、加工用のレーザ光では、光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄが破損することがあるため、加工用のレーザ光よりも強度の低いガイド光を照射するようにしてもよい。ガイド光を発生させる光源は、レーザ発振器１０３であってもよいし、不図示の発振器であってもよい。
【０１７４】
定数βの同定は、次の手順で行う。まず、ユーザが教示する位置５２ｊ及び位置５３ｊを光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄの測定範囲内に設定する必要がある。例えば、光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄを先に設置しておき、光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄを基準に位置５２ｊ及び位置５３ｊを教示する。教示点は実際の溶接点とは異なるが、定数βを同定する試験動作なので問題ない。ｊは溶接順を示すが、例えばｊ＝１は光位置センサ１３０Ａ、ｊ＝２は光位置センサ１３０Ｂなどのように対応付けしておく。また、教示完了時には教示位置にロボット１０１を静止させた状態でガイド光をＯＮにして、位置５２ｊ及び位置５３ｊの位置データを光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄを用いて測定しておく。次に、第４実施形態で説明した通り、距離Ｌｓｅｊ及び距離Ｌｅｅｊを溶接箇所ごとに求めるシーケンスを実行する。次に、β＝０を仮設定し、式（１３）及び式（１４）で助走距離Ｌａｊ、及び減速距離Ｌｄｊを用いて溶接運転を実行する。
【０１７５】
図２３（ａ）及び図２３（ｂ）は、第５実施形態における測定結果を示すグラフである。図２３（ａ）には、第５実施形態における光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄのデータの例を図示している。光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄを用いることで、ガイド光の平面上の位置を測定することができる。図２３（ａ）に示す位置５２ｊ及び位置５３ｊは、教示完了時にガイド光をＯＮにして測定したデータである。図２３（ａ）中、丸マークは、溶接運転を行ったときのガイド光の位置を示している。ガイド光の照射は、時間Ｔ１の間で１度だけであるが、光位置センサ１３０Ａ，１３０Ｂ，１３０Ｃ，１３０Ｄの位置データは、サンプリングにより離散データとなる。
【０１７６】
本実施形態では、教示した位置５２ｊと溶接運転におけるレーザ光の照射の開始位置との差である距離Ｌｐｊを測定する。なお、位置の差の成分は、進行方向の成分と進行方向に９０度直角な成分の２つに分けられるが、進行方向の成分のみを距離Ｌｐｊとして測定する。この測定を、複数の姿勢、複数の速度、複数のレーザ走査方向で行い、これらの測定結果を用いて定数βを同定する。
【０１７７】
図２３（ｂ）には、第５実施形態における距離Ｌｐと目標速度Ｖｗとの関係を図示している。複数の姿勢、複数の速度、複数のレーザ走査方向で測定を行うと、距離Ｌｐは目標速度Ｖｗと強い相関を示す。この傾きを定数βとして決定する。以上の方法により、定数βを同定することができ、式（１３）及び式（１４）を用いて助走距離Ｌａｊ及び減速距離Ｌｄｊを算出することができる。
【０１７８】
第５実施形態によれば、ロボットコントローラ１２２の応答遅れによって生ずる誤差を低減することができ、位置精度よく溶接を行うことができる。
【０１７９】
［第６実施形態］
第３実施形態から第５実施形態までは、第１の時間Ｔ１の経過により指令の位置が進む距離Ｌｓｒｊと、応答遅れにより発生する距離Ｌｓｅｊとを用いて助走距離Ｌａｊを算出する場合について説明した。同様に、第２の時間Ｔ２ｊの経過後から指令の位置が位置５５ｊに到達して停止するまでの距離Ｌｅｒｊと、第２の時間Ｔ２ｊが経過した瞬間の応答遅れにより発生する距離Ｌｅｅｊとを用いて減速距離Ｌｄｊを算出する場合について説明した。しかし、第１の時間Ｔ１の計時完了時に、制御点の実際の位置を正確にロボットコントローラ１２２が測定できるならば、助走距離Ｌａｊを、教示した位置５２ｊと、第１の時間Ｔ１の計時完了時の制御点の実際の位置を用いて求めることができる。
【０１８０】
図２４は、第６実施形態における助走距離Ｌａｊの算出シーケンスを示すフローチャートである。図２５は、第６実施形態における減速距離Ｌｄｊの算出シーケンスを示すフローチャートである。
【０１８１】
図２４に示す助走距離Ｌａｊを算出する方法について説明する。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、ＳＴＥＰＤ１において、初期値を助走距離Ｌａｊに代入（仮設定）する。初期値は、例えば式（５）を用いて計算した距離Ｌｓｒｊとしてもよい。初期値として、十分に助走可能な値を設定しておくのが望ましい。
【０１８２】
ＣＰＵ４０１は、ＳＴＥＰＤ２において、例えば式（４）を用いて、位置５４ｊを計算する。その後、溶接運転を行い、第１の時間Ｔ１が経過した時の制御点の実際の位置Ｐｓｍｊを取得する。
【０１８３】
ＣＰＵ４０１は、ＳＴＥＰＤ３において、教示した位置５２ｊ（Ｐｓｊ）と実際の位置Ｐｓｍｊとの差分Ｅｒｒｓｊを算出する。差分Ｅｒｒｓｊは、レーザ光の照射を開始する教示位置である位置５２ｊ（Ｐｓｊ）に対する第１の時間Ｔ１が経過した時点でのロボット１０１（制御点）の位置である位置Ｐｓｍｊの誤差である。差分Ｅｒｒｓｊを求める方法には、２つの方法、即ち溶接方向の成分のみ利用する方法と、溶接方向に対して９０度直角な成分も含める方法とがある。以下、溶接方向の成分のみ利用する方法について説明する。差分Ｅｒｒｓｊの計算式は式（１５）となる。すなわち、差分Ｅｒｒｓｊは、教示した位置５２ｊ（Ｐｓｊ）と実際の位置Ｐｓｍｊとの差分ベクトルに対し、単位ベクトルＰｄｉｒｊの内積を計算したものとなる。
【数１５】
2019038034.tif 000018
【０１８４】
ＣＰＵ４０１は、ＳＴＥＰＤ４において、差分Ｅｒｒｓｊが全て閾値以下であれば（ＹＥＳ）、ＳＴＥＰＤ６を実行してシーケンスを終了する。ＳＴＥＰＤ４で用いる閾値は、記憶装置、例えばＨＤＤ４０４に予め設定された値であり、例えばユーザが設定してもよい。ＣＰＵ４０１は、ＳＴＥＰＤ６において、各溶接箇所における助走距離Ｌａｊの値をファイル化してＨＤＤ４０４に記憶させる。
【０１８５】
ＣＰＵ４０１は、ＳＴＥＰＤ４において、いずれかの差分Ｅｒｒｓｊが閾値より大きい場合（ＮＯ）、ＳＴＥＰＤ５を実行する。ＣＰＵ４０１は、ＳＴＥＰＤ５において、閾値を超えた差分Ｅｒｒｓｊに対して定数Ｋｓを掛け、元の助走距離Ｌａｊの値に加算して助走距離Ｌａｊの値を更新する。この計算処理を式（１６）に示す。ＣＰＵ４０１は、ＳＴＥＰＤ５において助走距離Ｌａｊの計算を終了したら、ＳＴＥＰＤ２の処理を再度実行する。
【数１６】
2019038034.tif 000019
【０１８６】
以上の処理により、ロボットコントローラ１２２のＣＰＵ４０１は、差分Ｅｒｒｓｊが閾値よりも小さくなるように助走距離Ｌａｊを設定する。
【０１８７】
図２５に示す減速距離Ｌｄｊを算出する方法について説明する。図２に示すロボットコントローラ１２２のＣＰＵ４０１は、ＳＴＥＰＥ１において、初期値を減速距離Ｌｄｊに代入（仮設定）する。初期値は、例えば０とする。
【０１８８】
ＣＰＵ４０１は、ＳＴＥＰＥ２において、例えば式（８）を用いて、位置５５ｊを計算する。その後、溶接運転を行い、第２の時間Ｔ２ｊが経過した時の制御点の実際の速度Ｖｅｍｊを取得する。
【０１８９】
ＣＰＵ４０１は、ＳＴＥＰＥ３において、目標速度Ｖｗｊと実際の速度との差分Ｅｒｒｖｅｊを算出する。差分Ｅｒｒｖｅｊの計算式は、式（１７）となる。ロボット１０１（制御点）の速度は３次元ベクトルであるので、目標速度も３次元ベクトルで評価する必要がある。目標速度をベクトル化するには、スカラー量である目標速度Ｖｗｊに単位ベクトルＰｄｉｒｊを乗算すればよい。実際の速度Ｖｅｍｊのベクトルから目標速度のベクトルを減算することで、目標速度に対する実際の速度の誤差である差分Ｅｒｒｖｅｊのベクトルが求まる。
【数１７】
2019038034.tif 000020
【０１９０】
ＣＰＵ４０１は、ＳＴＥＰＥ４において、差分Ｅｒｒｖｅｊの大きさ（絶対値）が、全て閾値以下であれば（ＹＥＳ）、ＳＴＥＰＥ６を実行してシーケンスを終了する。ＳＴＥＰＥ４で用いる閾値は、記憶装置、例えばＨＤＤ４０４に予め設定された値であり、例えばユーザが設定してもよい。ＣＰＵ４０１は、ＳＴＥＰＥ６において、各溶接箇所における減速距離Ｌｄｊの値をファイル化してＨＤＤ４０４に記憶させる。
【０１９１】
ＣＰＵ４０１は、ＳＴＥＰＥ４において、いずれかの差分Ｅｒｒｖｅｊの大きさが閾値より大きい場合（ＮＯ）、ＳＴＥＰＥ５を実行する。ＣＰＵ４０１は、ＳＴＥＰＥ５において、閾値を超える溶接箇所に対してのみ、減速距離Ｌｄｊを定数Ｋｅ分だけ増加させる。この計算処理を式（１８）に示す。ＣＰＵ４０１は、ＳＴＥＰＥ５において減速距離Ｌｄｊの計算を終了したら、ＳＴＥＰＥ２の処理を再度実行する。
【数１８】
2019038034.tif 000021
【０１９２】
以上の処理により、ロボットコントローラ１２２のＣＰＵ４０１は、差分Ｅｒｒｖｅｊの大きさが閾値よりも小さくなるように減速距離Ｌｄｊを設定する。
【０１９３】
以上、図２４及び図２５に示すシーケンスによって、助走距離Ｌａｊ及び減速距離Ｌｄｊを算出することができる。なお、式（１６）の定数Ｋｓは、１としてもよいが、差分Ｅｒｒｓｊが閾値以下に収束しなければ、１よりも小さい値に変更してもよい。式（１８）の定数Ｋｅは、式（９）を用いて距離Ｌｅｒｊを計算しその１０分の１程度の値を設定してもよい。
【０１９４】
また、ロボット１０１は、減速機の入力軸に設けられたエンコーダＥｎ１，…，Ｅｎ６（図２）を備えており、各関節の角度を測定可能としているが、減速機の出力軸にエンコーダが設けられていてもよい。減速機の出力軸に設けられたエンコーダを用いることで、各関節の角度を直接測定することができる。よって、各関節の角度情報から位置Ｐｓｍｊを求めれば、位置精度よく溶接を行うことができる。
【０１９５】
また、図２４の助走距離Ｌａｊの決定シーケンスを実行した後、図２５の減速距離Ｌｄｊの決定シーケンスを実行するのが望ましい。また、図２４及び図２５のシーケンスの実行中は加工用のレーザ光を照射する必要はないので、加工用のレーザ光の替わりにガイド光を照射するか、又はレーザ光の照射を行わないのが望ましい。また、実際の速度Ｖｅｍｊを直接取得できない場合、第２の時間Ｔ２ｊの計時完了時のサンプルとその直前のサンプルの合計２つサンプル分の実際の位置を取得し、その差分をサンプリング周期で除算して、速度Ｖｅｍｊを求めてもよい。
【０１９６】
第６実施形態によれば、制御点を位置５２ｊ（Ｐｓｊ）に直接位置合わせするため位置精度よく溶接を行うことができる。また、実際の速度Ｖｅｍｊを確認して減速距離Ｌｄｊを決定するため、無駄に時間を消費せず、効率的に溶接を行うことができる。
【０１９７】
また、第３実施形態の式（５）及び式（９）の計算が困難な場合、即ちロボットコントローラ１２２が生成する軌道が、台形の速度指令ではない場合や条件によって変動する場合、第６実施形態のように助走距離Ｌａｊと減速距離Ｌｄｊを設定してもよい。この場合、実際の位置Ｐｓｍｊ及び実際の速度Ｖｅｍｊを使用しなくてもよく、これらの替わりに第１の時間Ｔ１の計時完了時の指令の位置と第２の時間Ｔ２ｊの計時完了時の速度の指令を計算に用いてもよい。
【０１９８】
［第７実施形態］
第３実施形態から第６実施形態までは助走距離Ｌａｊの算出方法を説明し、位置５４ｊを求めることで、第１の時間の計時が完了したときにロボット１０１（制御点）に位置５２ｊを通過させる方法について説明した。また、同様に減速距離Ｌｄｊの算出方法を説明し、位置５５ｊを求めることで、第２の時間の計時が完了したときにロボット１０１（制御点）に位置５３ｊを通過させる方法について説明した。しかし、溶接箇所から溶接箇所への移動が高速である場合、ロボットに振動が発生し、ビードが曲線になる、又は制御点が等速で溶接箇所を通過できなくなるなどの問題が発生することがあった。第７実施形態では、この振動を抑制する方法について説明する。
【０１９９】
図２６（ａ）は、参考例としてロボットに振動が発生している状態で制御点が辿る経路５１を説明するための図である。ロボットに振動が発生すると、制御点が、位置５２ｊ又は位置５３ｊを通過しないことがある。また、ロボットに振動が発生すると、溶接ビードが曲線になることがある。図２６（ａ）には、制御点が位置５２ｊを通過せず、かつ、溶接ビードが曲線になる一例を図示している。
【０２００】
図２６（ｂ）は、参考例として移動する制御点の時間と速度との関係を示す図である。ロボットに振動が発生すると、レーザ光を照射している第２の時間Ｔ２ｊの計時を行っている間に、制御点の速度が目標速度Ｖｗｊとならず振動的になることがある。第７実施形態では、ロボットの振動を抑制するために、溶接箇所から溶接箇所へ移動するときの減速時の加速度αを調整する。図２６（ｂ）には、指令の速度ＶＣとして、減速時の加速度αが１００％の場合と、加速度αがその半分の５０％の場合を例に図示している。また、図２６（ｂ）には、同期信号ＳＢＡを送信したタイミングを時間の基準として図示している。
【０２０１】
加速度αの具体的な調整方法について説明する。図２７は、第７実施形態における加速度を決定するシーケンスを示すフローチャートである。図２７に示すシーケンスは、溶接箇所から溶接箇所へ移動するときの減速時の加速度αを決定するシーケンスを図示している。図２７に示すシーケンスは、実際に加工対象物にレーザ加工する本動作の前の試験動作において実行する。試験動作では、実際に加工対象物にレーザ加工する本動作を模してロボット１０１を動作させる。
【０２０２】
図２に示すロボットコントローラ１２２のＣＰＵ４０１は、ＳＴＥＰＦ１において、加速度αのリストをＨＤＤ４０４のファイルから読み込む。例えば、加速度αが１００％、８０％、６０％、４０％、２０％の５パターンのリストなどである。ＣＰＵ４０１は、ＳＴＥＰＦ２において、加速度αのリストから１つの値を設定して、試験的に溶接を行う試験動作をロボット１０１に行わせる。ＳＴＥＰＦ２では、複数の溶接箇所それぞれの加速開始位置に制御点を移動させる動作を、設定された加速度αで実行する。
【０２０３】
ＣＰＵ４０１は、ＳＴＥＰＦ３において、加速度αのリストをすべて実行したかチェックする。ＣＰＵ４０１は、ＳＴＥＰＦ３において、加速度αのリストをすべて実行していない場合（ＮＯ）、ＳＴＥＰＦ２の処理に戻る。例えば加速度αのリストが１００％、８０％、６０％、４０％、２０％の５パターンであれば、試験動作を、加速度αを１００％から２０％まで順番に変更して実行することで、ＳＴＥＰＦ２の処理を５回実行する。ＣＰＵ４０１は、ＳＴＥＰＦ３において、加速度αのリストをすべて実行した場合（ＹＥＳ）、ＳＴＥＰＦ４の処理を実行する。
【０２０４】
ＣＰＵ４０１は、ＳＴＥＰＦ４において、ロボットの振動を評価するシーケンスを実施し、加速度αの値に対するＯＫ／ＮＧを判定する。ＯＫ／ＮＧの判定は、溶接箇所ごとに行う。表２に判定結果の例を示す。表２の例では、１番目の溶接箇所については加速度１００％がＮＧで、８０％、６０％、４０％、２０％がＯＫである。
【表２】
2019038034.tif 000022
【０２０５】
ＣＰＵ４０１は、ＳＴＥＰＦ５において、溶接箇所ごとに加速度αの値を決定する。即ち、ＣＰＵ４０１は、加速度αとして、各溶接箇所においてＳＴＥＰＦ４の判定においてＯＫであった値の中から選ぶ。加速度αとして、各溶接箇所においてＳＴＥＰＦ４の判定においてＯＫであった値の中から、最も大きな加速度αの値を選ぶのが好ましい。例えば表２の場合、ＣＰＵ４０１は、１番目の溶接箇所については８０％、２番目の溶接箇所については４０％、３番目の溶接箇所については６０％の値を選ぶ。
【０２０６】
ＣＰＵ４０１は、ＳＴＥＰ６において、各溶接箇所に対応付けられた加速度αの値を、ＨＤＤ４０４に記憶させる。以上、ＣＰＵ４０１は、試験動作時に発生したロボット１０１の振動に基づき、本動作においてレーザヘッド１０２を加速させる動作を開始する位置にロボット１０１（制御点）を動作させるときの加速度αを、溶接箇所ごとに調整しておく。
【０２０７】
なお、図２７に示したシーケンスのＳＴＥＰＦ２における試験動作においては、レーザ光の照射を行う必要はないので、レーザ光を照射しない、又は加工用のレーザ光の替わりにガイド光の照射を行うのが望ましい。
【０２０８】
以上、第７実施形態によれば、溶接箇所から次の溶接箇所へ制御点を移動させるときの減速時の加速度αを、ロボット１０１の振動が許容範囲内となるように、溶接箇所ごとに本動作の前に調整しておくので、加工効率が向上する。即ち、加工に必要な位置精度及び速度精度を満たしつつ、溶接箇所から次の溶接箇所へ制御点を高速に移動させることができる。
【０２０９】
［第８実施形態］
第７実施形態では、溶接箇所から次の溶接箇所へ制御点を移動させるときの減速時の加速度αを、ロボット１０１の振動が許容範囲内となるように調整する方法について説明した。第８実施形態では、ロボット１０１の振動の評価方法の一例について具体的に説明する。図２８（ａ）、図２８（ｂ）及び図２８（ｃ）は、第８実施形態においてロボットの振動を評価する方法を説明するための図である。
【０２１０】
図２８（ａ）に示すように、溶接ビードの形成位置は、ユーザがレーザ光の照射を開始する教示位置である位置５２ｊと、レーザ光の照射を終了する教示位置である位置５３ｊとを教示することによって決定する。位置５２ｊ及び位置５３ｊを結んだ線分ＬＳｊと、実際にレーザ光を照射して形成される溶接ビードの位置とが大きく異なると、位置精度の観点から問題となる。
【０２１１】
そこで、図２に示すＣＰＵ４０１は、レーザ光の照射を行う第２の時間Ｔ２ｊ中、ロボット１０１の制御点の位置座標を、例えば、ロボット１０１の各関節の角度から順運動学計算により取得して、その位置座標に基づき、ロボット１０１の振動の評価を行う。
【０２１２】
ロボットコントローラ１２２のＣＰＵ４０１は、第２の時間Ｔ２ｊ中、制御点が移動することにより時系列の複数の位置座標を取得する。そして、ＣＰＵ４０１は、複数の位置座標が所定の領域内に収まるかどうかを判定する。ＣＰＵ４０１は、全ての位置座標が所定の領域内に収まれば、「ＯＫ」と判定し、そうでなければ「ＮＧ」と判定する。所定の領域は、線分ＬＳｊを含むようにユーザが任意に設定可能である。本実施形態では、図２８（ａ）、図２８（ｂ）及び図２８（ｃ）に示すように、所定の領域である許容領域Ｒ１，Ｒ２，Ｒ３を設定している。図２８（ａ）に示す許容領域Ｒ１は、線分ＬＳｊを中心軸とする半径Ｒの円筒の領域である。図２８（ｂ）に示す許容領域Ｒ２は、位置５２ｊを中心とする半径Ｒの球の領域である。図２８（ｃ）に示す許容領域Ｒ３は、位置５３ｊを中心とする半径Ｒの球の領域である。ＣＰＵ４０１は、各位置座標が、領域Ｒ１，Ｒ２，Ｒ３のうちいずれかの領域に収まっていれば、「ＯＫ」判定とする。ＣＰＵ４０１は、複数の位置座標のうち、一つでも領域外の位置座標があれば「ＮＧ」判定とする。
【０２１３】
なお、ロボット１０１の振動が、ロボット１０１の制御点の進行方向と概ね一致している場合、制御点の速度の振動として現れる。振動周期が長い場合、レーザ光の照射を行う第２の時間Ｔ２ｊ中の制御点の速度は、速度の振動の一部を切り取ることとなる。すると、切り取った区間の速度は、目標速度Ｖｗｊと比べて遅くなる場合がある。制御点の速度が遅い場合、前述の所定の領域内に、制御点の位置座標が収まっていても、溶接ビードが短くなる。そこで、ＣＰＵ４０１が、取得した、第２の時間Ｔ２ｊ中の制御点の時系列の位置座標データの差分値を計算し、その差分値をサンプリング時間で除算して制御点の時系列の速度データにする。その後、時系列の速度データの平均値を計算することで、制御点の平均速度を算出する。制御点の平均速度と目標速度Ｖｗｊとの差分の絶対値が、所定値以下であれば「ＯＫ」判定し、所定値を超えていれば「ＮＧ」判定するようにしてもよい。即ち、ロボットの振動の発生の有無の判定として、目標速度Ｖｗｊと、第２の時間の計時中の制御点の平均速度との、差分の絶対値が、所定値以下に収まることを判定してもよい。
【０２１４】
加速度αの調整は、第７実施形態と同様である。以上、ＣＰＵ４０１は、線分ＬＳｊを含む所定の領域内に複数の位置座標が収まるように、加速度αを調整しておく。加速度αを溶接箇所ごとに本動作の前に調整しておくので、本動作においてはレーザ光による加工跡は、所定の領域内に収まる。即ち、加工に必要な位置精度及び速度精度を満たしつつ、溶接箇所から次の溶接箇所へ制御点を高速に移動させることができる。
【０２１５】
なお、ロボット１０１においては、減速機が弾性変形する。したがって、減速機の出力軸にエンコーダを設けておけば、エンコーダの出力値に減速機の弾性変形による誤差が重畳するのを防止できる。したがって、減速機の出力軸に設けられたエンコーダの出力値から制御点の位置座標を計算するようにしてもよい。
【０２１６】
ＣＰＵ３０１がレーザ光を照射／停止させるタイミングを、ＣＰＵ４０１が取得する方法としては、コントローラ１２１から第１の時間Ｔ１の計時完了時、及び、第２の時間Ｔ２ｊの計時完了時に信号を送信させる方法がある。他に、ロボットコントローラ１２２が特殊なコマンドを実行する方法、ロボットコントローラ１２２が第１の時間Ｔ１と第２の時間Ｔ２ｊを計時する方法などがある。また、振動の有無の判定をカメラで撮影し画像処理で行うこともできる。その場合、ロボット１０１はカメラを支持する。まず、第７実施形態のシーケンスを実行する。画像処理を用いる場合、第７実施形態のシーケンスでの試験動作は、実際の照射を伴う試験加工である。試験加工終了後、各溶接箇所をロボットで巡回し溶接ビードを撮影しＨＤＤ４０４に画像として記録する。すなわち、溶接箇所ごとに、加速度αのリストに対応した溶接ビードの画像をＨＤＤ４０４に記録する。加速度αが小さいときは振動が抑制される。従って、溶接点ごとに、加速度αのリストに対応した溶接ビードの画像を比較することで、振動の有無を判定する。具体的には、溶接箇所ごとに、加速度αを最も小さい値に設定したときの溶接ビード画像と、その他の加速度αを設定したときの溶接ビード画像を、比較することで振動の有無を判定する。例えば、各画像について、２値化処理を行い、溶接ビード部分とそれ以外の部分に分離する。その後、溶接ビード部分の重心を求め重心のＸ、Ｙ座標を求める。ここで、Ｘ、Ｙ座標とは、画像の左下を（０、０）とする画像の座標系を意味する。その後、加速度αを最も小さい値に設定したときの溶接ビード画像の重心と、その他の加速度αを設定したときの溶接ビード画像の重心の、距離を算出する。距離が一定の閾値より大きいとき、「ＮＧ」と判定し、閾値以下であれば「ＯＫ」と判定する。以上により振動の有無の判定をカメラで撮影し画像処理で行うことができる。
【０２１７】
［第９実施形態］
第９実施形態では、ロボット１０１の振動の評価方法の第８実施形態とは別の例について、具体的に説明する。図２９は、第９実施形態おけるコントローラ１２１とロボットコントローラ１２２との間の通信を示すシーケンス図である。図２９には、ロボット１０１の振動の評価方法を示すシーケンスの一例を図示している。なお、図２９において、図２１と同様のステップについては、同一符号を付して説明を省略する。
【０２１８】
図２に示すＣＰＵ４０１は、図２９のＳＴＥＰＢ５において、制御点を溶接箇所から次の溶接箇所へ移動させる。第２実施形態から第８実施形態では、ＣＰＵ４０１は、図２１に示すように、ＳＴＥＰＢ５の処理が終了するとＳＴＥＰＢ２の処理である信号ＳＢＢの送信を行っていた。第９実施形態では、ＣＰＵ４０１は、図２９に示すように、ＳＴＥＰＢ５の処理が終了するとＳＴＥＰＢ７の処理を実施するようにする。ＣＰＵ４０１は、ＳＴＥＰＢ７において、制御点の整定待ちを行う。ＳＴＥＰＢ５において、軌道データの払い出しが完了、すなわち、指令の位置が位置５４ｊに到達するとＳＴＥＰＢ５は終了する。しかし、制御点は位置５４ｊに到達していない。そこで、ＳＴＥＰＢ７を実行することで、制御点が振動なく、位置５４ｊに到達したことを確認する。
【０２１９】
本実施形態では、例えば図７に示すロボットプログラム４２２Ａに整定待ちを実行するコマンドを記述することで、ロボット１０１の振動の有無を判定することができる。図２９のＳＴＥＰＢ７においては、ＣＰＵ４０１は、整定待ちコマンドを実行する。整定待ちコマンドは、指令の位置と実際の位置との差分が閾値以内である状態がパラメータで設定した一定時間持続すると終了する。ＣＰＵ４０１は、整定待ちコマンドの実行前から実行完了までの時間を測定することで、ロボット１０１の振動の有無を簡易的に判別できる。例えば、所定の時間よりも短時間で整定待ちコマンドが終了すれば振動なし、所定の時間よりも長時間で整定待ちコマンドが終了すれば、振動ありとなる。なお、溶接を実際に行う際にはＳＴＥＰＥ７の整定待ちは実施しない。即ち、以上のステップは、本動作の前の試験動作として行う。そして、ＣＰＵ４０１は、ロボット１０１の振動ありと判定した場合には、加速度αを低下させる調整を行う。
【０２２０】
以上、ＣＰＵ４０１は、試験動作として、レーザヘッド１０２を加速させる動作を開始させる位置（位置５４ｊ）へロボット１０１の指令の位置を移動させた時点からロボット１０１の制御点が整定するのに要した時間により、加速度αを調整する。
【０２２１】
第９実施形態によれば、複雑な処理を必要とせず簡易的な方法で、ロボット１０１の振動の有無を判別することができ、簡単に加速度αを調整することができる。
【０２２２】
なお、上述の第１〜第９実施形態において、ロボット１０１が直線補間命令に従って動作している途中に、異常が発生する場合がある。ロボットコントローラ１２２は、コントローラ１２１に対して、ロボット１０１の状態を示す信号を周期的に送信すればよい。コントローラ１２１は、ロボット１０１が異常状態であることを示す信号を受信した場合、レーザ光を発振しないようにレーザ発振器１０３を制御すればよい。
【０２２３】
また、上述の第１〜第９実施形態において、ロボットコントローラ１２２が、コントローラ１２１に対してレーザ発振を許可する許可信号を送るようにしてもよい。例えば、ロボットコントローラ１２２が、直線補間命令によって軌道データＰｊの払い出しを実行中であるときに、許可信号をオンする。コントローラ１２１は、許可信号とレーザ発振指令とをＡＮＤ演算し、演算結果をレーザ発振器１０３に送信するようにしてもよい。これにより、ロボットコントローラ１２２が許可信号をオンしなければ、レーザ光は発振されないようになる。このＡＮＤ演算はコントローラ１２１が行うが、別の電子回路で処理してもよい。
【０２２４】
また、上述の第１〜第９実施形態において、ロボット１０１は、レーザ光が人間に暴露しないように、遮光されたブース内（図示せず）に設置されているのが好ましい。人がブースへ入室するための扉を開くと、レーザ発振器１０３のレーザ発振が停止するようになっている。また、光ファイバケーブル１５１がレーザヘッド１０２及びレーザ発振器１０３と正しく接続されていない場合には、光ファイバケーブル１５１内の導線が接続されず、レーザ発振器１０３のレーザ発振が停止するようになっている。また、光ファイバケーブル１５１に一定以上の曲げが加わると内部の導線が切れ、レーザ発振器１０３のレーザ発振が停止するようになっている。また、セーフティレーザスキャナやセーフティライトカーテンなどで人間を感知して、レーザ発振器１０３のレーザ発振を停止するようにすることも可能である。また、ロボットコントローラ１２２やコントローラ１２１がなんらかの原因によって応答しなくなった場合に備えて、外部のハードウェアによって監視してレーザ発振を停止することも可能である。例えば、ロボットコントローラ１２２やコントローラ１２１から一定周期ごとにオン／オフする信号を出力し、出力された信号が一定時間変化しなければレーザ発振を止めればよい。
【０２２５】
また、上述の第１〜第９実施形態では、制御装置１２０が、コントローラ１２１とロボットコントローラ１２２とで構成される場合について説明したが、これに限定するものではない。コントローラ１２１とロボットコントローラ１２２との機能を併せ持つことが可能であれば、制御装置を１つのコンピュータで実現してもよい。例えば、複数のプロセッサ、又はプロセッサが有する複数のコアにより並列処理が可能であれば、制御装置を１つのコンピュータで実現することは可能である。
【０２２６】
また、上述の第１〜第９実施形態では、ロボット１０１が、垂直多関節のロボットの場合について説明したが、これに限定するものではない。ロボットが、例えば水平多関節のロボット、パラレルリンクのロボット、又は直交ロボット等のロボットであってもよい。
【０２２７】
また、上述の第１〜第９実施形態では、レーザ加工装置がレーザ溶接加工を行う場合について説明したが、これに限定するものではなく、例えばレーザ溝あけ加工又はレーザ切断加工を行う場合であってもよい。
【０２２８】
また、上述の第１〜第９実施形態では、レーザ溶接装置がレーザヘッド１０２を１つ備えている場合について説明したが、これに限定するものではない。即ち、レーザ溶接装置がレーザヘッド１０２を複数備えていてもよい。この場合、レーザ溶接装置は、複数のレーザヘッド１０２を個別に移動させることができるよう、ロボット１０１も複数備えていればよい。
【０２２９】
［第１０実施形態］
図３０は、第１０実施形態に係るレーザ加工装置の一例であるレーザ溶接装置１００Ｂの概略構成を示す説明図である。図１と同一の構成要素には同一の参照符号を付与することにする。レーザ溶接装置１００Ｂは、複数のロボット１０１１，１０１２，…，１０１Ｎ（Ｎは２以上の正の整数）を含むロボット装置１１０、複数のレーザヘッド１０２１，１０２２，…，１０２Ｎ、及び光源の一例である１台のレーザ発振器１０３を備える。また、レーザ溶接装置１００Ｂは、切替器１０４及び制御装置１２０Ｂを備える。制御装置１２０Ｂは、装置全体の制御、具体的にはロボット装置１１０の動作、レーザ発振器１０３におけるレーザ光の発生又は停止、及び切替器１０４の切り替え動作を制御する。制御装置１２０Ｂは、第１のコントローラの一例であるコントローラ１２１Ｂと、複数の第２のコントローラの一例である複数のロボットコントローラ１２２１，１２２２，…，１２２Ｎとを有する。ロボット１０１１，１０１２，…，１０１Ｎは、マニピュレータである。
【０２３０】
切替器１０４とレーザヘッド１０２１，１０２２，…，１０２Ｎとは、レーザ光の光路となる光ファイバケーブル１５１１，１５１２，…，１５１Ｎで接続されている。切替器１０４とレーザ発振器１０３とは、光ファイバケーブル１５２で接続されている。レーザ発振器１０３とコントローラ１２１Ｂとは、互いにデジタル信号の通信が可能にケーブル１５３で接続されている。切替器１０４とコントローラ１２１Ｂとは、互いにデジタル信号の通信が可能にケーブル１５４で接続されている。
【０２３１】
ロボットアーム１１１１，１１１２，…，１１１Ｎとロボットコントローラ１２２１，１２２２，…，１２２Ｎとは、動力線及び信号線を有するケーブル１５５１，１５５２，…，１５５Ｎで接続されている。コントローラ１２１Ｂとロボットコントローラ１２２１，１２２２，…，１２２Ｎとは、互いにデジタル信号の通信が可能にケーブル１５６１，１５６２，…，１５６Ｎで接続されている。
【０２３２】
レーザ発振器１０３は、連続発振レーザ又はパルス発振レーザであり、レーザ発振によりレーザ光を発生する。レーザ発振器１０３にて発生されたレーザ光は、光ファイバケーブル１５２を介して切替器１０４に送られる。切替器１０４は、複数のレーザヘッド１０２１，１０２２，…，１０２Ｎのうちいずれかのレーザヘッドに、レーザ発振器１０３にて発生させたレーザ光を光ファイバケーブル１５１１，１５１２，…，１５１Ｎを介して導くよう光路を切り替えるものである。具体的に説明すると、切替器１０４は、複数のミラー１１４１，１１４２，…，１１４Ｎを有し、ミラー１１４１，１１４２，…，１１４Ｎを動作させて、各レーザヘッド１０２１，１０２２，…，１０２Ｎに時分割でレーザ光を導くよう光路を切り替える。よって、レーザ発振器１０３を複数用意する必要が無く、コスト削減になる。
【０２３３】
レーザヘッド１０２１，１０２２，…，１０２Ｎは、切替器１０４により導かれたレーザ光Ｌ１，Ｌ２，…，ＬＮを出射する。レーザヘッド１０２１，１０２２，…，１０２Ｎから出射されたレーザ光Ｌ１，Ｌ２，…，ＬＮの焦点は、レーザヘッド１０２１，１０２２，…，１０２Ｎに対して所定距離の位置に結ばれる。コントローラ１２１Ｂは、レーザ発振器１０３におけるレーザ光の発生又は停止、及び切替器１０４の切り替え動作を制御する。即ち、コントローラ１２１Ｂは、レーザ発振器１０３にレーザ光の発生又は停止をケーブル１５３を介して指令する。
【０２３４】
本実施形態ではロボット１０１１，１０１２，…，１０１Ｎは同一構成である。ロボット装置１１０のロボット１０１ｉは、例えば垂直多関節のロボットである。ｉは、１〜Ｎの整数であり、ロボットに付与した通し番号でもある。ロボット１０１ｉは、ロボットアーム１１１ｉと、ロボットアーム１１１ｉに取り付けられたエンドエフェクタの一例であるロボットハンド１１２ｉとを有する。ロボット１０１ｉは、レーザヘッド１０２ｉを支持する。本実施形態では、ロボット１０１ｉは、ロボットハンド１１２ｉがレーザヘッド１０２ｉを把持することで、レーザヘッド１０２ｉを支持する。なお、例えばレーザヘッド１０２ｉをロボットアーム１１１ｉの先端又はロボットハンド１１２ｉに取り付けて、ロボット１０１ｉにレーザヘッド１０２ｉを支持させてもよい。
【０２３５】
レーザヘッド１０２ｉがロボット１０１ｉに支持されているので、ロボット１０１ｉを動作させることにより、レーザヘッド１０２ｉを所望の位置及び姿勢に移動させることができる。ロボット１０１ｉを動作させてレーザヘッド１０２ｉを所望の位置及び姿勢に移動させることにより、レーザ光Ｌｉの焦点を空間における所望の位置に移動させることができる。レーザ光Ｌｉの焦点を、加工対象物Ｗにおいて溶接ビードを形成させる位置に合わせることにより、加工対象物Ｗをレーザ光Ｌｉで溶接加工することができる。このように、複数のロボット１０１１，１０１２，…，１０１Ｎを含むロボット装置１１０は、複数のレーザヘッド１０２１，１０２２，…，１０２Ｎを個別に移動させることができる。なお、加工対象物Ｗを加工することで、加工品が得られる。
【０２３６】
本実施形態では、制御装置１２０Ｂがレーザ発振器１０３、ロボット装置１１０、及び切替器１０４を制御して、レーザシーム溶接を行う。レーザシーム溶接においては、レーザ光Ｌｉとして連続波を用いるものと、パルス波を用いるものとがあるが、いずれであってもよい。レーザシーム溶接では、レーザ光Ｌｉで加工対象物Ｗの表面を走査する必要がある。本実施形態では、ガルバノミラーを用いず、ロボット１０１ｉに支持されたレーザヘッド１０２ｉを移動させながらレーザ光Ｌｉを出射し、レーザ光Ｌｉで加工対象物Ｗの表面を走査して、レーザ溶接加工する。ガルバノミラーを省略した分、コスト削減になる。
【０２３７】
加工対象物Ｗにおいて、１つのロボット１０１ｉ、即ち１つのレーザヘッド１０２ｉで溶接を行う溶接箇所は１つでもよいが、本実施形態では複数あるものとして説明する。また、複数のロボット１０１１，１０１２，…，１０１Ｎ、即ち複数のレーザヘッド１０２１，１０２２，…，１０２Ｎには、説明の便宜上、ｉ＝１〜Ｎの通し番号を付している。以下、１からＮの順番に切り替えて、溶接箇所を１つずつ順番にレーザ溶接加工する場合について説明する。例えば、第１のロボットをロボット１０１１、第１のレーザヘッドをレーザヘッド１０２１とした場合、次に動作させる第２のロボットはロボット１０１２、次にレーザ光を導く第２のレーザヘッドはレーザヘッド１０２２ということになる。
【０２３８】
図３１は、第１０実施形態におけるレーザ溶接装置１００Ｂの制御系の一例を示すブロック図である。図２と同一の構成要素には同一の参照符号を付与することにする。コントローラ１２１Ｂは、例えば汎用コンピュータで構成され、プロセッサの一例であるＣＰＵ（Central  Processing  Unit）３０１を有する。また、コントローラ１２１Ｂは、ＣＰＵ３０１を動作させる基本プログラム等が格納されたＲＯＭ（Read  Only  Memory）３０２、及びＣＰＵ３０１の作業領域としてのＲＡＭ（Random  Access  Memory）３０３を有する。また、コントローラ１２１Ｂは、記憶装置の一例であるＨＤＤ（Hard  Disk  Drive）３０４と、ディスクドライブ３０５とを有する。ディスクドライブ３０５は、記録媒体の一例である記録ディスク３２３に記録されたプログラム等を読み出すことができる。
【０２３９】
また、コントローラ１２１Ｂは、インタフェース（Ｉ／Ｆ）３１１１，３１１２，…，３１１Ｎ、インタフェース（Ｉ／Ｆ）３１２及びインタフェース（Ｉ／Ｆ）３１３を有する。これらＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、ディスクドライブ３０５、Ｉ／Ｆ３１１１，３１１２，…，３１１Ｎ、Ｉ／Ｆ３１２及びＩ／Ｆ３１３は、バス３１０で互いに通信可能に接続されている。Ｉ／Ｆ３１２には、ケーブル１５３でレーザ発振器１０３が接続されている。Ｉ／Ｆ３１３には、ケーブル１５４で切替器１０４が接続されている。
【０２４０】
ＣＰＵ３０１には、クロック発生回路３１３が接続されている。ＣＰＵ３０１は、クロック発生回路３１３にて発生されたクロック信号に同期して動作する。つまり、ＣＰＵ３０１の動作周波数は、クロック発生回路３１３のクロック信号によって決まる。
【０２４１】
ＨＤＤ３０４には、ＣＰＵ３０１に計時処理を行わせたり、ＣＰＵ３０１に信号の送受信処理を行わせたりする、装置全体のシーケンスを管理するよう構成された制御プログラム３２１が記憶（記録）されている。ＣＰＵ３０１は、制御プログラム３２１に従って、計時処理や信号の送受信処理等の各種の処理を実行する。また、ＨＤＤ３０４には、第１の時間Ｔ１、第２の時間Ｔ２ｊ，ｉ及び第３の時間Ｔ３などの時間のデータを含む各種のデータ３２２が記憶（記録）される。なお、データ３２２は、制御プログラム３２１に組み込まれていてもよい。
【０２４２】
ここで、第１の時間Ｔ１は、溶接箇所においてレーザヘッド１０２ｊが等速となるように溶接箇所に向かってレーザヘッド１０２ｉを加速させるのに要する時間である。また、第２の時間Ｔ２ｊ，ｉは、溶接箇所においてレーザヘッド１０２ｊがレーザ光を照射するのに要する時間である。ｉは、上述したように、１〜Ｎの正の整数であって、ロボット、レーザヘッド等に付与した通し番号であり、動作させる順番に対応する。ｊは、正の整数であり、溶接箇所に対応付けて付与した通し番号であり、溶接する順番でもある。即ち、第２の時間Ｔ２ｊ，ｉは、ロボット１０１ｉに支持されたレーザヘッド１０２ｉおいて溶接されるｊ箇所目の溶接箇所にレーザ光を照射するのに要する時間である。また、第３の時間Ｔ３は、切替器１０４において切り替え動作に要する時間である。以下、符号に下付きで付与する（ｊ，ｉ）は、ｉ番目のロボット１０１ｉ（レーザヘッド１０２ｉ）におけるｊ箇所目の溶接箇所を意味する。
【０２４３】
ＣＰＵ３０１は、制御プログラム３２１を実行することにより、ソフトウェアタイマとして機能する。具体的には、ＣＰＵ３０１は、第１の時間Ｔ１を計時するタイマと、第２の時間Ｔ２ｊ，ｉを計時するタイマとして機能する。また、ＣＰＵ３０１は、第２の時間Ｔ２ｊ，ｉと第３の時間Ｔ３との合計時間（Ｔ２ｊ，ｉ＋Ｔ３）を計時するタイマとして機能する。また、ＣＰＵ３０１は、制御プログラム３２１を実行することにより、レーザ発振器１０３にレーザ発振指令ＳＲ１（信号）を送信してレーザ発振器１０３を制御する。また、ＣＰＵ３０１は、制御プログラム３２１を実行することにより、切替器１０４に切替信号ＳＳを送信して、切替器１０４を制御する。さらに、ＣＰＵ３０１は、制御プログラム３２１を実行することにより、ロボットコントローラ１２２ｉに、ロボット１０１ｉの動作開始を指示する動作開始指令（所定の指令）ＳＡｉを送信する。
【０２４４】
なお、制御プログラム３２１が記録される記録媒体は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラム３２１を供給するための記録媒体としては、図３１に示すＲＯＭ３０２，記録ディスク３２３、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭ、ブルーレイ等の光ディスク、磁気ディスク、磁気テープ、半導体メモリ等を用いることができる。
【０２４５】
ロボットコントローラ１２２ｉは、ロボット１０１ｉの制御を行う専用のコンピュータである。なお、図３１においては、ロボット１０１ｉとして、ロボットアーム１１１ｉの制御系について図示し、ロボットハンド１１２ｉの制御系については図示を省略している。ロボットコントローラ１２２ｉは、プロセッサの一例であるＣＰＵ４０１ｉ、ＣＰＵ４０１ｉを動作させる基本プログラム等が格納されたＲＯＭ４０２ｉ、及びＣＰＵ４０１ｉの作業領域としてのＲＡＭ４０３ｉを有する。また、ロボットコントローラ１２２ｉは、記憶装置の一例であるＨＤＤ４０４ｉを有する。
【０２４６】
また、ロボットコントローラ１２２ｉは、サーボ演算部の一例であるＦＰＧＡ４１６ｉ、及び電流アンプ４１７ｉを有する。ロボットコントローラ１２２ｉは、インタフェース（Ｉ／Ｆ）４１１ｉを有する。ＣＰＵ４０１ｉ、ＲＯＭ４０２ｉ、ＲＡＭ４０３ｉ、ＨＤＤ４０４ｉ、ＦＰＧＡ４１６ｉ、Ｉ／Ｆ４１１ｉは、バス４１０ｉで互いに通信可能に接続されている。また、コントローラ１２１ＢのＩ／Ｆ３１１ｉとロボットコントローラ１２２ｉのＩ／Ｆ４１１ｉとがケーブル１５６ｉで接続されている。
【０２４７】
ＣＰＵ４０１ｉには、クロック発生回路４１４ｉが接続され、ＦＰＧＡ４１６ｉには、クロック発生回路４１５ｉが接続されている。ＣＰＵ４０１ｉは、クロック発生回路４１４ｉにて発生されたクロック信号に同期して動作し、ＦＰＧＡ４１６ｉは、クロック発生回路４１５ｉにて発生されたクロック信号に同期して動作する。つまり、ＣＰＵ４０１ｉの動作周波数は、クロック発生回路４１４ｉのクロック信号によって決まり、ＦＰＧＡ４１６ｉの動作周波数は、クロック発生回路４１５ｉのクロック信号によって決まる。
【０２４８】
ＨＤＤ４０４ｉには、プログラム４２１ｉ、及びロボットプログラム４２２ｉが記憶（記録）されている。
【０２４９】
ロボットアーム１１１ｉは、各関節を駆動する複数（例えば６つ）のモータＭ１ｉ，…，Ｍ６ｉと、モータＭ１ｉ，…，Ｍ６ｉの回転角度（回転位置）を検知する位置センサの一例である複数（例えば６つ）のエンコーダＥｎ１ｉ，…，Ｅｎ６ｉと、を有する。また、ロボットアーム１１１ｉは、エンコーダＥｎ１ｉ，…，Ｅｎ６ｉに接続され、電子回路で構成された検出回路１１５ｉを有する。
【０２５０】
以上の構成で、コントローラ１２１Ｂ、具体的にはＣＰＵ３０１は、Ｉ／Ｆ３１２からレーザ発振指令（信号）ＳＲ１をレーザ発振器１０３に送信する。レーザ発振指令ＳＲ１を受信したレーザ発振器１０３は、レーザ発振指令ＳＲ１に従い、レーザ光を発生するように動作する。具体的には、コントローラ１２１Ｂは、レーザ発振指令ＳＲ１として、レーザ発振器１０３にレーザ光の発生を指令するときには電気信号の電圧をローレベルからハイレベルに切り替えて、Ｉ／Ｆ３１２から送信する。電気信号の電圧をハイレベルにする場合、レーザ発振指令ＳＲ１をオンにするともいう。また、コントローラ１２１Ｂは、レーザ発振器１０３にレーザ光の停止を指令するときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、レーザ発振指令ＳＲ１をオフにするともいう。したがって、レーザ発振器１０３は、レーザ発振指令ＳＲ１がオンのときにはレーザ光を発生させ、レーザ発振指令ＳＲ１がオフのときにはレーザ光を停止させる。
【０２５１】
また、レーザ発振器１０３は、レーザ光を発生していることを示す信号ＳＲ２をコントローラ１２１Ｂに送信する。具体的には、レーザ発振器１０３は、信号ＳＲ２として、レーザ光を発生しているときには電圧がハイレベルの電気信号をコントローラ１２１Ｂに送信する。電気信号の電圧をハイレベルにする場合、信号ＳＲ２をオンにするともいう。また、レーザ発振器１０３は、レーザ光の発生を停止しているときには電気信号の電圧をローレベルとする。電気信号の電圧をローレベルにする場合、信号ＳＲ２をオフにするともいう。
【０２５２】
更に、コントローラ１２１Ｂ、具体的にはＣＰＵ３０１は、Ｉ／Ｆ３１３から切替信号ＳＳを切替器１０４に送信する。切替信号ＳＳは、それぞれのレーザヘッド１０２ｉに割り当てられた固有の符号となる複数のビット（ビット列）からなるデジタル信号である。切替信号ＳＳを受信した切替器１０４は、切替信号ＳＳのビット列に応じて、光路の切り替えを行う。
【０２５３】
更にまた、コントローラ１２１Ｂ、具体的にはＣＰＵ３０１は、Ｉ／Ｆ３１１ｉからロボット１０１ｉの動作開始を指示する動作開始指令（所定の指令）ＳＡｉをロボットコントローラ１２２ｉに送信する。具体的には、コントローラ１２１Ｂは、ロボット１０１ｉの動作を開始するよう動作開始指令ＳＡｉを指令するときには、電圧がハイレベルの電気信号をロボットコントローラ１２２ｉへ送信する。電気信号の電圧をハイレベルにする場合、動作開始指令ＳＡｉをオンにするともいう。また、コントローラ１２１Ｂは、動作開始指令ＳＡｉを示す電気信号の電圧をハイレベルにした後、所定のタイミングでローレベルとする。電気信号の電圧をローレベルにする場合、動作開始指令ＳＡｉをオフにするともいう。
【０２５４】
ロボットコントローラ１２２ｉは、動作開始指令ＳＡｉを受信して、ロボットプログラム４２２ｉに従ってロボット１０１ｉの動作を制御する。即ち、ロボットコントローラ１２２ｉは、動作開始指令ＳＡｉを監視しており、動作開始指令ＳＡｉがオフからオンに切り替わると、レーザヘッド１０２ｉでレーザシーム溶接を行うためにレーザヘッド１０２ｉを加速させる動作をロボット１０１ｉに開始させる。
【０２５５】
また、ロボットコントローラ１２２ｉは、ロボット１０１ｉが溶接箇所を含む所定の区間の軌道データに基づいて動作中であることを示すデジタル信号である信号ＳＢｉを、コントローラ１２１Ｂに送信する。具体的には、ロボットコントローラ１２２ｉは、レーザヘッド１０２ｉを加速させる動作をロボット１０１ｉに開始させた時点で、信号ＳＢｉを示す電気信号の電圧をローレベルからハイレベルに切り替えて、コントローラ１２１Ｂに送信する。また、ロボットコントローラ１２２ｉは、所定のタイミングで信号ＳＢｉを示す電気信号の電圧をハイレベルからローレベルにする。以下、信号ＳＢｉを示す電気信号の電圧をハイレベルにすることを、信号ＳＢｉをオンにするともいう。また、信号ＳＢｉを示す電気信号の電圧をローレベルにすることを、信号ＳＢｉをオフにするともいう。
【０２５６】
ロボットアーム１１１ｉの姿勢制御、即ちレーザヘッド１０２ｉの位置姿勢制御（レーザ光Ｌｉの焦点の位置制御）は、ロボットコントローラ１２２ｉからロボットアーム１１１ｉのモータＭ１ｉ，…，Ｍ６ｉへ流されるモータ電流ＳＣ１ｉによって行われる。ロボットプログラム４２２ｉは、ロボット言語で記述されたプログラムである。ユーザは、ロボット言語をテキストデータで記述することにより、ロボット１０１ｉの動作を指示することができる。ロボットコントローラ１２２ｉのＣＰＵ４０１ｉは、プログラム４２１ｉを実行することにより、ロボットプログラム４２２ｉの解釈を行い、複数の指令からなる軌道データを生成し、生成した軌道データをＦＰＧＡ４１６ｉへ出力する。ＦＰＧＡ４１６ｉは、軌道データに従ってサーボ演算を行う。即ち、ＦＰＧＡ４１６ｉはサーボ演算によってモータ電流指令を生成し、生成したモータ電流指令を電流アンプ４１７ｉに送る。電流アンプ４１７ｉは、モータ電流指令に応じたモータ電流ＳＣ１ｉを生成し、ロボットアーム１１１ｉの各関節にあるモータＭ１ｉ，…，Ｍ６ｉに流す。流されたモータ電流ＳＣ１ｉによってロボットアーム１１１ｉの各モータＭ１ｉ，…，Ｍ６ｉが駆動される。検出回路１１５ｉは、モータＭ１ｉ，…，Ｍ６ｉが回転するとエンコーダＥｎ１ｉ，…，Ｅｎ６ｉから検出信号を取得する。検出回路１１５ｉは、検出信号をシリアルのデジタル信号ＳＣ２ｉに変換してロボットコントローラ１２２ｉのＦＰＧＡ４１６ｉへ送信する。
【０２５７】
モータＭ１ｉ，…，Ｍ６ｉの回転角度（位置）を示すデジタル信号ＳＣ２ｉは、ＦＰＧＡ４１６ｉにおけるサーボ演算に使われる。また、プログラム４２１ｉは、Ｉ／Ｆからの読込処理、演算処理、Ｉ／Ｆへの出力処理を定期的に行っている。この周期をロボットコントローラ１２２ｉの制御周期と呼ぶこととする。エンコーダＥｎ１ｉ，…，Ｅｎ６ｉの検出信号はＡＢＺ相のパルス信号である。検出回路１１５ｉは、エンコーダＥｎ１ｉ，…，Ｅｎ６ｉのパルス信号を、パルス数（位置座標に変換可能な値）を示すデジタル信号ＳＣ２ｉに変換してＦＰＧＡ４１６ｉへフィードバックする。なお、サーボ機構、即ちＦＰＧＡ４１６ｉ及び電流アンプ４１７ｉをロボットアーム１１１ｉ内に配置し、ＣＰＵ４０１ｉからケーブルを介してロボットアーム１１１ｉ内のサーボ機構に位置指令、即ち軌道データを送信する構成としてもよい。また、ＦＰＧＡ４１６ｉの機能をＣＰＵ４０１ｉに持たせて、ＦＰＧＡ４１６ｉを省略してもよい。エンコーダＥｎ１ｉ，…，Ｅｎ６ｉのパルス信号をデジタル信号に変換してロボットコントローラ１２２ｉに送信するものとして説明したが、エンコーダＥｎ１ｉ，…，Ｅｎ６ｉのパルス信号を直接ロボットコントローラ１２２ｉに送信するようにしてもよい。また、位置センサとして、エンコーダＥｎ１ｉ，…，Ｅｎ６ｉのかわりにレゾルバを用いてもよい。
【０２５８】
ここで、ロボット１０１ｉの動作の制御点は、ロボット１０１ｉの手先と共に移動する点であればよいが、本実施形態では、ロボット１０１ｉの動作の制御点を、レーザ光の焦点としている。制御点は、ロボット１０１ｉのベースを基準とする、３次元空間における位置を表す３つのパラメータ（Ｘ，Ｙ，Ｚ）と、３次元空間における姿勢を表す３つのパラメータ（Ａ，Ｂ，Ｃ）からなる６つのパラメータで表される。したがって、制御点は、６次元のタスク空間上では、１つの点としてみなすことができる。ロボットプログラム４２２ｉには、制御点の移動目標である教示点がユーザによって記述（指定）される。ロボットコントローラ１２２ｉは、ロボットプログラム４２２ｉを解釈し、教示点を結ぶ軌道データ、すなわち教示点を補間した軌道データを生成する。教示点間を補間する補間方法としては、直線補間、円弧補間、関節補間などがあり、これら補間方法が補間命令としてロボットプログラム４２２ｉにユーザによって記述（指定）される。
【０２５９】
ロボットコントローラ１２２ｉのＣＰＵ４０１ｉは、補間により求めた軌道データをロボット１０１ｉの各関節の角度の指令に変換し、ＦＰＧＡ４１６ｉは、サーボ演算を行う。ＦＰＧＡ４１６ｉは、サーボ演算の結果、電流アンプ４１７ｉに送られる電流指令を決定する。サーボ演算はロボットコントローラ１２２ｉのＣＰＵ４０１ｉの制御周期毎に行われる。各関節の角度の指令は制御周期毎に更新されるが、その増減量をコントロールすることでロボット１０１ｉの速度は決定される。すなわち、各関節の角度の指令の増減量が大きければロボット１０１ｉは速く動作し、増減量が小さければロボット１０１ｉは遅く動作する。
【０２６０】
ロボット１０１ｉの動作によって制御点（レーザ光の焦点）が移動する実際の経路は、位置制御の応答遅れにより、ロボットプログラム４２２ｉによって指令される経路からずれることがある。
【０２６１】
図３２は、第１０実施形態における制御点の経路の一例を示す説明図である。ここで、制御点（レーザ光の焦点）の経路は、ロボット１０１ｉの動作によって作られるため、ロボット１０１ｉに支持されたレーザヘッド１０２ｉの経路と同義である。
【０２６２】
以下、ロボットプログラム４２２ｉに記述された補間命令の一例としての直線補間命令を実行する場合について説明する。直線補間命令とは、第１の位置座標と第２の位置座標とを結んだ直線に沿って制御点が移動するように補間する命令であり、制御点の経路は、３次元空間で線分となる。なお、第１の位置座標と第２の位置座標とでロボット１０１ｉの姿勢も補間する方法と、第１の位置座標の姿勢を第２の位置座標まで保つ方法の２通りが可能であるが、本実施形態では姿勢も補間する。いずれの方法であっても、ロボット１０１ｉの制御点、即ちレーザ光の焦点は、第１の位置座標と第２の位置座標とを結んだ線分上を通る。なお、ロボットプログラム４２２ｉでは第１の位置座標はロボット１０１ｉの現在の指令位置を利用し、移動先の第２の位置座標のみを指定することが多い。位置座標はユーザが設定する教示点（教示位置）を使ってもよいし、教示点に所望の演算を加えて教示点とは異なる位置を示す位置座標を使ってもよい。また、ロボットコントローラ１２２ｉのＣＰＵ４０１ｉが直線補間命令を実行すると、現在の指令位置と移動先の目標位置を結ぶ軌道データを生成し、その軌道データをＦＰＧＡ４１６ｉに制御周期毎に払い出しを行う。ロボットコントローラ１２２ｉのＣＰＵ４０１ｉは軌道データの払い出しが完了すると直線補間命令は完了し、ロボットプログラム４２２ｉに記述された次の命令を実行する。
【０２６３】
図３２中、破線は制御点の指令の経路（位置）５０ｉ、実線は制御点の実際の経路（位置）５１ｉである。そして、図３２の例では、レーザシーム溶接をする箇所が２箇所ある。ｊ箇所目（図３２の例では、ｊ＝１，２）は、レーザ光の照射を開始する際の制御点の位置５２ｊ，ｉとレーザ光の照射を終了する際の制御点の位置５３ｊ，ｉとの間である。なお、レーザシーム溶接を行う溶接箇所は、２箇所に限定するものではなく、１箇所であってもよいし、３箇所以上であってもよい。制御点の位置５２ｊ，ｉ及び制御点の位置５３ｊ，ｉは、ユーザが設定する教示点（教示位置）である。
【０２６４】
ロボットコントローラ１２２ｉは、教示による位置５２ｊ，ｉと教示による位置５３ｊ，ｉとを結ぶ延長線上に位置する位置５４ｊ，ｉと位置５５ｊ，ｉとを、予め決められたアルゴリズムに従って求める。このアルゴリズムはロボットプログラム４２２ｉに記述されている。ロボットプログラム４２２ｉには直線補間命令の引数に位置５５ｊ，ｉを与えて実行させる。なお、位置５５ｊ，ｉへの直線補間命令を実行させるためには、位置５４ｊ，ｉへ移動命令を実行させ、ロボット１０１ｉの位置指令が位置５４ｊ，ｉへ到達している必要がある。
【０２６５】
位置５４ｊ，ｉは、制御点の移動を開始する指令の位置である。位置５５ｊ，ｉは、制御点の移動を終了する指令の位置である。そして、ロボットコントローラ１２２ｉは、教示による位置５２ｊ，ｉ，５３ｊ，ｉの間の区間を含み、位置５４ｊ，ｉを始点、位置５５ｊ，ｉを終点とする、直線補間による所定の区間の軌道データＰｊ，ｉを生成する。
【０２６６】
このように、ロボット１０１ｉへ指令する軌道データＰｊ，ｉの一部である位置５２ｊ，ｉ，５３ｊ，ｉは、ユーザにより指定される教示点である。一方、ロボット１０１ｉへ指令する軌道データＰｊ，ｉの一部である位置５４ｊ，ｉ，５５ｊ，ｉは、ロボットコントローラ１２２ｉがロボットプログラム４２２ｉに従って自動計算して求める指令であり、教示点ではない。
【０２６７】
ロボットコントローラ１２２ｉは、図３２に示す位置５５１，ｉと位置５４２，ｉとの間も、ロボットプログラム４２２ｉに記述された補間命令に従って補間して、軌道データＰ１−２，ｉを生成する。なお、位置５５１，ｉと位置５４２，ｉとの間は、単にレーザヘッド１０２ｉを移動させるだけなので、任意の補間方法で補間可能である。したがって、ロボットプログラム４２２ｉには、任意の補間命令を記述可能である。ロボットプログラム４２２ｉに例えば直線補間命令が記述されている場合には、直線補間で補間すればよい。ロボットプログラム４２２ｉに例えば関節補間命令が記述されている場合には、関節補間で補間すればよい。関節補間命令とは、ロボット１０１ｉの各関節の動作量を時間で分割して補間する命令であり、制御点の経路は直線にはならない。ただし、ロボット１０１ｉの動作は、直線補間命令でロボット１０１ｉを動作させる場合よりも高速となる。
【０２６８】
レーザシーム溶接を行う場合、制御点の移動速度が目標速度Ｖｗｊ，ｉとなるのに必要な助走区間が必要である。本実施形態では、位置５４ｊ，ｉと位置５２ｊ，ｉとの間が助走区間ということになる。各溶接箇所の目標速度Ｖｗｊ，ｉは、ロボットプログラム４２２ｉに記述（指定）される。
【０２６９】
なお、レーザシーム溶接を行うので、制御点は位置５２ｊ，ｉと位置５３ｊ，ｉとの間の溶接を行う区間を高精度に移動する必要があるが、レーザシーム溶接を行わないそれ以外の区間、例えば助走区間は位置精度が低くてもよい。したがって、図３２に示すように、溶接を行う区間以外の区間において、実際の経路５１ｉが指令の経路５０ｉに対してずれていてもよい。換言するとロボットコントローラ１２２ｉは、制御点が位置５２ｊ，ｉと位置５３ｊ，ｉとの区間を高精度に移動するように、始点である位置５４ｊ，ｉ及び終点である位置５５ｊ，ｉを求める。
【０２７０】
ここで、ロボットコントローラ１２２ｉが位置５４ｊ，ｉをロボット１０１ｉに指令する時点で、ロボット１０１ｉが静止している場合と、ロボット１０１ｉが動作している場合とがあるが、いずれであってもよい。
【０２７１】
動作開始指令ＳＡｉを受信したロボットコントローラ１２２ｉは、動作開始指令ＳＡｉに従い、溶接を行う軌道データＰｊ，ｉの指令を開始する。即ち、ロボットコントローラ１２２ｉは、動作開始指令ＳＡｉがオフからオンに切り替わることにより、軌道データＰｊ，ｉの指令を開始する。図３２の例では、ロボットコントローラ１２２ｉは、動作開始指令ＳＡｉを受信すると、軌道データＰ１，ｉに従ってロボット１０１ｉを動作させ、引き続き、軌道データＰ１−２，ｉに従ってロボット１０１ｉを動作させる。動作が完了するとロボットは準備完了状態となり次の動作開始指令ＳＡｉを監視する。ロボットコントローラ１２２ｉは、次の動作開始指令ＳＡｉを受信すると、軌道データＰ２，ｉに従ってロボット１０１ｉを動作させる。
【０２７２】
なお、ロボットプログラム４２２ｉには、動作開始指令ＳＡｉがオフからオンに切り替わったことをロボットコントローラ１２２ｉが受信すると、ロボットコントローラ１２２ｉが軌道データＰｊ，ｉの指令を開始するように記述されている。
【０２７３】
図３３は、第１０実施形態におけるロボット１０１ｉの動作による制御点の移動距離の一例を示す説明図である。図４と同一の構成要素には同一の参照符号を付与することにする。図３３において、説明の便宜上、時刻ＴＰ１１，ｉ，ＴＰ２１，ｉ，ＴＰ３１，ｉ，ＴＰ５１，ｉ，ＴＰ１２，ｉ，ＴＰ２２，ｉ，ＴＰ３２，ｉ，ＴＰ５２，ｉを図示している。本実施形態のレーザ溶接装置１００Ｂでは、時刻ＴＰ１１，ｉ，ＴＰ２１，ｉ，ＴＰ３１，ｉ，ＴＰ５１，ｉ，ＴＰ１２，ｉ，ＴＰ２２，ｉ，ＴＰ３２，ｉ，ＴＰ５２，ｉとなったタイミングをカウントして処理を行うものではない。なお、図３２と同様、破線は指令の経路５０ｉを示し、実線は実際の経路５１ｉを示す。
【０２７４】
ロボットコントローラ１２２ｉは、軌道データＰ１，ｉ、軌道データＰ１−２，ｉ、軌道データＰ２，ｉの順にロボット１０１ｉの動作を制御する。しかし、位置制御の応答遅れにより、制御点は、図３３に示すように、指令した時刻に対して遅れて動作する。
【０２７５】
１箇所目の溶接のために、ロボットコントローラ１２２ｉが直線補間命令を実行して、軌道データＰ１，ｉの払い出しを開始する。すると、ロボット１０１ｉの角度の指令が軌道データＰ１，ｉの始点である位置５４１，ｉから軌道データＰ１，ｉの終点である位置５５１，ｉへ変化を始める。この変化を開始する時刻ＴＰ１１，ｉで、制御点、即ちレーザヘッド１０２ｉを加速させるロボット１０１ｉの動作が開始される。
【０２７６】
ロボットコントローラ１２２ｉが位置５２１，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ２１，ｉで、指令した位置５２１，ｉに対応する位置を通過する。ロボットコントローラ１２２ｉが位置５３１，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ３１，ｉで、指令した位置５３１，ｉに対応する位置を通過する。ロボットコントローラ１２２ｉが軌道データＰ１，ｉの終点である位置５５１，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ５１，ｉで、指令した位置５５１，ｉに対応する位置を通過する。レーザ光の照射は、実際の制御点が位置５２１を通過したときにレーザ光の照射を開始し、実際の制御点が位置５３１を通過したときにレーザ光の照射を停止する必要がある。
【０２７７】
次にロボットコントローラ１２２ｉは、次の溶接動作の準備のために、位置５５１，ｉから位置５４２，ｉへ向かう軌道データＰ１−２，ｉに従ってロボット１０１ｉを動作させる。
【０２７８】
２箇所目の溶接のために、ロボットコントローラ１２２ｉが直線補間命令を実行して、軌道データＰ２，ｉの払い出しを開始する。すると、ロボット１０１ｉの角度の指令が軌道データＰ２，ｉの始点である位置５４２，ｉから軌道データＰ２，ｉの終点である位置５５２，ｉへ変化を始める。この変化を開始する時刻ＴＰ１２，ｉで、制御点、即ちレーザヘッド１０２ｉを加速させるロボット１０１ｉの動作が開始される。
【０２７９】
ロボットコントローラ１２２ｉが位置５２２，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ２２，ｉで、指令した位置５２２，ｉに対応する位置を通過する。ロボットコントローラ１２２ｉが位置５３２，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ３２，ｉで、指令した位置５３２，ｉに対応する位置を通過する。ロボットコントローラ１２２ｉが軌道データＰ２，ｉの終点である位置５５２，ｉをロボット１０１ｉへ指令すると、制御点は、指令した時刻に対して遅れた時刻ＴＰ５２，ｉで、指令した位置５５２，ｉに対応する位置を通過する。レーザ光の照射は、実際の制御点が位置５２２，ｉを通過したときにレーザ光の照射を開始し、実際の制御点が位置５３２，ｉを通過したときにレーザ光の照射を停止する必要がある。
【０２８０】
レーザ光Ｌｉの焦点の移動速度が一定の目標速度Ｖｗｊ，ｉとなった状態で加工対象物Ｗにレーザ光Ｌｉを照射して加工を行うには、レーザヘッド１０２ｉがレーザ光Ｌｉの照射を開始する位置に到達する前に、レーザヘッド１０２ｉを加速させる必要である。第１の時間Ｔ１は、レーザヘッド１０２ｉが一定の目標速度Ｖｗｊ，ｉで等速移動するようにレーザヘッド１０２ｉを加速させる時間である。第２の時間Ｔ２ｊ，ｉは、レーザヘッド１０２ｉが一定の目標速度Ｖｗｊ，ｉで等速移動している状態でレーザ光Ｌｉを加工対象物Ｗに照射する時間である。
【０２８１】
本実施形態では、予め実験を行うことにより、時刻ＴＰ１ｊ，ｉと時刻ＴＰ２ｊ，ｉとの間の期間を、レーザヘッド１０２ｉを加工対象物Ｗに対して加速させる第１の時間Ｔ１として設定する。また、予め実験又は演算を行うことにより、時刻ＴＰ２ｊ，ｉと時刻ＴＰ３ｊ，ｉとの間の期間を、レーザ光Ｌｉを照射する第２の時間Ｔ２ｊ，ｉとして設定する。
【０２８２】
以下、第１の時間Ｔ１、第２の時間Ｔ２ｊ，ｉ、第３の時間Ｔ３の設定について詳細に説明する。レーザヘッド１０２ｉの指令の速度と実際の速度とは、位置制御の応答遅れによりずれが生じる。したがって、第１の時間Ｔ１をロボットプログラム４２２ｉのみで設定するのは困難である。そこで、試行錯誤的に様々な条件でロボット１０１ｉを動作させ、レーザヘッド１０２ｉの実際の速度が目標速度Ｖｗｊ，ｉに達して等速となる時間を各条件で測定し、これらの測定結果から、第１の時間Ｔ１を設定する。
【０２８３】
なお、第１の時間Ｔ１が経過した時点で、レーザヘッド１０２ｉの速度が目標速度Ｖｗｊ，ｉに達して等速となるのが好ましいが、ロボット１０１ｉの位置姿勢、目標速度Ｖｗｊ，ｉ、ロボット１０１ｉの連続動作による残留偏差等の要因で速度誤差が生じる。よって、様々な条件で測定した中で、速度誤差が最も低くなる値、即ち最も時間がかかった時間を、第１の時間Ｔ１に定めるのが好ましい。即ち、第１の時間Ｔ１は、レーザヘッド１０２ｉの加速を開始してから第１の時間Ｔ１が経過する時点で、レーザヘッド１０２ｉの速度が目標速度Ｖｗｊ，ｉに対して所定の範囲内に収まるように設定すればよい。第１の時間Ｔ１は、各溶接箇所におけるレーザ光の目標速度Ｖｗｊ，ｉによって異ならせてもよいが、同じ時間とした方がコントローラ１２１Ｂの処理を簡略化できる。更に第１の時間Ｔ１は、各レーザヘッド１０２１，１０２２，…，１０２Ｎを加速移動させる場合も同じ時間、つまり共通のカウント時間としている。
【０２８４】
図３４（ａ）及び図３４（ｂ）は、ロボット１０１ｉに支持されたレーザヘッド１０２ｉの目標速度を変更した際の移動プロファイルを示す説明図である。図５と同一の構成要素には同一の参照符号を付与することにする。図３４（ａ）及び図３４（ｂ）には、溶接する箇所におけるレーザヘッド１０２ｉの目標速度を３通りＶｗ１ｉ，Ｖｗ２ｉ，Ｖｗ３ｉに変更した場合の例を図示している。なお、図３４（ａ）及び図３４（ｂ）には、ロボット１０１ｉの指令の速度ＶＣｉ、ロボット１０１ｉの実際の速度ＶＲｉを図示している。図３４（ａ）においては、異なる目標速度Ｖｗ１ｉ，Ｖｗ２ｉ，Ｖｗ３ｉとなっても、ロボット１０１ｉの加速度を一定としている。そのため、ロボット１０１ｉの加速時間は、目標速度Ｖｗ１ｉ，Ｖｗ２ｉ，Ｖｗ３ｉに応じて変化する。図３４（ｂ）においては、異なる目標速度Ｖｗ１ｉ，Ｖｗ２ｉ，Ｖｗ３ｉとなっても、ロボット１０１ｉの加速時間を一定としている。そのため、ロボット１０１ｉの加速度は変化している。図３４（ａ）及び図３４（ｂ）のいずれにおいても、第１の時間Ｔ１を十分な時間で設定すれば、指令の速度ＶＣｉと実際の速度ＶＲｉがおおよそ一致する。従って、第１の時間Ｔ１が経過した直後にはロボット１０１ｉが等速領域に達したことを保証することができるようになる。即ち、第１の時間Ｔ１を経過した時刻ＴＰ２ｊ，ｉにおいて等速になっていることが保証されていればよく、時刻ＴＰ２ｊ，ｉより前の時刻においてロボット１０１ｉが等速になっていてもよい。
【０２８５】
なお、図３４（ａ）及び図３４（ｂ）では、教示による位置５２ｊと教示による位置５３ｊとを結ぶ延長線上に位置する位置５４ｊ，ｉと位置５５ｊ，ｉとを、求めるアルゴリズムを変える必要がある。例えば、位置５４ｊ，ｉは、位置５２ｊ，ｉと位置５３ｊ，ｉを結ぶ線分を、位置５２ｊ，ｉ側に延伸して求めるが、この延伸量は、図３４（ａ）及び図３４（ｂ）における実際の速度ＶＲｉを時刻ＴＰ１ｊ，ｉから時刻ＴＰ２ｊ，ｉまで積分して距離となる。積分した距離は図３４（ａ）の方式と図３４（ｂ）の方式とでは異なるし、目標速度Ｖｗ１ｉ，Ｖｗ２ｉ，Ｖｗ３ｉが変化しても異なる。従って位置５４ｉを求めるアルゴリズムはそれらを考慮する必要がある。位置５５ｊを求めるアルゴリズムも同様である。
【０２８６】
第２の時間Ｔ２ｊ，ｉはレーザ照射時間であり、以下の式（１９）により計算する。ここで、以下の式（１９）の演算記号として、第２の時間Ｔ２ｊ，ｉをＴｗ、レーザ光の照射を開始する位置５２１，ｉ，５２２，ｉをＰｓ、レーザ光の照射を終了する位置５３１，ｉ，５３２，ｉをＰｅ、及び目標速度Ｖｗｊ，ｉを、Ｖｗとする。第２の時間であるＴｗを、Ｐｓ、Ｐｅ及びＶｗを用いて、溶接箇所ごとに以下の式（１９）で計算する。
【数１９】
2019038034.tif 000023
【０２８７】
即ち、ＰｓとＰｅとの距離を、Ｖｗで割り算することで、第２の時間となるＴｗの値を求める。Ｐｓ、Ｐｅ、及びＶｗは、溶接箇所ごとに異なる値とすることができる。したがって、第２の時間Ｔ２１，ｉ，Ｔ２２，ｉとなるＴｗは、溶接箇所の長さ（領域）に応じた値となる。このように算出されたＴｗが、第２の時間Ｔ２１，ｉ，Ｔ２２，ｉとして設定される。
【０２８８】
教示点である位置５２１，ｉ，５２２，ｉは、位置と姿勢の６自由度の情報で構成されている。具体的には、位置５２１，ｉ，５２２，ｉは、ロボット１０１ｉのベースに対する位置の情報であるＸ，Ｙ，Ｚとレーザヘッド１０２ｉの保持角度の情報であるＡ，Ｂ，Ｃを有する。位置５３１，ｉ，５３２，ｉも同様である。したがって、Ｐｓ，ＰｅとしてＸ，Ｙ，Ｚの位置情報のみを用いて、３次元空間上の距離を求める。
【０２８９】
なお、この演算はロボットコントローラ１２２ｉで演算し、第２の時間となるＴｗの値をコントローラ１２１Ｂに転送してもよい。また、ロボットコントローラ１２２ｉではＰｓとＰｅとの距離のみを演算し、距離をコントローラ１２１Ｂに転送し、残りの演算を行って第２の時間となるＴｗの値を求めてもよい。どちらを選択するかは、目標速度Ｖｗをロボットコントローラ１２２ｉで記述（指定）しているか、コントローラ１２１Ｂで記述（指定）しているかによって適宜選択できる。
【０２９０】
第３の時間Ｔ３は、切替器１０４において切り替え動作に要する時間であり、予め実験を行うことにより求められる。例えば、切替器１０４の切り替え動作を複数回行って切り替え動作に要した時間を計測し、これら計測値の最大値に余裕を加えた値を、第３の時間Ｔ３に設定する。最大値に余裕を加えた値を設定するのは、切り替えを指令してから第３の時間Ｔ３が経過したとき確実に切替えが完了している必要があるためである。なお、切替時間のデータが予め存在していれば、その値に余裕を加えた値を第３の時間Ｔ３に設定すればよい。以上、実際にロボット１０１ｉを生産ラインで動作させる前に、第１の時間Ｔ１、第２の時間Ｔ２ｊ，ｉ、及び第３の時間Ｔ３を設定しておく。なお、第１の時間Ｔ１は予めコントローラ１２１Ｂとロボットコントローラ１２２ｉの両方に設定しておくのが望ましい。
【０２９１】
ところで、レーザシーム溶接を行う溶接箇所においては、位置５２ｊ，ｉをロボット１０１ｉに指令したタイミングではなく、制御点が実際に位置５２ｊ，ｉを通過する時刻ＴＰ２ｊ，ｉでレーザ光Ｌｉを照射する必要がある。同様に、位置５３ｊ，ｉをロボット１０１ｉに指令したタイミングではなく、制御点が実際に位置５３ｊ，ｉを通過する時刻ＴＰ３ｊ，ｉでレーザ光Ｌｉの照射を停止する必要がある。
【０２９２】
即ち、等速領域に達した時刻ＴＰ２ｊ，ｉにおいて、ロボット１０１ｉの位置制御の応答遅れが生じている場合がある。位置制御の応答遅れは、指令の位置と実際の位置の差で表される。位置制御の応答遅れがある場合には、この位置制御の応答遅れを、位置５４ｊ，ｉ及び位置５５ｊ，ｉの算出に含める必要がある。
【０２９３】
そこでロボットコントローラ１２２ｉは、レーザヘッド１０２ｉを加速させる動作を開始してから第１の時間Ｔ１が経過した時点で制御点が目標位置に到達するように、移動を開始する位置５４ｊ，ｉと移動を終了する位置５５ｊ，ｉを演算する。ただし、図３４（ａ）の方法を適用した場合と図３４（ｂ）の方法を適用した場合とでは、位置５４ｊ，ｉ及び位置５５ｊ，ｉの算出する方法が変わる。この演算は軌道データＰ１、Ｐ２を生成する直線補間命令を実行する前に求めておく必要がある。例えば、直線補間命令の直前、または、実際にロボット１０１ｉを生産ラインで動作させる前に行うことができる。なお、演算アルゴリズムはロボットプログラム４２２ｉに記述することでロボットコントローラ１２２ｉが演算する。
【０２９４】
図３５は、第１０実施形態におけるレーザ溶接装置１００Ｂによりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図６と同一の構成要素には同一の参照符号を付与することにする。図３５には、ロボットコントローラ１２２１，１２２２，…，１２２Ｎにおいてコントローラ１２１Ｂに送信させる信号ＳＢ１，ＳＢ２，…，ＳＢＮが図示されている。また、図３５には、ロボット１０１１，１０１２，…，１０１Ｎにより移動されるレーザヘッドの実際の速度ＶＲ１，ＶＲ２，…，ＶＲＮ及び指令の速度ＶＣ１，ＶＣ２，…，ＶＣＮが図示されている。また、図３５には、コントローラ１２１Ｂにおいて送信されるレーザ発振指令ＳＲ１、切替信号ＳＳ、動作開始指令ＳＡ１，ＳＡ２，…，ＳＡＮが図示されている。図３５中、切替信号ＳＳに付されている数字は、いずれのロボット１０１ｉ（レーザヘッド１０２ｉ）に切り替えるかを示す番号である。切替器１０４に付されている数字も、いずれのロボット１０１ｉ（レーザヘッド１０２ｉ）に切り替わっているかを示す番号である。切替信号ＳＳ及び切替器１０４に付した番号は、上述したｉ＝１〜Ｎの通し番号である。また、図３５中、切替器１０４において、網掛け部分は、切り替え動作中であることを示す。
【０２９５】
なお、前提条件として、１つのロボット１０１ｉが受け持つ溶接箇所は、自動運転が開始される前に予め決められているものとする。また、各ロボット１０１１、ロボット１０１２、…、ロボット１０１Ｎがどの順番で動作するかも、自動運転が開始する前に予め決められているものとする。つまり、溶接移動の開始を指示するロボットの順番は、コントローラ１２１Ｂに予め設定されている。以下、ロボット１０１１、ロボット１０１２、…、ロボット１０１Ｎ、ロボット１０１１、ロボット１０１２、…の順番で動作させる場合を例に説明する。即ち、レーザヘッド１０２１、レーザヘッド１０２２、…、レーザヘッド１０２Ｎ、レーザヘッド１０２１、レーザヘッド１０２２、…の順番で切替器１０４によりレーザ光を導く。
【０２９６】
また、コントローラ１２１Ｂは、主に２つのシーケンスＳＭ１，ＳＭ２の管理を行う。具体的に説明すると、１つ目のシーケンスＳＭ１の管理として、コントローラ１２１Ｂは、ロボットコントローラ１２２１，１２２２，…，１２２Ｎに対して、レーザヘッド１０２１，１０２２，…，１０２Ｎが溶接箇所に移動を開始するタイミングを指示する。
【０２９７】
また、２つ目のシーケンスＳＭ２の管理として、コントローラ１２１Ｂは、レーザ発振器１０３におけるレーザ発振のオンオフのタイミング、及び切替器１０４の切り替え動作のタイミングを指示する。具体的には、コントローラ１２１Ｂは、ロボットコントローラ１２２ｉからの信号ＳＢｉの立ち上がりを受信してから第１の時間Ｔ１が経過した時点で、レーザ発振指令ＳＲ１をオンにする。そして、コントローラ１２１Ｂは、第１の時間Ｔ１が経過した時点から更に第２の時間Ｔ２ｊ，ｉが経過した時点でレーザ発振指令ＳＲ１をオフにする。そして、コントローラ１２１Ｂは、レーザ発振指令ＳＲ１をオフにした後は、次のレーザ照射に備えて、切替信号ＳＳを変更し、レーザの光路を切り替える。
【０２９８】
以上の２つのシーケンスＳＭ１，ＳＭ２の管理は、各ロボット１０１ｉの信号ＳＢｉがオンしたタイミングに同期して行われる。以下、シーケンスＳＭ１，ＳＭ２の管理について詳細に説明する。自動運転が開始されると、コントローラ１２１Ｂは、シーケンスＳＭ１として、制御プログラム３２１に従って動作開始指令ＳＡ１をオンにする。動作開始指令ＳＡ１をオンにしたタイミングを、図３５中、時刻ＴＰ０１，１とする。
【０２９９】
ロボットコントローラ１２２１は、動作開始指令ＳＡ１を監視しており、動作開始指令ＳＡ１がオフからオンに切り替わったのを受信した後、位置５５１，１を目標位置とする直線補間移動命令が実行する。すると、位置５４１，１から位置５５１，１へ向かう軌道データＰ１，１が、所定の制御周期でロボット１０１１に払い出される。即ち、ロボットコントローラ１２２１は、加工対象物Ｗに対するレーザヘッド１０２１の移動速度が目標速度Ｖｗ１，１となるようにレーザヘッド１０２１を加速させる動作をロボット１０１１に開始させる。これにより、レーザヘッド１０２１、即ち制御点は、位置５４１，１から位置５５１，１に向かって移動を開始し、移動速度が一定の目標速度Ｖｗ１，１となるように加速し始める。
【０３００】
また、ロボットコントローラ１２２１は、軌道データＰ１，１の払い出しを開始すると同時に、信号ＳＢ１をオフからオンに切り替えた信号ＳＢＡ１をコントローラ１２１Ｂへ送信する。
【０３０１】
信号ＳＢ１をオフからオンへ切り替えたときの立ち上がりが、同期信号（所定の信号）ＳＢＡ１となる。即ち、ロボットコントローラ１２２１は、レーザヘッド１０２１を加速させる動作をロボット１０１１に開始させた時点で、信号ＳＢ１の立ち上がりである同期信号ＳＢＡ１をコントローラ１２１Ｂへ送信することになる。このタイミングを時刻ＴＰ１１，１として図３５中に示している。
【０３０２】
本実施形態では、信号ＳＢ１の立ち上がりを同期信号ＳＢＡ１としている。したがって、次の軌道データＰ２，１の払い出しを開始する前であって、信号ＳＢ１が立ち上がってからコントローラ１２１Ｂの制御周期以上経過していれば、信号ＳＢ１はどのタイミングで立ち下がってもよい。また、信号ＳＢ１を立ち上げることで同期信号ＳＢＡ１としたが、これに限定するものではなく、信号ＳＢ１を立ち下げることで同期信号ＳＢＡ１としてもよい。なお、本実施形態ではロボット１０１ｉが準備完了状態となったことを示す信号として信号ＳＢｉをオフしている。準備完了状態とはロボットコントローラ１２２ｉが軌道データＰｊと軌道データＰｊ＋１との間の軌道データＰｊ−（ｊ＋１），ｉの払い出しを完了し、信号ＳＡｉを待つ準備が整ったことを指す。
【０３０３】
コントローラ１２１Ｂは、ロボットコントローラ１２２１から送られてくる信号ＳＢ１を監視しており、信号ＳＢ１が立ち上がる同期信号ＳＢＡ１を受信した時点で、シーケンスＳＭ２としてレーザヘッド１０２１に対応する第１の時間Ｔ１の計時を開始する。第１の時間Ｔ１は、例えば２００［ｍｓｅｃ］等、固定の時間である。
【０３０４】
第１の時間Ｔ１が経過したとき、レーザヘッド１０２１は、溶接を行う目標速度Ｖｗ１，１に達して等速状態となっており、また、制御点は、指令された位置５２１，１（図３２）に位置している。よって、コントローラ１２１Ｂは、信号ＳＢ１が立ち上がる同期信号ＳＢＡ１を受信してから第１の時間Ｔ１が経過した時点、即ち第１の時間Ｔ１の計時が終了した時点（図３５中、時刻ＴＰ２１，１）で、レーザ光を発生するようレーザ発振器１０３を制御する。具体的には、コントローラ１２１Ｂは、第１の時間Ｔ１の計時が終了すると同時にレーザ発振指令ＳＲ１をオフからオンに切り替える。即ち、コントローラ１２１Ｂは、第１の時間Ｔ１の計時が終了した時点で、レーザ発振器１０３にレーザ光を発生させるよう指令する。レーザ発振器１０３は、レーザ発振指令ＳＲ１を監視しており、レーザ発振指令ＳＲ１がオフからオンに切り替わったのを受信したとき、レーザ発振を行う。これと同時に、レーザ発振器１０３は、信号ＳＲ２をオフからオンに切り替える。
【０３０５】
このように、ロボットコントローラ１２２ｉは、動作開始指令ＳＡｉにより加工対象物Ｗに対するレーザヘッド１０２ｉの移動速度が一定の目標速度Ｖｗｊ，ｉで等速となるようにレーザヘッド１０２ｉを加速させる動作を、ロボット１０１ｉに開始させる。一方、コントローラ１２１Ｂは、レーザヘッド１０２ｉの加速開始から第１の時間Ｔ１が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。コントローラ１２１Ｂは、ロボットコントローラ１２２ｉの制御によるレーザヘッド１０２ｉの加速開始を、同期信号ＳＢＡｉを受信することで検知する。
【０３０６】
コントローラ１２１Ｂは、第１の時間Ｔ１の計時が終了した時点で第２の時間Ｔ２１，１の計時を開始する。ロボットコントローラ１２２１は、レーザヘッド１０２１にて加工対象物Ｗにレーザ光Ｌ１を照射している間、レーザヘッド１０２１の移動速度が目標速度Ｖｗ１，１を維持するようにロボット１０１１を動作させる。コントローラ１２１Ｂは、第１の時間Ｔ１が経過してから更に第２の時間Ｔ２１，１が経過した時点、即ち第２の時間Ｔ２１，１の計時が終了した時点（図３５中、時刻ＴＰ３１，１）で、レーザ光の発生を停止するようレーザ発振器１０３を制御する。
【０３０７】
具体的には、コントローラ１２１Ｂは、第２の時間Ｔ２１，１の計時が終了すると同時にレーザ発振指令ＳＲ１をオンからオフに切り替える。即ち、コントローラ１２１Ｂは、第２の時間Ｔ２１，１の計時が終了した時点で、レーザ発振器１０３にレーザ光を停止させるよう指令する。レーザ発振器１０３は、レーザ発振指令ＳＲ１がオンからオフに切り替わったのを受信したとき、レーザ発振を停止する。
【０３０８】
また、コントローラ１２１Ｂは、レーザ発振指令ＳＲ１をオフにしたのと同じタイミングで、切替信号ＳＳを変更し、１番目のレーザヘッド１０２１から２番目のレーザヘッド１０２２にレーザ光が導かれるように切替器１０４に指示を出す。
【０３０９】
切替器１０４は、切替信号ＳＳを監視しており、切替信号ＳＳの指示に従い、ミラー１１４１〜１１４Ｎを動作させて光路を変更する切り替え動作を実施する。この切り替え動作には、第３の時間Ｔ３がかかり、切り替え動作が完了した時点を図３５中、時刻ＴＰ４１，１で示す。この切り替え動作により、次のレーザヘッド１０２２からレーザ光Ｌ２を出射することができる状態となる。
【０３１０】
ここで、切替器１０４において、レーザ光を導く対象をレーザヘッド１０２１からレーザヘッド１０２２へ切り替えるが、切り替え動作の後に次のロボット１０１２の動作を開始したのでは、レーザ発振器１０３の稼働率、即ち加工品の生産効率が低い。
【０３１１】
そこで制御装置１２０Ｂは、レーザヘッド１０２１において加工対象物Ｗに対するレーザ光Ｌ１の照射が終了する前にレーザヘッド１０２２の移動速度が目標速度Ｖｗ１，２となるようレーザヘッド１０２２を加速させる動作を、ロボット１０１２に開始させる。レーザヘッド１０２１において加工対象物Ｗに対するレーザ光Ｌ１の照射が終了する前とは、照射開始より前の場合も含む。これにより、レーザ発振器１０３の稼働率、即ち加工品の生産効率が向上する。
【０３１２】
以下、コントローラ１２１Ｂが次のロボットコントローラ１２２２に送信する動作開始指令ＳＡ２をオンにするタイミング、即ちコントローラ１２１ＢにおけるシーケンスＳＭ１の管理について詳細に説明する。
【０３１３】
本実施形態では、各レーザヘッド１０２ｉを加速移動させる度にカウントされる第１の時間Ｔ１は、例えば２００［ｍｓｅｃ］等、同じ時間（固定値）である。コントローラ１２１Ｂは、レーザヘッド１０２１によりレーザ光を照射する第２の時間Ｔ２１，１が経過した時点から更に切替器１０４において切り替え動作に要する第３の時間Ｔ３が経過した時点以降に、次のレーザヘッド１０２２にレーザ光を照射させる。よって、次のロボットコントローラ１２２２に動作開始指令ＳＡ２を送信するタイミングを、レーザヘッド１０２１の加速を開始してから、第２の時間Ｔ２１，１と第３の時間Ｔ３との合計時間（Ｔ２１，１＋Ｔ３）が経過した時点以降とするのが好ましい。なお、レーザヘッド１０２１の加速の開始は、コントローラ１２１Ｂにおいて同期信号ＳＢＡ１で検知される。また、第２の時間Ｔ２１，１は、レーザヘッド１０２１において１箇所目の溶接箇所にレーザ光を照射する時間である。
【０３１４】
本実施形態では、コントローラ１２１Ｂは、シーケンスＳＭ１として、ロボットコントローラ１２２１から同期信号ＳＢＡ１を受信した時点で、第２の時間Ｔ２１，１と第３の時間Ｔ３との合計時間（Ｔ２１，１＋Ｔ３）の計時を開始する。この計時を開始するタイミングは、シーケンスＳＭ２においてレーザヘッド１０２１を加速させる第１の時間Ｔ１の計時を開始するタイミングと同時である。
【０３１５】
コントローラ１２１Ｂは、合計時間（Ｔ２１，１＋Ｔ３）の計時が完了すると、次に動作させるロボット１０１２が準備完了状態か確認する。本実施形態では信号ＳＢｉがオフであれば準備完了状態である。コントローラ１２１Ｂは信号ＳＢｉがオフでない場合はオフになるまで待機する。信号ＳＢｉがオフであれば、次に動作させるロボット１０１２を制御するロボットコントローラ１２２２に送信する動作開始指令ＳＡ２をオンにする。動作開始指令ＳＡ２をオンにしたタイミングを、図３５中、時刻ＴＰ０１，２とする。
【０３１６】
ロボットコントローラ１２２２は、動作開始指令ＳＡ２を監視しており、動作開始指令ＳＡ２がオフからオンに切り替わると、軌道データＰ１，２を、所定の制御周期でロボット１０１２に指令する。即ち、ロボットコントローラ１２２２は、加工対象物Ｗに対するレーザヘッド１０２２の移動速度が目標速度Ｖｗ１，２となるようにレーザヘッド１０２２を加速させる動作をロボット１０１２に開始させる。これにより、レーザヘッド１０２２、即ち制御点は、移動を開始し、移動速度が一定の目標速度Ｖｗ１，２となるように加速し始める。
【０３１７】
また、ロボットコントローラ１２２２は、軌道データＰ１，２の払い出しを開始すると同時に、信号ＳＢ２をオフからオンに切り替えた同期信号ＳＢＡ２を送信する。即ち、ロボットコントローラ１２２２は、レーザヘッド１０２２を加速させる動作をロボット１０１２に開始させた時点で、信号ＳＢ２の立ち上がりである同期信号ＳＢＡ２をコントローラ１２１Ｂへ送信する。このタイミングを時刻ＴＰ１１，２として図３５中に示している。
【０３１８】
コントローラ１２１Ｂは、ロボットコントローラ１２２２から送られてくる信号ＳＢ２を監視しており、信号ＳＢ２が立ち上がる同期信号ＳＢＡ２を受信した時点で、レーザヘッド１０２２を加速させる第１の時間Ｔ１の計時を開始する。同時に、コントローラ１２１Ｂは、第２の時間Ｔ２１，２と第３の時間Ｔ３との合計時間（Ｔ２１，２＋Ｔ３）の計時を開始する。コントローラ１２１Ｂは、合計時間（Ｔ２１，２＋Ｔ３）の計時が完了すると、コントローラ１２１Ｂはロボット１０１３の準備完了状態を確認する。ロボット１０１３が準備完了状態であれば、更に次の動作開始指令ＳＡ３をオンにする。同様の処理を、ロボット１０１１，…，１０１Ｎ，１０１１，…で繰り返す。このように、コントローラ１２１Ｂは、シーケンスＳＭ１として、各ロボット１０１ｉの動作のタイミングを同期信号ＳＢＡｉで管理している。
【０３１９】
一方、コントローラ１２１Ｂは、信号ＳＢ２が立ち上がる同期信号ＳＢＡ２を受信した時点で、レーザヘッド１０２１に対する第１の時間Ｔ１、又は第２の時間Ｔ２１，１を計時中である。図３５の例では、コントローラ１２１Ｂは、第１の時間Ｔ１を計時中である。コントローラ１２１Ｂは、同期信号ＳＢＡ２を受信した時点で、レーザヘッド１０２１に対する第１の時間Ｔ１の計時と並行して、シーケンスＳＭ２として、レーザヘッド１０２２に対する第１の時間Ｔ１の計時を開始する。コントローラ１２１Ｂは、レーザヘッド１０２２に対する第１の時間Ｔ１が経過した時点、即ち第１の時間Ｔ１の計時が終了した時点（図３５中、時刻ＴＰ２１，２）で、レーザ発振指令ＳＲ１をオンにする。コントローラ１２１Ｂは、第１の時間Ｔ１の計時が終了した時点から第２の時間Ｔ２１，２の計時を開始する。コントローラ１２１Ｂは、第２の時間Ｔ２１，２の計時が終了した時点（図３５中、時刻ＴＰ３１，２）で、レーザ発振指令ＳＲ１をオフにする。
【０３２０】
コントローラ１２１Ｂは、レーザ発振指令ＳＲ１をオフにしたのと同じタイミングで、切替信号ＳＳを変更し、２番目のレーザヘッド１０２２から３番目のレーザヘッド１０２３にレーザ光が導かれるように切替器１０４に指示を出す。切替器１０４は、切替信号ＳＳの指示に従って切り替え動作を行う。この切り替え動作には、第３の時間Ｔ３がかかり、切り替え動作が完了した時点を図３５中、時刻ＴＰ４１，２で示す。同様の処理を、Ｎ番目のレーザヘッド１０２Ｎによりレーザ溶接加工が終えるまで繰り返す。
【０３２１】
レーザヘッド１０２１〜１０２Ｎにおいて、それぞれ１箇所目の溶接箇所のレーザ溶接加工が終了したら、２箇所目以降の溶接箇所についても同様のシーケンスＳＭ１，ＳＭ２を行う。
【０３２２】
以上、コントローラ１２１Ｂは、シーケンスＳＭ１とシーケンスＳＭ２とを独立して行う。また、シーケンスＳＭ１の動作とシーケンスＳＭ２の動作は、同期信号ＳＢＡｉにより同期をとっており、それ以外では同期を行っていない。即ち、コントローラ１２１Ｂは、同期信号ＳＢＡｉを受信した時点からの経過時間によって各シーケンスＳＭ１，ＳＭ２を行う。このように、同期信号ＳＢＡｉでシーケンスＳＭ１，ＳＭ２を管理することで、管理が複雑とならず、安定してシーケンスＳＭ１，ＳＭ２を実行することができる。
【０３２３】
本実施形態によれば、シーケンスＳＭ１，ＳＭ２により、溶接の完了を待つことなく、次々とロボット１０１ｉを動作させるため、時間のロスを低減して、レーザ発振器１０３の稼働率、ひいては加工品の生産効率を向上させることができる。
【０３２４】
また、本実施形態では、コントローラ１２１Ｂが同期信号ＳＢＡｉを受信する度にカウントする第１の時間Ｔ１を、同一の時間としているので、処理が簡略化される。即ち、コントローラ１２１Ｂがレーザヘッド１０２ｉを溶接箇所に移動させるためのロボット１０１ｉの動作開始のタイミングを指示する動作においては、第１の時間Ｔ１を使用せず、第２の時間Ｔ２ｊ，ｉと第３の時間Ｔ３のみによって指示することができる。
【０３２５】
図３５ではロボット１０１ｉ側の処理が短く待機が必要ない場合のタイミングチャートを用いて説明した。しかし、コントローラ１２１Ｂが合計時間（Ｔ２ｊ，ｉ＋Ｔ３）の計時を完了し、動作開始指令ＳＡｉをオンする処理を、ロボット１０１１，…，１０１Ｎ，１０１１，…に対して次々へ行うと、ロボットの移動が完了しない場合が発生することがある。その例を図３６に示す。
【０３２６】
図３６は、第１０実施形態におけるレーザ溶接装置によりレーザ加工を行うレーザ加工方法の各工程を示すタイミングチャートである。図６と同一の構成要素には同一の参照符号を付与することにする。図３６においては、ロボット１０１１が準備完了状態になるタイミングよりも、コントローラ１２１Ｂが合計時間（Ｔ２１，Ｎ＋Ｔ３）の計時を完了するタイミングの方が早い。図３６中、コントローラ１２１Ｂは合計時間（Ｔ２１，Ｎ＋Ｔ３）の計時を完了しているが、計時を完了したタイミングではロボットコントローラ１２２１は軌道データＰ１−２，１の払い出しを行っているところである。ロボットコントローラ１２２１は、軌道データＰ１−２の払い出しが完了すると、準備完了状態となり、準備完了をコントローラ１２１Ｂに通知するために信号ＳＢ１をオフする。一方、コントローラ１２１Ｂは合計時間（Ｔ２１，Ｎ＋Ｔ３）の計時が完了すると、信号ＳＢ１がオフであることを確認する。コントローラ１２１Ｂは信号ＳＢｉがオフでない場合はオフになるまで待機する。信号ＳＢ１がオフになると、コントローラ１２１Ｂは動作開始指令ＳＡ１をオンする。なお、動作開始指令ＳＡ１をオンしたタイミングを時刻ＴＰ０２，１で示す。以降の処理は図３５と同じである。
【０３２７】
なお、ロボット１０１ｉが準備完了になることを待つ、すなわち信号ＳＢｉがオフになることを待つ場合、レーザ発振器１０３の稼働率が低下するもののシーケンスが破綻することはない。コントローラ１２１Ｂがロボット１０１ｉの準備完了を待つとシーケンスＳＭ２の起動が遅れる。すると、切替器１０４がレーザヘッド１０２ｉにレーザ光を導くために光路を切り替えた後の、シーケンスＳＭ２による次のレーザ発振が遅れるため、レーザ発振のタイミングが遅くなる。ゆえに、シーケンスＳＭ２の起動が遅れた分レーザ発振の機会を損なう。コントローラ１２１Ｂがロボット１０１ｉの準備完了を待ち実際に待ち時間が発生すると、レーザ発振器１０３および切替器１０４が稼働できないが、これはシーケンスを成立させるために必要な処理である。なお、図３５と図３６における、ＴＰ０２，１からＴＰ１２，１までの時間が長くなっても、レーザ発振器１０３の稼働率が低下するだけでシーケンスが破綻することはない。ＴＰ０２，１からＴＰ１２，１までの時間はロボットコントローラ１２２ｉに負荷がかかると長くなる場合があるが、その場合もシーケンスＳＭ２の起動が遅れるだけとなる。ゆえに前述のとおり、シーケンスＳＭ２の起動が遅れた分レーザ発振の機会を損なうだけである。
【０３２８】
レーザ発振器１０３および切替器１０４の待機時間について説明する。ロボット１０１ｉを制御するロボットコントローラ１２２ｉは、コントローラ１２１Ｂからの動作開始指令ＳＡｉを受信すると、軌道データＰｊの払い出しを開始する。ロボットコントローラ１２２ｉは、計時を行っていないが、コントローラ１２１Ｂが第１の時間Ｔ１と第２の時間Ｔ２ｊ，ｉの計時を完了したところで、軌道データＰｊの払い出しが完了する。次に、ロボットコントローラ１２２ｉは軌道データＰｊ−（ｊ＋１）の払い出しを開始する。この軌道データＰｊ−（ｊ＋１）の払い出しを行っている時間を、粗動時間Ｔ４ｊ，ｉと定義する。また、レーザ発振器１０３および切替器１０４の待機時間をＴ５ｊ，ｉと定義する。待機時間Ｔ５ｊ，ｉはロボットの動作完了を、レーザ発振器１０３および切替器１０４が待つ時間である。ロボット１０１ｉが溶接箇所におけるレーザ光の照射を終了する位置５３ｊ，ｉから、次の溶接箇所におけるレーザ光の照射を開始する位置５２ｊ，ｉへ移動する時間について説明する。この時間は、第２の時間Ｔ２ｊ，ｉの計時完了から第２の時間Ｔ２ｊ＋１，ｉの計時開始までの時間である。この時間をロボット１０１ｉの非溶接時間Ｔ６ｊ，ｉと定義する。
【０３２９】
図３７（ａ）及び図３７（ｂ）は、第１０実施形態における、ロボット１０１ｉ、レーザ発振器１０３、切替器１０４の動作時間の一例を示した図である。図３７（ａ）には、待機時間Ｔ５ｊ，ｉが発生している例、図３７（ｂ）には、待機時間Ｔ５ｊ，ｉが発生していない例を図示している。
【０３３０】
図３７（ａ）及び図３７（ｂ）には、ロボット１０１１による４か所目の溶接箇所から５か所目の溶接箇所へ制御点の移動中に、ロボット１０１２、ロボット１０１３、及びロボット１０１４が、それぞれ４か所目の溶接箇所への溶接を行う場合を例示している。非溶接時間Ｔ６４，１の間にレーザ発振器１０３が稼働している時間は、ロボット１０１２、ロボット１０１３及びロボット１０１４が、それぞれ４か所目の溶接箇所への溶接を行う時間の合計時間（Ｔ２４，２＋Ｔ２４，３＋Ｔ２４，４）となる。非溶接時間Ｔ６４，１の間に切替器１０４が稼働している時間は、ロボット１０１１からロボット１０１２、ロボット１０１３、及びロボット１０１４に切り替えて、再びロボット１０１１に切り替えるので、４回切り替えを行う時間（４×Ｔ３）となる。すなわち、図３７（ａ）に示すように、５か所目の溶接箇所に溶接するまでの待機時間Ｔ５４，１は、［｛（Ｔ４４，１＋Ｔ１）−｛（４×Ｔ３）＋（Ｔ２４，２＋Ｔ２４，３＋Ｔ２４，４）｝］である。図３７（ａ）に示すように待機時間Ｔ５ｊ，ｉが発生すると、レーザ発振器１０３および切替器１０４が稼働できない。
【０３３１】
図３７（ｂ）には、図３７（ａ）と同様に、ロボット１０１１の４か所目から５か所目の溶接箇所への移動中に、ロボット１０１２、ロボット１０１３及びロボット１０１４が、それぞれ４か所目の溶接箇所へ溶接を行う場合を例示している。ただし、ロボット１０１１の粗動時間Ｔ４４，１中と非溶接時間Ｔ６４，１中においてレーザ発振器１０３が稼働している時間（Ｔ２４，２＋Ｔ２４，３＋Ｔ２４，４）は、図３７（ａ）と異なる。図３７（ｂ）においては、非溶接時間Ｔ６４，１の期間は、第２の時間Ｔ２ｊ，ｉと第３の時間Ｔ３、の処理が間断なく実行される。このため、空き時間が発生せず、待機時間Ｔ５ｊ，ｉが発生していない。ただし、軌道データＰ４−５の払い出しを完了すると信号ＳＢ１をオフし、動作開始指令ＳＡ１を受信するまでロボット１０１１を待機させている。レーザ発振器１０３は高価であるので、レーザ発振器１０３の稼働率が高くなるよう調整するのが望ましい。
【０３３２】
一般化すると式（２０）で表せる。ここで、式（２０）の演算記号として、集合Ａを定義する。集合Ａは非溶接時間Ｔ６ｊ，ｉの間に動作するロボット１０１ｉの番号の集合である。例えば図３７（ａ）及び図３７（ｂ）においてＡは、２，３，４という数字となる。また、ｃｏｕｎｔ（Ａ）は、集合要素の個数を数える関数である。図３７（ａ）及び図３７（ｂ）の場合、集合Ａは２，３，４であるため、要素の数は３となり、ｃｏｕｎｔ（Ａ）＝３となる。ΣＴ２ｊ，ｋは、要素の数の分だけ加算する数式であり、図３７（ａ）及び図３７（ｂ）では（Ｔ２４，２＋Ｔ２４，３＋Ｔ２４，４）となる。
【数２０】
2019038034.tif 000024
【０３３３】
式（２０）において、（Ｔ４ｊ，ｉ＋Ｔ１）は、ロボット１０１ｉの制御点がｊ箇所目から（ｊ＋１）箇所目の溶接箇所への移動に必要な時間である。式（２０）におけるＴｔｅｍｐｊ，ｉの値が正の場合は、計算値分の待機時間Ｔ５ｊ，ｉが発生する。式（２０）におけるＴｔｅｍｐｊ，ｉの値が負又は０の場合は、待機時間Ｔ５ｊ，ｉが発生しない。つまり、粗動時間Ｔ４ｊ，ｉを削減するか、非溶接時間Ｔ６ｊ，ｉ中に行う第２の時間Ｔ２ｊ，ｉの合計時間又は第３の時間Ｔ３の合計時間を増加させることで、待機時間Ｔ５ｊ，ｉを削減できる。
【０３３４】
待機時間Ｔ５ｊ，ｉを削減するために、各ロボット１０１ｉが受け持つ溶接箇所を工夫する方法がある。加工対象物Ｗの溶接箇所の一部を複数のロボット１０１ｉで溶接できる位置にそれぞれのロボット１０１ｉを配置する。そして、待機時間Ｔ５ｊ，ｉが少なくなるように、それぞれのロボット１０１ｉが溶接する溶接箇所を決定する。この方法で待機時間Ｔ５ｊ，ｉを削減するよう、複数のロボット１０１ｉの溶接箇所を決定する具体例について説明する。
【０３３５】
図３７（ａ）に示すように、ロボット１０１１を４か所目の溶接箇所から５か所目の溶接箇所へ動作させているものとする。このとき、ロボット１０１２、ロボット１０１３、及びロボット１０１４が、それぞれ４か所目の溶接箇所へ溶接を行うものとする。この場合、待機時間Ｔ５４，１は、［｛（Ｔ４４，１＋Ｔ１）−｛（４×Ｔ３）＋（Ｔ２４，２＋Ｔ２４，３＋Ｔ２４，４）｝］である。
【０３３６】
また、ロボット１０１１を４か所目の溶接箇所から５か所目の溶接箇所へ動作させているものとする。このとき、ロボット１０１２及びロボット１０１３がそれぞれ４か所目の溶接箇所への溶接を行うものとし、ロボット１０１４は溶接を行わないものとする。この場合、待機時間Ｔ５５，１は、［｛（Ｔ４４，１＋Ｔ１）−｛（３×Ｔ３）＋（Ｔ２４，２＋Ｔ２４，３）｝］である。
【０３３７】
ロボット１０１１を４か所目の溶接箇所から５か所目の溶接箇所へ動作させている最中に、他の３台のロボット１０１ｉが溶接する例と、他の２台のロボット１０１ｉが溶接する例について、待機時間Ｔ５５，１を比較する。他の２台のロボット１０１ｉが溶接する場合の方が、待機時間Ｔ５５，１が時間（Ｔ３＋Ｔ２４，４）だけ長くなる。すなわち、ロボット１０１ｉの非溶接時間Ｔ６ｊ，ｉ中に、溶接を行う他のロボット１０１ｉの台数が多いほど、待機時間Ｔ５ｊ，ｉを削減できる。
【０３３８】
なお、この例では待機時間Ｔ５４，１がいずれも正の場合を示している。待機時間Ｔ５４，１が０となると、更にロボットを増やしても待機時間は０のままである。
【０３３９】
次に、図３０に示す加工対象物Ｗが直方体形状であり、加工対象物Ｗの４つの側面と天面に、それぞれ溶接箇所があるものとし、加工対象物Ｗのまわりに４台のロボット１０１ｉが配置されているものとする。図３８は、第１０実施形態においてロボットの台数を４台とした場合を示す模式図である。図３８において、加工対象物Ｗは、側面Ｗ１，Ｗ２，Ｗ３，Ｗ４と、天面Ｗ５と、を有する。４台のロボット１０１１，１０１２，１０１３，１０１４は、加工対象物Ｗの上方の位置から下方を見て、対角線上に配置されており、それぞれレーザヘッド１０２１，１０２２，１０２３，１０２４を支持している。ロボット１０１１で支持しているレーザヘッド１０２１は、ロボット１０１１が動作することにより側面Ｗ１，Ｗ２と天面Ｗ５それぞれにある溶接箇所を溶接可能である。ロボット１０１２で支持しているレーザヘッド１０２２は、ロボット１０１２が動作することにより側面Ｗ２，Ｗ３と天面Ｗ５それぞれにある溶接箇所を溶接可能である。ロボット１０１３で支持しているレーザヘッド１０２３は、ロボット１０１３が動作することにより側面Ｗ３，Ｗ４と天面Ｗ５それぞれにある溶接箇所を溶接可能である。ロボット１０１４で支持しているレーザヘッド１０２４は、ロボット１０１４が動作することにより側面Ｗ４，Ｗ１と天面Ｗ５それぞれにある溶接箇所を溶接可能である。側面Ｗ１上には、５１点の溶接箇所があるものとする。側面Ｗ２上には、５０点の溶接箇所があるものとする。側面Ｗ３上には、５１点の溶接箇所があるものとする。側面Ｗ４上には、４７点の溶接箇所があるものとする。天面Ｗ５上には、４点の溶接箇所があるものとする。
【０３４０】
４台のロボット１０１１，１０１２，１０１３，１０１４がそれぞれ溶接する溶接箇所の数に差があるほど、非溶接時間Ｔ６ｊ，ｉ中に溶接を行う他のロボット１０１ｉの台数が少なくなり、待機時間Ｔ５ｊ，ｉが長くなる。そこで、４台のロボット１０１１，１０１２，１０１３，１０１４が溶接する溶接箇所の数の差が最小となるように、加工対象物Ｗの溶接箇所を分担する。図３８の例では、４台のロボット１０１１，１０１２，１０１３，１０１４の動作エリアが互いに重ならないように、側面Ｗ１，Ｗ２，Ｗ３，Ｗ４及び天面Ｗ５の中から、各ロボット１０１ｉが溶接を担当する面を決める。例えばロボット１０１１は、側面Ｗ１を担当し、側面Ｗ１上の５１点の溶接箇所を溶接する。ロボット１０１２は、側面Ｗ２を担当し、側面Ｗ２上の５０点の溶接箇所を溶接する。ロボット１０１３は、側面Ｗ３を担当し、側面Ｗ３上の５１点の溶接箇所を溶接する。ロボット１０１４は、側面Ｗ４と天面Ｗ５とを担当し、側面Ｗ４上の４７点と天面Ｗ５上の４点の合計５１点の溶接箇所を溶接する。これにより、４台のロボット１０１１，１０１２，１０１３，１０１４が溶接する溶接箇所数の差が最小となるので、待機時間Ｔ５ｊ，ｉを削減することができる。
【０３４１】
このように、加工対象物Ｗ上の複数の溶接箇所のうちの一部を、２台以上のロボット１０１ｉが溶接できるようにそれぞれのロボット１０１ｉを配置することで、各ロボット１０１ｉが担当する溶接箇所の数の差を少なくすることができる。これにより、非溶接時間Ｔ６ｊ，ｉ中に溶接を行う他のロボット１０１ｉの台数を多くすることができるので、待機時間Ｔ５ｊ，ｉを削減することができる。
【０３４２】
また、上述の例のように、加工対象物Ｗが直方体形状のような多面体である場合には、ロボット１０１ｉの作業を側面、天面毎に分担するという簡単な対策で、各ロボット１０１ｉが干渉するのを容易に防止することができる。
【０３４３】
ここで、図３８の例では、４台のロボット１０１ｉの動作エリア同士が重ならないように、各ロボット１０１ｉが担当する加工対象物Ｗの面、即ち溶接箇所を決める場合について説明したが、これに限定するものではない。ロボット１０１ｉ同士の動作エリアが重なっても、ロボット１０１ｉ同士が干渉しないように、複数の溶接箇所を複数のロボットで分担してもよい。
【０３４４】
図３９は、第１０実施形態においてロボットの台数を３台とした場合を示す模式図である。図３９の加工対象物Ｗは、図３８と同様のものである。３台のロボット１０１１，１０１２，１０１３は、図３８と同様の配置である。図３９においては、図３８に示すロボット１０１４を除いている。上述したように、加工対象物Ｗ上の溶接箇所は、側面Ｗ１上に５１点、側面Ｗ２上に５０点、側面Ｗ３上に５１点、側面Ｗ４上に４７点、天面Ｗ５上に４点あるものとする。ロボット１０１１，１０１２，１０１３同士が干渉せず、かつロボット１０１１，１０１２，１０１３の動作エリアが重なるように各ロボット１０１１，１０１２，１０１３が担当する溶接箇所を決める。
【０３４５】
ロボット１０１１は、側面Ｗ１の全点である５１点と側面Ｗ２の１７点の合計６８点の溶接箇所を担当する。ロボット１０１２は、側面Ｗ２の３３点と側面Ｗ３の３５点の合計６８点の溶接箇所を担当する。ロボット１０１３は、側面Ｗ３の１６点と側面Ｗ４の全点である４７点と天面Ｗ５の全点である４点の合計６７点の溶接箇所を担当する。即ち、２台のロボット１０１１、１０１２が側面Ｗ２を担当し、２台のロボット１０１２、１０１３が側面Ｗ３を担当する。
【０３４６】
２台のロボット１０１ｉの干渉を回避するように、同時に同一の側面Ｗ２，Ｗ３を溶接しないように溶接順を決める。例えば、ロボット１０１１は側面Ｗ１から溶接を開始し、側面Ｗ１が終了したら側面Ｗ２を溶接するようにする。ロボット１０１２は側面Ｗ２から溶接を開始し、側面Ｗ２内の担当する３３点の溶接箇所の溶接が終了したら側面Ｗ３を溶接するようにする。ロボット１０１３は側面Ｗ３から溶接を開始し、側面Ｗ３内の担当する１６点の溶接箇所の溶接が終了したら側面Ｗ４を溶接し、最後に天面Ｗ５を溶接するようにする。ロボット１０１１，１０１２，１０１３それぞれが最初に溶接する側面Ｗ１，Ｗ２，Ｗ３内の担当する溶接箇所の数に差をつけている。即ち、ロボット１０１１は側面Ｗ１の５１点の溶接箇所の溶接を行い、ロボット１０１２は側面Ｗ２内の一部である３３点の溶接箇所の溶接を行い、ロボット１０１３は側面Ｗ３内の一部である１６点の溶接箇所の溶接を行う。このため、ロボット１０１２が側面Ｗ２内の一部である３３点の溶接箇所を溶接完了して側面Ｗ３に移動する前に、ロボット１０１３が側面Ｗ３内の一部である１６点の溶接箇所を溶接完了でき、側面Ｗ４に移動できる。また、ロボット１０１１が側面Ｗ１の全点である５１点の溶接箇所を溶接完了して側面Ｗ２に移動する前に、ロボット１０１２が側面Ｗ２内の一部である３３点の溶接箇所を溶接完了でき、側面Ｗ３に移動できる。このように、各ロボット１０１ｉの動作エリアが重なっても、ロボット１０１ｉの溶接順を考慮することで、ロボット１０１ｉ同士の干渉を回避することができる。
【０３４７】
ここで、上述したように、ロボット１０１ｉの台数Ｎが多いほど、非溶接時間Ｔ６ｊ，ｉ中に第２の時間Ｔ２ｊ，ｉの合計時間、及び第３の時間Ｔ３の合計時間を増やすことができ、待機時間Ｔ５ｊ，ｉを削減することができる。Ｎ台のロボット１０１ｉにおいては、ロボット１０１ｉの非溶接時間Ｔ６ｊ，ｉ中に、最大で残りの（Ｎ−１）台のロボット１０１ｉが溶接を行うことができる。そこで、時間（Ｔ４ｊ，ｉ＋Ｔ１）よりも、（Ｎ−１）台分の第２の時間Ｔ２ｊ，ｉとＮ台分の第３の時間Ｔ３との合計時間が長くなるように、台数Ｎを決めることで、待機時間Ｔ５ｊ，ｉを短縮することができる。
【０３４８】
ロボット１０１ｉの台数Ｎが増加するほど、レーザ発振器１０３の稼働率が高まり、加工品の生産効率が向上する。一方、ロボット１０１ｉの台数Ｎが少ないほど、装置サイズ、及び装置コストを低減できる。よって、これらを考慮して、ロボットの台数Ｎを決めればよい。また、レーザ発振器１０３の稼働率を高めるには、ロボット１０１ｉが受け持つ溶接箇所の溶接順番を工夫したり、複数のロボットの動作順番を工夫したりすればよい。これらの順番を工夫することで、待機時間Ｔ５ｊ，ｉを短くできれば、レーザ発振器１０３の稼働率が高まるので、加工品の生産効率が向上する。
【０３４９】
なお、同期信号ＳＢＡｉによってレーザ発振のタイミングは管理しているため、ＴＰ０２，１からＴＰ１２，１までの時間が変動しても、溶接ビードの長さのばらつきは変動せず、溶接強度の変動も発生しない。従って安定して溶接を行うことができる。
【０３５０】
また、コントローラ１２１Ｂは、ロボットコントローラ１２２ｉから送信される同期信号ＳＢＡｉを受信する度に、第１の時間Ｔ１として同じ時間が経過した時点で、レーザ光を発生するようレーザ発振器１０３を制御する。即ち、第１の時間Ｔ１として、各溶接箇所に対して個別の時間としているのではなく、共通の時間としている。したがって、コントローラ１２１Ｂは、ロボットコントローラ１２２ｉがいずれの軌道データＰｊ，ｉの指令を開始したのかを認識することなく、同期信号ＳＢＡｉを受信する度に、第１の時間Ｔ１として同じ時間をカウントすることになり、処理が簡略化される。
【０３５１】
また、第１の時間Ｔ１が経過した時点でレーザヘッド１０２ｉが目標速度Ｖｗｊ，ｉに達しており、この目標速度Ｖｗｊ，ｉに達した等速状態でレーザ光を加工対象物Ｗに照射する。即ち、レーザヘッド１０２ｉを、加工対象物Ｗに対して等速で移動させることにより、レーザ光Ｌｉの焦点を加工対象物Ｗの表面に沿って等速で移動させることができる。よって、加工対象物Ｗにおいてレーザ光Ｌｉの焦点の移動方向に沿って入熱量が均一化され、加工対象物Ｗにレーザ光Ｌｉの焦点の移動方向に沿って均一な溶接ビードを形成することができる。これにより、高精度なレーザシーム溶接を実現することができる。
【０３５２】
ここで、ロボットコントローラ１２２ｉにおける制御周期は、ロボット１０１ｉの動作を制御するのに適した値、例えば数ミリ秒に設定されている。本実施形態では、コントローラ１２１Ｂは、ロボットコントローラ１２２ｉの制御周期よりも短い制御周期でレーザ発振器１０３におけるレーザ発振のオンオフ、及び切替器１０４の切り替え動作を制御している。即ち、本実施形態では、コントローラ１２１Ｂにおいてレーザ発振器１０３及び切替器１０４を制御する制御周期は、ロボットコントローラ１２２ｉにおいてロボット１０１ｉを制御する制御周期よりも短い。よって、コントローラ１２１Ｂは、ロボットコントローラ１２２ｉよりも、第１の時間Ｔ１、第２の時間Ｔ２ｊ，ｉ及び第３の時間Ｔ３を正確に管理することができる。即ち、コントローラ１２１Ｂは、レーザ発振器１０３及び切替器１０４を短い制御周期で制御することができるので、レーザ発振器１０３を発停するタイミング、及び切替器１０４の切り替えのタイミングを正確に管理することができる。その結果、溶接ビードの長さのばらつきが低減でき、溶接強度のばらつきが低減される。
【０３５３】
また、本実施形態によれば、ロボットコントローラ１２２ｉが軌道データＰｊ，ｉの始点を指令するタイミングと、コントローラ１２１Ｂにおいて第１の時間Ｔ１の計時を開始するタイミングとが同期信号ＳＢＡｉで同期するようにしている。ロボットコントローラ１２２ｉが軌道データＰｊ，ｉの始点を指令するタイミングとは、軌道データＰｊの払い出しを開始するタイミングである。即ち、ロボットコントローラ１２２ｉにおいてロボット１０１ｉの動作と同期させた同期信号ＳＢＡｉを発生させ、コントローラ１２１Ｂにおいて同期信号ＳＢＡｉと同期した時刻からの経過時間によって、レーザ光の照射のオンオフを管理している。したがって、コントローラ１２１Ｂ及びロボットコントローラ１２２ｉは、複雑な演算処理等を行うことなく、ロボット１０１ｉの動作とレーザ発振器１０３のレーザ発振のオンオフを同期させている。よって、ロボット１０１ｉの動作とレーザ発振のタイミングのずれを低減することができる。これにより、レーザ光の照射を開始する目標の位置に対する実際の位置の誤差が低減される。また、ロボット１０１ｉの動作中に複雑な演算処理を行ってレーザ発振を制御する必要がないので、レーザ加工の精度を確保しながら、ロボット１０１ｉの動作を高速化することができ、加工品の生産効率を向上させることができる。
【０３５４】
また、ロボットコントローラ１２２ｉの制御周期は、コントローラ１２１Ｂの制御周期よりも長い。このため、ロボットコントローラ１２２ｉにおいて動作開始指令ＳＡｉを認識するタイミングにばらつきが生じる。本実施形態では、コントローラ１２１Ｂは、動作開始指令ＳＡｉを送信したタイミングではなく、同期信号ＳＢＡｉを受信したタイミングで、レーザ発振を行う第１の時間Ｔ１の計時を開始する。したがって、ロボット１０１ｉの動作とレーザ発振器１０３におけるレーザ発振のタイミングのずれを低減できる。
【０３５５】
なお、ロボットコントローラ１２２ｉが、準備が完了したことを示す不図示の準備完了信号をオンするように構成してもよい。この場合、コントローラ１２１Ｂはその準備完了信号のオンを確認してから、動作開始指令ＳＡｉをオンすればよい。この場合、時刻ＴＰ０２，１以降の時刻が遅れることになる。
【０３５６】
また、動作開始指令ＳＡｉをオンするタイミングを求める演算処理は複雑になるが、第１の時間Ｔ１を一定のカウント値とせず、ロボット１０１ｉに対応して異なるカウント値としてもよい。例えば、第２の時間Ｔ２ｊ，ｉと第３の時間Ｔ３とを加算した値に対して、第１の時間Ｔ１の変動分を加算したり減算したりすればよい。この演算は、最後の溶接箇所のレーザ照射タイミングから最初の溶接箇所へと、遡ってタイミングを決定して行くと、求めることができる。コントローラ１２１Ｂにこの演算を行わせる場合、コントローラ１２１Ｂは、すべての溶接箇所とロボットの順番の情報を取得する必要がある。
【０３５７】
また、本実施形態では、ロボット１０１１からロボット１０１Ｎのどのロボットにどの順番で動作開始指令ＳＡｉを送るかを予め定めておいている。しかし、ロボットコントローラ１２２ｉが同期信号ＳＢＡｉとともに第２の時間Ｔ２ｊ，ｉをコントローラ１２１Ｂに送ることで、準備完了状態となったロボット１０１ｉに対して動作開始指令ＳＡｉを送る構成にすることもできる。コントローラ１２１Ｂで管理するシーケンスＳＭ１とシーケンスＳＭ２で計時に使用する時間は第１の時間Ｔ１、第２の時間Ｔ２ｊ，ｉ、第３の時間Ｔ３である。そのうち、第１の時間Ｔ１と第３の時間Ｔ３は固定の時間であるため予めコントローラ１２１Ｂに記憶させておくことができる。第２の時間Ｔ２ｊ，ｉは溶接箇所ごとに異なる値となるため、ロボットコントローラ１２２ｉが送る同期信号ＳＢＡｉとともに、ロボットコントローラ１２２ｉからコントローラ１２１Ｂに送ればよい。送信された第２の時間Ｔ２ｊ，ｉは同期信号ＳＢＡｉで起動されるシーケンスＳＭ１とシーケンスＳＭ２で使われる。この方式を使用すれば、どのロボットにどの順番で動作開始指令ＳＡｉを送るかを予め定める必要がなくロボット装置１１０の独立性を高めることができる。
【０３５８】
なお、上述の第１０実施形態において、ロボット１０１ｉが直線補間命令に従って動作している途中に、異常が発生する場合がある。ロボットコントローラ１２２ｉは、コントローラ１２１Ｂに対して、ロボット１０１ｉの状態を示す信号を周期的に送信すればよい。コントローラ１２１Ｂは、ロボット１０１ｉが異常状態であることを示す信号を受信した場合、レーザ光を発振しないようにレーザ発振器１０３を制御すればよい。
【０３５９】
また、上述の第１０実施形態において、ロボットコントローラ１２２ｉが、コントローラ１２１Ｂに対してレーザ発振を許可する許可信号を送るようにしてもよい。例えば、ロボットコントローラ１２２ｉが、直線補間命令によって軌道データＰｊの払い出しを実行中であるときに、許可信号をオンする。コントローラ１２１Ｂは、許可信号とレーザ発振指令とをＡＮＤ演算し、演算結果をレーザ発振器１０３に送信するようにしてもよい。これにより、ロボットコントローラ１２２ｉが許可信号をオンしなければ、レーザ光は発振されないようになる。このＡＮＤ演算はコントローラ１２１Ｂが行うが、別の電子回路で処理してもよい。
【０３６０】
また、上述の第１０実施形態において、ロボット１０１ｉは、レーザ光が人間に暴露しないように、遮光されたブース内（図示せず）に設置されているのが好ましい。人がブースへ入室するための扉を開くと、レーザ発振器１０３のレーザ発振が停止するようになっている。また、光ファイバケーブル１５１ｉがレーザヘッド１０２ｉ及び切替器１０４と正しく接続されていない場合には、光ファイバケーブル１５１ｉ内の導線が接続されず、レーザ発振器１０３のレーザ発振が停止するようになっている。また、光ファイバケーブル１５２がレーザ発振器１０３及び切替器１０４と正しく接続されていない場合には、光ファイバケーブル１５２内の導線が接続されず、レーザ発振器１０３のレーザ発振が停止するようになっている。また、光ファイバケーブル１５１ｉ，１５２に一定以上の曲げが加わると内部の導線が切れ、レーザ発振器１０３のレーザ発振が停止するようになっている。また、セーフティレーザスキャナやセーフティライトカーテンなどで人間を感知して、レーザ発振器１０３のレーザ発振を停止するようにすることも可能である。また、ロボットコントローラ１２２ｉやコントローラ１２１Ｂがなんらかの原因によって応答しなくなった場合に備えて、外部のハードウェアによって監視してレーザ発振を停止することも可能である。例えば、ロボットコントローラ１２２ｉやコントローラ１２１Ｂから一定周期ごとにオン／オフする信号を出力し、出力された信号が一定時間変化しなければレーザ発振を止めればよい。
【０３６１】
また、上述の第１０実施形態では、制御装置１２０Ｂが、コントローラ１２１Ｂとロボットコントローラ１２２１，１２２２，…，１２２Ｎとで構成される場合について説明したが、これに限定するものではない。コントローラ１２１Ｂとロボットコントローラ１２２１，１２２２，…，１２２Ｎとの機能を併せ持つことが可能であれば、制御装置を１つのコンピュータで実現してもよい。例えば、複数のプロセッサ、又はプロセッサが有する複数のコアにより並列処理が可能であれば、制御装置を１つのコンピュータで実現することは可能である。
【０３６２】
また、上述の第１０実施形態では、ロボット１０１１，１０１２，…，１０１Ｎが、垂直多関節のロボットの場合について説明したが、これに限定するものではない。ロボットが、例えば水平多関節のロボット、パラレルリンクのロボット、又は直交ロボット等のロボットであってもよい。また、各ロボット１０１１，１０１２，…，１０１Ｎが異なる構成であってもよい。
【０３６３】
また、上述の第１０実施形態では、レーザ加工装置がレーザ溶接加工を行う場合について説明したが、これに限定するものではなく、例えばレーザ溝あけ加工又はレーザ切断加工を行う場合であってもよい。
【０３６４】
［第１１実施形態］
次に、第１〜第１０実施形態のいずれかのレーザ加工装置を用いたレーザ加工方法により製造する画像形成装置の製造方法について説明する。図４０は、第１０実施形態に係る画像形成装置の斜視図である。第１０実施形態では、第１〜第１０実施形態のいずれかのレーザ加工装置を用いて、画像形成装置８００の構成要素の１つである枠体（フレーム）の溶接を行い、画像形成装置８００を製造する。
【０３６５】
図４０に示す画像形成装置８００は、例えば、電子写真方式を採用するフルカラープリンタである。画像形成装置８００は、オプションの給紙モジュール８５０の上面（載置面）に載置可能である。画像形成装置８００は、２段の給紙カセット８０１Ａ，８０１Ｂを有する。給紙モジュール８５０は、２段の給紙カセット８５１Ａ，８５１Ｂを有する。各給紙カセットには、サイズや坪量の異なる記録材（用紙、ＯＨＰシートなどのシート材）が収納可能である。画像形成装置８００の操作部８０２や、画像形成装置８００に接続されたパーソナルコンピュータなどの外部端末から、画像形成する記録材を選択することが可能である。なお、以下の説明では、ユーザが画像形成装置８００を操作する側を前側、画像形成装置８００の背面側を後側とし、左右については、画像形成装置を前側から見た場合とする。
【０３６６】
画像形成装置８００内では、記録材が搬送され、記録材に画像が形成される。このため、画像形成装置８００の枠体（フレーム）が歪むと画像不良や動作不良が生じる場合がある。したがって、画像形成装置８００の枠体が歪むのを抑制することが、画像不良や動作不良などを抑制する上で重要となる。
【０３６７】
図４１は、第１１実施形態における加工対象物である枠体９００の一部を示す斜視図である。第１１実施形態では、レーザ加工により、枠体９００を構成する部材同士を溶接により締結する場合について説明する。
【０３６８】
まず、枠体９００となる支柱９０４及びステイ７０１を用意する。支柱９０４は、上下方向に平行で互いに直交する第１の側壁９０４Ａ及び第２の側壁９０４Ｂを有する。ステイ７０１は、その端部が第１の側壁９０４Ａ及び第２の側壁９０４Ｂに当接するように配置される。第１の側壁９０４Ａは、前後方向に平行に配置され、第２の側壁９０４Ｂは、左右方向に平行に配置される。このため、ステイ７０１は、第１の側壁９０４Ａ及び第２の側壁９０４Ｂにより前後方向及び左右方向に位置決めされた状態で上下方向に移動可能に配置される。
【０３６９】
ステイ７０１の上下方向の位置調整を行った後、溶接箇所９４１，９４２，９４３，９４４を、レーザシーム溶接する。ステイ７０１と支柱９０４とをレーザ溶接により固定することで、枠体９００を製造する。
【０３７０】
このように、画像形成装置８００の枠体９００には、多くの溶接箇所が存在する。第１から第１０実施形態のレーザ加工装置を用いたレーザ加工方法により、効率よく短時間で高精度に溶接を行うことが可能となる。これにより、枠体９００が歪むのを抑制することができ、シートに形成される画像の不良や画像形成装置８００の動作不良を抑制することができる。
【０３７１】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【０３７２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。即ち、上述の実施形態では、コントローラが、汎用コンピュータである場合について説明したが、これに限定するものではない。コントローラが、例えばマイクロコンピュータやデジタルシグナルプロセッサであってもよい。
【符号の説明】
【０３７３】
１００…レーザ溶接装置（レーザ加工装置）、１０１…ロボット、１０２…レーザヘッド、１０３…レーザ発振器（光源）、１２０…制御装置、１２１…コントローラ（第１のコントローラ）、１２２…ロボットコントローラ（第２のコントローラ）
【図１】
2019038034.tif 000025
【図２】
2019038034.tif 000026
【図３】
2019038034.tif 000027
【図４】
2019038034.tif 000028
【図５】
2019038034.tif 000029
【図６】
2019038034.tif 000030
【図７】
2019038034.tif 000031
【図８】
2019038034.tif 000032
【図９】
2019038034.tif 000033
【図１０】
2019038034.tif 000034
【図１１】
2019038034.tif 000035
【図１２】
2019038034.tif 000036
【図１３】
2019038034.tif 000037
【図１４】
2019038034.tif 000038
【図１５】
2019038034.tif 000039
【図１６】
2019038034.tif 000040
【図１７】
2019038034.tif 000041
【図１８】
2019038034.tif 000042
【図１９】
2019038034.tif 000043
【図２０】
2019038034.tif 000044
【図２１】
2019038034.tif 000045
【図２２】
2019038034.tif 000046
【図２３】
2019038034.tif 000047
【図２４】
2019038034.tif 000048
【図２５】
2019038034.tif 000049
【図２６】
2019038034.tif 000050
【図２７】
2019038034.tif 000051
【図２８】
2019038034.tif 000052
【図２９】
2019038034.tif 000053
【図３０】
2019038034.tif 000054
【図３１】
2019038034.tif 000055
【図３２】
2019038034.tif 000056
【図３３】
2019038034.tif 000057
【図３４】
2019038034.tif 000058
【図３５】
2019038034.tif 000059
【図３６】
2019038034.tif 000060
【図３７】
2019038034.tif 000061
【図３８】
2019038034.tif 000062
【図３９】
2019038034.tif 000063
【図４０】
2019038034.tif 000064
【図４１】
2019038034.tif 000065