(57)【特許請求の範囲】
【請求項１】
ティーチングプレイバック方式の産業用ロボットのツール姿勢が１つの冗長自由度を持つ場合において、
正確なツール先端位置及びラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、
前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、
前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも１つの点を追加する位置を設定し、
前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、
前記教示点及び前記前後点の前記候補群から１つのツール姿勢を選ぶとき、前記教示点では、教示点における候補群中のロボット各軸位置と教示時ロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のロボット各軸位置と前点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを選び、
前記教示点の後点では、姿勢生成後教示点のロボット各軸位置と後点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを選ぶことを特徴とする産業用ロボットの姿勢生成方法。
【請求項２】
ティーチングプレイバック方式の産業用ロボットのツール姿勢が１つの冗長自由度を持つ場合において、
正確なツール先端位置、及び、ラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、
前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、
前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも１つの点を追加する位置を設定し、
前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、
前記教示点及び前記前後点の前記候補群から１つのツール姿勢を選ぶとき、前記教示点では、教示時ツール座標から教示点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを姿勢生成後教示点として選び、
前記教示点の前点では、姿勢生成後教示点のツール座標から前点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを選び、
前記教示点の後点では、姿勢生成後教示点のツール座標から後点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを選ぶことを特徴とする産業用ロボットの姿勢生成方法。
【請求項３】
前記関数は、前記変数の絶対値または２乗である請求項１または２記載の産業用ロボットの姿勢生成方法。
【請求項４】
前記あらかじめ決められた条件は、作業区間中の連続した２つの教示点間の補間に応じて決まる経路区間距離を求める段階と、前記距離があらかじめ設定された値以下であるか否かを判断する段階と、前記距離が前記あらかじめ設定された値以下なら前記経路内の前後点を追加しない段階を含むことを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項５】
前記あらかじめ決められた条件は、作業区間中の開始点と終了点以外の教示点である接続点の前経路に応じて決まる前接線ベクトルと後経路に応じて決まる後接線ベクトルがあらかじめ設定された範囲内で同一方向であり、かつ、前点と後点での前記規定値が同じ値ならば、前記接続点の前後点を追加しないことを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項６】
前記あらかじめ決められた条件は、前後点の位置を決定するとき、ワーク形状を設定し、このワークとツールの干渉を考慮した上で前記前後点の位置を決定することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項７】
前記あらかじめ決められた条件は、前後点の位置を決定するとき、ワーク情報を設定し、動作プログラム中の教示点と経路毎に設定可能な参照点を設定し、前記ワーク情報、前記教示点、及び、前記参照点からワーク形状を推測し、前記ワーク形状とツールの干渉を考慮した上で前記前後点の位置を決定することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項８】
前記ツール姿勢候補群を作成するとき、教示点では、ワーク形状を設定し、このワークとツールの干渉を考慮した上で前記教示点の姿勢を決定することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項９】
前記ツール姿勢候補群を作成するとき、教示点では、ワーク情報を設定し、動作プログラム中の教示点と参照点を設定し、前記ワーク情報、前記教示点、及び、前記参照点からワーク形状を推測し、前記ワーク形状とツールの干渉を考慮した上で教示点の位置を決定することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項１０】
前記ツール姿勢候補群を作成するとき、ロボットの動作範囲制限を考慮した上で候補を作成することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項１１】
前記動作プログラム内の教示点において、連続した複数点間の距離があらかじめ設定した値より小さい場合、同一点とし、前記複数点内の１つを代表点とし、前記代表点を姿勢の生成時に利用することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項１２】
前記動作プログラム内の教示点において、連続した複数点間の距離があらかじめ設定した値より小さく、かつ、姿勢の差もあらかじめ設定した範囲内より小さい場合、同一点とし、前記複数点内の１つを代表点とし、前記代表点を姿勢の生成時に利用することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項１３】
前記動作プログラム中の作業区間の一部を姿勢を生成しない区間として設定可能であり、前記姿勢を生成しない区間として設定された区間においては、姿勢を生成するとき、前記区間内の前後点を追加せず、前記区間内の教示点の姿勢も教示時の姿勢と同じにすることを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【請求項１４】
前記ツール姿勢候補群が、１つも作なかった場合、前後点なら、前後点を追加せず、教示点なら、教示時の姿勢と同じにし、かつ、候補群の作成が不可能であったことを使用者に伝達することを特徴とする請求項１ないし３のいずれかの項に記載された産業用ロボットの姿勢生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、産業用ロボットに取り付けられたツール姿勢が１つの冗長自由度を持つ場合の産業用ロボットの姿勢生成方法に関する。
【０００２】
【従来の技術】
通常のティーチングプレイバック方式の産業用ロボットにおける教示作業では、作業対象の特徴点での位置にくるように、かつ、その位置での姿勢を作業上望ましい姿勢になるように、教示ツール（通常は、プログラミングペンダント、ティーチングペンダントまたはティーチングボックスと呼ばれる。）を使って、実際にロボットを動作させ、その位置、姿勢を記憶させる命令を、教示ツールよりコントローラ本体に送る。コントローラ本体は、その記憶部で前記位置及び姿勢を記憶する。これを繰り返すことにより、動作プログラムを作成する。また、動作方向が急激に変化するような点、あるいは作業に適切なツール姿勢が変化するような点の前後には、ロボットの作業対象に対する適切なツール姿勢区間をできるだけ長くするため、通常、教示点を加えることがなされている。
【０００３】
例えば、アーク溶接において作業対象が図２のような場合に、点Ｐ0，Ｐ1，Ｐ2，Ｐ3を結ぶ直線上を溶接する場合には、前記特徴点は、点Ｐ0，Ｐ1，Ｐ2，Ｐ3となる。従来の教示方法では、まず、教示ツールを使いＰ0までロボットを動作させ、材質、溶接条件等で決まる姿勢（ねらい角：溶接トーチと進行方向を含んだワーク面とがなす角度（図３）、すすみ角：溶接トーチと進行方向ベクトルがなす角度（図３）で決まる姿勢）をとるように、教示ツールを使ってロボットを姿勢変化させる。位置と姿勢が望ましいものになったら、コントローラ内部に記憶させる。つぎに、Ｐ1を教示するが、Ｐ1では、溶接線が急に変化するので、Ｐ1の前後では、望ましい姿勢が違う。したがって、通常は、Ｐ1点の前後に、適当な距離をおいて、教示点を作成していた。この点を図２ではＰpre 1、Ｐpost1と表わしている。このようにすることで、Ｐ1での急激な姿勢変化を避けていた。Ｐ2に対しても同様な理由で、Ｐpre 2、Ｐpost2を作成していた。Ｐ3では、Ｐ0の場合と同様にして、位置と姿勢を記憶させる。このようにして、動作プログラムは、Ｐ0、Ｐpre 1、Ｐ1、Ｐpost1、Ｐpre 1、Ｐ2、Ｐpost2、Ｐ3での位置と姿勢を記憶したものとして作成される。ところが、このようなロボット教示方法では、動作位置に加えて動作姿勢も教示しなければならなく、かつ、作業対象の特徴点の前後にも教示点を作成しなければならないことがあり、これらのことが、ロボットの教示を手間のかかるものにしていた。また、これらの作業には、ロボットを動かす上で高度の熟練技術と時間を要しており姿勢を設定するときにおいても簡便で客観的方法があまりなかった。これらのことを解決する技術として、特開平８−１２３５３６号公報に開示された技術がある。
【０００４】
【発明が解決しようとする課題】
ところが、特開平８−１２３５３６号公報に開示された方法では、始点、終点、接続点及び補助点のツール姿勢を決定するとき、設定されたねらい角と前進角、教示時のツール姿勢から求まるスピン角により、ツール姿勢を一意的に決定しており、このツール姿勢を決定するとき、ロボットが実際に姿勢をとれるか否かは検討されておらず、ロボットの姿勢がとれない場合があり問題であった。ロボットの姿勢がとれない原因として、機構学上の制限による場合、トーチとロボットアームが干渉する場合、もしくは、溶接対象部材とトーチが干渉する場合などがある。また、前記公報に開示された方法では、基準面βは、複数の経路を含む編集対象区間内で、１つしか設定できず、区間毎には設定できないので、補助点が追加されなくなり問題であった。さらに、前記公報には、「この基準面βに対してトーチ１の方向（ツール座標系のＺ軸方向）を表わす直線が乗る平面γを考えたとき、平面γが基準平面βに対してなす角がねらい角θである。」と定義されており、ねらい角は、γとβの面が交差してできる線を中心とした回転角であり、実際にねらい角分ツール姿勢を回転させるときには経路軸を回転中心にしており。ねらい角の定義と回転時のねらい角方向とが違うので使用者が思った通りにねらい角を設定できないという問題があった。このように、従来法では、現実的に動作可能な動作プログラムを作ることはできなかったので、その手直しが必要となり、教示者の負担を軽減するという初期の目的を十分達成できていなかった。そこで、本発明は、作業対象の特徴点のみの教示で、動作可能な動作プログラムを作り、客観的な姿勢を生成することにより、教示者の作業負担を軽減したり、教示者間のばらつきを減らすことで安定した作業状態を得られるロボットの動作プログラムを作ることができる産業用ロボットの姿勢生成方法を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上記問題を解決するため、本発明の産業用ロボットの姿勢生成方法は、ティーチングプレイバック方式の産業用ロボットのツール姿勢が１つの冗長自由度を持つ場合において、正確なツール先端位置及びラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも１つの点を追加する位置を設定し、前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、前記教示点及び前記前後点の前記候補群から１つのツール姿勢を選ぶとき、前記教示点では、教示点における候補群中のロボット各軸位置と教示時ロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のロボット各軸位置と前点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを選び、前記教示点の後点では、姿勢生成後教示点のロボット各軸位置と後点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補１つを選ぶことを特徴とする。前記差の関数は、差の絶対値または差の２乗とすることができる。
【０００６】
本発明の他の方法は、ティーチングプレイバック方式の産業用ロボットのツール姿勢が１つの冗長自由度を持つ場合において、正確なツール先端位置、及び、ラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも１つの点を追加する位置を設定し、前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、前記教示点及び前記前後点の前記候補群から１つのツール姿勢を選ぶとき、前記教示点では、教示時ツール座標から教示点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のツール座標から前点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを選び、前記教示点の後点では、姿勢生成後教示点のツール座標から後点における候補群中のあるツール座標に回転変換するときに用いられるロール．ピッチ．ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補１つを選ぶことを特徴とする。この方法において、前記関数は、前記変数の絶対値または２乗とすることができる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。ここでは、実施例として、アーク溶接を挙げるが、本発明は、アーク溶接他、ＴＩＧ  溶接、スポット溶接、レーザ溶接、レーザ切断、シーリング、切削、研削、バリ取り、スプレーなど、ツールが冗長自由度を持つ場合には同様に適用できる。本実施例においては、図４のようなトーチを使った場合について記述する。このとき、トーチは１つの冗長自由度を持つ。つまり、溶接作業においては、図４のＴｚ軸回りの回転方向に対しては、制限がなくどのような値でもよい。（以下、Ｔｚ軸のことを冗長自由度軸と呼び、また、Ｔｘ，Ｔｙ，Ｔｚをツール座標と呼ぶ。）
まず、本発明の概要について説明する。図５のような教示点Ｐ0〜Ｐ3を持つ動作プログラムがあったとき、本発明を使って姿勢生成すると図６のようになる。この例で作業区間（溶接区間）はＰ0〜Ｐ3であり、Ｐ0のことを溶接開始点、Ｐ3のことを溶接終了点、溶接開始点と溶接終了点の間の教示点Ｐ1、Ｐ2のことを接続点と呼ぶ。図６では、アプローチ点、エスケープ点が、教示点Ｐ0の前、及び教示点Ｐ3の後にそれぞれ追加され（特願平８−８７６５８号公報を参照）、前点Ｐpre i、後点Ｐposti（ｉ＝１、２）が追加されている。前後点は、補間方法（直線、円弧、スプライン）に応じた経路上に（教示点から教示点へロボットが動作するときのトーチ先端の移動軌跡のことを、経路と呼ぶ）追加されている（図６では、直線補間の場合を例示している。）。
【０００８】
前後点と教示点では、以下の（１）（２）のようにして姿勢が決定されている。
（１）設定されたねらい角、すすみ角に応じて姿勢を決定する。
・Ｐ0点、Ｐpre 1点のトーチ姿勢は、Ｐ0−Ｐ1区間の最適溶接姿勢をとる。
・Ｐpost1点、Ｐpre 2点のトーチ姿勢は、Ｐ1−Ｐ2区間の最適溶接姿勢をとる。
・Ｐpost2点、Ｐ3点のトーチ姿勢は、Ｐ2−Ｐ3区間の最適溶接姿勢をとる。
・Ｐ1点は、Ｐpre 1点とＰpost1点の中間姿勢をとる。
・Ｐ2点は、Ｐpre 2点とＰpost2点の中間姿勢をとる。
（２）候補群から最適なものを１つ選ぶ。前記最適溶接姿勢は、図３のようなねらい角、すすみ角を設定したとき、図４のトーチ冗長自由度軸Ｔｚ軸が、そのねらい角、すすみ角に設定されたときの姿勢とする。そのため、Ｔｚ軸が一致しておればよく、Ｔｘ、Ｔｙ軸方向はどのような方向でもよい。前記中間姿勢は、中間姿勢のＴｚ軸をＰpre i点のＴｚ軸とＰposti点のＴｚ軸の中間として設定し、中間姿勢のＴｘ、Ｔｙ軸方向は任意の方向でよい。姿勢生成中、最適溶接姿勢、中間姿勢を決定しても、Ｔｚ軸のみ決まっているので、Ｔｚ軸を回転させることにより多数の候補（候補群と呼ぶ）をリストアップすることができる。このリストアップされた候補群から、ロボットの動作として最適なものを１つ選ぶことできるのである。このように、本発明を実施することにより、溶接作業に最適で、かつ、ロボット動作としても最適な姿勢の生成ができることになる。
【０００９】
つぎに、本発明の詳細な実施例について記述する。図１は、本願発明を実施するためのフローチャートである。Ｓ００１では、動作プログラムの情報を取得する。この動作プログラムは、正確なツール先端位置、及び、ラフなツール姿勢の複数点を持てばよく、オフラインの動作プログラム、ロボット制御盤内の既存動作プログラム、新規動作プログラム、または、保管してあった動作プログラムなどである。Ｓ００２では、教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値（以下規定値と呼ぶ）を設定している。ここでの例では、すすみ角、ねらい角を設定する。Ｓ００３では、複数の溶接区間が１つの動作プログラム中に存在したときのための処理であり、動作プログラム中の初期位置から、溶接区間の開始点と終了点を順次探索し、開始終了点があればＳ００４に行き、また、探索して、動作プログラムの最終移動点まで来たらＳ０１０に行く。Ｓ００４では、動作プログラム内の教示点において作業区間内の移動命令としての連続した円弧補間の教示点が３点以上存在しない場合（連続円弧補間教示点が１点、もしくは、２点のとき）、円弧が描けないので、姿勢生成を行わないこととする。Ｓ００５では、図３の教示点座標で進行方向に対して、左側溶接か、右側溶接かを判別している。この判別方法は、多種あるが、例えば特願平８−９３４００を利用する。Ｓ００６では、あらかじめ決められた条件に基づいて、教示点の前後経路上に点を追加するかしないかを判定し、追加位置を決定している。Ｓ００７では、溶接区間中の全点に対して、トーチの冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成する。Ｓ００８では、溶接区間中の全点に対して、姿勢の候補群から、教示点では教示時の位置及び姿勢を反映した姿勢を教示点姿勢として選択し、前後点では選択された教示点姿勢を反映した姿勢を選択する。Ｓ００９では、アプローチ点、エスケープ点を追加する。追加の方法は、各種あるが、例えば、特願平８−８７６５８号公報に記載された方法を利用する。Ｓ０１０では、姿勢生成した結果を動作プログラムに反映させる。以上のような手順で、姿勢生成後、確実に動作する動作プログラムが作成でき、安定した作業状態を得られるロボットの姿勢生成方法を提供することができる。
【００１０】
以下に具体的実施例を示す。
＜第１実施例＞図７にＳ００８の詳細フローチャートを示す。教示点Ｐi点の前点のことを、以下Ｐpre i点とする。教示点Ｐi点の後点のことを、以下Ｐposti点とする。（ｉ＝０〜Ｎ−１、ただしＮは作業区間中の教示点数）
Ｓ１０１は、Ｓ００８の開始を意味する。Ｓ１０２では、溶接開始点から溶接終了点までの教示点Ｐiを１つずつ増やしていき、ｉが終了点を越えたか、越えないかを判定している。Ｓ１０３では、教示点Ｐiの候補と教示時の状態を比較して、教示時の状態に最も近い候補を教示点Ｐiの姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点Ｐiの教示時のｊ軸モータパルスＴijと候補中のある候補のモータパルスＣijk（ｋは各候補を区別する候補番号）との各軸についての差の絶対値を全軸分合計した値Ｊikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Ｊik＝Σj｜Ｔij−Ｃijk｜
Ｊmin＝ＭＩＮk（Ｊik）            ・・・・・・・・（１）
ただし、Σjは、全モータ軸（ｊ＝０〜Ｍ−１）の合計をとること、Ｍは、ロボットのモータ軸数、ＭＩＮkはｋを変えたときの最小の値をとることを表わす。Ｊminをとるときの候補番号をｋ1とすると、姿勢生成結果のモータパルスとしてＣijk1として採用する。
【００１１】
Ｓ１０４では、Ｐpre i点の候補と姿勢生成後教示点の状態を比較して、姿勢生成後教示点の状態に最も近い候補をＰpre i点の姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点ＰiのＳ１０３で決定されたｊ軸モータパルスＣijk1とＰpre i点候補中のある候補モータパルスＣpre ijkとの各軸についての差の絶対値を全軸分合計した値Ｊpre ikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Ｊpre ik＝Σj｜Ｃijk1−Ｃpre ijk｜
Ｊpre min＝ＭＩＮk（Ｊik）        ・・・・・・・・（２）
Ｊpre minをとるときの候補番号ｋ2とすると、姿勢生成結果のモータパルスはＣpre ijk2として採用する。Ｓ１０５では、Ｐposti点の候補と姿勢生成後教示点の状態を比較して、姿勢生成後教示点の状態に最も近い候補をＰposti点の姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点ＰiのＳ１０３で決定されたｊ軸モータパルスＣijk1と候補中のある候補のモータパルスＣpostijkとの各軸についての差の絶対値を全軸分合計した値Ｊpostikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Ｊpostik＝Σj｜Ｃijk1−Ｃpostijk｜
Ｊpost min＝ＭＩＮk（Ｊik）        ・・・・・・・・・（３）
Ｊpost minをとるときの候補番号ｋ3とすると、姿勢生成結果のモータパルスはＣpostijk3として採用する。Ｓ１０６は、Ｓ００８の終了を意味する。以上のようにすると、各モータ軸の動作が小さくなり、その結果、モータに負荷がかかりにくくなり、接続点でのロボットの動作がなめらかになる。
【００１２】
＜第３実施例＞第３実施例は、第１実施例のロボット各軸の差の代わりに差の２乗を用いるもので、式（１）、式（２）、式（３）がそれぞれ、以下のようになるものである。
Ｊik＝Σj（Ｔij−Ｃijk）2        ・・・・・・・・・・（４）
Ｊpre ik＝Σj（Ｃijk1−Ｃpre ijk）2  ・・・・・・・・・（５）
Ｊpostik＝Σj（Ｃijk1−Ｃpostijk）2  ・・・・・・・・・（６）
【００１３】
＜第２実施例＞第２実施例は、第１実施例のＳ１０３、Ｓ１０４かつＳ１０５の処理内容において、各軸パルスの代わりに、回転変換を表わすロール．ピッチ．ヨー角を用いることの他は第１実施例とそれぞれ同様である。このようにすると、接続点でのツール姿勢の変化量が小さくなる動作プログラムができる。
【００１４】
以上の例では、各軸の影響度合いを一様にしたが、式（１）〜（６）に重み係数をつけて各軸の影響度合いを調整することも可能である。例えば、式（１）に重み係数をつけた式は、
Ｊik＝ΣjＷj＊｜Ｔij−Ｃijk｜  ・・・・・・・・・・・（７）
となり、このＷjの値を各ｊに関して変えることにより調整できる。
【００１５】
＜第４〜１０実施例＞図８は、第４〜第１０実施例のフローチャートであり、図１のＳ００７の詳細に関する。Ｓ２０１では、Ｓ００７の開始を意味する。Ｓ２０２では、溶接開始点から溶接終了点までの教示点Ｐiのｉを１つずつ増やしていき、ｉが終了点を越えたか、越えないかを判定している。Ｓ２０３では、教示点Ｐｉが溶接開始点か接続点か溶接終了点かを判断しており、教示点Ｐiが、溶接開始点ならＳ２１６へ、接続点ならＳ２０４へ、溶接終了点ならＳ２１７へ処理が進む。Ｓ２０４では、第５実施例により、Ｐi-1点からＰi+1点までの２経路のｉ  点上のそれぞれの接線が同一接線であり（Ｐi-1点からＰi点までの経路のＰi点上の接線ベクトルと，Ｐi点からＰi+1点までの経路のＰi点上の接線ベクトルとのなす角度がある値以下（例えば、５度以下）の場合のことである。）、その２区間のねらい角、すすみ角が同じ値であるならば、Ｐpre i点、Ｐposti点は追加しないようにする。このようなときは、ツール座標Ｔｚ軸が変化しないので、前後点は必要なく、計算時間及び前後点を記憶するメモリ空間を節約することができる。逆に、接線が同一でない場合、あるいは、ねらい角、すすみ角がのどちらか一方でも同じでないならば、前後点は追加される。
【００１６】
Ｓ２０５では、第４実施例によりＰi-1，Ｐi点間の距離とＰi，Ｐi+1点間の距離がともにある値以下（例えば、２０ｍｍ以下）なら、Ｐpre i点、Ｐposti点は追加しないようにする。Ｓ２０６では、第４実施例によりＰi-1，Ｐi点間の距離がある値以下（例えば、２０ｍｍ以下）なら、Ｐpre i点は追加せず、Ｐposti点は追加する。Ｓ２０７では、第４実施例によりＰi，Ｐi+1点間の距離がある値以下（例えば、２０ｍｍ以下）なら、Ｐposti点は追加せず、Ｐpre i点を追加する。Ｓ２０５〜Ｓ２０７の処理をすることで、教示点間が短く、最適溶接姿勢をとれる区間が短い場合に、計算時間及び前後点を記憶するメモリ空間を節約することができ、また、姿勢作成誤差を出難くしている。Ｓ２０８では、各教示点座標を設定して、Ｐpre i点のツール座標Ｔｚ軸を決定し、Ｐpre i点の最適溶接姿勢を作る。ツール座標Ｔｚ軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Ｔｚ軸を回転させる初期基準座標を以下のように決定する。Ｐi点が接続点なので、Ｐi-1点は、存在し、Ｐi-1点の教示点座標Ｘ軸を中心としてｉ−１点の教示点座標をすすみ角分回転させ、ｉ−１点の教示点座標Ｙ軸を中心として１度回転した座標をさらにねらい角分回転させ、そのようにして得られた２度回転した座標をさらに２度回転した座標のＹ軸回りに１８０度回転させる。３度回転した座標を、Ｐpre i点における初期基準座標とする。
【００１７】
Ｓ２０９でＰpre i点位置を決定する際、初期のＰpre i点の追加される位置は、補間方法に応じて決められる動作補間線上の教示点からの距離、または、教示点間の距離に対する割合として指定されるが（この指定方法は、多種あるが、例えば特願平７−２５９２３０号公報記載の方法を利用する。）、第６及び第７実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらＰpre i点位置を再度設定する。第６実施例のワーク形状の設定方法としては、ＣＡＤ  情報、オフライン情報などがあり、第７実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。Ｓ２１０では、Ｐpre i点のツール姿勢候補を作る。Ｐpre i点における初期基準座標のＴｚ軸を回転中心として、Ｐpre i点における初期基準座標をあらかじめ決められた角度ｄＴｚずつ回転させたツール姿勢について、第１０実施例により、順次、逆変換（ツール座標からロボット各軸位置を計算する方式）し、ロボット各軸位置が動作範囲（ロボット各軸が動作できる範囲）内かどうかをチェックし、ロボットアームとツール及びツールに付属する部分（トーチにおけるコンジットケーブル）とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、Ｐpre i点における初期基準座標からｄＴｚずつ回転させて１回転するまで、Ｐpre i点のツール姿勢候補を作る。
【００１８】
Ｓ２１１では、まず、教示点座標の１軸目を教示点Ｐiから教示点Ｐi+1へ向かう接線ベクトル（図１２参照。ただし、図１２は、直線補間時の例なので、接線ベクトルは、ＰiからＰi+1へ向かう直線となっている。）とする。２軸目を教示点Ｐiから参照点として設定された点Ｐrefに向かうベクトルと１軸目のベクトルとの外積ベクトルとする。このとき、もし、参照点が設定されてない場合、２軸目を鉛直方向ベクトルと１軸目のベクトルとの外積ベクトルとする。３軸目を１軸と前記２軸との外積ベクトルとしてｉ教示点座標を設定している。さらに、Ｐposti点のツール座標Ｔｚ軸を決定し、Ｐposti点の最適溶接姿勢を作る。ツール座標Ｔｚ軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Ｔｚ軸を回転させる初期基準座標を以下のように決定する。まず、Ｐi点の教示点座標Ｘ軸を中心としてＰi点の教示点座標をすすみ角分回転させる。つぎに、回転した後のＰi点の教示点座標Ｙ軸を中心としてねらい角分回転さる。さらに、回転した座標のＹ軸回りに１８０度回転させる。このようにして得られた座標を、Ｐposti点における初期基準座標とする。
【００１９】
Ｓ２１２でＰposti点位置を決定する際、初期のＰposti点の追加される位置は、補間方法に応じて決められる動作補間線上の教示点からの距離、または、教示点間の距離に対する割合として指定されるが（この指定方法は、多種あるが、例えば特願平７−２５９２３０号公報記載の方法を利用する。）、第６及び第７実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらＰposti点位置を再度設定する。第６実施例のワーク形状の設定方法としては、ＣＡＤ情報、オフライン情報などがあり、第７実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。Ｓ２１３では、Ｐposti点のツール姿勢候補を作る。Ｐposti点における初期基準座標のＴｚ軸を回転中心として、Ｐposti点における初期基準座標をあらかじめ決められた角度ｄＴｚずつ回転させたツール姿勢について、第１０実施例により、順次、逆変換（ツール座標からロボット各軸位置を計算する方式）し、ロボット各軸位置が動作範囲（ロボット各軸が動作できる範囲）内かどうかをチェックし、ロボットアームとツール及びツールに付属する部分（トーチにおけるコンジットケーブル）とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、Ｐposti点における初期基準座標からｄＴｚずつ回転させて１回転するまで、Ｐposti点のツール姿勢候補を作る。Ｓ２１４では、各教示点座標を設定して、Ｐi点のツール座標Ｔｚ軸を決定し、Ｐi点の中間姿勢を作る。ツール座標Ｔｚ軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Ｔｚ軸を回転させる初期基準座標を以下のように決定する。
【００２０】
まず、Ｐi-1点の教示点座標とＰi点の教示点座標の中間座標のＸ軸を中心として中間座標をすすみ角分回転さる。つぎに、回転後の中間座標Ｙ軸を中心としてさらにねらい角分回転させる。さらに、回転後のＹ軸回りに１８０度回転させる。このようにして得られた座標を、Ｐi点における初期基準座標とする。Ｓ２１５では、Ｐi点姿勢を決定する際、初期のＰi点姿勢は、第６及び第７実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらＰｉ点における初期基準座標を再度設定する。第６実施例のワーク形状の設定方法としては、ＣＡＤ情報、オフライン情報などがあり、第７実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。Ｓ２１６では、各教示点座標を設定して、Ｐi点のツール座標Ｔｚ軸を決定し、Ｐi点の最適溶接姿勢を作る。ツール座標Ｔｚ軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Ｔｚ軸を回転させる初期基準座標を以下のように決定する。まず、Ｐi点の教示点座標Ｘ軸を中心としてＰi点の教示点座標をすすみ角分回転させる。つぎに、回転後の教示点座標Ｙ軸を中心としてさらにねらい角分回転させる。さらに回転したＹ軸回りに１８０度回転させる。このようにして得られた座標を、Ｐi点における初期基準座標とする。
【００２１】
Ｓ２１７では、各教示点座標を設定して、Ｐi点のツール座標Ｔｚ軸を決定し、Ｐi点の最適溶接姿勢を作る。ツール座標Ｔｚ軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Ｔｚ軸を回転させる初期基準座標を以下のように決定する。まず、Ｐi-1点の教示点座標Ｘ軸を中心としてＰi点の教示点座標をすすみ角分回転させる。つぎに、Ｐi-1点の教示点座標Ｙ軸を中心として回転した座標をさらにねらい角分回転させる。さらに、回転した座標のＹ軸回りに１８０度回転させる。このようにして得られた座標を、Ｐi点における初期基準座標とする。Ｓ２１８では、教示点Ｐiでのツール姿勢候補を作る。Ｐi点における初期基準座標のＺ軸を回転中心として、Ｐi点における初期基準座標をｄＴｚずつ回転させたツール姿勢について、第１０実施例により、順次、逆変換し、ロボット各軸位置が動作範囲内かどうかチェックし、ロボットアームとツール及びツールに付属する部分とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、教示点Ｐｉにおける初期基準座標からｄＴｚずつ回転させて１回転するまで、教示点Ｐｉ点のツール姿勢候補作る。Ｓ２１９では、Ｓ００７の終了を意味する。ここでは、第４〜第１０実施例を同時に実施した例を記したが、もちろん、個別に使用してもよい。
【００２２】
＜第１１〜１３実施例＞図９は、第１１実施例と第１３実施例を表わすフローチャートであり、図１のＳ００３とＳ００４の間に、Ｓ３０４が、Ｓ００９の後にＳ３１１が入っている。Ｓ３０４では、Ｓ００３で決まった溶接区間内に同一点（２点の位置が近傍であり、ある範囲内にあるとき、例えば、１ｍｍ以内等）があるときは、その連続した同一点群の中から最初の点を、代表として選ぶこととする（その中の点ならどれを代表に選んでもよい）。また、第１２実施例の発明は、別の同一点決定方法としてツール姿勢かつ位置がともに同じ場合を同一点とするものである。Ｓ３１１では、姿勢生成しない区間として設定した区間があれば、その区間内の追加された前後点を削除し、そして、姿勢生成された教示点の姿勢を教示時の姿勢に戻すものである。図１０は姿勢生成しない区間を設定した場合の姿勢生成後の結果であり、この図を用いて説明すると、姿勢生成しない区間としてＰ１−Ｐ２区間を設定すると、アプローチ点、教示点Ｐ0、Ｐpre 1点、Ｐpost2点、教示点Ｐ3とエスケープ点が姿勢生成されるが、Ｐpost1点とＰpre 2点は追加されず、教示点Ｐ1と教示点Ｐ2は教示時の姿勢となる。ここでは、第１１〜第１３実施例を同時に実施した例を記したが、もちろん、個別に使用してもよい。
【００２３】
＜第１４実施例＞図１１は、第１４実施例を表わすフローチャートであり、図７に候補の存在か否かの判定を追加したものである。第１４実施例により、Ｐi点、Ｐpre i点、もしくは、Ｐposti点に候補が１つも存在しない場合、前後点なら、前後点を追加せず、教示点なら、教示時の姿勢と同じにし、かつ、候補群の作成が不可能であったことを使用者に伝達する。伝達の手段は、各種あるが、例えば、教示ツールのディスプレイにどの点ができなかったかを表示する。Ｓ４０１では、Ｓ００８の開始を意味する。Ｓ４０２では、溶接開始点から溶接終了点までの教示点Ｐiを１つずつ増やしていき、ｉが終了点を越えたか、越えないかを判定している。Ｓ４０３では、教示点Ｐｉでの候補が１つ以上あるかどうかの判定をする。Ｓ４０４では、第１４実施例により教示点Ｐiでの候補が１つも存在しないので姿勢生成後の姿勢を教示時のツール姿勢とする。このとき、使用者に対して、「姿勢生成ができず、教示点Ｐiのツール姿勢は、教示時のツール姿勢と同じ」という情報も伝達する。Ｓ４０５は、Ｓ１０３と同じである。
【００２４】
Ｓ４０６では、Ｐpre i点での候補が１つ以上あるかどうかの判定をする。Ｓ４０７では、第１４実施例によりＰpre i点での候補が１つも存在しないのでＰpre i点を追加しない。このとき、使用者に対して、「姿勢生成ができず、Ｐpre i点は追加しない」という情報も伝達する。Ｓ４０８は、Ｓ１０４と同じである。Ｓ４０９では、Ｐposti点での候補が１つ以上あるかどうかの判定をする。Ｓ４１０では、第１４実施例によりＰposti点での候補が１つも存在しないのでＰposti点を追加しない。このとき、使用者に対して、「姿勢生成ができず、Ｐposti点は追加しない」という情報も伝達する。Ｓ４１１は、Ｓ２１１と同じである。Ｓ４１２は、Ｓ００８の終了を意味する。以上、本発明をアーク溶接に適用した実施例を挙げて説明したが、これにより本発明は何ら限定されるものではない。
【００２５】
【発明の効果】
以上述べたように、本発明によれば、産業用ロボットが行う各種作業に最適で、かつ、ロボット動作としても最適な姿勢の生成ができることになるので、教示作業が簡単化され、作業効率が向上する。
【図面の簡単な説明】
【図１】  本発明の姿勢生成処理を示すフローチャートである。
【図２】  従来の技術の説明図である。
【図３】  ねらい角、すすみ角の説明図である。
【図４】  本発明のツール形状及びツール座標系を示す説明図である。
【図５】  本発明の姿勢生成前の教示点Ｐ0〜Ｐ3を持つ動作プログラムの説明図である。
【図６】  本発明の姿勢生成後の動作プログラムの説明図である。
【図７】  図１中のＳ００８の詳細処理のフローチャートである。
【図８】  図１中のＳ００７の詳細処理のフローチャートである。
【図９】  第１１実施例と第１３実施例を表わすフローチャートである。
【図１０】  姿勢生成しない区間を設定したときの姿勢生成結果の説明図である。
【図１１】  第１４実施例を表わすフローチャートである。
【図１２】  教示点Ｐiのｉ教示点座標の説明図である。
【図１】
0003902310.tif 000002
【図２】
0003902310.tif 000003
【図３】
0003902310.tif 000004
【図４】
0003902310.tif 000005
【図５】
0003902310.tif 000006
【図６】
0003902310.tif 000007
【図７】
0003902310.tif 000008
【図８】
0003902310.tif 000009
【図９】
0003902310.tif 000010
【図１０】
0003902310.tif 000011
【図１１】
0003902310.tif 000012
【図１２】
0003902310.tif 000013