(57)【特許請求の範囲】
【請求項１】
基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットの制御方法であって、
前記３つの関節のうち中間関節の回転軸を肩とみなした場合の擬似的な肘角度が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する、７軸多関節ロボットの制御方法。
【請求項２】
前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（該基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る第１最大値及び第１最小値を算出する工程と、
前記擬似的な肘角度を表す指標として、前記第１最大値から前記第１最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、
を備え、前記拘束条件は、算出した前記比率が一定となるような前記中間関節の関節角を使用する条件である、請求項１に記載の７軸多関節ロボットの制御方法。
【請求項３】
前記拘束条件の工程は、
前記先端側の関節の関節角を０°（基準位置）又は１８０°（該基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作中における現在の前記中間関節の関節角が取り得る第２最大値及び第２最小値を算出する工程と、
算出した前記第２最大値及び第２最小値と算出した前記比率とに基づいてロボット動作中における現在あるべき前記中間関節の関節角の目標値を算出する工程と、
算出した前記目標値を逆変換の際の拘束条件に使用する前記中間関節の関節角に当てはめる工程と、
を備える請求項２に記載の７軸多関節ロボットの制御方法。
【請求項４】
基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットの制御プログラムであって、
コンピュータに、
前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する工程と、
前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、
算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する工程と、
を実行させるための７軸多関節ロボットの制御プログラム。
【請求項５】
基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットのロボット制御装置であって、
前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する手段と、
前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する手段と、
算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する手段と、
を備えるように構成されたロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、７軸多関節ロボットの制御方法、制御プログラム及びロボット制御装置に関し、特に、基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらない機構を持つ７軸多関節ロボットを、人間の腕のように滑らかに動作させるための制御方法に関する。
【背景技術】
【０００２】
近年、産業用ロボットの制御技術は、コンピュータ技術の進歩に伴って進歩しており、これに伴って産業用ロボットに要求される動作はますます複雑かつ高度化しており、またその精度についてもより高速かつ高精度化が必要とされている。例えば、従来から産業用ロボットとして広く用いられている６軸多関節ロボットの場合、ある決まった位置に移動する用途としては十分であるが、移動空間に存在するさまざまな障害物を巧みに回避しながら複雑な作業を行うことが困難であった。そこで、関節ＪＴ１〜ＪＴ６それぞれの回転軸である計６軸を具備した６軸多関節ロボットに対し、更に冗長軸として関節ＪＴ７の回転軸を追加した７軸多関節ロボットの開発が近年盛んになってきている。
【０００３】
７軸多関節ロボットの制御方法としては、従来の６軸多関節ロボットの場合と同様に、当該手首の位置姿勢（手首座標）から各関節角（関節座標）を求める逆変換（座標変換）が行われている。そして、この逆変換の際には、人間の腕のように滑らかな動作を実現するために、肘角度を一定にすることを拘束条件にしている。
【０００４】
まず、図１０を用いて、関節ＪＴ１、関節ＪＴ２、及び関節ＪＴ７それぞれの回転軸が一点で交わる機構を持った７軸多関節ロボットを例に挙げて説明する。
【０００５】
図１０では７軸多関節ロボットの「肩（Ｓ）」、「肘（Ｅ）」及び「手首（Ｗ）」が定義されている。肩（Ｓ）は関節ＪＴ１、ＪＴ２、及びＪＴ７それぞれの回転軸の交点のことを指しており、手首（Ｗ）は関節ＪＴ４、ＪＴ５及びＪＴ６それぞれの回転軸の交点のことを指しており、肘（Ｅ）は関節ＪＴ３の回転軸のことを指している。図１１に示すように肩（Ｓ）、肘（Ｅ）及び手首（Ｗ）の計３点で定義される平面ＳＥＷは、手首の位置及び姿勢を一定に保った状態で、直線ＳＷの周りを回転することができる。一般的に、肘角度θＥは、肩（Ｓ）と手首（Ｗ）とを結ぶベクトル周りにおける「肘（Ｅ）」の回転関節角∠ＥＨＥ’として定義されており、この肘角度θＥを一定とすることを拘束条件にした逆変換が行なわれる。
【０００６】
例えば、特許文献１の段落［００１２］には、７軸多関節ロボットが第７関節（関節軸Ｊ３）を固定することによって６軸多関節ロボットと等価なものとして考えることが開示されている。また、特許文献１の段落［００１４］には、関節軸Ｊ１と関節軸Ｊ２との間にＹ方向のオフセットが無い７軸多関節ロボットが、所定距離離れて設置されている６軸多関節ロボットとの干渉を回避するために、関節軸Ｊ２を含むＸＹ平面と肩（関節軸Ｊ１と関節軸Ｊ２との交点）と手首（関節軸Ｊ６）とを支点として、肘（関節軸Ｊ４）が略円弧軌跡を描くように動作することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１２５８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
つぎに、図１２に示すような、関節ＪＴ１、ＪＴ２及びＪＴ７それぞれの回転軸が一点で交わらない機構を持った７軸多関節ロボットを例に挙げて説明する。
【０００９】
図１２の７軸多関節ロボットでは、関節ＪＴ１，ＪＴ２の間にロボットの作業範囲を拡大させる目的でオフセットが設定されており、関節ＪＴ１、ＪＴ２及びＪＴ７それぞれの回転軸が一点で交わらない機構を持っている。このように、オフセットを有した機構の場合、７軸多関節ロボットの肩（Ｓ）を正確に定義することができない。仮に、関節ＪＴ２の回転軸付近を肩と見なしても、逆変換の処理に必要な肘角度の精度に欠けるという問題がある。つまり、オフセットを有した機構の場合、肘角度を一定に保つ動作を実現できるように逆変換することは容易ではない。
【００１０】
そこで、図１３に示すように、冗長軸のために追加された関節ＪＴ７の現在の関節角（ＪＴ７現在値）を固定させることを拘束条件として逆変換を行う方法が考えられる。しかしながら、この方法では、せっかく冗長性を得るために追加した関節ＪＴ７の関節角がロボット動作中に固定され、１自由度分無駄になる。
【００１１】
本発明は、このような課題を解決するためになされたもので、その目的は、７つの関節のうち基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらない機構を持つ７軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することである。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明に係る７軸多関節ロボットの制御方法は、基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットの制御方法であって、前記３つの関節のうち中間関節の回転軸を肩とみなした場合の擬似的な肘角度が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する、ものである。
【００１３】
上記のように構成された７軸多関節ロボットであっても、この３つの関節のうち中間関節（ＪＴ２）の回転軸を擬似的な肩（後述の擬似肩）とみなした場合、擬似的な肘角度を定義することができる。また、かかる７軸多関節ロボットの振る舞いとして、本発明者は、「ロボット動作開始時の初期形態がどのような状態であっても、中間関節の関節角が擬似的な肘角度の変化に概ね比例するように変化する」という特徴を見出した（知見を得た）。そこで、３つの関節のうち先端側の関節（後述のＪＴ７）の関節角を固定させるのではなく、この擬似的な肘角度が一定となるような中間関節の関節角を拘束条件に用いて逆変換を実行することにより、上記のように構成された７軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することが可能となった。
【００１４】
上記の制御方法において、前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（該基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る第１最大値及び第１最小値を算出する工程と、前記擬似的な肘角度を表す指標として、前記第１最大値から前記第１最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、を備え、前記拘束条件は、算出した前記比率が一定となるような前記中間関節の関節角を使用する条件である、としてもよい。
【００１５】
上記の制御方法において、前記拘束条件の工程は、前記先端側の関節の関節角を０°（基準位置）又は１８０°（該基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作中における現在の前記中間関節の関節角が取り得る第２最大値及び第２最小値を算出する工程と、算出した前記第２最大値及び第２最小値と算出した前記比率とに基づいてロボット動作中における現在あるべき前記中間関節の関節角の目標値を算出する工程と、算出した前記目標値を逆変換の際の拘束条件に使用する前記中間関節の関節角に当てはめる工程と、を備えるとしてもよい。
【００１６】
上記のように構成された７軸多関節ロボットの振る舞いとして、本発明者は、さらに、「ロボット動作開始時の初期形態がどのような状態であっても、先端側の関節の関節角が０°（基準位置）の場合には擬似的な肘角度が０°となり且つ中間関節の関節角が第１最小値（又は第１最大値）になる。一方、先端側の関節の角度が１８０°（基準位置からの最大変位位置）の場合には擬似的な肘角度が１８０°となり且つ中間関節の関節角が第１最大値（又は第１最小値）となる。」という特徴を見出した。換言すると、先端側の関節の関節角が０°から１８０°に変化するに従って擬似的な肘角度が０°から１８０°へと変化し、この擬似的な肘角度の変化に概ね比例するように中間関節の関節角が第１最小値から第１最大値へ（もしくは第１最大値から第１最小値へ）と変化することを見出した。そこで、この擬似的な肘角度を表す指標として、第１最大値から第１最小値までの範囲内における初期形態の中間関節の関節角の比率を算出し、この算出した比率が一定となるような中間関節の角度を拘束条件に用いることとした。これにより、人間の腕のように滑らかに動作させる制御を容易に実現することが可能となった。
【００１７】
上記の課題を解決するために、その他の本発明に係る７軸多関節ロボットの制御プログラムは、基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットの制御プログラムであって、コンピュータに、前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する工程と、前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する工程と、算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する工程と、を実行させるためのものである。
【００１８】
上記の課題を解決するために、その他の本発明に係る７軸多関節ロボットのロボット制御装置は、基端から先端に向かって順に設けられた７つの関節を具備し、当該７つの関節が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有しており、かつ当該基端側にある３つの関節の各回転軸のうち少なくとも１軸が他の軸と一点で交わらないように構成された７軸多関節ロボットのロボット制御装置であって、前記３つの関節のうち先端側の関節の関節角を０°（基準位置）又は１８０°（基準位置からの最大変位位置）として逆変換を実行することにより、ロボット動作開始時の初期形態から前記中間関節の関節角が取り得る最大値及び最小値を算出する手段と、前記中間関節の回転軸を肩とみなした場合の擬似的な肘角度を表す指標として、前記最大値から前記最小値までの範囲内における前記初期形態の前記中間関節の関節角の比率を算出する手段と、算出した前記比率が一定となるような前記中間関節の関節角を拘束条件に用いて逆変換を実行する手段と、を備えるように構成されたものである。
【発明の効果】
【００１９】
本発明によれば、７つの関節のうち基端側にある３つの関節の各回転軸が一点で交わらない機構を持った７軸多関節ロボットを人間の腕のように滑らかに動作させる制御を適切に実現することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は本発明の実施の形態における７軸多関節ロボットとロボット制御装置とによるロボットシステムの構成を示した図である。
【図２】図２は図１に示す７軸多関節ロボットのリンク構造を模式的に表した図である。
【図３】図３は図１に示す７軸多関節ロボットの逆変換を説明するための概念図である。
【図４】図４は本発明の実施の形態におけるロボット動作開始時の制御手順を示すフローチャートである。
【図５】図５は本発明の実施の形態におけるロボット動作中の制御手順を示すフローチャートである。
【図６】図６は本方式のシミュレーション条件を説明するための概念図である。
【図７】図７（ａ）は本方式による擬似的な肘角度の変化を表したグラフであり、図７（ｂ）は比較方式による肘角度の変化を表したグラフであり、図７（ｃ）は参考として本方式による関節ＪＴ７の関節角の変化を表したグラフである。
【図８】図８は本発明の概念を説明するための模式図である。
【図９】図９は本発明の概念を説明するための模式図である。
【図１０】図１０は７つの関節のうち基端側にある３つの関節ＪＴ１，ＪＴ２，ＪＴ７の各回転軸が一点で交わる機構を持った７軸多関節ロボットのリンク構造を模式的に表した図である。
【図１１】図１１は図１０に示す７軸多関節ロボットにおいて定義される肘角度を説明するための図である。
【図１２】図１２は７つの関節のうち基端側にある３つの関節ＪＴ１，ＪＴ２，ＪＴ７の各回転軸が一点で交わらない機構を持った７軸多関節ロボットのリンク構造を模式的に表した図である。
【図１３】図１３は比較方式の逆変換を説明するための図である。
【発明を実施するための形態】
【００２１】
以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。なお、以下では全ての図を通じて同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００２２】
（本発明の概念）
最初に本発明の概念を説明する。
【００２３】
図８は、本発明の概念を説明するための模式図である。なお、図８は、図１２に示すオフセット有りの７軸多関節ロボットから「手首（Ｗ）」を構成する関節ＪＴ４〜ＪＴ６が省略された場合を表している。
【００２４】
図８の７軸多関節ロボットにおいて関節ＪＴ２の回転軸を擬似的な「肩（Ｓ）」（以下では、擬似肩Ｓ’と称する）と定義した際に図１１に示すように定義される肘角度θＥ（以下では、擬似的な肘角度と称する）が一定となるように動作させると、人間の腕のような滑らかな動作が実現される。
【００２５】
ここで、図８の７軸多関節ロボットを、図示しない「手首（Ｗ）」の位置姿勢を一定に保った状態で関節ＪＴ７を動作させると、「肘（Ｅ）」を構成する関節ＪＴ３が倒れるとともに、擬似的な肘角度が変化することがわかる。また、このときのロボットアームの振る舞いから以下の２つの特徴を見出せる。
【００２６】
特徴１：手首の位置姿勢がどのような状態であっても、関節ＪＴ２の関節角が擬似的な肘角度の変化に概ね比例するように変化する。
【００２７】
特徴２：手首の位置姿勢がどのような状態であっても、関節ＪＴ７が０°の場合（基準位置から変化なしの場合）には擬似的な肘角度が０°となり且つ関節ＪＴ２の関節角が最小値（又は最大値）Ｊ２１になる。関節ＪＴ７が１８０°の場合（基準位置から最大に変化した場合）には擬似的な肘角度が１８０°となり且つ関節ＪＴ２の関節角が最大値（又は最小値）Ｊ２２となる。
【００２８】
つまり、図９において、関節ＪＴ７の関節角が０°から１８０°に変化するに従って、擬似的な肘角度が０°から１８０°へと変化し、また、この肘角度の変化に概ね比例するように関節ＪＴ２の関節角がＪ２１からＪ２２へと変化することになる。
【００２９】
そこで、関節ＪＴ７の関節角を０°又は１８０°として逆変換を実行することにより、ロボット動作開始時の初期形態から関節ＪＴ２の関節角が取り得る最大値及び最小値を算出する。そして、この算出された最大値及び最小値をそれぞれ１００％、０％と定義し、ロボット動作開始時における関節ＪＴ２の関節角が何％であるかを表したＪＴ２比率αを算出する。このＪＴ２比率αはオフセットが無い場合の肘角度θＥ（図１１参照）に相当する指標である。そして、この算出したＪＴ２比率αが一定となる関節ＪＴ２の関節角を拘束条件に用いて逆変換を実行する。
【００３０】
（実施の形態）
次に、上述の本発明の概念に基づく本発明の実施の形態を説明する。
【００３１】
［７軸多関節ロボット］
図１は、本発明の実施の形態に係る７軸多関節ロボットとロボット制御装置とから成るロボットシステムの構成を示した図である。
【００３２】
図１に示すように、７軸多関節ロボット１００は、基端から手首に向って順に設けられた６つの関節ＪＴ１〜ＪＴ６を具備し、６つの関節ＪＴ１〜ＪＴ６が回転軸Ａ１〜Ａ６をそれぞれ有する６軸多関節ロボットにおいて、関節ＪＴ２と関節ＪＴ３との間に冗長軸を追加するための関節ＪＴ７が設けられ、かつ７つの関節ＪＴ１〜ＪＴ７が次の関節を旋回させる回転軸と次の関節を回動させる回転軸とを交互に有するように構成されている。なお、７つの関節及び７つの回転軸に付与された符号（ＪＴ１〜ＪＴ７、Ａ１〜Ａ７）は便宜上付したものであり、７つの関節及び７つの回転軸それぞれを識別可能であれば如何なる符号であってもよい。
【００３３】
さらに、７軸多関節ロボット１００は、図１２と同様に、関節ＪＴ１、ＪＴ２及びＪＴ７それぞれの回転軸のうち少なくとも１軸が他の軸と一点で交わらない機構を持っている。具体的には、図１では、関節ＪＴ１，ＪＴ２の間にロボットの作業範囲を拡大させる目的でオフセットが設定されており、関節ＪＴ２及びＪＴ７それぞれの回転軸は一点で交わっているが、関節ＪＴ１の回転軸が関節ＪＴ２及びＪＴ７それぞれの回転軸と一点で交わらない機構が表されている。このように、オフセットを有した機構の場合、「手首（Ｗ）」及び「肘（Ｅ）」は定義できるが、「肩（Ｓ）」を正確に定義できない。そこで、関節ＪＴ２の回転軸付近を「擬似肩（Ｓ’）と定義している。なお、手首（Ｗ）は関節ＪＴ４、ＪＴ５及びＪＴ６それぞれの回転軸の交点のことを指しており、肘（Ｅ）は関節ＪＴ３の回転軸のことを指している。擬似肩（Ｓ）は関節ＪＴ２，ＪＴ７それぞれの回転軸の交点のことを指している。以下では、「擬似肩（Ｓ）」を原点としたＸＹＺ直交座標系のことを「基準座標系」と称し、「手首（Ｗ）」を原点としたＸＹＺ直交座標系のことを「手首座標系」と称する。また、基準座標系の原点に対する手首座標系の原点の変位のことを「手首位置」と称し、基準座標系に対する手首座標系の角変位のことを「手首姿勢」と称する。また、主に手首姿勢に影響を及ぼす部分のことを「手首」と称する。
【００３４】
図１に示す７軸多関節ロボット１００において、手首座標系の原点は回転軸Ａ４〜Ａ６の回転軸全てが一点で交わった点であるので、関節ＪＴ４〜ＪＴ６に関する部分が手首となっている。他方、手首位置に影響を及ぼすのは関節ＪＴ１〜ＪＴ３、及び関節ＪＴ７に関する部分となっている。
【００３５】
基台２には、旋回台３、アーム部材（リンク）４、５、６、７、８、及びアタッチメント９がこの順に連設されている。なお、アタッチメント９の先端を成すフランジ面には、各種の作業内容に応じて適宜選択されたツール部材１１が着脱可能に取り付けられている。基台２からアタッチメント９までの連設された部材２〜９は互いに相対回転可能となるよう連結されている。
【００３６】
アーム部材７、８及びアタッチメント９は、アタッチメント９に取り付けられるツール部材１１に微細な動作を行わせるための人間の手首に似せた構造体（以下、手首装置という。）を成している。回転軸Ａ１、回転軸Ａ２、回転軸Ａ７及び回転軸Ａ３は、手首装置とともにツール部材１１を水平旋回させたり揺動させたりするための回転軸として用いられ、７軸多関節ロボット１００の主軸を成している。回転軸Ａ４〜Ａ６は、手首装置に設定される回転軸であり、所謂ＲＢＲ（Ｒｏｌｌ−Ｂｅｎｄ−Ｒｏｌｌ）型の手首軸を成している。なお、手首装置の手首軸は、ＲＢＲ型に限られず、所謂ＢＢＲ（Ｂｅｎｄ−Ｂｅｎｄ−Ｒｏｌｌ）型や３Ｒ（Ｒｏｌｌ−Ｒｏｌｌ−Ｒｏｌｌ）型の手首軸であってもよい。
【００３７】
関節ＪＴ１〜ＪＴ７にはそれぞれサーボモータＭ１〜Ｍ７及び位置検出器Ｅ１〜Ｅ７が設けられている。位置検出器Ｅ１〜Ｅ７は、例えば、ロータリーエンコーダで構成されている。上記の各サーボモータＭ１〜Ｍ７を駆動することにより、関節ＪＴ１〜ＪＴ７においてそれぞれ許容される回転軸Ａ１〜Ａ７周りの回転が行われる。なお、各サーボモータＭ１〜Ｍ７は互いに独立して駆動することが可能である。また、上記の各サーボモータＭ１〜Ｍ７が駆動されると、上記の各位置検出器Ｅ１〜Ｅ７によって上記の各サーボモータＭ１〜Ｍ７の回転軸Ａ１〜Ａ７周りの回転位置の検出が行われる。
図２は、図１に示した７軸多関節ロボット１００のリンク構造を模式的に表した図である。
基台２と旋回台３との連結部である関節ＪＴ１において基台２に対する旋回台３の回転軸Ａ１周りの回転（旋回）が許容されている。なお、基台２の上面中央部には擬似肩（Ｓ’）として基準座標系（Ｘ０軸、Ｙ０軸、Ｚ０軸から成る直交座標系）の原点Ｏが設定されている（図２参照）。また、関節ＪＴ１には、当該関節ＪＴ１の関節座標系（Ｘ１軸、Ｙ１軸、Ｚ１軸から成る直交座標系）が設定されている。
【００３８】
旋回台３の上端部とアーム部材４の一端部との連結部である関節ＪＴ２において、旋回台３に対するアーム部材４の回転軸Ａ２周りの回転（回動）が許容されている。なお、関節ＪＴ２には、当該関節ＪＴ２の関節座標系（Ｘ２軸、Ｙ２軸、Ｚ２軸から成る直交座標系）が設定されている。ここで、図２の各関節の状態の場合、関節ＪＴ２の関節座標系の原点の鉛直方向の距離をリンク長Ｌ０と表し、関節ＪＴ１の関節座標系の原点と関節ＪＴ２の関節座標系の原点との間で水平方向（紙面左方向）の距離をリンク長Ｌ１と表す。
【００３９】
アーム部材４の他端部とアーム部材５の一端部との連結部である関節ＪＴ７において、アーム部材４に対するアーム部材５の回転軸Ａ７周りの回転（旋回）が許容されている。なお、関節ＪＴ７には、当該関節ＪＴ７の関節座標系（Ｘ７軸、Ｙ７軸、Ｚ７軸から成る直交座標系）が設定されている。
【００４０】
アーム部材５の他端部とアーム部材６の一端部との連結部である関節ＪＴ３において、アーム部材５に対するアーム部材６の回転軸Ａ３周りの回転（回動）が許容されている。なお、関節ＪＴ３には、当該関節ＪＴ３の関節座標系（Ｘ３軸、Ｙ３軸、Ｚ３軸から成る直交座標系）が設定されている。ここで、図２の各関節の状態の場合、関節ＪＴ２の関節座標系の原点と関節ＪＴ３の関節座標系の原点との間で鉛直方向の距離をリンク長Ｌ２と表す。
【００４１】
アーム部材６の他端部とアーム部材７の一端部との連結部である関節ＪＴ４において、アーム部材６に対するアーム部材７の回転軸Ａ４周りの回転（旋回）が許容されている。なお、関節ＪＴ４には、当該関節ＪＴ４の関節座標系（Ｘ４軸、Ｙ４軸、Ｚ４軸から成る直交座標系）が設定されている。ここで、図２の各関節の状態の場合、関節ＪＴ３の関節座標系の原点と関節ＪＴ４の関節座標系の原点との間で鉛直方向の距離をリンク長Ｌ３と表し、関節ＪＴ３の関節座標系の原点と関節ＪＴ４の関節座標系の原点との間で水平方向の距離をリンク長Ｌ４と表す。
【００４２】
アーム部材７の他端部とアーム部材８の一端部との連結部である関節ＪＴ５において、アーム部材７に対するアーム部材８の回転軸Ａ５周りの回転（回動）が許容されている。なお、関節ＪＴ５には、当該関節ＪＴ５の関節座標系（Ｘ５軸、Ｙ５軸、Ｚ５軸から成る直交座標系）が設定されている。
【００４３】
アーム部材８の他端部とアタッチメント９の一端部との連結部である関節ＪＴ６においてアーム部材８に対するアタッチメント９の回転軸Ａ６周りの回転（旋回）が許容される。なお、関節ＪＴ６には、当該関節ＪＴ６の関節座標系としてＸ６軸、Ｙ６軸、Ｚ６軸から成る直交座標系が設定されている。このＸ６軸、Ｙ６軸、Ｚ６軸から成る直交座標系は、回転軸Ａ４〜Ａ６が一点で交わった点を原点に持っている。ここで、図２の各関節の状態の場合、関節ＪＴ５の関節座標系の原点と手首との間で鉛直方向の距離をリンク長Ｌ５と表す。
【００４４】
基台２が床面に適正に設置されると、基台２に最も近い回転軸Ａ１は鉛直方向（基台２から関節ＪＴ１への延在方向）に指向し、回転軸Ａ２は水平方向（床面と平行な方向）に指向している。回転軸Ａ７は回転軸Ａ２と直交する方向であって、かつアーム部材４の延在方向に指向している。回転軸Ａ３は回転軸Ａ７と直交する方向であって、かつ水平方向に指向している。回転軸Ａ４は回転軸Ａ３と直交する方向であって、かつアーム部材６の延在方向に指向している。回転軸Ａ５は回転軸Ａ４と直交する方向であって、かつ水平方向に指向している。回転軸Ａ６は回転軸Ａ５と直交する方向であって、かつアーム部材８の延在方向に指向している。よって、回転軸Ａ１〜Ａ７は、全ての互いに隣り合う関節の回転軸が互いに垂直となるように配置されている。
【００４５】
[ロボット制御装置]
ロボット制御装置２００は、多関節ロボット１００の基台２の周辺に配置されている。なお、多関節ロボット１００と遠隔に配置されていてもよいし、多関節ロボット１００と物理的に着脱可能な形態で接続されてもよい。ロボット制御装置２００は、サーボアンプ２１０を備えている。サーボアンプ２１０は、多関節ロボット１００の関節ＪＴ１〜ＪＴ６が具備するサーボモータＭ１〜Ｍ６それぞれに対し、アタッチメント９に取り付けられたツール部材１１を任意の位置姿勢に任意の経路に沿って移動させるサーボ制御を行うものである。
【００４６】
サーボアンプ２１０は、駆動部２３０及び制御部２４０を備えている。なお、制御部２４０はサーボアンプ２１０の外部に設けられてもよく、換言すると、サーボアンプ２１０は駆動部２３０のみで構成されていてもよい。
【００４７】
駆動部２３０は、サーボモータＭ１〜Ｍ６を駆動する電力変換装置であり、例えば、整流回路やインバータ回路で構成されている。なお、サーボアンプ２１０は、サーボモータＭ１〜Ｍ６それぞれに対して個別のサーボループを形成するように複数設けられているが、１つのサーボアンプ２１０によってサーボモータＭ１〜Ｍ６が統括して駆動されるように構成されてもよい。この場合、駆動部２３０のみがサーボモータＭ１〜Ｍ６毎に設けられる。
【００４８】
制御部２４０は、サーボアンプ２１０を含めたロボット制御装置２００全体の制御を司るものであり、例えば、マイクロコントローラ、ＣＰＵ、ＭＰＵ、ＰＬＣ、ＤＳＰ、ＡＳＩＣ又はＦＰＧＡなどで構成されている。なお、制御部２４０は、互いに協働して分散制御する複数の制御器によって構成されてもよい。例えば、上位制御装置とのインタフェース処理をＣＰＵが担当し、サーボアンプ２１０の基本演算（位置ループ演算、速度ループ演算及び電流ループ演算）をＤＳＰが担当するようにシステム構成されてもよい。
【００４９】
ロボット制御装置２００は、ティーチペンダント等と接続可能である。このティーチペンダントを用いてオペレータが教示作業を行う。制御部２４０は、教示作業やオフラインツール等により作成された動作プログラムに基づいて、ツール部材１１が位置すべき目標位置を算出する。さらに、制御部２４０は、目標位置の座標データの逆変換を行い、ツール部材１１を目標位置に移動させるために必要となる関節角θ１〜θ７を算定する。そして、制御部２４０は、これらの算定した関節角θ１〜θ７と上記の位置検出器Ｅ１〜Ｅ７により検出される電源オン時の回転位置との偏差に基づき、関節ＪＴ１〜ＪＴ７に設けられたサーボモータの動作量の指令値を演算し、各サーボモータに供給する。これにより、ツール部材１１が目標位置に移動される。
【００５０】
ロボット制御装置２００が７軸多関節ロボット１００を対象とした逆変換を行う場合、手首の姿勢を規定する手首軸（Ａ４〜Ａ６）はひとまず無視しておき、当該手首の位置を規定する残りの４つの回転軸Ａ１、Ａ２、Ａ７、Ａ３のうち、１つの回転軸（例えば、回転軸Ａ７）を冗長軸とし、かつ残りの３つの回転軸（例えば、回転軸Ａ１〜Ａ３）を基軸とし、当該基軸を有した各関節の関節角を未知変数として取り扱う。
【００５１】
ここで、図３に示すように、基準座標系の原点Ｏ（０，０，０）と７軸多関節ロボット１００の手首の位置Ｐとの間の直線距離をＲｈ、当該基準座標系における手首の位置ＰのＺ軸方向の距離（基端に最も近い回転軸の延在方向における基端から手首までの距離）をＺｈとして表す。さらに、基準座標系における手首の位置Ｐを（Ｘｐ，Ｙｐ，Ｚｐ）と表したときに、Ｒｈ及びＺｈについて次式が成立する。
【００５２】
Ｒｈ２＝Ｘｐ２＋Ｙｐ２＋Ｚｐ２  ・・・式（１）
Ｚｈ＝Ｚｐ  ・・・式（２）
また、Ｒｈ、Ｚｈは、上記の式（１）及び式（２）とは別に、７軸多関節ロボット１００の各リンク長と関節ＪＴ１〜ＪＴ３、ＪＴ７の関節角θ１、θ２、θ３、θ７を用いて表すことができる。よって、これらの式を整理すると、次式のとおり変数ｔ（＝ｔａｎθ３）についての４次方程式を得ることが出来る。
【００５３】
ｔ４＋ａ・ｔ３＋ｂ・ｔ２＋ｃ・ｔ＋ｄ＝０  ・・・式（３）
上記の式（３）の４次方程式を解くことにより関節角θ３が求まり、この求められた関節角θ３に基づいて関節角θ１及び関節角θ２が一義的に求められる。
【００５４】
［７軸多関節ロボットの制御方法］
図４は本発明の実施の形態におけるロボット動作開始時の制御手順を示すフローチャートである。
【００５５】
まず、ロボット制御装置２００は、ロボット動作開始時の初期形態における初期手首位置姿勢Ｐ＿ｉｎｉと、ロボット動作開始時の初期形態における各関節角である初期各軸値ＪＴ１＿ｉｎｉ、ＪＴ２＿ｉｎｉ・・・ＪＴ７＿ｉｎｉと、をあらかじめ認識しているものとする（ステップＳ４０１）。なお、関節ＪＴ２の初期関節角ＪＴ２＿ｉｎｉを初期値Ｊ２０と表すものとする。
【００５６】
つぎに、ロボット制御装置２００は、初期手首位置姿勢Ｐ＿ｉｎｉについて、関節ＪＴ７の関節角が０°であることを拘束条件として逆変換を実行し、関節角ＪＴ１＿ｉｎｉ＿０、ＪＴ２＿ｉｎｉ＿０・・・ＪＴ７＿ｉｎｉ＿０を求める（ステップＳ４０２）。なお、このとき求められた関節角の中で関節ＪＴ２の関節角ＪＴ２＿ｉｎｉ＿０を最小値Ｊ２１（第１最小値）と表すものとする。
【００５７】
つぎに、ロボット制御装置２００は、初期手首位置姿勢Ｐ＿ｉｎｉについて、関節ＪＴ７の関節角が１８０°であることを拘束条件として逆変換を実行し、関節角ＪＴ１＿ｉｎｉ＿１８０、ＪＴ２＿ｉｎｉ＿１８０・・・ＪＴ７＿ｉｎｉ＿１８０を求める（ステップＳ４０３）。なお、このとき求められた関節角の中で関節ＪＴ２の関節角ＪＴ２＿ｉｎｉ＿１８０を最大値Ｊ２２（第１最大値）と表すものとする。
【００５８】
そして、ロボット制御装置２００は、ステップＳ４０１で求めた初期値Ｊ２０、ステップＳ４０２で求めた最小値Ｊ２１及びステップＳ４０３で求めた最大値Ｊ２２を用いて、初期位置姿勢において関節ＪＴ２の関節角が取りうる範囲（＝Ｊ２１−Ｊ２２）の中で、初期値Ｊ２０が最小値Ｊ２１にどの程度近いのかを表した次式のＪＴ２比率αを算出する（ステップＳ４０４）。
【００５９】
α＝（Ｊ２２−Ｊ２０）／（Ｊ２２−Ｊ２１）  ・・・式（４）
なお、ＪＴ２比率αは、初期値Ｊ２０が最小値Ｊ２１に最も近い（Ｊ２０＝Ｊ２１）場合には１（１００％）であり、初期値Ｊ２０が最小値Ｊ２１に最も遠い（Ｊ２０＝Ｊ２２）場合には０（０％）である。このＪＴ２比率αを概ね一定に保つことで、擬似的な肘角度を概ね一定に保つことができる。
【００６０】
図５は本発明の実施の形態におけるロボット動作中の制御手順を示すフローチャートである。
【００６１】
まず、ロボット制御装置２００は、ロボット動作中における現在の手首位置姿勢である現在手首位置姿勢Ｐ＿ｎを初期値として認識しているものとする（ステップＳ５０１）。
【００６２】
つぎに、ロボット制御装置２００は、現在手首位置姿勢Ｐ＿ｎについて、関節ＪＴ７の関節角が０°であることを拘束条件として逆変換を実行し、関節角ＪＴ１＿ｎ＿０、ＪＴ２＿ｎ＿０・・・ＪＴ７＿ｎ＿０を求める（ステップＳ５０２）。なお、このとき求められた関節角の中で関節ＪＴ２の関節角ＪＴ２＿ｎ＿０を最小値Ｊ２１’（第２最小値）と表すものとする。
【００６３】
つぎに、ロボット制御装置２００は、現在手首位置姿勢Ｐ＿ｎについて、関節ＪＴ７の関節角が１８０°であることを拘束条件として逆変換を実行し、関節角ＪＴ１＿ｎ＿１８０、ＪＴ２＿ｎ＿１８０・・・ＪＴ７＿ｎ＿１８０を求める（ステップＳ５０３）。なお、このとき求められた関節角の中で関節ＪＴ２の関節角ＪＴ２＿ｎ＿１８０を最大値Ｊ２２’（第２最大値）と表すものとする。
【００６４】
つぎに、ロボット制御装置２００は、ステップＳ４０４で求めたＪＴ２比率α、ステップＳ５０２で求めた最小値Ｊ２１’及びステップＳ５０３で求めた最大値Ｊ２２’を用いて、次式の関節ＪＴ２の関節角の目標値Ｊ２０’を算出する（ステップＳ５０４）。
【００６５】
Ｊ２０’＝Ｊ２２’−（Ｊ２２’−Ｊ２１’）・α  ・・・式（５）
そして、ロボット制御装置２００は、関節ＪＴ２の関節角としてステップＳ５０４で求めた目標値Ｊ２０’を拘束条件に用いて逆変換を実行し、残りの関節ＪＴ１，ＪＴ３，ＪＴ４，ＪＴ５，ＪＴ６，ＪＴ７の各軸値（関節角）を算出する（ステップＳ５０５）。
【００６６】
手首の初期位置姿勢から該手首の目標位置姿勢に至るまで以上のステップＳ５０１〜Ｓ５０５を繰り返し遂行することで、ＪＴ２比率αが一定に保たれ、関節ＪＴ１、ＪＴ２及びＪＴ７それぞれの回転軸が一点で交わらない機構を持った７軸多関節ロボットであっても、擬似肩による擬似的な肘角度を一定に保つような滑らかな動作を容易に実現することが可能とする。
【００６７】
[シミュレーション結果]
以下では、図６、図７を用いて、本発明の実施の形態におけるＪＴ２比率αを概ね一定に保つ制御方法のシミュレーション結果を説明する。
【００６８】
図６は、本発明の実施の形態におけるＪＴ２比率αを概ね一定に保つ制御方法（以下、本方式と称する）のシミュレーション条件を説明するための概念図である。７軸多関節ロボット１００の各リンク長として、リンク長Ｌ０を４００ｍｍ、リンク長Ｌ１を１００ｍｍ、リンク長Ｌ２を５００ｍｍ、リンク長Ｌ３を６００ｍｍ及びリンク長Ｌ４を４０ｍｍとする。７軸多関節ロボット１００の初期形態において、関節ＪＴ１の関節角を０°、関節ＪＴ２の関節角を４０°、関節ＪＴ３の関節角を−１００°、関節ＪＴ７の関節角を−４５°とし、この初期形態の状態から手首を図６に示す基準座標系のＹ軸の負方向に沿って２０００ｍｍ移動させることを本方式のシミュレーション条件とする。
【００６９】
図７は、図６に示すシミュレーション条件を基に実行した本方式のシミュレーション結果と、本方式の比較方式として関節ＪＴ７の関節角を固定させる制御方法（以下、比較方式と称する）を同じシミュレーション条件を基に実行したシミュレーション結果とを対比したグラフである。なお、図７（ａ）は本方式による擬似的な肘角度の変化を表したグラフであり、図７（ｂ）は比較方式による肘角度の変化を表したグラフであり、図７（ｃ）は参考として本方式による関節ＪＴ７の関節角の変化を表したグラフである。
【００７０】
図７（ａ）と図７（ｂ）とを対比すれば、本方式の方が比較方式よりも肘角度の変化を小さくできることが分かる。また、図７（ｃ）によれば、本方式では肘角度を一定にするように関節ＪＴ７の関節角が変化することが分かる。
【００７１】
[変形例]
７軸多関節ロボット１００は、例えばロボット全体が走行する場合にその走行のためのモータの回転軸が存在する場合や、関節ＪＴ７と関節ＪＴ３との間や関節ＪＴ３と第４関節との間等に不使用の関節の回転軸が存在する場合など、７軸以上の多軸を有していてもよい。つまり、７軸多関節ロボット１００は、実質的に７軸であればよい。
【００７２】
ＪＴ２比率αは、次式のとおり、初期値Ｊ２０が最大値Ｊ２２にどの程度近いのかを表した指標であってもよい。
【００７３】
α＝（Ｊ２１−Ｊ２０）／（Ｊ２２−Ｊ２１）  ・・・式（６）
関節ＪＴ１と関節ＪＴ２との間に設定されるオフセットは、図２に示すように直角に折れ曲がっているＬ字形の形態に限定されず、例えば関節ＪＴ１と関節ＪＴ２との間を斜め方向に傾けた直線形の形態であってもよい。
関節ＪＴ１と関節ＪＴ２との間にオフセットが設定される他に、関節ＪＴ２と関節ＪＴ７との間にオフセットが設定されていてもよいし、関節ＪＴ１と関節ＪＴ２との間及び関節ＪＴ２と関節ＪＴ７との間にオフセットが設定されていてもよい。つまり、７軸多関節ロボット１００は、関節ＪＴ１、ＪＴ２及びＪＴ７それぞれの回転軸のうち少なくとも１軸が他の軸と一点で交わらない機構を持っていればよい。このような機構としては、図２に示すように、関節ＪＴ２，ＪＴ７それぞれの回転軸が一点で交わってはいるが、関節ＪＴ１の回転軸が関節ＪＴ２，ＪＴ７それぞれの回転軸と交差していない機構の他に、関節ＪＴ１，ＪＴ２それぞれの回転軸が一点で交わってはいるが、関節ＪＴ７の回転軸が関節ＪＴ１，ＪＴ２それぞれの回転軸と交差していない機構であってもよい。あるいは、関節ＪＴ１、ＪＴ２及びＪＴ７の全ての回転軸が互いに一点で交わらない機構であってもよい。
【００７４】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【産業上の利用可能性】
【００７５】
本発明は、７つの関節のうち基端側にある３つの関節の各回転軸が一点で交わらない機構を持った７軸多関節ロボットを人間の腕のように滑らかに動作させる制御にとって有用である。
【符号の説明】
【００７６】
２…  基台
３…  旋回台
４〜８…  アーム部材
９…  アタッチメント
１０…  手首装置
１１…  ツール部材
ＪＴ１〜ＪＴ７…  関節
Ａ１〜Ａ７…  回転軸
Ｍ１〜Ｍ７…  サーボモータ
Ｅ１〜Ｅ７…  位置検出器
Ｌ０〜Ｌ５…  リンク長
１００…  ７軸多関節ロボット
２００…  ロボット制御装置
２１０…サーボアンプ
２３０…駆動部
２４０…制御部
【図２】
0005701055.tif 000002
【図１】
0005701055.tif 000003
【図３】
0005701055.tif 000004
【図４】
0005701055.tif 000005
【図５】
0005701055.tif 000006
【図６】
0005701055.tif 000007
【図７】
0005701055.tif 000008
【図８】
0005701055.tif 000009
【図９】
0005701055.tif 000010
【図１０】
0005701055.tif 000011
【図１１】
0005701055.tif 000012
【図１２】
0005701055.tif 000013
【図１３】
0005701055.tif 000014