(57)【要約】【課題】加工点群のグループ分けを適切に行うことのできるレーザ加工教示装置を提供する。【解決手段】複数の加工点を、加工ヘッドが加工点の各々を所要の加工時間で順次加工できるとともに非加工時間を最小化できる複数の加工点グループに分けるグループ分け部と、ロボットのグループ内の移動時間が最短になる加工経路を、個々の加工点グループに対して決定する加工経路決定部と、加工点の加工順序と複数の加工点グループに対する作業順序とを、グループ間の距離が最小化されるように調整するとともに、複数の加工点の全ての加工を完了するための総移動時間が最短になるように加工点グループの分け方を最適化する教示処理調整部と、教示処理調整部の処理の結果として得られる複数の加工点グループのそれぞれの加工経路における加工実行位置を、教示データとして出力する教示データ出力部と、を備える教示装置である。【選択図】図２
2020035404.tif 000002
【特許請求の範囲】
【請求項１】
レーザ光を対象物に走査式に照射する加工ヘッドと該加工ヘッドを移動させるロボットとを含むレーザ加工システムの、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示装置において、
対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付けるデータ入力部と、
前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分けるグループ分け部と、
前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定する加工経路決定部と、
前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整部と、
前記教示処理調整部の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力する教示データ出力部と、
を備える教示装置。
【請求項２】
前記教示処理調整部は、前記加工ヘッド及び前記ロボットの三次元モデルデータ、前記加工経路、前記加工点の加工順序及び前記複数の加工点グループの作業順序を用いてシミュレーション動作を実行することにより、前記対象物に設定される複数の前記加工点のそれぞれについて前記所要の加工時間の加工が可能な最速の移動速度を求め、
前記教示データ出力部は、前記最速の移動速度を更に教示データとして出力する、
請求項１に記載の教示装置。
【請求項３】
前記グループ分け部は、複数の前記加工点の前記位置及び前記所要の加工時間を用いて、各々の前記加工点グループにおける前記２以上の加工点の前記所要の加工時間の集中の度合いの、複数の前記加工点グループ間でのばらつきが低減されるようにグループ分けを行う、請求項１又は２に記載の教示装置。
【請求項４】
前記グループ分け部は、各々の前記加工点グループにおける前記２以上の加工点の前記所要の加工時間の集中の度合いが複数の前記加工点グループ間で均一になるように前記グループ分けを行う、請求項３に記載の教示装置。
【請求項５】
前記教示処理調整部は、
前記加工ヘッド及び前記ロボットの三次元モデルデータ、前記加工経路、前記加工点の加工順序及び前記複数の加工点グループの作業順序を用いてシミュレーション動作を実行し、各々の前記加工点を当該加工点の加工時間以上の間、前記レーザ光が前記ワークの一部によって遮られることなく加工することが可能になる前記加工経路上における加工可能期間を各々の前記加工点について求め、
複数の前記加工点のうち前記加工経路上において前記加工可能期間が互いに重なり合う２以上の加工点がある場合に、該２以上の加工点については、前記加工経路上での該２以上の加工点の前記加工可能期間の時系列上の開始時点に依存することなく、該２以上の加工点の全てについてそれぞれの前記所要の加工時間が満たされるように前記加工経路上における前記加工順序を設定する、請求項１から４のいずれか一項に記載のレーザ加工教示装置。
【請求項６】
前記教示データを用いて前記ロボットのロボット動作プログラム及び前記加工ヘッドの加工ヘッド動作プログラムを作成する動作プログラム作成部を更に具備する、請求項１から５のいずれか一項に記載の教示装置。
【請求項７】
前記ロボットの移動が移動しつつ前記加工ヘッドが複数の前記加工点の全てを加工する場合の前記加工ヘッドに固定された座標系から見た前記レーザ光の動作軌跡を求めるレーザ光動作軌跡取得部と、
前記ロボット動作プログラムの実行時間と前記加工ヘッド動作プログラムの実行時間との間に実行時間差を設定してシミュレーション動作させて、前記レーザ光動作軌跡取得部により前記レーザ光の動作軌跡を求めたとき、前記レーザ光の動作軌跡が前記加工ヘッドの走査範囲内である前記実行時間差の最大値を求める実行時間差最大値取得部と、を更に具備し、
前記動作プログラム作成部は、前記ロボット動作プログラムと前記加工ヘッド動作プログラムとの間に前記最大値の実行時間差が生じるように前記ロボット動作プログラム及び前記加工ヘッド動作プログラムを作成する、請求項６に記載の教示装置。
【請求項８】
レーザ光を対象物に走査式に照射する加工ヘッドと該加工ヘッドを移動させるロボットとを含むレーザ加工システムの、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示方法において、
対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付けることと、
前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分けることと、
前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定することと、
前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整を行うことと、
前記教示処理調整の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力することと、
を含む教示方法。
【請求項９】
レーザ光を対象物に走査式に照射する加工ヘッドと該加工ヘッドを移動させるロボットとを含むレーザ加工システムの、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示方法をコンピュータに実行させるためのプログラムであって、
対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付ける手順と、
前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分ける手順と、
前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定する手順と、
前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整を行うことと、
前記教示処理調整の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力する手順とを、
コンピュータのＣＰＵに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いたレーザ加工システムの教示を行うレーザ加工のための教示装置、教示方法、及び教示プログラムに関する。
【背景技術】
【０００２】
ロボットのアーム先端部にガルバノスキャナを搭載してワークに対する溶接等の加工を行うリモートレーザ加工システムが普及しつつある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２４７６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
レーザ加工システムでは、従来、作業者が、打点位置に基づいてロボットの動作経路を感覚的に決め、その動作経路に対して各打点を溶接するタイミングを決めるということが行われていた。レーザ加工システムにおいて、加工対象の全打点群に対する加工動作の時間、すなわちサイクルタイムを短縮し、また溶接品質も向上し得る最適な加工経路を自動的に設定することが求められている。
【課題を解決するための手段】
【０００５】
本開示の一態様は、レーザ光を対象物に走査式に照射する加工ヘッドと該加工ヘッドを移動させるロボットとを含むレーザ加工システムの、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示装置において、対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付けるデータ入力部と、前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分けるグループ分け部と、前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定する加工経路決定部と、前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整部と、前記教示処理調整部の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力する教示データ出力部と、を備える教示装置である。
【発明の効果】
【０００６】
上記構成によれば、加工点群の適切なグループ分けを行い、ロボットの適切な動作経路を決定して加工動作の所要時間を短縮することができる。
【０００７】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るレーザ加工教示装置を含むレーザ加工システムの全体構成を示す図である。
【図２】レーザ加工教示装置に構成される機能ブロックを示す図である。
【図３】レーザ加工教示装置により実行される動作プログラム作成処理のメインフローを表す図である。
【図４】打点グループ決定処理の詳細を表すフローチャートである。
【図５】動作速度決定処理の詳細を表すフローチャートである。
【図６】打点群のグループ分けを説明するための図である。
【図７】打点グループを定義する平面の例を表す図である。
【図８】フループ分けの最適化について説明するための図である。
【図９】溶接時間の疎密の度合いの例を示す図である。
【図１０】溶接時間の疎密の度合いについて説明するための図である。
【図１１】グループ間の移動順序の最適化について説明するための図である。
【図１２】溶接可能期間の決定について説明するための図である。
【図１３】打点順序の決定について説明するための図である。
【図１４Ａ】ロボットとスキャナの動作プログラムの実行時間のずれによる不具合を説明するための図である。
【図１４Ｂ】ロボットとスキャナの動作プログラムの実行時間のずれによる不具合を説明するための図である。
【図１５Ａ】スキャナの動作軌跡を表すグラフである。
【図１５Ｂ】スキャナの動作軌跡を表すグラフである。
【図１６】動作プログラムを実機上で動作させて実行時間のずれ量を測定する処理を表すフローチャートである。
【図１７】最大の実行時間のずれ量を求める処理を表すフローチャートである。
【図１８】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【図１９】カラーバーの表示例を示す図である。
【図２０】スライダーと連動したシミュレーション画面の例を示す図である。
【図２１】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【図２２】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【図２３】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【図２４】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【図２５】レーザ加工教示装置の表示画面に表示されるＧＵＩの例を示す図である。
【発明を実施するための形態】
【０００９】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【００１０】
図１は一実施形態に係るレーザ加工教示装置１を含むレーザ加工システム１００の全体構成を示している。レーザ加工システム１００は、ロボット１０のアーム先端部に取り付けられた加工ヘッドとしてのガルバノスキャナ（以下、単にスキャナと記す）５０を移動させながらレーザ光を走査させワークＷ上の各加工点の加工を行う、いわゆる協調型のリモートレーザ加工システムとして構成されている。図１の構成例では、レーザ加工システム１００は、ロボット１０と、ロボット１０の制御を行うロボット制御装置２０と、レーザ発振器３０と、レーザ加工教示装置１とを含んでいる。ロボット１０は図１の構成例では垂直多関節ロボットであるが、他のタイプのロボットが用いられても良い。また、ガルバノスキャナ以外のレーザ走査装置が用いられても良い。スキャナ５０は、レーザ発振器３０から光ファイバを介して送られてくるレーザ光をミラーを駆動することによってＸＹ方向に走査させる機能、およびレンズをＺ方向に駆動してレーザスポットをＺ方向に移動させる機能を有する。
【００１１】
レーザ加工教示装置１は、オフランでロボット１０およびスキャナ５０の動作プログラムを生成することができるプログラミング装置である。図１に示した構成例では、レーザ加工教示装置１は、ネットワークを介してロボット制御装置２０と接続されており、レーザ加工教示装置１で作成されたロボット１０の動作プログラムは、ネットワークを介してレーザ加工教示装置１からロボット制御装置２０に転送することができる。ロボット１０は、ロボット制御装置２０内にロードされた動作プログラムにしたがって動作する。また、レーザ加工教示装置１は、スキャナ５０の動作プログラムを生成する。ロボット制御装置２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、記憶装置等を有する一般的なコンピュータとしての構成を有していても良い。レーザ加工教示装置１で生成されたスキャナ５０の動作プログラムは、動作プロウラム作詞装置１からロボット制御装置２０を経由してスキャナ５０の制御部に転送される。スキャナ５０の制御部は、ロードされた動作プログラムにしたがって動作可能となる。スキャナ５０の制御部は、ＣＰＵ、ＲＯＭ、ＲＡＭ、記憶装置等を有する一般的なコンピュータとしての構成を有していても良い。
【００１２】
レーザ加工システム１００は、溶接、切断等の様々なレーザ加工を行うことができる。以下では、レーザ加工システム１００が溶接を行うものとして説明を行う。以下で詳細に説明するように、レーザ加工教示装置１は、溶接対象の打点群を最適なグループに分けると共に動作速度を最適化して、打点群に対する一連の溶接動作に要する時間（以下、サイクルタムとも記す）を最小化する動作プログラムを作成する。なお、レーザ加工教示装置１は、ＣＰＵ，ＲＯＭ，ＲＡＭ，ハードディスク、入力装置、表示装置、ネットワークインタフェース等のハードウェア構成要素を有する一般的なＰＣとしての構成を有していても良い。レーザ加工教示装置１としては、デスクトップ型ＰＣ，ノートブック型ＰＣ，携帯型情報端末など、各種の情報処理装置を用いることができる。
【００１３】
図２は、レーザ加工教示装置１に構成される機能ブロックを表している。図２に示される機能ブロックは、レーザ加工教示装置１のＣＰＵがソフトウェアを実行することによって実現されても良いし、ＡＳＩＣ（Application Specific Integrated Circuit）等の専用のワードウェアによって実現されても良い。図２に示されるように、レーザ加工教示装置１は、データ入力部１１０、グループ分け部１２０、教示処理調整部１３０、動作プログラム作成部１４８、グラフカルユーザインタフェース（ＧＵＩ）処理部１５０、シミュレーション実行部１６０、実行時間差最大値取得部１７０、及びレーザ光動作軌跡取得部１７２を有する。
【００１４】
データ入力部１１０は、溶接対象の打点群、各打点の溶接時間、溶接パターン、ワーク等のモデルデータを含む動作プログラム作成処理に必要な各種データを取得する。これらの各種データは、レーザ加工教示装置１内の記憶装置に予め格納されているものであっても良く、レーザ加工教示装置１に対して操作部を介して入力されるものであっても良い。或いは、各種データは、外部装置からネットワークを介してレーザ加工教示装置１に入力されるものであっても良い。
【００１５】
グループ分け部１２０は、データ入力部１１０によって取得された打点群のグループ分けを行い、グループ分けの最適化およびグループ内の打点順序の最適化を行う。教示処理調整部１３０は、溶接対象の全打点が溶接可能でサイクルタイムが最短になるように動作速度を決定する。動作プログラム作成部１４０は、グループ分け部１２０により決定された経路と教示処理調整部１３０により決定された動作速度とを用いてロボット１０およびスキャナ５０の教示データを出力する教示データ出力部としての機能を有すると共に動作プログラムを作成する機能を有する。ＧＵＩ処理部１５０は、動作プログラム作成処理に関する情報の表示や設定入力を行うためのグラフィカルユーザインタフェース（ＧＵＩ）を生成し表示する。ＧＵＩ処理部１５０、実行時間差最大値取得部１７０及びレーザ光動作軌跡取得部１７２の詳細については後述する。シミュレーション実行部１６０は、ロボット１０およびスキャナ５０の動作プログラムを用いてシミュレーション動作を実行する。
【００１６】
図３は、レーザ加工教示装置１により実行される動作プログラム作成処理のメインフローを表している。動作プログラム作成処理は、レーザ加工教示装置１のＣＰＵによる制御の下で実行される。ステップＳ１では、データ入力部１１０により、ロボット、ジグ、ワークＷのモデルデータ、溶接対象の打点群の打点位置、および各打点の溶接時間、溶接パターンのデータが読み込まれる。
【００１７】
次にステップＳ２では、グループ分け部１１０により打点グループを決定する処理が行われる。グループ分けは、以下の基準を満たすように行われる。
（１）打点グループ内を通過するロボットの経路と各打点の距離がスキャナの動作範囲（走査範囲）であること。
（２）各打点からロボットの経路に下した垂線の足の位置に経路に沿って溶接時間に相当する長さの線分を定義した場合に、この溶接時間に相当する線分の経路上での密集の度合いが均一になるように打点グループを決定する。
【００１８】
図４は、ステップＳ２において行われる打点グループ決定処理の詳細を表すフローチャートである。以下では、一例として図６の左側に示したような打点群Ｇ０についてグレープ分けを行うものとする。はじめに、ステップＳ２１では、打点群Ｇ０を仮の打点グループにグループ分けする。ここで、一グループは、ロボット１０が一つの動作命令で動作する間に溶接を行う複数の打点を規定する。一グループ内では、ロボット１０が一つの動作命令で動作し、その間スキャナ５０がスキャン動作を行うことでグループに属する各打点を溶接する。一動作命令ではロボット１０は直線的に等速で動作する。ここででは一例として、打点群Ｇ０を図６中右側に示す三つの打点グループＧ１〜Ｇ３に仮に分けるものとする。
【００１９】
ステップＳ２２では、各グループＧ１−３について、打点グループの中心を通るロボット１０の経路を決定する。経路の決定は、グループ分け部１２０の一機能としての経路決定部１２１が行う。打点グループの中心を通る直線は、例えば、最小二乗法により求める。一例としてグレープＧ１に関して述べると、経路Ｒ１は、各打点１０１−１０５から経路Ｒ１までの距離の二乗和が最小になる直線として求められる。なお、打点位置は三次元空間上の位置であるため各打点１０１−１０５は実際には３次元空間に分布しているが、各打点位置を平均した位置を通過する平面を定義して、各打点をこの平面に投影した位置に各打点が存在するものとして上記経路の決定を行う。各打点位置の平均した位置を通過する平面は、例えば、最小二乗法を用いて或いはＮｅｗｅｌｌのアルゴリズムを用いて求めることができる。ステップＳ２２での処理により、打点グループＧ１、Ｇ２、Ｇ３の経路としてそれぞれ経路Ｒ１、Ｒ２、Ｒ３が決定されたものとする。なお、経路とは、レーザ光の照射位置から打点グループを定義する平面に下した垂線の足が当該平面上を移動する経路として決定されても良い。
【００２０】
なお、打点グループの打点が投影される平面は、打点の分布状態（溶接面の形状）によっては水平方向に対して傾斜した平面として定義されても良い。例えば、図７示すように、打点グループＧ１を定義する平面Ｈ１は、打点グルーＧ２を定義する平面Ｈ２に対して傾斜した平面として定義することが好ましい。このように平面を決定することで、打点グループの分布に整合した平面の設定をなすことができる。なお、図７には、レーザ光の照射位置Ｄ１、Ｄ２に設定されるスキャナ５０の動作範囲の例も図示されている。ロボット１０が打点グループＧ２に対応する経路にある間、ロボット１０はスキャナ５が平面Ｈ２を向くようにその姿勢を制御する。
【００２１】
次に、ステップＳ２３では、それぞれの打点グループについて、各打点がスキャナ５０の動作範囲内にあるか否かの確認が行われる。例えば打点グループＧ１に関して説明すると、各打点１０１−１０５から経路Ｒ１までの距離がスキャナ５０の動作範囲内であるか否かにより本ステップＳ２３での確認を行うことができる。スキャナ５０の動作範囲外である打点が見つかった場合には（Ｓ２３：ＮＧ）、グループ分けをやり直す（ステップＳ２）。
【００２２】
次にステップＳ２４〜Ｓ２６のループ処理では、打点グループ内での打点の分布と各打点の溶接時間とに基づいてグループ分けを最適化する。図８に示したような打点グループを想定してグループ分けの最適化について説明する。図８の例では、一つの打点グループＧ１０内に打点１３１〜１３８が分布している。経路Ｐ１０は、この打点グループＧ１０に対してステップＳ２２の処理により設定された経路である。上述の通り、一動作命令対応する動作ではロボットは等速で動作する。そのため、打点が密の部分１４０においてロボット１０が全打点１３１−１３５の溶接を完了できるようにロボットの動作速度を低く設定した場合、打点が疎の部分１４１ではロボットが不必要に低速で動作することになる。したがって、この場合には打点グループＧ１０を、部分１４０の打点グループと部分１４１の打点グループとに分けた方がロボットの平均的な速度を高めることができる。すなわち、一打点グループ内での打点の分布が均一となるようにグループ分けを行うことが好ましいと言える。
【００２３】
ただし、打点毎に溶接時間が異なることも考量する必要がある。そこで、図９に示すように各打点から経路上に下した垂線の足の位置を中心とする、打点の溶接時間に対応する長さの線分を経路上に設定する。この線分はロボットによる経路の移動時間における一打点の溶接時間に相当するため、以下では溶接時間と称することとする。一例として、図９において、打点１３２から経路Ｐ１０におろした垂線の足の位置１３２ｃを中心とした溶接時間１３２ｓが設定されている。なお、各溶接時間を図９では便宜上太い両矢印線で表している。
【００２４】
ステップＳ２４では、経路上に占める溶接時間の密度（疎密の度合い）を算出する。この場合、溶接時間の密度は、溶接時間の集中の度合いと表現することもできる。例えば、図１０上段に示すように経路上に設定される溶接時間ＳＧ１、ＳＧ２、ＳＧ３間の間の間隔ｄ１、ｄ２が広い状態は溶接時間の密度が低い（疎の状態）に相当する。それとは対照的に図１０の下段で示すように、溶接時間ＳＧ１０、ＳＧ１１、ＳＧ１２の間の間隔ｄ１１、ｄ１２が狭い状態は溶接時間に密度が高い（密の状態）に相当する。隣接する溶接時間の間の間隔が広い状態は、それらの溶接時間に対応する経路上の部分ではロボットの速度を上げることができることを表している。それに対し、隣接する溶接時間の間の間隔が狭い状態は、それらの溶接時間に対応する経路上の部分ではロボットの速度を上げることができないことを表している。したがって、ある打点グループの経路に設定される溶接時間の密度のむら（疎密状態のむら）を評価し、密度のむらが高い場合には再グループ分けをし、各打点グループの溶接時間の密度のむらを小さくすることで全体的な溶接動作の速度を向上させることができる。
【００２５】
したがって、ステップＳ２４では、ある打点グループの経路上に設定された溶接時間の間の間隔について密度のむらを表す値を算出する。一例として、溶接時間の密度のむらは、経路上の一定の長さの小区間毎の溶接時間の密度を求めて当該密度のばらつきに基づいて算出しても良い。そして、ステップＳ２５では密度のむらが小さいほど高得点になるように評価値を計算する。
【００２６】
ステップＳ２６では、各打点グループの評価値が所定の閾値以上になっているか否かを判定する。評価値が所定の閾値未満のグループがある場合には（Ｓ２６：ＮＧ）、当該グループについて評価値が高くなるように再度のグループ分けを行いステップＳ２２からの処理を繰り返す。他方、全打点グループについて評価値が閾値以上になっている場合には、ステップＳ２６の処理を行う。このようなループ処理により打点グループ分けの最適化を行うことができる。なお、このような最適化のループ処理では、例えば、遺伝的アルゴリズムが用いられても良い。
【００２７】
次に、ステップＳ２７では、打点グループ間の移動順序および打点グループ内での打点順序の最適化を行う。ここでは、ステップＳ２６まででの処理により図１１の左側に示すようにグループ分け及び経路の決定がなされたものとする。図１１の左側の例では、溶接対象の打点群は３つの打点グループＧ２０１−Ｇ２０３にグループ分けされ、各グループに経路Ｐ２０１−Ｐ２０２が設定されている。ステップＳ２６では、打点グループに設定された経路の移動方向、打点グループ間の移動順序が最適化される。図１１において左側に最適化前の状態を示し、右側に最適化後の状態を示す。最適化前の状態では、グループ間の順序は、グループＧ２０１→グループＧ２０３→グループＧ２０２の順となっている。また、グループＧ２０１については図中下から上に向かう打点順序、打点グループＧ２０３については図中下から上に向かう打点順序、打点グループＧ２０２については図中左から右に向かう打点順序と決定されている。最適化前の状態は、グループ間の総移動距離が長く改善の余地があることが理解できる。
【００２８】
図１１中右側の最適化後の状態では、グループ間の移動順序は、打点グループＧ２０１→打点グループＧ２０２→打点グループＧ２０３の順となっている。また、打点グループＧ２０１については下から上に向かう打点順序、打点グループＧ２０２については左から右に向かう打点順序、打点グループＧ２０３については上から下に向かう打点順序に決定されている。最適化後の状態ではグループ間の移動の総距離が最小となっていることが理解できる。打点グループ間の総移動距離を最小にする移動順序を決定する手法としては、いわゆる巡回セールスマン問題を解くための当分野で知られた各種手法を用いることができる。以上の処理により、図３のメインフローにおける打点グループの決定処理（ステップＳ２）が完了する。
【００２９】
次に、メインフローのステップＳ３において、打点グループ毎のロボットの動作速度が決定される。図５は、この動作速度決定処理の詳細を表すフローチャートである。この処理は、教示処理調整部１３０によって実行される。はじめに、ステップＳ３１では、各打点グループについての仮のロボット速度を設定する。仮の速度は、各打点グループの打点を問題なく溶接できると考えられる低い速度を全打点グループについて一律に設定しても良い。或いは、経験値に基づく代表的な速度を各打点グループに一律に設定しても良い。
【００３０】
次にステップＳ３２では、メインフローのステップＳ２において決定されたロボットの経路、およびステップＳ３１で決定された各打点グループの動作速度を用いてロボット１０の動作プログラムを生成し、ロボットの動作シミュレーションを実行する。動作シミュレーションの実行により、ロボットの補間周期毎の位置データ（以下、動作経路とも記す）を取得する。
【００３１】
次に、ステップＳ３３では、ロボットの動作シミュレーションにより得られたロボットの動作経路を用いて、ロボットの動作経路上で各打点を溶接できる範囲に対応する期間（以下、溶接可能期間と記す）を算出する。図１２のようにロボットの動作経路Ｌ１に関して、打点１５１の溶接できる溶接可能期間を求める場合を例として取り上げてここでの処理を説明する。まず、ロボットの動作経路Ｌ１上の位置に基づいてロボットのアーム先端に取り付けられているスキャナ５０の位置（具体的には、例えば、スキャナ内の集光レンズの位置）を求め、スキャナ５０の位置と打点１５１の位置とを結ぶレーザ光の経路を求める。このとき、
（１）レーザ光の経路がワーク、ジグと干渉しない、
（２）レーザ光の経路がスキャナの動作範囲である、
（３）打点位置でのワークの法線方向とレーザ光とがなす角度である照射角度が所定の許容範囲であること、
の条件を満たすとき、このレーザ光の経路については溶接可能であると判定する。なお、上記条件（３）を適用するのは、ワークに対するレーザ光の照射強度にむらが発生することを回避し溶接品質を維持するためである。動作経路上で連続してレーザ光の経路が溶接可能であると判定される範囲に対応する期間が、ステップＳ３３において求める各打点についての溶接可能期間である。図１２の例では、符号Ｌ１０１が、溶接可能期間を表している。なお、動作経路上で複数個所に溶接可能期間が決定される場合もあり得る。なお、溶接可能期間は対象打点の溶接時間以上である必要があるので、これを満たさない範囲は破棄する。
【００３２】
次に、ステップＳ３４では、ステップＳ３３で決定された各打点についての溶接可能期間を用いて、各打点を溶接する位置、時間を決定する。ここでは、第１の条件として、各打点の溶接時間を考慮し、各打点の溶接可能期間の開始時間の先後に依存することなく、各打点の溶接時間が確実に満たされるように溶接の時間を決定する。例えば、溶接時間が同じ１秒の二つの打点Ａ，Ｂがあり、打点Ａの溶接可能期間が動作開始から１秒目から４秒目、打点Ｂの溶接可能期間が動作開始から１．１秒目から２．１秒目である場合を想定する。この場合、先に溶接可能になるのは打点Ａであるが、打点Ａを１秒目から２秒目に溶接すると打点Ｂの溶接ができなくなる。このような場合、本ステップでは、打点Ｂを１．１秒目から２．１秒目に溶接し、打点Ｂを２．１秒目から３．１秒目に溶接する。
【００３３】
また、ステップＳ３４では、第２の条件として、打点の並び順に依存することなく動作経路とワークやジグとの位置関係により先に溶接可能となる打点があればその打点を優先して溶接する。例えば、図１３に示すように、動作経路Ｌ２に沿った打点の並びは打点１６１、１６２の順であるが、動作経路Ｌ２上から打点方向をみた場合に打点１６１がワークの突起部１８０の背後に隠れ打点１６２の方が先に溶接可能となるような場合には、先に動作経路上の位置２０２において打点１６１の溶接を行い、打点１６２の溶接はその後ろの位置２０３において行う。ステップＳ３４の処理は、教示処理調整部１３０の一機能としての打点順序決定部１３０ａが実行する。
【００３４】
次に、ステップＳ３５では、全打点が溶接できて且つサイクルタイムが短くなるように動作速度を調整し最適化する。例えば、全打点グループについてロボット１０の動作速度を同じ値として全打点について溶接可能となるまで動作速度を下げ、次に、各打点グループ毎に動作速度を上げるというやり方が考えられる。以上の処理により、図３のメインフローの動作速度決定処理（ステップＳ３）が終了する。
【００３５】
次に、以上のステップＳ１からＳ３の処理によって得られた結果を用いてロボット１０およびスキャナ５０の動作プログラムが作成される。ロボット１０の動作プログラムは、ステップＳ２の処理によって全打点グループに設定された経路に沿って、ステップＳ３で決定された動作速度でロボット１０が動作するように作成される。スキャナ５０の動作プログラムは、ロボット１０がその動作プログラムにしたがって動作経路上を移動するときに各打点に対して設定された溶接時間の間レーザ光が当該打点に照射されるようにスキャナ５０の位置および姿勢を規定する動作指令群として作成される。
【００３６】
以上説明した構成によれば、最適なロボットの動作経路及び各打点を溶接するタイミングを自動的に決定することができる。
【００３７】
以上説明したレーザ加工システム１００では、ロボット１０とスキャナ５０はそれぞれ別々の制御装置によって制御される。このように、ロボット１０とスキャナ５とが別々の制御装置によって制御される場合に考慮すべき課題について説明する。
【００３８】
ロボット１０の動作プログラムとスキャナ５０の動作プログラムは、開始信号によって同時に起動されるため、それぞれ生成時に想定されたサイクルタイム通りに動作することが求められる。
【００３９】
しかしながら、ロボットやスキャナを別々の制御装置で動作させた場合、一般には、両方共がプログラム作成時に想定されたサイクルタイム通りには動作しない。これはロボットとスキャナとの間のメカ的な条件の相違に起因する。このような同期ずれが生じると、スキャナ５０がある打点を溶接している間、ロボットがプログラム作成時に想定した通りの位置にいないため、打点位置がスキャナの動作範囲外となってしまう、あるいはレーザ光がジグやワークと干渉してしまうことがある。これは、スキャナ５０の動作プログラムが、溶接を行うタイミングにおいて、ロボット１０の動作プログラムによってロボット１０が移動した位置に基づいて求められるスキャナ５０の位置から打点に向けて溶接するように作成されているためである。
【００４０】
このような同期ずれによる不具合の例を図１４Ａ−１４Ｂを参照して説明する。図１４Ａはロボット１０の動作プログラムおよびスキャナ５０の動作プログラムの双方が同期して（想定したサイクルタイム通りに）動作する状況を表している。図１４Ａでは、範囲Ｒ１１１は溶接期間Ｌ１１０の開始時点Ｐ１１０でのスキャナ５０の動作範囲を示し、範囲Ｒ１１２は溶接期間Ｌ１１０の終了時点Ｐ１１１でのスキャナ５０の動作範囲を表している。したがって、動作経路Ｌ１０に沿った溶接期間Ｌ１１０の間に打点２０１に対してスキャナ５０の動作範囲内で適切に溶接が行われていることが理解できる。
【００４１】
他方、図１４Ｂはスキャナ５０の動作が想定したサイクルタイムよりも遅れている状況を表している。スキャナ５０の動作は遅れているため、位置Ｐ２１０から位置Ｐ２１１にかけてレーザ光を打点２０１に向けて照射しようとする。この場合、位置Ｐ２１０では打点２０１は動作範囲Ｒ１１１に含まれているが、位置Ｐ２１１では打点２０１はスキャナ５０の動作範囲Ｒ１１２の外側となる。スキャナ５０が動作範囲外となると、レーザ加工システム１００はアラーム停止する。
【００４２】
この問題を解決するためには、一度、ロボット１０の動作プログラムとスキャナ５０の動作プログラムを実機上で動作させて、実行時間のずれ量を取得する必要がある。例えば、それぞれのサイクルタイムが１０秒になるように作成したロボット１０の動作プログラムとスキャナ５０の動作プログラムが、実機上で動作させた結果、ロボット１０の動作プログラムは１０秒で動作しスキャナ５０の動作プログラムは１１秒で動作したものとする。この場合には、ずれ量の１秒を補正するように、ロボット１０の動作プログラムは１１秒で動作し、スキャナ５０の動作プログラムは元の１０秒で動作するように作成する。これにより、ロボット１０とスキャナ５０は同じサイクルタイム１１秒で動作するようになる。
【００４３】
このようにロボット１０とスキャナ５０の動作プログラムの実行時間のずれ量を取得するためには、動作プログラムを実機上で動作させる必要がる。しかしながら、図１４Ａ−１４Ｂを参照して説明したように動作途中でスキャナ５０の動作範囲外となりレーザ加工システム１００がアラーム停止してしまうと動作プログラムを最後まで実行することができず、実行時間のずれ量を取得することができない。この場合には、仮の実行時間のずれ量を想定し当該ずれ量を補正するようにロボット１０およびスキャナ５０の動作プログラムを作成することになるが、想定するずれ量が適切でないと何度もずれ量を修正しつつ実機上での動作を繰り返えさなければならなくなる。
【００４４】
そのため、適切なずれ量を以下のように求める。図１５Ａは、スキャナ５からみたレーザ光のＸＹ方向における動作軌跡を求めたグラフであって、ロボット１０およびスキャナ５０の動作プログラム間にずれ量を設定していない場合のグラフである。動作軌跡は、レーザ光動作軌跡取得部１７２によって実行される。このようなグラフは、ロボット１０の動作プログラムを実行させた場合のある時間におけるロボットの位置と、その時間におけるスキャナ５０の溶接している打点の位置から算出することができる。ここでは、ＸＹ方向それぞれにおける−１５０ｍｍから＋１５０ｍｍの範囲がスキャナ５０の動作範囲であるものとする。図１５Ａに示す通り、同期ずれがない状態では、スキャナ５０の動作軌跡は、スキャナ５０の動作範囲に入っている。
【００４５】
ずれ量を想定した場合の、スキャナ５０の動作軌跡も算出することができる。例えば１０秒で動作するよう生成されたスキャナ５０の動作プログラムが、実際には１１秒で動作すると想定した場合、ｎ秒目のロボットの位置に対して、ｎ×１０／１１秒目のスキャナ５０の位置を算出し、当該スキャナ５０の位置から溶接対象の打点にレーザ光を照射するものとして動作軌跡を算出する。想定したずれ量を大きくしながら、スキャナ５０の動作軌跡を算出してグラフ化しスキャナの動作範囲内に入っているか確認することで、スキャナ５０の動作軌跡が動作範囲外にならない最大の実行時間のずれ量を算出することができる。図１５Ｂは、ずれ量を大きくしていった結果として、スキャナ５０の動作軌跡が動作範囲を超えた場合のグラフを示している。
【００４６】
実機上での実際の実行時間のずれ量が大きい場合には、動作プログラム補正するために使用するずれ量も大きくすることが好ましいが、動作プログラムの補正に使用するずれ量が大きくし過ぎると実際には実機上でのずれ量が生じない場合にまでスキャナ５０の動作範囲外となる事態が生じかねない。そこで、上記にて求めた最大の実行時間のずれ量を設定して、当該ずれ量を補正するように動作プログラムを再生成する。これにより、実機上で動作プログラムを最後まで実行して、正確な動作時間のずれ量を測定する事が可能になる。上記最大の実行時間のずれ量と、これを補正するように再作成した動作プログラムを実機上で動作させて測定されたずれ量との合計を補正するように動作プログラムを再び作成する。これにより、同期して動作するロボット１０およびスキャナ５０の動作プログラムを得ることができる。
【００４７】
図１６は、上述の説明内容のうち、動作プログラムを実機上で動作させて実行時間のずれ量を測定する処理をフローチャートとして表したものである。はじめに、図３の動作プログラム作成処理によりロボット１０およびスキャナ５０の動作プログラムを作成する（ステップＳ６１）。次に、ロボット１０およびスキャナ５０の動作プログラムを実機上で動作させる（ステップＳ６２）．このとき、ロボット１０とスキャナ５０の実行時間のずれ量を測定する（ステップＳ６３）。ずれ量は、例えば、ロボット１０およびスキャナ５０の動作を映像として記録することによって測定しても良い。ずれ量が取得されたら、当該ずれ量を補正するようにロボット１０およびスキャナ５０の動作プログラムを再作成する（ステップＳ６４）。
【００４８】
図１７は、上述の最大の実行時間のずれ量を求める処理をフローチャートとして表現したものである。図１７の処理は、レーザ加工教示装置１の実行時間差最大値取得部１７０によって実行される。はじめに、図３の動作プログラム作成処理によりロボット１０およびスキャナ５０の動作プログラムを作成する（ステップＳ７１）。次に、仮のロボット１０とスキャナ５０の実行時間のずれ量を決定し（ステップＳ７２）、このずれ量におけるスキャナ５０の動作軌跡の求め、この動作軌跡がスキャナの動作範囲に入るかいなかが判定される（ステップＳ７３）。スキャナ５０の動作軌跡が動作範囲内である場合、ステップＳ７２からの処理を繰り返す。ステップＳ７２は、最初は実行時間のずれ量を小さい値に決定しロープ処理を繰り返す度にずれ量を徐々に大きくするように決定する。スキャナ５０の同席積が動作範囲外となった時点で処理はステップＳ７４ｎｉ進み、スキャナ５０の動作軌跡が動作範囲にあるときの最大の実行時間のずれ量を算出する。なお、ステップＳ７３での判定は、図１５Ａで示したようなグラフ上の各点が動作範囲に入るかを実行時間差最大値取得部１７０が自動的判定することで実行することができる。このように適正な補正量が得られたら、この補正量を補正するようにロボット１０およびスキャナ５０の動作プログラムを作成し、図１６の動作のステップＳ７２からの処理を実行することで、補正が修正されたロボット１０およびスヤナ５０の動作プログラムを得ることができる。
【００４９】
次に、図３から図５に示した処理実行する上でレーザ加工教示装置１の表示部の画面に表示されるグラフィックユーザインタフェース（ＧＵＩ）について説明する。図１８は、ＧＵＩ処理部１５０によってレーザ加工教示装置１の表示装置に表示されるＧＵＩ３００を表している。ＧＵＩ３００は、動作プログラム作成処理の結果に関する情報を表示すると共に、動作プログラム作成処理に対して操作者が各種条件を指定することを可能にする。
【００５０】
図１８に示されるように、ＧＵＩ３００は、溶接対象の打点群を指定する打点群指定フィールド３０１、打点群指定フィールド３０１に指定された打点群のリストを表示する打点リストボックス３０２、設定の種別を指定する４つのタブ３１１−３１４、スライダー３２１、カラーバー３２２、プレビューボタン３２３、動作プログラムの作成を指示するプログラム生成ボタン３２４を含んでいる。図１８の例では、タブ３１１が選択され、ＧＵＩ３００の右側には、タブ３１１に関する調整メニューが表示されている。
【００５１】
ＧＵＩ３００では、打点群指定フィード３０１に指定された打点群は、２８個の打点（Ｔ１〜Ｔ２８）を含んでいる。打点リストボックス３０２は、指定打点群に対して図３−５に示した動作プログラム作成処理を実行して決定された打点順序で打点が画面上から順番に表示されている。また、打点リストボックス３０２は、各打点について打点番号、溶接パターン、溶接時間、溶接開始時刻、溶接終了時刻、レーザ光の照射角度、経路と打点の距離とをそれぞれ表示するフールド３３１−３３７を含んでいる。溶接パターン（フィールド３３２）は、一つの打点を溶接する場合にレーザ光の照射パターンを示す。レーザ光の照射角度は、打点の方線方向とレーザ光との間の角度を表す。溶接開始時刻、溶接終了時刻、レーザ光の照射角度、経路と打点の距離（フィールド３３３−３３７）の情報は、ＧＵＩ３０上で指定されている打点群に対してプログラム生成ボタン３２４を押下して図３−５で示した動作プログラム作成処理を実行した結果として取得され表示される情報である。一例として、打点群中で最初に溶接される打点（“Ｔ１”）は、溶接時間が３５０．００ｍｓ、溶接開始時刻が５６．００ｍｓ、溶接終了時刻が４２４．００ｍｓ、レーザ光の照射角度が５．０２度、経路と打点の距離が２２．１７ｍｍである。
【００５２】
また、打点リスト上では、打点のグループ分けを認識し易くするために、同じくグループの打点のフィールドは同一色で表示し且つ少なくとも隣接する打点グループは背景色が異なるように表示される。図１８の打点リストの例では、指定打点群は５つの打点グループＧ４０１−Ｇ４０５にグループ分けされている。
【００５３】
図１９にカラーバー３２２の一例を拡大して示したものである。図１９に示されるように、カラーバー３２２は、指定打点群について動作プログラム作成処理を行うことによって得られた結果を用いて、指定打点群についての溶接動作における溶接中（レーザ光照射中）と非溶接中（レーザ光を非照射中）の状態を区別できるように２つの異なる色で時系列に表したバーグラフである。カラーバー３２２の図中左端部３２２ａは、ロボット１０の動作プログラムの開始時刻に対応し、カラーバー３２２の図中右端部３２２ｂはロボット１０の動作プログラムの終了時刻に対応している。カラーバー３２２中で第１色３２２ｃで表された部分は溶接中を表し、カラーバー３２２中で第２色３２２ｄで表された部分は非溶接中を表している。
【００５４】
カラーバー３２２において第１色３２２ｃで表された部分が多いほど、ロボット１０の動作中に溶接している時間が多いこと、すなわち溶接動作の効率が良いことを表す。他方、カラーバー３２２において第２色３２２ｄで表された部分が多いほど、ロボット１０の動作中に溶接している時間が少なくなること、すなわち、溶接動作の効率が低いことを表す。したがって、操作者は、カラーバー３２２により現在の動作プログラムにおける溶接動作の効率を視覚的に瞬時に把握することができる。溶接動作の効率が低いと考えられる場合には、各種条件を変更して動作プログラムを再作成することができる。
【００５５】
スライダー３２１は、動作プログラムを用いてロボット、スキャナ等の３Ｄモデルをシミュレーション動作実行させた場合における時刻を指定するために用いられる。シミュレーション実行部１６０は、シミュレーション動作の結果を用いて、スライダー３２１で指定された時刻におけるロボット１０、スキャナ５０の姿勢をとるようにこれらの３Ｄモデルを画面上に表示する。またこのとき、スキャナ５０から打点に至るレーザ光の経路が溶接中は第１色で非溶接中は第２色で表示される。スライダー３２１の画面横方向の位置とカラーバー３２２の横軸上の位置が対応しているため、操作者は、カラーバー３２２上で非溶接の期間（第２色の部分）を探し、スライダー３２１を探した位置にスライドさせることでその位置におけるロボット１０やスキャナ５０の状態を画面上で直感的に確認することができる。図２０は、このような表示画面の例を示している。図２０の表示画面例には、ロボット１０、スキャナ５０の３Ｄモデルが表示されると共にレーザ光ＬＡの経路が第２色で表示されている。
【００５６】
このようにカラーバー３２２による表示とスラーダーを用いたロボット等の状態の表示を組み合わせて行うことで、操作者が溶接動作における無駄な時間を発見することが可能となり、溶接動作の効率をさらに向上させることができる。
【００５７】
プレビューボタン３２３を押下すると、動作プログラムのシミュレーション結果にしたがってロボット１０、スキャナ５０、ワークＷ等のモデル、およびレーザ光の照射のアニメーション表示がなされる。
【００５８】
ＧＵＩ３００の画面右側には、現在指定されているタブ３１１によって提供される各種調整メニューが表示されている。タブ３１１による調整メニューは、動作プログラム全般に関する調整内容を含む。フィールド４１１−４１４は、スキャナ５０の動作プログラムに関するものである。フィールド４１１は生成するスキャナ５０の動作プログラムのＩＤを指定するフィールド、フィールド４１２は動作プログラム名を表示するフィールド、フィールド４１３は動作プログラムの溶接時間が表示されるフィールド、フィールド４１４は図１４Ａ−１７を参照して説明したロボットの動作プログラムとスキャナ５０の動作プログラムの補正量を指定するフィールドである。
【００５９】
また、タブ３１１の調整メニューは、打点リストボックス３０２上で選択した複数の打点について同じ平面に属するように指示するボタン４２１、打点リストボックス３０２上でユーザが選択した複数の打点を同じ動作経路に含めるように指示するボタン４２２を含む。また、タブ３１１の調整メニューは、打点リストボックス上で選択している打点を溶接する動作命令の動作速度を指定するフィールド４２５、動作命令の開始マージン（助走距離９）を指定するフィールド４２６、動作命令の終了マージンを指定するフィールド４２７を含む。動作命令の開始直後はロボット１０は加速運動をするため加速運動中に溶接が行われると溶接が不安定になるおそれがあるところ、開始マージンを確保することでロボット１０が所期通り等速運動をするときに溶接が行われるようにすることができる。同様に、動作命令の終了時にはロボット１０は減速運動をするため減速動作中に溶接が行われると溶接が不安定になるおそれがあるところ、終了マージンを確保することで所期の通りロボットが等速運動をしているときに溶接が行われるようにすることができる。プログラム生成ボタン３２４を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【００６０】
図２１はタブ３１２が選択された状態のＧＵＩ３００を示している。タブ３１２は、溶接位置に関する各種の調整メニューを含んでいる。タブ３１２の調整メニューは、打点リストボックス３０２上で選択されている打点の位置が表示されるボックス４８１、当該打点について位置の変更を指示入力可能な位置調整ボックス４８２を含んでいる。さらに、タブ３１２の調整メニューは、現在選択されている打点（“Ｔ１”）についてのレーザ照射角度を表すグラフ４８５を含んでいる。グラフ４８５は、横軸に時間（単位：ｍｓ）、縦軸に照射角度（単位：度）を有し、当該打点にレーザ光の照射を開始してレーザ光の照射終了するまで（溶接時間中の）レーザ光の照射角度の変化を表している。当該打点についてレーザ光の照射を開始した時点での照射角度は比較的大きく、レーザ光の照射時間が終了した時点（３５０ｍｓ経過後）の照射角度は比較的小さい。プログラム生成ボタン３２４を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【００６１】
図２２は、タブ３１３が選択された状態のＧＵＩ３００を示している。タブ３１３は、要設定に関する調整メニューを含んでいる。タブ３１３の調整メニューは、選択中の打点（“Ｔ１”）についの、溶接パターンを指定するフィールド５０１、当該打点を溶接する場合のスキャナ５０の動作範囲を指定するフィールド５０２、および当該打点にレーザ光を照射する場合の照射角度の許与範囲を指定するフィールド５０３を含んでいる。また、タブ３１３の調整メニュー画面は、選択中の打点の溶接パターンをグラフィカルに表示する溶接パターン表示ボックス５０５を含んでいる。パターン表示ボックス５０５に表示されている溶接パターンを操作することで、操作者は溶接パターンを変更することができる。プログラム生成ボタン３２４を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【００６２】
溶接パターン表示ボックス５０５は、溶接パターンの形態を指定するラジオボタンである形状ボタン５１５、パワーボタン５１６を含んでいる。図２２に示す表示例では、溶接パターンの表示形態として形状を指定する形状ボタン５１５が指定されている。
【００６３】
図２３は、溶接パターンの表示形態としてパワーを指定するパワーボタン５１６が指定されている場合の表示例を示している。図２２に示されるように、この場合には、パターン表示ボックス５０５に、選択中の打点の溶接パターンを表すグラフ５２０が表示されている。グラフ５２０において横軸は時間（単位：ｍｓ）を、縦軸はレーザ出力（単位：Ｗ）を表している。現在のグラフ５２０は、溶接期間中は１０Ｗの一定のレーザ出力で溶接が行われることを示している。操作者は、溶接パターンを変更することができる。この場合、操作者は、レーザ出力の変化点の時刻をフィールド５３２に入力し、当該時刻でのレーザ出力をフィールド５３３に入力し、エーザ出力の追加を指示するボタン５３１を操作する。操作者は、このような操作を繰り返し行うことで所望のレーザ出力パターンを得ることができる。
【００６４】
図２４は、タブ３１４が選択された状態のＧＵＩ３００を示している。タブ３１４の設定メニューは、スキャナ５０のネットワークアドレスに関する設定を行うための設定ボックス５３０と、スキャナ５０の動作設定を行うための設定ボックス５３１とを含んでいる。設定ボウス５３１は、スキャナ５０の動作範囲、焦点距離、最大動作速度（ＸＹ方向）、最大速度（Ｚ方向）、最小移動時間をそれぞれ設定するフィールドを含んでいる。プログラム生成ボタン３２４を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【００６５】
図２５は、ＧＵＩ３００において画面左側に配置された解析タブ５６０が選択された場合の表示例を示している。解析タブ５６０の画面は、シミュレーション結果としてのスキャナ５０の動作に関する３つのグラフ５６１−５６３を示している。グラフ５６１は、すきゃなＸＹ方向の速度を表すグラフである。グラフ５６１において横軸は時刻を表し、立ち絵軸は速度を表している。グラフ５６２は、溶接動作中のスキャナ５０のＸ，Ｙ方向の動作（スクアナ５０のレンズ位置から見たレーザ光の照射位置）をスキャナ５０のローカル座標系で示したグラフである。グラフ５６２において、横軸はＸ方向の位置、縦軸はＹ方向の位置を表している。グラフ５６３は、溶接動作中のスキャナ５０のＺ方向の動作をスキャナ５０のローカル座標系で表すグラフである。ここでスキャナ５０のＺ方向の動作とは、スキャナ５０内のレンズを駆動する方向の動作（すなあち、焦点距離の調節）を表している。
【００６６】
操作者は、スライドバー５６５を操作してスキャナ５０の遅れ時間（補正量）を指定してグラフ更新ボタン５６を操作することで、指定した遅れ時間を用いたシミュレーション結果としてのグラフに更新することができる。これにより、操作者は、どの程度の遅れ時間であればスキャナ５０の動作範囲内で溶接動作が可能かを確認することができる。
【００６７】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【００６８】
レーザ加工教示装置１上で実行される上述した各種処理を行うプログラムは、コンピュータ読み取り可能な各種記録媒体に記録することができる。
【００６９】
また、本開示の課題を解決するために、以下のような各種の態様とその効果を提供することができる。なお、以下の態様の説明文における括弧内の番号は本開示の図面の参照符号に対応する。
【００７０】
例えば、本開示の第一態様は、レーザ光を対象物に走査式に照射する加工ヘッドと該加工ヘッドを移動させるロボットとを含むレーザ加工システムの、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示装置（１）において、対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付けるデータ入力部（１１０）と、前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分けるグループ分け部（１２０）と、前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定する加工経路決定部（１２１）と、前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整部（１２０）と、前記教示処理調整部の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力する教示データ出力部（１４０）と、を備える教示装置である。
【００７１】
上記第一態様によれば、加工点群の適切なグループ分けを行い、ロボットの適切な動作経路を決定して加工動作の所要時間を短縮することができる。
【００７２】
また、本開示の第二態様は、上記第一態様のレーザ加工教示装置（１）であって、前記教示処理調整部（１３０）は、前記加工ヘッド及び前記ロボットの三次元モデルデータ、前記加工経路、前記加工点の加工順序及び前記複数の加工点グループの作業順序を用いてシミュレーション動作を実行することにより、前記対象物に設定される複数の前記加工点のそれぞれについて前記所要の加工時間の加工が可能な最速の移動速度を求め、前記教示データ出力部（１４０）は、前記最速の移動速度を更に教示データとして出力する。
【００７３】
また、本開示の第三態様は、上記第一態様又は第二態様のレーザ加工教示装置（１）であって、前記グループ分け部（１２０）は、複数の前記加工点の前記位置及び前記所要の加工時間を用いて、各々の前記加工点グループにおける前記２以上の加工点の前記所要の加工時間の集中の度合いの、複数の前記加工点グループ間でのばらつきが低減されるようにグループ分けを行う。
【００７４】
また、本開示の第四態様は、上記第三態様のレーザ加工教示装置（１）であって、前記グループ分け部（１２０）は、各々の前記加工点グループにおける前記２以上の加工点の前記所要の加工時間の集中の度合いが複数の前記加工点グループ間で均一になるように前記グループ分けを行う。
【００７５】
また、本開示の第五態様は、上記第一態様から第四態様のいずれかのレーザ加工教示装置（１）であって、前記教示処理調整部（１３０）は、前記加工ヘッド及び前記ロボットの三次元モデルデータ、前記加工経路、前記加工点の加工順序及び前記複数の加工点グループの作業順序を用いてシミュレーション動作を実行し、各々の前記加工点を当該加工点の加工時間以上の間、前記レーザ光が前記ワークの一部によって遮られることなく加工することが可能になる前記加工経路上における加工可能期間を各々の前記加工点について求め、複数の前記加工点のうち前記加工経路上において前記加工可能期間が互いに重なり合う２以上の加工点がある場合に、該２以上の加工点については、前記加工経路上での該２以上の加工点の前記加工可能期間の時系列上の開始時点に依存することなく、該２以上の加工点の全てについてそれぞれの前記所要の加工時間が満たされるように前記加工経路上における前記加工順序を設定する。
【００７６】
また、本開示の第六態様は、上記第一態様から第五態様のいずれかのレーザ加工教示装置（１）であって、前記教示データを用いて前記ロボットのロボット動作プログラム及び前記加工ヘッドの加工ヘッド動作プログラムを作成する動作プログラム作成部（１４０）を更に具備する。
【００７７】
また、本開示の第七態様は、上記第六態様のレーザ加工教示装置（１）であって、前記ロボットの移動が移動しつつ前記加工ヘッドが複数の前記加工点の全てを加工する場合の前記加工ヘッドに固定された座標系から見た前記レーザ光の動作軌跡を求めるレーザ光動作軌跡取得部（１７２）と、前記ロボット動作プログラムの実行時間と前記加工ヘッド動作プログラムの実行時間との間に実行時間差を設定してシミュレーション動作させて、前記レーザ光動作軌跡取得部により前記レーザ光の動作軌跡を求めたとき、前記レーザ光の動作軌跡が前記加工ヘッドの走査範囲内である前記実行時間差の最大値を求める実行時間差最大値取得部（１７０）と、を更に具備し、前記動作プログラム作成部は、前記ロボット動作プログラムと前記加工ヘッド動作プログラムとの間に前記最大値の実行時間差が生じるように前記ロボット動作プログラム及び前記加工ヘッド動作プログラムを作成する。
【００７８】
また、本開示の第八態様は、レーザ光を対象物に走査式に照射する加工ヘッド（５０）と該加工ヘッドを移動させるロボット（１０）とを含むレーザ加工システム（１００）の、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示方法において、対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付けることと、前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分けることと、前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定することと、前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整を行うことと、前記教示処理調整の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力することと、を含む教示方法である。
【００７９】
また、本開示の第九態様は、レーザ光を対象物に走査式に照射する加工ヘッド（５０）と該加工ヘッドを移動させるロボット（１０）とを含むレーザ加工システム（１００）の、該加工ヘッドの加工動作と該ロボットの移動動作とを教示するための教示方法をコンピュータに実行させるためのプログラムであって、対象物に設定される複数の加工点の位置と個々の加工点に設定される所要の加工時間との入力を受け付ける手順と、前記複数の加工点を、各々が２以上の加工点を含む複数の加工点グループであって、個々の該加工点グループを一定速度で移動する前記加工ヘッドが該２以上の加工点の各々を前記加工時間で順次加工できるとともに該２以上の加工点を加工しないグループ内非加工時間を最小化できる複数の加工点グループに分ける手順と、前記複数の加工点グループの各々において前記ロボットが前記加工ヘッドを一定速度で移動させる加工経路であって、該加工経路から前記２以上の加工点までの最短距離が前記加工ヘッドの走査動作範囲以下になるとともに前記２以上の加工点の加工を完了するためのグループ内移動時間が最短になる加工経路を、個々の前記加工点グループに対して決定する手順と、前記グループ分け部及び前記加工経路決定部の処理の結果として得られる個々の前記加工点グループにおける前記２以上の加工点の加工順序と複数の前記加工点グループに対する作業順序とを、１つの前記加工点グループで最後に加工される前記加工点と次の前記加工点グループで最初に加工される前記加工点との間の距離が最小化されるように調整するとともに、前記複数の加工点の全ての加工を完了するための総移動時間が最短になるように前記複数の加工点グループの分け方を最適化する教示処理調整を行うことと、前記教示処理調整の処理の結果として得られる複数の前記加工点グループのそれぞれの前記加工経路における加工実行位置を、教示データとして出力する手順とを、コンピュータのＣＰＵに実行させるためのプログラムである。
【符号の説明】
【００８０】
１    レーザ加工教示装置
１０    ロボット
２０    ロボット制御装置
３０    レーザ発振器
５０    スキャナ
１００    レーザ加工システム
１１０    データ入力部
１２０    グループ分け部
１２１    経路決定部
１３０    教示処理調整部
１３０ａ    打点順序決定部
１４０    動作プログラム作成部
１５０    ＧＵＩ処理部
１６０    シミュレーション実行部
１７０    実行時間差最大値取得部
【図１】
2020035404.tif 000003
【図２】
2020035404.tif 000004
【図３】
2020035404.tif 000005
【図４】
2020035404.tif 000006
【図５】
2020035404.tif 000007
【図６】
2020035404.tif 000008
【図７】
2020035404.tif 000009
【図８】
2020035404.tif 000010
【図９】
2020035404.tif 000011
【図１０】
2020035404.tif 000012
【図１１】
2020035404.tif 000013
【図１２】
2020035404.tif 000014
【図１３】
2020035404.tif 000015
【図１４Ａ】
2020035404.tif 000016
【図１４Ｂ】
2020035404.tif 000017
【図１５Ａ】
2020035404.tif 000018
【図１５Ｂ】
2020035404.tif 000019
【図１６】
2020035404.tif 000020
【図１７】
2020035404.tif 000021
【図１８】
2020035404.tif 000022
【図１９】
2020035404.tif 000023
【図２０】
2020035404.tif 000024
【図２１】
2020035404.tif 000025
【図２２】
2020035404.tif 000026
【図２３】
2020035404.tif 000027
【図２４】
2020035404.tif 000028
【図２５】
2020035404.tif 000029