JP3884928B2 - 多関節ロボットの姿勢算出方法および姿勢算出装置 - Google Patents
多関節ロボットの姿勢算出方法および姿勢算出装置 Download PDFInfo
- Publication number
- JP3884928B2 JP3884928B2 JP2001208539A JP2001208539A JP3884928B2 JP 3884928 B2 JP3884928 B2 JP 3884928B2 JP 2001208539 A JP2001208539 A JP 2001208539A JP 2001208539 A JP2001208539 A JP 2001208539A JP 3884928 B2 JP3884928 B2 JP 3884928B2
- Authority
- JP
- Japan
- Prior art keywords
- posture
- joints
- calculation
- equation
- joint
- 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
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、多関節ロボットの姿勢算出方法および姿勢算出装置に関し、特に、多関節ロボットの先端部の位置および傾斜角度が決まっているときに、各関節の姿勢値を算出する多関節ロボットの姿勢算出方法および姿勢算出装置に関する。
【0002】
【従来の技術】
工場の製造ラインでは、溶接、塗装および組み立て作業等に多関節ロボットが採用されている。
【0003】
通常、多関節ロボットの先端部には作業に応じたエンドエフェクタ(作業ツール)が取り付けられている。エンドエフェクタが空間上の任意の位置において任意の姿勢をとることを可能にするためには空間上の位置を示すX、Y、Z座標で表される3つの自由度と、傾斜角度を示すロール、ピッチ、ヨーで表される3つの自由度との合計6つの自由度が必要であり、これを実現するために、多関節ロボットは6つの関節を有しているものが多い。
【0004】
また、多関節ロボットが広範に採用されるのに従い、生産ラインに対しての高密度配置によるライン長あたりの生産性の向上が望まれ、1つの工程内で複数の多関節ロボットが作業を分担しながら動作する事例や、ワークや治具、搬送装置等の混在する中で多関節ロボットが作業を行うといった事例が増えている。この場合、多関節ロボット同士やその他の干渉物が、特に関節部分で接触することがないように、十分に注意を払って動作のプログラムまたはティーチングを行う必要がある。
【0005】
【発明が解決しようとする課題】
ところで、多関節ロボットの動作をプログラミングまたはティーチングする際には、エンドエフェクタの位置および傾斜角度は予め与えられていることが多い。例えば、溶接作業であれば溶接のポイントと被溶接板が設定されている向きとにより、エンドエフェクタの位置および傾斜角度も決定される。
【0006】
このような場合、多関節ロボットの各関節の姿勢を決定するためには、エンドエフェクタの位置および傾斜角度を与えられたパラメータとして、各関節の姿勢を求める方程式を導出してこれを解くこととなる。
【0007】
ところが、多関節ロボットの構造が、図11に示すようなオフセット量Wを持つときには関節の姿勢を求める方程式を解析的に解くことはできないということが知られている。このように、解析的に姿勢を求めることができない構造の多関節ロボットについては、数値解法を適用することになり、各関節について適当な姿勢値を与えて、その姿勢値を初期値としてニュートン・ラフソン(Newton-Raphson)法などの収束計算を行う方法がある。この方法により、所望のエンドエフェクタの位置および傾斜角度が得られるように収束させて各関節についての姿勢値を求めることができる。
【0008】
また、高密度配置による多関節ロボット同士や、その他の干渉物との接触を回避する観点からは、なるべく多くの姿勢を求めておけば選択肢が多くなるので望ましいが、収束計算においては、1つの初期値から1つの姿勢しか求めることができない。例えば、適当なエンドエフェクタの位置および傾斜角度に対して、理論上、16通りの姿勢をとり得る多関節ロボットがあるとして、この16通りの姿勢を収束計算によって求めるためには16組の初期値が必要である。しかし、この16組の初期値をどのように選定すればよいのかを示す具体的な手法がない。
【0009】
つまり、初期値の選び方によっては、異なる初期値であっても同一解である姿勢に収束してしまったり、収束速度が遅い、または収束しないなどの不都合が発生することがある。
【0010】
本発明はこのような課題を考慮してなされたものであり、先端部の位置および傾斜角度から他の部分の姿勢を解析的に特定することのできない構造の多関節ロボットに対して、また、高密度に配置された多関節ロボット同士やその他の干渉物に対して、他の部分の姿勢を収束計算により求めようとするとき、その収束計算を実行するための初期値として、適切な近似姿勢を算出することを可能にする多関節ロボットの姿勢算出方法および姿勢算出装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明に係る多関節ロボットの姿勢算出方法は、6つの関節を有する多関節ロボットにおける先端部の位置および傾斜角度から前記関節の姿勢値を算出する多関節ロボットの姿勢算出方法において、前記関節から選択した2または3の関節の姿勢変数と、前記先端部の位置または傾斜角度とを関係付ける第1方程式を導出する第1方程式導出過程と、前記第1方程式が近似的に成立するための前記選択した2または3の関節の姿勢変数の近似姿勢値を算出する第1算出過程と、近似姿勢値が既に求められている関節の姿勢変数の少なくとも1つと、さらにその他の関節のうち1つの姿勢変数とを関係付ける第2方程式を導出する第2方程式導出過程と、前記第2方程式を用いて、前記その他の関節のうち1つの近似姿勢値を求める第2算出過程と、前記第2方程式導出過程と前記第2算出過程を繰り返し、6つの関節の近似姿勢値を算出する第3算出過程と、前記第2算出過程と前記第3算出過程にて求めた6つの関節の近似姿勢値を初期値として、前記先端部の位置および傾斜角度を満たす前記関節の姿勢値を収束計算により算出する第4算出過程とを有し、前記第1算出過程では、前記選択した2または3の関節について可動範囲を所定の微小区分に分割し、前記微小区分ごとの組み合わせについて前記第1方程式が近似的に成立するか否かを調査し、誤差の小さい組み合わせを理論的に存在する解の数だけ選択することにより、前記選択した2または3の関節の姿勢変数についての前記近似姿勢値を算出することを特徴とする。
【0012】
これにより、多関節ロボットの先端部に取り付けられたエンドエフェクタ等の位置および傾斜角度から他の関節部分の姿勢を解析的に特定することのできない構造の多関節ロボットに対して、収束計算により他の関節部分の姿勢を求めようとするとき、その収束計算を実行するための初期値として、適切な近似姿勢を算出することができる。
【0019】
また、本発明に係る姿勢算出装置は、6つの関節を有する多関節ロボットにおける先端部の位置および傾斜角度から前記関節の姿勢値を算出する多関節ロボットの姿勢算出装置において、前記関節から選択した2または3の関節の姿勢変数と、前記先端部の位置または傾斜角度とを関係付ける第1方程式と、近似姿勢値が既に求められている関節の姿勢変数の少なくとも1つと6つの関節の姿勢変数のうち前記第1方程式に含まれない姿勢変数との関係をそれぞれ表す複数の第2方程式とを記憶する記憶部と、前記第1方程式が近似的に成立するための前記選択した2または3の関節の姿勢変数の近似姿勢値を算出する第1算出部と、前記第2方程式を用いて、前記その他の関節のうち1つの近似姿勢値を求める第2算出部と、前記第2算出部を繰り返し実行させ、6つの関節の近似姿勢値を算出する第3算出部と、前記第3算出部にて求めた6つの関節の近似姿勢値を初期値として、前記先端部の位置および傾斜角度を満たす前記関節の姿勢値を収束計算により算出する手段とを有し、前記第1算出部は、前記選択した2または3の関節について可動範囲を所定の微小区分に分割し、前記微小区分ごとの組み合わせについて前記第1方程式が近似的に成立するか否かを調査し、誤差の小さい組み合わせを理論的に存在する解の数だけ選択することにより、前記選択した2または3の関節の姿勢変数についての前記近似姿勢値を算出することを特徴とする。
【0020】
【発明の実施の形態】
以下、本発明に係る多関節ロボットの姿勢算出方法および姿勢算出装置に適用した実施の形態を図1〜図10を参照しながら説明する。
【0021】
本実施の形態は、基本的に、6軸(6つの関節)をもつ多関節ロボットから2つの関節を選択し、この2つの関節とエンドエフェクタの位置またはエンドエフェクタの傾斜角度との関係を示す方程式を導出して、この方程式を満たす近似姿勢値を検索するものである。求まった近似姿勢値に基づいて、他の関節の近似姿勢値も算出した後、これらの近似姿勢値を初期値として収束計算を実施することにより多関節ロボットの姿勢を求める。
【0022】
図1に示すように、本実施の形態において用いるロボットシステム10は、機枠12に高密度に配置された4台の多関節ロボット14からなるロボット群16と、ロボット群16の動作、姿勢等を算出するティーチング装置(多関節ロボットの姿勢算出装置)18と、ティーチング装置18で作成したデータに基づいてロボット群16を制御するロボット制御部20とを有する。
【0023】
4台の多関節ロボット14は全て同じ構造であり、図2に示すように、機枠12に設定された基台40の中心軸である軸J1に対して回転可能なベース部42と、ベース部42の先端部横方向の軸J2を中心にして揺動可能な第1アーム部44と、第1アーム部44に対して伸縮可能な第2アーム部46と、第2アーム部46の軸芯である軸J4を中心にして回転可能な第1手首部48と、第1手首部48の先端部横方向の軸J5を中心にして揺動可能な第2手首部50と、第2手首部50の軸芯である軸J6を中心にして回転可能な先端部52と、先端部52に取り付けられたエンドエフェクタ54とから構成される。なお、以下の説明では、多関節ロボット14のうち機枠12側を後端側と規定し、後端からエンドエフェクタ54へ向かう側を先端側と規定する。
【0024】
エンドエフェクタ54は、溶接を行うための、所謂、C型ガンユニットであり、開閉する一対の溶接電極56a、56bを有する。この溶接電極56a、56bが閉じて接するポイントが溶接打点TCP(Tool Center Point)であり、軸J6上に設定されている。また、溶接打点TCPを基準にして、軸J6上の先端側を向く単位ベクトルをベクトルVとして規定する。このベクトルVは、エンドエフェクタ54の傾斜角度を示す。
【0025】
多関節ロボット14の各部の寸法を次のように規定する。すなわち、基台40の後端部から軸J2までの距離をL1、軸J1と軸J4との幅方向の距離をL2、第2アーム部46が最も縮退した状態における軸J2と軸J5との距離をL3、軸J4と軸J6との幅方向の距離をL4、軸J5と溶接打点TCPとの距離をL5とする。
【0026】
さらに、軸J1、J2、J4、J5およびJ6におけるベース部42、第1アーム部44、第1手首部48、第2手首部50および先端部52の回転、揺動角度(姿勢変数)をθ1、θ2、θ4、θ5およびθ6とする。また、第2アーム部46の第1アーム部44に対する伸縮量をλ3とする。
【0027】
基台40の端部で軸芯(軸J1)と交差する点を原点Oと規定し、この原点Oを基準として先端側をZ軸、多関節ロボット14の幅方向をY軸、Y軸およびZ軸に垂直で図2の紙面の手前方向をX軸(図3参照)と規定する。
【0028】
図3に示すように、ベクトルVを原点Oに平行移動すると仮定したとき、ベクトルVがX−Y平面、Y−Z平面、Z−X平面に映し出される写像ベクトルをそれぞれ、α6(α6X、α6Y、α6Z)、β6(β6X、β6Y、β6Z)およびγ6(γ6X、γ6Y、γ6Z)とする。ここで、括弧内の3つのパラメータはそれぞれの写像ベクトルのX座標成分、Y座標成分、Z座標成分である。
【0029】
図4に示すように、ティーチング装置18は、制御部70と、表示装置としてのモニタ72と、入出力装置としてのキーボード74およびマウス76とを備える。制御部70は、制御手段としてのCPU78と、記憶部であるROM80およびRAM82と、ハードディスク84と、外部機器との入出力制御を行うインターフェース86と、外部記録媒体88aを制御する記録媒体ドライブ88と、ティーチングデータを算出および作成するデータ算出部90と、ティーチングデータに基づきモニタ72の画面上でシミュレーションを行うシミュレーション部92とを有する。このシミュレーション部92は、3次元CADをベースにしており多関節ロボット14のモデルを作成したり、該モデル相互の干渉(接触等)を調査する機能を持つ。
【0030】
図5に示すように、データ算出部90は、エンドエフェクタ54の姿勢および傾斜角度とから、姿勢変数θ1およびθ4の16組の近似値を算出する第1算出部90aと、姿勢変数θ1およびθ4に基づいて他の姿勢変数について近似値を算出する第2算出部90bと、第1および第2算出部90a、90bで求めた姿勢変数の近似値を初期値として収束計算を行う収束計算部90cを有する。
【0031】
多関節ロボット14の姿勢を算出する方法の説明に先立ち、溶接打点TCPの位置を算出する方法について説明する。
【0032】
溶接打点TCPの位置座標をP6(p6X、p6Y、p6Z)としたとき、この位置座標P6は、姿勢変数θ1、θ2、λ3、θ4〜θ6および距離L1〜L5によって一意的に決まるものであり、各揺動軸および伸縮軸における同時変換行列を乗算することによって求めることができる。
【0033】
軸J1、J2、第2アーム部46の伸縮軸、軸J4、J5およびJ6における同時変換行列A1、A2、A3、A4、A5、A6はそれぞれ以下のように表される。
【0034】
【数1】
【0035】
【数2】
【0036】
【数3】
【0037】
【数4】
【0038】
【数5】
【0039】
【数6】
【0040】
また、溶接打点TCPの位置座標P6および傾斜角度α6、β6、γ6をそれぞれ転置行列で表すと、次の(7)式〜(10)式を得る。
【0041】
P6=[p6X、p6Y、p6Z]T …(7)
α6=[α6X、α6Y、α6Z]T …(8)
β6=[β6X、β6Y、β6Z]T …(9)
γ6=[γ6X、γ6Y、γ6Z]T …(10)
さらに、この表現方法を用いると、傾斜角度α6、β6、γ6と同時変換行列A1、A2、A3、A4、A5およびA6との関係は次の(11)式のように表される。
【0042】
【数7】
【0043】
このように同時変換行列A1、A2、A3、A4、A5およびA6を用いると、溶接打点TCPの位置座標P6および傾斜角度α6、β6、γ6を算出することができる。
【0044】
次に、溶接打点TCPの位置座標P6および傾斜角度α6、β6、γ6が与えられているときに、多関節ロボット14の姿勢変数、すなわち、θ1、θ2、λ3、θ4〜θ6を算出する方法について図6〜図10を参照しながら説明する。
【0045】
まず、ステップS1において、(11)式を展開して次の連立方程式である(12)式〜(23)式をたてる。なお、以下の式ではsinθNをSN、cosθNをCN(ただし、N=1、2、4、5、6とする。)と簡略化して表記する。
【0046】
これらの(12)式〜(23)式は、L4の、所謂、オフセット量が「0」であれば、θ1、θ2、λ3、θ4〜θ6について解析的に解くことができるが、本実施の形態ではオフセット量に相当するL4が、L4≠0であることから、解析的に解くことはできない。よって、次のステップS2以降の数値解法を行ってθ1、θ2、λ3、θ4〜θ6を解く。
【0047】
ステップS2において、(12)式〜(23)式のうち適当な式を選択して、互いの式の関係から6つの姿勢変数θ1、θ2、λ3、θ4〜θ6のうち4つを消去し、2つの姿勢変数の式を導出する。
【0048】
例えば、(14)式、(15)式、(18)式および(19)式を選択すると、S2、S4、S5、C2、C5が消去され、2つの姿勢変数θ1およびθ4で定まるS1、C1およびC4を含む次の(24)式(第1方程式)を得る。この(24)式はRAM82に記憶する。
【0049】
p6XS1−p6YC1=L5(γ6X−γ6YC1)−L4C4+L2 …(24)
この(24)式に含まれる姿勢変数はθ1およびθ4の2つだけであり、しかも、簡易な関係式になっているので演算が容易である。
【0050】
次に、ステップS3において、(24)式の姿勢変数θ1およびθ4に走査的に数値を代入して誤差を調べる。
【0051】
具体的には、姿勢変数θ1およびθ4の可動範囲をそれぞれ微小区分、例えば100等分に分割し、これらの微小区分内の代表する数値を、RAM82に記憶した(24)式に代入する。そして、右辺と左辺との誤差を記録する。図7は、この記録のための書式を模式的に表したものであり、姿勢変数θ1、θ4のそれぞれが100分割され、100×100のマトリックス状に形成されている。
【0052】
次に、ステップS4において、(24)式が近似的に成立する姿勢変数θ1およびθ4の組をデータ算出部90によって算出する。
【0053】
具体的には、図7の書式に記録した誤差の絶対値が極小値をとる箇所を選択する。このとき、選択する箇所の数は多関節ロボット14が取りうる姿勢の理論的組み合わせの数だけ選択する。すなわち、図8Aおよび図8Bに示すように、溶接打点TCPの位置座標P6および傾斜角度を示すベクトルVが同一であっても、θ1、θ2、λ3、θ4〜θ6の組み合わせによって多関節ロボット14が取りうる姿勢は複数通り存在するものであり、本実施の形態の場合は論理的に16通りの組み合わせが存在することが分かっている。
【0054】
このことから、図7に示す書式においても、極小値を示す箇所が16組存在することとなり、これらの16組の姿勢変数θ1、θ4を選択すればよい。
【0055】
なお、図7の書式で、極小値が連続している場合は、その連続している区画同士は同一の組み合わせとみなす。
【0056】
多関節ロボット14の姿勢を求める他の方法としては、前記の連立方程式である(12)式〜(23)式に対して6つの姿勢変数θ1、θ2、λ3、θ4〜θ6の全ての組み合わせを走査するように検索を行う手法も考えられるが、それぞれの関節の可動範囲を100等分として検索を行うと、その組み合わせは1006通り存在する。これらの組み合わせを比較的複雑な式である(12)式〜(23)式に代入しながら検索を行うことは処理負担が非常に大きく、コンピュータを使用しても長時間を要する。
【0057】
これに対し、前記ステップS3およびS4の処理は、(24)式に対して、まずθ1およびθ4の2つの姿勢変数だけについて検索を行うもので、組み合わせの数は1002通りだけで済み、非常に短時間に結果を得ることができる。
【0058】
次に、ステップS5において、θ1およびθ4を含み、さらに別の姿勢変数を含む方程式(第2方程式)を導出する。具体的には、(14)式および(18)式から次の(25)式を導出する。
【0059】
γ6YC1−γ6XS1=S4S5 …(25)
この(25)式を次の(26)式に変形してRAM82に記憶する。
【0060】
θ5=Sin-1((γ6YC1−γ6XS1)/S4) …(26)
次に、ステップS6において、データ算出部90の機能により、RAM82に記憶した(26)式にステップS4で算出した16組の姿勢変数θ1、θ4をそれぞれ代入して解くことにより16個の姿勢変数θ5を算出する。
【0061】
以下、同様にして他の姿勢変数を順次算出する。
【0062】
具体的には、θ1、θ4、θ5およびθ6を含む次の(27)式を(12)式および(16)式から導出し、この(16)式にθ1、θ4、θ5を代入することによりθ6を算出する。
【0063】
α6YC1−α6XS1=S4C5C6+C4S6 …(27)
次に、θ4、θ6およびθ2を含む次の(28)式を(20)式および(21)式から導出し、この(28)式にθ4、θ6を代入することによりθ2を算出する。
【0064】
α6Z+β6ZS6+β6Z=S2S4 …(28)
さらに、θ2、θ4、および、λ3を含む次の(29)式を(22)式および(23)式から導出し、この(29)式に姿勢変数θ2、θ4を代入してλ3を算出する。
【0065】
p6Z=γ6ZL5+L4S2S4+(L3+λ3)C2+L1 …(29)
このようにして、(24)式が略成立する姿勢変数θ1とθ4との組み合わせに基づいて、他の姿勢変数θ2、λ3、θ4、θ5およびθ6についても16組のすべてについて順次算出することができる。これらの16組の姿勢変数θ1、θ2、λ3、θ4〜θ6は、(24)式が近似的に成立する条件において求めた近似姿勢値であり、多少の誤差を含んでいる。そこで、次のステップS7でこれらの誤差を「0」に収束させる。
【0066】
ステップS7において、ステップS5およびS6で求めた多関節ロボット14の姿勢を示す16組の近似姿勢値としての姿勢変数θ1、θ2、λ3、θ4〜θ6を初期値として設定し、前記収束計算部90cにより所定の収束計算を適用する。
【0067】
例えば、ニュートン・ラフソン法を適用するならば、6つの姿勢変数θ1、θ2、λ3、θ4〜θ6をqと表し、連立方程式である(12)式〜(23)式をr=R(q)と置いたとき、ヤコビ行列Jを次の(30)式により求める。
【0068】
J=dR/dq=[∂Ri/∂qi] …(30)
ここで、iは繰り返し計算の繰り返し回数を表すパラメータである。
【0069】
ヤコビ行列Jを用いて次の(31)式を所定回数だけ、i+1を次のiに置き換えながら繰り返して行うことにより収束計算を行う。
【0070】
qi+1=qi+kJ-1(qi)(r−R(qi)) …(31)
ここで、kは計算の収束性を改善するための定数である。
【0071】
これにより、16組の姿勢変数θ1、θ2、λ3、θ4〜θ6の誤差をそれぞれ「0」に収束させることができるので、多関節ロボット14の取りうる姿勢が16通り求まったこととなる。
【0072】
なお、ニュートン・ラフソン法は、比較的収束速度が速い数値解法であり、他の収束計算に比較すると高速に算出することが可能となり好適である。ニュートン・ラフソン法を拡張した方法を適用してもよいことはもちろんである。
【0073】
次に、ステップS8において、求まった16組の姿勢変数θ1、θ2、λ3、θ4〜θ6、すなわち多関節ロボット14の16通りの姿勢をシミュレーション部92を用いてモニタ72の画面上に表示させ、4台の多関節ロボット14同士が接触または干渉することがないかを確認する。そして、16通りの姿勢のうちから動作上の前後の姿勢や安全性を勘案して最適である姿勢を選定する。
【0074】
ステップS8のシミュレーションについて、図9を参照しながらより具体的に説明すると、操作者は入力装置のキーボード74及びマウス76を操作することによってエンドエフェクタ54の位置座標P6と傾斜角度を示すベクトルVを入力する。入力した位置座標P6およびベクトルVはインターフェース86を介してデータ算出部90に伝えられる。そして、このデータ算出部90では、上述のとおり第1算出部90a、第2算出部90bおよび収束計算部90cの機能によって、多関節ロボット14の姿勢を16通り算出する。
【0075】
次に、算出された多関節ロボット14の16通りの姿勢はシミュレーション部92へ伝えられて、多関節ロボット14をモデル化した画像をモニタ72の画面上に表示する。
【0076】
操作者は、このモデル化した16通りの画像をモニタ72の画面上で視認しながら、シミュレーション部92が持つ干渉確認機能などを用いて、多関節ロボット14同士および他の構造物との接触、干渉の有無を確認する。そして、16通りの画像のうち最適であるものを選択する。選択した姿勢は、多関節ロボット14の正式な姿勢として決定されたことを、入力装置であるキーボード74,マウス76により入力し、指定された姿勢の姿勢変数はRAM82またはハードディスク84に記憶されるとともに、ロボット制御部20にも伝えられ、実機のロボット群16の制御に利用される。
【0077】
次に、シミュレーション機能を用いることなく、実際の多関節ロボット14を直接的に動作させて姿勢の良否を判断する例について図10を参照しながら説明する。
【0078】
図10のロボット制御部20には、制御部70のデータ算出部90と同じ機能をもったデータ算出部91が組み込まれており、入力装置79を介して入力されたデータに基づいて多関節ロボット14の姿勢を算出することができる。またロボット制御部20は、ロボット群16の図示しないアクチュエータや角度センサとの入出力処理を行いロボット群16を制御するインターフェース87を有する。
【0079】
操作者は、入力装置79により、エンドエフェクタ54の位置座標P6と傾斜角度を示すベクトルVを入力する。入力した位置座標P6およびベクトルVはデータ算出部91に伝えられ、上述の場合と同様に第1算出部90a、第2算出部90bおよび収束計算部90cの機能によって、多関節ロボット14の姿勢を16通り算出する。
【0080】
次に、算出された多関節ロボット14の16通りの姿勢変数はインターフェース87に伝えられ、その姿勢変数に基づき、多関節ロボット14を実際に動作させる。操作者は、多関節ロボット14の実際の動作を直接的に確認し、姿勢の良否を判断する。このとき、多関節ロボット14の動作は、低速で動作する設定にしておき、多関節ロボット14同士が接触しそうになったときには、入力装置79からの指令により停止させるようにするとよい。
【0081】
このようにして、16通りの姿勢を実際の動作によって確認して、そのうち最適であると判断したものを入力装置79から入力指示し、所定の記憶部に記憶するようにする。
【0082】
このように本実施の形態に係る多関節ロボットの姿勢算出方法および姿勢算出装置によれば、多関節ロボット14の先端部に設けたエンドエフェクタ54の位置座標P6および傾斜角度を表すベクトルVが与えられたとき、これらの値と多関節ロボット14の各関節との関係を表す(12)式〜(23)式から、所定の2つの関節の姿勢変数θ1、θ4を含む第1方程式を導出する。そして、この第1方程式を近似的に充足する関節の姿勢値を調査、算出するようにしたので、多関節ロボット14の構造が解析的に解くことができない形状であっても、まず近似的に2つの関節の姿勢値を調査、算出することができる。このとき、調査する組み合わせは各関節の分割数の2乗回だけで済むので、短時間で調査できる。
【0083】
さらに、求まった2つの関節の姿勢値を用いて、他の関節との関係を表す第2方程式を導出して、この第2方程式から他の関節についても近似姿勢値を順次算出することができる。
【0084】
また、このようにすると、多関節ロボット14が理論上取りうる姿勢の数の全ての組み合わせについて各関節の近似姿勢値を求めることができる。
【0085】
そして、求めた近似姿勢値を初期値としてニュートン・ラフソン法などの収束計算を適用すれば、誤差を「0」に収束させて真の姿勢値を算出することができる。
【0086】
さらにまた、本実施の形態によれば、収束計算において、初期値としての近似姿勢値は当初から小さい誤差しか含まないので、少ない回数の繰り返し計算で誤差を「0」に収束させることができる。また、初期値としての近似姿勢値は16通り用意されているが、これらの初期値はそれぞれ個別の姿勢値に収束し、特定の同一姿勢に収束してしまうことがない。従って、多関節ロボット14が取りうる16通りの姿勢を全て把握することができる。
【0087】
上述の実施の形態では、近似計算を行うために最初に用いる第1方程式は、θ1およびθ4の2つの関節に関する姿勢変数値を含む形式としたが、選択する変数はθ1およびθ4以外であってもよく、また、式の導出が困難である場合は、3つ以上の関節に関する姿勢変数を含む式としてもよい。
【0088】
また、多関節ロボット14は、例えば、7軸構造やリンク機構を含む構造など異なる構造であってもよい。
【0089】
さらに、計算条件として与えられるエンドエフェクタ54の位置座標P6と傾斜角度を示すベクトルVとは、1通りである必要はなく、エンドエフェクタ54が移動する経路を連続的に表記しておき、これらの経路に対して連続して多関節ロボット14の姿勢を算出するようにしてもよい。またこの場合、姿勢の算出とロボット14の動作をほぼ同時に行い、所謂、リアルタイム制御方式にしてもよい。
【0090】
さらにまた、この発明に係る多関節ロボットの姿勢算出方法および姿勢算出装置は、上述の実施の形態例に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【0091】
【発明の効果】
以上説明したように、本発明に係る多関節ロボットの姿勢算出方法および姿勢算出装置によれば、、先端部の位置および傾斜角度から他の部分の姿勢を解析的に特定することのできない構造の多関節ロボットに対して、また、高密度に配置された多関節ロボット同士やその他の干渉物に対して、他の部分の姿勢を収束計算により求めようとするとき、その収束計算を実行するための初期値として、適切な近似姿勢を算出することができるという効果が達成される。
【図面の簡単な説明】
【図1】本実施の形態に係るロボットシステムを示す説明図である。
【図2】多関節ロボットの構造を示す説明図である。
【図3】エンドエフェクタの傾斜角度を表すベクトルの説明図である。
【図4】ティーチング装置の構成を示すブロック図である。
【図5】データ算出部の構成を示すブロック図である。
【図6】多関節ロボットの姿勢算出方法の手順を示すフローチャートである。
【図7】2つの姿勢変数について、第1方程式の誤差を記録する書式例を示す説明図である。
【図8】図8Aは、所定の姿勢をとる多関節ロボットを示す説明図であり、図8Bは、エンドエフェクタの姿勢のみが図8Aの例に等しく、他の関節の姿勢が異なる状態を示す説明図である。
【図9】多関節ロボットの姿勢をシミュレーションによって確認する適用例を示す説明図である。
【図10】多関節ロボットの姿勢を実際のロボットの動作によって確認する適用例を示す説明図である。
【図11】多関節ロボットのオフセット量を示す説明図である。
【符号の説明】
10…ロボットシステム 12…機枠
14…多関節ロボット 16…ロボット群
18…ティーチング装置 20…ロボット制御部
40…基台 42…ベース部
44…第1アーム部 46…第2アーム部
48…第1手首部 50…第2手首部
52…先端部 54…エンドエフェクタ
70…制御部 78…CPU
82…RAM 86、87…インターフェース
90、91…データ算出部 92…シミュレーション部
J1、J2、J4〜J6…軸 O…原点
TCP…溶接打点 V…ベクトル
λ3…伸縮量
Claims (2)
- 6つの関節を有する多関節ロボットにおける先端部の位置および傾斜角度から前記関節の姿勢値を算出する多関節ロボットの姿勢算出方法において、
前記関節から選択した2または3の関節の姿勢変数と、前記先端部の位置または傾斜角度とを関係付ける第1方程式を導出する第1方程式導出過程と、
前記第1方程式が近似的に成立するための前記選択した2または3の関節の姿勢変数の近似姿勢値を算出する第1算出過程と、
近似姿勢値が既に求められている関節の姿勢変数の少なくとも1つと、さらにその他の関節のうち1つの姿勢変数とを関係付ける第2方程式を導出する第2方程式導出過程と、
前記第2方程式を用いて、前記その他の関節のうち1つの近似姿勢値を求める第2算出過程と、
前記第2方程式導出過程と前記第2算出過程を繰り返し、6つの関節の近似姿勢値を算出する第3算出過程と、
前記第2算出過程と前記第3算出過程にて求めた6つの関節の近似姿勢値を初期値として、前記先端部の位置および傾斜角度を満たす前記関節の姿勢値を収束計算により算出する第4算出過程と、
を有し、
前記第1算出過程では、前記選択した2または3の関節について可動範囲を所定の微小区分に分割し、前記微小区分ごとの組み合わせについて前記第1方程式が近似的に成立するか否かを調査し、誤差の小さい組み合わせを理論的に存在する解の数だけ選択することにより、前記選択した2または3の関節の姿勢変数についての前記近似姿勢値を算出することを特徴とする多関節ロボットの姿勢算出方法。 - 6つの関節を有する多関節ロボットにおける先端部の位置および傾斜角度から前記関節の姿勢値を算出する多関節ロボットの姿勢算出装置において、
前記関節から選択した2または3の関節の姿勢変数と、前記先端部の位置または傾斜角度とを関係付ける第1方程式と、近似姿勢値が既に求められている関節の姿勢変数の少なくとも1つと6つの関節の姿勢変数のうち前記第1方程式に含まれない姿勢変数との関係をそれぞれ表す複数の第2方程式とを記憶する記憶部と、
前記第1方程式が近似的に成立するための前記選択した2または3の関節の姿勢変数の近似姿勢値を算出する第1算出部と、
前記第2方程式を用いて、前記その他の関節のうち1つの近似姿勢値を求める第2算出部と、
前記第2算出部を繰り返し実行させ、6つの関節の近似姿勢値を算出する第3算出部と、
前記第3算出部にて求めた6つの関節の近似姿勢値を初期値として、前記先端部の位置および傾斜角度を満たす前記関節の姿勢値を収束計算により算出する手段と、
を有し、
前記第1算出部は、前記選択した2または3の関節について可動範囲を所定の微小区分に分割し、前記微小区分ごとの組み合わせについて前記第1方程式が近似的に成立するか否かを調査し、誤差の小さい組み合わせを理論的に存在する解の数だけ選択することにより、前記選択した2または3の関節の姿勢変数についての前記近似姿勢値を算出することを特徴とする多関節ロボットの姿勢算出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001208539A JP3884928B2 (ja) | 2001-07-09 | 2001-07-09 | 多関節ロボットの姿勢算出方法および姿勢算出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001208539A JP3884928B2 (ja) | 2001-07-09 | 2001-07-09 | 多関節ロボットの姿勢算出方法および姿勢算出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003019682A JP2003019682A (ja) | 2003-01-21 |
JP3884928B2 true JP3884928B2 (ja) | 2007-02-21 |
Family
ID=19044337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001208539A Expired - Fee Related JP3884928B2 (ja) | 2001-07-09 | 2001-07-09 | 多関節ロボットの姿勢算出方法および姿勢算出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3884928B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6443875B2 (ja) * | 2014-10-24 | 2018-12-26 | ライフロボティクス株式会社 | ロボットアーム機構 |
JP6468804B2 (ja) * | 2014-10-30 | 2019-02-13 | ライフロボティクス株式会社 | ロボットアーム機構 |
JP6591940B2 (ja) | 2016-07-21 | 2019-10-16 | ファナック株式会社 | 搬送用ロボット |
-
2001
- 2001-07-09 JP JP2001208539A patent/JP3884928B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003019682A (ja) | 2003-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9731419B2 (en) | System and method for programming robots | |
JPH0820894B2 (ja) | 産業用ロボツトの動作制御方法 | |
KR20150044812A (ko) | 티칭 시스템 및 티칭 방법 | |
JP2022179671A (ja) | 情報処理方法および情報処理装置 | |
JP2004094399A (ja) | 多関節マニピュレータの制御方法及びその制御プログラム、並びにその制御システム | |
JP2012091304A (ja) | ティーチングデータ作成方法およびティーチングデータ作成装置 | |
JP7528028B2 (ja) | 情報処理装置、情報処理方法、ロボットシステム、物品の製造方法、プログラム及び記録媒体 | |
JP2022088884A (ja) | コンピュータープログラム、及び、ロボットの教示方法 | |
JP2007000954A (ja) | ロボット教示装置及び方法 | |
KR101787865B1 (ko) | 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치 | |
JP3884928B2 (ja) | 多関節ロボットの姿勢算出方法および姿勢算出装置 | |
JP5474739B2 (ja) | 干渉検出方法及び干渉検出装置 | |
Valayil et al. | Kinematic modeling of a serial robot using denavit-hartenberg method in matlab | |
JP4745921B2 (ja) | 溶接ロボットの制御方法 | |
JP3577296B2 (ja) | 多関節ロボットの動作経路設定方法および設定装置 | |
JPH11191005A (ja) | ロボット制御装置 | |
JPH08155647A (ja) | 溶接ロボットのウィービング制御装置 | |
JP2000112510A (ja) | ロボットの教示方法及びその装置 | |
CN111488654A (zh) | 基于全局坐标系递次回归方式的机器人运动学求解方法 | |
JPS61253510A (ja) | ロボツト制御デ−タの確認方法 | |
JP4000307B2 (ja) | 多関節ロボットのティーチングデータ作成方法 | |
US11712803B2 (en) | Teaching method | |
JPH03288211A (ja) | ハンドリングロボットのオフライン教示システム | |
Abaas et al. | Inverse kinematic analysis of lab-volt R5150 robot system | |
WO2023276149A1 (ja) | 最適化支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040827 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041108 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050214 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050217 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050701 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
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: 20091124 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |