IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アズビル株式会社の特許一覧

特開2022-136507逆運動学演算装置及び逆運動学演算方法
<>
  • 特開-逆運動学演算装置及び逆運動学演算方法 図1
  • 特開-逆運動学演算装置及び逆運動学演算方法 図2
  • 特開-逆運動学演算装置及び逆運動学演算方法 図3
  • 特開-逆運動学演算装置及び逆運動学演算方法 図4
  • 特開-逆運動学演算装置及び逆運動学演算方法 図5
  • 特開-逆運動学演算装置及び逆運動学演算方法 図6
  • 特開-逆運動学演算装置及び逆運動学演算方法 図7
  • 特開-逆運動学演算装置及び逆運動学演算方法 図8
  • 特開-逆運動学演算装置及び逆運動学演算方法 図9
  • 特開-逆運動学演算装置及び逆運動学演算方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022136507
(43)【公開日】2022-09-21
(54)【発明の名称】逆運動学演算装置及び逆運動学演算方法
(51)【国際特許分類】
   B25J 9/06 20060101AFI20220913BHJP
【FI】
B25J9/06 A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021036149
(22)【出願日】2021-03-08
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】茂木 貴弘
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707BT01
3C707LS16
3C707LT01
3C707LV01
3C707LV14
3C707MS27
(57)【要約】
【課題】Wrist特異点状態であっても、協働作業者にとって安全な逆運動学演算の解を計算可能とする。
【解決手段】Wrist特異点状態である場合、J6の位置、J5とJ6との間のリンク長さ(L5)、及び、位置制御機構に伴うJ4の可到達領域に基づいて、多関節ロボットアームと協働作業者との間の相対位置関係から、J4の位置を計画する第四関節位置計画器107と、多関節ロボットアームの先端の姿勢、J6の位置、及び、第四関節位置計画器107により計画されたJ4の位置から、J6の角度を計算する第六関節角度計算器108とを備えた。
【選択図】図1
【特許請求の範囲】
【請求項1】
根元側から手首第一関節、手首第二関節及び手首第三関節を有するオフセット手首機構、並びに、前記オフセット手首機構の根元に接続された位置制御機構を備えた多関節ロボットアームにおいて、前記手首第二関節の回転動作によって前記手首第一関節の回転軸と前記手首第三関節の回転軸とが平行且つ非同軸となるWrist特異点状態である場合、前記手首第三関節の位置、前記手首第二関節と前記手首第三関節との間のリンク長さ、及び、前記位置制御機構に伴う前記手首第一関節の可到達領域に基づいて、前記多関節ロボットアームと協働作業者との間の相対位置関係から、前記手首第一関節の位置を計画する手首第一関節位置計画器と、
前記多関節ロボットアームの先端の姿勢、前記手首第三関節の位置、及び、前記手首第一関節位置計画器により計画された前記手首第一関節の位置から、前記手首第三関節の角度を計算する手首第三関節角度計算器と
を備えた逆運動学演算装置。
【請求項2】
前記位置制御機構は、前記手首第一関節の位置に対する逆運動学演算の解が有限個となる
ことを特徴とする請求項1記載の逆運動学演算装置。
【請求項3】
Wrist特異点状態であるか否かを検出するWrist特異点検出器を備え、
前記手首第一関節位置計画器は、前記Wrist特異点検出器によりWrist特異点状態であることが検出された場合に、前記手首第一関節の位置を計画する
ことを特徴とする請求項1又は請求項2記載の逆運動学演算装置。
【請求項4】
前記Wrist特異点検出器によりWrist特異点ではないことが検出された場合、前記多関節ロボットアームの先端の姿勢から、前記手首第三関節の角度を計算する第2の手首第三関節角度計算器と、
前記手首第三関節の位置及び前記第2の手首第三関節角度計算器により計算された前記手首第三関節の角度から、前記手首第一関節の位置を計算する手首第一関節位置計算器とを備えた
ことを特徴とする請求項3記載の逆運動学演算装置。
【請求項5】
手首第一関節位置計画器が、根元側から手首第一関節、手首第二関節及び手首第三関節を有するオフセット手首機構、並びに、前記オフセット手首機構の根元に接続された位置制御機構を備えた多関節ロボットアームにおいて、前記手首第二関節の回転動作によって前記手首第一関節の回転軸と前記手首第三関節の回転軸とが平行且つ非同軸となるWrist特異点状態である場合、前記手首第三関節の位置、前記手首第二関節と前記手首第三関節との間のリンク長さ、及び、前記位置制御機構に伴う前記手首第一関節の可到達領域に基づいて、前記多関節ロボットアームと協働作業者との間の相対位置関係から、前記手首第一関節の位置を計画するステップと、
手首第三関節角度計算器が、前記多関節ロボットアームの先端の姿勢、前記手首第三関節の位置、及び、前記手首第一関節位置計画器により計画された前記手首第一関節の位置から、前記手首第三関節の角度を計算するステップと
を有する逆運動学演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、オフセット手首機構を有する多関節ロボットアームに対して逆運動学演算を行う逆運動学演算装置及び逆運動学演算方法に関する。
【背景技術】
【0002】
6つの回転関節(関節)から成る垂直多関節の産業用ロボットアーム(多関節ロボットアーム)として、図7に示すような多関節ロボットアームが多く用いられている。
図7に示すように、多関節ロボットアームは、主に姿勢制御機構及び位置制御機構から構成されると考えることができる。
【0003】
姿勢制御機構は、手首機構とも呼ばれる。ここでは、姿勢制御機構が有する関節を、根元側(位置制御機構側)から、手首第一関節、手首第二関節及び手首第三関節と呼ぶ。
【0004】
また、図7に示す姿勢制御機構は、特に球状直交手首機構と呼ばれている。この球状直交手首機構は、3つの手首関節の回転軸が1点で直交する特徴があり、位置制御機構に対して独立に姿勢制御できることから、非常に多く利用されている。
【0005】
球状直交手首機構は、図7に示すように、手首第二関節の角度によっては、手首第一関節の回転軸と手首第三関節の回転軸とが平行且つ同軸となるので、手首第一関節の角度と手首第三関節の角度との無数の組み合わせで同じ姿勢を表現できてしまう。すなわち、この場合、多関節ロボットアームの逆運動学演算の解は無数であり、特異点である。特異点では、無数の逆運動学演算の解から解を1つ選択する必要があるので、逆運動学演算装置は特異点か否かを認識し、必要に応じて処理を切替えた方がよい。そのため、多関節ロボットアームが特異点状態となり易い機構であるか否かは、逆運動学演算装置にとって重要な観点である。もちろん、位置制御機構由来で特異点が生じることもあるが、位置制御機構由来の特異点については本願発明との関連が薄いため、説明は省略する。
【0006】
一方、近年では、人協働ロボットとして、球状直交手首機構ではない、オフセット手首機構を備えた多関節ロボットアームも多く用いられている。オフセット手首機構は、手首第二関節が回転しても、手首第一関節の回転軸と手首第三関節の回転軸とが平行にはなっても同軸にはならないという構造的特徴がある。オフセット手首機構は、手首第一関節の回転軸と手首第三関節の回転軸とがずれているため、姿勢制御と位置制御が相互に影響してしまい、逆運動学演算の解法が球状直交手首機構よりも複雑となる。オフセット手首機構を備えた多関節ロボットアームの例を図8に示す。
【0007】
図8に示すオフセット手首機構を備えた多関節ロボットアームは、特異点が手首機構由来であるか姿勢制御機構由来であるかを判別可能であり、姿勢制御機構由来の特異点(以下、Wrist特異点と呼ぶ)を手首第二関節の角度だけで検出できるという利点がある。以下、図8に示す多関節ロボットアームを、オフセット手首機構を有する垂直6回転関節ロボットアームと呼ぶ。また、ここでは、垂直6回転関節ロボットアームが有する各関節を、根元から順にJ1,J2,・・・,J6と呼ぶ。また、各関節の角度を、根元から順にθ1,θ2,・・・,θ6と呼ぶ。なお、図8に示すオフセット手首機構は、計算が単純となるように、J5の回転軸が、J4の回転軸及びJ6の回転軸に対して直交としているが、線形独立であれば下記議論は同様に成り立つので、必ずしも直交でなくてもよい。
【0008】
非特許文献1に、オフセット手首機構を有する垂直6回転関節ロボットアームの逆運動学を解析的に解く方法が示されている。非特許文献1に開示された逆運動学演算装置の構成を以下に示す。
逆運動学演算装置は、図9に示すように、入力器301、第一関節角度計算器302、第一関節座標系変換器303、第五関節角度計算器304、第六関節角度計算器305、第六関節位置計算器306、第四関節位置計算器307、第二三関節角度計算器308、第三関節位置計算器309、第四関節角度計算器310及び出力器311を備えている。
【0009】
入力器301は、ユーザからの入力情報を受付ける。入力情報としては、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢、並びに、解選択のための情報が必要である。解選択のための情報とは、関節の角度の初期値でもよいし、解を特定する構造フラグでもよい。また、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢は、垂直6回転関節ロボットアームの可動範囲内の位置及び姿勢である。
【0010】
第一関節角度計算器302は、入力器301により受付けられた入力情報に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1の角度(θ1)を計算する。ここで、θ1は2通りの値を取り得るため、第一関節角度計算器302は、解選択のための情報から一方の値を選択する。
【0011】
第一関節座標系変換器303は、入力器301により受付けられた入力情報及び第一関節角度計算器302による計算結果に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢を、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する。この際、第一関節座標系変換器303は、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に、ベース座標系のZ軸を回転軸として-θ1だけ回転する同次変換行列を掛けることで、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する。
【0012】
第五関節角度計算器304は、入力器301により受付けられた入力情報及び第一関節座標系変換器303による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置のY座標から、J5の角度(θ5)を計算する。ここで、θ5は2通りの値を取り得るため、第五関節角度計算器304は、解選択のための情報から一方の値を選択する。
【0013】
第六関節角度計算器305は、第一関節座標系変換器303による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の姿勢から、J6の角度(θ6)を計算する。
【0014】
第六関節位置計算器306は、第一関節座標系変換器303による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1座標系におけるJ6の位置を計算する。
【0015】
第四関節位置計算器307は、第六関節角度計算器305による計算結果及び第六関節位置計算器306による計算結果に基づいて、J1座標系におけるJ6の位置及びJ6の角度(θ6)から、J1座標系におけるJ4の位置を計算する。
【0016】
第二三関節角度計算器308は、入力器301により受付けられた入力情報及び第四関節位置計算器307による計算結果に基づいて、J1座標系におけるJ1の位置及びJ4の位置から、J2の角度(θ2)及びJ3の角度(θ3)を計算する。ここで、J1座標系におけるJ1の位置は、{0,0,L1}で固定値として既知である。また、θ3は2通りの値を取り得るため、第二三関節角度計算器308は、解選択のための情報から一方の値を選択する。
【0017】
第三関節位置計算器309は、第二三関節角度計算器308による計算結果に基づいて、J1座標系におけるJ1の位置及びJ2の角度(θ2)から、J1座標系におけるJ3の位置を計算する。
【0018】
第四関節角度計算器310は、第六関節位置計算器306による計算結果、第四関節位置計算器307による計算結果及び第三関節位置計算器309による計算結果に基づいて、J1座標系におけるJ3の位置、J4の位置及びJ6の位置から、J4の角度(θ4)を計算する。
【0019】
出力器311は、各関節角度計算器(第一関節角度計算器302、第五関節角度計算器304、第六関節角度計算器305、第二三関節角度計算器308及び第四関節角度計算器310)により計算された関節の角度をまとめた{θ1,θ2,θ3,θ4,θ5,θ6}を示すデータを出力する。
【先行技術文献】
【非特許文献】
【0020】
【非特許文献1】Kelsey P. Hawkins: “Analytic Inverse Kinematics for the Universal Robots UR-5/UR-10 Arms”, 2017
【発明の概要】
【発明が解決しようとする課題】
【0021】
しかしながら、非特許文献1に開示された従来の逆運動学演算装置では、Wrist特異点状態である場合、第六関節角度計算器305でθ6を計算で一意に求めることができないと指摘されている。
【0022】
従来の逆運動学演算装置における、Wrist特異点状態である場合の構成を図10に示す。以下、Wrist特異点状態ではない場合との差異だけ説明する。
【0023】
入力器301は、入力情報としてJ1座標系におけるJ6の角度(θ6)を更に必要とする。
第四関節位置計算器307は、J1座標系におけるJ6の位置及び入力情報として与えられたJ6の角度(θ6)から、J1座標系におけるJ4の位置を計算する。
【0024】
このように、θ6を計算で一意に求められないので、ユーザがθ6を適切に決めて、第四関節位置計算器307に与える必要があった。しかしながら、ユーザが、θ6の値によってアームがどのように動作するか(どのようなθ2,θ3,θ4が計算されるか)を想像することは非常に困難である。また、θ6の決め方によっては、第四関節位置計算器307で到達不能なJ4の位置が計算され、逆運動学演算の解を得ることさえできない場合もある。
よって、ユーザは試行錯誤(機械による自動的な探索処理を含む)により適切なθ6の値を決める必要があるが、これは、現場作業者の作業効率を低下させる一因となる。
【0025】
また、オフセット手首機構を有する多関節ロボットアームは、人協働ロボットとして多く利用されている構造である故(多関節ロボットアームと人が柵で隔てられず、同じスペースで作業するため)、多関節ロボットアームがどのように動くかわからないというのは多関節ロボットアームと人が接触するリスクを高め、労働安全上望ましくない。
【0026】
以上より、作業効率向上と労働安全性向上のために、Wrist特異点状態であっても、周囲の協働作業者にとって安全な逆運動学演算の解を、試行錯誤することなく計算する方法が求められている。
【0027】
この発明は、上記のような課題を解決するためになされたもので、Wrist特異点状態であっても、協働作業者にとって安全な逆運動学演算の解を計算可能な逆運動学演算装置を提供することを目的としている。
【課題を解決するための手段】
【0028】
この発明に係る逆運動学演算装置は、根元側から手首第一関節、手首第二関節及び手首第三関節を有するオフセット手首機構、並びに、オフセット手首機構の根元に接続された位置制御機構を備えた多関節ロボットアームにおいて、手首第二関節の回転動作によって手首第一関節の回転軸と手首第三関節の回転軸とが平行且つ非同軸となるWrist特異点状態である場合、手首第三関節の位置、手首第二関節と手首第三関節との間のリンク長さ、及び、位置制御機構に伴う手首第一関節の可到達領域に基づいて、多関節ロボットアームと協働作業者との間の相対位置関係から、手首第一関節の位置を計画する手首第一関節位置計画器と、多関節ロボットアームの先端の姿勢、手首第三関節の位置、及び、手首第一関節位置計画器により計画された手首第一関節の位置から、手首第三関節の角度を計算する手首第三関節角度計算器とを備えたことを特徴とする。
【発明の効果】
【0029】
この発明によれば、上記のように構成したので、Wrist特異点状態であっても、協働作業者にとって安全な逆運動学演算の解を計算可能となる。
【図面の簡単な説明】
【0030】
図1】実施の形態1に係る逆運動学演算装置の構成例を示す図である。
図2】実施の形態1に係る逆運動学演算装置の動作例を示すフローチャートである。
図3】J4の可到達領域とθ6によるJ4の計算値域を示す図である。
図4】垂直6回転関節ロボットアームが協働作業者へ接近するリスクが小さくなる解におけるJ4の位置の一例を示す図である。
図5】垂直6回転関節ロボットアームが協働作業者へ接近するリスクが小さくなる解におけるJ4の位置の別の一例を示す図である。
図6】実施の形態3に係る逆運動学演算装置の構成例を示す図である。
図7】一般的な多関節ロボットアームの構成例を示す図である。
図8】オフセット手首機構を有する垂直6回転関節ロボットアームの原点姿勢定義(各関節の角度が0[rad.])を示す図である。
図9】従来の逆運動学演算装置の構成例を示す図である。
図10】従来の逆運動学演算装置の構成例を示す図である(Wrist特異点状態の場合)。
【発明を実施するための形態】
【0031】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係る逆運動学演算装置の構成例を示す図である。
逆運動学演算装置は、オフセット手首機構を有する多関節ロボットアームに対して逆運動学演算を行う。実施の形態1では、逆運動学演算装置が演算対象とする多関節ロボットアームが垂直6回転関節ロボットアームである場合を例に説明を行う。
【0032】
逆運動学演算装置は、図1に示すように、入力器101、第一関節角度計算器102、第一関節座標系変換器103、第六関節位置計算器104、第五関節角度計算器105、Wrist特異点検出器106、第四関節位置計画器107、第六関節角度計算器108、第六関節角度計算器(第2の第六関節角度計算器)109、第四関節位置計算器110、第二三関節角度計算器111、第三関節位置計算器112、第四関節角度計算器113及び出力器114を備えている。
【0033】
なお、逆運動学演算装置は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0034】
入力器101は、ユーザからの入力情報を受付ける。入力情報としては、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢、並びに、解選択のための情報が必要である。解選択のための情報とは、関節の角度の初期値でもよいし、解を特定する構造フラグでもよい。また、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢は、垂直6回転関節ロボットアームの可動範囲内の位置及び姿勢である。
【0035】
第一関節角度計算器102は、入力器101により受付けられた入力情報に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1の角度(θ1)を計算する。ここで、θ1は2通りの値を取り得るため、第一関節角度計算器102は、解選択のための情報から一方の値を選択する。
【0036】
第一関節座標系変換器103は、入力器101により受付けられた入力情報及び第一関節角度計算器102による計算結果に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢を、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する。この際、第一関節座標系変換器103は、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に、Z軸を回転軸として-θ1だけ回転する同次変換行列を掛けることで、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する。
【0037】
第六関節位置計算器104は、第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1座標系におけるJ6の位置を計算する。
【0038】
第五関節角度計算器105は、入力器101により受付けられた入力情報及び第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置のY座標から、J5の角度(θ5)を計算する。ここで、θ5は2通りの値を取り得るため、第五関節角度計算器105は、解選択のための情報から一方の値を選択する。
【0039】
Wrist特異点検出器106は、第五関節角度計算器105による計算結果に基づいて、J5の角度(θ5)から、Wrist特異点状態であるか否かを検出する。すなわち、Wrist特異点検出器106は、|sin(θ5)|<εwristである場合、Wrist特異点状態であるとして検出する。εwristは微小値である。
【0040】
第四関節位置計画器107は、Wrist特異点検出器106によりWrist特異点状態であることが検出された場合、第六関節位置計算器104による計算結果に基づいて、J1座標系におけるJ1の位置及びJ6の位置、垂直6回転関節ロボットアームが有する各リンクの長さ、並びに垂直6回転関節ロボットアームと協働作業者との間の相対位置関係から、J4の位置を計画する。なお、J1座標系におけるJ1の位置は、{0,0,L1}で固定値として既知である。また、垂直6回転関節ロボットアームが有する各リンクの長さも既知である。
【0041】
第六関節角度計算器108は、第一関節座標系変換器103による変換結果、第六関節位置計算器104による計算結果及び第四関節位置計画器107による計画結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の姿勢、J1座標系におけるJ6の位置及びJ1座標系におけるJ4の位置から、J6の角度(θ6)を計算する。
【0042】
第六関節角度計算器109は、Wrist特異点検出器106によりWrist特異点状態ではないことが検出された場合、第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の姿勢から、J6の角度(θ6)を計算する。
【0043】
第四関節位置計算器110は、第六関節位置計算器104による計算結果及び第六関節角度計算器109による計算結果に基づいて、J1座標系におけるJ6の位置及びJ6の角度(θ6)から、J1座標系におけるJ4の位置を計算する。
【0044】
第二三関節角度計算器111は、入力器101により受付けられた入力情報、並びに、第四関節位置計算器110による計算結果又は第四関節位置計画器107による計画結果に基づいて、J1座標系におけるJ1の位置及びJ4の位置から、J2の角度(θ2)及びJ3の角度(θ3)を計算する。また、θ3は2通りの値を取り得るため、第二三関節角度計算器111は、解選択のための情報から一方の値を選択する。
【0045】
第三関節位置計算器112は、第二三関節角度計算器111による計算結果に基づいて、J1座標系におけるJ1の位置及びJ2の角度(θ2)から、J1座標系におけるJ3の位置を計算する。
【0046】
第四関節角度計算器113は、第六関節位置計算器104による計算結果、第三関節位置計算器112による計算結果、並びに、第四関節位置計算器110による計算結果又は第四関節位置計画器107による計画結果に基づいて、J1座標系におけるJ3の位置、J4の位置及びJ6の位置から、J4の角度(θ4)を計算する。
【0047】
出力器114は、各関節角度計算器(第一関節角度計算器102、第五関節角度計算器105、第二三関節角度計算器111、第四関節角度計算器113、並びに、第六関節角度計算器108又は第六関節角度計算器109)により計算された関節の角度をまとめた{θ1,θ2,θ3,θ4,θ5,θ6}を示すデータを出力する。
【0048】
次に、図1に示す実施の形態1に係る逆運動学演算装置の動作例について、図2を参照しながら説明する。
ここで、図3に示すように、ユーザが指定したθ6によって計算されるJ4の位置の値域は、J1座標系のXZ平面において、J6の位置(のXZ平面への射影)を中心とする半径L5の円周上となる。J4の可到達領域(J4が到達可能な領域)は、J1の位置を中心とする半径L2+L3の円の内部である。そして、θ6によって計算されるJ4の位置の値域は、必ずしもJ4の可到達領域ではない。そのため、逆運動学演算が可解となるためには、J4の位置が可到達領域内となるようなθ6を決めねばならない。また、協働作業者と垂直6回転関節ロボットアームとの距離が近い程、接触する危険性があると考えられる。そのため、協働作業者の安全のためには、垂直6回転関節ロボットアームが協働作業者へなるべく接近しないような逆運動学演算の解を得ることが重要となる。
そこで、実施の形態1に係る逆運動学演算装置では、θ6ではなく、J4の位置を先に決めることで上記課題を解決する。実施の形態1に係る逆運動学演算装置によれば、J4の位置は可到達領域内から選択できるので、必ず可解となる。また、垂直6回転関節ロボットアームが協働作業者へ接近するリスクがより小さくなる解を求めるには、垂直6回転関節ロボットアームのベースへより近くなるようなJ4の位置を求めればよい。
【0049】
図1に示す実施の形態1に係る逆運動学演算装置の動作例は、図2に示すように、まず、入力器101は、ユーザからの入力情報を受付ける(ステップST201)。入力情報としては、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢、並びに、解選択のための情報が必要である。解選択のための情報とは、関節の角度の初期値でもよいし、解を特定する構造フラグでもよい。また、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢は、垂直6回転関節ロボットアームの可動範囲内の位置及び姿勢である。
【0050】
次いで、第一関節角度計算器102は、入力器101により受付けられた入力情報に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1の角度(θ1)を計算する(ステップST202)。ここで、θ1は2通りの値を取り得るため、第一関節角度計算器102は、解選択のための情報から一方の値を選択する。
【0051】
次いで、第一関節座標系変換器103は、入力器101により受付けられた入力情報及び第一関節角度計算器102による計算結果に基づいて、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢を、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する(ステップST203)。この際、第一関節座標系変換器103は、ベース座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に、ベース座標系のZ軸を回転軸として-θ1だけ回転する同次変換行列を掛けることで、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢に変換する。
【0052】
次いで、第六関節位置計算器104は、第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置及び姿勢から、J1座標系におけるJ6の位置を計算する(ステップST204)。
【0053】
次いで、第五関節角度計算器105は、入力器101により受付けられた入力情報及び第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の位置のY座標から、J5の角度(θ5)を計算する(ステップST205)。ここで、θ5は2通りの値を取り得るため、第五関節角度計算器105は、解選択のための情報から一方の値を選択する。
【0054】
次いで、Wrist特異点検出器106は、第五関節角度計算器105による計算結果に基づいて、J5の角度(θ5)から、Wrist特異点状態であるか否かを検出する(ステップST206)。すなわち、Wrist特異点検出器106は、|sin(θ5)|<εwristである場合、Wrist特異点状態であるとして検出する。εwristは微小値である。
【0055】
このステップST206において、Wrist特異点検出器106がWrist特異点状態であることを検出した場合、第四関節位置計画器107は、第六関節位置計算器104による計算結果に基づいて、J1座標系におけるJ1の位置及びJ6の位置、垂直6回転関節ロボットアームが有する各リンクの長さ、並びに垂直6回転関節ロボットアームと協働作業者との間の相対位置関係から、J4の位置を計画する(ステップST207)。なお、J1座標系におけるJ1の位置は、{0,0,L1}で固定値として既知である。また、垂直6回転関節ロボットアームが有する各リンクの長さも既知である。
【0056】
ここで、例えば、J1の位置とJ4の位置との距離が最小となるJ4の位置は、垂直6回転関節ロボットアームが協働作業者へ接近するリスクが小さいと考えられる。そこで、第四関節位置計画器107は、図4の符号401に示す位置を、協働作業者にとって安全サイドのJ4の位置(P4={x4,z4})として求めてもよい。
【0057】
なお、θ6によって計算されるJ4の位置の値域を表す円の中心は、J6の位置(のXZ平面への射影)であるP6={x6,z6}であり、第六関節位置計算器104により計算される。また、J1の位置は、P1={0,L1}で既知である。この場合、下式(1)でJ4の位置であるP4は計算できる。
【0058】
次いで、第六関節角度計算器108は、第一関節座標系変換器103による変換結果、第六関節位置計算器104による計算結果及び第四関節位置計画器107による計画結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の姿勢、J1座標系におけるJ6の位置及びJ1座標系におけるJ4の位置から、J6の角度(θ6)を計算する(ステップST208)。
【0059】
ここで、J1座標系における垂直6回転関節ロボットアームの先端の姿勢の回転行列[n,n,n]は既知であり、下式(2)~(4)が成り立つ。よって、二次の連立方程式によりsin(θ6)及びcos(θ6)を計算でき、arctanを計算することでθ6を求められる。ここで、nxxがゼロか否かで連立方程式の解法が異なるので注意が必要である。このように、実施の形態1に係る逆運動学演算装置は、協働作業者の安全という観点でJ4の位置を計算でき、また計算されたJ4の位置を実現するθ6を試行錯誤及び反復演算することなく可解を一意に導出可能である。
【0060】
一方、ステップST206において、Wrist特異点検出器106がWrist特異点状態ではないことを検出した場合、第六関節角度計算器109は、第一関節座標系変換器103による変換結果に基づいて、J1座標系における垂直6回転関節ロボットアームの先端の姿勢から、J6の角度(θ6)を計算する(ステップST209)。
【0061】
次いで、第四関節位置計算器110は、第六関節角度計算器109による計算結果及び第六関節位置計算器104による計算結果に基づいて、J1座標系におけるJ6の位置及びJ6の角度(θ6)から、J1座標系におけるJ4の位置を計算する(ステップST210)。
【0062】
次いで、第二三関節角度計算器111は、入力器101により受付けられた入力情報、並びに、第四関節位置計算器110による計算結果又は第四関節位置計画器107による計画結果に基づいて、J1座標系におけるJ1の位置及びJ4の位置から、J2の角度(θ2)及びJ3の角度(θ3)を計算する(ステップST211)。また、θ3は2通りの値を取り得るため、第二三関節角度計算器111は、解選択のための情報から一方の値を選択する。
【0063】
次いで、第三関節位置計算器112は、第二三関節角度計算器111による計算結果に基づいて、J1座標系におけるJ1の位置及びJ2の角度(θ2)から、J1座標系におけるJ3の位置を計算する(ステップST212)。
【0064】
次いで、第四関節角度計算器113は、第六関節位置計算器104による計算結果、第三関節位置計算器112による計算結果、並びに、第四関節位置計算器110による計算結果又は第四関節位置計画器107による計画結果に基づいて、J1座標系におけるJ3の位置、J4の位置及びJ6の位置から、J4の角度(θ4)を計算する(ステップST213)。
【0065】
次いで、出力器114は、各関節角度計算器により計算された関節の角度をまとめた{θ1,θ2,θ3,θ4,θ5,θ6}を示すデータを出力する(ステップST214)。
【0066】
以上のように、この実施の形態1によれば、逆運動学演算装置は、Wrist特異点状態である場合、J6の位置、J5とJ6との間のリンク長さ(L5)、及び、位置制御機構に伴うJ4の可到達領域に基づいて、垂直6回転関節ロボットアームと協働作業者との間の相対位置関係から、J4の位置を計画する第四関節位置計画器107と、垂直6回転関節ロボットアームの先端の姿勢、J6の位置、及び、第四関節位置計画器107により計画されたJ4の位置から、J6の角度を計算する第六関節角度計算器108とを備えた。これにより、実施の形態1に係る逆運動学演算装置は、Wrist特異点状態であっても、協働作業者にとって安全な逆運動学演算の解を計算可能となる。
【0067】
実施の形態2.
実施の形態1に係る逆運動学演算装置では、第四関節位置計画器107が、J1の位置とJ4の位置との距離が最小となるJ4の位置を求める場合を示した。しかしながら、協働作業者の安全の考え方は垂直6回転関節ロボットアームと協働作業者との相対的な位置関係によりそれぞれであり、例えば図5に示すように、第四関節位置計画器107は、J1座標系におけるX座標が最小となるJ4の位置(図5の符号501に示す位置)を求めてもよい。
【0068】
なお、第四関節位置計画器107の設計バリエーションは当業者であれば多々考えられる。よって、実施の形態1,2では、第四関節位置計画器107によるJ4の位置の計算について2種類の方法を示したが、これに限らず、J6の位置、J6の位置を中心とする半径L5の円、及び、位置制御機構仕様より与えられるJ4の位置の可到達領域から、協働作業者にとって安全サイドの(垂直6回転関節ロボットアームと協働作業者の距離が遠くなるような)J4の位置を求める方法であれば、他の計算方法でもよい。
【0069】
実施の形態3.
実施の形態1,2に係る逆運動学演算装置では、演算対象とする多関節ロボットアームが、オフセット手首機構を有する垂直6回転関節ロボットアームである場合を例に説明を行った。しかしながら、逆運動学演算装置が演算対象とする多関節ロボットアームはオフセット手首機構を有する垂直6回転関節ロボットアームに限らず、他の位置制御機構を有する多関節ロボットアームであってもよい。この場合の逆運動学演算装置の構成例について以下に示す。なお、位置制御機構は、手首第一関節の位置に対する逆運動学演算の解が有限個である。
【0070】
逆運動学演算装置は、図6に示すように、入力器201、位置制御機構回転関節角度計算器202、位置制御機構回転関節座標系変換器203、手首第三関節位置計算器204、手首第二関節角度計算器205、Wrist特異点検出器206、手首第一関節位置計画器207、手首第三関節角度計算器208、手首第三関節角度計算器(第2の手首第三関節角度計算器)209、手首第一関節位置計算器210、位置制御機構逆運動学演算器211、手首第一関節角度計算器212及び出力器213を備えている。
【0071】
実施の形態2に係る逆運動学演算装置では、実施の形態1に示した逆運動学演算装置の各構成の説明に対し、「第一関節」を「位置制御機構回転関節」に読み替え、「第四関節」を「手首第一関節」に読み替え、「第五関節」を「手首第二関節」に読み替え、「第六関節」を「手首第三関節」に読み替え、「垂直6回転関節ロボットアーム」を「多関節ロボットアーム」に読み替えればよい。
【0072】
また、実施の形態2に係る逆運動学演算装置では、実施の形態1に係る逆運動学演算装置に対し、第二三関節角度計算器111及び第三関節位置計算器112が、位置制御機構逆運動学演算器211として統合されている。
【0073】
位置制御機構逆運動学演算器211は、手首第一関節位置計算器210による計算結果又は手首第一関節位置計画器207による計画結果に基づいて、J1座標系におけるJ1の位置及びJ4の位置から、J1座標系におけるJ3の位置を計算する。
【0074】
例えば、位置制御機構が有する第二関節及び第三関節は、回転関節である必要はなく、直動関節でもよい。すなわち、上記第二関節及び第三関節は、回転関節であるか又は直動関節であるかの組合せについて、合計4通りの組合せが考えられる。
位置制御機構回転関節座標系において、位置制御機構の全関節が常に同一の二次元平面上に配置され、位置制御機構の先端を2自由度で制御可能な構成であれば、上記第二関節及び第三関節についての逆運動学演算は計算可能である。よって、上記第二関節及び第三関節は回転関節及び直動関節の何れでもよい。なお、当業者であれば2リンクアームの逆運動学演算は自明であるため、その説明は省略する。また、実施の形態3に係る逆運動学演算装置が演算対象とする位置制御機構は必ずしも3自由度である必要もないため、位置制御機構回転関節が無い場合でも対応可能である。位置制御機構回転関節が無い場合、逆運動学演算装置は、位置制御機構回転関節の角度を0、すなわち、位置制御機構回転関節座標系とベース座標系とが等しいものとして演算を行えばよい。
【0075】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0076】
101 入力器
102 第一関節角度計算器
103 第一関節座標系変換器
104 第六関節位置計算器
105 第五関節角度計算器
106 Wrist特異点検出器
107 第四関節位置計画器
108 第六関節角度計算器
109 第六関節角度計算器(第2の第六関節角度計算器)
110 第四関節位置計算器
111 第二三関節角度計算器
112 第三関節位置計算器
113 第四関節角度計算器
114 出力器
201 入力器
202 位置制御機構回転関節角度計算器
203 位置制御機構回転関節座標系変換器
204 手首第三関節位置計算器
205 手首第二関節角度計算器
206 Wrist特異点検出器
207 手首第一関節位置計画器
208 手首第三関節角度計算器
209 手首第三関節角度計算器(第2の手首第三関節角度計算器)
210 手首第一関節位置計算器
211 位置制御機構逆運動学演算器
212 手首第一関節角度計算器
213 出力器
301 入力器
302 第一関節角度計算器
303 第一関節座標系変換器
304 第五関節角度計算器
305 第六関節角度計算器
306 第六関節位置計算器
307 第四関節位置計算器
308 第二三関節角度計算器
309 第三関節位置計算器
310 第四関節角度計算器
311 出力器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10