(58)【調査した分野】(Int.Cl.,DB名)
第5軸が配置され、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有することで、第4軸の軸心と第6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボットに適用され、前記アームの先端部を制御点とし、前記制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出するもので、
第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めする位置仮決め部と、
前記位置P5’及びP6’が、前記ロボットのリンクパラメータに基づく動作範囲内にあるか否かを判定する動作範囲判定部と、
前記位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行う逆変換処理部と、
前記逆変換処理により求められた各軸の角度を用いて順変換処理を行う順変換処理部と、
前記制御点の目標位置と、前記順変換処理により得られた位置との差の位置行列pEを求めると共に、前記目標位置に対応する回転行列に、前記順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求め評価値演算部と、
前記位置行列pEのノルムが閾値を超えているか、又は前記回転行列REより求められる角度が閾値を超えていると、前記位置行列pE及び前記回転行列REを反映させた同時変換行列により前記逆変換処理からの処理を繰り返し実行する繰返し演算実行部とを備えるロボットの制御装置。
前記逆変換処理部は、前記位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように前記位置P5’及びP6’を修正する請求項1記載のロボットの制御装置。
前記繰返し演算実行部は、前記同次変換行列により決まる前記制御点の位置が、前記動作範囲内にあるか否かを判断し、前記制御点の位置が前記動作範囲内になければ、当該動作範囲内に位置するように前記同次変換行列を修正する請求項1又は2記載のロボットの制御装置。
前記逆変換処理の結果についてヤコビ行列の行列式を演算し、その行列式の符号が、予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を決定する形態決定部を備える請求項1から3の何れか一項に記載のロボットの制御装置。
第5軸が配置され、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有することで、第4軸の軸心と第6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボットに適用され、前記アームの先端部を制御点とし、前記制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出するもので、
第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めするステップと、
前記位置P5’及びP6’が、前記ロボットのリンクパラメータに基づく動作範囲内にあるか否かを判定するステップと、
前記位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行うステップと、
前記逆変換処理により求められた各軸の角度を用いて順変換処理を行うステップと、
前記制御点の目標位置と、前記順変換処理により得られた位置との差の位置行列pEを求めると共に、前記目標位置に対応する回転行列に、前記順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求めるステップと、
前記位置行列pEのノルムが閾値を超えているか、又は前記回転行列REより求められる角度が閾値を超えていると、前記位置行列pE及び前記回転行列REを反映させた同時変換行列により前記逆変換処理を行うステップから繰り返し実行するロボットの逆変換処理方法。
前記同次変換行列により決まる前記制御点の位置が、前記動作範囲内にあるか否かを判断し、前記制御点の位置が前記動作範囲内になければ、当該動作範囲内に位置するように前記同次変換行列を修正する請求項5又は6記載のロボットの逆変換処理方法。
逆変換処理の結果についてヤコビ行列の行列式を演算し、その行列式の符号が、予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を決定する形態決定部を備える請求項5から7の何れか一項に記載のロボットの逆変換処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
d5≠0のロボットに特許文献1の手法を適用することを想定すると、収束演算の初期誤差としてのd5が大きな値となるため、演算の繰り返し回数が膨大になったり、演算が収束せずに発散する可能性が有る。また、オフセット分があることで、本来はリーチが届く範囲であってもオフセット分が正しく反映されず、リーチが届かないと誤判定される可能性がある。
【0006】
本発明は、上記実情に鑑みてなされたものであり、その目的は、オフセットアームを備えるロボットについても、逆変換処理を行うことができるロボットの制御装置,及びロボットの逆変換処理方法を提供することにある。
【課題を解決するための手段】
【0007】
請求項1記載のロボットの制御装置は、第5軸が配置され、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有することで、第4軸の軸心と第6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボットを制御対象とする。そして、アームの先端部を制御点とし、その制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出する。
【0008】
位置仮決め部は、第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めする。動作範囲判定部は、位置P5’及びP6’が、ロボットのリンクパラメータに基づく動作範囲内にあるか否かを判定する。逆変換処理部は、位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行う。また、順変換処理部は、逆変換処理により求められた各軸の角度を用いて順変換処理を行う。
【0009】
評価値演算部は、制御点の目標位置と、順変換処理により得られた位置との差の位置行列p
Eを求めると共に、目標位置に対応する回転行列に、順変換処理により得られた回転行列の逆行列を乗じて回転行列R
Eを求める。そして、繰返し演算実行部は、位置行列p
Eのノルムが閾値を超えているか、又は回転行列R
Eより求められる角度が閾値を超えていると、位置行列p
E及び回転行列R
Eを反映させた同時変換行列により逆変換処理からの処理を繰り返し実行する。つまり、位置行列p
Eのノルムが閾値以下であり、且つ回転行列R
Eより求められる角度が閾値以下であれば、逆変換処理が完了する。このように構成すれば、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有するロボットについても、第6軸の角度を仮決めして逆変換処理を行い、その処理結果を順変換処理して得られる行列p
E及び行列R
Eを評価して演算を収束させることで、逆変換処理を行うことが可能になる。
【0010】
請求項2記載のロボットの制御装置によれば、逆変換処理部は、前記位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように前記位置P5’及びP6’を修正する。これにより、逆変換処理を継続して実行できる。
【0011】
請求項3記載のロボットの制御装置によれば、繰返し演算実行部は、同次変換行列により決まる制御点の位置について、動作範囲判定部と同様に動作範囲内にあるか否かを判断する。そして、制御点の位置が前記動作範囲内になければ、当該動作範囲内に位置するように同次変換行列を修正する。これにより、繰返し演算を継続して実行できる。
【0012】
請求項4記載のロボットの制御装置によれば、形態決定部は、逆変換処理の結果についてヤコビ行列の行列式を演算する。そして、行列式の符号が予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を決定する。例えば、各軸の可動範囲が−180度〜180度である場合に、5軸を動かして手首形態を目視で確認すると、最大で2つの腕形態,2つの肘形態及び4つの手首形態の組み合わせとなることが分かる。
【0013】
そして、4つの手首形態の境界を分ける点は特異点となるはずであり、ヤコビ行列は、特異点において行列式がゼロとなる。そこで、各形態の組み合わせについて、逆変換処理結果の手首形態とヤコビ行列の行列式の符号とが対応するか否かにより、その形態が指定したものとなっているか否かを判定できる。すなわち、4軸の角度が−90度〜90度,−180度〜−90度又は90度〜180度の何れに属するかと組み合わせることで、最大で4つの手首形態を判別できる。
【発明を実施するための形態】
【0015】
以下、一実施形態について
図1から
図9を参照して説明する。
図1に示すように、ロボットシステム1は、垂直多関節型のロボット2、ロボット2を制御するコントローラ3をベース4の内部に備えている。このロボットシステム1は、一般的な産業用に用いられている。ロボット2は、いわゆる6軸の垂直多関節型ロボットである。ベース4上に、Z方向の軸心を持つ第1軸;J1を介してショルダ5が水平方向に回転可能に連結されている。ショルダ5には、Y方向の軸心を持つ第2軸;J2を備え、Y方向に伸びる第2オフセットアーム6を介して、上方に延びる第1アーム7の下端部が垂直方向に回転可能に連結されている。第1アーム7の先端部には、Y方向の軸心を持つ第3軸;J3を備え、−Y方向に伸びる第3オフセットアーム8を介して、第2アーム9が垂直方向に回転可能に連結されている。第2アーム9は、基部9a及び先端部9bからなる。
【0016】
第2アーム9は、X方向の軸心を持つ第4軸;J4を備え、基部9aに対して先端部9bが捻り回転可能に連結されている。第2アーム9の先端部には、Y方向の軸心を持つ第5軸;J5を備え、−Y方向に伸びる第5オフセットアーム10を介して、手首11が垂直方向に回転可能に連結されている。手首11には、X方向の軸心を持つ第6軸;J6を介して、
図2に示すフランジ及びハンド12が捻り回転可能に連結されている。ロボット2に設けられている各軸;J1〜J6には、それぞれに対応して駆動源となる図示しないモータが設けられている。
【0017】
コントローラ3は、ロボット2の制御装置であり、図示しないCPU、ROMおよびRAM等で構成されたコンピュータからなる制御手段においてコンピュータプログラムを実行することで、ロボット2を制御している。具体的には、コントローラ3は、インバータ回路等から構成された駆動部を備えており、各モータに対応して設けられているエンコーダで検知したモータの回転位置に基づいて例えばフィードバック制御によりそれぞれのモータを駆動する。
【0018】
コントローラ3は、CPU、ROM、RAM、駆動回路、及び位置検出回路等を備えている。ROMは、ロボット2のシステムプログラムや動作プログラム等を記憶している。RAMは、これらのプログラムを実行する際にパラメータの値等を記憶する。コントローラ3は、角度仮決め部,方向算出部,仮目標位置算出部,逆変換処理部,評価部及び形態決定部に相当する。位置検出回路には、ロボット2の各関節に設けられた図示しない各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたモータの回転角度位置を検出する。
【0019】
コントローラ3は、予め設定された動作プログラムを実行することにより、位置検出回路から入力される位置情報に基づいて、アーム先端部の制御点の位置及び姿勢を制御する。本実施形態において、コントローラ3は、CP(Continuous Path)制御を行う。CP制御では、アーム先端部の制御点を目標まで動作させる際に制御点の目標となる位置及び姿勢,つまり動作軌道が時間関数として設定される。目標となる位置及び姿勢には、教示された位置及び姿勢に加えて、教示された位置及び姿勢に基づいて補間された位置及び姿勢も含まれる。コントローラ3は、CP制御により、制御点の位置及び姿勢が動作軌道に沿うように、アームにおける各関節の角度を制御する。コントローラ3は、位置及び姿勢の制御において、現在指示されている目標となる位置及び姿勢を実現するための第1軸〜第6軸の角度を算出する逆変換処理を行う。
【0020】
図2に示すように、ロボット2の各関節には、3次元の直交座標系である第1〜第6座標系Σ
1〜Σ
6が規定されている。各座標系Σ
1〜Σ
6の原点は、第1〜第6軸線J1〜J6上の所定位置に定められている。各座標系Σ
1〜Σ
6のz軸であるZ1〜Z6軸は、第1〜第6軸線J1〜J6と一致している。
【0021】
ベース4には、ロボット座標系である第0座標系Σ
0が規定されている。第0座標系Σ
0は、第1軸〜第6軸が回転しても変化しない座標系である。本実施形態において、座標系Σ
0の原点は、第1軸線J1上に定められている。また、座標系Σ
0のz軸であるZ0軸は、第1軸線J1に一致している。
【0022】
図2に示すd1〜d6,a2及びa3は、以下のように定義される。
d1:第0座標系Σ
0の原点から第1座標系Σ
1の原点までのリンク長
d2:第1座標系Σ
1の原点から第1アーム7の基部までのリンク長
a2:第1アーム7の基部から同先端部,第2座標系Σ
2の原点までのリンク長
d3:第2座標系Σ
2の原点から第3オフセットアーム8の先端部までのリンク長
a3:第3軸J3,第4軸J4の軸心間距離
d4:第3座標系Σ
3の原点から第4座標系Σ
4の原点までのリンク長
d5:第4座標系Σ
4の原点から第5座標系Σ
5の原点までのリンク長
d6:第5座標系Σ
5の原点から第6座標系Σ
6の原点までのリンク長
a3については
図3を参照。そして、上記d5が第5オフセットアーム10のリンク長に相当する。
【0023】
先ず、本実施形態における逆変換処理を説明するための前提として、順変換処理について説明する。
<順変換処理>
先ず、z軸回転、z軸移動、x軸移動、x軸回転の順の座標変換で、DHパラメータを表1のように決定した。θ
iが、
図2の状態からの各関節の回転角度になる。
【0025】
ベース座標であるΣ
0からメカニカルインターフェース座標Σ
6までの同次変換行列は次のようになる。n,o,aは、それぞれノーマルベクトル,オリエントベクトル,アプローチベクトルを示す。尚、表記を簡略化するため、sinθ
i,cosθ
iそれぞれs
i,c
iと表記している。また、例えばS
23はsin(θ
2+θ
3)を示す。
【0028】
(8)〜(10)式を展開すると、(13)〜(15)式となる。
【0030】
また、第5軸,第6軸についてのノーマル,オリエント,アプローチの各ベクトル及び位置座標については以下のようになる。
【0032】
同次変換行列であるから、ツール座標上での位置ベクトルに左からかけて積をとることで、ベース座標Σ
0での位置ベクトルに変換できる。つまり、関節角とDHパラメータとからベース座標での先端位置を求めることができる。姿勢角は、第6軸のノーマル,オリエント,アプローチの各ベクトルn
6,o
6,a
6で表されている。
【0033】
<逆変換処理>
次に、逆変換処理について説明する。ロボットアームの手先の位置姿勢が、同時変換行列で与えられているとする。
図2におけるベース座標Σ
0での位置ベクトルをp
iとする。まず、アプローチベクトルa
6から、手首位置p
5を求める。
p
5=p
6−d
6a
6 …(20)
【0034】
従来の6軸ロボットの場合は、手首位置で4,5,6各軸の回転軸が直交する構造であるため、手首位置に対して先に1,2,3軸を解析的に求めることで全ての関節角を求めることができる。すなわち、手首位置は4,5,6各軸の回転軸上にあるので、4,5,6軸の角度を変化させても手首位置は変化しないからである。これに対して本実施形態の6軸ロボット2の場合は、4,5,6軸角度によってp
4が変化してしまうため、従来と同様の方法では解くことができない。
【0035】
そこで、6軸角度を仮定して解く方法を示す。6軸の回転範囲を例えば−180度から180度とすると、その範囲内で適当な刻み幅で仮定して探索を行う。この回転範囲をSINGLEと称する場合がある。6軸角度が決まれば、(11),(12)式からp
4を決定できる。
p
4=a
4d
6+p
6
=o
6d
6+p
6
=(o
6s
6+o
6c
6)d
6+p
6 …(21)
【0036】
ここで、
図4に示すように、xy軸を1軸角度だけ回転した軸にαr座標をとる。ただし、リンクパラメータa
1=0としているので、a
1≠0の場合には数式が異なる。p
4が決まっているので、1軸角度を用いない式でp
4のα座標を表すことができる。またここで、α
14≧0の腕形態をLEFTY,α
14<0の腕形態をRIGHTYと定義する。α
14が虚数となる場合は、リーチが届かないため解なしとなる。
【0038】
尚、(24)式中のl
14は、αr座標の原点からp
4までの距離である。
よって、軸角度の三角関数を、(25)〜(28)式のように求めることができる。
【0040】
次に、
図5に示すように、ロボット2を側面からみたαz平面で考える。p
4を満たす2,3軸角度は2組存在する。p
1からp
2のアーム長と、p
2からp
4のアーム長とから、(29),(30)式が成立する。
【0042】
(30)式を展開して(29)式により整理すると、p
2を求めることができる。
【0044】
k
2<0の場合はリーチが届かないため解なしとなる。z
12も同様に求められる。
【数9】
【0045】
(29)式に(44),(45)式を代入すると、(52)式の等号成立が条件となるため、符号と絶対値を外して下記の複合同順の組み合わせとなる。
【0047】
図5から下記の式が成立するため、2,3軸の三角関数を求めることができる。
atan2(y,x)を用いれば、1,2,3軸角度を求めることができる。
【0049】
次に、
図6に示すように、アーム形態BELOW,ABOVEを定義した場合、
LEFTYの場合はθ
3>φ3でABOVE,θ
3<φ3でBELOWとなる。また、
RIGHTYの場合はθ
3>φ3でBELOW,θ
3<φ3でABOVEとなる。z
12の符号でも判定可能である。φ3は(64)式で表される。
φ3=atan2(a
3,d
4) …(64)
【0052】
(*4)式より、角度θ
5が求められる。また、(*4)式と(*1),(*2)式よりsinθ
6とcosθ
6とが求められるので、これにより角度θ
6が求められる。
【0054】
(*7),(*8)式によりsinθ
4とcosθ
4とが求められるので、これにより角度θ
4が求められる。尚、(*4)式に±の複号があるが、これについては、手首形態の指定において4軸角度又は5軸角度の条件を満たす符号を採用する。また、先に角度θ
5が求められているので、(*8)式をcosθ
5で除算しても良いし、これらに替えて(*9),(*10)式を用いても良い。
【0056】
以上が逆変換処理の概略である。次に、本実施形態の作用について
図7及び
図8を参照して説明する。
図7は、コントローラ3が行う逆変換処理の内容を示すフローチャートである。先ず、6軸の位置を仮決めしてP6’とすると、その位置P6’から5軸の位置を仮決めしてP5’とする。そして、これらを用いて同次変換行列T’を決定する(S1)。そして、仮決めした位置P5’が動作範囲内にあるか否かを判断する(S2)。
【0057】
図8は、前記動作範囲を説明する図であるが、これはd2=d3である場合を前提としている。半径L1の球Aと、半径(L1+L2)の球Bとを設定する。L1,L2は、それぞれ(*11)式,(*12)式で定義される。
【数15】
【0058】
そして、位置P5’が球Aの外にあれば(S2;動作範囲外)、同次変換行列T’で決まる位置から動作範囲の境界までの距離をLとする(S9)。続いて、距離Lがリンク長d5以下か否かを判断する(S10)。これは、仮決めした位置P6’が動作範囲内にあるか否かの判断である。距離Lがリンク長d5を超えていれば(NO)エラーとして処理を終了する。
【0059】
一方、距離Lがリンク長d5以下であれば(YES)、位置P5’を球Aの内側に移動させるように修正する(S14)。例えば、位置P5’を、位置P1と位置P5’とを結ぶ直線と、球Aとの交点に移動させれば良い。位置P5’を移動させることに伴い、位置P6’も移動する。尚、ステップS10では、L2=d5として、位置P5’が球B外か否かを判断しても良い。
【0060】
また、d2≠d3である場合は、以下のように動作範囲内外の判定を行う。ステップS2で動作範囲外となるのは、(24)式又は(44)式における平方根の内部が負となる場合である。ここで、動作範囲内となるように修正を加えるとすれば、(24)式のケースでは
l
142=r
142
とすれば良い。そこで、L=|r
14|−|l
14|とすると、
w=L/|l
14|,[wx
4 wy
4 0]
T
だけ位置を補正すれば良い。
【0063】
ステップS2で「動作範囲内」と判断すると、またステップS14を実行すると、逆変換処理を行う(S3)。ここで、g
-1(T’,F)は、d
5=0として同時変換行列T’,ロボット2の形態Fから角度θ’=[θ
1’,θ
2’,θ
3’,θ
4’,θ
5’,θ
6’]
Tを求める関数である。
次に、逆変換の結果として求められた角度θ’を用いて順変換処理を行う(S4)。この順変換処理の結果得られた同時変換行列をT”,形態をF”とする。同時変換行列T”は、要素として回転行列R”,位置行列p”を含む。
【0064】
次に、目標位置pと上記位置p”との差を求め、位置誤差ベクトルp
Eを求める。また、目標位置pに対応する回転行列Rに回転行列R”の逆行列を乗じて評価用の回転行列R
Eを求める(S5)。そして、ベクトルp
Eのノルム||p
E||が閾値p
EM以下か(S6)、また、回転行列R
Eの角度||R
E||が閾値R
EM以下かを(S7)それぞれ判断する。ここで、||p
E||,||R
E||は、それぞれ(*13),(*14)式で定義される。
【0066】
ステップS7で「YES」と判断すると、位置p”と回転行列R”より決まる手首形態が指定した形態か否かを判断し(S8)、指定した形態が得られていれば逆変換処理を終了する。一方、ステップS6又はS7で「NO」と判断すると、逆変換処理及び順変換処理の繰り返し実行回数が予め定めた規定数を超えたか否かを判断する(S11)。ここで、規定数を超えると(YES)エラーとして処理を終了する。規定数を超えていなければ(NO)、回転行列R’に評価用の回転行列R
Eを乗じ、位置行列p’に位置誤差ベクトルp
Eを加えて同時変換行列T’を更新する(S12)。それから、ステップS2と同様に動作範囲内外の判定を行い(S13)、動作範囲内であればステップS3に移行し、動作範囲外であればステップS14に移行する。
【0067】
次に、ステップS8の処理判定について説明する。
図9に示すように、本実施形態のように第3オフセットアーム8を有することでd5≠0であるロボットの場合、1つの手先位置に対して最大で4つの手首形態があり、ステップS9における評価を満たす6軸角度も最大で4つ存在する。そこで、ステップS8において、逆変換処理で得られた手首形態を一意に決定するため、ヤコビ行列Jを用いる。上記の最大で4つ存在する6軸角度はこれらの境界を分ける点は特異点となるはずであり、ヤコビ行列Jは、特異点において行列式がゼロとなる。
【0068】
ヤコビ行列の符号と、従来の手首形態の考え方,4軸角度が−90度〜90度,−180度〜−90度又は90度〜180度の何れになるかの組み合わせで、最大で4つ存在する手首形態FLIP+,FLIP-,NONFLIP+,NONFLIP-を判別することができる。
【0069】
すなわち、腕形態RIGHTY,LEFTYと肘形態ABOVE,BELOWに加えて、手首形態FLIP+,FLIP-,NONFLIP+,NONFLIP-の組み合わせがある。そこで、ステップS8ではヤコビ行列Jの行列式を計算する。ヤコビ行列Jは、(87)式〜(99)式で表される。
【0073】
そして、計算した行列式の符号が指定した手首形態に合致するか否かを判断する。
【0074】
以上のように本実施形態によれば、コントローラ3は、5軸が配置され、4軸と6軸とを連結するリンク長d5の第3オフセットアーム8を有することで、4軸の軸心と6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボット2を制御対象とする。そして、コントローラ3は、アームの先端部である手先を制御点とし、その制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出する。
【0075】
また、コントローラ3は、第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めすると、位置P5’及びP6’が、ロボット2のリンクパラメータに基づく動作範囲内にあるか否かを判定する。位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行う。それから、逆変換処理により求められた各軸の角度を用いて順変換処理を行う。
【0076】
更に、制御点の目標位置と、順変換処理により得られた位置との差の位置誤差ベクトルp
Eを求めると共に、目標位置に対応する回転行列に、順変換処理により得られた回転行列の逆行列を乗じて回転行列R
Eを求める。そして、位置誤差ベクトルp
Eのノルムが閾値を超えているか、又は回転行列R
Eより求められる角度が閾値を超えていると、位置誤差ベクトルp
E及び回転行列R
Eを反映させた同時変換行列によりが逆変換処理からの処理を繰り返し実行する。位置誤差ベクトルp
Eのノルムが閾値以下で、且つ回転行列R
Eより求められる角度が閾値以下であれば、逆変換処理が完了する。
【0077】
このように構成すれば、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有するロボット2についても、第6軸の角度を仮決めして逆変換処理を行い、その処理結果を順変換処理して得られる行列p
E及び行列R
Eを評価して演算を収束させることで、逆変換処理を行うことが可能になる。
【0078】
また、コントローラ3は、位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように位置P5’及びP6’を修正する。同次変換行列T’により決まる制御点の位置についても同様に、動作範囲内にあるか否かを判断し、動作範囲内になければ動作範囲内に位置するように同次変換行列T’を修正する。これにより、逆変換処理や繰返し演算を継続して実行できる。
そして、コントローラ3は、逆変換処理の結果についてヤコビ行列Jの行列式を演算する。そして、行列式の符号が予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を一意に決定できる。
【0079】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
コントローラ3を、ロボット2のベース4の外に配置しても良い。