JP3902310B2 - Posture generation method for industrial robots - Google Patents
Posture generation method for industrial robots Download PDFInfo
- Publication number
- JP3902310B2 JP3902310B2 JP00430898A JP430898A JP3902310B2 JP 3902310 B2 JP3902310 B2 JP 3902310B2 JP 00430898 A JP00430898 A JP 00430898A JP 430898 A JP430898 A JP 430898A JP 3902310 B2 JP3902310 B2 JP 3902310B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- teaching
- posture
- tool
- points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Control Of Position Or Direction (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、産業用ロボットに取り付けられたツール姿勢が1つの冗長自由度を持つ場合の産業用ロボットの姿勢生成方法に関する。
【0002】
【従来の技術】
通常のティーチングプレイバック方式の産業用ロボットにおける教示作業では、作業対象の特徴点での位置にくるように、かつ、その位置での姿勢を作業上望ましい姿勢になるように、教示ツール(通常は、プログラミングペンダント、ティーチングペンダントまたはティーチングボックスと呼ばれる。)を使って、実際にロボットを動作させ、その位置、姿勢を記憶させる命令を、教示ツールよりコントローラ本体に送る。コントローラ本体は、その記憶部で前記位置及び姿勢を記憶する。これを繰り返すことにより、動作プログラムを作成する。また、動作方向が急激に変化するような点、あるいは作業に適切なツール姿勢が変化するような点の前後には、ロボットの作業対象に対する適切なツール姿勢区間をできるだけ長くするため、通常、教示点を加えることがなされている。
【0003】
例えば、アーク溶接において作業対象が図2のような場合に、点P0,P1,P2,P3を結ぶ直線上を溶接する場合には、前記特徴点は、点P0,P1,P2,P3となる。従来の教示方法では、まず、教示ツールを使いP0までロボットを動作させ、材質、溶接条件等で決まる姿勢(ねらい角:溶接トーチと進行方向を含んだワーク面とがなす角度(図3)、すすみ角:溶接トーチと進行方向ベクトルがなす角度(図3)で決まる姿勢)をとるように、教示ツールを使ってロボットを姿勢変化させる。位置と姿勢が望ましいものになったら、コントローラ内部に記憶させる。つぎに、P1を教示するが、P1では、溶接線が急に変化するので、P1の前後では、望ましい姿勢が違う。したがって、通常は、P1点の前後に、適当な距離をおいて、教示点を作成していた。この点を図2ではPpre 1、Ppost1と表わしている。このようにすることで、P1での急激な姿勢変化を避けていた。P2に対しても同様な理由で、Ppre 2、Ppost2を作成していた。P3では、P0の場合と同様にして、位置と姿勢を記憶させる。このようにして、動作プログラムは、P0、Ppre 1、P1、Ppost1、Ppre 1、P2、Ppost2、P3での位置と姿勢を記憶したものとして作成される。ところが、このようなロボット教示方法では、動作位置に加えて動作姿勢も教示しなければならなく、かつ、作業対象の特徴点の前後にも教示点を作成しなければならないことがあり、これらのことが、ロボットの教示を手間のかかるものにしていた。また、これらの作業には、ロボットを動かす上で高度の熟練技術と時間を要しており姿勢を設定するときにおいても簡便で客観的方法があまりなかった。これらのことを解決する技術として、特開平8−123536号公報に開示された技術がある。
【0004】
【発明が解決しようとする課題】
ところが、特開平8−123536号公報に開示された方法では、始点、終点、接続点及び補助点のツール姿勢を決定するとき、設定されたねらい角と前進角、教示時のツール姿勢から求まるスピン角により、ツール姿勢を一意的に決定しており、このツール姿勢を決定するとき、ロボットが実際に姿勢をとれるか否かは検討されておらず、ロボットの姿勢がとれない場合があり問題であった。ロボットの姿勢がとれない原因として、機構学上の制限による場合、トーチとロボットアームが干渉する場合、もしくは、溶接対象部材とトーチが干渉する場合などがある。また、前記公報に開示された方法では、基準面βは、複数の経路を含む編集対象区間内で、1つしか設定できず、区間毎には設定できないので、補助点が追加されなくなり問題であった。さらに、前記公報には、「この基準面βに対してトーチ1の方向(ツール座標系のZ軸方向)を表わす直線が乗る平面γを考えたとき、平面γが基準平面βに対してなす角がねらい角θである。」と定義されており、ねらい角は、γとβの面が交差してできる線を中心とした回転角であり、実際にねらい角分ツール姿勢を回転させるときには経路軸を回転中心にしており。ねらい角の定義と回転時のねらい角方向とが違うので使用者が思った通りにねらい角を設定できないという問題があった。このように、従来法では、現実的に動作可能な動作プログラムを作ることはできなかったので、その手直しが必要となり、教示者の負担を軽減するという初期の目的を十分達成できていなかった。そこで、本発明は、作業対象の特徴点のみの教示で、動作可能な動作プログラムを作り、客観的な姿勢を生成することにより、教示者の作業負担を軽減したり、教示者間のばらつきを減らすことで安定した作業状態を得られるロボットの動作プログラムを作ることができる産業用ロボットの姿勢生成方法を提供することを目的としている。
【0005】
【課題を解決するための手段】
上記問題を解決するため、本発明の産業用ロボットの姿勢生成方法は、ティーチングプレイバック方式の産業用ロボットのツール姿勢が1つの冗長自由度を持つ場合において、正確なツール先端位置及びラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも1つの点を追加する位置を設定し、前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、前記教示点及び前記前後点の前記候補群から1つのツール姿勢を選ぶとき、前記教示点では、教示点における候補群中のロボット各軸位置と教示時ロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のロボット各軸位置と前点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを選び、前記教示点の後点では、姿勢生成後教示点のロボット各軸位置と後点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを選ぶことを特徴とする。前記差の関数は、差の絶対値または差の2乗とすることができる。
【0006】
本発明の他の方法は、ティーチングプレイバック方式の産業用ロボットのツール姿勢が1つの冗長自由度を持つ場合において、正確なツール先端位置、及び、ラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも1つの点を追加する位置を設定し、前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、前記教示点及び前記前後点の前記候補群から1つのツール姿勢を選ぶとき、前記教示点では、教示時ツール座標から教示点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のツール座標から前点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを選び、前記教示点の後点では、姿勢生成後教示点のツール座標から後点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを選ぶことを特徴とする。この方法において、前記関数は、前記変数の絶対値または2乗とすることができる。
【0007】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。ここでは、実施例として、アーク溶接を挙げるが、本発明は、アーク溶接他、TIG 溶接、スポット溶接、レーザ溶接、レーザ切断、シーリング、切削、研削、バリ取り、スプレーなど、ツールが冗長自由度を持つ場合には同様に適用できる。本実施例においては、図4のようなトーチを使った場合について記述する。このとき、トーチは1つの冗長自由度を持つ。つまり、溶接作業においては、図4のTz軸回りの回転方向に対しては、制限がなくどのような値でもよい。(以下、Tz軸のことを冗長自由度軸と呼び、また、Tx,Ty,Tzをツール座標と呼ぶ。)
まず、本発明の概要について説明する。図5のような教示点P0〜P3を持つ動作プログラムがあったとき、本発明を使って姿勢生成すると図6のようになる。この例で作業区間(溶接区間)はP0〜P3であり、P0のことを溶接開始点、P3のことを溶接終了点、溶接開始点と溶接終了点の間の教示点P1、P2のことを接続点と呼ぶ。図6では、アプローチ点、エスケープ点が、教示点P0の前、及び教示点P3の後にそれぞれ追加され(特願平8−87658号公報を参照)、前点Ppre i、後点Pposti(i=1、2)が追加されている。前後点は、補間方法(直線、円弧、スプライン)に応じた経路上に(教示点から教示点へロボットが動作するときのトーチ先端の移動軌跡のことを、経路と呼ぶ)追加されている(図6では、直線補間の場合を例示している。)。
【0008】
前後点と教示点では、以下の(1)(2)のようにして姿勢が決定されている。
(1)設定されたねらい角、すすみ角に応じて姿勢を決定する。
・P0点、Ppre 1点のトーチ姿勢は、P0−P1区間の最適溶接姿勢をとる。
・Ppost1点、Ppre 2点のトーチ姿勢は、P1−P2区間の最適溶接姿勢をとる。
・Ppost2点、P3点のトーチ姿勢は、P2−P3区間の最適溶接姿勢をとる。
・P1点は、Ppre 1点とPpost1点の中間姿勢をとる。
・P2点は、Ppre 2点とPpost2点の中間姿勢をとる。
(2)候補群から最適なものを1つ選ぶ。前記最適溶接姿勢は、図3のようなねらい角、すすみ角を設定したとき、図4のトーチ冗長自由度軸Tz軸が、そのねらい角、すすみ角に設定されたときの姿勢とする。そのため、Tz軸が一致しておればよく、Tx、Ty軸方向はどのような方向でもよい。前記中間姿勢は、中間姿勢のTz軸をPpre i点のTz軸とPposti点のTz軸の中間として設定し、中間姿勢のTx、Ty軸方向は任意の方向でよい。姿勢生成中、最適溶接姿勢、中間姿勢を決定しても、Tz軸のみ決まっているので、Tz軸を回転させることにより多数の候補(候補群と呼ぶ)をリストアップすることができる。このリストアップされた候補群から、ロボットの動作として最適なものを1つ選ぶことできるのである。このように、本発明を実施することにより、溶接作業に最適で、かつ、ロボット動作としても最適な姿勢の生成ができることになる。
【0009】
つぎに、本発明の詳細な実施例について記述する。図1は、本願発明を実施するためのフローチャートである。S001では、動作プログラムの情報を取得する。この動作プログラムは、正確なツール先端位置、及び、ラフなツール姿勢の複数点を持てばよく、オフラインの動作プログラム、ロボット制御盤内の既存動作プログラム、新規動作プログラム、または、保管してあった動作プログラムなどである。S002では、教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値(以下規定値と呼ぶ)を設定している。ここでの例では、すすみ角、ねらい角を設定する。S003では、複数の溶接区間が1つの動作プログラム中に存在したときのための処理であり、動作プログラム中の初期位置から、溶接区間の開始点と終了点を順次探索し、開始終了点があればS004に行き、また、探索して、動作プログラムの最終移動点まで来たらS010に行く。S004では、動作プログラム内の教示点において作業区間内の移動命令としての連続した円弧補間の教示点が3点以上存在しない場合(連続円弧補間教示点が1点、もしくは、2点のとき)、円弧が描けないので、姿勢生成を行わないこととする。S005では、図3の教示点座標で進行方向に対して、左側溶接か、右側溶接かを判別している。この判別方法は、多種あるが、例えば特願平8−93400を利用する。S006では、あらかじめ決められた条件に基づいて、教示点の前後経路上に点を追加するかしないかを判定し、追加位置を決定している。S007では、溶接区間中の全点に対して、トーチの冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成する。S008では、溶接区間中の全点に対して、姿勢の候補群から、教示点では教示時の位置及び姿勢を反映した姿勢を教示点姿勢として選択し、前後点では選択された教示点姿勢を反映した姿勢を選択する。S009では、アプローチ点、エスケープ点を追加する。追加の方法は、各種あるが、例えば、特願平8−87658号公報に記載された方法を利用する。S010では、姿勢生成した結果を動作プログラムに反映させる。以上のような手順で、姿勢生成後、確実に動作する動作プログラムが作成でき、安定した作業状態を得られるロボットの姿勢生成方法を提供することができる。
【0010】
以下に具体的実施例を示す。
<第1実施例>図7にS008の詳細フローチャートを示す。教示点Pi点の前点のことを、以下Ppre i点とする。教示点Pi点の後点のことを、以下Pposti点とする。(i=0〜N−1、ただしNは作業区間中の教示点数)
S101は、S008の開始を意味する。S102では、溶接開始点から溶接終了点までの教示点Piを1つずつ増やしていき、iが終了点を越えたか、越えないかを判定している。S103では、教示点Piの候補と教示時の状態を比較して、教示時の状態に最も近い候補を教示点Piの姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点Piの教示時のj軸モータパルスTijと候補中のある候補のモータパルスCijk(kは各候補を区別する候補番号)との各軸についての差の絶対値を全軸分合計した値Jikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Jik=Σj|Tij−Cijk|
Jmin=MINk(Jik) ・・・・・・・・(1)
ただし、Σjは、全モータ軸(j=0〜M−1)の合計をとること、Mは、ロボットのモータ軸数、MINkはkを変えたときの最小の値をとることを表わす。Jminをとるときの候補番号をk1とすると、姿勢生成結果のモータパルスとしてCijk1として採用する。
【0011】
S104では、Ppre i点の候補と姿勢生成後教示点の状態を比較して、姿勢生成後教示点の状態に最も近い候補をPpre i点の姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点PiのS103で決定されたj軸モータパルスCijk1とPpre i点候補中のある候補モータパルスCpre ijkとの各軸についての差の絶対値を全軸分合計した値Jpre ikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Jpre ik=Σj|Cijk1−Cpre ijk|
Jpre min=MINk(Jik) ・・・・・・・・(2)
Jpre minをとるときの候補番号k2とすると、姿勢生成結果のモータパルスはCpre ijk2として採用する。S105では、Pposti点の候補と姿勢生成後教示点の状態を比較して、姿勢生成後教示点の状態に最も近い候補をPposti点の姿勢生成後の結果として採用する。ここで、最も近いという意味は、教示点PiのS103で決定されたj軸モータパルスCijk1と候補中のある候補のモータパルスCpostijkとの各軸についての差の絶対値を全軸分合計した値Jpostikが最小となる候補を教示点の姿勢生成結果として採用するということである。つまり、
Jpostik=Σj|Cijk1−Cpostijk|
Jpost min=MINk(Jik) ・・・・・・・・・(3)
Jpost minをとるときの候補番号k3とすると、姿勢生成結果のモータパルスはCpostijk3として採用する。S106は、S008の終了を意味する。以上のようにすると、各モータ軸の動作が小さくなり、その結果、モータに負荷がかかりにくくなり、接続点でのロボットの動作がなめらかになる。
【0012】
<第3実施例>第3実施例は、第1実施例のロボット各軸の差の代わりに差の2乗を用いるもので、式(1)、式(2)、式(3)がそれぞれ、以下のようになるものである。
Jik=Σj(Tij−Cijk)2 ・・・・・・・・・・(4)
Jpre ik=Σj(Cijk1−Cpre ijk)2 ・・・・・・・・・(5)
Jpostik=Σj(Cijk1−Cpostijk)2 ・・・・・・・・・(6)
【0013】
<第2実施例>第2実施例は、第1実施例のS103、S104かつS105の処理内容において、各軸パルスの代わりに、回転変換を表わすロール.ピッチ.ヨー角を用いることの他は第1実施例とそれぞれ同様である。このようにすると、接続点でのツール姿勢の変化量が小さくなる動作プログラムができる。
【0014】
以上の例では、各軸の影響度合いを一様にしたが、式(1)〜(6)に重み係数をつけて各軸の影響度合いを調整することも可能である。例えば、式(1)に重み係数をつけた式は、
Jik=ΣjWj*|Tij−Cijk| ・・・・・・・・・・・(7)
となり、このWjの値を各jに関して変えることにより調整できる。
【0015】
<第4〜10実施例>図8は、第4〜第10実施例のフローチャートであり、図1のS007の詳細に関する。S201では、S007の開始を意味する。S202では、溶接開始点から溶接終了点までの教示点Piのiを1つずつ増やしていき、iが終了点を越えたか、越えないかを判定している。S203では、教示点Piが溶接開始点か接続点か溶接終了点かを判断しており、教示点Piが、溶接開始点ならS216へ、接続点ならS204へ、溶接終了点ならS217へ処理が進む。S204では、第5実施例により、Pi-1点からPi+1点までの2経路のi 点上のそれぞれの接線が同一接線であり(Pi-1点からPi点までの経路のPi点上の接線ベクトルと,Pi点からPi+1点までの経路のPi点上の接線ベクトルとのなす角度がある値以下(例えば、5度以下)の場合のことである。)、その2区間のねらい角、すすみ角が同じ値であるならば、Ppre i点、Pposti点は追加しないようにする。このようなときは、ツール座標Tz軸が変化しないので、前後点は必要なく、計算時間及び前後点を記憶するメモリ空間を節約することができる。逆に、接線が同一でない場合、あるいは、ねらい角、すすみ角がのどちらか一方でも同じでないならば、前後点は追加される。
【0016】
S205では、第4実施例によりPi-1,Pi点間の距離とPi,Pi+1点間の距離がともにある値以下(例えば、20mm以下)なら、Ppre i点、Pposti点は追加しないようにする。S206では、第4実施例によりPi-1,Pi点間の距離がある値以下(例えば、20mm以下)なら、Ppre i点は追加せず、Pposti点は追加する。S207では、第4実施例によりPi,Pi+1点間の距離がある値以下(例えば、20mm以下)なら、Pposti点は追加せず、Ppre i点を追加する。S205〜S207の処理をすることで、教示点間が短く、最適溶接姿勢をとれる区間が短い場合に、計算時間及び前後点を記憶するメモリ空間を節約することができ、また、姿勢作成誤差を出難くしている。S208では、各教示点座標を設定して、P pre i 点のツール座標Tz軸を決定し、Ppre i点の最適溶接姿勢を作る。ツール座標Tz軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Tz軸を回転させる初期基準座標を以下のように決定する。Pi点が接続点なので、Pi-1点は、存在し、Pi-1点の教示点座標X軸を中心としてi−1点の教示点座標をすすみ角分回転させ、i−1点の教示点座標Y軸を中心として1度回転した座標をさらにねらい角分回転させ、そのようにして得られた2度回転した座標をさらに2度回転した座標のY軸回りに180度回転させる。3度回転した座標を、Ppre i点における初期基準座標とする。
【0017】
S209でPpre i点位置を決定する際、初期のPpre i点の追加される位置は、補間方法に応じて決められる動作補間線上の教示点からの距離、または、教示点間の距離に対する割合として指定されるが(この指定方法は、多種あるが、例えば特願平7−259230号公報記載の方法を利用する。)、第6及び第7実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらPpre i点位置を再度設定する。第6実施例のワーク形状の設定方法としては、CAD 情報、オフライン情報などがあり、第7実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。S210では、Ppre i点のツール姿勢候補を作る。Ppre i点における初期基準座標のTz軸を回転中心として、Ppre i点における初期基準座標をあらかじめ決められた角度dTzずつ回転させたツール姿勢について、第10実施例により、順次、逆変換(ツール座標からロボット各軸位置を計算する方式)し、ロボット各軸位置が動作範囲(ロボット各軸が動作できる範囲)内かどうかをチェックし、ロボットアームとツール及びツールに付属する部分(トーチにおけるコンジットケーブル)とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、Ppre i点における初期基準座標からdTzずつ回転させて1回転するまで、Ppre i点のツール姿勢候補を作る。
【0018】
S211では、まず、教示点座標の1軸目を教示点Piから教示点Pi+1へ向かう接線ベクトル(図12参照。ただし、図12は、直線補間時の例なので、接線ベクトルは、PiからPi+1へ向かう直線となっている。)とする。2軸目を教示点Piから参照点として設定された点Prefに向かうベクトルと1軸目のベクトルとの外積ベクトルとする。このとき、もし、参照点が設定されてない場合、2軸目を鉛直方向ベクトルと1軸目のベクトルとの外積ベクトルとする。3軸目を1軸と前記2軸との外積ベクトルとしてi教示点座標を設定している。さらに、P posti点のツール座標Tz軸を決定し、Pposti点の最適溶接姿勢を作る。ツール座標Tz軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Tz軸を回転させる初期基準座標を以下のように決定する。まず、Pi点の教示点座標X軸を中心としてPi点の教示点座標をすすみ角分回転させる。つぎに、回転した後のPi点の教示点座標Y軸を中心としてねらい角分回転さる。さらに、回転した座標のY軸回りに180度回転させる。このようにして得られた座標を、Pposti点における初期基準座標とする。
【0019】
S212でPposti点位置を決定する際、初期のPposti点の追加される位置は、補間方法に応じて決められる動作補間線上の教示点からの距離、または、教示点間の距離に対する割合として指定されるが(この指定方法は、多種あるが、例えば特願平7−259230号公報記載の方法を利用する。)、第6及び第7実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらPposti点位置を再度設定する。第6実施例のワーク形状の設定方法としては、CAD情報、オフライン情報などがあり、第7実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。S213では、Pposti点のツール姿勢候補を作る。Pposti点における初期基準座標のTz軸を回転中心として、Pposti点における初期基準座標をあらかじめ決められた角度dTzずつ回転させたツール姿勢について、第10実施例により、順次、逆変換(ツール座標からロボット各軸位置を計算する方式)し、ロボット各軸位置が動作範囲(ロボット各軸が動作できる範囲)内かどうかをチェックし、ロボットアームとツール及びツールに付属する部分(トーチにおけるコンジットケーブル)とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、Pposti点における初期基準座標からdTzずつ回転させて1回転するまで、Pposti点のツール姿勢候補を作る。S214では、各教示点座標を設定して、P i点のツール座標Tz軸を決定し、Pi点の中間姿勢を作る。ツール座標Tz軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Tz軸を回転させる初期基準座標を以下のように決定する。
【0020】
まず、Pi-1点の教示点座標とPi点の教示点座標の中間座標のX軸を中心として中間座標をすすみ角分回転さる。つぎに、回転後の中間座標Y軸を中心としてさらにねらい角分回転させる。さらに、回転後のY軸回りに180度回転させる。このようにして得られた座標を、Pi点における初期基準座標とする。S215では、Pi点姿勢を決定する際、初期のPi点姿勢は、第6及び第7実施例によりツールとワーク形状とが干渉するかしないかをチェックしながらPi点における初期基準座標を再度設定する。第6実施例のワーク形状の設定方法としては、CAD情報、オフライン情報などがあり、第7実施例のワーク形状の設定方法としては、動作プログラムの経路データや継ぎ手情報などからワーク形状を推測する方法がある。S216では、各教示点座標を設定して、P i点のツール座標Tz軸を決定し、Pi点の最適溶接姿勢を作る。ツール座標Tz軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Tz軸を回転させる初期基準座標を以下のように決定する。まず、Pi点の教示点座標X軸を中心としてPi点の教示点座標をすすみ角分回転させる。つぎに、回転後の教示点座標Y軸を中心としてさらにねらい角分回転させる。さらに回転したY軸回りに180度回転させる。このようにして得られた座標を、Pi点における初期基準座標とする。
【0021】
S217では、各教示点座標を設定して、P i点のツール座標Tz軸を決定し、Pi点の最適溶接姿勢を作る。ツール座標Tz軸回りは、冗長自由度軸であり、ツール姿勢候補を作る際、ツール座標Tz軸を回転させる初期基準座標を以下のように決定する。まず、Pi-1点の教示点座標X軸を中心としてPi点の教示点座標をすすみ角分回転させる。つぎに、Pi-1点の教示点座標Y軸を中心として回転した座標をさらにねらい角分回転させる。さらに、回転した座標のY軸回りに180度回転させる。このようにして得られた座標を、Pi点における初期基準座標とする。S218では、教示点Piでのツール姿勢候補を作る。Pi点における初期基準座標のZ軸を回転中心として、Pi点における初期基準座標をdTzずつ回転させたツール姿勢について、第10実施例により、順次、逆変換し、ロボット各軸位置が動作範囲内かどうかチェックし、ロボットアームとツール及びツールに付属する部分とが干渉しないかどうかチェックし、チェックに引っかからなかったものを順次候補としてあげ、教示点Piにおける初期基準座標からdTzずつ回転させて1回転するまで、教示点Pi点のツール姿勢候補作る。S219では、S007の終了を意味する。ここでは、第4〜第10実施例を同時に実施した例を記したが、もちろん、個別に使用してもよい。
【0022】
<第11〜13実施例>図9は、第11実施例と第13実施例を表わすフローチャートであり、図1のS003とS004の間に、S304が、S009の後にS311が入っている。S304では、S003で決まった溶接区間内に同一点(2点の位置が近傍であり、ある範囲内にあるとき、例えば、1mm以内等)があるときは、その連続した同一点群の中から最初の点を、代表として選ぶこととする(その中の点ならどれを代表に選んでもよい)。また、第12実施例の発明は、別の同一点決定方法としてツール姿勢かつ位置がともに同じ場合を同一点とするものである。S311では、姿勢生成しない区間として設定した区間があれば、その区間内の追加された前後点を削除し、そして、姿勢生成された教示点の姿勢を教示時の姿勢に戻すものである。図10は姿勢生成しない区間を設定した場合の姿勢生成後の結果であり、この図を用いて説明すると、姿勢生成しない区間としてP1−P2区間を設定すると、アプローチ点、教示点P0、Ppre 1点、Ppost2点、教示点P3とエスケープ点が姿勢生成されるが、Ppost1点とPpre 2点は追加されず、教示点P1と教示点P2は教示時の姿勢となる。ここでは、第11〜第13実施例を同時に実施した例を記したが、もちろん、個別に使用してもよい。
【0023】
<第14実施例>図11は、第14実施例を表わすフローチャートであり、図7に候補の存在か否かの判定を追加したものである。第14実施例により、Pi点、Ppre i点、もしくは、Pposti点に候補が1つも存在しない場合、前後点なら、前後点を追加せず、教示点なら、教示時の姿勢と同じにし、かつ、候補群の作成が不可能であったことを使用者に伝達する。伝達の手段は、各種あるが、例えば、教示ツールのディスプレイにどの点ができなかったかを表示する。S401では、S008の開始を意味する。S402では、溶接開始点から溶接終了点までの教示点Piを1つずつ増やしていき、iが終了点を越えたか、越えないかを判定している。S403では、教示点Piでの候補が1つ以上あるかどうかの判定をする。S404では、第14実施例により教示点Piでの候補が1つも存在しないので姿勢生成後の姿勢を教示時のツール姿勢とする。このとき、使用者に対して、「姿勢生成ができず、教示点Piのツール姿勢は、教示時のツール姿勢と同じ」という情報も伝達する。S405は、S103と同じである。
【0024】
S406では、Ppre i点での候補が1つ以上あるかどうかの判定をする。S407では、第14実施例によりPpre i点での候補が1つも存在しないのでPpre i点を追加しない。このとき、使用者に対して、「姿勢生成ができず、Ppre i点は追加しない」という情報も伝達する。S408は、S104と同じである。S409では、Pposti点での候補が1つ以上あるかどうかの判定をする。S410では、第14実施例によりPposti点での候補が1つも存在しないのでPposti点を追加しない。このとき、使用者に対して、「姿勢生成ができず、Pposti点は追加しない」という情報も伝達する。S411は、S211と同じである。S412は、S008の終了を意味する。以上、本発明をアーク溶接に適用した実施例を挙げて説明したが、これにより本発明は何ら限定されるものではない。
【0025】
【発明の効果】
以上述べたように、本発明によれば、産業用ロボットが行う各種作業に最適で、かつ、ロボット動作としても最適な姿勢の生成ができることになるので、教示作業が簡単化され、作業効率が向上する。
【図面の簡単な説明】
【図1】 本発明の姿勢生成処理を示すフローチャートである。
【図2】 従来の技術の説明図である。
【図3】 ねらい角、すすみ角の説明図である。
【図4】 本発明のツール形状及びツール座標系を示す説明図である。
【図5】 本発明の姿勢生成前の教示点P0〜P3を持つ動作プログラムの説明図である。
【図6】 本発明の姿勢生成後の動作プログラムの説明図である。
【図7】 図1中のS008の詳細処理のフローチャートである。
【図8】 図1中のS007の詳細処理のフローチャートである。
【図9】 第11実施例と第13実施例を表わすフローチャートである。
【図10】 姿勢生成しない区間を設定したときの姿勢生成結果の説明図である。
【図11】 第14実施例を表わすフローチャートである。
【図12】 教示点Piのi教示点座標の説明図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a posture generation method for an industrial robot when a tool posture attached to the industrial robot has one redundancy degree of freedom.
[0002]
[Prior art]
In teaching work in a normal teaching playback type industrial robot, a teaching tool (usually, so that the position at the feature point of the work target is reached and the attitude at that position becomes the desired work position. , Which is called a programming pendant, teaching pendant or teaching pendant), sends a command to the controller body from the teaching tool to actually operate the robot and memorize its position and orientation. The controller main body stores the position and orientation in the storage unit. By repeating this, an operation program is created. Also, in order to make the appropriate tool posture section for the robot work target as long as possible before and after the point where the movement direction changes suddenly or the point where the appropriate tool posture changes for work, it is usually taught Dots have been added.
[0003]
For example, when the work target in arc welding is as shown in FIG. 2, when the welding is performed on a straight line connecting points P0, P1, P2, and P3, the characteristic points are points P0, P1, P2, and P3. . In the conventional teaching method, first, the robot is operated up to P0 using a teaching tool, and the posture determined by the material, welding conditions, etc. (target angle: angle formed between the welding torch and the work surface including the traveling direction (FIG. 3), Proceeding angle: The posture of the robot is changed using the teaching tool so as to take an angle formed by the welding torch and the traveling direction vector (the posture determined by FIG. 3). When the position and orientation are desirable, they are stored in the controller. Next, although P1 is taught, since the weld line changes suddenly at P1, the desired posture is different before and after P1. Therefore, normally, teaching points are created at an appropriate distance before and after the point P1. This point is represented as
[0004]
[Problems to be solved by the invention]
However, in the method disclosed in Japanese Patent Laid-Open No. 8-123536, when determining the tool posture of the start point, end point, connection point, and auxiliary point, the spin obtained from the set target angle and advance angle, and the tool posture at the time of teaching. The tool posture is uniquely determined by the angle, and when determining this tool posture, whether or not the robot can actually take the posture has not been studied, and the robot posture may not be taken. there were. The reasons why the robot cannot take the posture include mechanical limitations, interference between the torch and the robot arm, and interference between the welding target member and the torch. Further, in the method disclosed in the publication, only one reference plane β can be set in an editing target section including a plurality of routes, and cannot be set for each section, so that auxiliary points are not added. there were. Further, in the above publication, “when considering a plane γ on which a straight line representing the direction of the torch 1 (the Z-axis direction of the tool coordinate system) rides with respect to this reference plane β, the plane γ forms with respect to the reference plane β The target angle is a rotation angle around a line formed by the intersection of the γ and β planes. When the tool posture is actually rotated by the target angle, The path axis is the center of rotation. There is a problem that the target angle cannot be set as the user thinks because the definition of the target angle is different from the target direction at the time of rotation. As described above, in the conventional method, since an operation program that can be operated practically cannot be created, it is necessary to modify the operation program, and the initial purpose of reducing the burden on the teacher cannot be sufficiently achieved. Therefore, the present invention creates an operational program that can be operated by teaching only the feature points of the work target, and generates an objective posture, thereby reducing the work load on the teacher and reducing variations between teachers. It is an object of the present invention to provide an attitude generation method for an industrial robot that can create an operation program for a robot that can obtain a stable work state by reducing the number.
[0005]
[Means for Solving the Problems]
In order to solve the above-described problem, the industrial robot posture generation method of the present invention provides an accurate tool tip position and a rough tool when the tool posture of the teaching playback type industrial robot has one redundant degree of freedom. Prepare a motion program with multiple teaching points of posture, set a value that defines a degree of freedom other than the redundancy degree of freedom for each path between the teaching points, specify a work section from the motion program, and determine in advance Based on the specified conditions, a position for adding at least one point before and after the teaching point is set, and the robot operates using the specified value and the redundancy degree of freedom for the teaching point and the added front and rear point. When a possible tool posture candidate group is created and one tool posture is selected from the candidate points of the teaching point and the front and rear points, the teaching point includes Select a candidate for each robot axis position that minimizes the sum of all axes of the function of the difference between each robot axis position and each robot axis position during teaching as a teaching point after posture generation. Then, one candidate for each robot axis position that minimizes the sum of the functions of the difference between the robot axis positions of the teaching point after the posture generation and the robot axis positions in the candidate group at the previous point for all axes. The robot with the minimum sum of the functions of the difference between each robot axis position at the teaching point after posture generation and each robot axis position in the candidate group at the rear point for all axes is selected at the rear point of the teaching point. One candidate for each axis position is selected. The difference function may be the absolute value of the difference or the square of the difference.
[0006]
Another method of the present invention is an operation program having an accurate tool tip position and a plurality of teaching points of rough tool postures when the tool posture of a teaching playback type industrial robot has one redundancy degree of freedom. For each path between the teaching points, a value defining a degree of freedom other than the redundancy degree of freedom is set, a work section is specified from the operation program, and the teaching points are determined based on a predetermined condition. A position for adding at least one point is set before and after the tool point, and a tool posture candidate group is created for the teaching point and the added front and back points by using the specified value and the redundancy degree of freedom so that the robot can operate. When one tool posture is selected from the teaching point and the candidate group of the front and rear points, the teaching point is rotated from a tool coordinate at teaching to a certain tool coordinate in the candidate group at the teaching point. Roll used when converting. pitch. One tool coordinate candidate that minimizes the sum of the functions with the respective rotation angles of the yaw as a variable is selected as the post-generation teaching point, and the previous point of the teaching point is the previous point from the tool coordinate of the post-generation teaching point. Role used when rotating to some tool coordinates in a candidate group at a point. pitch. Select one tool coordinate candidate that minimizes the sum of the functions with each yaw rotation angle as a variable. At the rear point of the teaching point, from the tool coordinates of the teaching point after posture generation, The roll used when rotating to a certain tool coordinate. pitch. One tool coordinate candidate that minimizes the sum of the functions having the respective rotation angles of the yaw as variables is selected. In this method, the function may be an absolute value or a square of the variable.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described based on examples. Here, although arc welding is given as an example, the present invention is not limited to arc welding, TIG welding, spot welding, laser welding, laser cutting, sealing, cutting, grinding, deburring, spraying, etc. The same applies if you have In this embodiment, a case where a torch as shown in FIG. 4 is used will be described. At this time, the torch has one redundancy degree of freedom. That is, in the welding operation, the rotation direction around the Tz axis in FIG. 4 is not limited and may be any value. (Hereinafter, the Tz axis is referred to as a redundant degree of freedom axis, and Tx, Ty, and Tz are referred to as tool coordinates.)
First, an outline of the present invention will be described. When there is an operation program having the teaching points P0 to P3 as shown in FIG. 5, when the posture is generated using the present invention, it is as shown in FIG. In this example, the work section (welding section) is P0 to P3, where P0 is the welding start point, P3 is the welding end point, and the teaching points P1 and P2 between the welding start point and the welding end point are It is called a connection point. In FIG. 6, an approach point and an escape point are respectively added before the teaching point P0 and after the teaching point P3 (see Japanese Patent Application No. 8-87658), and the front point Ppre i and the rear point Pposti (i = 1, 2) has been added. The front and rear points are added on the path according to the interpolation method (straight line, arc, spline) (the movement trajectory of the tip of the torch when the robot moves from the teaching point to the teaching point is called a path) ( FIG. 6 illustrates the case of linear interpolation.)
[0008]
At the front and rear points and the teaching points, the postures are determined as follows (1) and (2).
(1) The posture is determined according to the set target angle and the corner angle.
・ The torch posture at P0 point and Ppre 1 point is the optimum welding posture in the P0-P1 section.
-The Ppost1 point and the Ppre2 point torch posture take the optimum welding posture in the P1-P2 section.
・ The torch postures at Ppost2 and P3 are the optimum welding postures in the P2-P3 section.
・ P1 takes an intermediate position between
・ P2 takes an intermediate posture between
(2) Select one optimum from the candidate group. The optimum welding posture is the posture when the aiming angle and the corner angle as shown in FIG. 3 are set, and the torch redundant degree of freedom axis Tz axis in FIG. 4 is set to the goal angle and the corner angle. Therefore, it is only necessary that the Tz axes coincide, and the Tx and Ty axis directions may be any direction. In the intermediate posture, the Tz axis of the intermediate posture is set as an intermediate point between the Tz axis of the Ppre i point and the Tz axis of the Pposti point, and the Tx and Ty axis directions of the intermediate posture may be arbitrary directions. Even if the optimum welding posture and intermediate posture are determined during posture generation, only the Tz axis is determined, and therefore a large number of candidates (referred to as candidate groups) can be listed by rotating the Tz axis. From this list of candidate groups, one optimal robot operation can be selected. As described above, by implementing the present invention, it is possible to generate a posture that is optimal for welding work and optimal for robot operation.
[0009]
Next, detailed embodiments of the present invention will be described. FIG. 1 is a flowchart for carrying out the present invention. In S001, operation program information is acquired. This operation program only needs to have multiple points of accurate tool tip position and rough tool posture, and was stored offline operation program, existing operation program in robot control panel, new operation program, or stored It is an operation program. In S002, a value that defines a degree of freedom other than the redundancy degree of freedom (hereinafter referred to as a prescribed value) is set for each path between teaching points. In this example, the corner angle and the aim angle are set. S003 is a process for when a plurality of welding sections exist in one operation program. The start point and end point of the welding section are sequentially searched from the initial position in the operation program, and the start and end points are found. If it comes to the final movement point of the operation program, the process goes to S010. In S004, when there are not three or more consecutive circular interpolation teaching points as movement commands in the work section at the teaching points in the operation program (when there are one or two continuous circular interpolation teaching points), Since an arc cannot be drawn, posture generation is not performed. In S005, it is determined whether the welding is the left side welding or the right side welding with respect to the traveling direction based on the teaching point coordinates of FIG. There are various types of determination methods, but for example, Japanese Patent Application No. 8-93400 is used. In S006, based on a predetermined condition, it is determined whether or not to add a point on the path before and after the teaching point, and an additional position is determined. In S007, a tool posture candidate group in which the robot can operate is created for all points in the welding section using the redundancy degree of torch. In S008, for all the points in the welding section, the teaching point is selected as a teaching point posture reflecting the position and posture at the time of teaching from the candidate group of postures, and the selected teaching point posture is used for the front and rear points. Select the reflected posture. In S009, an approach point and an escape point are added. There are various additional methods. For example, the method described in Japanese Patent Application No. 8-87658 is used. In S010, the result of posture generation is reflected in the operation program. With the procedure described above, it is possible to provide a robot posture generation method that can create an operation program that operates reliably after posture generation and obtains a stable work state.
[0010]
Specific examples are shown below.
<First Embodiment> FIG. 7 shows a detailed flowchart of S008. The point before the teaching point Pi is hereinafter referred to as Ppre i. The point after the teaching point Pi is hereinafter referred to as Pposti point. (I = 0 to N-1, where N is the number of teaching points in the work section)
S101 means the start of S008. In S102, the teaching points Pi from the welding start point to the welding end point are increased one by one, and it is determined whether i exceeds the end point or not. In S103, the candidate of the teaching point Pi is compared with the state at the time of teaching, and the candidate closest to the state at the time of teaching is adopted as a result after generating the posture of the teaching point Pi. Here, the closest means the difference between the j-axis motor pulse Tij at the time of teaching of the teaching point Pi and a motor pulse Cijk of a candidate among candidates (k is a candidate number for distinguishing each candidate) for each axis. That is, a candidate having a minimum value Jik obtained by summing absolute values for all axes is adopted as a teaching point posture generation result. That means
Jik = Σj | Tij-Cijk |
Jmin = MINk (Jik) (1)
However, Σj represents the sum of all motor axes (j = 0 to M−1), M represents the number of robot motor axes, and MINk represents the minimum value when k is changed. If the candidate number when taking Jmin is k1, it is adopted as Cijk1 as the motor pulse of the posture generation result.
[0011]
In S104, the candidate of Ppre i point is compared with the state of the teaching point after posture generation, and the candidate closest to the state of the teaching point after posture generation is adopted as the result after the posture generation of Ppre i point. Here, the closest means the absolute value of the difference between each axis between the j-axis motor pulse Cijk1 determined in S103 of the teaching point Pi and a candidate motor pulse Cpreijk in the Pprei point candidate for all axes. That is, the candidate having the minimum total value Jpre ik is adopted as the teaching point posture generation result. That means
Jpre ik = Σj | Cijk1-Cpre ijk |
Jpre min = MINk (Jik) (2)
If the candidate number k2 when taking Jpre min is assumed, the motor pulse of the posture generation result is adopted as Cpre ijk2. In S105, the Pposti point candidate is compared with the post-posture teaching point state, and the candidate closest to the post-posture teaching point state is adopted as the post-posture posture generation result. Here, the closest means the value obtained by summing up the absolute values of the differences for each axis between the j-axis motor pulse Cijk1 determined in S103 of the teaching point Pi and a candidate candidate motor pulse Cpostijk. That is, the candidate with the smallest Jpostik is adopted as the orientation generation result of the teaching point. That means
Jpostik = Σj | Cijk1-Cpostijk |
Jpost min = MINk (Jik) (3)
If the candidate number k3 when Jpost min is taken, the motor pulse of the posture generation result is adopted as Cpostijk3. S106 means the end of S008. If it does in the above way, operation of each motor axis will become small, and as a result, it will become difficult to apply load to a motor and operation of a robot in a connection point will become smooth.
[0012]
<No.3Example> No.3In this embodiment, the square of the difference is used instead of the difference between the robot axes of the first embodiment, and the equations (1), (2), and (3) are as follows. is there.
Jik = Σj (Tij-Cijk) 2 (4)
Jpre ik = Σj (Cijk1-Cpreijk) 2 (5)
Jpostik = Σj (Cijk1-Cpostijk) 2 (6)
[0013]
<No.2Example> No.2In the embodiment, in the processing contents of S103, S104 and S105 of the first embodiment, a roll. pitch. Other than using the yaw angleFirst embodimentAnd the same for each. In this way, an operation program can be obtained in which the amount of change in the tool posture at the connection point is reduced.
[0014]
more thanIn the example, the degree of influence of each axis is made uniform, but it is also possible to adjust the degree of influence of each axis by adding a weighting coefficient to the equations (1) to (6). For example, an expression obtained by adding a weighting coefficient to Expression (1) is
Jik = ΣjWj * | Tij−Cijk | (7)
Thus, the value of Wj can be adjusted by changing each j.
[0015]
<No.4~10Embodiment> FIG.4~10It is a flowchart of an Example and is related with the detail of S007 of FIG. S201 means the start of S007. In S202, i of the teaching point Pi from the welding start point to the welding end point is incremented one by one, and it is determined whether i exceeds the end point or not. In S203, it is determined whether the teaching point Pi is a welding start point, a connection point, or a welding end point. If the teaching point Pi is a welding start point, the process proceeds to S216. If the teaching point Pi is a connection point, the process proceeds to S204. move on. In S204,5According to the embodiment, the tangent lines on the i point of the two paths from the Pi-1 point to the Pi + 1 point are the same tangent line (the tangent vector on the Pi point of the path from the Pi-1 point to the Pi point, and The angle formed by the tangent vector on the point Pi from the point Pi to the point Pi + 1 is less than a certain value (for example, 5 degrees or less). The target angle and the corner angle of the two sections Are the same value, Ppre i point and Pposti point are not added. In such a case, since the tool coordinate Tz axis does not change, the front and rear points are not necessary, and the memory time for storing the calculation time and the front and rear points can be saved. Conversely, if the tangent lines are not the same, or if the aim angle and the corner angle are not the same, the front and rear points are added.
[0016]
In S2054According to the embodiment, if both the distance between Pi-1 and Pi points and the distance between Pi and Pi + 1 points are less than a certain value (for example, 20 mm or less), the points Pprei and Pposti are not added. In S2064If the distance between Pi-1 and Pi points is less than a certain value (for example, 20 mm or less) according to the embodiment, the Pprei point is not added and the Pposti point is added. In S207,4If the distance between Pi and Pi + 1 points is less than a certain value (for example, 20 mm or less) according to the embodiment, Pprei point is not added and Pprei point is added. By performing the processing of S205 to S207, when the interval between the teaching points is short and the section where the optimum welding posture can be taken is short, the memory space for storing the calculation time and the front and rear points can be saved, and the posture creation error can be reduced. It is difficult to get out. In S208,Each teaching pointSet the coordinatesP pre i pointThe tool coordinate Tz axis is determined, and the optimum welding posture of Ppre i point is created. The tool coordinate Tz axis is a redundant degree of freedom axis, and when generating a tool posture candidate, initial reference coordinates for rotating the tool coordinate Tz axis are determined as follows. Since the Pi point is a connection point, the Pi-1 point exists, the teaching point coordinate of the Pi-1 point is rotated around the X axis, and the teaching point coordinate of the i-1 point is rotated by the angle of advance to teach the i-1 point. The coordinates rotated once by the point coordinate Y axis as the center are further rotated by the target angle, and the coordinates rotated by 2 degrees thus obtained are further rotated 180 degrees around the Y axis of the coordinates rotated by 2 degrees. The coordinates rotated by 3 degrees are set as initial reference coordinates at the point Ppre i.
[0017]
When the Ppre i point position is determined in S209, the initial position of the Ppre i point is added as the distance from the teaching point on the motion interpolation line determined according to the interpolation method or as a ratio to the distance between the teaching points. Although there are various designation methods (for example, the method described in Japanese Patent Application No. 7-259230 is used),6And the second7The Ppre i point position is set again while checking whether the tool and the workpiece shape interfere with each other according to the embodiment. First6Examples of workpiece shape setting methods include CAD information and offline information.7As a work shape setting method according to the embodiment, there is a method for estimating a work shape from route data of an operation program, joint information, or the like. In S210, a tool posture candidate for Ppre i point is created. With respect to the tool posture in which the initial reference coordinate at the point Ppre i is rotated by a predetermined angle dTz with the Tz axis of the initial reference coordinate at the point Ppre i as the rotation center,10According to the embodiment, reverse conversion is sequentially performed (a method for calculating each robot axis position from the tool coordinates), and it is checked whether each robot axis position is within the operation range (range in which each robot axis can be operated). And check whether the part attached to the tool (conduit cable in the torch) does not interfere, and the ones that were not caught by the check are listed as candidates, and rotated by dTz from the initial reference coordinates at the point Ppre i until one rotation , Ppre i point tool posture candidates are created.
[0018]
In S211, first,Teaching pointA tangent vector from the teaching point Pi to the teaching point Pi + 1 on the first axis of coordinates (see FIG. 12. However, since FIG. 12 is an example at the time of linear interpolation, the tangent vector is a straight line from Pi to Pi + 1. ). The second axis is an outer product vector of the vector from the teaching point Pi to the point Pref set as the reference point and the first axis vector. At this time, if a reference point is not set, the second axis is the outer product vector of the vertical direction vector and the first axis vector. The i teaching point coordinates are set as the outer product vector of the first axis and the second axis on the third axis. further,P postiThe tool coordinate Tz axis of the point is determined, and the optimum welding posture of the Pposti point is created. The tool coordinate Tz axis is a redundant degree of freedom axis, and when generating a tool posture candidate, initial reference coordinates for rotating the tool coordinate Tz axis are determined as follows. First, the teaching point coordinate of the Pi point is rotated by the swift angle about the X axis of the teaching point coordinate of the Pi point. Next, the rotated point is rotated around the teaching point coordinate Y axis of the Pi point after the rotation. Further, it is rotated 180 degrees around the Y axis of the rotated coordinates. The coordinates obtained in this way are used as initial reference coordinates at the point Pposti.
[0019]
When determining the position of the Pposti point in S212, the position where the initial Pposti point is added is specified as a distance from the teaching point on the motion interpolation line determined according to the interpolation method, or as a ratio to the distance between the teaching points. (There are various designation methods. For example, the method described in Japanese Patent Application No. 7-259230 is used.)6And the second7The Pposti point position is set again while checking whether the tool and the workpiece shape interfere with each other according to the embodiment. First6Examples of workpiece shape setting methods include CAD information and offline information.7As a work shape setting method according to the embodiment, there is a method for estimating a work shape from route data of an operation program, joint information, or the like. In S213, a tool posture candidate for the Pposti point is created. With respect to the tool posture in which the initial reference coordinate at the Pposti point is rotated by a predetermined angle dTz with the Tz axis of the initial reference coordinate at the Pposti point as the rotation center,10According to the embodiment, reverse conversion is sequentially performed (a method for calculating each robot axis position from the tool coordinates), and it is checked whether each robot axis position is within the operation range (range in which each robot axis can be operated). And check whether the part (conduit cable in the torch) attached to the tool does not interfere, and those that were not caught in the check are sequentially listed as candidates, and rotated by dTz from the initial reference coordinates at the Pposti point until one rotation, Pposti point tool posture candidates are created. In S214Each teaching pointSet the coordinatesP iThe tool coordinate Tz axis of the point is determined, and an intermediate posture of the Pi point is created. The tool coordinate Tz axis is a redundant degree of freedom axis, and when generating a tool posture candidate, initial reference coordinates for rotating the tool coordinate Tz axis are determined as follows.
[0020]
First, the intermediate coordinates are rotated by a corner angle around the X axis of the intermediate coordinates between the teaching point coordinates of the Pi-1 point and the teaching point coordinates of the Pi point. Next, the center coordinate Y axis after the rotation is further rotated by the target angle. Further, it is rotated 180 degrees around the rotated Y axis. The coordinates thus obtained are set as initial reference coordinates at the Pi point. In S215, when the Pi point posture is determined, the initial Pi point posture is6And the second7The initial reference coordinates at the Pi point are set again while checking whether the tool and the workpiece shape interfere with each other according to the embodiment. First6Examples of workpiece shape setting methods include CAD information and offline information.7As a work shape setting method according to the embodiment, there is a method for estimating a work shape from route data of an operation program, joint information, or the like. In S216,Each teaching pointSet the coordinatesP iThe tool coordinate Tz axis of the point is determined and the optimum welding posture of the Pi point is created. The tool coordinate Tz axis is a redundant degree of freedom axis, and when generating a tool posture candidate, initial reference coordinates for rotating the tool coordinate Tz axis are determined as follows. First, the teaching point coordinate of the Pi point is rotated by the swift angle about the X axis of the teaching point coordinate of the Pi point. Next, the rotated teaching point coordinate Y axis is further rotated by the target angle. Further, it is rotated 180 degrees around the rotated Y axis. The coordinates thus obtained are set as initial reference coordinates at the Pi point.
[0021]
In S217,Each teaching pointSet the coordinatesP iThe tool coordinate Tz axis of the point is determined and the optimum welding posture of the Pi point is created. The tool coordinate Tz axis is a redundant degree of freedom axis, and when generating a tool posture candidate, initial reference coordinates for rotating the tool coordinate Tz axis are determined as follows. First, the teaching point coordinate of the Pi point is rotated by a swift angle about the X-axis of the teaching point coordinate of the Pi-1 point. Next, the coordinate rotated about the teaching point coordinate Y-axis of the Pi-1 point is further rotated by a target angle. Further, it is rotated 180 degrees around the Y axis of the rotated coordinates. The coordinates thus obtained are set as initial reference coordinates at the Pi point. In S218, a tool posture candidate at the teaching point Pi is created. With respect to the tool posture in which the initial reference coordinate at the Pi point is rotated by dTz with the Z axis of the initial reference coordinate at the Pi point as the rotation center,10According to the embodiment, the reverse conversion is sequentially performed to check whether each robot axis position is within the operation range, whether the robot arm, the tool, and the part attached to the tool do not interfere with each other. Candidates are made as tool candidates for the teaching point Pi point until it rotates one dTz from the initial reference coordinate at the teaching point Pi until one rotation. S219 means the end of S007. Here4~10Although the example which implemented the Example simultaneously was described, of course, you may use separately.
[0022]
<No.11~13Embodiment> FIG.11Example and No.133 is a flowchart showing an embodiment, in which S304 is inserted between S003 and S004 in FIG. 1, and S311 is inserted after S009. In S304, when there is the same point in the welding section determined in S003 (when the positions of the two points are in the vicinity and within a certain range, for example, within 1 mm), the same point group is selected. The first point is chosen as the representative (any of the points can be chosen as the representative). The second12In the invention of the embodiment, as another method for determining the same point, the case where the tool posture and the position are both the same is used as the same point. In S311, if there is a section set as a section where posture generation is not performed, the added front and rear points in the section are deleted, and the posture of the teaching point generated posture is returned to the posture at the time of teaching. FIG. 10 shows the result after posture generation when a section in which posture generation is not performed is set, and will be described with reference to FIG. Although the postures P2, Ppost2, teaching point P3, and escape point are generated, the points Ppost1 and Ppre2 are not added, and the teaching point P1 and the teaching point P2 are postures at teaching. Here, the second11~13Although the example which implemented the Example simultaneously was described, of course, you may use separately.
[0023]
<No.14Embodiment> FIG.14It is a flowchart showing an Example, and the determination whether a candidate exists is added to FIG. First14According to the embodiment, when there is no candidate at the Pi point, the Ppre i point, or the Pposti point, if the front and rear points are not added, the front and rear points are not added. Inform the user that the group could not be created. There are various types of transmission means. For example, a point on the display of the teaching tool is displayed. S401 means the start of S008. In S402, the teaching point Pi from the welding start point to the welding end point is increased one by one, and it is determined whether i exceeds the end point or not. In S403, it is determined whether there are one or more candidates at the teaching point Pi. In S404,14According to the embodiment, since there is no candidate at the teaching point Pi, the posture after the posture generation is set as the tool posture at the time of teaching. At this time, information that “the posture cannot be generated and the tool posture at the teaching point Pi is the same as the tool posture at the time of teaching” is also transmitted to the user. S405 is the same as S103.
[0024]
In S406, it is determined whether there are one or more candidates at Ppre i point. In S407,14According to the embodiment, since there is no candidate at Ppre i point, Ppre i point is not added. At this time, information that “the posture cannot be generated and the Ppre i point is not added” is also transmitted to the user. S408 is the same as S104. In S409, it is determined whether or not there are one or more candidates at the Pposti point. In S410,14According to the embodiment, since there is no candidate at the Pposti point, no Pposti point is added. At this time, information that “the posture cannot be generated and no Pposti point is added” is also transmitted to the user. S411 is the same as S211. S412 means the end of S008. As mentioned above, although the Example which applied this invention to arc welding was mentioned and demonstrated, this invention is not limited at all by this.
[0025]
【The invention's effect】
As described above, according to the present invention, it is possible to generate a posture that is optimal for various operations performed by an industrial robot and that is optimal as a robot operation, thereby simplifying teaching operations and improving work efficiency. improves.
[Brief description of the drawings]
FIG. 1 is a flowchart showing posture generation processing of the present invention.
FIG. 2 is an explanatory diagram of a conventional technique.
FIG. 3 is an explanatory diagram of a target angle and a corner angle.
FIG. 4 is an explanatory diagram showing a tool shape and a tool coordinate system of the present invention.
FIG. 5 is an explanatory diagram of an operation program having teaching points P0 to P3 before posture generation according to the present invention.
FIG. 6 is an explanatory diagram of an operation program after posture generation according to the present invention.
FIG. 7 is a flowchart of detailed processing of S008 in FIG.
FIG. 8 is a flowchart of detailed processing of S007 in FIG.
FIG. 911Example and No.13It is a flowchart showing an Example.
FIG. 10 is an explanatory diagram of a posture generation result when a section in which posture generation is not performed is set.
FIG. 1114It is a flowchart showing an Example.
FIG. 12 is an explanatory diagram of i teaching point coordinates of a teaching point Pi.
Claims (14)
正確なツール先端位置及びラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、
前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、
前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも1つの点を追加する位置を設定し、
前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、
前記教示点及び前記前後点の前記候補群から1つのツール姿勢を選ぶとき、前記教示点では、教示点における候補群中のロボット各軸位置と教示時ロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを姿勢生成後教示点として選び、前記教示点の前点では、姿勢生成後教示点のロボット各軸位置と前点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを選び、
前記教示点の後点では、姿勢生成後教示点のロボット各軸位置と後点における候補群中のあるロボット各軸位置との差の関数を全軸分合計した値が最小となるロボット各軸位置の候補1つを選ぶことを特徴とする産業用ロボットの姿勢生成方法。When the teaching posture of the industrial robot of the teaching playback method has one redundancy degree of freedom,
Prepare an operation program with multiple teaching points for accurate tool tip position and rough tool posture.
For each path between the teaching points, set a value that defines a degree of freedom other than the redundancy degree of freedom,
A work section is identified from the operation program, and a position for adding at least one point before and after the teaching point is set based on a predetermined condition.
For the teaching point and the added front and rear points, a tool posture candidate group is created that allows the robot to operate using the specified value and the redundancy degree of freedom,
When one tool posture is selected from the candidate group of the teaching point and the front and rear points, the teaching point has a function of the difference between each axis position of the robot in the candidate group at the teaching point and each axis position of the robot at teaching. One candidate for each axis position of the robot with the minimum value for the total of the axes is selected as the post-pose generation teaching point, and at the previous point of the teaching point, the robot axis position of the post-posture generation teaching point and the candidate group at the previous point Select one candidate for each robot axis position that minimizes the sum of the functions of the differences from each robot axis position for all axes.
At the rear point of the teaching point, each axis of the robot where the sum of all the axes of the difference function between the robot axis position of the teaching point after posture generation and the robot axis position in the candidate group at the rear point is the minimum. A method for generating an attitude of an industrial robot, wherein one candidate position is selected.
正確なツール先端位置、及び、ラフなツール姿勢の複数教示点を持つ動作プログラムを用意し、
前記教示点間の経路毎に、前記冗長自由度以外の自由度を規定する値を設定し、
前記動作プログラムから作業区間を特定し、あらかじめ決められた条件に基づいて、教示点の前後に少なくとも1つの点を追加する位置を設定し、
前記教示点及び追加された前後点に対し、前記規定値と冗長自由度を利用してロボットが動作可能なツール姿勢候補群を作成し、
前記教示点及び前記前後点の前記候補群から1つのツール姿勢を選ぶとき、前記教示点では、教示時ツール座標から教示点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを姿勢生成後教示点として選び、
前記教示点の前点では、姿勢生成後教示点のツール座標から前点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを選び、
前記教示点の後点では、姿勢生成後教示点のツール座標から後点における候補群中のあるツール座標に回転変換するときに用いられるロール.ピッチ.ヨーのそれぞれの回転角を変数とする関数の和が最小となるツール座標の候補1つを選ぶことを特徴とする産業用ロボットの姿勢生成方法。When the teaching posture of the industrial robot of the teaching playback method has one redundancy degree of freedom,
Prepare an operation program with multiple tool points for accurate tool tip position and rough tool posture.
For each path between the teaching points, set a value that defines a degree of freedom other than the redundancy degree of freedom,
A work section is identified from the operation program, and a position for adding at least one point before and after the teaching point is set based on a predetermined condition.
For the teaching point and the added front and rear points, a tool posture candidate group is created that allows the robot to operate using the specified value and the redundancy degree of freedom,
When selecting one tool posture from the teaching point and the candidate group of the front and rear points, the teaching point is a roll used when rotationally converting from a tool coordinate at teaching to a certain tool coordinate in the candidate group at the teaching point. pitch. Select one tool coordinate candidate that minimizes the sum of the functions with each yaw rotation angle as a variable, as a teaching point after posture generation,
In the previous point of the teaching point, a roll used when rotationally converting the tool coordinate of the teaching point after posture generation to a certain tool coordinate in the candidate group at the previous point. pitch. Select one tool coordinate candidate that minimizes the sum of the functions with each yaw rotation angle as a variable,
At the rear point of the teaching point, a roll used for rotational conversion from the tool coordinates of the teaching point after posture generation to a certain tool coordinate in the candidate group at the rear point. pitch. A method for generating an attitude of an industrial robot, wherein one candidate of tool coordinates that minimizes the sum of functions having respective rotation angles of yaw as variables is selected.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00430898A JP3902310B2 (en) | 1998-01-12 | 1998-01-12 | Posture generation method for industrial robots |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00430898A JP3902310B2 (en) | 1998-01-12 | 1998-01-12 | Posture generation method for industrial robots |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11198073A JPH11198073A (en) | 1999-07-27 |
JP3902310B2 true JP3902310B2 (en) | 2007-04-04 |
Family
ID=11580873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00430898A Expired - Fee Related JP3902310B2 (en) | 1998-01-12 | 1998-01-12 | Posture generation method for industrial robots |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3902310B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728619A (en) * | 2017-10-16 | 2018-02-23 | 邦鼓思电子科技(上海)有限公司 | A kind of planing method for robot teaching path |
DE102018009169A1 (en) | 2017-11-28 | 2019-07-11 | Fanuc Corporation | Control device for limiting the speed of a robot |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5276527B2 (en) * | 2009-06-16 | 2013-08-28 | 株式会社ダイヘン | Arc welding robot control method and arc welding robot control apparatus |
JP2011183528A (en) * | 2010-03-10 | 2011-09-22 | Mitsubishi Electric Corp | Automatic programming device and operation program thereof |
JP6418483B2 (en) * | 2014-06-18 | 2018-11-07 | 株式会社Ihi | Processing trajectory generating apparatus and method |
CN110888422B (en) * | 2018-08-21 | 2022-05-27 | 广东大冶摩托车技术有限公司 | Two-dimensional tracking robot spraying programming method |
-
1998
- 1998-01-12 JP JP00430898A patent/JP3902310B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728619A (en) * | 2017-10-16 | 2018-02-23 | 邦鼓思电子科技(上海)有限公司 | A kind of planing method for robot teaching path |
CN107728619B (en) * | 2017-10-16 | 2020-06-23 | 邦鼓思电子科技(上海)有限公司 | Planning method for robot teaching path |
DE102018009169A1 (en) | 2017-11-28 | 2019-07-11 | Fanuc Corporation | Control device for limiting the speed of a robot |
US10828776B2 (en) | 2017-11-28 | 2020-11-10 | Fanuc Corporation | Control device for limiting speed of robot |
DE102018009169B4 (en) * | 2017-11-28 | 2020-12-10 | Fanuc Corporation | Control device for limiting the speed of a robot |
Also Published As
Publication number | Publication date |
---|---|
JPH11198073A (en) | 1999-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4698777A (en) | Industrial robot circular arc control method for controlling the angle of a tool | |
US8972056B2 (en) | Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5) | |
Li et al. | Generating tool-path with smooth posture change for five-axis sculptured surface machining based on cutter’s accessibility map | |
Horsch et al. | Cartesian spline interpolation for industrial robots | |
JPS59708A (en) | Path motion manipulator performing adaptive speed control | |
US5341458A (en) | Method of and system for generating teaching data for robots | |
EP0380678B1 (en) | Method of controlling tool attitude of a robot | |
JPH07168617A (en) | Off-line teaching method for robot | |
JP2004094399A (en) | Control process for multi-joint manipulator and its control program as well as its control system | |
EP2523786B1 (en) | Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5) | |
JP3902310B2 (en) | Posture generation method for industrial robots | |
JP2004220435A (en) | Numerical control device | |
JP3608673B2 (en) | Operation program creation method for industrial robots | |
JPH09201784A (en) | Teaching device for robot | |
JPH09212229A (en) | Teaching device for robot | |
JPH08155647A (en) | Weaving controller of welding robot | |
JPS61253510A (en) | Method for confirming robot control data | |
JP2567834B2 (en) | How to create robot control data | |
JP2827268B2 (en) | Creating teaching data for multiple robots | |
JP2000112510A (en) | Robot teaching method and its device | |
JPH11226886A (en) | Correcting method for robot track | |
JP2947417B2 (en) | Robot control method | |
JPH09128024A (en) | Method for optimizing operation program of robot having redundant axis | |
JP2878957B2 (en) | Automatic verification method in offline teaching | |
Balkan | Trajectory Control for Robotic Arc Welding Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061027 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061228 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150112 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |