(57)【要約】【課題】複数の作業点において作業する際の経路を作成する際に、作業を行わない作業点があっても、干渉のない経路を作成することのできる作業経路作成装置を提供する。【解決手段】複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定し、複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定する。そして、選択した２つの作業点の間に他の作業点がある場合（Ｓ６４３：ＮＯ）は他の作業点に設定された作業点領域は無効とする（Ｓ６５０）。その後２つの作業点を結ぶ経路を干渉チェックする。【選択図】図４
2015040980.tif 000002
【特許請求の範囲】
【請求項１】
複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定する作業点選択部と、
少なくとも前記２つの作業点を除く前記複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定する領域設定部と、
前記選択した２つの作業点の間に他の作業点がある場合に、当該他の作業点に設定された前記作業点領域は無効とする作業点領域無効部と、
前記２つの作業点を結ぶ経路を干渉チェックする干渉チェック部と、
を有する作業経路作成装置。
【請求項２】
前記作業点は、複数の部材を接合する接合作業を行うための接合点である請求項１に記載の作業経路作成装置。
【請求項３】
前記接合点は溶接点である請求項２に記載の作業経路作成装置。
【請求項４】
前記領域設定部は、溶接点を中心として逃げ点相当の距離を半径とする領域を前記溶接点領域として設定し、
さらに、溶接点中心から、少なくとも溶接ガンの開いた部分にワークが侵入するワーク端までの距離を半径とする溶接点付近領域を設定する請求項３に記載の作業経路作成装置。
【請求項５】
前記干渉チェック部は、干渉チェックの際に溶接ガン先端部とワークとのクリアランスとして、前記溶接点付近領域内と前記溶接点付近領域外の領域とで異なるクリアランスの値を設定して干渉チェックする請求項４に記載の作業経路作成装置。
【請求項６】
前記干渉チェック部は、干渉チェックした結果、干渉ありとなった場合、その経路におけるクリアランスの値を小さくして再度干渉チェックする請求項１〜５のいずれか一つに記載の作業経路作成装置。
【請求項７】
前記干渉チェック部による干渉チェックした結果、前記選択した２つの作業点間を直線の経路として作成できない場合に、前記選択した２つの作業点間を別の経路を作成する別経路作成部をさらに有し、
前記別経路作成部は、前記別経路を作成する作業点の直下に逃げ点１を作成し、当該逃げ点１からワーク外の位置に逃げ点２を作成するものであり、さらに前記逃げ点２の位置は前記逃げ点１を中心に回転させて成立する位置を求める請求項１〜６のいずれか一つに記載の作業経路作成装置。
【請求項８】
複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定する段階と、
少なくとも前記２つの作業点を除く前記複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定する段階と、
前記選択した２つの作業点の間に他の作業点がある場合に、当該他の作業点に設定された前記作業点領域は無効とする段階と、
２つの作業点を結ぶ経路を干渉チェックする段階と、
を有する作業経路作成方法。
【請求項９】
前記作業点は、複数の部材を接合する接合作業を行うための接合点である請求項８に記載の作業経路作成方法。
【請求項１０】
前記接合点は溶接点である請求項９に記載の作業経路作成方法。
【請求項１１】
前記干渉チェックしない溶接点領域を設定する段階は、溶接点を中心として逃げ点相当の距離を半径とする領域を前記溶接点領域として設定し、
さらに、溶接点中心から、少なくとも溶接ガンの開いた部分にワークが侵入するワーク端までの距離を半径とする溶接点付近領域を設定する請求項１０に記載の作業経路作成方法。
【請求項１２】
前記干渉チェックする段階は、干渉チェックの際に溶接ガン先端部とワークとのクリアランスとして、前記溶接点付近領域内と前記溶接点付近領域外の領域とで異なるクリアランスの値を設定して干渉チェックする請求項１１に記載の作業経路作成方法。
【請求項１３】
前記干渉チェックする段階は、干渉チェックした結果、干渉ありとなった場合、その経路におけるクリアランスの値を小さくして再度干渉チェックする請求項８〜１２のいずれか一つに記載の作業経路作成方法。
【請求項１４】
前記干渉チェックする段階による干渉チェックした結果、前記選択した２つの作業点間を直線の経路として作成できない場合に、前記選択した２つの作業点間を別の経路を作成する段階をさらに有し、
別の経路を作成する段階は、前記別経路を作成する作業点の直下に逃げ点１を作成し、当該逃げ点１からワーク外の位置に逃げ点２を作成するものであり、さらに前記逃げ点２の位置は前記逃げ点１を中心に回転させて成立する位置を求める請求項８〜１３のいずれか一つに記載の作業経路作成方法。
【請求項１５】
複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定するステップと、
少なくとも前記２つの作業点を除く前記複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定するステップと、
前記選択した２つの作業点の間に他の作業点がある場合に、当該他の作業点に設定された前記作業点領域は無効とするステップと、
前記２つの作業点を結ぶ経路を干渉チェックするステップと、
をコンピューターに実行させて作業を行う経路を作成する作業経路作成プログラム。
【請求項１６】
前記作業点は、複数の部材を接合する接合作業を行うための接合点である請求項１５に記載の作業経路作成プログラム。
【請求項１７】
前記接合点は溶接点である請求項１６に記載の作業経路作成プログラム。
【請求項１８】
前記干渉チェックしない溶接点領域を設定するステップは、溶接点を中心として逃げ点相当の距離を半径とする領域を前記溶接点領域として設定し、
さらに、溶接点中心から、少なくとも溶接ガンの開いた部分にワークが侵入するワーク端までの距離を半径とする溶接点付近領域を設定する請求項１７に記載の作業経路作成プログラム。
【請求項１９】
前記干渉チェックするステップは、干渉チェックの際に溶接ガン先端部とワークとのクリアランスとして、前記溶接点付近領域内と前記溶接点付近領域外の領域とで異なるクリアランスの値を設定して干渉チェックする請求項１８に記載の作業経路作成プログラム。
【請求項２０】
前記干渉チェックするステップは、干渉チェックした結果、干渉ありとなった場合、その経路におけるクリアランスの値を小さくして再度干渉チェックする請求項１５〜１９のいずれか一つに記載の作業経路作成プログラム。
【請求項２１】
前記干渉チェックするステップによる干渉チェックした結果、前記選択した２つの作業点間を直線の経路として作成できない場合に、前記選択した２つの作業点間を別の経路を作成するステップをさらに有し、
別の経路を作成するステップは、前記別経路を作成する作業点の直下に逃げ点１を作成し、当該逃げ点１からワーク外の位置に逃げ点２を作成するものであり、さらに前記逃げ点２の位置は前記逃げ点１を中心に回転させて成立する位置を求める請求項１５〜２０のいずれか一つに記載の作業経路作成プログラム。
【請求項２２】
請求項１５〜２１のいずれか一つに記載の作業経路作成プログラムを記憶したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は作業経路作成装置、作業経路作成方法、および作業経路作成プログラムに関し、詳しくは、ロボットを用いた作業において複数の作業点において作業する際の経路をオフラインプログラミングにより作成するための作業経路作成装置、作業経路作成方法、作業経路作成プログラム、および記録媒体に関する。
【背景技術】
【０００２】
近年、ロボットの動作を教示する際に、コンピューターシミュレーションを用いて、プログラミングすることが多く行われている。これをオフラインプログラミングと称している。【０００３】
このようなオフラインプログラミングは、ロボットを用いた種々の作業に適用されている。たとえば、ロボットによる溶接においては、ロボットに溶接ガンをつけた状態で、ワーク（パネル）にある溶接点（溶接打点とも称される）を溶接するための干渉のない経路をオフラインで自動的に作成するために利用されている。【０００４】
たとえば、溶接点の周辺は、そもそも溶接ガンとワークとが接触することが当然の部分である。従来は、このような溶接点の周辺をすべて削除してから、溶接点を接続する経路の干渉チェックを行うこととしている。すなわち、溶接点の周辺は、干渉チェックを行う領域から外すのである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−６１８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、複数の溶接作業を行う経路を作成する際に、溶接点と溶接点の間に、その経路では作業を行わない溶接点（作業対象外の作業点という）があった場合、そのような作業対象外の作業点周辺も干渉チェックされないことになる。このため、従来技術で作成された経路を実際のロボットにロードした場合に、作業を行う溶接点と溶接点の間に作業対象外の作業点があると、作業対象外の作業点の形状によっては干渉してしまうことがある。【０００７】
そこで、本発明の目的は、複数の作業点において作業する際の経路をオフラインプログラミングにより作成する際に、経路中に作業を行わない作業点があっても干渉のない経路を作成することのできる作業経路作成装置を提供することである。【０００８】
また、他の目的は、複数の作業点において作業する際の経路をオフラインプログラミングにより作成する際に、経路中に作業を行わない作業点があっても干渉のない経路を作成することのできる作業経路作成方法を提供することである。【０００９】
さらに他の目的は、複数の作業点において作業する際の経路をオフラインプログラミングにより作成する際に、経路中に作業を行わない作業点があっても干渉のない経路を作成することのできる作業経路作成プログラム、およびこのプログラムを記憶した記録媒体を提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明による溶接経路作成装置は、複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定する作業点選択部を有する。この溶接経路作成装置は、少なくとも２つの作業点を除く複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定する領域設定部を有する。この溶接経路作成装置は、選択した２つの作業点の間に他の作業点がある場合に、このような他の作業点に設定された作業点領域は無効とする作業点領域無効部を有する。そしてこの溶接経路作成装置は、２つの作業点を結ぶ経路を干渉チェックする干渉チェック部を有する。【００１１】
また上記他の目的を達成するための本発明による溶接経路作成方法は、複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定する段階と、少なくとも２つの作業点を除く複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定する段階と、選択した２つの作業点の間に他の作業点がある場合に、当該他の作業点に設定された作業点領域は無効とする段階と、２つの作業点を結ぶ経路を干渉チェックする段階と、を有する。【００１２】
また上記他の目的を達成するための本発明による溶接経路作成プログラムは、複数の作業点から２つの作業点を選択して当該２つの作業点を結ぶ経路を設定するステップと、少なくとも２つの作業点を除く複数の作業点に対して干渉チェックの際に干渉チェックしない作業点領域を設定するステップと、選択した２つの作業点の間に他の作業点がある場合に、当該他の作業点に設定された作業点領域は無効とするステップと、２つの作業点を結ぶ経路を干渉チェックするステップと、をコンピューターに実行させて作業を行う経路を作成する。【００１３】
さらに上記他の目的を達成するための本発明は、上記作業経路作成プログラムを記憶したコンピューター読み取り可能な記録媒体である。
【発明の効果】
【００１４】
本発明によれば、選択した２つの作業点の間に他の作業点がある場合、そのような他の作業点に対して設定された干渉チェックを行わない領域を無効とすることにした。このため経路途中に作業をしない作業点がある場合でも、干渉チェックを適切に行うことができるようになり、作業しない作業点とその周辺部において干渉が発生するのを防止することができる。
【図面の簡単な説明】
【００１５】
【図１】作業経路作成装置を含むシステムの構成を説明するためのブロック図である。
【図２】作業経路（溶接経路）作成手順のメインフローチャートである。
【図３】２つの作業点（溶接点）間を直線的に結ぶ経路の成立性を調べるサブルーチンフローチャートである。
【図４】干渉チェックのサブルーチンフローチャートである。
【図５】直線経路を説明するための説明図である。
【図６】２つの作業点（溶接点）間の距離・角度を説明するための説明図である。
【図７】逃げ点を説明する説明図である。
【図８】逃げ点を説明する説明図である。
【図９】作業点（溶接点）領域と作業点（溶接点）付近領域を説明するためのワーク平面図である。
【図１０】直線経路ができない場合の経路作成のイメージ図である。
【図１１】引き抜き経路の作成手順を説明するフローチャートである。
【図１２】引き抜き経路の作成手順の詳細を説明するサブルーチンフローチャートである。
【図１３】引き抜き経路の作成の際の動作を説明するための説明図である。
【図１４】回避経路の作成手順を説明するフローチャートである。
【図１５】引き抜き経路と回避経路作成のイメージ図である。
【発明を実施するための形態】
【００１６】
以下、添付した図面を参照しながら、本発明の実施形態を説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。また、図面における各部材の大きさや比率は説明の都合上誇張されており、実際の大きさや比率とは異なる。
【００１７】
図１は、作業経路作成装置を含むシステムの構成を説明するためのブロック図である。
【００１８】
このシステムは、コンピューター１１とサーバー１２がネットワーク１３により接続されている。
【００１９】
コンピューター１１は、作業経路作成装置となる。このコンピューター１１は、後述する作業経路作成手順に従って作成されたプログラムを実行することにより複数の作業点を通る経路を自動作成する。したがって、このコンピューター１１は、作業点選択部、領域設定部、作業点領域無効部、干渉チェック部として機能することになる。
【００２０】
サーバー１２は、作業経路作成に必要なデータを記憶している。作業経路作成に必要なデータは、たとえばワーク関連データとして、作業を行う（作業対象の）ワークの形状、ワーク上における作業点の位置、作業点ごとの加圧方向などを記憶している。また、サーバー１２は、ロボット関連データとして、作業を行うロボットの緒元や形状（通常使用するロボットごとにオフラインプログラム用の形状や動作などのデータがある）、作業に用いる工具（たとえば溶接ガン）の形状などのデータを記憶している。なお、ワークに関連するデータは、このようなサーバー１２ではなく、ワークを設計するＣＡＤ装置などから直接取得してもよい。また、ロボット関連データは、作業経路作成装置となるコンピューター１１そのものが記憶しておいてもよい。
【００２１】
ネットワーク１３は、コンピューター１１とサーバー１２の間でデータのやり取りを行うための通信回線である。このネットワーク１３は、通常は、一般的なＬＡＮなどであるが、専用線が用いられていてもよい。
【００２２】
そして、このネットワーク１３には、ロボットを動作させるためのロボットコントローラー１４に接続されている。これによりコンピューター１１で作成された作業経路をロボットコントローラー１４にロードすることができる。もちろん、ロボットコントローラー１４が、ネットワーク１３に接続されていない場合には、作成された作業経路は、別途他の記憶媒体などに記録させてから、ロボットコントローラー１４に運ばれてロードさせることになる。
【００２３】
次に、作業経路作成手順を説明する。図２は作業経路作成手順のメインフローチャート、図３は２つの作業点間を直線的に結ぶ経路の成立性を調べるサブルーチンフローチャート、図４は干渉チェックのサブルーチンフローチャートである。
【００２４】
本作業経路作成手順における基本的な構成は、最初に２つの作業点間を直線的に結ぶ経路を作成し、その直線的な経路における干渉チェックを行い、干渉がなければ経路として決定し、干渉があり直線的に結べない場合は、他の経路を作成するという順である。
【００２５】
ここで作業点間を直線的に結ぶ経路について説明する。ここでは作業点として溶接点を例に説明する。
【００２６】
図５は直線経路を説明するための説明図である。図示するように、２つの溶接点間を直線的に結ぶ経路とは、ワーク１００上に設定されている溶接点１を溶接後、そのまま次の溶接点２に向かう直線経路のことである。ここで、溶接後とは、たとえば、工具が溶接ガンの場合、溶接ガン開放後、少しガンチップをワークから離した後のことである。
【００２７】
このような直線経路は、ロボットまたは工具の移動距離が短く、ロボットの軸動作量も少ないため、ロボットの動作時間を短くできるという特徴がある。しかし、たとえば、距離が大きく離れている場合は直線的に動作できない。そのほかにも、たとえば途中に障害物がある場合も直線的に動作できない。またロボットの軸範囲外で動けない場合も直線的に動作できない。これらのように、２つの溶接点であっても必ずしも直線的に動作することができない場合がある。このような場合には、いったん工具を引き抜いてから移動する経路を別途作成することになる（別経路の作成については後述する）。
【００２８】
図２〜４を参照して、作業経路作成手順の一例を説明する。なお、以下では、複数の部材を接合する接合作業を行う場合、特に複数の部材を溶接する溶接作業を行う場合の作業経路作成手順について説明する。溶接作業においては、ロボットは、工具として溶接ガンを把持している。作業点は、複数の部材を接合する接合作業を行うための溶接点（接合点）である。
【００２９】
この手順に先だち、コンピューター１１は、サーバー１２から必要なデータを取得し、自身の記憶装置に記憶しておく。取得するデータは、ワーク形状、作業点（溶接点）位置、作業（溶接）時の加圧方向である。これらのデータは、たとえば、３次元座標空間の座標値である。なお、コンピューター１１内の記憶装置に記憶するのではなく必要となった都度、サーバー１２から取り出すようにしてもよい。
【００３０】
図２を参照してメインフローを説明する（以下の説明において、すべてのフローにおける各ステップは「Ｓ」と省略している）。
【００３１】
まず、コンピューター１１は、ワーク上の複数の溶接点から最初の溶接点を決定する（Ｓ１）。この最初の溶接点はここで設定する経路全体の始点となる。
【００３２】
続いて、コンピューター１１は、処理対象の次の溶接点があるか否かを判断し（Ｓ２）、処理対象の次の溶接点があれば、それを選択する（Ｓ３）。このＳ１〜Ｓ３において選択する溶接点は、あらかじめ決めた順番で選択する。あらかじめ決めた順番は、たとえば設計者が経験などから、同じ方向に進むことができる複数の溶接点に対して順番を割り当てている。また、複数の溶接点の並びが交差するような場合には、ある方向へ進み次に他の方向へ進むように順番を割り当てている。なおＳ２において次の溶接点がないと判断されたなら、Ｓ９へ進むことになる。
【００３３】
Ｓ１〜Ｓ３により２つの溶接点が選択されることになる（Ｓ２において次の溶接点があると判断された場合である）。つまり最初の溶接点がＳ１により選択され、次の溶接点はＳ２およびＳ３によって選択される。そして、このメインフローの流れにより再びＳ２に入って次の溶接点がある場合は、Ｓ３で次の溶接点が選択される。これにより、次々と２つの溶接点が選択されて以降の処理が行われることになる。
【００３４】
続いて、コンピューター１１は、２つの溶接点間を直線的に結べるか否かを距離と角度により調べる（Ｓ４）。この処理は、２つの溶接点間を直線的に結べるかを２つの溶接点間の距離・角度で調べるものである。
【００３５】
図６は２つの溶接点間の距離・角度を説明するための説明図である。判断の対象となる距離・角度とは、（１）２つの溶接点の距離、（２）２つの溶接点の加圧方向の角度、（３）２つの溶接点の溶接ガン進入方向の角度である。
【００３６】
（１）２つの溶接点の距離は、２つの溶接点を直線として結ぶ距離である。この距離があまりにも長い場合、そのような２点間を移動するよりも、いったん引き抜いて移動経路を変えたり、他の溶接点と組み合わせたりする方が早く溶接できる場合がある。そこで、２点間の距離に対するしきい値を設け、そのしきい値を超える場合には、この２点を直線で結ばないものとするのである。この距離のしきい値はあらかじめ決められた値である。
【００３７】
この距離のしきい値の決め方の一例としては下記のようなものがある。溶接ガンを開いた状態でワークに沿って直線を移動させるときの速度は、ワークから溶接ガンを離して移動させる場合よりも遅い。一方、溶接ガンをワークから引き抜いて再び次の溶接点へ入れる場合は、ワークから離れているときの移動速度は速いものの、溶接ガンの引き抜きおよびワークへの進入に時間がかかる。このため、多くの場合は、ワークから離れて移動できる距離が長くなれば高速で移動させることができる距離も長くなる。したがって、このような移動動作にかかる時間を考慮して、そのままワークに沿って直線的に移動させるよりも、いったん引き抜いた方が早くなるような距離をあらかじめ求めておいて、それを距離のしきい値にするとよい。
【００３８】
（２）２つの溶接点の加圧方向の角度は、ワークであるパネル表面に対する角度である（図示α１およびα２）。２つの溶接点の加圧方向の角度α１およびα２が違う場合、溶接ガンの角度を変えなければならない。その場合、溶接ガンの角度変更に時間がかかることがある。溶接ガンの角度変更に時間がかかる状況としては、たとえばワーク近傍での動作となるため高速回転ができない場合である。またロボットアーム先端の軸だけでは角度を変更できずに、ロボットの他の軸の動作も伴う場合も時間がかかる。このような場合を想定して、２点のそれぞれの加圧方向の差が、あらかじめ設定した角度のしきい値未満の場合にはこの２点を直線で結び、しきい値以上の場合には直線で結ばないものとするのである。つまり、α１−α２＜角度のしきい値の場合に直線で結ぶこととするのである。
【００３９】
この角度のしきい値はあらかじめ決められた値であるが、最も好適には、溶接ガンの角度を変更せずに、２つの溶接点を溶接できることである（つまり、２枚のパネルを溶接する場合の加圧角度の許容値はパネルに対して垂直を０度とすれば前後４５度程度（−２２．５〜２２．５度）である。したがって、最も好適には、２点の加圧方向の角度の差が４５度を角度のしきい値とすればよいことになる。また、多少であれば溶接ガンを回転させてもさほど時間はかからないので、ガンの回転も考慮して決めてもよい。
【００４０】
しかし、たとえば加圧方向が２点で逆になる場合、すなわち溶接ガンを１８０度の回転する必要がある場合は、ワークを溶接ガンの間に挟んで回転させることは不可能である。したがって、溶接ガンの回転が不可能となる角度、すなわち、溶接ガンの回転動作によりワークと溶接ガンが接触するような角度変更を伴う場合は、直線的に結ばないこととする。したがって、角度のしきい値は、少なくともワークと溶接ガンが接触しない角度変更の範囲の角度であり、好ましくは次の溶接点へ向かう時間で角度を変えられる角度範囲であり、より好ましくは角度変更をしなくても溶接可能な角度である。
【００４１】
（３）２つの溶接点の溶接ガン進入方向の角度は、溶接ガンの進行方向に対してワークの外から溶接点へ向けて溶接ガンを進入させる角度である（図示β１およびβ２）。２つの溶接点を直線で結んで移動させる場合、この進入角度は変更しない方が都合がよい。一方、この角度が大きく異なる場合、ロボットアーム先端の軸だけでは、溶接ガンの向きを変えることができなくなるので時間がかかることになる。そこで、進入角度が大きく違う場合は、直線的に結ばないこととするのである。この進入角度についてもしきい値を設けておいて、そのしきい値未満の場合には直線的に結び、しきい値以上の場合には直線的に結ばないこととする。つまり、β１−β２＜進入角度のしきい値のとき直線的に結ぶこととするのである。
【００４２】
この進入角度のしきい値は、たとえば、溶接ガンの向きを変えるための動作時間が直線距離を移動する時間より大きくなるような角度変更となるような角度を進入角度のしきい値とする。
【００４３】
これら（１）〜（３）の溶接点間の距離、加圧方向の角度、ガン進入方向の角度などのしきい値は、いずれも例示した以外に、溶接経路設計者の経験によって導くようにしてもよい。
【００４４】
このような直線経路が成立するか否かを判断することで干渉チェックなどを実行する必要がなくなる。
【００４５】
コンピューター１１は、Ｓ４において２つの溶接点間が直線的に結べるか否かを調べた結果、直線的に結べるとなった場合（Ｓ５：ＹＥＳ）は、その直線経路の成立性を調べる（直線経路成立性チェック）（Ｓ６）。このＳ６においては、直線経路における溶接ガンとワークとの干渉チェックも行っている。この直線経路成立性チェックの詳細手順は後述する。
【００４６】
一方、コンピューター１１は、Ｓ４において２つの溶接点間が直線的に結べるか否かを調べた結果、直線的に結べないとなった場合（Ｓ５：ＮＯ）は、その選択中の２つの溶接点を直線では結べない溶接点として記憶しておき（Ｓ２０）、Ｓ２へ戻る。そしてコンピューター１１は、このステップで次の溶接点があれば（Ｓ２：ＹＥＳ）、次の溶接点を選択する（Ｓ３）。この段階で、以前Ｓ３で選択された溶接点と今回Ｓ３で選択された溶接点とが２つの溶接点ということになる。そしてコンピューター１１は以降の処理を継続する。
【００４７】
コンピューター１１は、Ｓ６による直線経路成立性チェックの結果、成立と判断した場合（Ｓ７：ＹＥＳ）、その２つの溶接点間は直線的に結べる経路として記憶する（Ｓ８）。そしてコンピューター１１は、Ｓ２へ戻り、以降の処理を継続する。
【００４８】
一方、コンピューター１１は、Ｓ６による直線経路成立性チェックの結果、成立と判断した場合（Ｓ７：ＮＯ）、その２つの溶接点を直線では結べない溶接点として記憶しておき（Ｓ２０）、Ｓ２へ戻り、以降の処理を継続する。
【００４９】
コンピューター１１は、Ｓ２において、次の溶接点がない（Ｓ２：ＮＯ）となった場合には、Ｓ２０で記憶した溶接点があるか否かを判断し、ここで記憶した溶接点がない場合（Ｓ９：ＮＯ）、すなわち、直線的に結べなかった２つの溶接点が無ければ、すべての溶接点が直線的に結ばれた経路となるので、これを最終的な溶接経路として記憶する（Ｓ１０）。そして処理は終了となる。
【００５０】
一方、Ｓ２０で記憶した経路がある場合は（Ｓ９：ＹＥＳ）、コンピューター１１は、Ｓ１０で直線的に結べなかった２つの溶接点に対して別の経路を求める（Ｓ３０）。この別経路の作成については後述する。コンピューター１１は、Ｓ３０による別経路作成後、最終的な経路を記憶して（Ｓ１０）、すべての処理を終了する。
【００５１】
次に、図３を参照して溶接点間を直線的に結ぶ経路の成立性を調べる手順を説明する。
【００５２】
この手順は、上述したメインフローのＳ６のサブルーチンであり、直線的に結ぶ経路を作成する対象となった溶接点間の成立性をチェックする手順である。
【００５３】
基本的には、直線的経路が成立するならばその経路を採用し、そうでなければ成立しないものとすることになる。
【００５４】
まず、コンピューター１１は、干渉チェックトレランスを設定する（Ｓ６１）。干渉チェックトレランスとは、干渉したと判断する基準値であり、干渉チェックの際に対象物同士がどの程度離れていればよいかを規定する距離（クリアランス）である。
【００５５】
詳細は後述するが、本手順においては、干渉チェックの手順において、はじめはクリアランスを大きくしておき、干渉していると判断された場合には、クリアランスを徐々に小さくして繰り返し干渉チェックしている（つまり対象物同士の間隔を狭くしてチェックし直している）。このため、事前に設計者によってクリアランスの値は、大きな値から順に小さな値までが設定されている（縮小割合を設定しておいてもよい）。
【００５６】
また、本実施形態では、干渉チェックする場所を複数の領域に分けて、各領域に適したクリアランスを設定している。さらにクリアランスの縮小量は、干渉チェックを行う対象物ごとに違えている。このため領域と対象物ごとにクリアランスの値と縮小した値があらかじめ設定されている（コンピューター１１に記憶させている）。そしてこのＳ６１では、クリアランスが最小値になるまで（Ｓ７３）、順にＳ６１の処理を行うごとに設定されるのである。
【００５７】
なお、本手順では、後述するように干渉ありとされた場合に、クリアランスを小さくして繰り返すことになるが、あらかじめ決められた最小クリアランスに到達したか否かにより繰り返すか否かを判断している（Ｓ７３）。したがって、繰り返しの回数は設定する必要はない。なお、これに代えて、クリアランスを所定の割合で減らすこともできる。そのような場合には、繰り返し回数を決めてその回数干渉チェックを行った後、繰り返しは終了となる（したがって、この場合、繰り返し回数をカウントする必要があるので、たとえばＳ６１を処理した回数をカウントするとよい）。
【００５８】
次に、溶接点の加圧方向と逆方向に距離を変えながら逃げ点を設定する（Ｓ６２）。これは２つの溶接点のそれぞれ対して行う。図７および図８は逃げ点を説明する説明図である。
【００５９】
図７に示すように、逃げ点は、通常、加圧方向と逆側に設定される。
【００６０】
図８（ａ）に示すように、サーボガン（溶接ガン）２００は、可動部２０１と固定部２０２からなるハンド形状をしている。可動部２０１と固定部２０２には溶接チップ２０１ａおよび２０２ａが設けられている。ここでは溶接チップ２０１ａおよび２０２ａの部分を溶接ガン先端部ともいう。その他の部分は先端部以外という。また、図示しないが、干渉チェックの際にはこの溶接ガンが取り付けられているロボットの各部も干渉チェックの対象となる。
【００６１】
このようなサーボガン（溶接ガン）２００は、溶接時加圧することでワーク１００に接触するが、次の移動のために溶接チップをワークから離す必要がある。図８（ｂ）に示すように、このワーク１００から溶接チップ２０１ａおよび２０２ａが離れた状態の時に、固定部側の位置が逃げ点である。また、ワークの溶接点表面からこの逃げ点までの距離が逃げ点距離ｎｇである。
【００６２】
逃げ点位置は、たとえば逃げ点距離ｎｇとして最初１０ｍｍなど（最も使用される距離）に設定する。そして干渉チェックにより成立しなければ、逃げ点位置を少しずつ（たとえば１ｍｍずつ）下げて（逃げ点距離ｎｇを広くして）行くことになる（Ｓ７２）。溶接点と逃げ点距離ｎｇは溶接ガンの最大開き量（ストローク）を超えることはできない。これは逃げ点位置を下げれば（逃げ点距離ｎｇを広げれば）、当然に、溶接ガンを開いた状態において可動部側の溶接チップ２０１ａとワークとの距離が短くなる。このため逃げ点距離ｎｇは溶接ガンの最大開き量（ストローク）を超えることはできず、最大開き量が逃げ点位置を設定する際の限界値になる（ただし、溶接する板厚や、最大開き時に可動部側の溶接チップ２０１ａとワークとの接触しないようにすることを考慮すると、逃げ点位置を設定する際の限界値は、最大開き量よりも幾分（たとえば１ｍｍ程度）少なく設定することになる）。
【００６３】
続いて、コンピューター１１は、最大開き量（ストローク）の違う溶接ガンを設定する（Ｓ６３）。開き量は溶接ガンの種類によって異なる。たとえば一般的な溶接ガンの場合、３４ｍｍ、６０ｍｍ、８０ｍｍ、…というような値であり、これらはあらかじめ設定しておく（コンピューター１１に記憶しておく）。最初に３４ｍｍの溶接ガンを設定し、次に６０ｍｍの溶接ガン、次に８０ｍｍの溶接ガンなどと徐々に大きな溶接ガンとなる順で設定することになる。これは最も大きな開き量の溶接ガンとなるまで（Ｓ７１）まで繰り返すことになる。
【００６４】
この溶接ガンの開き量を考慮して溶接点間の経路を作成することにより、直線的に結ぶ経路を高い確率で作成することができるようになる。
【００６５】
コンピューター１１は、Ｓ６１〜６３の後、干渉チェックを行う（Ｓ６４）。干渉チェックの手順は後述する。
【００６６】
コンピューター１１は、干渉チェックの結果、干渉がなければ（Ｓ６５：ＹＥＳ）、この経路を直線経路として成立することを一時記憶（Ｓ６６）してメインルーチンへ戻る。その後、メインルーチンではＳ７がＹＥＳとなり、以降の処理を継続することになる。
【００６７】
一方、干渉チェックの結果、干渉するとなった場合（Ｓ６５：ＮＯ）、コンピューター１１は、この時点での溶接ガンの開き量があらかじめ設定されている開き量最大の溶接ガンか否かを判断する（Ｓ７１）。溶接ガンの開き量については前述のとおりである。
【００６８】
コンピューター１１は、Ｓ７１の判断の結果、開き量が最大の溶接ガンが設定されていなければ、Ｓ６３へ戻り、現在設定されている溶接ガンよりも次に大きな開き量の溶接ガンを設定する。そして以降の処理を継続する。
【００６９】
コンピューター１１は、Ｓ７１において、最大開き量の溶接ガンであると判断した場合（Ｓ７１：ＹＥＳ）、続いて、逃げ点が前述のとおり、あらかじめ設定されている最も低い位置まで下げられているか否かを判断する（Ｓ７２）。コンピューター１１は、Ｓ７２の判断の結果、この時点で逃げ点が最も低い位置（最下）に設定されていなければ、Ｓ６２へ戻り現在設定されている逃げ点よりも低い位置となる逃げ点を設定する。そして以降の処理を継続する。
【００７０】
コンピューター１１は、Ｓ７２において、最下の逃げ点となっていると判断した場合は（Ｓ７２：ＹＥＳ）、続いて、クリアランスが前述のとおり、あらかじめ設定されている最も小さな値か否かを判断する（Ｓ７３）。コンピューター１１は、Ｓ７３の判断の結果、この時点でクリアランスが最も小さな値に設定されていなければ、Ｓ６１へ戻り現在設定されている逃げ点よりも低い位置となる逃げ点を設定する。そして以降の処理を継続する。
【００７１】
コンピューター１１は、Ｓ７３において、クリアランスが最も小さな値に設定されていると判断した場合は、その時点で、これ以上干渉を回避できる各種設定は存在しないことになるので、この直線経路は不成立であることを一時記憶する（Ｓ７４）。そして、メインルーチンへ戻る。その後、メインルーチンではＳ７がＮＯとなり、以降の処理を継続することになる。コンピューター１１は、Ｓ７３において、クリアランスが最小値ではないと判断した場合は、後述する干渉チェックにおいて干渉チェックありとされた対象物に対するクリアランスを小さくするように指示し（Ｓ７５）、Ｓ６１へ戻ることになる。Ｓ６１においてコンピューター１１は、後述する干渉チェックにおいて干渉チェックありとされた対象物に対するクリアランスを小さくするように設定することになる。その後処理を継続する。
【００７２】
次に、図４を参照して干渉チェックの手順について説明する。
【００７３】
まず、コンピューター１１は、干渉チェックする経路を領域分けする（Ｓ６４１）。ここでは直線経路上の各溶接点に着目して領域分けしている。（ａ）溶接点領域、（ｂ）溶接点付近領域、（ｃ）自由空間領域（すなわち溶接点付近領域外の領域）の３つの領域に分割している。図９は溶接点領域と溶接点付近領域を説明するためのワーク平面図である。
【００７４】
（ａ）溶接点領域は、溶接チップがワークと接するごく近傍の部分であり、ここでは逃げ点距離（ワーク表面から逃げ点までの距離）を打点中心からの半径とする円周の範囲としている。この溶接点領域は溶接ガンの溶接作業によってワークと接する部分を含んでいるため、溶接ガン先端部とワークとの干渉チェックは行わない。ただし、溶接作業中でも治具・設備とは干渉してはならない。ガン先端部と治具・設備とはできるだけ接近した位置を通した方が効率が良い。このためこの領域ではできるだけ少ないクリアランスで干渉チェックすることになる（ここで用いるクリアランスについては後述する）。
【００７５】
（ｂ）溶接点付近領域は、溶接点領域よりも外側であるが溶接点に近い部分である。ここでは、溶接点領域よりも外側で、かつ、少なくとも溶接チップ（すなわち溶接ガン先端部）の間にワークが侵入する位置までの距離を打点中心からの半径とした円周の範囲としている。言い換えると、少なくとも打点中心から溶接ガン侵入方向に引いた線上の打点中心からワーク端までの距離を半径とする円周範囲である（図８では侵入方向のワーク端までとして示している）。
【００７６】
溶接点付近領域は、このような円周範囲以上を含む領域とすればよい。しかも溶接点付近領域は、溶接チップの間にワークが侵入するぎりぎりの位置に設定する必要はない。しかし、あまり広いと後述する自由空間と変わらないものとなってしまう。そこで、本実施形態では、溶接ガン先端部を溶接点へ向かわせるために方向転換する位置または速度変化する位置であるアプローチ点まで拡大することとしている。
【００７７】
この溶接点付近領域は、溶接ガン先端部を溶接のためにワークに接近する必要があるため、ここでもできるだけ少ないクリアランス（詳細後述）にすることが好ましい。なお、ガン先端部以外は、大きめのクリアランスを確保でき、高速動作でも干渉しないようすることが好ましい。
【００７８】
（ｃ）自由空間は、上記（ａ）および（ｂ）以外の領域である（不図示）。したがって、溶接点付近領域よりも外側で、ロボットの可動範囲内の領域となる。この自由空間では、溶接ガン先端部とワークが離れるため、溶接点付近領域よりも大きなクリアランスをとって、ロボットの高速動作ができるようにする。
【００７９】
次に、コンピューター１１は、経路上に他の溶接点がないか否か調べる（Ｓ６４２）。その結果、他の溶接点がなければ（Ｓ６４３：ＹＥＳ）、そのまま次のＳ６４４へ進む。一方、経路上に他の溶接点がある場合（（図８の場合）Ｓ６４３：ＮＯ）、コンピューター１１は、検出した他の溶接点を無効にする（ないものとする）（Ｓ６５０）。その後、次のＳ６４４へ進む。これにより、他の溶接点に設定されている溶接点領域は存在しないものとなる。
【００８０】
従来の技術では、経路上に存在するが溶接動作を行わない溶接点についても、そのまま溶接点領域とされていたため干渉チェックされないこととなっていた。本実施形態ではＳ６４２の処理によって、このような溶接点であっても干渉チェックを行えるようにしている。
【００８１】
経路上に他の溶接点がないか否か調べる範囲は、直線経路を中心線とした溶接ガン先端部の到達範囲とする。これは、溶接ガン先端部の到達範囲内に他の溶接点がある場合、仮に、従来のようにその溶接点の干渉チェックを行わないとなれば、その部分に障害物があるとチェックしないことになってしまう。そこで、このような直線経路を中心線とした溶接ガン先端部の到達範囲に他の応接点がないか否を調べることで、このようなチェック漏れを回避できる。
【００８２】
次に、コンピューター１１は、干渉チェック対象物を取得する（Ｓ６４４）。干渉チェックの対象物は、ロボット、溶接ガン先端部、そして溶接ガンの先端部以外、ワーク（パネル）、その他の治具・設備である。具体的には、（ｉ）ロボットおよびガン先端部以外対ワーク、（ｉｉ）ロボットおよびガン先端部以外対治具・設備、（ｉｉｉ）溶接ガン先端部対ワーク、（ｉｖ）溶接ガン先端部対治具・設備の４通りの干渉チェックを行う。このＳ６４４においては、この（ｉ）から（ｉｖ）の順に対象物のデータを読み出すことになる（後述Ｓ６４８）。なお、ワーク対治具・設備の干渉チェックは行わないが、ロボット対溶接ガン先端部の干渉チェックは行っても良い。
【００８３】
次に、コンピューター１１は、Ｓ６１で設定された領域、対象物ごとのクリアランス値を読み込んで設定する（Ｓ６４５）。
【００８４】
ここで、干渉チェックに使用するクリアランスの詳細について説明する。クリアランスの値は、基本的に下記のような考え方により決定している（あらかじめ設定している）。
【００８５】
各領域、対象物ごとに、適切な量であってかつ少しで大きなクリアランスが確保できるように、徐々に小さな値となるようにしている。
【００８６】
まず、（ａ）溶接点領域のクリアランスは、溶接ガン先端については、ワークとの干渉チャックは行わないものの、他の対象物との干渉チェックを行う。溶接ガン先端と他の対象物（治具・設備など）とのクリアランスはワークと常に近接した位置を移動させるため、ごく小さなクリアランスとしている。たとえば、最大で逃げ点距離程度である（溶接ガンが変更された場合は当然この値も変更される）。また、この領域はワークに近接しているため移動速度も遅いので、このようなごく小さなクリアランスが確保できれば問題ない。また、この領域における溶接ガン先端以外の部分やロボット部分のクリアランスは、移動中干渉しないように大きめに取ることが好ましい。しかし、先に説明したように、この部分での動作は遅いため自由空間ほど大きく取る必要はない。たとえば、ロボットの姿勢変更や溶接ガンの移動中における振動によって接触しない値に、最小の安全量を見込んだ程度を最小値とする。一方、最大値は特に限定されないが経験的に十分な値とすればよい。
【００８７】
次に、（ｂ）溶接点付近領域は、やはりワークと近接した領域であり、溶接ガン先端（溶接チップ部分）がワークなどに接触することがあってはならない。一方で、この領域は溶接ガンの先端部分以外の部分であっても可動部と固定部の間にワークが存在する。このため、この領域における溶接ガン先端部とワークとのクリアランスも、ごく小さな値とする。たとえば、最大で逃げ点距離程度である。また、溶接ガン先端部とワーク以外の他の対象物（冶具・設備など）とのクリアランスは先端部とワークとのクリアランスよりも大きくするものの、自由空間ほど大きくする必要はない（小さめのクリアランス）。これは、移動速度が遅いため、先端部の移動時における振動も少ないので、逃げ点距離を最小値とし、最大値は、経験的に他の対象物と接触することの十分な値とすればよい。
【００８８】
また、この領域における溶接ガン先端以外の部分やロボット部分のクリアランスは、移動中干渉しないように大きめに取ることが好ましい。しかし、この部分での動作は遅いため自由空間ほど大きく取る必要はない。たとえば、ロボットの姿勢変更や溶接ガンの移動中における振動によって接触しない値に、最小の安全量を見込んだ程度を最小値とする。一方、最大値は特に限定されないが経験的に十分な値とすればよい。
【００８９】
次に、（ｃ）自由空間については、高速で溶接ガンおよびロボットの姿勢変化し、移動する。このため、すべての対象物に対して高速移動時に接触しない大きめのクリアランスを取る必要がある。これは、溶接ガンとワークの間も、溶接ガンとワーク以外の他の対象物（治具・設備など）の間も同じである。たとえば、ロボットの姿勢変化や溶接ガンを高速移動したときの振動などによって干渉しない程度の値に、安全量を見込んだ程度とする。また、経験上必要となる値としてもよい。
【００９０】
以上のような考え方から、各領域、および対象物についてのクリアランスをまとめたものを表１〜３に示した。
【００９１】
【表１】
2015040980.tif 000003
【００９２】
【表２】
2015040980.tif 000004
【００９３】
【表３】
2015040980.tif 000005
【００９４】
なお、溶接点間を直線的に結ぶ場合は途中経路が自由空間にあっても、ワークに接近しているケースが多いため、溶接点領域付近のクリアランスを使用する。溶接点からいったん引き抜く経路の場合は、溶接チップの位置によって領域を決め、使用するクリアランスを決める。
【００９５】
このようなクリアランス値を使用することにより、ガンがワークに近づき溶接を行う際は、ガンがワークに接近でき、ロボット・ガン（先端部以外）はワーク、治具・設備から規定のクリアランスを確保した経路を作成することができる。
【００９６】
図４へ戻り干渉チェック手順の説明を続ける。
【００９７】
コンピューター１１は、Ｓ６４４およびＳ６４５により干渉チェックする対象物と、それらのクリアランスを読み込んで設定したのち、干渉チェックを行う（Ｓ６４６）。
【００９８】
干渉チェックは、経路上に存在する対象物すべてについて行う。たとえばこの段階で溶接点１から溶接点２まで直線経路が設定されているとする。そして対象物として溶接ガン先端部とワークが指定されていれば、溶接点１から溶接点２まで直線経路全体におけるワークの形状に対して、溶接ガン先端部が干渉しないか否かをチェックすることになる。同様に、対象物として溶接ガン先端部とワーク以外の対象物が指定されているとする。しかも、溶接点１から溶接点２までには、ワーク以外の対象物が複数あるとした場合、それら複数の対象物と溶接ガン先端部との干渉をチェックするのである。この時クリアランスはＳ６４５で読み込んだ値である。
【００９９】
Ｓ６４６において、干渉がなければ（Ｓ６４７：ＹＥＳ）、次の対象物（上述（ｉ）から（ｉｖ）の順）があるか否かを判断する（Ｓ６４８）。ここで次の対象物がなければ（Ｓ６４８：ＹＥＳ）、干渉なしを一時記憶して（Ｓ６４９）、Ｓ６５へ戻る。その後Ｓ６５では直線経路成立となる。
【０１００】
一方、次の対象物ある場合（Ｓ６４８：ＮＯ）、Ｓ６４４へ戻り次の対象物を取得することになり、以降の処理を継続する。
【０１０１】
Ｓ６４７において、干渉ありとなった場合（Ｓ６４７：ＹＥＳ）は、この段階で干渉ありを一時記憶して（Ｓ６５２）、Ｓ６５へ戻る。その後Ｓ６５ではＮＯとなるので、その後は既に説明したように、Ｓ７１〜７３の各判断に基づいて処理が継続されることになる。特に、溶接ガンの交換や逃げ点の変更でも干渉が回避できない場合には、Ｓ６１において、クリアランスを小さな値に変更することになる。そして、さらに継続して干渉チェックを行うことになるのである。
【０１０２】
ここで、クリアランスを段階的に小さくする理由をさらに説明する。
【０１０３】
干渉チェックを行うと、あるクリアランスでは成立する経路が求まらない場合がある。特にロボットおよび溶接ガン先端部以外とワーク（パネル）・治具・設備のクリアランスは大きめにしているため、治具・設備が密集し、空間が狭い場合に大きめのクリアランスを確保できない場合が多い。そのため、ガン先端部のクリアランスを確保して、経路を求めるため、ロボット・ガン先端部以外のクリアランスを少しずつ下げて、成立する経路を見つけて行く（クリアランスの段階的に小さくあるように変化させる）。これは、すなわちロボットおよび溶接ガン先端部以外と他の対象物のクリアランスは充分確保したいがそれが確保できない場合に、経路が作成できなくなるよりも、クリアランスが少し狭くても経路を作成できる方を優先するためである。
【０１０４】
このクリアランス変化は経路を見つけるための最終手段として行うものである。したがって、既に説明した手順のとおり、溶接ガンの開き量、逃げ点の変更の後に、クリアランスの小さくする指示を入れている（Ｓ７３およびＳ７５の処理）。つまり溶接点間を直線的に結ぶ経路の作成では、ガン開き量、逃げ点の位置を変えても充分なクリアランスが確保できない場合にクリアランスを小さくしているのである。この順番にしないと最初から小さいクリアランスでチェックすることと同じになってしまう。つまり、この順にすることで、初めからきわどいクリアランスでの経路作成ではなく、より広いクリアランスとなるように経路作成ができるのである。
【０１０５】
また段階変化では大きめのクリアランスを徐々に小さくしていき、それ以外のクリアランスはそのままであるため、小さくしたクリアランスの値とそれ以外のクリアランスの値が同じになる時点がある。この場合、（ｉ）その時点をクリアランス段階変化の限界とし、これ以上クリアランスを小さくすることができないとするか、（ｉｉ）これ以降、すべてのクリアランスを同時に小さくして行き（ロボットとガン先端クリアランスの逆転現象が発生しないように）、ある限界値まで行うかなどとするとよい。どちらを採用してもよいが、最終的にはすべてが極小のクリアランスで経路を作成することになる。
【０１０６】
このようにすることにより、充分なクリアランスを確保できる経路を最優先で作成し、それで作成できない場所でも未干渉の経路を作成できる確率が大きくなる。
【０１０７】
以上の説明した手順によって溶接点間の経路を作成することにより、ロボットおよび溶接ガンと、ワーク、冶具や設備などとの間で、適切なクリアランスの距離（間隔）を設定することができ、しかも直線という溶接ガンの移動距離が短い経路を自動的に作成することができる。
【０１０８】
次に、直線経路が作成できない場合について説明する。つまり前述したＳ２０により、２つの溶接点を結べない溶接点として記憶した場合の処理である。
【０１０９】
ここではこのような直線経路が作成できない場合に、別経路を自動作成する一例を説明する。別経路作成に際しては、コンピューター１１が後述する手順を実行することで別経路作成部として機能することになる。
【０１１０】
図１０は、直線経路ができない場合の経路作成のイメージ図である。ここでは（ａ）初期状態のように溶接点１〜４があるとする。この（ａ）状態から溶接経路を作成した場合に、仮に（ｂ）に示しように、溶接点１と２、３と４が直線経路を作成でき、溶接点３と４は直線経路を作成できなかったとする。このような場合に、（ｃ）に示すように、溶接点３と４の間に直線ではない別経路を作成するのである。
【０１１１】
このためには、一端溶接ガンをワークから引き抜く必要があるので、引き抜き経路を作成することになる。引き抜き経路は、溶接ガンを確実に溶接点およびワーク（パネル）から離すことができるように、溶接点から下がり、ワーク端からその外側へ引き抜く経路が必要である。
【０１１２】
さらに、別経路として、引き抜き経路間を接続する回避経路が必要となる。すなわち、別経路は引き抜き経路と回避経路からなる。ここでは、さらに、開始側原位置〜最初の溶接点、最後の溶接点〜終了側原位置も作成する。回避経路は溶接ガンが既にワークから離れているため、干渉を回避できる経路であればよい。
【０１１３】
引き抜き経路の作成手順を説明する。図１１は引き抜き経路の作成手順を説明するフローチャートである。
【０１１４】
まず、コンピューター１１は、引き抜き経路を作成する溶接点を１つ取り出す（Ｓ２０１）。これは、Ｓ２０で記憶した２つの溶接点のうちの１つとなる。
【０１１５】
次に、コンピューター１１は、引き抜き経路を作成する（Ｓ２０２）。この処理の詳細は後述する。
【０１１６】
次に、コンピューター１１は、引き抜き経路を作成できたか否かを判断する（Ｓ２０３）。ここでコンピューター１１は、引き抜き経路を作成できたならその経路を採用する（Ｓ２０４）。採用した引き抜き経路は一時記憶しておく。
【０１１７】
次に、コンピューター１１は、次の引き抜き経路を作成する溶接点がないか検索する（Ｓ２０５）。次の溶接点がなければ（Ｓ２０６：ＹＥＳ）、終了となる。一方、次の溶接点があれば（Ｓ２０６：ＮＯ）、Ｓ２０１へ戻り、コンピューター１１は、検索により見つかった溶接点を取り出す。その後、コンピューター１１は、以降の処理を継続する。コンピューター１１は、Ｓ２０３で引き抜き経路作成不能であれば（Ｓ２０３：ＮＯ）、その旨を記録して（Ｓ２０７）、次の引き抜き経路を作成する溶接点に移る。Ｓ２０７で記録した引き抜き経路作成不能の点は、すなわち、別経路作成不能の溶接点ということになる。したがって、その旨をコンピューター１１において表示して、設計者に知らせるようにする。
【０１１８】
次に、引き抜き経路作成手順の詳細を説明する。図１２は引き抜き経路の作成手順の詳細を説明するサブルーチンフローチャートである。このフローはＳ２０２のサブルーチンである。また、図１３は引き抜き経路の作成の際の動作を説明するための説明図である。
【０１１９】
まず、コンピューター１１は、引き抜き経路の干渉チェックトレランスを設定する（Ｓ３０１）。これには直線的に結ぶ経路を作成する場合と同様に干渉チェックトレランスを設定する。したがって、２回目以降このＳ３０１へくるたびに徐々にクリアランスを小さくして行くことになる。そして、コンピューター１１は、クリアランスをこれ以上小さくできない場合は（Ｓ３０２：ＹＥＳ）、引き抜き経路作成不能（Ｓ３１２）として、処理を終了する。引き抜き経路作成不能（Ｓ３１２）になればすなわち、別経路の作成自体が不可能となるので、その旨表示してすべての処理を終わるようにしてもよい（以下Ｓ３１２へ来た場合は同様）。一方、Ｓ３０２においてさらにクリアランスを小さくできる場合には、以降の処理を継続することになる。
【０１２０】
次に、コンピューター１１は、溶接点の加圧方向と逆方向に逃げ点１を設定する（Ｓ３０３）。これも直線的に結ぶ経路を作成する場合と同様に加圧方向と逆方向のある位置に逃げ点を作成する。引き抜き経路の場合、図１３（ａ）に示すように、溶接点直下の逃げ点を「逃げ点１」とする。また２回目以降このＳ３０３へくるたびに徐々に逃げ点を下げることになる。そして、コンピューター１１は、逃げ点をこれ以上下げることができないと判断した場合は（Ｓ３０４：ＹＥＳ）、引き抜き経路作成不能（Ｓ３１２）として処理を終了する。一方、Ｓ３０４においてさらに逃げ点を下げることができる場合には、以降の処理を継続することになる。
【０１２１】
次に、コンピューター１１は、逃げ点１から至る逃げ点２を設定する（Ｓ３０５）。「逃げ点２」は、溶接ガンを溶接点から離すための逃げ点である。この時、逃げ点１〜２までの距離を設定する。この距離の初期値は溶接ガンがワークから充分離れる距離とし、初期値で成立しない場合は、２回目以降このＳ３０５へくるたびに少しずつ短くしていく。そして、コンピューター１１は、逃げ点１から２の距離をこれ以上短くできない場合は（Ｓ３０６：ＹＥＳ）、引き抜き経路作成不能（Ｓ３１２）として処理を終了する。一方、Ｓ３０６においてさらに逃げ点１から２の距離を短くできる場合には、以降の処理を継続する。
【０１２２】
次に、コンピューター１１は、逃げ点２の方向を設定し、この段階で溶接点〜逃げ点１〜逃げ点２の経路も設定する（Ｓ３０７）。逃げ点２の方向を設定するには、図１３（ｃ）に示すように、初期値はワークから垂直に離れる方向とし、初期値で成立しない場合は、逃げ点１を中心とし初期値から角度をつけていく。角度をつける方向（回転方向）は、時計回り、反時計回りのいずれでもよいが、一方に回転させて、不可能の場合には初期値に戻り版端方向に角度をつけるようにしてもよい。
【０１２３】
初期値で成立しない場合は、２回目以降このＳ３０７へくるたびに角度をつけて行くことになる。コンピューター１１は、これ以上回転できなくなれば（Ｓ３０８：ＹＥＳ）、引き抜き経路作成不能（Ｓ３１２）として処理を終了する。一方、Ｓ３０８においてさらに回転可能であれば、以降の処理を継続することになる。
【０１２４】
そして、Ｓ３０７においては、ここまでの情報から、溶接点〜逃げ点１〜逃げ点２の経路を設定する。溶接点〜逃げ点１〜溶接点２の経路は、図１３（ｄ）に示すように、溶接点〜逃げ点１の経路を設定し、次に、この溶接点〜逃げ点１の経路と直角に逃げ点１〜逃げ点２を作成する。
【０１２５】
次に、コンピューター１１は、ガン開き量（ストローク）を考慮して、経路の成立性を調べる（Ｓ３０９および３１０）。これは、直線に結ぶ経路を作成する場合と同様であり、上記までで作成した仮経路（溶接点〜逃げ点１〜逃げ点２）があらかじめ設定した各種開き量のガンにて成立するかを順次調べる。
【０１２６】
成立性のチェックは、すなわち、溶接点〜逃げ点１〜逃げ点２の経路において干渉チェックを行うことになる。
【０１２７】
すべての開き量の溶接ガンにて成立しなければ、Ｓ３０９に戻ってより開き量の大きな溶接ガンに交換し、成立性のチェックを行うことになる。溶接ガンを交換しても（最も大きな開き量のガンを付けても）、成立しなければ、Ｓ３０７へ戻り逃げ点２の方向を再設定し、成立性のチェックを行うことになる。さらに逃げ点２の方向を再設定しても成立しなければＳ３０３へ戻り、逃げ点を下げて成立性のチェックを行うことになる。さらに逃げ点を下げても成立しなければ、Ｓ３０１へ戻りクリアランスを縮小して成立性のチェックを行うことになる。
【０１２８】
以上のようにして、ガンの開き量を考慮し、様々な距離・方向で逃げ点２を設定し、経路を探索にすることにより、引き抜き経路を高い確率で作成することができる。
【０１２９】
次に、回避経路の作成手順を説明する。図１４は回避経路の作成手順を説明するフローチャートである。回避経路は、対象とする２点間（原位置〜最初の溶接点の逃げ点２、直線的に結べなかった経路の引き抜き経路の逃げ点２同士の間、最後の溶接点の逃げ点２〜終了原位置）で作成する。
【０１３０】
まず、コンピューター１１は、回避経路を作成する点を２つ取り出す（Ｓ４０１）。２つの点は、原位置、上記引き抜き経路作成で作った逃げ点２などである。つまり、原位置から回避経路であれば、最初の溶接点の逃げ点２を取り出す。上記回避経路として作った溶接点３および４の回避経路であれば、溶接点３の逃げ点２と溶接点４の逃げ点２を取り出すことになる。その他の回避経路も同様である。
【０１３１】
次に、コンピューター１１は、回避経路を作成する（Ｓ４０２）。ここでは、取得した２点間の経路の成立性もチェックするが、基本的にワークから離れている部分であるので、一般的に知られている経路設定を行えばよい。たとえば一般的に知られている経路計画（ロードマップ法など：参考書籍  Ｒｏｂｏｔ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ  著  Ｌａｔｏｍｂｅ  １９９１版など）を用いて作成することができる。もちろん、本実施形態として説明した干渉チェック方法により行ってもよい。
【０１３２】
次に、コンピューター１１は、回避経路を作成できたか否かを判断する（Ｓ４０３）。ここで回避経路を作成できたならその経路を採用する（Ｓ４０４）。コンピューター１１は、Ｓ４０３で回避経路作成不能であれば（Ｓ４０３：ＮＯ）、その旨を記録して（Ｓ４０７）、次の回避経路作成に移る。Ｓ４０７で記録した回避経路作成不能の点は、すなわち、別経路作成不能の溶接点ということになる。したがって、その旨をコンピューター１１において表示して、設計者に知らせるようにする。
【０１３３】
次に、コンピューター１１は、次の回避経路を作成する点がないか検索する（Ｓ４０５）。次の回避経路作成点がなければ（Ｓ４０６：ＹＥＳ）、終了となる。一方、次の回避経路作成点があれば（Ｓ４０６：ＮＯ）、Ｓ４０１へ戻り、検索により見つかった回避経路作成点を取り出すことになり、以降の処理を継続する。
【０１３４】
図１５は、以上説明した引き抜き経路と回避経路作成のイメージ図である。まず図１５（ａ）に示したように引き抜き経路が作成されて、続いて図１５（ｂ）に示したように回避経路が作成されることになる。
【０１３５】
なお、本実施形態では、別経路を自動作成することとしたが、これはあくまでも一例であり、直線で結ぶことができない２つの溶接点に対しては、設計者によって手動で別経路を作成するようにしても差し支えない。
【０１３６】
以上説明した実施形態による効果を説明する。
【０１３７】
（１）経路を設定する２つ溶接点の間に、溶接動作しない他の溶接点がある場合、従来であれば、あらかじめ溶接点のある部分に対しては、干渉チェックしないようにしていたが、本実施形態では、このような他の溶接点の領域を無効となるようにした。これにより経路を設定する２つ溶接点の間に、溶接動作しない他の溶接点があっても、確実に干渉チェックを行うことができる。したがって、その経路では溶接を実行しない溶接点があっても、その部分で不用意に溶接ガン先端（特に溶接チップ）がワークと接触するようなことを防止することができる。
【０１３８】
（２）溶接点を中心として逃げ点相当の距離を半径とする領域を溶接点領域として設定し、さらに、溶接点中心から、少なくとも溶接ガンの開いた部分にワークが侵入するワーク端までの距離を半径とする溶接点付近領域を設定することとした。このように溶接点に着目してワーク上およびワーク外の領域を設定することで、それぞれに適した干渉チェックを行うことができる。
【０１３９】
（３）設定した各領域に対しては、溶接点付近領域内と溶接点付近領域外（自由空間部分）で異なるクリアランスの値を設定することとした。これによりワーク内の領域においては、干渉を回避しつついもより近い位置を移動させることができ、一方、ワーク外においてはより大きなクリアランスとすることで、高速移動に適した干渉チェックを行うことができる。
【０１４０】
（４）干渉チェックした結果、干渉ありとなった場合には、その経路におけるクリアランスの値を小さくして再度干渉チェックすることとした。これにより、複雑に入り組んだワーク形状や治具・設備などの配置されている場合などでも、直線的な経路すなわち最短経路を作成することが可能となる。
【０１４１】
（５）さらに干渉チェックした結果、２つの溶接点間を直線経路として作成できない場合に、そのような２つの溶接点間は別経路を作成することとした。特に、この別経路の作成において、溶接点の直下に逃げ点１、この逃げ点１からワーク外の位置に逃げ点２を作成するものである。そして、逃げ点２の位置は逃げ点１を中心に回転させて成立する位置を求めることとした。このような別経路の作成により、直線では結ぶことのできない２点間であっても、別経路を自動作成することが可能となる。
【０１４２】
以上本発明を適用した実施形態、主に、工具が溶接ガンであり、当該工具により作業する作業点が溶接点である場合について説明した。しかし、本発明は、上記実施形態に限定されない。たとえば、ロボットにより行う作業には、溶接以外の接合も含まれる。接合には、溶接以外に、たとえば、接着、ネジ止め等が含まれる。さらに、作業には、接合以外にも、穴あけ（パンチ）、刻印、染色、マーキング、測定等も含まれる。これらの作業を実行するために、ロボットには様々な工具が取り付けられる。このような各種の工具による作業についても、上記実施形態に説明した作業経路作成装置、作業経路作成手順および作業経路作成プログラムは適用できる。
【０１４３】
また本実施形態において説明した手順を含むプログラムは、コンピューター読み取り可能な記録媒体に記憶しておいてもよい。この記録媒体からコンピューターにプログラムをインストールすることで作業経路作成装置としての機能を実施することができる。このような記録媒体としては、特に限定されないが、たとえば、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、磁気ディスクなどをあげることができる。また、コンピューターにネットワークによって接続されているサーバーなども記録媒体となる。
【０１４４】
本発明は特許請求の範囲によって解釈されるものであって、溶接の適用例である上述した実施形態に限定的に解釈されるものではない。
【０１４５】
さらに、本出願は、２０１３年９月１８日に出願された日本特許出願番号２０１３−１９３５３７号に基づいており、それらの開示内容は、参照され、全体として、組み入れられている。
【符号の説明】
【０１４６】
１〜４  作業点（溶接点）、
１１  コンピューター、
１２  サーバー、
１３  ネットワーク、
１４  ロボットコントローラー、
１００  ワーク（パネル）、
２００  サーボガン（工具：溶接ガン）、
２０１  可動部、
２０２  固定部、
２０１ａ、２０２ａ  溶接チップ。
【図１】
2015040980.tif 000006
【図２】
2015040980.tif 000007
【図３】
2015040980.tif 000008
【図４】
2015040980.tif 000009
【図５】
2015040980.tif 000010
【図６】
2015040980.tif 000011
【図７】
2015040980.tif 000012
【図８】
2015040980.tif 000013
【図９】
2015040980.tif 000014
【図１０】
2015040980.tif 000015
【図１１】
2015040980.tif 000016
【図１２】
2015040980.tif 000017
【図１３】
2015040980.tif 000018
【図１４】
2015040980.tif 000019
【図１５】
2015040980.tif 000020
【国際調査報告】
2015040980.tif 000021
2015040980.tif 000022