(58)【調査した分野】(Int.Cl.,DB名)
仮想空間において前記溶接ロボットの三次元モデルと2つの前記ワークの三次元モデルとを用いて、設定された前記溶接姿勢で前記溶接線を溶接した場合における前記溶接ロボットと2つの前記ワークとの干渉を検出する干渉検出部を備え、
前記姿勢設定部が、前記干渉が検出された場合には、前記ツール座標系を前記第1軸と前記第2軸と前記第3軸との少なくとも1つの軸の軸回りに回転させて、前記干渉を解消する新たな前記溶接姿勢を設定する請求項1に記載の溶接ロボットのプログラミング装置。
前記姿勢設定部が、前記干渉が検出された場合には、前記第2軸の軸回りに前記ツールを回転させて前記干渉の解消の可否を判定し、前記干渉の解消が可能な場合には前記第2軸を軸回りに回転させた新たな前記溶接姿勢を設定し、前記干渉の解消が不可能な場合には前記第2軸に加えて前記第1軸および/または前記第3軸の軸回りにも回転させた新たな前記溶接姿勢を設定する請求項2または請求項3に記載の溶接ロボットのプログラミング装置。
仮想空間において前記溶接ロボットの三次元モデルと2つの前記ワークの三次元モデルとを用いて、設定された前記溶接姿勢で、前記溶接線の始点から終点まで前記ツールの到達の可否を判定する到達可否判定部を備え、
前記姿勢設定部が、前記到達が不可能であると判定された場合に、前記溶接線上における前記到達が不可能である部分の前記溶接姿勢を、前記到達を可能にする新たな前記溶接姿勢を設定する請求項1から請求項4のいずれかに記載の溶接ロボットのプログラミング装置。
前記姿勢設定部が、前記到達が不可能であると判定された場合には、前記溶接線上における前記到達が不可能である部分の前記溶接姿勢を前記第2軸の軸回りに前記ツールを回転させて前記到達の可否を判定し、前記到達が可能であると判定した場合には前記第2軸を軸回りに回転させた新たな前記溶接姿勢を設定し、前記到達が不可能であると判定した場合には前記第2軸に加えて前記第1軸または/および前記第3軸の軸回りにも回転させた新たな前記溶接姿勢を設定する請求項5に記載の溶接ロボットのプログラミング装置。
前記姿勢設定部が、前記ツールが前記第2軸の軸回りに回転可能な角度範囲が予め設定されている場合に、該回転可能な角度範囲内で前記第2軸の軸回りを回転させた新たな前記溶接姿勢を設定する請求項4または請求項6に記載の溶接ロボットのプログラミング装置。
前記座標系設定部が、前記溶接線上における始点と終点との中点を前記原点として設定する請求項1から請求項7のいずれかに記載の溶接ロボットのプログラミング装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された技術では、ユーザーが希望する狙い角および前進角が設定されると、自動的にツールの溶接姿勢が設定されるが、設定後の溶接姿勢に対して調整を行いたい場合がある。この場合、ユーザーは、設定後の溶接姿勢を基準としてツールの姿勢を補正することができず、狙い角および前進角を入力する前の状態を基準として、再度、調整も含んだ狙い角および前進角を一から設定する必要がある。
【0005】
本発明は上述した事情に鑑みてなされたものであって、ツールの溶接姿勢が設定された後でも、設定後の溶接姿勢を基準として、ユーザーがツールの姿勢を容易に調整可能な溶接ロボットのプログラミング装置および溶接ロボットのプログラミング方法を提供する。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明は以下の手段を提供する。
本発明の一態様は、溶接ロボットの三次元モデルと、前記溶接ロボットのツールによって溶接される2つのワークの三次元モデルとを取得するモデル取得部と、2つの前記ワークの三次元モデルに基づいて、2つの前記ワークが溶接される溶接線と、該溶接線上の原点とを指定する溶接線指定部と、操作を受け付ける受付部と、前記原点において溶接される2つの前記ワークがなす角度を、前記溶接線に直交する面に投影した角度として算出し、算出した角度を用いて前記ツールの狙い角を算出する、または、前記受付部が受け付けた操作に基づいて前記狙い角を設定する狙い角設定部と、前記受付部が受け付けた操作に基づいて前記ツールの前進角を設定する前進角設定部と、前記原点を基準とする仮座標系を構成する3つの軸として、前記溶接線に基づいて設定される第1軸と、前記第1軸に直交すると共に溶接される一方の前記ワークの面に平行な第2軸と、前記第1軸と前記第2軸とのそれぞれに直交する第3軸とを有する前記仮座標系を設定し、前記ツールに設定されているツール座標系を、前記狙い角に応じて前記仮座標系の前記第1軸回りに回転させると共に前記前進角に応じて前記仮座標系の前記第3軸回りに回転させた座標系として設定する座標系設定部と、設定された前記ツール座標系に基づいて前記ツールの溶接姿勢を設定する姿勢設定部と、設定された前記ツール座標系を基準として、前記溶接ロボットが2つの前記ワークを溶接する動作プログラムを作成するプログラム作成部とを備える溶接ロボットのプログラミング装置を提供する。
【0007】
本態様によれば、取得された溶接ロボットおよびワークの三次元モデルに基づいて、溶接線が指定される。溶接線上の原点を中心として、溶接線に平行な第1軸と、第1軸に直交すると共に2つのワークの内の一方のワークの面に平行な第2軸と、第1軸と第2軸とのそれぞれに直交する第3軸を有する仮座標系が設定される。狙い角に基づいて第1軸回りに回転した座標系を、さらに、前進角に基づいて第3軸回りに回転した座標系がツール座標系として設定される。設定されたツール座標系に基づいて、ツールの溶接姿勢が設定される。設定されたツール座標系が用いられて、溶接ロボットの動作プログラムが作成される。
【0008】
すなわち、本態様によれば、溶接線と溶接する一方のワークとを基準とする仮座標系を回転させたツール座標系が設定される。このツール座標系では、第2軸とツールの長手方向とが一致しており、設定されたツールの溶接姿勢が変更される場合に、ユーザーは、ツールの長手方向を基準としてツールの溶接姿勢を変更できるので、一度設定されたツールの溶接姿勢を調整しやすい。
【0009】
上記態様においては、仮想空間において前記溶接ロボットの三次元モデルと2つの前記ワークの三次元モデルとを用いて、設定された前記溶接姿勢で前記溶接線を溶接した場合における前記溶接ロボットと2つの前記ワークとの干渉を検出する干渉検出部を備え、前記姿勢設定部が、前記干渉が検出された場合には、前記ツール座標系を前記第1軸と前記第2軸と前記第3軸との少なくとも1つの軸の軸回りに回転させて、前記干渉を解消する新たな前記溶接姿勢を設定してもよい。
このようにすることで、2つのワークが溶接されている際に、溶接ロボットとワークとが干渉しないツールの溶接姿勢が自動的に設定されて、2つのワークが溶接される。
【0010】
上記態様においては、前記モデル取得部が、前記溶接ロボットまたは前記ワークの周辺に配置された周辺機器の三次元モデルを取得し、前記干渉検出部が、仮想空間において前記周辺機器の三次元モデルも用いて、設定された前記溶接姿勢で前記溶接線が溶接された場合における前記溶接ロボットと2つの前記ワークと前記周辺機器との前記干渉を検出してもよい。
周辺機器の三次元モデルも取得されることで、溶接ロボットとワークとの干渉だけでなく、これらと周辺機器との干渉も考慮されてツールの溶接姿勢が自動的に設定される。
【0011】
上記態様においては、前記姿勢設定部が、前記干渉が検出された場合には、前記第2軸の軸回りに前記ツールを回転させて前記干渉の解消の可否を判定し、前記干渉の解消が可能な場合には前記第2軸を軸回りに回転させた新たな前記溶接姿勢を設定し、前記干渉の解消が不可能な場合には前記第2軸に加えて前記第1軸および/または前記第3軸の軸回りにも回転させた新たな前記溶接姿勢を設定してもよい。
このようにすることで、溶接ロボットやワークとの干渉がある場合に、ツールの溶接姿勢における第2軸を優先的に回転させて干渉が回避される。これにより、干渉を回避するためのツールの溶接姿勢における狙い角および前進角の角度変化を、初めに設定された角度よりも少なくすることができる。
【0012】
上記態様においては、仮想空間において前記溶接ロボットの三次元モデルと2つの前記ワークの三次元モデルとを用いて、設定された前記溶接姿勢で、前記溶接線の始点から終点まで前記ツールの到達の可否を判定する到達可否判定部を備え、前記姿勢設定部が、前記到達が不可能であると判定された場合に、前記溶接線上における前記到達が不可能である部分の前記溶接姿勢を、前記到達を可能にする新たな前記溶接姿勢を設定してもよい。
このようにすることで、指定された溶接線上の全てが溶接されるツールの溶接姿勢が自動的に設定されて、2つのワークが溶接される。
【0013】
上記態様においては、前記姿勢設定部が、前記到達が不可能であると判定された場合には、前記溶接線上における前記到達が不可能である部分の前記溶接姿勢を前記第2軸の軸回りに前記ツールを回転させて前記到達の可否を判定し、前記到達が可能であると判定した場合には前記第2軸を軸回りに回転させた新たな前記溶接姿勢を設定し、前記到達が不可能であると判定した場合には前記第2軸に加えて前記第1軸または/および前記第3軸の軸回りにも回転させた新たな前記溶接姿勢を設定してもよい。
このようにすることで、初めに設定されたツールの溶接姿勢では溶接線上で溶接できない部分がある場合に、ツールの溶接姿勢における第2軸を優先的に回転させて、溶接線上の全てが溶接される。これにより、溶接線上の全てを溶接するためのツールの溶接姿勢における狙い角および前進角の角度変化を、初めに設定された角度よりも少なくすることができる。
【0014】
上記態様においては、前記姿勢設定部が、前記ツールが前記第2軸の軸回りに回転可能な角度範囲が予め設定されている場合に、該回転可能な角度範囲内で前記第2軸の軸回りを回転させた新たな前記溶接姿勢を設定してもよい。
このようにすることで、例えば、ツールの先端付近に接続されたコード等の他部品が存在する場合に、予め設定された回転可能な角度範囲内で第2軸が回転するため、ツールと他部品との干渉等を回避できる。
【0015】
上記態様においては、前記座標系設定部が、前記第1軸として、前記溶接線に平行な軸を設定してもよい。
このようにすることで、仮座標系における第1軸が前記溶接線と同じであるため、ユーザーが第1軸を認識しやすく、ユーザーは、ツールの長手方向を基準としてツールの溶接姿勢を調整しやすい。
【0016】
上記態様においては、前記座標系設定部が、前記溶接線上における始点と終点との中点を前記原点として設定してもよい。
このようにすることで、溶接線上における始点や終点を原点としてツール座標系を設定した場合と比較して、偏りのないツールの溶接姿勢が効率的に設定される。
【0017】
また、本発明の他の態様は、溶接ロボットの三次元モデルと、前記溶接ロボットのツールによって溶接される2つのワークの三次元モデルとを取得するステップと、2つの前記ワークの三次元モデルに基づいて、2つの前記ワークが溶接される溶接線と該溶接線上の原点とを指定するステップと、操作を受け付けるステップと、前記原点において溶接される2つの前記ワークがなす角度を、前記溶接線に直交する面に投影した角度を算出し、算出した該角度を用いて前記ツールの狙い角を算出する、または、受け付けられた前記操作に基づいて前記狙い角を設定するステップと、受け付けられた前記操作に基づいて前記ツールの前進角を設定するステップと、前記原点を基準とする仮座標系を構成する3つの軸として、前記溶接線に基づいて設定される第1軸と、前記第1軸に直交すると共に溶接される一方の前記ワークの面に平行な第2軸と、前記第1軸と前記第2軸とのそれぞれに直交する第3軸とを有する前記仮座標系を設定し、前記ツールに設定されているツール座標系を、前記狙い角に応じて前記仮座標系の前記第1軸回りに回転させると共に前記前進角に応じて前記仮座標系の前記第3軸回りに回転させた座標系として設定するステップと、設定された前記ツール座標系に基づいて前記ツールの溶接姿勢を設定するステップと、設定された前記ツール座標系を基準として、前記溶接ロボットが2つの前記ワークを溶接する動作プログラムを作成するステップとを備える溶接ロボットのプログラミング方法を提供する。
【発明の効果】
【0018】
本発明によれば、ツールの溶接姿勢が設定された後でも、ツール座標系を用いることで、設定後の溶接姿勢を基準として、ユーザーがツールの姿勢を容易に調整できる。
【発明を実施するための形態】
【0020】
本発明の実施形態に係る溶接ロボット5の制御装置(プログラミング装置)2について、図面を参照しながら以下に説明する。
図1は、本実施形態に係る溶接ロボット5の制御装置2を含む溶接システム1を示す概略図である。溶接システム1は、複数の関節軸を有する垂直多関節型ロボットである溶接ロボット5と、溶接ロボット5の動作を制御する制御装置2とを備えている。また、
図1には、溶接ロボット5によって溶接される2つのワークWK1,WK2が示されている。
【0021】
溶接ロボット5は、床面に固定され、溶接ロボット5の先端には、ワークを溶接するためのツール51が取り付けられている。ツール51は、円柱形状の溶接トーチを有している。溶接ロボット5が有する複数の関節軸のそれぞれは、回転駆動するための図示しないモータと、モータの回転角度を検出する図示しないエンコーダとを備えている。
【0022】
制御装置2は、溶接ロボット5の各軸のエンコーダから検出されるモータの回転角度を用いて、モータを回転駆動させるフィードバック制御を行っている。制御装置2は、図示しないCPUと、ROMと、RAMと、メモリとで構成されている。
【0023】
図2には、溶接システム1のブロック図が示されている。制御装置2は、各種画像を表示するモニター21と、ユーザーの操作を受け付ける受付部22と、ツール51の三次元モデルやワークWK1,WK2の三次元モデルを取得するモデル取得部23と、2つのワークWK1,WK2が溶接される溶接線を指定する溶接線指定部24と、指定された溶接線と2つのワークWK1,WK2のなす角度とに基づいて仮座標系を設定する座標系設定部25と、受け付けた入力および/または予め設定された計算方法に基づいてツール51の狙い角および前進角を設定する角度設定部(狙い角設定部、前進角設定部)26と、角度設定部26の設定に基づいて溶接時のツール51の溶接姿勢を設定する姿勢設定部27と、三次元モデルを用いてツール51とワークWK1,WK2等との溶接時の干渉の有無を検出する干渉検出部28と、三次元モデルを用いて指定された溶接線上の全てを溶接の到達可否を検出する到達可否判定部29と、設定された内容に基づいて溶接ロボット5を制御するためのプログラムを作成するためのプログラム作成部31と、設定された仮座標系やツール51の溶接姿勢などを記憶する記憶部32とを備えている。
【0024】
モデル取得部23は、溶接ロボット5、ワークWK1,WK2、および溶接ロボット5やワークWK1,WK2の周辺に配置された周辺機器の三次元モデルとしてのCADデータを取得する。モデル取得部23は、取得したCADデータを用いて、仮想空間上に、ワークWK1,WK2を溶接する際の溶接ロボット5等の三次元モデルを配置するようになっている。なお、本実施形態では、三次元モデルが配置された仮想空間は、モニター21に表示される。
【0025】
図3に示すように、本実施形態では、水平方向に配置された平板状のワークWK1に、ワークWK1に直交するように配置された平板状のワークWK2が溶接される。溶接線指定部24は、仮想空間上に配置されたワークWK1とワークWK2とが接する部分を溶接する溶接線WLとして指定する。また、
図4に示すように、溶接線指定部24は、溶接線WLの始点SPと終点EPとの中間である中点MPを原点O1として指定する。
【0026】
座標系設定部25は、指定された原点O1を基準とする仮座標系を設定するようになっている。座標系設定部25は、仮想空間上において指定された溶接線WLに基づいて、ワークWK1の面上に定義される第1溶接線WL1と、ワークWK2の面上に定義される第2溶接線WL2とを抽出する。なお、溶接線WLと、第1溶接線WL1と、第2溶接線WL2とは、実質的には同じ直線であるが、
図4では、便宜上、これらの線が重ならないように、溶接線WLが実線で示され、第1溶接線WL1および第2溶接線WL2が破線で示されている。座標系設定部25は、原点O1を通り、ワークWK1の面上における第1溶接線WL1に直交すると共にワークWK1の面に平行な第1法線NL1と、ワークWK2の面上における第2溶接線WL2に直交すると共にワークWK2の面に平行な第2法線NL2とを設定する。
【0027】
座標系設定部25は、一方のワークWK1を選択し、選択したワークWK1における第1溶接線WL1と第1法線NL1とを軸とする仮座標系を設定する。なお、他の実施形態では、ワークWK1ではなく、ワークWK2が選択されてもよい。
【0028】
図5に示すように、座標系設定部25は、仮座標系CS1を構成する3軸として、第1溶接線WL1に平行で溶接時のツール51の進行方向(矢印TDの方向)を正とするY軸(第1軸)と、第1法線NL1に平行で鉛直上方を正とするZ軸(第2軸)と、Y軸とZ軸とのそれぞれに直交するX軸(第3軸)とを定義するようになっている。X軸では、原点O1からワークWK1を厚さ方向に貫く方向が正方向として定義されている。
【0029】
図6には、溶接ロボット5のツール51に予め設定されたツール座標系CS2が示されている。ツール座標系CS2では、ツール51の先端を原点O2とし、ツール51の長手方向をZ軸として定義されている。
【0030】
姿勢設定部27は、ツール座標系CS2の原点O2を仮座標系CS1の原点O1に一致させ、かつ、ツール座標系のX,Y,Z軸をそれぞれ仮座標系のX,Y,Z軸に一致するように、ツール51の溶接姿勢を設定するようになっている。
【0031】
図7に示すように、角度設定部26は、原点O1において溶接線WLを挟むワークWK1とワークWK2とがなす角度として、第1法線NL1と第2法線NL2とがなす角度α0を算出するようになっている。本実施形態では、角度設定部26は、溶接時のツール51の狙い角α1として、算出した第1法線NL1と第2法線NL2とがなす角度α0の半分の角度を設定する。
図8に示すように、角度設定部26は、受付部22により受け付けられたユーザー入力に基づいて、溶接時のツール51の前進角β1を設定する。
【0032】
姿勢設定部27は、設定された狙い角α1が達成されるように、ツール座標系CS2を仮座標系CS1のY軸回りに回転させる。また、姿勢設定部27は、設定された前進角β1が達成されるように、ツール座標系CS2を仮座標系CS1のX軸回りに回転させる。これにより、溶接ロボット5の溶接姿勢におけるツール座標系CS2の姿勢が決定されるので、決定されたツール座標系CS2を達成するための溶接ロボット5の各軸の角度が算出される。
【0033】
プログラム作成部31は、算出された溶接ロボット5の各軸の角度を用いて溶接ロボット5の教示点を生成することにより溶接プログラムを生成するようになっている。
【0034】
以下では、ツール51等の三次元モデルが取得されてから溶接ロボット5の溶接プログラムを生成できるようになるまでの具体的な処理の一例について、
図9に示す溶接ロボット5のプログラミング方法のフローチャートに沿って説明する。溶接ロボット5のプログラミング方法では、初めに、モデル取得部23が、溶接ロボット5の三次元モデルと、ワークWK1,WK2の三次元モデルとのCADデータを取得する(ステップS11)。モデル取得部23は、取得した三次元モデルを用いて、溶接ロボット5とワークWK1,WK2とを仮想空間上に配置する(ステップS12)。
【0035】
溶接線指定部24は、仮想空間上に配置されたワークWK1とワークWK2とが接する部分を溶接線WLとして指定する(ステップS13)。溶接線指定部24は、指定した溶接線WL上における中点MPを仮座標系CS1の原点O1として設定する(ステップS14)。座標系設定部25は、指定された溶接線WLに基づいて、ワークWK1上における第1溶接線WL1と、ワークWK2上における第2溶接線WL2とを抽出する(ステップS15)。座標系設定部25は、第1溶接線WL1と第2溶接線WL2とを用いて、第1法線NL1と第2法線NL2とを設定する(ステップS16)。
【0036】
座標系設定部25は、原点O1を基点とする仮座標系CS1を設定する(ステップS17)。座標系設定部25は、ワークWK1を選択し、原点O1を通ると共に選択したワークWK1上における第1溶接線WL1に平行で溶接時のツール51の進行方向を正とするY軸を設定する。座標系設定部25は、原点O1を通ると共に第1溶接線WL1に直交する第1法線NL1に平行で上方向を正とするZ軸を設定する。座標系設定部25は、原点O1を通ると共にY軸およびZ軸のそれぞれに直交するX軸を設定する。座標系設定部25は、これらのX軸とY軸とZ軸とを3軸とする仮座標系CS1を設定する。
【0037】
姿勢設定部27は、設定された仮座標系CS1に、ツール51に設定されているツール座標系CS2を一致させるように、ツール51の三次元モデルを仮想空間上に配置する(ステップS18)。
【0038】
角度設定部26は、第1法線NL1と第2法線NL2とがなす角度α0を算出し、算出した角度を二等分したツール51の狙い角α1を設定する(ステップS19)。角度設定部26は、受付部22が受け付けた操作に基づき、ツール51の前進角β1を設定する(ステップS20)。
【0039】
座標系設定部25は、
図10に示すように、仮座標系CS1と同じ座標系として設定されたツール座標系CS2を、設定された狙い角α1および前進角β1を用いて、仮座標系CS1のX軸およびY軸の軸回りに回転させて、
図11に示すようなツール座標系CS2を設定する(ステップS21)。座標系設定部25は、仮座標系CS1のY軸回りに設定された狙い角α1だけツール座標系CS2を回転させる。座標系設定部25は、回転させたツール座標系CS2を、仮座標系CS1のX軸回りに前進角β1だけさらに回転させる。座標系設定部25は、回転させた座標系に一致するツール座標系CS2を設定する。
【0040】
姿勢設定部27は、設定されたツール座標系CS2のZ軸とツール51の長手方向とが一致するツール51の姿勢を、溶接時のツール51の溶接姿勢として設定する(ステップS22)。
【0041】
プログラム作成部31は、設定されたツール51の長手方向にZ軸が一致するツール座標系CS2において、算出された溶接ロボット5の各軸の角度を用いて溶接ロボット5の教示点を生成することにより溶接プログラムを生成する(ステップS23)。そして、溶接ロボット5のプログラミング方法が終了する。
【0042】
このように構成された本実施形態に係る溶接ロボット5の制御装置2によれば、指定されたワークWK1とワークWK2との溶接線WLに平行なY軸と、Y軸に直交すると共にワークWK1に平行なZ軸と、Y軸とZ軸とのそれぞれに直交するX軸とを3軸とする仮座標系CS1が設定され、仮座標系CS1と同じツール座標系CS2が設定される。設定された狙い角と前進角とに基づいて、仮座標系CS1と一致するように設定されたツール座標系CS2がX軸およびY軸の軸回りに回転し、回転後の座標系がツール座標系CS2として設定される。設定されたツール座標系CS2は、ツール51の溶接姿勢が変化しても、ツール51の長手方向がZ軸に一致するように変化する。このツール座標系CS2を基準として、ワークWK1とワークWK2とを溶接する動作プログラムが生成される。
【0043】
したがって、本実施形態の制御装置2によれば、溶接線WLを基準として狙い角α1および前進角β1に基づいてツール座標系CS2が設定されている。そのため、ツール51の溶接姿勢が変更される場合に、溶接ロボット5を使用するユーザーは、ツール座標系CS2のZ軸に一致しているツール51の長手方向を基準としてツール51の溶接姿勢を変更できる。これにより、狙い角α1や前進角β1が一度設定されてツール51の溶接姿勢が設定された後に、ユーザーが、ツール51の姿勢を変更したい場合でも、この時点でのツール51の溶接姿勢を基準としてツール51の姿勢を変更できるため、ツール51の溶接姿勢を調整しやすい。
【0044】
図12には、溶接ロボット5のプログラミング方法(
図9)で設定されたツール51の溶接姿勢を再設定する場合の溶接姿勢再設定処理のフローチャートが示されている。溶接姿勢再設定処理では、設定されたツール51の溶接姿勢で溶接線WLが溶接された場合に、ツール51と周辺機器等との干渉と、溶接線WL上の全てへのツール51の到達可否とが検討された上で、ツール51の溶接姿勢が再設定される。
【0045】
溶接姿勢再設定処理では、初めに、モデル取得部23が、既に取得されたツール51およびワークWK1,WK2の三次元モデルのCADデータに加えて、ツール51の周辺に配置された周辺機器の三次元モデルのCADデータを取得する(ステップS31)。モデル取得部23は、ツール51と、ワークWK1,WK2と、周辺機器との三次元モデルを仮想空間上に配置する(ステップS32)。
【0046】
干渉検出部28は、仮想空間上において、姿勢設定部27により設定されたツール51の溶接姿勢で溶接線WLが溶接された場合に、周辺機器やワークWK1,WK2とツール51との干渉を検出する干渉検出処理を行う(ステップS33)。干渉検出処理では、設定されたツール51の溶接姿勢で溶接線WLの始点SPから終点EPまで溶接された場合に、ツール51とワークWK1,WK2や周辺機器との干渉が検出される。
【0047】
図13に示す干渉検出処理では、初めに、干渉検出部28が、仮想空間上において、溶接線WLに沿ってワークWK1とワークWK2とが溶接された場合に、ツール51とワークWK1,WK2や周辺機器との干渉を検出する(ステップS331)。干渉検出部28は、仮想空間上において、設定されたツール51の溶接姿勢で、溶接線WL上でツール51を動かすことで、干渉を検出する。
【0048】
ツール51と周辺機器等との干渉が検出されなかった場合には(ステップS332:NO)、姿勢設定部27が、既に設定されているツール51の溶接姿勢を変更せず、干渉検出処理ではツール51の溶接姿勢に変更がなかったものとして記憶部32に記憶する(ステップS339)。そして、干渉検出処理が終了する。
【0049】
ステップS332の処理において、
図14に示すように、仮想空間上において、ツール51と周辺機器PEとの干渉が検出された場合には(ステップS332:YES)、姿勢設定部27は、ツール51をZ軸回りに回転させて(ステップS333)、干渉を解消できるか否かを判定する(ステップS334)。姿勢設定部27は、ツール51と周辺機器PEとが干渉しないツール51の溶接姿勢を設定するために、予め設定された回転可能な角度範囲でZ軸回りにツール51を回転させる。本実施形態では、ステップS333において、姿勢設定部27は、Z軸回りに、予め設定された微小角度ずつツール51を回転させていき、ツール51と周辺機器PEとが干渉しない角度を算出する。
【0050】
Z軸回りにツール51を回転させることでツール51と周辺機器PEとの干渉が解消できると判定された場合には(ステップS334:YES)、姿勢設定部27は、干渉解消後のツール51の姿勢を新たなツール51の溶接姿勢として記憶部32に記憶する(ステップS338)。そして、干渉検出処理が終了する。
【0051】
ステップS334の処理において、Z軸回りにツール51を回転させてもツール51と周辺機器PEとの干渉が解消できないと判定された場合には(ステップS334:NO)、姿勢設定部27は、Z軸に加えて、X軸および/またはY軸の軸回りにツール51を回転させて(ステップS335)、ツール51と周辺機器PEとの干渉を解消できるか否かを判定する(ステップS336)。X軸および/またはY軸の軸回りに回転させる方法は、ステップS333におけるZ軸の軸回りに回転させる方法と同じである。
【0052】
図15に示すように、Z軸に加えてX軸および/またはY軸の軸回りにツール51が回転して、ツール51と周辺機器PEとの干渉が解消できると判定された場合には(ステップS336:YES)、姿勢設定部27は、この場合のツール51の姿勢を新たなツール51の溶接姿勢として記憶部32に記憶する(ステップS338)。そして、干渉検出処理が終了する。
【0053】
Z軸に加えてX軸および/またはY軸の軸回りにツール51が回転しても、ツール51と周辺機器PEとの干渉が解消できないと判定された場合には(ステップS336:NO)、姿勢設定部27は、干渉を解消できるツール51の溶接姿勢はないと記憶部32に記憶する(ステップS337)。そして、干渉検出処理が終了する。
【0054】
干渉検出処理(
図13)が終了すると、姿勢設定部27は、干渉検出処理後に記憶部32に記憶されたツール51の溶接姿勢について判定する(
図12のステップS34)。ツール51の溶接姿勢がないと記憶部32に記憶されている場合には(ステップS34:姿勢なし)、設定された溶接線WLを溶接することが不可能であり、ワークWK1,WK2の配置について再設定が必要であることがモニター21に表示される(ステップS41)。そして、溶接ロボットのプログラミング方法が終了する。
【0055】
ステップS34の処理において、記憶部32に記憶されたツール51の溶接姿勢が干渉検出処理前と異なる新たな姿勢であると判定された場合には(ステップS34:変更あり)、後述の到達可否判定処理が実行される(ステップS36)。
【0056】
ステップS34の処理において、記憶部32に記憶されたツール51の溶接姿勢が干渉検出処理前後で変更のない姿勢であると判定された場合には(ステップS34:変更なし)、姿勢設定部27は、この時点で、後述の到達可否判定処理が既に行われているか判定する(ステップS35)。到達可否判定処理が既に行われていると判定された場合には(ステップS35:YES)、後述の溶接姿勢の再設定が行われる(ステップS38)。
【0057】
ステップS35の処理において、到達可否判定処理がまだ行われていないと判定された場合には(ステップS35:NO)、到達可否判定部29が、仮想空間上において、記憶部32に記憶されたツール51の溶接姿勢で溶接線WL上の全てにツール51の到達できるか否かの到達可否判定処理を行う(ステップS36)。
【0058】
図16に示す到達可否判定処理では、初めに、到達可否判定部29が、干渉検出処理後に記憶部32に記憶されたツール51の溶接姿勢で溶接線WLの始点SPから終点EPまでツール51が到達できるか否かを判定する(ステップS361)。記憶部32に記憶されたツール51の溶接姿勢で溶接線WL上の全てにツール51が到達できると判定された場合には(ステップS362:YES)、姿勢設定部27が、ツール51の溶接姿勢を変更せずに、溶接線WL上の全てに到達できるツール51の溶接姿勢として記憶部32に記憶する(ステップS369)。そして、到達可否判定処理が終了する。
【0059】
ステップS362の処理において、設定されたツール51の溶接姿勢で溶接線WL上の全てにはツール51が到達できないと判定された場合には(ステップS362:NO)、姿勢設定部27は、ツール51をZ軸回りに回転させて(ステップS363)、溶接線WL上の全てにツール51が到達できるか否かを判定する(ステップS364)。姿勢設定部27は、溶接線WL上の全てにツール51が到達できる溶接姿勢を設定するために、予め設定された回転可能な角度範囲でZ軸回りにツール51を回転させる。なお、姿勢設定部27は、干渉検出処理と同様の方法により、予め設定された微小角度ずつツール51をZ軸回りに回転させていき、溶接線WL上の全てにツール51が到達できる溶接姿勢を算出する。
【0060】
Z軸回りにツール51を回転させることで溶接線WL上の全てにツール51が到達できると判定された場合には(ステップS364:YES)、姿勢設定部27は、到達可能後のツール51の姿勢を新たなツール51の溶接姿勢として記憶部32に記憶する(ステップS368)。そして、到達可否判定処理が終了する。
【0061】
ステップS364の処理において、Z軸回りにツール51を回転させても溶接線WL上の全てにはツール51が到達できないと判定された場合には(ステップS364:NO)、姿勢設定部27は、Z軸に加えて、X軸および/またはY軸の軸回りにツール51を回転させて(ステップS365)、溶接線WL上の全てにツール51が到達できるか否かを判定する(ステップS366)。X軸および/またはY軸の軸回りに回転させる方法は、ステップS363におけるZ軸回りに回転させる方法と同じである。
【0062】
Z軸に加えてX軸および/またはY軸の軸回りにツール51が回転して、溶接線WL上の全てにツール51が到達できると判定された場合には(ステップS366:YES)、姿勢設定部27は、この場合のツール51の姿勢を新たなツール51の溶接姿勢として記憶部32に記憶する(ステップS368)。そして、干渉検出処理が終了する。
【0063】
Z軸に加えてX軸および/またはY軸の軸回りにツール51が回転しても、溶接線WL上の全てにツール51が到達できないと判定された場合には(ステップS366:NO)、姿勢設定部27は、溶接線WL上の全てにツール51が到達できる溶接姿勢がないと記憶部32に記憶する(ステップS367)。そして、到達可否判定処理が終了する。
【0064】
到達可否判定処理(
図16)が終了すると、姿勢設定部27は、到達可否判定処理後に記憶部32に記憶されたツール51の溶接姿勢について判定する(
図12のステップS37)。ツール51の溶接姿勢がないと記憶部32に記憶されている場合には(ステップS37:姿勢なし)、ステップS41の処理が実行された後、姿勢再設定処理が終了する。
【0065】
ステップS37の処理において、記憶部32に記憶されたツール51の溶接姿勢が到達可否判定処理前と異なる新たな姿勢であると判定された場合には(ステップS37:変更あり)、再度、干渉検出処理が行われる(ステップS33)。干渉検出部28は、到達可否判定処理後に設定されたツール51の溶接姿勢でも、周辺機器PEなどとの干渉が発生しないかを確認するために、干渉検出処理を行う。
【0066】
ステップS37の処理において、記憶部32に記憶されたツール51の溶接姿勢が到達可否判定処理前後で変更のない姿勢であると判定された場合には(ステップS37:変更なし)、姿勢設定部27は、到達可否判定処理後に設定されたツール51の溶接姿勢を溶接時の姿勢として再設定する(ステップS38)。
【0067】
プログラム作成部31は、再設定後のツール51の長手方向にZ軸が一致したツール座標系CS2において、算出された溶接ロボット5の各軸の角度を用いて溶接ロボット5の教示点を生成することにより溶接プログラムを生成する(ステップS39)。そして、姿勢再設定処理が終了する。
このように、干渉検出処理や到達可否判定処理が行われて、ツール座標系CS2およびツール51の溶接姿勢が再設定されてもよい。
【0068】
上記実施形態の制御装置2では、干渉検出処理および到達可否判定処理において、干渉が検出されたり、溶接線WL上の一部を溶接できなかったりした場合に、予め設定された回転可能な角度範囲でツール51がZ軸回りに回転する。X軸およびY軸よりも、優先的にZ軸回りにツール51を回転させて、ツール51の溶接姿勢が変更されることで、狙い角α1および前進角β1の変化をできるだけ少なくしたツール51の溶接姿勢が再設定される。また、予め設定された回転可能な角度範囲でZ軸回りにツール51が回転するため、ツール51の基端から先端までにコードなどの他部品が存在する場合に、ツール51と他部品との巻き付き等を回避できる。なお、他の実施形態では、予め回転可能な角度範囲が設定されていなくてもよいし、Z軸を優先せずにX軸およびY軸の軸回りにツール51が回転してもよい。
【0069】
上記実施形態の制御装置2では、溶接線WL上における中点MPが仮座標系CS1の原点O1およびツール座標系CS2の原点O2として設定されたが、原点O1,O2の設定については、種々変形可能である。例えば、原点O1,O2が、始点SPに設定されてもよいし、始点SPや終点EPなどの複数の点に設定されてもよい。複数の原点が設定された場合には、原点のそれぞれでツール51の溶接姿勢が設定されて、ツール51が溶接時に溶接線WLに沿って動く場合に、ツール51の溶接姿勢が、設定された複数の原点に近づくごとに当該原点において設定された溶接姿勢に徐々に変化してもよい。
【0070】
上記実施形態の制御装置2では、溶接線WLが、直線であったが、曲線などの直線以外の線であってもよい。例えば、曲線の溶接線WL上の原点O1が設定された場合に、仮座標系CS1のY軸は、原点O1の接線に平行な線が定義されてもよい。また、溶接線WLが直線や曲線などの複合の線である場合には、直線に含まれる点が優先的に原点O1として設定されてもよい。
【0071】
上記実施形態の制御装置2では、狙い角α1が、第1法線NL1と第2法線NL2とがなす角度α0の半分の角度として設定されたが、狙い角α1の設定については種々変形可能である。例えば、狙い角α1は、受付部22が受け付けた数値に基づいて設定されてもよいし、予め設定された角度範囲(例えば、45度〜60度)から選択されてもよい。また、上記実施形態では、前進角β1が、受付部22が受け付けた操作に応じて設定されるようになっているが、例えば、予め設定された−20度から+20度の角度範囲から選択されてもよい。また、記憶部32に記憶された過去に設定された狙い角α1や前進角β1が自動的に設定されてもよい。
【0072】
上記実施形態では、干渉検出処理および到達可否判定処理において、ツール51の溶接姿勢をZ軸などの軸回りに回転させて変更する場合に、予め設定された微小角度ずつツール51を回転させて問題を解消するツール51の溶接姿勢が設定された。一方で、他の実施形態において、ツール51を軸回りに回転させる方法については、周知技術を応用でき、例えば、自動ではなくて手動の操作であってもよい。
【0073】
上記実施形態では、制御装置2が画像を表示できるモニター21を有していたが、他の実施形態では、制御装置2がモニター21を有していなくてもよい。