説明

7軸多関節ロボットの制御方法、制御プログラム及びロボット制御装置

【課題】7つの関節のうち基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらない機構を持った7軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現する。
【解決手段】基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸が一点で交わらないように構成された7軸多関節ロボットの制御方法であって、前記3つの関節のうち中間関節の回転軸を肩とみなした場合の擬似的な肘角度が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する(ステップS505)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、7軸多関節ロボットの制御方法、制御プログラム及びロボット制御装置に関し、特に、基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらない機構を持つ7軸多関節ロボットを、人間の腕のように滑らかに動作させるための制御方法に関する。
【背景技術】
【0002】
近年、産業用ロボットの制御技術は、コンピュータ技術の進歩に伴って進歩しており、これに伴って産業用ロボットに要求される動作はますます複雑かつ高度化しており、またその精度についてもより高速かつ高精度化が必要とされている。例えば、従来から産業用ロボットとして広く用いられている6軸多関節ロボットの場合、ある決まった位置に移動する用途としては十分であるが、移動空間に存在するさまざまな障害物を巧みに回避しながら複雑な作業を行うことが困難であった。そこで、関節JT1〜JT6それぞれの回転軸である計6軸を具備した6軸多関節ロボットに対し、更に冗長軸として関節JT7の回転軸を追加した7軸多関節ロボットの開発が近年盛んになってきている。
【0003】
7軸多関節ロボットの制御方法としては、従来の6軸多関節ロボットの場合と同様に、当該手首の位置姿勢(手首座標)から各関節角(関節座標)を求める逆変換(座標変換)が行われている。そして、この逆変換の際には、人間の腕のように滑らかな動作を実現するために、肘角度を一定にすることを拘束条件にしている。
【0004】
まず、図10を用いて、関節JT1、関節JT2、及び関節JT7それぞれの回転軸が一点で交わる機構を持った7軸多関節ロボットを例に挙げて説明する。
【0005】
図10では7軸多関節ロボットの「肩(S)」、「肘(E)」及び「手首(W)」が定義されている。肩(S)は関節JT1、JT2、及びJT7それぞれの回転軸の交点のことを指しており、手首(W)は関節JT4、JT5及びJT6それぞれの回転軸の交点のことを指しており、肘(E)は関節JT3の回転軸のことを指している。図11に示すように肩(S)、肘(E)及び手首(W)の計3点で定義される平面SEWは、手首の位置及び姿勢を一定に保った状態で、直線SWの周りを回転することができる。一般的に、肘角度θEは、肩(S)と手首(W)とを結ぶベクトル周りにおける「肘(E)」の回転関節角∠EHE’として定義されており、この肘角度θEを一定とすることを拘束条件にした逆変換が行なわれる。
【0006】
例えば、特許文献1の段落[0012]には、7軸多関節ロボットが第7関節(関節軸J3)を固定することによって6軸多関節ロボットと等価なものとして考えることが開示されている。また、特許文献1の段落[0014]には、関節軸J1と関節軸J2との間にY方向のオフセットが無い7軸多関節ロボットが、所定距離離れて設置されている6軸多関節ロボットとの干渉を回避するために、関節軸J2を含むXY平面と肩(関節軸J1と関節軸J2との交点)と手首(関節軸J6)とを支点として、肘(関節軸J4)が略円弧軌跡を描くように動作することが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−125892号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
つぎに、図12に示すような、関節JT1、JT2及びJT7それぞれの回転軸が一点で交わらない機構を持った7軸多関節ロボットを例に挙げて説明する。
【0009】
図12の7軸多関節ロボットでは、関節JT1,JT2の間にロボットの作業範囲を拡大させる目的でオフセットが設定されており、関節JT1、JT2及びJT7それぞれの回転軸が一点で交わらない機構を持っている。このように、オフセットを有した機構の場合、7軸多関節ロボットの肩(S)を正確に定義することができない。仮に、関節JT2の回転軸付近を肩と見なしても、逆変換の処理に必要な肘角度の精度に欠けるという問題がある。つまり、オフセットを有した機構の場合、肘角度を一定に保つ動作を実現できるように逆変換することは容易ではない。
【0010】
そこで、図13に示すように、冗長軸のために追加された関節JT7の現在の関節角(JT7現在値)を固定させることを拘束条件として逆変換を行う方法が考えられる。しかしながら、この方法では、せっかく冗長性を得るために追加した関節JT7の関節角がロボット動作中に固定され、1自由度分無駄になる。
【0011】
本発明は、このような課題を解決するためになされたもので、その目的は、7つの関節のうち基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらない機構を持つ7軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することである。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、本発明に係る7軸多関節ロボットの制御方法は、基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットの制御方法であって、前記3つの関節のうち中間関節の回転軸を肩とみなした場合の擬似的な肘角度が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する、ものである。
【0013】
上記のように構成された7軸多関節ロボットであっても、この3つの関節のうち中間関節(JT2)の回転軸を擬似的な肩(後述の擬似肩)とみなした場合、擬似的な肘角度を定義することができる。また、かかる7軸多関節ロボットの振る舞いとして、本発明者は、「ロボット動作開始時の初期形態がどのような状態であっても、中間関節の関節角が擬似的な肘角度の変化に概ね比例するように変化する」という特徴を見出した(知見を得た)。そこで、3つの関節のうち先端側の関節(後述のJT7)の関節角を固定させるのではなく、この擬似的な肘角度が一定となるような中間関節の関節角を拘束条件に用いて逆変換を実行することにより、上記のように構成された7軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することが可能となった。
【0014】
上記の制御方法において、前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(該基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る第1最大値及び第1最小値を算出する工程と、前記擬似的な肘角度を表す指標として、前記第1最大値から前記第1最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、を備え、前記拘束条件は、算出した前記比率が一定となるような前記中間関節の関節角を使用する条件である、としてもよい。
【0015】
上記の制御方法において、前記拘束条件の工程は、前記先端側の関節の関節角を0°(基準位置)又は180°(該基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作中における現在の前記中間関節の関節角が取り得る第2最大値及び第2最小値を算出する工程と、算出した前記第2最大値及び第2最小値と算出した前記比率とに基づいてロボット動作中における現在あるべき前記中間関節の関節角の目標値を算出する工程と、算出した前記目標値を逆変換の際の拘束条件に使用する前記中間関節の関節角に当てはめる工程と、を備えるとしてもよい。
【0016】
上記のように構成された7軸多関節ロボットの振る舞いとして、本発明者は、さらに、「ロボット動作開始時の初期形態がどのような状態であっても、先端側の関節の関節角が0°(基準位置)の場合には擬似的な肘角度が0°となり且つ中間関節の関節角が第1最小値(又は第1最大値)になる。一方、先端側の関節の角度が180°(基準位置からの最大変位位置)の場合には擬似的な肘角度が180°となり且つ中間関節の関節角が第1最大値(又は第1最小値)となる。」という特徴を見出した。換言すると、先端側の関節の関節角が0°から180°に変化するに従って擬似的な肘角度が0°から180°へと変化し、この擬似的な肘角度の変化に概ね比例するように中間関節の関節角が第1最小値から第1最大値へ(もしくは第1最大値から第1最小値へ)と変化することを見出した。そこで、この擬似的な肘角度を表す指標として、第1最大値から第1最小値までの範囲内における初期形態の中間関節の関節角の比率を算出し、この算出した比率が一定となるような中間関節の角度を拘束条件に用いることとした。これにより、人間の腕のように滑らかに動作させる制御を容易に実現することが可能となった。
【0017】
上記の課題を解決するために、その他の本発明に係る7軸多関節ロボットの制御プログラムは、基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットの制御プログラムであって、コンピュータに、前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する工程と、前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する工程と、を実行させるためのものである。
【0018】
上記の課題を解決するために、その他の本発明に係る7軸多関節ロボットのロボット制御装置は、基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットのロボット制御装置であって、前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する手段と、前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する手段と、算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する手段と、を備えるように構成されたものである。
【発明の効果】
【0019】
本発明によれば、7つの関節のうち基端側にある3つの関節の各回転軸が一点で交わらない機構を持った7軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することができる。
【図面の簡単な説明】
【0020】
【図1】図1は本発明の実施の形態における7軸多関節ロボットとロボット制御装置とによるロボットシステムの構成を示した図である。
【図2】図2は図1に示す7軸多関節ロボットのリンク構造を模式的に表した図である。
【図3】図3は図1に示す7軸多関節ロボットの逆変換を説明するための概念図である。
【図4】図4は本発明の実施の形態におけるロボット動作開始時の制御手順を示すフローチャートである。
【図5】図5は本発明の実施の形態におけるロボット動作中の制御手順を示すフローチャートである。
【図6】図6は本方式のシミュレーション条件を説明するための概念図である。
【図7】図7(a)は本方式による擬似的な肘角度の変化を表したグラフであり、図7(b)は比較方式による肘角度の変化を表したグラフであり、図7(c)は参考として本方式による関節JT7の関節角の変化を表したグラフである。
【図8】図8は本発明の概念を説明するための模式図である。
【図9】図9は本発明の概念を説明するための模式図である。
【図10】図10は7つの関節のうち基端側にある3つの関節JT1,JT2,JT7の各回転軸が一点で交わる機構を持った7軸多関節ロボットのリンク構造を模式的に表した図である。
【図11】図11は図10に示す7軸多関節ロボットにおいて定義される肘角度を説明するための図である。
【図12】図12は7つの関節のうち基端側にある3つの関節JT1,JT2,JT7の各回転軸が一点で交わらない機構を持った7軸多関節ロボットのリンク構造を模式的に表した図である。
【図13】図13は比較方式の逆変換を説明するための図である。
【発明を実施するための形態】
【0021】
以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。なお、以下では全ての図を通じて同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0022】
(本発明の概念)
最初に本発明の概念を説明する。
【0023】
図8は、本発明の概念を説明するための模式図である。なお、図8は、図12に示すオフセット有りの7軸多関節ロボットから「手首(W)」を構成する関節JT4〜JT6が省略された場合を表している。
【0024】
図8の7軸多関節ロボットにおいて関節JT2の回転軸を擬似的な「肩(S)」(以下では、擬似肩S’と称する)と定義した際に図11に示すように定義される肘角度θE(以下では、擬似的な肘角度と称する)が一定となるように動作させると、人間の腕のような滑らかな動作が実現される。
【0025】
ここで、図8の7軸多関節ロボットを、図示しない「手首(W)」の位置姿勢を一定に保った状態で関節JT7を動作させると、「肘(E)」を構成する関節JT3が倒れるとともに、擬似的な肘角度が変化することがわかる。また、このときのロボットアームの振る舞いから以下の2つの特徴を見出せる。
【0026】
特徴1:手首の位置姿勢がどのような状態であっても、関節JT2の関節角が擬似的な肘角度の変化に概ね比例するように変化する。
【0027】
特徴2:手首の位置姿勢がどのような状態であっても、関節JT7が0°の場合(基準位置から変化なしの場合)には擬似的な肘角度が0°となり且つ関節JT2の関節角が最小値(又は最大値)J21になる。関節JT7が180°の場合(基準位置から最大に変化した場合)には擬似的な肘角度が180°となり且つ関節JT2の関節角が最大値(又は最小値)J22となる。
【0028】
つまり、図9において、関節JT7の関節角が0°から180°に変化するに従って、擬似的な肘角度が0°から180°へと変化し、また、この肘角度の変化に概ね比例するように関節JT2の関節角がJ21からJ22へと変化することになる。
【0029】
そこで、関節JT7の関節角を0°又は180°として逆変換を実行することにより、ロボット動作開始時の初期形態から関節JT2の関節角が取り得る最大値及び最小値を算出する。そして、この算出された最大値及び最小値をそれぞれ100%、0%と定義し、ロボット動作開始時における関節JT2の関節角が何%であるかを表したJT2比率αを算出する。このJT2比率αはオフセットが無い場合の肘角度θE(図11参照)に相当する指標である。そして、この算出したJT2比率αが一定となる関節JT2の関節角を拘束条件に用いて逆変換を実行する。
【0030】
(実施の形態)
次に、上述の本発明の概念に基づく本発明の実施の形態を説明する。
【0031】
[7軸多関節ロボット]
図1は、本発明の実施の形態に係る7軸多関節ロボットとロボット制御装置とから成るロボットシステムの構成を示した図である。
【0032】
図1に示すように、7軸多関節ロボット100は、基端から手首に向って順に設けられた6つの関節JT1〜JT6を具備し、6つの関節JT1〜JT6が回転軸A1〜A6をそれぞれ有する6軸多関節ロボットにおいて、関節JT2と関節JT3との間に冗長軸を追加するための関節JT7が設けられ、かつ7つの関節JT1〜JT7が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有するように構成されている。なお、7つの関節及び7つの回転軸に付与された符号(JT1〜JT7、A1〜A7)は便宜上付したものであり、7つの関節及び7つの回転軸それぞれを識別可能であれば如何なる符号であってもよい。
【0033】
さらに、7軸多関節ロボット100は、図12と同様に、関節JT1、JT2及びJT7それぞれの回転軸のうち少なくとも1軸が他の軸と一点で交わらない機構を持っている。具体的には、図1では、関節JT1,JT2の間にロボットの作業範囲を拡大させる目的でオフセットが設定されており、関節JT2及びJT7それぞれの回転軸は一点で交わっているが、関節JT1の回転軸が関節JT2及びJT7それぞれの回転軸と一点で交わらない機構が表されている。このように、オフセットを有した機構の場合、「手首(W)」及び「肘(E)」は定義できるが、「肩(S)」を正確に定義できない。そこで、関節JT2の回転軸付近を「擬似肩(S’)と定義している。なお、手首(W)は関節JT4、JT5及びJT6それぞれの回転軸の交点のことを指しており、肘(E)は関節JT3の回転軸のことを指している。擬似肩(S)は関節JT2,JT7それぞれの回転軸の交点のことを指している。以下では、「擬似肩(S)」を原点としたXYZ直交座標系のことを「基準座標系」と称し、「手首(W)」を原点としたXYZ直交座標系のことを「手首座標系」と称する。また、基準座標系の原点に対する手首座標系の原点の変位のことを「手首位置」と称し、基準座標系に対する手首座標系の角変位のことを「手首姿勢」と称する。また、主に手首姿勢に影響を及ぼす部分のことを「手首」と称する。
【0034】
図1に示す7軸多関節ロボット100において、手首座標系の原点は回転軸A4〜A6の回転軸全てが一点で交わった点であるので、関節JT4〜JT6に関する部分が手首となっている。他方、手首位置に影響を及ぼすのは関節JT1〜JT3、及び関節JT7に関する部分となっている。
【0035】
基台2には、旋回台3、アーム部材(リンク)4、5、6、7、8、及びアタッチメント9がこの順に連設されている。なお、アタッチメント9の先端を成すフランジ面には、各種の作業内容に応じて適宜選択されたツール部材11が着脱可能に取り付けられている。基台2からアタッチメント9までの連設された部材2〜9は互いに相対回転可能となるよう連結されている。
【0036】
アーム部材7、8及びアタッチメント9は、アタッチメント9に取り付けられるツール部材11に微細な動作を行わせるための人間の手首に似せた構造体(以下、手首装置という。)を成している。回転軸A1、回転軸A2、回転軸A7及び回転軸A3は、手首装置とともにツール部材11を水平旋回させたり揺動させたりするための回転軸として用いられ、7軸多関節ロボット100の主軸を成している。回転軸A4〜A6は、手首装置に設定される回転軸であり、所謂RBR(Roll−Bend−Roll)型の手首軸を成している。なお、手首装置の手首軸は、RBR型に限られず、所謂BBR(Bend−Bend−Roll)型や3R(Roll−Roll−Roll)型の手首軸であってもよい。
【0037】
関節JT1〜JT7にはそれぞれサーボモータM1〜M7及び位置検出器E1〜E7が設けられている。位置検出器E1〜E7は、例えば、ロータリーエンコーダで構成されている。上記の各サーボモータM1〜M7を駆動することにより、関節JT1〜JT7においてそれぞれ許容される回転軸A1〜A7周りの回転が行われる。なお、各サーボモータM1〜M7は互いに独立して駆動することが可能である。また、上記の各サーボモータM1〜M7が駆動されると、上記の各位置検出器E1〜E7によって上記の各サーボモータM1〜M7の回転軸A1〜A7周りの回転位置の検出が行われる。
図2は、図1に示した7軸多関節ロボット100のリンク構造を模式的に表した図である。
基台2と旋回台3との連結部である関節JT1において基台2に対する旋回台3の回転軸A1周りの回転(旋回)が許容されている。なお、基台2の上面中央部には擬似肩(S’)として基準座標系(X0軸、Y0軸、Z0軸から成る直交座標系)の原点Oが設定されている(図2参照)。また、関節JT1には、当該関節JT1の関節座標系(X1軸、Y1軸、Z1軸から成る直交座標系)が設定されている。
【0038】
旋回台3の上端部とアーム部材4の一端部との連結部である関節JT2において、旋回台3に対するアーム部材4の回転軸A2周りの回転(回動)が許容されている。なお、関節JT2には、当該関節JT2の関節座標系(X2軸、Y2軸、Z2軸から成る直交座標系)が設定されている。ここで、図2の各関節の状態の場合、関節JT2の関節座標系の原点の鉛直方向の距離をリンク長L0と表し、関節JT1の関節座標系の原点と関節JT2の関節座標系の原点との間で水平方向(紙面左方向)の距離をリンク長L1と表す。
【0039】
アーム部材4の他端部とアーム部材5の一端部との連結部である関節JT7において、アーム部材4に対するアーム部材5の回転軸A7周りの回転(旋回)が許容されている。なお、関節JT7には、当該関節JT7の関節座標系(X7軸、Y7軸、Z7軸から成る直交座標系)が設定されている。
【0040】
アーム部材5の他端部とアーム部材6の一端部との連結部である関節JT3において、アーム部材5に対するアーム部材6の回転軸A3周りの回転(回動)が許容されている。なお、関節JT3には、当該関節JT3の関節座標系(X3軸、Y3軸、Z3軸から成る直交座標系)が設定されている。ここで、図2の各関節の状態の場合、関節JT2の関節座標系の原点と関節JT3の関節座標系の原点との間で鉛直方向の距離をリンク長L2と表す。
【0041】
アーム部材6の他端部とアーム部材7の一端部との連結部である関節JT4において、アーム部材6に対するアーム部材7の回転軸A4周りの回転(旋回)が許容されている。なお、関節JT4には、当該関節JT4の関節座標系(X4軸、Y4軸、Z4軸から成る直交座標系)が設定されている。ここで、図2の各関節の状態の場合、関節JT3の関節座標系の原点と関節JT4の関節座標系の原点との間で鉛直方向の距離をリンク長L3と表し、関節JT3の関節座標系の原点と関節JT4の関節座標系の原点との間で水平方向の距離をリンク長L4と表す。
【0042】
アーム部材7の他端部とアーム部材8の一端部との連結部である関節JT5において、アーム部材7に対するアーム部材8の回転軸A5周りの回転(回動)が許容されている。なお、関節JT5には、当該関節JT5の関節座標系(X5軸、Y5軸、Z5軸から成る直交座標系)が設定されている。
【0043】
アーム部材8の他端部とアタッチメント9の一端部との連結部である関節JT6においてアーム部材8に対するアタッチメント9の回転軸A6周りの回転(旋回)が許容される。なお、関節JT6には、当該関節JT6の関節座標系としてX6軸、Y6軸、Z6軸から成る直交座標系が設定されている。このX6軸、Y6軸、Z6軸から成る直交座標系は、回転軸A4〜A6が一点で交わった点を原点に持っている。ここで、図2の各関節の状態の場合、関節JT5の関節座標系の原点と手首との間で鉛直方向の距離をリンク長L5と表す。
【0044】
基台2が床面に適正に設置されると、基台2に最も近い回転軸A1は鉛直方向(基台2から関節JT1への延在方向)に指向し、回転軸A2は水平方向(床面と平行な方向)に指向している。回転軸A7は回転軸A2と直交する方向であって、かつアーム部材4の延在方向に指向している。回転軸A3は回転軸A7と直交する方向であって、かつ水平方向に指向している。回転軸A4は回転軸A3と直交する方向であって、かつアーム部材6の延在方向に指向している。回転軸A5は回転軸A4と直交する方向であって、かつ水平方向に指向している。回転軸A6は回転軸A5と直交する方向であって、かつアーム部材8の延在方向に指向している。よって、回転軸A1〜A7は、全ての互いに隣り合う関節の回転軸が互いに垂直となるように配置されている。
【0045】
[ロボット制御装置]
ロボット制御装置200は、多関節ロボット100の基台2の周辺に配置されている。なお、多関節ロボット100と遠隔に配置されていてもよいし、多関節ロボット100と物理的に着脱可能な形態で接続されてもよい。ロボット制御装置200は、サーボアンプ210を備えている。サーボアンプ210は、多関節ロボット100の関節JT1〜JT6が具備するサーボモータM1〜M6それぞれに対し、アタッチメント9に取り付けられたツール部材11を任意の位置姿勢に任意の経路に沿って移動させるサーボ制御を行うものである。
【0046】
サーボアンプ210は、駆動部230及び制御部240を備えている。なお、制御部240はサーボアンプ210の外部に設けられてもよく、換言すると、サーボアンプ210は駆動部230のみで構成されていてもよい。
【0047】
駆動部230は、サーボモータM1〜M6を駆動する電力変換装置であり、例えば、整流回路やインバータ回路で構成されている。なお、サーボアンプ210は、サーボモータM1〜M6それぞれに対して個別のサーボループを形成するように複数設けられているが、1つのサーボアンプ210によってサーボモータM1〜M6が統括して駆動されるように構成されてもよい。この場合、駆動部230のみがサーボモータM1〜M6毎に設けられる。
【0048】
制御部240は、サーボアンプ210を含めたロボット制御装置200全体の制御を司るものであり、例えば、マイクロコントローラ、CPU、MPU、PLC、DSP、ASIC又はFPGAなどで構成されている。なお、制御部240は、互いに協働して分散制御する複数の制御器によって構成されてもよい。例えば、上位制御装置とのインタフェース処理をCPUが担当し、サーボアンプ210の基本演算(位置ループ演算、速度ループ演算及び電流ループ演算)をDSPが担当するようにシステム構成されてもよい。
【0049】
ロボット制御装置200は、ティーチペンダント等と接続可能である。このティーチペンダントを用いてオペレータが教示作業を行う。制御部240は、教示作業やオフラインツール等により作成された動作プログラムに基づいて、ツール部材11が位置すべき目標位置を算出する。さらに、制御部240は、目標位置の座標データの逆変換を行い、ツール部材11を目標位置に移動させるために必要となる関節角θ1〜θ7を算定する。そして、制御部240は、これらの算定した関節角θ1〜θ7と上記の位置検出器E1〜E7により検出される電源オン時の回転位置との偏差に基づき、関節JT1〜JT7に設けられたサーボモータの動作量の指令値を演算し、各サーボモータに供給する。これにより、ツール部材11が目標位置に移動される。
【0050】
ロボット制御装置200が7軸多関節ロボット100を対象とした逆変換を行う場合、手首の姿勢を規定する手首軸(A4〜A6)はひとまず無視しておき、当該手首の位置を規定する残りの4つの回転軸A1、A2、A7、A3のうち、1つの回転軸(例えば、回転軸A7)を冗長軸とし、かつ残りの3つの回転軸(例えば、回転軸A1〜A3)を基軸とし、当該基軸を有した各関節の関節角を未知変数として取り扱う。
【0051】
ここで、図3に示すように、基準座標系の原点O(0,0,0)と7軸多関節ロボット100の手首の位置Pとの間の直線距離をRh、当該基準座標系における手首の位置PのZ軸方向の距離(基端に最も近い回転軸の延在方向における基端から手首までの距離)をZhとして表す。さらに、基準座標系における手首の位置Pを(Xp,Yp,Zp)と表したときに、Rh及びZhについて次式が成立する。
【0052】
Rh=Xp+Yp+Zp ・・・式(1)
Zh=Zp ・・・式(2)
また、Rh、Zhは、上記の式(1)及び式(2)とは別に、7軸多関節ロボット100の各リンク長と関節JT1〜JT3、JT7の関節角θ1、θ2、θ3、θ7を用いて表すことができる。よって、これらの式を整理すると、次式のとおり変数t(=tanθ3)についての4次方程式を得ることが出来る。
【0053】
t4+a・t3+b・t2+c・t+d=0 ・・・式(3)
上記の式(3)の4次方程式を解くことにより関節角θ3が求まり、この求められた関節角θ3に基づいて関節角θ1及び関節角θ2が一義的に求められる。
【0054】
[7軸多関節ロボットの制御方法]
図4は本発明の実施の形態におけるロボット動作開始時の制御手順を示すフローチャートである。
【0055】
まず、ロボット制御装置200は、ロボット動作開始時の初期形態における初期手首位置姿勢P_iniと、ロボット動作開始時の初期形態における各関節角である初期各軸値JT1_ini、JT2_ini・・・JT7_iniと、をあらかじめ認識しているものとする(ステップS401)。なお、関節JT2の初期関節角JT2_iniを初期値J20と表すものとする。
【0056】
つぎに、ロボット制御装置200は、初期手首位置姿勢P_iniについて、関節JT7の関節角が0°であることを拘束条件として逆変換を実行し、関節角JT1_ini_0、JT2_ini_0・・・JT7_ini_0を求める(ステップS402)。なお、このとき求められた関節角の中で関節JT2の関節角JT2_ini_0を最小値J21(第1最小値)と表すものとする。
【0057】
つぎに、ロボット制御装置200は、初期手首位置姿勢P_iniについて、関節JT7の関節角が180°であることを拘束条件として逆変換を実行し、関節角JT1_ini_180、JT2_ini_180・・・JT7_ini_180を求める(ステップS403)。なお、このとき求められた関節角の中で関節JT2の関節角JT2_ini_180を最大値J22(第1最大値)と表すものとする。
【0058】
そして、ロボット制御装置200は、ステップS401で求めた初期値J20、ステップS402で求めた最小値J21及びステップS403で求めた最大値J22を用いて、初期位置姿勢において関節JT2の関節角が取りうる範囲(=J21−J22)の中で、初期値J20が最小値J21にどの程度近いのかを表した次式のJT2比率αを算出する(ステップS404)。
【0059】
α=(J22−J20)/(J22−J21) ・・・式(4)
なお、JT2比率αは、初期値J20が最小値J21に最も近い(J20=J21)場合には1(100%)であり、初期値J20が最小値J21に最も遠い(J20=J22)場合には0(0%)である。このJT2比率αを概ね一定に保つことで、擬似的な肘角度を概ね一定に保つことができる。
【0060】
図5は本発明の実施の形態におけるロボット動作中の制御手順を示すフローチャートである。
【0061】
まず、ロボット制御装置200は、ロボット動作中における現在の手首位置姿勢である現在手首位置姿勢P_nを初期値として認識しているものとする(ステップS501)。
【0062】
つぎに、ロボット制御装置200は、現在手首位置姿勢P_nについて、関節JT7の関節角が0°であることを拘束条件として逆変換を実行し、関節角JT1_n_0、JT2_n_0・・・JT7_n_0を求める(ステップS502)。なお、このとき求められた関節角の中で関節JT2の関節角JT2_n_0を最小値J21’(第2最小値)と表すものとする。
【0063】
つぎに、ロボット制御装置200は、現在手首位置姿勢P_nについて、関節JT7の関節角が180°であることを拘束条件として逆変換を実行し、関節角JT1_n_180、JT2_n_180・・・JT7_n_180を求める(ステップS503)。なお、このとき求められた関節角の中で関節JT2の関節角JT2_n_180を最大値J22’(第2最大値)と表すものとする。
【0064】
つぎに、ロボット制御装置200は、ステップS404で求めたJT2比率α、ステップS502で求めた最小値J21’及びステップS503で求めた最大値J22’を用いて、次式の関節JT2の関節角の目標値J20’を算出する(ステップS504)。
【0065】
J20’=J22’−(J22’−J21’)・α ・・・式(5)
そして、ロボット制御装置200は、関節JT2の関節角としてステップS504で求めた目標値J20’を拘束条件に用いて逆変換を実行し、残りの関節JT1,JT3,JT4,JT5,JT6,JT7の各軸値(関節角)を算出する(ステップS505)。
【0066】
手首の初期位置姿勢から該手首の目標位置姿勢に至るまで以上のステップS501〜S505を繰り返し遂行することで、JT2比率αが一定に保たれ、関節JT1、JT2及びJT7それぞれの回転軸が一点で交わらない機構を持った7軸多関節ロボットであっても、擬似肩による擬似的な肘角度を一定に保つような滑らかな動作を容易に実現することが可能とする。
【0067】
[シミュレーション結果]
以下では、図6、図7を用いて、本発明の実施の形態におけるJT2比率αを概ね一定に保つ制御方法のシミュレーション結果を説明する。
【0068】
図6は、本発明の実施の形態におけるJT2比率αを概ね一定に保つ制御方法(以下、本方式と称する)のシミュレーション条件を説明するための概念図である。7軸多関節ロボット100の各リンク長として、リンク長L0を400mm、リンク長L1を100mm、リンク長L2を500mm、リンク長L3を600mm及びリンク長L4を40mmとする。7軸多関節ロボット100の初期形態において、関節JT1の関節角を0°、関節JT2の関節角を40°、関節JT3の関節角を−100°、関節JT7の関節角を−45°とし、この初期形態の状態から手首を図6に示す基準座標系のY軸の負方向に沿って2000mm移動させることを本方式のシミュレーション条件とする。
【0069】
図7は、図6に示すシミュレーション条件を基に実行した本方式のシミュレーション結果と、本方式の比較方式として関節JT7の関節角を固定させる制御方法(以下、比較方式と称する)を同じシミュレーション条件を基に実行したシミュレーション結果とを対比したグラフである。なお、図7(a)は本方式による擬似的な肘角度の変化を表したグラフであり、図7(b)は比較方式による肘角度の変化を表したグラフであり、図7(c)は参考として本方式による関節JT7の関節角の変化を表したグラフである。
【0070】
図7(a)と図7(b)とを対比すれば、本方式の方が比較方式よりも肘角度の変化を小さくできることが分かる。また、図7(c)によれば、本方式では肘角度を一定にするように関節JT7の関節角が変化することが分かる。
【0071】
[変形例]
7軸多関節ロボット100は、例えばロボット全体が走行する場合にその走行のためのモータの回転軸が存在する場合や、関節JT7と関節JT3との間や関節JT3と第4関節との間等に不使用の関節の回転軸が存在する場合など、7軸以上の多軸を有していてもよい。つまり、7軸多関節ロボット100は、実質的に7軸であればよい。
【0072】
JT2比率αは、次式のとおり、初期値J20が最大値J22にどの程度近いのかを表した指標であってもよい。
【0073】
α=(J21−J20)/(J22−J21) ・・・式(6)
関節JT1と関節JT2との間に設定されるオフセットは、図2に示すように直角に折れ曲がっているL字形の形態に限定されず、例えば関節JT1と関節JT2との間を斜め方向に傾けた直線形の形態であってもよい。
関節JT1と関節JT2との間にオフセットが設定される他に、関節JT2と関節JT7との間にオフセットが設定されていてもよいし、関節JT1と関節JT2との間及び関節JT2と関節JT7との間にオフセットが設定されていてもよい。つまり、7軸多関節ロボット100は、関節JT1、JT2及びJT7それぞれの回転軸のうち少なくとも1軸が他の軸と一点で交わらない機構を持っていればよい。このような機構としては、図2に示すように、関節JT2,JT7それぞれの回転軸が一点で交わってはいるが、関節JT1の回転軸が関節JT2,JT7それぞれの回転軸と交差していない機構の他に、関節JT1,JT2それぞれの回転軸が一点で交わってはいるが、関節JT7の回転軸が関節JT1,JT2それぞれの回転軸と交差していない機構であってもよい。あるいは、関節JT1、JT2及びJT7の全ての回転軸が互いに一点で交わらない機構であってもよい。
【0074】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。
【産業上の利用可能性】
【0075】
本発明は、7つの関節のうち基端側にある3つの関節の各回転軸が一点で交わらない機構を持った7軸多関節ロボットを人間の腕のように滑らかに動作させる制御にとって有用である。
【符号の説明】
【0076】
2… 基台
3… 旋回台
4〜8… アーム部材
9… アタッチメント
10… 手首装置
11… ツール部材
JT1〜JT7… 関節
A1〜A7… 回転軸
M1〜M7… サーボモータ
E1〜E7… 位置検出器
L0〜L5… リンク長
100… 7軸多関節ロボット
200… ロボット制御装置
210…サーボアンプ
230…駆動部
240…制御部

【特許請求の範囲】
【請求項1】
基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットの制御方法であって、
前記3つの関節のうち中間関節の回転軸を肩とみなした場合の擬似的な肘角度が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する、7軸多関節ロボットの制御方法。
【請求項2】
前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(該基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る第1最大値及び第1最小値を算出する工程と、
前記擬似的な肘角度を表す指標として、前記第1最大値から前記第1最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、
を備え、前記拘束条件は、算出した前記比率が一定となるような前記中間関節の関節角を使用する条件である、請求項1に記載の7軸多関節ロボットの制御方法。
【請求項3】
前記拘束条件の工程は、
前記先端側の関節の関節角を0°(基準位置)又は180°(該基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作中における現在の前記中間関節の関節角が取り得る第2最大値及び第2最小値を算出する工程と、
算出した前記第2最大値及び第2最小値と算出した前記比率とに基づいてロボット動作中における現在あるべき前記中間関節の関節角の目標値を算出する工程と、
算出した前記目標値を逆変換の際の拘束条件に使用する前記中間関節の関節角に当てはめる工程と、
を備える請求項2に記載の7軸多関節ロボットの制御方法。
【請求項4】
基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットの制御プログラムであって、
コンピュータに、
前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する工程と、
前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、
算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する工程と、
を実行させるための7軸多関節ロボットの制御プログラム。
【請求項5】
基端から先端に向かって順に設けられた7つの関節を具備し、当該7つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある3つの関節の各回転軸のうち少なくとも1軸が他の軸と一点で交わらないように構成された7軸多関節ロボットのロボット制御装置であって、
前記3つの関節のうち先端側の関節の関節角を0°(基準位置)又は180°(基準位置からの最大変位位置)として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する手段と、
前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する手段と、
算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する手段と、
を備えるように構成されたロボット制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−139762(P2012−139762A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2010−293341(P2010−293341)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(000000974)川崎重工業株式会社 (1,710)
【Fターム(参考)】