特許第6891773号(P6891773)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

特許6891773ロボットの制御装置及びロボットの逆変換処理方法
<>
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000023
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000024
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000025
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000026
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000027
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000028
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000029
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000030
  • 特許6891773-ロボットの制御装置及びロボットの逆変換処理方法 図000031
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6891773
(24)【登録日】2021年5月31日
(45)【発行日】2021年6月18日
(54)【発明の名称】ロボットの制御装置及びロボットの逆変換処理方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20210607BHJP
【FI】
   B25J9/10 A
【請求項の数】8
【全頁数】23
(21)【出願番号】特願2017-225910(P2017-225910)
(22)【出願日】2017年11月24日
(65)【公開番号】特開2019-93487(P2019-93487A)
(43)【公開日】2019年6月20日
【審査請求日】2020年8月20日
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】川瀬 大介
(72)【発明者】
【氏名】佐藤 晶則
(72)【発明者】
【氏名】河地 勇登
【審査官】 臼井 卓巳
(56)【参考文献】
【文献】 特開昭62−193786(JP,A)
【文献】 特開昭64−008407(JP,A)
【文献】 特開2013−132731(JP,A)
【文献】 特開2013−166222(JP,A)
【文献】 特開2017−061022(JP,A)
【文献】 米国特許第04680519(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10−13/00
G05B 13/02−19/18
(57)【特許請求の範囲】
【請求項1】
第5軸が配置され、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有することで、第4軸の軸心と第6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボットに適用され、前記アームの先端部を制御点とし、前記制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出するもので、
第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めする位置仮決め部と、
前記位置P5’及びP6’が、前記ロボットのリンクパラメータに基づく動作範囲内にあるか否かを判定する動作範囲判定部と、
前記位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行う逆変換処理部と、
前記逆変換処理により求められた各軸の角度を用いて順変換処理を行う順変換処理部と、
前記制御点の目標位置と、前記順変換処理により得られた位置との差の位置行列pEを求めると共に、前記目標位置に対応する回転行列に、前記順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求め評価値演算部と、
前記位置行列pEのノルムが閾値を超えているか、又は前記回転行列REより求められる角度が閾値を超えていると、前記位置行列pE及び前記回転行列REを反映させた同時変換行列により前記逆変換処理からの処理を繰り返し実行する繰返し演算実行部とを備えるロボットの制御装置。
【請求項2】
前記逆変換処理部は、前記位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように前記位置P5’及びP6’を修正する請求項1記載のロボットの制御装置。
【請求項3】
前記繰返し演算実行部は、前記同次変換行列により決まる前記制御点の位置が、前記動作範囲内にあるか否かを判断し、前記制御点の位置が前記動作範囲内になければ、当該動作範囲内に位置するように前記同次変換行列を修正する請求項1又は2記載のロボットの制御装置。
【請求項4】
前記逆変換処理の結果についてヤコビ行列の行列式を演算し、その行列式の符号が、予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を決定する形態決定部を備える請求項1から3の何れか一項に記載のロボットの制御装置。
【請求項5】
第5軸が配置され、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有することで、第4軸の軸心と第6軸の軸心とが平行となる構造の垂直6軸型のアームを備えるロボットに適用され、前記アームの先端部を制御点とし、前記制御点の目標となる位置及び姿勢を逆変換処理することで各軸の角度を算出するもので、
第6軸の位置を仮決めし、その仮決めした位置P6’に基づいて第5軸の位置をP5’に仮決めするステップと、
前記位置P5’及びP6’が、前記ロボットのリンクパラメータに基づく動作範囲内にあるか否かを判定するステップと、
前記位置P5’及びP6’が動作範囲内にあれば、それらの位置に基づく同次変換行列について、リンク長d5を「0」に設定して逆変換処理を行うステップと、
前記逆変換処理により求められた各軸の角度を用いて順変換処理を行うステップと、
前記制御点の目標位置と、前記順変換処理により得られた位置との差の位置行列pEを求めると共に、前記目標位置に対応する回転行列に、前記順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求めるステップと、
前記位置行列pEのノルムが閾値を超えているか、又は前記回転行列REより求められる角度が閾値を超えていると、前記位置行列pE及び前記回転行列REを反映させた同時変換行列により前記逆変換処理を行うステップから繰り返し実行するロボットの逆変換処理方法。
【請求項6】
前記位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように前記位置P5’及びP6’を修正する請求項5記載のロボットの逆変換処理方法。
【請求項7】
前記同次変換行列により決まる前記制御点の位置が、前記動作範囲内にあるか否かを判断し、前記制御点の位置が前記動作範囲内になければ、当該動作範囲内に位置するように前記同次変換行列を修正する請求項5又は6記載のロボットの逆変換処理方法。
【請求項8】
逆変換処理の結果についてヤコビ行列の行列式を演算し、その行列式の符号が、予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を決定する形態決定部を備える請求項5から7の何れか一項に記載のロボットの逆変換処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第4軸と第6軸とを連結するオフセットアームを有するロボットの動作を制御する装置,及び手先位置を逆変換処理する方法に関する。
【背景技術】
【0002】
一般的な垂直6軸型のロボットアームは、第4軸〜第6軸の各軸心が一点で交差する構造となっている。このようなロボットアームでは、第5軸を回転させて第6軸を含む手首部分を変位させるため、アームの先端部において手首を保持している部分に隙間が形成されている。そのような隙間があると、異物を挟み込んでしまう可能性が有る。そこで、第4軸と第6軸とを連結するオフセットアームを備えることで、手首が変位する部分の隙間をなくした形態の産業用ロボットが、例えば意匠登録1583755等に開示されている。この形態では、オフセットアームの存在により、第4軸の軸心と第6軸の軸心とが交差することなく互いに平行な関係となっている。
【0003】
このような形態のアームについて、手先の位置・姿勢から各軸の角度を求める逆変換処理を行うことを想定すると、従来の手法では困難である。例えば特許文献1に開示されているのは、ロボット組み付け時の誤差を含む場合でもDHパラメータに基づく逆変換処理を行うことを可能にした技術である。特許文献1では、オフセットアームの長さをd5とすると、d5=0であることを前提に、前記誤差に対応する微小領域を仮定して線形化することで収束演算を行っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017−61022号公報
【発明の概要】
【発明が解決しようとする課題】
【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】
評価値演算部は、制御点の目標位置と、順変換処理により得られた位置との差の位置行列pEを求めると共に、目標位置に対応する回転行列に、順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求める。そして、繰返し演算実行部は、位置行列pEのノルムが閾値を超えているか、又は回転行列REより求められる角度が閾値を超えていると、位置行列pE及び回転行列REを反映させた同時変換行列により逆変換処理からの処理を繰り返し実行する。つまり、位置行列pEのノルムが閾値以下であり、且つ回転行列REより求められる角度が閾値以下であれば、逆変換処理が完了する。このように構成すれば、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有するロボットについても、第6軸の角度を仮決めして逆変換処理を行い、その処理結果を順変換処理して得られる行列pE及び行列REを評価して演算を収束させることで、逆変換処理を行うことが可能になる。
【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つの手首形態を判別できる。
【図面の簡単な説明】
【0014】
図1】第1実施形態であり、ロボットシステムの構成を示す図
図2】ロボットの座標系を示す図
図3】ロボットの構成を、xz平面及びyz平面で示す図
図4】ロボットのアーム形態をxy座標及びαr座標で示す図
図5】ロボットのアーム形態をαz座標で示す図
図6】αz座標で定義したアームの各形態を示す図
図7】コントローラが行う逆変換処理を示すフローチャート
図8】d2=d3である場合の動作範囲を説明する図
図9】同一の手先位置についてロボットアームが取り得る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の状態からの各関節の回転角度になる。
【0024】
【表1】
【0025】
ベース座標であるΣ0からメカニカルインターフェース座標Σ6までの同次変換行列は次のようになる。n,o,aは、それぞれノーマルベクトル,オリエントベクトル,アプローチベクトルを示す。尚、表記を簡略化するため、sinθi,cosθiそれぞれsi,ciと表記している。また、例えばS23はsin(θ2+θ3)を示す。
【0026】
【数1】
【0027】
【数2】
【0028】
(8)〜(10)式を展開すると、(13)〜(15)式となる。
【0029】
【数3】
【0030】
また、第5軸,第6軸についてのノーマル,オリエント,アプローチの各ベクトル及び位置座標については以下のようになる。
【0031】
【数4】
【0032】
同次変換行列であるから、ツール座標上での位置ベクトルに左からかけて積をとることで、ベース座標Σ0での位置ベクトルに変換できる。つまり、関節角とDHパラメータとからベース座標での先端位置を求めることができる。姿勢角は、第6軸のノーマル,オリエント,アプローチの各ベクトルn6,o6,a6で表されている。
【0033】
<逆変換処理>
次に、逆変換処理について説明する。ロボットアームの手先の位置姿勢が、同時変換行列で与えられているとする。図2におけるベース座標Σ0での位置ベクトルをpiとする。まず、アプローチベクトルa6から、手首位置p5を求める。
5=p6−d66 …(20)
【0034】
従来の6軸ロボットの場合は、手首位置で4,5,6各軸の回転軸が直交する構造であるため、手首位置に対して先に1,2,3軸を解析的に求めることで全ての関節角を求めることができる。すなわち、手首位置は4,5,6各軸の回転軸上にあるので、4,5,6軸の角度を変化させても手首位置は変化しないからである。これに対して本実施形態の6軸ロボット2の場合は、4,5,6軸角度によってp4が変化してしまうため、従来と同様の方法では解くことができない。
【0035】
そこで、6軸角度を仮定して解く方法を示す。6軸の回転範囲を例えば−180度から180度とすると、その範囲内で適当な刻み幅で仮定して探索を行う。この回転範囲をSINGLEと称する場合がある。6軸角度が決まれば、(11),(12)式からp4を決定できる。
4=a46+p6
=o66+p6
=(o66+o66)d6+p6 …(21)
【0036】
ここで、図4に示すように、xy軸を1軸角度だけ回転した軸にαr座標をとる。ただし、リンクパラメータa1=0としているので、a1≠0の場合には数式が異なる。p4が決まっているので、1軸角度を用いない式でp4のα座標を表すことができる。またここで、α14≧0の腕形態をLEFTY,α14<0の腕形態をRIGHTYと定義する。α14が虚数となる場合は、リーチが届かないため解なしとなる。
【0037】
【数5】
【0038】
尚、(24)式中のl14は、αr座標の原点からp4までの距離である。
よって、軸角度の三角関数を、(25)〜(28)式のように求めることができる。
【0039】
【数6】
【0040】
次に、図5に示すように、ロボット2を側面からみたαz平面で考える。p4を満たす2,3軸角度は2組存在する。p1からp2のアーム長と、p2からp4のアーム長とから、(29),(30)式が成立する。
【0041】
【数7】
【0042】
(30)式を展開して(29)式により整理すると、p2を求めることができる。
【0043】
【数8】
【0044】
2<0の場合はリーチが届かないため解なしとなる。z12も同様に求められる。
【数9】
【0045】
(29)式に(44),(45)式を代入すると、(52)式の等号成立が条件となるため、符号と絶対値を外して下記の複合同順の組み合わせとなる。
【0046】
【数10】
【0047】
図5から下記の式が成立するため、2,3軸の三角関数を求めることができる。
atan2(y,x)を用いれば、1,2,3軸角度を求めることができる。
【0048】
【数11】
【0049】
次に、図6に示すように、アーム形態BELOW,ABOVEを定義した場合、
LEFTYの場合はθ3>φ3でABOVE,θ3<φ3でBELOWとなる。また、
RIGHTYの場合はθ3>φ3でBELOW,θ3<φ3でABOVEとなる。z12の符号でも判定可能である。φ3は(64)式で表される。
φ3=atan2(a3,d4) …(64)
【0050】
次に角度θ5,θを求める。
【0051】
【数12】
【0052】
(*4)式より、角度θ5が求められる。また、(*4)式と(*1),(*2)式よりsinθ6とcosθ6とが求められるので、これにより角度θ6が求められる。
【0053】
【数13】
【0054】
(*7),(*8)式によりsinθ4とcosθ4とが求められるので、これにより角度θ4が求められる。尚、(*4)式に±の複号があるが、これについては、手首形態の指定において4軸角度又は5軸角度の条件を満たす符号を採用する。また、先に角度θ5が求められているので、(*8)式をcosθ5で除算しても良いし、これらに替えて(*9),(*10)式を用いても良い。
【0055】
【数14】
【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)式のケースでは
142=r142
とすれば良い。そこで、L=|r14|−|l14|とすると、
w=L/|l14|,[wx4 wy4 0]T
だけ位置を補正すれば良い。
【0061】
また、(44)式のケースでは
【0062】
【数16】
【0063】
ステップS2で「動作範囲内」と判断すると、またステップS14を実行すると、逆変換処理を行う(S3)。ここで、g-1(T’,F)は、d5=0として同時変換行列T’,ロボット2の形態Fから角度θ’=[θ1’,θ2’,θ3’,θ4’,θ5’,θ6’]Tを求める関数である。
次に、逆変換の結果として求められた角度θ’を用いて順変換処理を行う(S4)。この順変換処理の結果得られた同時変換行列をT”,形態をF”とする。同時変換行列T”は、要素として回転行列R”,位置行列p”を含む。
【0064】
次に、目標位置pと上記位置p”との差を求め、位置誤差ベクトルpEを求める。また、目標位置pに対応する回転行列Rに回転行列R”の逆行列を乗じて評価用の回転行列REを求める(S5)。そして、ベクトルpEのノルム||pE||が閾値pEM以下か(S6)、また、回転行列REの角度||RE||が閾値REM以下かを(S7)それぞれ判断する。ここで、||pE||,||RE||は、それぞれ(*13),(*14)式で定義される。
【0065】
【数17】
【0066】
ステップS7で「YES」と判断すると、位置p”と回転行列R”より決まる手首形態が指定した形態か否かを判断し(S8)、指定した形態が得られていれば逆変換処理を終了する。一方、ステップS6又はS7で「NO」と判断すると、逆変換処理及び順変換処理の繰り返し実行回数が予め定めた規定数を超えたか否かを判断する(S11)。ここで、規定数を超えると(YES)エラーとして処理を終了する。規定数を超えていなければ(NO)、回転行列R’に評価用の回転行列REを乗じ、位置行列p’に位置誤差ベクトルpEを加えて同時変換行列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)式で表される。
【0070】
【数18】
【0071】
【数19】
【0072】
【数20】
【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】
更に、制御点の目標位置と、順変換処理により得られた位置との差の位置誤差ベクトルpEを求めると共に、目標位置に対応する回転行列に、順変換処理により得られた回転行列の逆行列を乗じて回転行列REを求める。そして、位置誤差ベクトルpEのノルムが閾値を超えているか、又は回転行列REより求められる角度が閾値を超えていると、位置誤差ベクトルpE及び回転行列REを反映させた同時変換行列によりが逆変換処理からの処理を繰り返し実行する。位置誤差ベクトルpEのノルムが閾値以下で、且つ回転行列REより求められる角度が閾値以下であれば、逆変換処理が完了する。
【0077】
このように構成すれば、第4軸と第6軸とを連結するリンク長d5のオフセットアームを有するロボット2についても、第6軸の角度を仮決めして逆変換処理を行い、その処理結果を順変換処理して得られる行列pE及び行列REを評価して演算を収束させることで、逆変換処理を行うことが可能になる。
【0078】
また、コントローラ3は、位置P5’及びP6’が動作範囲内になければ、当該動作範囲内に位置するように位置P5’及びP6’を修正する。同次変換行列T’により決まる制御点の位置についても同様に、動作範囲内にあるか否かを判断し、動作範囲内になければ動作範囲内に位置するように同次変換行列T’を修正する。これにより、逆変換処理や繰返し演算を継続して実行できる。
そして、コントローラ3は、逆変換処理の結果についてヤコビ行列Jの行列式を演算する。そして、行列式の符号が予め指定された手首形態に合致するか否かにより、逆変換処理結果の手首形態を一意に決定できる。
【0079】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
コントローラ3を、ロボット2のベース4の外に配置しても良い。
【符号の説明】
【0080】
図面中、1はロボットシステム、2はロボット、3はコントローラ、4はベース、5はショルダ、6は第2オフセットアーム、7は第1アーム、8は第3オフセットアーム、9は第2アーム、10は第5オフセットアーム、11は手首、12はハンドを示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9