(58)【調査した分野】(Int.Cl.,DB名)
複数の回転関節を有する多関節ロボットと、前記多関節ロボットを操作可能な操作手段から入力された動作指令に基づいて、前記多関節ロボットを駆動制御する制御装置と、を備えたロボット装置において、
前記制御装置は、
前記動作指令に基づいて前記多関節ロボットを駆動するための、前記複数の回転関節のそれぞれの関節角指令を演算する関節角演算部と、
前記関節角演算部が演算した関節角指令に基づいて前記複数の回転関節のそれぞれを回転駆動させて、前記多関節ロボットを動作させる関節駆動制御部と、
前記多関節ロボットの複数種類の特異点の各々に対する前記回転関節の特異点角度又は特異点距離を計算する特異点計算部と、
前記複数種類の特異点の中に、前記特異点計算部が計算した特異点角度又は特異点距離が所定の値よりも小さくなる特異点が存在する場合には、特異点角度又は特異点距離が所定の値よりも小さくなる当該特異点の種類に基づいて予め特定された回転関節の回転速度を制限する関節速度制限部と、を備え、
前記関節角演算部は、
前記動作指令に基づいて位置指令を計算する位置指令計算部と、
前記特異点計算部が計算した特異点角度又は特異点距離に応じた補正の割合を計算する補正強度調整部と、
前回の補正量に前記補正強度調整部で計算した補正割合を乗じたものを位置指令に加えて、位置指令を補正する位置指令補正部と、
補正した位置指令を、仮の関節角指令に変換する逆機構計算部と、
仮の関節角指令と前回の関節角指令とから関節角偏差を計算し、前記関節角偏差が前記回転速度を超えないように仮の関節角指令を減じて次回の関節角指令を計算する関節角補正部と、
修正した関節角指令から次回の位置を計算する順機構計算部と、
次回の位置と位置指令との差に補正量を加えて、次回の補正量を計算する補正量計算部と、を有する、
ことを特徴とするロボット装置。
前記関節速度制限部は、前記特異点角度又は前記特異点距離が所定の値よりも小さくなると、前記特異点角度又は前記特異点距離に応じて、前記特定された回転関節の回転速度を制限するための制限値を小さくするが、当該特異点の種類に基づいて前記制限値の最小値が設定されている、
ことを特徴とする請求項1に記載のロボット装置。
複数の回転関節を有する多関節ロボットを操作可能な操作手段から入力された動作指令に基づいて、制御部が前記多関節ロボットを駆動制御するロボット制御方法において、
前記制御部が、前記動作指令に基づいて前記多関節ロボットを駆動するための、前記複数の回転関節のそれぞれの関節角指令を演算する関節角演算工程と、
前記制御部が、前記関節角演算工程が演算した関節角指令に基づいて前記複数の回転関節のそれぞれを回転駆動させて、前記多関節ロボットを動作させる関節制御工程と、
前記制御部が、前記多関節ロボットの複数種類の特異点の各々に対する前記回転関節の特異点角度又は特異点距離を計算する特異点計算工程と、
前記制御部が、前記複数種類の特異点の中に、前記特異点計算工程が計算した特異点角度又は特異点距離が所定の値よりも小さくなる特異点が存在する場合には、特異点角度又は特異点距離が所定の値よりも小さくなる当該特異点の種類に基づいて予め特定された回転関節の回転速度を制限する関節速度制限工程と、を備え、
前記関節角演算工程は、
前記動作指令に基づいて位置指令を計算する位置指令計算工程と、
前記特異点計算工程で計算された前記特異点角度又は前記特異点距離に応じた補正の割合を計算する補正強度調整工程と、
前回の補正量に前記補正強度調整工程で計算した補正割合を乗じたものを位置指令に加えて、位置指令を補正する位置指令補正工程と、
補正した位置指令を、仮の関節角指令に変換する逆機構計算工程と、
仮の関節角指令と前回の関節角指令とから関節角偏差を計算し、前記関節角偏差が前記回転速度を超えないように仮の関節角指令を減じて次回の関節角指令を計算する関節角補正工程と、
計算した次回の関節角指令から次回の位置を計算する順機構計算工程と、
次回の位置と位置指令との差に補正量を加えて、次回の補正量を計算する補正量計算工程と、を有する、
ことを特徴とするロボット制御方法。
前記関節速度制限工程は、前記特異点角度又は前記特異点距離が所定の値よりも小さくなると、前記特異点角度又は前記特異点距離に応じて、前記特定された回転関節の回転速度を制限するための制限値を小さくするが、当該特異点の種類に基づいて前記制限値の最小値が設定されている、
ことを特徴とする請求項3に記載のロボット制御方法。
前記順機構計算工程は、ヤコビ行列を求め、前記関節角補正工程で計算した次回の関節角指令と前回の関節角指令との差と、前記ヤコビ行列とを掛け、これに現在位置を加えて次回の位置を計算する、
ことを特徴とする請求項3又は4に記載のロボット制御方法。
【背景技術】
【0002】
近年、多関節ロボットにワークの組み立て等の作業を行わせるロボット装置の開発事例が増加している。このようなロボット装置の究極の目的は、多関節ロボットを人間の手のように動かして、複雑なワークの組立て等の作業を高速で行わせることにある。
【0003】
しかしながら、多関節ロボットには、3次元空間で指定した1つの位置姿勢が関節空間では1つに定まらない、いわゆる特異点と呼ばれる姿勢が複数存在し、特異点が多関節ロボットを複雑かつ高速に動かす妨げとなっている。そのため、ロボット装置の開発においては、特異点を適当に処理することが重要となっている。
【0004】
ここで、多関節ロボットを制御する一般的な制御装置のブロック図を
図13に示す。
図13において、現在位置C
iは、3次元空間で表したマニピュレータの手先の位置姿勢を示し、偏差指令V
iは、予め決められた制御周期(例えば、2ms)毎の手先の位置姿勢の偏差を示している。制御周期が一定なので、偏差指令V
iは速度を表しており、ティーチングペンダントなどにより制御周期毎に生成される。
【0005】
このような構成において、位置指令計算部150で現在位置C
iに偏差指令V
iを加算して次の位置C
i+1を求め、逆機構計算部155で次の位置C
i+1を逆機構計算して次の関節角指令q
i+1を求める。そして、これを多関節ロボットの関節を制御するサーボ制御装置130に送信することで多関節ロボットが駆動制御される。しかし、多関節ロボットが特異点近傍にあると、関節角指令q
i+1が前回の関節角指令q
iに対して大きく変化し、急激な動作をするおそれがあるという問題がある。
【0006】
これに対しては、関節角指令の速度を制限する方法が考えられるが、関節角指令の速度を制限すると、当初の手先の目標位置から大きく外れる場合があり、一度外れると元に戻すことが困難になるという問題がある。これに対しては、関節の角速度が過大であれば減速させる速度制限をすることで、多関節ロボットが特異点近傍で急激に動作することを防止する技術が開示されている(特許文献1参照)。
【発明を実施するための形態】
【0014】
<第1実施形態>
以下、本発明の第1実施形態に係るロボット装置について、
図1から
図7を参照しながら説明する。まず、第1実施形態に係るロボット装置1全体の概略構成について、
図1を参照しながら説明する。
図1は、本発明の第1実施形態に係るロボット装置1の全体構造を模式的に示す図である。
【0015】
図1に示すように、ロボット装置1は、ワークの組立て等を行う6軸の垂直多関節ロボット(以下、「多関節ロボット」という)2と、多関節ロボット2を制御するコントローラ3と、多関節ロボット2を操作可能なティーチングペンダント4と、を備えている。
【0016】
多関節ロボット(多関節マニピュレータ)2は、6軸多関節のロボットアーム20と、ロボットアーム20の先端に接続されるエンドエフェクタ21と、を備えている。ロボットアーム20は、6つの回転関節(J1〜J6)と、関節軸(J1軸〜J6軸)を中心に回転駆動する6つのアクチュエータ(本実施形態においては、サーボ)と、を備えている。ロボットアーム20は、各関節のサーボを選択的に駆動することでエンドエフェクタ21を任意の3次元位置に移動させる。エンドエフェクタ21は、ロボットアーム20の先端に着脱自在に取り付けられており、作業内容に基づいて交換可能になっている。本実施形態においては、3本のフィンガでワークを把持可能な、所謂ハンドと呼ばれるエンドエフェクタが取り付けられている。
【0017】
コントローラ(制御装置)3は、ロボットアーム20の各関節のサーボを駆動制御するサーボ制御装置(後述の
図5参照)30と、ロボットアーム20の関節を制御する関節制御装置(後述の
図5参照)31と、を備えている。また、コントローラ3は、エンドエフェクタ21を制御するエンドエフェクタ制御装置と、記憶部と、記録メディア読取装置と、通信装置と、を備えている。
【0018】
関節制御装置31は、ロボットアーム20が特異点に近づいた際に、特定の回転関節の急激な動作を回避しながらロボットアーム20が動作するように各回転関節を制御する。なお、関節制御装置31については、後に詳しく説明する。サーボ制御装置(関節駆動制御部)30は、関節制御装置31により計算された後述する関節角指令に基づいて、各回転関節のサーボを回転駆動させてロボットアーム20を動作させる。
【0019】
記憶部は、後述するロボット制御方法を実行するためのプログラム(ロボット制御プログラム)やロボットアーム20の特異点、予めユーザによって教示された初期教示点等のデータが格納されている。記録メディア読取装置は、ロボット制御プログラム等の各種プログラムを記録したコンピュータ読み取り可能な記録媒体を読み込み、記録媒体に記録されたプログラムやデータ等を記憶装置に格納させるため等に用いられる。通信装置は、例えば、上述したような記録媒体を使用せずに、通信装置を介してインターネット等から配信される更新プログラム等をダウンロードする際に用いられる。
【0020】
ティーチングペンダント(操作手段)4は、ユーザとのマンマシンインターフェイスであり、ユーザが多関節ロボット2を操作するために用いられる。また、ティーチングペンダント4は、ジョグ運転と呼ばれる機能を有しており、ジョグ運転は、例えば、ユーザがボタンを押している間だけ、3次元座標で多関節ロボット2の手先位置を直線上に動かすことができるようになっている。そのため、多関節ロボット2は、ジョグ運転中に特異点に近づくおそれがあり、特異点に近づくと特定の関節が急激に動作するおそれがある。このとき、本実施形態においては、関節制御装置31で、特異点に近づいた場合でも特定の関節の急激な動作を回避しつつ、ロボットアーム20が駆動するようになっている。
【0021】
次に、上述した関節制御装置31について、
図2から
図7を参照しながら具体的に説明する。まず、ロボットアーム20の特異点及び特異点距離について、
図2から
図4を参照しながら説明する。
図2は、第1実施形態に係るロボットアーム20の第1の特異点を説明する説明図である。
図3は、第1実施形態に係るロボットアーム20の第2の特異点を説明する説明図である。
図4は、第1実施形態に係るロボットアーム20の第3の特異点を説明する説明図である。
【0022】
一般に、多関節ロボット(多関節マニピュレータ)では、ある特定の手先位置に対して関節角度が計算できない特異点が多数存在する。例えば、6軸の多関節ロボット2においては、3つの特異点(第1の特異点〜第3の特異点)が存在することが知られており、多関節ロボット2が3つの特異点に同時に近づく場合もある。以下、多関節ロボット2が有する3つの特異点について説明する。
【0023】
なお、以下においては、説明のため、J1軸の方向を垂直方向と呼び、J1軸と直交する方向を水平方向と呼ぶものとする。また、一般的な産業用ロボットにおいては、J1軸の方向とJ2軸の方向とは直交し、J2軸の方向とJ3軸の方向とは平行になるように設計されるため、この条件に基づいて説明する。J2軸がJ1軸に対して水平方向にオフセットされた構成を用いることもあるが、同様に議論可能であるため、ここではその説明を省略する。更に、一般的には、J4軸、J5軸及びJ6軸は、逆機構計算が計算し易いように、1点(
図2から
図4に示すP点)で交わるように設計される場合が多いため、この条件に基づいて説明する。
【0024】
図2に示すように、第1の特異点は、J4軸、J5軸及びJ6軸が交わる点、即ち、P点がJ1軸上に有る場合である。第1の特異点上では、J1軸、J4軸、J5軸及びJ6軸がP点において、1点で交わるので、4つの回転関節J1、J4〜J6の回転角度が定まらない。3次元空間では、回転角度は3種類の方向(変数)により定まるのに対して、第1の特異点は、変数が1つ多い4つあるためである。第1の特異点の近傍では、手先の僅かな位置姿勢の変化が回転関節J1、J4〜J6の大きな角度変化を引き起こす。
【0025】
また、P点をJ1軸上に位置させるために必要な回転関節J2の回転角度をδ1とすると、回転角度δ1は、第1の特異点までの距離を示す代表的な指標となる。そのため、本実施形態においては、特異点距離として、特定の回転関節の回転角度(以下、「特異点角度」という)を用いるものとする。経験的に、回転関節J2の回転角度(特異点角度)δ1が15度を下回ると、手先の僅かな位置姿勢の変化で回転関節J1、J4〜J6の回転角度が大きく変化するので注意が必要となる。
【0026】
図3に示すように、第2の特異点は、J4軸とJ6軸とが同軸上に有る場合である。第2の特異点では、J4軸とJ6軸とが一致するので、回転関節J4、J6の回転角度が1つに定まらない。第2の特異点の近傍では、手先の僅かな位置姿勢の変化が回転関節J4、J6の大きな角度変化を引き起こす。また、J4軸とJ6軸とを同軸上に位置させるのに必要な回転関節J5の回転角度をδ2とすると、経験的に回転角度(特異点角度)δ2が15度を下回ると、手先の僅かな位置姿勢の変化で回転関節J4、J6の回転角度が大きく変化するので注意が必要となる。
【0027】
図4に示すように、第3の特異点は、J2軸とJ3軸とがJ4軸上に有る場合である。第3の特異点では、J2軸とJ3軸とがJ4軸上に位置するので回転関節J2、J3の回転角度が定まらない。第3の特異点の近傍では、手先の僅かな位置姿勢の変化が回転関節J2、J3の大きな角度変化を引き起こす。また、J2軸とJ3軸とをJ4軸上に位置させるのに必要な回転関節J3の回転角度をδ3とすると、経験的に回転角度(特異点角度)δ3が15度を下回ると手先の僅かな位置姿勢の変化で回転関節J2、J3の回転角度が大きく変化するので注意が必要となる。
【0028】
次に、上述した3つの特異点に近づいた際に、ロボットアーム20の急激な動作を抑制しつつ駆動制御可能な関節制御装置31について、
図5を参照しながら説明する。
図5は、第1実施形態に係る関節制御装置31の構成を示すブロック図である。
【0029】
まず、関節制御装置31の構成について説明する。
図5に示すように、関節制御装置31は、動作指令に基づいてロボットアーム20を駆動するための各回転関節の関節角指令を演算する関節角演算部32と、特異点に対する回転関節の特異点角度を計算する特異点計算部51と、を備えている。また、関節制御装置31は、特異点角度に応じて、回転関節毎に予め与えられている最大関節角偏差(最大回転速度)の制限値を小さくする処理を行う最大関節角偏差調整部52を備えている。
【0030】
関節角演算部32は、位置指令計算部50と、補正強度調整部53と、位置指令補正部54と、逆機構計算部55と、関節角補正部56と、順機構計算部57と、補正量計算部58と、を備えている。
【0031】
位置指令計算部50は、3次元座標で表現したロボットアーム20の手先の現在位置に、同手先の偏差指令を加えて位置指令を計算する。補正強度調整部53は、特異点角度の大きさに応じた補正強度(補正の割合であり、以下、「補正割合」という)を計算する処理を行う。具体的には、特異点角度が小さいほど補正割合を小さくする処理を行う。位置指令補正部54は、位置指令計算部50で計算した位置指令に前回の補正量と補正割合を掛けたものを加えて、補正した位置指令を計算する。逆機構計算部55は、位置指令補正部54で補正した位置指令を、仮の関節角指令に変換する。関節角補正部56は、位置指令補正部54で計算した仮の関節角指令と前回の関節角指令とから、関節角偏差を計算し、最大関節角偏差調整部52で計算した最大関節角偏差を超えないように仮の関節角を小さくして次の関節角指令を計算する。順機構計算部57は、修正した関節角指令から次の関節角指令と、次の位置とを計算する。補正量計算部58は、順機構計算部57で計算した次回の位置と位置指令との差に、補正量を加えて次の補正量を計算する。
【0032】
最大関節角偏差調整部(関節速度制限部)52は、特異点の種類に基づいて予め特定された回転関節の特異点角度が所定の値より小さくなると、最大関節角偏差(最大回転速度)の制限値を予め設定された最大関節角偏差の制限値より小さくする。
【0033】
次に、上述のように構成された関節制御装置31によるロボットアーム20の駆動制御(ロボット制御方法)について、
図5に加え、
図6及び
図7を参照しながら説明する。なお、以下に示す記号の添え字iは、計算回数を表し、一連の計算が終わる毎に1つ増やすようになっている。また、この計算は、例えば、2msといった制御周期毎に実施される。
図6は、最大関節角偏差を計算する関数を説明する説明図である。
図7は、特異点の種類に応じて速度制限する関節軸を説明する説明図である。
【0034】
ティーチングペンダント4に動作指令が入力されると、入力された動作指令に基づいて、ティーチングペンダント4から偏差指令V
i、現在位置C
i、前回の補正量E
i及び前回の関節角指令q
iが関節制御装置31に入力される。すると、関節制御装置31は、入力されたデータに基づいて、次の関節角指令q
i+1、C
i+1及びE
i+1を計算し、サーボ制御装置30に出力する。サーボ制御装置30は、入力された次の関節角指令に基づいて回転関節を回転駆動させて、ロボットアーム20を動作させる。以下、関節制御装置31による、次の関節角指令q
i+1、C
i+1及びE
i+1の計算方法について、具体的に説明する。
【0035】
ティーチングペンダント4から偏差指令V
i、現在位置C
i、前回の補正量E
i及び前回の関節角指令q
iが入力されると、まず、手先の偏差指令V
iと手先の現在位置C
iを加えて位置指令D
iを計算する(位置指令計算工程)。ここで、現在位置データや偏差指令データは、XYZ方向の移動と回転とで6つの成分を持つベクトルであり、位置姿勢を表している。このような位置姿勢を表す別の方法として、4行4列の同次座標変換行列を用いる方法があるが、この場合、上記ベクトルの和は、行列の掛け算で表現される。しかし、これは表現の違いだけで本発明の主旨とは無関係なので、本実施形態においては、位置姿勢の表現として、直感的に理解し易いベクトル表現を用いて説明する。
【0036】
次に、特異点角度を計算し、特異点近傍か否かを判定する(特異点計算工程)。本実施形態においては、3種類の特異点に応じて、対応する回転関節の特異点角度を計算する。なお、対応する回転関節の特異点角度は、現在の関節角度を代用することができる。本実施形態に係る多関節ロボット2の制御周期は、2msといった十分に短い時間なので関節角度の変化も小さいからである。
【0037】
特異点角度が計算されると、次に、特異点角度に応じて、回転関節毎に予め与えられている最大関節角偏差(最大回転速度)の制限値を小さくする処理を行う(関節速度調整工程)。ここで、モータが発生するトルクやエンコーダが対応できる最大回転速度などの制約により、最大回転速度、即ち、最大関節角偏差の制限値が回転関節毎に決まっている。ここでは、特異点角度に応じて、この制限値をさらに小さくする。
【0038】
例えば、
図6に示すように、回転関節毎に与えられた最大回転角偏差(最大回転速度)をV
maxとし、特異点角度がゼロの場合の回転角偏差をV
minとし、特異点近傍を判定する角度をθsとする。特異点角度θに対する減速した最大回転角偏差V
limを次式で計算する。
【0040】
特異点近傍を判定するθsを、例えば15度に設定した場合、特異点角度が15度を下回ると特定の回転関節の回転速度を制限する。また、制限値を小さくする処理は、特異点の種類に基づいて予め特定される回転関節毎に行われる。例えば、
図7に示すように、第1の特異点の場合は、回転関節J1、J4、J5、J6の最大関節角偏差(最大回転速度)の制限値を小さくする。なお、このときの制限値の最小値はゼロとする。また、第2特異点の場合は、回転関節J4、J6の最大関節角偏差(最大回転速度)の制限値を小さくする。なお、このときの制限値の最小値はゼロとする。更に、第3の特異点の場合は、回転関節J2、J3の最大関節角偏差(最大回転速度)の制限値を小さくする。なお、このときの制限値の最小値は、ゼロではなく、例えば、秒速1度といった小さな速度に設定する。この速度をゼロにすると、この特異点から脱出できないからである。
【0041】
また、ロボットアーム20は、第1の特異点から第3の特異点に同時に近づくこともある。例えば、第1の特異点と第2の特異点とに同時に近づいた場合は、それぞれの回転関節の最大関節角偏差(最大回転速度)を計算し、最も小さいものを制限値とする。
【0042】
次に、特異点角度に応じた補正割合を計算する(補正強度調整工程)。上述したように特異点は3つあり、それぞれに対応した特異点角度があるが、ここではその最小値を特異点角度として考える。また、補正割合は、0から1までの数字であり、特異点近傍ではゼロに、特異点から離れれば1となる。例えば、特異点近傍を判定する特異点角度をθsとし、3種類の特異点までの特異点角度のうち最少のものをθとすると、補正割合rは、
【0044】
で表すことができる。なお、この関数の形は
図6において、をV
max=1、V
min=0としたのと同じであるため説明を省略する。また、θsは、例えば、15度に設定する。
【0045】
次に、位置指令計算工程で計算した位置指令D
iに、前回の補正量E
iと補正割合rとを掛けたものを加えて、補正した位置指令F
iを計算する(位置指令補正工程)。
【0047】
補正強度調整工程により特異点近傍だと補正割合が小さくなるので、前回の補正量に補正割合を掛けることで、特異点近傍では補正量が小さくなる。そのため、従来技術では特異点近傍の補正量が大きくなることで関節の動作が不安定になるおそれがあったが、本実施形態においては特異点近傍で補正量が小さくなるため、関節の動作を安定させることができる。
【0048】
次に、位置指令補正工程で補正した位置指令F
iを、仮の関節角指令
【0050】
に変換する(逆機構計算工程)。次に、仮の関節角指令
【0052】
と、前回の関節角指令q
iから関節角偏差を計算し、これが最大関節角偏差調整工程で計算した最大回転角偏差V
limを超えないように仮の関節角偏差を減じて次の関節角指令q
i+1を計算する(関節角補正工程)。ここでは、関節角偏差が上限を超えない条件から、次式が成り立たなければならない。
【0054】
これを満たすように、次の関節角指令q
i+1を次式のように計算する。
【0056】
次の関節角指令q
i+1を計算すると、次に、次の関節角指令q
i+1から次の位置C
i+1を計算する(順機構計算工程)。次に、順機構計算工程で計算した次の位置C
i+1と、位置指令D
i+1との差に、補正量E
iを加えて、次の補正量E
i+1を計算する(補正量計算工程)。
【0058】
ここで、もし特異点近傍でなければ補正割合は1となるので、補正した位置指令は、
【0060】
となる。また、関節角補正工程で減速もされないため、逆機構計算工程と順機構計算工程により元に戻るので、C
i+1=D
i+E
iとなる。このC
i+1を上式に代入すると、E
i+1は、ゼロになる。つまり、特異点から離れれば補正量はゼロになる。
【0061】
以上説明したように、第1実施形態に係るロボット装置1は、特異点角度(距離)を計算し、特異点角度に応じて最大関節角偏差を調整し、その最大値以内になるように関節角偏差を補正する。そのため、例えば、特異点近傍では最大関節角偏差を小さく、それ以外では大きく設定すれば、特異点以外で動作が遅くなるという問題を解決することができる。これにより、多関節ロボットの動作速度を向上させることができる。また、特異点近傍では特異点の種類に基づいて特定される回転関節ごとに最大関節角偏差、すなわち関節角速度が制限されるのでロボットアームが急激に動くことを防止することができる。
【0062】
また、関節角偏差を修正することで、手先の位置が当初の目標から外れてしまい、手先の位置を補正する必要がある。従来技術では特異点近傍でも手先位置を補正したために、関節速度の大きな変化を引き起こしていた。それに対し、本実施形態では、特異点角度を計算し、それに応じて補正割合を調整し、補正割合を考慮して位置指令を補正する。例えば、特異点近傍では補正割合を小さく、それ以外では大きく設定する。そのため、特異点近傍では補正量が小さくなるので、関節速度が大きくなることを防止することができる。また、関節速度が大きくなることを避けるために停止させることを防止することができるため、生産性を向上させることができる。また、特異点から離れれば補正強度が大きくなるので、手先の位置は当初の目標位置に追従させることができる。
【0063】
また、第1実施形態に係るロボット装置1は、特異点の種類ごとに、特異点角度を計算するので、特異点の種類ごとに、異なる関節角偏差、すなわち回転関節の回転速度を制限することができる。そのため、特異点近傍でも減速されない回転関節を使って特異点から速やかに脱出できる。
【0064】
また、第1実施形態に係るロボット装置1は、複数ある特異点角度が最小の場合に対応して補正量を小さくできるので、特異点近傍でも計算が安定し、手先速度を減速する必要も無いので動作速度を向上できる。
【0065】
<第2実施形態>
次に、第2実施形態に係るロボット装置について、
図8を参照しながら説明する。第2実施形態では、関節制御装置31の順機構計算部57をヤコビ行列計算部59及びヤコビ行列掛け算部60に置き換えたことが第1実施形態と相違する。そのため、第2実施形態では、ヤコビ行列計算部59及びヤコビ行列掛け算部60について説明する。
図8は、第2実施形態に係る関節制御装置31Aの構成を示すブロック図である。
【0066】
順機構計算は、根元の関節から位置姿勢を順次計算して手先の位置姿勢を計算するが、ヤコビ行列との掛け算でこれを近似計算できることが知られている。ヤコビ行列計算部59は、ヤコビ行列を計算する。6軸多関節のロボットアーム20の場合、ヤコビ行列は6行6列で、関節角の偏差ベクトル(関節の速度)をかけると、手先位置の偏差ベクトル(手先の速度)となる。
【0067】
ヤコビ行列掛け算部60は、ヤコビ行列と、関節角補正工程で計算した関節角指令と前回の関節角指令との差、すなわち関節角の偏差ベクトルとヤコビ行列を掛け、これに現在位置を加えることによって、次回の位置を計算する。例えば、
【0069】
を用いて計算することができる。第2実施形態によれば、順機構計算は三角関数を含む複雑な座標変換なので、順機構計算部57をヤコビ行列計算部59及びヤコビ行列掛け算部60に代用することで計算量を削減することができる。
【0070】
<第3実施形態>
次に、第3実施形態に係るロボット装置について、
図9を参照しながら説明する。第3実施形態では、補正量修正部61を追加して補正量を小さくしたことが第1実施形態と相違する。そのため、第3実施形態では、補正量修正部61について説明する。
図9は、第3実施形態に係る関節制御装置31Bの構成を示すブロック図である。
【0071】
ここでは、作業者がティーチングペンダント4のボタンを押して多関節ロボット2の手先位置(エンドエフェクタ21)を動かしている場面を想定する。偏差指令は、ティーチングペンダント4のボタンが押されている間中、常にゼロではない数字を出力し続ける。ロボットアーム20が動き続けて特異点に近づくと、回転関節の速度制限がかかるため手先の速度は落ちるが、このとき動けなかった分は補正量に蓄積される。そして、特異点から離れると、こんどは補正量を解消するので手先速度が増加する。例えば、補正量がゼロに戻ると、手先速度も元の速度に戻る。
【0072】
この一連の動作を考えると、特異点近傍から離れる瞬間、ロボットアーム20の予期しない速度の増加が起こるため、作業者が意図している動作の方向には、補正量を蓄積させないほうが好ましい。第3実施形態では、偏差指令から方向の成分を除去する補正量修正部61を設け、補正量修正部61では、次のようなベクトル計算を行う。まず、偏差指令V
iの方向ベクトルv
iを計算する。
【0076】
と、方向ベクトルv
iから修正後の補正量E
i+1を計算する。
【0078】
この式の意味は、補正量から偏差指令の方向の成分を除去することである。第3実施形態によれば、補正量を小さくできるので、特異点近傍から離れる瞬間の不要な速度増加を抑えることができる。特に、ティーチングペンダントの操作者の視点で考えると、操作者が意図している方向、すなわち偏差指令の方向の増速を抑えられるので好ましい。また、補正量が小さくなるので、特異点近傍の補正計算がより安定になる。さらに、補正量が小さくなるので、本来の位置を回復する時間も短くできる。
【0079】
<第4実施形態>
次に、第4実施形態に係るロボット装置について、
図10を参照しながら説明する。第4実施形態では、最大関節角偏差の制限に加えて偏差変化も制限する最大関節角偏差変化調整部62を設けた点が第1実施形態と相違する。そのため、第4実施形態では、最大関節角偏差変化調整部62について説明する。
図10は、第4実施形態に係る関節制御装置31Cの構成を示すブロック図である。
【0080】
最大関節角偏差変化調整部62は、特異点角度に応じて回転関節毎に予め与えられている最大関節角偏差変化(最大回転速度変化)を小さくする。制御周期が一定なので関節角偏差変化は加速度であり、回転関節のモータが発生できるトルクなどの条件から関節ごとに最大値が決まっている。ここでは、特異点角度に応じて、この制限値をさらに小さくして減速する。具体的に減速する方法は偏差(回転速度)の場合に
図6を用いて説明した方法と同じである。
【0081】
回転関節ごとに与えられた最大回転角偏差変化をA
maxとし、横軸の特異点角度θがゼロの場合の関節角偏差変化をA
minとし、特異点近傍を判定する特異点角度をθsとする。特異点角度θに対する減速した最大回転角偏差変化A
limは、
【0083】
で計算される。例えば、θsを15度に設定すると、特異点角度が15度を下回ると回転関節の回転速度が急激になる。第4実施形態では、更に、最大関節角偏差の制限に加えて、最大関節角偏差変化も制限する。偏差変化は、次の関節角指令q
i+1と、前回の関節角指令q及び前々回の関節角指令q
i−1から次の差分で計算する。
【0085】
これが、最大関節角偏差変化調整部62で計算した制限値を超えないという条件から、
【0087】
この式を満たすようにq
i+1を次式のように計算する。
【0089】
さらに最大関節角偏差の制限をかける。これは、第1実施形態の関節角補正工程と同じ説明なので省略する。なお、上述した2種類の制限の優先順位だが、第4実施形態では最大関節角偏差の制限の計算を、偏差変化の制限のあとに行っているので、最大関節角偏差の制限が優先される。第4実施形態によれば、最大関節角偏差の制限に加えて最大関節角偏差変化も制限するので、より滑らかな速度制御が可能となる。
【0090】
<第5実施形態>
次に、第5実施形態に係るロボット装置について、
図11を参照しながら説明する。第5実施形態では、位置指令補正工程及び逆機構計算工程を特異点計算工程の前に行う点が第1実施形態と相違する。そのため、第5実施形態では、位置指令補正工程及び逆機構計算工程を特異点計算工程の前に行った場合について説明する。
図11は、第5実施形態に係る関節制御装置31Dの構成を示すブロック図である。
【0091】
特異点角度は、逆機構計算でも得られるので、この計算の後に特異点角度を計算すれば、最新の関節角度で特異点角度を計算することができる。第5実施形態においては、位置指令補正工程は、前回の補正割合r
iを用いて補正した位置指令F
iを計算する。
【0093】
なお、前回の補正割合を用いた場合においても、制御周期が2msといった十分に短い時間であるため問題ない。2ms間の関節角度の変化は小さいため、特異点角度の変化も小さく、補正割合の変化も小さいといえるためである。第5実施形態によれば、第1実施形態と同様の効果を得ることができる。
【0094】
<第6実施形態>
次に、第6実施形態に係るロボット装置について、
図12を参照しながら説明する。第6実施形態では、補正量計算工程の後に減衰工程を設けた点が第1実施形態と相違する。そのため、第6実施形態では、減衰計算工程を実施する減衰計算部63について説明する。
図12は、第6実施形態に係る関節制御装置31Eの構成を示すブロック図である。
【0095】
第1実施形態においては、補正割合は、特異点近傍では小さく、特異点から離れると大きくなるようになっている。ここで、特異点近傍に長い間停留してから離れる場合を考える。この場合、長時間の前の補正量に対しても補正が働き、ロボットアーム20が動くことになる。これは、例えば、多関節ロボット2の操作者が偏差指令を指示する場合、長時間経過した後にロボットアーム20が動くと、操作者に対して好ましくない。この場合、時間に応じて補正量を減衰させた方が自然である。
【0096】
そこで、第6実施形態では、減衰計算部63に、予め定めた倍率で補正量を減衰計算させる。具体的には、修正後の補正量E
i+1にnE
i+1を代入する。倍率は、n回で半分に減衰する場合、n=0.5^(1/n)である。例えば、制御周期2ms、4秒で半分に減衰させる場合、回数nは、4/0.002=2000回。倍率は、n=0.999653である。
【0097】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【0098】
例えば、第1実施形態においては、現在位置を前回の制御周期で計算したC
iで説明したが、サーボ制御装置で実際の回転角度を計算し、順機構計算により現在位置を求めてもよい。この場合でも本発明の主旨は変わらず、効果も同じである。