(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0010】
図1は一実施形態に係るレーザ加工教示装置1を含むレーザ加工システム100の全体構成を示している。レーザ加工システム100は、ロボット10のアーム先端部に取り付けられた加工ヘッドとしてのガルバノスキャナ(以下、単にスキャナと記す)50を移動させながらレーザ光を走査させワークW上の各加工点の加工を行う、いわゆる協調型のリモートレーザ加工システムとして構成されている。
図1の構成例では、レーザ加工システム100は、ロボット10と、ロボット10の制御を行うロボット制御装置20と、レーザ発振器30と、レーザ加工教示装置1とを含んでいる。ロボット10は
図1の構成例では垂直多関節ロボットであるが、他のタイプのロボットが用いられても良い。また、ガルバノスキャナ以外のレーザ走査装置が用いられても良い。スキャナ50は、レーザ発振器30から光ファイバを介して送られてくるレーザ光をミラーを駆動することによってXY方向に走査させる機能、およびレンズをZ方向に駆動してレーザスポットをZ方向に移動させる機能を有する。
【0011】
レーザ加工教示装置1は、オフランでロボット10およびスキャナ50の動作プログラムを生成することができるプログラミング装置である。
図1に示した構成例では、レーザ加工教示装置1は、ネットワークを介してロボット制御装置20と接続されており、レーザ加工教示装置1で作成されたロボット10の動作プログラムは、ネットワークを介してレーザ加工教示装置1からロボット制御装置20に転送することができる。ロボット10は、ロボット制御装置20内にロードされた動作プログラムにしたがって動作する。また、レーザ加工教示装置1は、スキャナ50の動作プログラムを生成する。ロボット制御装置20は、CPU、ROM、RAM、記憶装置等を有する一般的なコンピュータとしての構成を有していても良い。レーザ加工教示装置1で生成されたスキャナ50の動作プログラムは、動作プロウラム作詞装置1からロボット制御装置20を経由してスキャナ50の制御部に転送される。スキャナ50の制御部は、ロードされた動作プログラムにしたがって動作可能となる。スキャナ50の制御部は、CPU、ROM、RAM、記憶装置等を有する一般的なコンピュータとしての構成を有していても良い。
【0012】
レーザ加工システム100は、溶接、切断等の様々なレーザ加工を行うことができる。以下では、レーザ加工システム100が溶接を行うものとして説明を行う。以下で詳細に説明するように、レーザ加工教示装置1は、溶接対象の打点群を最適なグループに分けると共に動作速度を最適化して、打点群に対する一連の溶接動作に要する時間(以下、サイクルタムとも記す)を最小化する動作プログラムを作成する。なお、レーザ加工教示装置1は、CPU,ROM,RAM,ハードディスク、入力装置、表示装置、ネットワークインタフェース等のハードウェア構成要素を有する一般的なPCとしての構成を有していても良い。レーザ加工教示装置1としては、デスクトップ型PC,ノートブック型PC,携帯型情報端末など、各種の情報処理装置を用いることができる。
【0013】
図2は、レーザ加工教示装置1に構成される機能ブロックを表している。
図2に示される機能ブロックは、レーザ加工教示装置1のCPUがソフトウェアを実行することによって実現されても良いし、ASIC(Application Specific Integrated Circuit)等の専用のワードウェアによって実現されても良い。
図2に示されるように、レーザ加工教示装置1は、データ入力部110、グループ分け部120、教示処理調整部130、動作プログラム作成部148、グラフカルユーザインタフェース(GUI)処理部150、シミュレーション実行部160、実行時間差最大値取得部170、及びレーザ光動作軌跡取得部172を有する。
【0014】
データ入力部110は、溶接対象の打点群、各打点の溶接時間、溶接パターン、ワーク等のモデルデータを含む動作プログラム作成処理に必要な各種データを取得する。これらの各種データは、レーザ加工教示装置1内の記憶装置に予め格納されているものであっても良く、レーザ加工教示装置1に対して操作部を介して入力されるものであっても良い。或いは、各種データは、外部装置からネットワークを介してレーザ加工教示装置1に入力されるものであっても良い。
【0015】
グループ分け部120は、データ入力部110によって取得された打点群のグループ分けを行い、グループ分けの最適化およびグループ内の打点順序の最適化を行う。教示処理調整部130は、溶接対象の全打点が溶接可能でサイクルタイムが最短になるように動作速度を決定する。動作プログラム作成部140は、グループ分け部120により決定された経路と教示処理調整部130により決定された動作速度とを用いてロボット10およびスキャナ50の教示データを出力する教示データ出力部としての機能を有すると共に動作プログラムを作成する機能を有する。GUI処理部150は、動作プログラム作成処理に関する情報の表示や設定入力を行うためのグラフィカルユーザインタフェース(GUI)を生成し表示する。GUI処理部150、実行時間差最大値取得部170及びレーザ光動作軌跡取得部172の詳細については後述する。シミュレーション実行部160は、ロボット10およびスキャナ50の動作プログラムを用いてシミュレーション動作を実行する。
【0016】
図3は、レーザ加工教示装置1により実行される動作プログラム作成処理のメインフローを表している。動作プログラム作成処理は、レーザ加工教示装置1のCPUによる制御の下で実行される。ステップS1では、データ入力部110により、ロボット、ジグ、ワークWのモデルデータ、溶接対象の打点群の打点位置、および各打点の溶接時間、溶接パターンのデータが読み込まれる。
【0017】
次にステップS2では、グループ分け部110により打点グループを決定する処理が行われる。グループ分けは、以下の基準を満たすように行われる。
(1)打点グループ内を通過するロボットの経路と各打点の距離がスキャナの動作範囲(走査範囲)であること。
(2)各打点からロボットの経路に下した垂線の足の位置に経路に沿って溶接時間に相当する長さの線分を定義した場合に、この溶接時間に相当する線分の経路上での密集の度合いが均一になるように打点グループを決定する。
【0018】
図4は、ステップS2において行われる打点グループ決定処理の詳細を表すフローチャートである。以下では、一例として
図6の左側に示したような打点群G0についてグレープ分けを行うものとする。はじめに、ステップS21では、打点群G0を仮の打点グループにグループ分けする。ここで、一グループは、ロボット10が一つの動作命令で動作する間に溶接を行う複数の打点を規定する。一グループ内では、ロボット10が一つの動作命令で動作し、その間スキャナ50がスキャン動作を行うことでグループに属する各打点を溶接する。一動作命令ではロボット10は直線的に等速で動作する。ここででは一例として、打点群G0を
図6中右側に示す三つの打点グループG1〜G3に仮に分けるものとする。
【0019】
ステップS22では、各グループG1−3について、打点グループの中心を通るロボット10の経路を決定する。経路の決定は、グループ分け部120の一機能としての経路決定部121が行う。打点グループの中心を通る直線は、例えば、最小二乗法により求める。一例としてグレープG1に関して述べると、経路R1は、各打点101−105から経路R1までの距離の二乗和が最小になる直線として求められる。なお、打点位置は三次元空間上の位置であるため各打点101−105は実際には3次元空間に分布しているが、各打点位置を平均した位置を通過する平面を定義して、各打点をこの平面に投影した位置に各打点が存在するものとして上記経路の決定を行う。各打点位置の平均した位置を通過する平面は、例えば、最小二乗法を用いて或いはNewellのアルゴリズムを用いて求めることができる。ステップS22での処理により、打点グループG1、G2、G3の経路としてそれぞれ経路R1、R2、R3が決定されたものとする。なお、経路とは、レーザ光の照射位置から打点グループを定義する平面に下した垂線の足が当該平面上を移動する経路として決定されても良い。
【0020】
なお、打点グループの打点が投影される平面は、打点の分布状態(溶接面の形状)によっては水平方向に対して傾斜した平面として定義されても良い。例えば、
図7示すように、打点グループG1を定義する平面H1は、打点グルーG2を定義する平面H2に対して傾斜した平面として定義することが好ましい。このように平面を決定することで、打点グループの分布に整合した平面の設定をなすことができる。なお、
図7には、レーザ光の照射位置D1、D2に設定されるスキャナ50の動作範囲の例も図示されている。ロボット10が打点グループG2に対応する経路にある間、ロボット10はスキャナ5が平面H2を向くようにその姿勢を制御する。
【0021】
次に、ステップS23では、それぞれの打点グループについて、各打点がスキャナ50の動作範囲内にあるか否かの確認が行われる。例えば打点グループG1に関して説明すると、各打点101−105から経路R1までの距離がスキャナ50の動作範囲内であるか否かにより本ステップS23での確認を行うことができる。スキャナ50の動作範囲外である打点が見つかった場合には(S23:NG)、グループ分けをやり直す(ステップS2)。
【0022】
次にステップS24〜S26のループ処理では、打点グループ内での打点の分布と各打点の溶接時間とに基づいてグループ分けを最適化する。
図8に示したような打点グループを想定してグループ分けの最適化について説明する。
図8の例では、一つの打点グループG10内に打点131〜138が分布している。経路P10は、この打点グループG10に対してステップS22の処理により設定された経路である。上述の通り、一動作命令対応する動作ではロボットは等速で動作する。そのため、打点が密の部分140においてロボット10が全打点131−135の溶接を完了できるようにロボットの動作速度を低く設定した場合、打点が疎の部分141ではロボットが不必要に低速で動作することになる。したがって、この場合には打点グループG10を、部分140の打点グループと部分141の打点グループとに分けた方がロボットの平均的な速度を高めることができる。すなわち、一打点グループ内での打点の分布が均一となるようにグループ分けを行うことが好ましいと言える。
【0023】
ただし、打点毎に溶接時間が異なることも考量する必要がある。そこで、
図9に示すように各打点から経路上に下した垂線の足の位置を中心とする、打点の溶接時間に対応する長さの線分を経路上に設定する。この線分はロボットによる経路の移動時間における一打点の溶接時間に相当するため、以下では溶接時間と称することとする。一例として、
図9において、打点132から経路P10におろした垂線の足の位置132cを中心とした溶接時間132sが設定されている。なお、各溶接時間を
図9では便宜上太い両矢印線で表している。
【0024】
ステップS24では、経路上に占める溶接時間の密度(疎密の度合い)を算出する。この場合、溶接時間の密度は、溶接時間の集中の度合いと表現することもできる。例えば、
図10上段に示すように経路上に設定される溶接時間SG1、SG2、SG3間の間の間隔d1、d2が広い状態は溶接時間の密度が低い(疎の状態)に相当する。それとは対照的に
図10の下段で示すように、溶接時間SG10、SG11、SG12の間の間隔d11、d12が狭い状態は溶接時間に密度が高い(密の状態)に相当する。隣接する溶接時間の間の間隔が広い状態は、それらの溶接時間に対応する経路上の部分ではロボットの速度を上げることができることを表している。それに対し、隣接する溶接時間の間の間隔が狭い状態は、それらの溶接時間に対応する経路上の部分ではロボットの速度を上げることができないことを表している。したがって、ある打点グループの経路に設定される溶接時間の密度のむら(疎密状態のむら)を評価し、密度のむらが高い場合には再グループ分けをし、各打点グループの溶接時間の密度のむらを小さくすることで全体的な溶接動作の速度を向上させることができる。
【0025】
したがって、ステップS24では、ある打点グループの経路上に設定された溶接時間の間の間隔について密度のむらを表す値を算出する。一例として、溶接時間の密度のむらは、経路上の一定の長さの小区間毎の溶接時間の密度を求めて当該密度のばらつきに基づいて算出しても良い。そして、ステップS25では密度のむらが小さいほど高得点になるように評価値を計算する。
【0026】
ステップS26では、各打点グループの評価値が所定の閾値以上になっているか否かを判定する。評価値が所定の閾値未満のグループがある場合には(S26:NG)、当該グループについて評価値が高くなるように再度のグループ分けを行いステップS22からの処理を繰り返す。他方、全打点グループについて評価値が閾値以上になっている場合には、ステップS26の処理を行う。このようなループ処理により打点グループ分けの最適化を行うことができる。なお、このような最適化のループ処理では、例えば、遺伝的アルゴリズムが用いられても良い。
【0027】
次に、ステップS27では、打点グループ間の移動順序および打点グループ内での打点順序の最適化を行う。ここでは、ステップS26まででの処理により
図11の左側に示すようにグループ分け及び経路の決定がなされたものとする。
図11の左側の例では、溶接対象の打点群は3つの打点グループG201−G203にグループ分けされ、各グループに経路P201−P202が設定されている。ステップS26では、打点グループに設定された経路の移動方向、打点グループ間の移動順序が最適化される。
図11において左側に最適化前の状態を示し、右側に最適化後の状態を示す。最適化前の状態では、グループ間の順序は、グループG201→グループG203→グループG202の順となっている。また、グループG201については図中下から上に向かう打点順序、打点グループG203については図中下から上に向かう打点順序、打点グループG202については図中左から右に向かう打点順序と決定されている。最適化前の状態は、グループ間の総移動距離が長く改善の余地があることが理解できる。
【0028】
図11中右側の最適化後の状態では、グループ間の移動順序は、打点グループG201→打点グループG202→打点グループG203の順となっている。また、打点グループG201については下から上に向かう打点順序、打点グループG202については左から右に向かう打点順序、打点グループG203については上から下に向かう打点順序に決定されている。最適化後の状態ではグループ間の移動の総距離が最小となっていることが理解できる。打点グループ間の総移動距離を最小にする移動順序を決定する手法としては、いわゆる巡回セールスマン問題を解くための当分野で知られた各種手法を用いることができる。以上の処理により、
図3のメインフローにおける打点グループの決定処理(ステップS2)が完了する。
【0029】
次に、メインフローのステップS3において、打点グループ毎のロボットの動作速度が決定される。
図5は、この動作速度決定処理の詳細を表すフローチャートである。この処理は、教示処理調整部130によって実行される。はじめに、ステップS31では、各打点グループについての仮のロボット速度を設定する。仮の速度は、各打点グループの打点を問題なく溶接できると考えられる低い速度を全打点グループについて一律に設定しても良い。或いは、経験値に基づく代表的な速度を各打点グループに一律に設定しても良い。
【0030】
次にステップS32では、メインフローのステップS2において決定されたロボットの経路、およびステップS31で決定された各打点グループの動作速度を用いてロボット10の動作プログラムを生成し、ロボットの動作シミュレーションを実行する。動作シミュレーションの実行により、ロボットの補間周期毎の位置データ(以下、動作経路とも記す)を取得する。
【0031】
次に、ステップS33では、ロボットの動作シミュレーションにより得られたロボットの動作経路を用いて、ロボットの動作経路上で各打点を溶接できる範囲に対応する期間(以下、溶接可能期間と記す)を算出する。
図12のようにロボットの動作経路L1に関して、打点151の溶接できる溶接可能期間を求める場合を例として取り上げてここでの処理を説明する。まず、ロボットの動作経路L1上の位置に基づいてロボットのアーム先端に取り付けられているスキャナ50の位置(具体的には、例えば、スキャナ内の集光レンズの位置)を求め、スキャナ50の位置と打点151の位置とを結ぶレーザ光の経路を求める。このとき、
(1)レーザ光の経路がワーク、ジグと干渉しない、
(2)レーザ光の経路がスキャナの動作範囲である、
(3)打点位置でのワークの法線方向とレーザ光とがなす角度である照射角度が所定の許容範囲であること、
の条件を満たすとき、このレーザ光の経路については溶接可能であると判定する。なお、上記条件(3)を適用するのは、ワークに対するレーザ光の照射強度にむらが発生することを回避し溶接品質を維持するためである。動作経路上で連続してレーザ光の経路が溶接可能であると判定される範囲に対応する期間が、ステップS33において求める各打点についての溶接可能期間である。
図12の例では、符号L101が、溶接可能期間を表している。なお、動作経路上で複数個所に溶接可能期間が決定される場合もあり得る。なお、溶接可能期間は対象打点の溶接時間以上である必要があるので、これを満たさない範囲は破棄する。
【0032】
次に、ステップS34では、ステップS33で決定された各打点についての溶接可能期間を用いて、各打点を溶接する位置、時間を決定する。ここでは、第1の条件として、各打点の溶接時間を考慮し、各打点の溶接可能期間の開始時間の先後に依存することなく、各打点の溶接時間が確実に満たされるように溶接の時間を決定する。例えば、溶接時間が同じ1秒の二つの打点A,Bがあり、打点Aの溶接可能期間が動作開始から1秒目から4秒目、打点Bの溶接可能期間が動作開始から1.1秒目から2.1秒目である場合を想定する。この場合、先に溶接可能になるのは打点Aであるが、打点Aを1秒目から2秒目に溶接すると打点Bの溶接ができなくなる。このような場合、本ステップでは、打点Bを1.1秒目から2.1秒目に溶接し、打点Bを2.1秒目から3.1秒目に溶接する。
【0033】
また、ステップS34では、第2の条件として、打点の並び順に依存することなく動作経路とワークやジグとの位置関係により先に溶接可能となる打点があればその打点を優先して溶接する。例えば、
図13に示すように、動作経路L2に沿った打点の並びは打点161、162の順であるが、動作経路L2上から打点方向をみた場合に打点161がワークの突起部180の背後に隠れ打点162の方が先に溶接可能となるような場合には、先に動作経路上の位置202において打点161の溶接を行い、打点162の溶接はその後ろの位置203において行う。ステップS34の処理は、教示処理調整部130の一機能としての打点順序決定部130aが実行する。
【0034】
次に、ステップS35では、全打点が溶接できて且つサイクルタイムが短くなるように動作速度を調整し最適化する。例えば、全打点グループについてロボット10の動作速度を同じ値として全打点について溶接可能となるまで動作速度を下げ、次に、各打点グループ毎に動作速度を上げるというやり方が考えられる。以上の処理により、
図3のメインフローの動作速度決定処理(ステップS3)が終了する。
【0035】
次に、以上のステップS1からS3の処理によって得られた結果を用いてロボット10およびスキャナ50の動作プログラムが作成される。ロボット10の動作プログラムは、ステップS2の処理によって全打点グループに設定された経路に沿って、ステップS3で決定された動作速度でロボット10が動作するように作成される。スキャナ50の動作プログラムは、ロボット10がその動作プログラムにしたがって動作経路上を移動するときに各打点に対して設定された溶接時間の間レーザ光が当該打点に照射されるようにスキャナ50の位置および姿勢を規定する動作指令群として作成される。
【0036】
以上説明した構成によれば、最適なロボットの動作経路及び各打点を溶接するタイミングを自動的に決定することができる。
【0037】
以上説明したレーザ加工システム100では、ロボット10とスキャナ50はそれぞれ別々の制御装置によって制御される。このように、ロボット10とスキャナ5とが別々の制御装置によって制御される場合に考慮すべき課題について説明する。
【0038】
ロボット10の動作プログラムとスキャナ50の動作プログラムは、開始信号によって同時に起動されるため、それぞれ生成時に想定されたサイクルタイム通りに動作することが求められる。
【0039】
しかしながら、ロボットやスキャナを別々の制御装置で動作させた場合、一般には、両方共がプログラム作成時に想定されたサイクルタイム通りには動作しない。これはロボットとスキャナとの間のメカ的な条件の相違に起因する。このような同期ずれが生じると、スキャナ50がある打点を溶接している間、ロボットがプログラム作成時に想定した通りの位置にいないため、打点位置がスキャナの動作範囲外となってしまう、あるいはレーザ光がジグやワークと干渉してしまうことがある。これは、スキャナ50の動作プログラムが、溶接を行うタイミングにおいて、ロボット10の動作プログラムによってロボット10が移動した位置に基づいて求められるスキャナ50の位置から打点に向けて溶接するように作成されているためである。
【0040】
このような同期ずれによる不具合の例を
図14A−14Bを参照して説明する。
図14Aはロボット10の動作プログラムおよびスキャナ50の動作プログラムの双方が同期して(想定したサイクルタイム通りに)動作する状況を表している。
図14Aでは、範囲R111は溶接期間L110の開始時点P110でのスキャナ50の動作範囲を示し、範囲R112は溶接期間L110の終了時点P111でのスキャナ50の動作範囲を表している。したがって、動作経路L10に沿った溶接期間L110の間に打点201に対してスキャナ50の動作範囲内で適切に溶接が行われていることが理解できる。
【0041】
他方、
図14Bはスキャナ50の動作が想定したサイクルタイムよりも遅れている状況を表している。スキャナ50の動作は遅れているため、位置P210から位置P211にかけてレーザ光を打点201に向けて照射しようとする。この場合、位置P210では打点201は動作範囲R111に含まれているが、位置P211では打点201はスキャナ50の動作範囲R112の外側となる。スキャナ50が動作範囲外となると、レーザ加工システム100はアラーム停止する。
【0042】
この問題を解決するためには、一度、ロボット10の動作プログラムとスキャナ50の動作プログラムを実機上で動作させて、実行時間のずれ量を取得する必要がある。例えば、それぞれのサイクルタイムが10秒になるように作成したロボット10の動作プログラムとスキャナ50の動作プログラムが、実機上で動作させた結果、ロボット10の動作プログラムは10秒で動作しスキャナ50の動作プログラムは11秒で動作したものとする。この場合には、ずれ量の1秒を補正するように、ロボット10の動作プログラムは11秒で動作し、スキャナ50の動作プログラムは元の10秒で動作するように作成する。これにより、ロボット10とスキャナ50は同じサイクルタイム11秒で動作するようになる。
【0043】
このようにロボット10とスキャナ50の動作プログラムの実行時間のずれ量を取得するためには、動作プログラムを実機上で動作させる必要がる。しかしながら、
図14A−14Bを参照して説明したように動作途中でスキャナ50の動作範囲外となりレーザ加工システム100がアラーム停止してしまうと動作プログラムを最後まで実行することができず、実行時間のずれ量を取得することができない。この場合には、仮の実行時間のずれ量を想定し当該ずれ量を補正するようにロボット10およびスキャナ50の動作プログラムを作成することになるが、想定するずれ量が適切でないと何度もずれ量を修正しつつ実機上での動作を繰り返えさなければならなくなる。
【0044】
そのため、適切なずれ量を以下のように求める。
図15Aは、スキャナ5からみたレーザ光のXY方向における動作軌跡を求めたグラフであって、ロボット10およびスキャナ50の動作プログラム間にずれ量を設定していない場合のグラフである。動作軌跡は、レーザ光動作軌跡取得部172によって実行される。このようなグラフは、ロボット10の動作プログラムを実行させた場合のある時間におけるロボットの位置と、その時間におけるスキャナ50の溶接している打点の位置から算出することができる。ここでは、XY方向それぞれにおける−150mmから+150mmの範囲がスキャナ50の動作範囲であるものとする。
図15Aに示す通り、同期ずれがない状態では、スキャナ50の動作軌跡は、スキャナ50の動作範囲に入っている。
【0045】
ずれ量を想定した場合の、スキャナ50の動作軌跡も算出することができる。例えば10秒で動作するよう生成されたスキャナ50の動作プログラムが、実際には11秒で動作すると想定した場合、n秒目のロボットの位置に対して、n×10/11秒目のスキャナ50の位置を算出し、当該スキャナ50の位置から溶接対象の打点にレーザ光を照射するものとして動作軌跡を算出する。想定したずれ量を大きくしながら、スキャナ50の動作軌跡を算出してグラフ化しスキャナの動作範囲内に入っているか確認することで、スキャナ50の動作軌跡が動作範囲外にならない最大の実行時間のずれ量を算出することができる。
図15Bは、ずれ量を大きくしていった結果として、スキャナ50の動作軌跡が動作範囲を超えた場合のグラフを示している。
【0046】
実機上での実際の実行時間のずれ量が大きい場合には、動作プログラム補正するために使用するずれ量も大きくすることが好ましいが、動作プログラムの補正に使用するずれ量が大きくし過ぎると実際には実機上でのずれ量が生じない場合にまでスキャナ50の動作範囲外となる事態が生じかねない。そこで、上記にて求めた最大の実行時間のずれ量を設定して、当該ずれ量を補正するように動作プログラムを再生成する。これにより、実機上で動作プログラムを最後まで実行して、正確な動作時間のずれ量を測定する事が可能になる。上記最大の実行時間のずれ量と、これを補正するように再作成した動作プログラムを実機上で動作させて測定されたずれ量との合計を補正するように動作プログラムを再び作成する。これにより、同期して動作するロボット10およびスキャナ50の動作プログラムを得ることができる。
【0047】
図16は、上述の説明内容のうち、動作プログラムを実機上で動作させて実行時間のずれ量を測定する処理をフローチャートとして表したものである。はじめに、
図3の動作プログラム作成処理によりロボット10およびスキャナ50の動作プログラムを作成する(ステップS61)。次に、ロボット10およびスキャナ50の動作プログラムを実機上で動作させる(ステップS62).このとき、ロボット10とスキャナ50の実行時間のずれ量を測定する(ステップS63)。ずれ量は、例えば、ロボット10およびスキャナ50の動作を映像として記録することによって測定しても良い。ずれ量が取得されたら、当該ずれ量を補正するようにロボット10およびスキャナ50の動作プログラムを再作成する(ステップS64)。
【0048】
図17は、上述の最大の実行時間のずれ量を求める処理をフローチャートとして表現したものである。
図17の処理は、レーザ加工教示装置1の実行時間差最大値取得部170によって実行される。はじめに、
図3の動作プログラム作成処理によりロボット10およびスキャナ50の動作プログラムを作成する(ステップS71)。次に、仮のロボット10とスキャナ50の実行時間のずれ量を決定し(ステップS72)、このずれ量におけるスキャナ50の動作軌跡の求め、この動作軌跡がスキャナの動作範囲に入るかいなかが判定される(ステップS73)。スキャナ50の動作軌跡が動作範囲内である場合、ステップS72からの処理を繰り返す。ステップS72は、最初は実行時間のずれ量を小さい値に決定しロープ処理を繰り返す度にずれ量を徐々に大きくするように決定する。スキャナ50の同席積が動作範囲外となった時点で処理はステップS74ni進み、スキャナ50の動作軌跡が動作範囲にあるときの最大の実行時間のずれ量を算出する。なお、ステップS73での判定は、
図15Aで示したようなグラフ上の各点が動作範囲に入るかを実行時間差最大値取得部170が自動的判定することで実行することができる。このように適正な補正量が得られたら、この補正量を補正するようにロボット10およびスキャナ50の動作プログラムを作成し、
図16の動作のステップS72からの処理を実行することで、補正が修正されたロボット10およびスヤナ50の動作プログラムを得ることができる。
【0049】
次に、
図3から
図5に示した処理実行する上でレーザ加工教示装置1の表示部の画面に表示されるグラフィックユーザインタフェース(GUI)について説明する。
図18は、GUI処理部150によってレーザ加工教示装置1の表示装置に表示されるGUI300を表している。GUI300は、動作プログラム作成処理の結果に関する情報を表示すると共に、動作プログラム作成処理に対して操作者が各種条件を指定することを可能にする。
【0050】
図18に示されるように、GUI300は、溶接対象の打点群を指定する打点群指定フィールド301、打点群指定フィールド301に指定された打点群のリストを表示する打点リストボックス302、設定の種別を指定する4つのタブ311−314、スライダー321、カラーバー322、プレビューボタン323、動作プログラムの作成を指示するプログラム生成ボタン324を含んでいる。
図18の例では、タブ311が選択され、GUI300の右側には、タブ311に関する調整メニューが表示されている。
【0051】
GUI300では、打点群指定フィード301に指定された打点群は、28個の打点(T1〜T28)を含んでいる。打点リストボックス302は、指定打点群に対して
図3−5に示した動作プログラム作成処理を実行して決定された打点順序で打点が画面上から順番に表示されている。また、打点リストボックス302は、各打点について打点番号、溶接パターン、溶接時間、溶接開始時刻、溶接終了時刻、レーザ光の照射角度、経路と打点の距離とをそれぞれ表示するフールド331−337を含んでいる。溶接パターン(フィールド332)は、一つの打点を溶接する場合にレーザ光の照射パターンを示す。レーザ光の照射角度は、打点の方線方向とレーザ光との間の角度を表す。溶接開始時刻、溶接終了時刻、レーザ光の照射角度、経路と打点の距離(フィールド333−337)の情報は、GUI30上で指定されている打点群に対してプログラム生成ボタン324を押下して
図3−5で示した動作プログラム作成処理を実行した結果として取得され表示される情報である。一例として、打点群中で最初に溶接される打点(“T1”)は、溶接時間が350.00ms、溶接開始時刻が56.00ms、溶接終了時刻が424.00ms、レーザ光の照射角度が5.02度、経路と打点の距離が22.17mmである。
【0052】
また、打点リスト上では、打点のグループ分けを認識し易くするために、同じくグループの打点のフィールドは同一色で表示し且つ少なくとも隣接する打点グループは背景色が異なるように表示される。
図18の打点リストの例では、指定打点群は5つの打点グループG401−G405にグループ分けされている。
【0053】
図19にカラーバー322の一例を拡大して示したものである。
図19に示されるように、カラーバー322は、指定打点群について動作プログラム作成処理を行うことによって得られた結果を用いて、指定打点群についての溶接動作における溶接中(レーザ光照射中)と非溶接中(レーザ光を非照射中)の状態を区別できるように2つの異なる色で時系列に表したバーグラフである。カラーバー322の図中左端部322aは、ロボット10の動作プログラムの開始時刻に対応し、カラーバー322の図中右端部322bはロボット10の動作プログラムの終了時刻に対応している。カラーバー322中で第1色322cで表された部分は溶接中を表し、カラーバー322中で第2色322dで表された部分は非溶接中を表している。
【0054】
カラーバー322において第1色322cで表された部分が多いほど、ロボット10の動作中に溶接している時間が多いこと、すなわち溶接動作の効率が良いことを表す。他方、カラーバー322において第2色322dで表された部分が多いほど、ロボット10の動作中に溶接している時間が少なくなること、すなわち、溶接動作の効率が低いことを表す。したがって、操作者は、カラーバー322により現在の動作プログラムにおける溶接動作の効率を視覚的に瞬時に把握することができる。溶接動作の効率が低いと考えられる場合には、各種条件を変更して動作プログラムを再作成することができる。
【0055】
スライダー321は、動作プログラムを用いてロボット、スキャナ等の3Dモデルをシミュレーション動作実行させた場合における時刻を指定するために用いられる。シミュレーション実行部160は、シミュレーション動作の結果を用いて、スライダー321で指定された時刻におけるロボット10、スキャナ50の姿勢をとるようにこれらの3Dモデルを画面上に表示する。またこのとき、スキャナ50から打点に至るレーザ光の経路が溶接中は第1色で非溶接中は第2色で表示される。スライダー321の画面横方向の位置とカラーバー322の横軸上の位置が対応しているため、操作者は、カラーバー322上で非溶接の期間(第2色の部分)を探し、スライダー321を探した位置にスライドさせることでその位置におけるロボット10やスキャナ50の状態を画面上で直感的に確認することができる。
図20は、このような表示画面の例を示している。
図20の表示画面例には、ロボット10、スキャナ50の3Dモデルが表示されると共にレーザ光LAの経路が第2色で表示されている。
【0056】
このようにカラーバー322による表示とスラーダーを用いたロボット等の状態の表示を組み合わせて行うことで、操作者が溶接動作における無駄な時間を発見することが可能となり、溶接動作の効率をさらに向上させることができる。
【0057】
プレビューボタン323を押下すると、動作プログラムのシミュレーション結果にしたがってロボット10、スキャナ50、ワークW等のモデル、およびレーザ光の照射のアニメーション表示がなされる。
【0058】
GUI300の画面右側には、現在指定されているタブ311によって提供される各種調整メニューが表示されている。タブ311による調整メニューは、動作プログラム全般に関する調整内容を含む。フィールド411−414は、スキャナ50の動作プログラムに関するものである。フィールド411は生成するスキャナ50の動作プログラムのIDを指定するフィールド、フィールド412は動作プログラム名を表示するフィールド、フィールド413は動作プログラムの溶接時間が表示されるフィールド、フィールド414は
図14A−17を参照して説明したロボットの動作プログラムとスキャナ50の動作プログラムの補正量を指定するフィールドである。
【0059】
また、タブ311の調整メニューは、打点リストボックス302上で選択した複数の打点について同じ平面に属するように指示するボタン421、打点リストボックス302上でユーザが選択した複数の打点を同じ動作経路に含めるように指示するボタン422を含む。また、タブ311の調整メニューは、打点リストボックス上で選択している打点を溶接する動作命令の動作速度を指定するフィールド425、動作命令の開始マージン(助走距離9)を指定するフィールド426、動作命令の終了マージンを指定するフィールド427を含む。動作命令の開始直後はロボット10は加速運動をするため加速運動中に溶接が行われると溶接が不安定になるおそれがあるところ、開始マージンを確保することでロボット10が所期通り等速運動をするときに溶接が行われるようにすることができる。同様に、動作命令の終了時にはロボット10は減速運動をするため減速動作中に溶接が行われると溶接が不安定になるおそれがあるところ、終了マージンを確保することで所期の通りロボットが等速運動をしているときに溶接が行われるようにすることができる。プログラム生成ボタン324を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【0060】
図21はタブ312が選択された状態のGUI300を示している。タブ312は、溶接位置に関する各種の調整メニューを含んでいる。タブ312の調整メニューは、打点リストボックス302上で選択されている打点の位置が表示されるボックス481、当該打点について位置の変更を指示入力可能な位置調整ボックス482を含んでいる。さらに、タブ312の調整メニューは、現在選択されている打点(“T1”)についてのレーザ照射角度を表すグラフ485を含んでいる。グラフ485は、横軸に時間(単位:ms)、縦軸に照射角度(単位:度)を有し、当該打点にレーザ光の照射を開始してレーザ光の照射終了するまで(溶接時間中の)レーザ光の照射角度の変化を表している。当該打点についてレーザ光の照射を開始した時点での照射角度は比較的大きく、レーザ光の照射時間が終了した時点(350ms経過後)の照射角度は比較的小さい。プログラム生成ボタン324を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【0061】
図22は、タブ313が選択された状態のGUI300を示している。タブ313は、要設定に関する調整メニューを含んでいる。タブ313の調整メニューは、選択中の打点(“T1”)についの、溶接パターンを指定するフィールド501、当該打点を溶接する場合のスキャナ50の動作範囲を指定するフィールド502、および当該打点にレーザ光を照射する場合の照射角度の許与範囲を指定するフィールド503を含んでいる。また、タブ313の調整メニュー画面は、選択中の打点の溶接パターンをグラフィカルに表示する溶接パターン表示ボックス505を含んでいる。パターン表示ボックス505に表示されている溶接パターンを操作することで、操作者は溶接パターンを変更することができる。プログラム生成ボタン324を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【0062】
溶接パターン表示ボックス505は、溶接パターンの形態を指定するラジオボタンである形状ボタン515、パワーボタン516を含んでいる。
図22に示す表示例では、溶接パターンの表示形態として形状を指定する形状ボタン515が指定されている。
【0063】
図23は、溶接パターンの表示形態としてパワーを指定するパワーボタン516が指定されている場合の表示例を示している。
図22に示されるように、この場合には、パターン表示ボックス505に、選択中の打点の溶接パターンを表すグラフ520が表示されている。グラフ520において横軸は時間(単位:ms)を、縦軸はレーザ出力(単位:W)を表している。現在のグラフ520は、溶接期間中は10Wの一定のレーザ出力で溶接が行われることを示している。操作者は、溶接パターンを変更することができる。この場合、操作者は、レーザ出力の変化点の時刻をフィールド532に入力し、当該時刻でのレーザ出力をフィールド533に入力し、エーザ出力の追加を指示するボタン531を操作する。操作者は、このような操作を繰り返し行うことで所望のレーザ出力パターンを得ることができる。
【0064】
図24は、タブ314が選択された状態のGUI300を示している。タブ314の設定メニューは、スキャナ50のネットワークアドレスに関する設定を行うための設定ボックス530と、スキャナ50の動作設定を行うための設定ボックス531とを含んでいる。設定ボウス531は、スキャナ50の動作範囲、焦点距離、最大動作速度(XY方向)、最大速度(Z方向)、最小移動時間をそれぞれ設定するフィールドを含んでいる。プログラム生成ボタン324を操作することで、調整メニュー上で設定した各種設定値を用いて動作プログラム作成処理を再度実施させることができる。
【0065】
図25は、GUI300において画面左側に配置された解析タブ560が選択された場合の表示例を示している。解析タブ560の画面は、シミュレーション結果としてのスキャナ50の動作に関する3つのグラフ561−563を示している。グラフ561は、すきゃなXY方向の速度を表すグラフである。グラフ561において横軸は時刻を表し、立ち絵軸は速度を表している。グラフ562は、溶接動作中のスキャナ50のX,Y方向の動作(スクアナ50のレンズ位置から見たレーザ光の照射位置)をスキャナ50のローカル座標系で示したグラフである。グラフ562において、横軸はX方向の位置、縦軸はY方向の位置を表している。グラフ563は、溶接動作中のスキャナ50のZ方向の動作をスキャナ50のローカル座標系で表すグラフである。ここでスキャナ50のZ方向の動作とは、スキャナ50内のレンズを駆動する方向の動作(すなあち、焦点距離の調節)を表している。
【0066】
操作者は、スライドバー565を操作してスキャナ50の遅れ時間(補正量)を指定してグラフ更新ボタン56を操作することで、指定した遅れ時間を用いたシミュレーション結果としてのグラフに更新することができる。これにより、操作者は、どの程度の遅れ時間であればスキャナ50の動作範囲内で溶接動作が可能かを確認することができる。
【0067】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0068】
レーザ加工教示装置1上で実行される上述した各種処理を行うプログラムは、コンピュータ読み取り可能な各種記録媒体に記録することができる。
【0069】
図19−20を参照して説明したカラーバーの表示、スライダーを用いたロボットの姿勢等の画像の表示の手法は、上述の実施形態で説明したレーザ加工システムの構成に限らず、ロボットを用いてレーザ加工を行う様々なタイプのレーザ加工システムに適用することができる。
【0070】
また、本開示の課題を解決するために、以下のような各種の態様とその効果を提供することができる。なお、以下の態様の説明文における括弧内の番号は本開示の図面の参照符号に対応する。
【0071】
例えば、本開示の第一態様は、ロボット(10)を用いてレーザ光の射出位置を移動させながらワークに対するレーザ加工を行うレーザ加工システム(100)のための教示装置(1)であって、前記ロボットが加工経路に沿って移動しながら前記ワークに設定された複数の加工点の各々に対して前記レーザ光を照射して加工を行う加工期間と、各々の前記加工点の加工期間の間の非加工期間とを帯状の領域(322)に識別可能に時系列に並べて表示するグラフィカルユーザインタフェース処理部(150)を具備する、教示装置(1)である。
【0072】
上記第一態様によれば、上記構成によれば、ユーザは、現在の加工経路における加工動作の効率を視覚的に瞬時に把握することができる。
【0073】
本開示の第二態様は、上記第一態様の教示装置であって、前記帯状の領域の長手方向の両端部は、複数の前記加工点の全ての加工を完了するための前記ロボットの総移動時間の開始時点と終了時点にそれぞれ対応する。
【0074】
本開示の第三態様は、上記第一態様又は第二態様の教示装置であって、ロボットの動作プログラムを用いてシミュレーション動作を実行するシミュレーション実行部(160)を更に具備し、前記グラフィカルユーザインタフェース処理部(150)は、両端部を複数の前記加工点の全ての加工を完了するための前記ロボットの総移動時間の開始時点と終了時点にそれぞれ対応させたスライダー画像(321)であって、前記帯状の領域の長手方向と同じ方向にスライド位置を移動可能に設定され且つ前記帯状の領域の長手方向において前記帯状の領域と同じ長さを有するスライダー画像(321)を更に表示し、前記シミュレーション実行部(160)による実行結果を用いて、ユーザ操作により指定された前記スライダー画像上のスライド位置に応じた時刻の前記ロボットのモデル、前記ワークのモデル及び前記レーザ光の経路の画像を表示する。
【0075】
本開示の第四態様は、上記第一態様から第三態様のいずれかの教示装置であって、前記グラフィカルユーザインタフェース処理部(150)は、前記加工期間と前記非加工期間とを異なる表示色で表示する。