説明

ロボットの制御装置及び方法

【課題】ロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合に、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができる制御装置及び制御方法を提供する。
【解決手段】本制御装置及び制御方法は、少なくとも1つの関節を有するロボットにおいて、各関節につき、関節位置指令に対して、位置フィードバック制御及び速度フィードバック制御を行い、該関節に設定された関節座標系において、所定の制限開始位置と該関節の現在位置との関係及び所定の制限開始速度と該関節の現在速度との関係に基づいて制限トルクを計算し、計算された制限トルクを速度フィードバック制御の出力に加算して得られるトルクにより該関節の動作を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、ロボットの制御装置及び方法に関し、例えばロボットの柔軟制御における可動域制限装置及び方法に関する。
【背景技術】
【0002】
産業用ロボットの柔軟制御は、力センサなどを使用することなくロボットアームを直接操作して位置教示を行う場合や、周辺機器がロボットに外力を及ぼす状況下でのハンドリング作業などにおいて使用される。この柔軟制御を用いて作業する場合、操作者や周辺機器からの外力によってロボットがその可動域を超えて無制限に動作されることにより、ロボットのメカリミットの破損やロボットと別の周辺機器との干渉が発生する危険性があるため、何らかの方法で可動領域を制限する必要がある。
【0003】
従来の可動域制限方法で一般に知られているものとして、ロボットコントローラに実装されたソフトウェア上でロボットアーム各軸のモータにつき動作制限位置を予め設定しておき、いずれかの軸のモータが当該動作制限位置に達した場合にアラームを発生し、ロボットを緊急停止させる手法がある。
【0004】
また、前記手法と同様に、ソフトウェア上でロボットアームの各軸のモータについて動作制限位置を予め設定しておき、各軸の位置(関節角度、つまりモータ回転角度である)が当該動作制限位置に近づくにつれて漸増する力を所定の方法で計算し、計算された力を反力として加えることにより、各軸の動きが可動域を超えることを回避する手法がある(例えば、特許文献1参照)。
【0005】
さらに、機構的な対処法として、ロボットの各軸の位置が機械的動作限界へ近づくにつれて大きな抵抗値を示すようになる抵抗部材をロボットの関節部に設けるものもある(例えば、特許文献2参照)。
【0006】
図5は、特許文献1に記載の手法をマスタースレーブマニピュレータに適用し動作限界の反力提示を行う制御装置を示すブロック図である。スレーブアーム側の関節角度Pが所定の作動限界近傍に達すると、その関節角度Pに応じて計算される反力TLをマスターアームの反力に足しこむように構成されている。図6はスレーブアームの関節角度Pと外力に加える反力TLとの関係について予め設定される関係を示す。図6(a)は関節角度Pに関係なくTL=0とするものである。図6(b)は、反力TLが関節角度Pと所定の作動限界近傍の制限値PLLとの差に比例して増加するように与えられる例を示す。図6(c)は、PとPLLとの差の2乗に比例するように反力TLを決定する例を示す。
【0007】
このように、従来のロボットアームの可動域制限方法では、有力な手法として、ロボットアームの各軸について所定の制限位置(関節角度)と現在位置との差から反力を計算し、当該反力を加えることによって各軸の動作が可動域を超えることが回避されていた。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平1−183379号公報
【特許文献2】実公昭62−031269号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
各軸について動作制限位置を設けロボットアーム各軸の現在位置を常時監視する従来の方法は、いずれかの軸が制限位置に到達した時にロボットアームを緊急停止させるという手順をとっているので、復旧に時間や手間がかかるという問題がある。
【0010】
また、各軸に関して予め設定された関節制限位置と現在位置との差から計算される反力を加える方法においては、反力がロボットの各軸の位置のみに基づいて計算されるため、柔軟制御中に急激に大きな外乱トルクが印加されていずれかの軸の位置が制限領域に到達した場合や高速で制限領域に到達した場合には、逆向きのトルクが過大となり、減速機などに大きな負担がかかるという問題があった。
【0011】
さらに、機構的な対処法には、各軸が繰り返し制限領域に近づくような場合に制限機構が劣化し易いという問題があった。
【0012】
したがって、従来技術によると、ロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合には、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができなかった。
【課題を解決するための手段】
【0013】
上記問題を解決するため、本願は、次のような発明を提供する。
【0014】
なお、本願出願時の明細書の記載を基礎として、特許請求の範囲の記載が補正され得ることは勿論であるが、その際に、本願発明に関して記載される以下の概要の内容を訂正することは予定しない。以下の概要に記載される各「発明」は、本願明細書における開示の要点としての意味を持つものである。
【0015】
本発明の1つの側面において、本発明の制御装置は、少なくとも1つの関節を有するロボットの柔軟制御に使用されるものであり、各関節につき、関節位置指令に対して、該関節の位置に基づいてそれぞれ位置フィードバック制御及び速度フィードバック制御を行う、位置フィードバック制御手段及び速度フィードバック制御手段と、該関節に設定された関節座標系において、該関節につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と該関節の現在位置との関係、及び該関節につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と該関節の現在速度との関係に基づいて、制限トルクを計算する制限トルク計算手段であって、現在位置が制限開始位置を越えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて制限トルクが大きくなる、制限トルク計算手段とを備える。そして、当該制御装置は、速度フィードバック制御手段の出力に計算された制限トルクを加算して得られるトルクにより該関節の動作を制御する。
【0016】
制限トルクは、制限開始位置と現在位置との差に基づいて計算される第1の制限トルクと、制限開始速度と現在速度との差に基づいて計算される第2の制限トルクとの和として計算されてもよい。当該制限トルクは、本明細書において後述する式(1)から式(7)に基づいて計算してもよい。
【0017】
このように構成することによって、関節座標系上でのロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合においても、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができる。
【0018】
また、本発明の別の側面において、本発明の制御装置は、少なくとも1つの関節を有するロボットの柔軟制御に使用されるものであり、各関節に対する関節位置指令から作業座標系におけるロボットの手先位置指令を決定する順運動学計算部と、手先位置指令に対して、各関節の位置に基づいてそれぞれ位置フィードバック制御及び速度フィードバック制御を行う、位置フィードバック制御手段及び速度フィードバック制御手段と、作業座標系において、手先につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と手先の現在位置との関係、及び手先につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と手先の現在速度との関係に基づいて、制限力を計算する制限力計算手段であって、現在位置が制限開始位置を越えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて制限力が大きくなる、制限力計算手段と、計算された制限力を速度フィードバック制御手段の出力に加算して得られる力から各関節に要求されるトルクを計算する逆計算手段とを備える。そして、当該制御装置は、計算されたトルクにより各関節の動作を制御する。
【0019】
制限力は、制限開始位置と現在位置との差に基づいて計算される第1の制限力と制限開始速度と現在速度との差に基づいて計算される第2の制限力との和として計算されてもよい。当該制限力は、本明細書において後述する式(8)から式(14)に基づいて計算してもよい。
【0020】
このように構成することによって、作業座標系上でのロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合においても、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができる。
【0021】
また、本発明の別の側面において、本発明の制御方法は、少なくとも1つの関節を有するロボットの柔軟制御に使用され、少なくとも1つの関節につき、関節位置指令に対して、該関節の位置に基づいて位置フィードバック制御及び速度フィードバック制御を行うステップと、該関節に設定された関節座標系において、該関節につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と該関節の現在位置との関係、及び該関節につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と該関節の現在速度との関係に基づいて、制限トルクを計算するステップであって、現在位置が制限開始位置を越えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて制限トルクが大きくなる、制限トルクを計算するステップと、計算された制限トルクを速度フィードバック制御の出力に加算して得られるトルクにより該関節の動作を制御するステップとを備える。
【0022】
このように構成することによって、関節座標系上でのロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合においても、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができる。
【0023】
また、本発明の別の側面において、本発明の制御方法は、少なくとも1つの関節を有するロボットの柔軟制御に使用され、順運動学計算により、各関節に対する関節位置指令から作業座標系におけるロボットの手先位置指令を決定するステップと、手先位置指令に対して、各関節の位置に基づいて位置フィードバック制御及び速度フィードバック制御を行うステップと、作業座標系において、手先につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と手先の現在位置との関係、及び手先につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と手先の現在速度との関係に基づいて、制限力を計算するステップであって、現在位置が制限開始位置を越えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて制限力が大きくなる、制限力を計算するステップと、逆計算により、計算された制限力を速度フィードバック制御の出力に加算して得られる力から各関節に要求されるトルクを計算するステップと、計算されたトルクにより各関節の動作を制御するステップとを備える。
【0024】
このように構成することによって、作業座標系上でのロボットの柔軟制御中にロボットに対して急激に大きな外力が働いた場合においても、ロボット各軸の位置の急激な変化に適切に対応し得る可動域制限を行うことができる。
【0025】
審査中の手続補正によって、及び、特許後の訂正審判又は訂正請求において、法的な制限の範囲内で、本発明は、種々の他の態様に訂正され得る。
【0026】
なお、特許後の訂正審判又は訂正請求における「実質上特許請求の範囲を変更」の判断は、特許時の請求項に新たな構成要素が追加されたか否か(すなわち、いわゆる外的付加がなされたか否か)、又は、特許時の請求項の1つ又はそれより多いいずれかの構成要素をさらに限定するものか(すなわち、いわゆる内的付加がなされたか)によって判断されるべきでなく、訂正の前後の請求項に係る発明の効果が類似するか否かの観点からなされるべきである。
【発明の効果】
【0027】
本発明の実施例によると、関節座標系上でロボットの柔軟制御を実行した際に、ロボットが可動域限界に到達したときにロボットを緊急停止することなく機械的可動域を保護し、周辺機器への干渉回避を行うことができる。
【0028】
また、作業座標系上でロボットの柔軟制御を実行した際に、ロボットが可動域限界に到達したときにロボットを緊急停止することなく機械的可動域を保護し、周辺機器への干渉回避を行うことができる。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施例によるロボットシステムの構成図である。
【図2】本発明の一実施例の装置又は方法の処理手順を示すフローチャートである。
【図3】本発明の一実施例による可動域制限装置又は方法を関節座標系での柔軟制御に適用した場合の説明図である。
【図4】本発明の一実施例による可動域制限装置又は方法を作業座標系での柔軟制御に適用した場合の説明図である。
【図5】従来の方法を適用したマスタースレーブマニピュレータの制御ブロック図である。
【図6】図5に示す従来の方法における反力TLと関節角度Psとの関係を説明するグラフである。
【発明を実施するための形態】
【0030】
以下、本発明の装置及び方法の具体的実施例について、図に基づいて説明する。
【0031】
ここでは、本発明の一実施例として、本発明の装置又は方法をロボットの直接教示(ダイレクトティーチング)に適用した場合について説明する。ここで、教示(ティーチング)とは、ロボットに作業を行わせるためにその作業を実現する動作を何らかの方法で教え込むことを意味する。直接教示とは、教示装置を介することなく、操作者がある作業のための所望の動作手順に沿ってロボットに力を加えて手動でロボットを動かすことにより、当該動作をロボットに教え込む教示手法である。
【0032】
図1は、本発明の可動域制限装置及び方法が実施されるロボットシステムの概略的な構成図を示す。図1において、ロボットシステムは、6軸の垂直多関節型ロボット1、本発明の可動域制限装置の実施例であり、本発明の可動域制限方法の実施例を実現するコントローラ2、及び教示の際に各種設定を行うための教示装置3を備えている。図1においては、ロボットアームの直接教示を行う操作者4も図示されている。図1においてロボット1は6軸の垂直多関節型を例にしているが、これに限定されない。本発明は、少なくとも1つの関節を有する様々なロボットに対して適用することが可能である。教示装置3は、コントローラ2と有線又は無線で接続されており、表示画面及び複数のボタンを備え、操作者4により把持されて操作される。教示装置3は、ロボット1に所定の作業を行うために必要となる動作を教示したり、ロボット1の状態を把握したり、教示した作業の開始、一時停止、非常停止などを指令したりするのに使用される。教示装置3は、教示ペンダント、ティーチングボックス、ティーチングペンダント、プログラミングペンダント等とも呼称される。教示装置3を用いた操作の一例として、ジョグ運転と呼ばれる操作を行ってもよい。ジョグ運転とは、操作者4が教示装置3上の各軸動作ボタンを押している間だけロボット1の所定の軸が動作し、放すと動作が停止するという操作である。操作者4は、ジョグ運転により、ロボット1を所望の位置や姿勢へと動かし、教示装置3を介して教示操作を行うことにより、そのときのロボット1の位置及び姿勢をコントローラ2に記憶させることができる。
【0033】
ロボット1の柔軟制御を行う場合、通常の状態では、ロボットアームは外力に倣って動作する。柔軟制御とは、ロボットアームに作用する重力や摩擦力等のみを補償するトルク指令を与え、ロボットアームを外力に倣って動作させる制御方法である。
【0034】
後述するように、本発明によれば、操作者4が教示装置3を介して可動域制限に関するパラメータをコントローラ2に登録しておくと、ロボット1の各軸(各関節)の動作が可動域限界に近づいた場合にコントローラ2が適切な反力を計算して各軸に印加する。これにより、各軸の位置(回転角度)が可動域限界に達することを回避することができる。
【0035】
図2は、コントローラ2において実行される可動域制限の処理手順を示すフローチャートである。以下、図2を用いるとともに必要に応じて図3及び図4を参照しながら処理手順を順を追って説明する。
【0036】
はじめに、S11において、柔軟制御を実行する座標系について関節座標系か作業座標系かを選択する。ここで、関節座標系とは、ロボットの各軸に固定された座標系であり、ロボットを動作させる際の基準として使用される座標系を意味する。また、作業座標系とは、ロボットの手先部に固定された座標系であり、直交座標系とも呼称される。ロボットの柔軟制御は、関節座標系に基づいて行われる制御と作業座標系に基づいて行われる制御とに大別されるため、S11においていずれの座標系に基づく柔軟制御を実行するかを選択する。当該選択は、制御対象のロボット1に関してコントローラ2が予め記憶している情報に基づいてコントローラ2が行ってもよいし、操作者4が教示装置3を介してコントローラ2へ選択の指示を送ることにより行われてもよい。その他、当業者に周知の様々な手法により、コントローラ2はS11を実行することができる。
【0037】
ここで、S11において柔軟制御の座標系として関節座標系が指定された場合において実施される本発明の一実施例の可動域制限装置及び可動域制限方法の構成及び原理に関して、図3を用いて説明する。図3(a)は、関節座標系に基づきコントローラ2において可動域制限を実行する可動域制限付き位置制御部201のブロック図である。
【0038】
図3(a)においては、201a乃至201cの3つのブロック図が示されており、添え字のアルファベットはロボットの各軸に対応する。可動域制限はロボット1の各軸(各関節)ごとに行う必要がある。すなわち、6軸を有するロボットであれば6つの軸に対してそれぞれ同様の制御を行う必要がある。
【0039】
以下、軸aに対応する可動域制限付き位置制御部201aを例にとり動作を説明する。図3(a)に示される関節位置指令は、ロボット1の手先を移動させるにあたって各軸に要求される関節位置(回転角度)を示す指令である。操作者が教示装置3を使用してロボット1にある作業に関する動作を教え込む教示の際には、関節位置指令は操作者による教示装置3への入力に基づいて、コントローラ2へ送られる。既に教示された動作をロボット1が実行する再生動作の場合には、関節位置指令はコントローラ2から得られる。また、直接教示の場合には、操作者がロボットを直接操作し、所望する位置に導く。この際、教示装置3は直接教示に関する数値設定や設定切換えに使用される。このような直接教示の際には、操作者がロボットに印加した力に基づいて各関節に位置指令が与えられることになる。一般的に柔軟制御は周辺機器がロボットに外力を及ぼす状況下でのハンドリング作業などにおいて使用され、外力を吸収するという受動的な使用形態をとる。本実施例では直接教示の際に柔軟制御を適用しているが、ハンドリング作業などの際に本発明を適用することももちろん可能である。再生(playback)とは、ロボットが、記憶した情報によって指示された作業・動作を実行することを意味する。
【0040】
可動域制限付き位置制御部201aにおいて、軸aの位置は、軸aに内蔵された駆動モータ206aのエンコーダ(図示せず)によって検出される。エンコーダは、モータの位置(回転角度)を測定するためのセンサである。エンコーダの出力を時間微分するとモータの回転(角)速度が得られる。ロボット制御において、エンコーダは、通常、各軸を駆動するモータに設けられており、エンコーダにより測定された各軸の位置(回転角度)とロボットの各リンク(軸と軸とを繋ぐ部分)の既知の長さとからロボットの手先の位置及び姿勢を求めることができる。このようにしてロボットの手先の位置及び姿勢を求めることを順運動学という。
【0041】
エンコーダ(図示せず)によって検出された軸aの位置は、加算部208a及び位置フィードバックゲイン要素K209aからなる、位置フィードバック制御を行う関節座標系位置フィードバックループと、速度演算部207a、加算部210a及び速度フィードバックゲイン要素K211aからなる、速度フィードバック制御を行う関節座標系速度フィードバックループとによって、関節位置指令にフィードバックされる。速度フィードバックゲイン要素Kv211aの出力は対応するトルクの値へと変換されて、トルク制限部203aへ入力されてもよい。Kの乗算により、制御的に速度からトルクへの単位変換が行われる。Kの出力及びKvの入力は関節速度指令となる。トルク制限部203aは、ロボット1の軸aのモータの発生トルクに対して予め与えられた制限(0%〜100%)を与えるものであり、その制限値はロボット1の動作目的や動作環境等に応じて予め適切に定められる任意の値である。トルク制限部203aを用いることにより、軸aのモータのトルクを所定のトルク制限値内に留めることができる。
【0042】
関節座標系で柔軟制御を実行する場合、上述のようにトルク制限部203においてロボットの各軸のモータの発生トルクが設定値以上にならないように制限を与えたり、位置フィードバックゲインKや速度フィードバックゲインKを可変にしたりすることが有用である。
【0043】
重力補償トルク計算部204a及び摩擦補償トルク計算部205aは、それぞれ、重量や重心位置などのロボット1に関するリンクパラメータに基づいて重力補償トルクを計算し、摩擦モデルから速度に応じた摩擦補償トルクを計算する。
【0044】
図3(b)は、a〜fの6軸を有するロボット1の概略図であり、各軸と、軸同士を接続するリンクとが示されている。a〜fの各軸は限界位置(限界回転角度)を有しており、これを超えて回転がなされると故障等につながる。
【0045】
軸101bを例として説明する。図3(b)に示されるθPTrmbは、軸bの限界位置(限界回転角度)を示す。軸bがこのθPTrmbまで回転することを回避するため、本発明では、限界位置θPTrmbから一定量だけ戻した(すなわち、一定量だけ絶対値の小さな)位置(以下、「制限開始位置」という。)であるθPLimbを予め決定しておく。そして、軸bの位置が図3(b)に示すように制限開始位置θPLimbに達するかもしくはこれを超えると、所定の計算手法に従って、図3(a)における関節座標系可動域制限トルク計算部202b(図3(a)における軸bの可動域制限トルク計算部である。軸bに対応する可動域制限付き位置制御部201bに存在する)において反力TLnkbを計算し、これを加算して得たトルクを軸101bのモータに指示する。例えば直接教示(ダイレクトティーチング)を行っている操作者は、それまで柔軟に制御できていたロボット1の動作が反力を受けたことを認識することができるので、ロボット1が可動域限界に近づいていることを認識することができる。なお、図中のその他の軸に関しても反力を記しているが、太線、細線、点線となるに従って反力が弱くなることを意味している。
【0046】
図3(c)及び図3(d)は可動域制限トルク計算部202において実行される計算を説明する図である。図3(c)において、縦軸は計算対象の軸の位置(回転角度)に基づいて決定される反力(制限トルク)を表し、横軸は計算対象の軸の位置を表す。図3(d)において、縦軸は計算対象の軸の速度(角速度)に基づいて決定される反力を表し、横軸は計算対象の軸の速度(角速度)を表す。反力を滑らかに提示するよう、図3(c)及び図3(d)に示すように、制限開始位置(θPLim、θMLim)及び制限開始速度(ωPLim、ωMLim)から立ち上がり、限界位置(θPTrm、θMTrm)及び限界速度(ωPTrm、ωMTrm)に漸近するような2次以上の曲線によって反力が表されるようにするのが好ましい。但し、反力と位置又は速度との関係は図3(c)及び図3(d)に示される関係に限定されない。反力は、軸の現在位置が制限開始位置を超えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて、大きくなるように規定されればよい。軸が制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれらの少なくともいずれかを超えた場合に限界位置又は限界速度に達することを回避するのに有用な様々な計算式を設定し得る。図3(c)において、θMLim及びθPLimは、それぞれ負方向及び正方向の制限開始位置であり、θMTrm及びθPTrmは、それぞれ負方向及び正方向の限界位置である。図3(d)に示される各値も、同様に、負方向及び正方向の制限開始速度並びに負方向及び正方向の限界速度をそれぞれ意味している。既に述べたように、制限開始位置及び制限開始速度は、それぞれ限界位置及び限界速度から所定の値だけ原点方向に近づいた値に設定される。
【0047】
ここで再び図2に戻り、本発明の一実施例による関節座標系の場合の可動域制限の処理手順を説明する。
【0048】
S21において、関節座標系においてロボットの各軸に配置されたモータの発揮するトルクの制限値を、例えば教示装置3から設定する。ここで設定されたトルク制限は図3(a)に示すトルク制限部203において使用される。
【0049】
次に、S31において、関節座標系において柔軟制御を開始する。すなわち、ロボット1のアームが外力に倣って動作するような状態にロボット1を設定する。
【0050】
さらに、S41において、関節座標系の可動域制限に必要となる制限トルクTLnk(図3参照)を、例えば以下に示す式(1)から式(7)により計算するために必要となる各種のパラメータを設定する。この計算は、図3(a)の例においては、関節座標系可動域制限トルク計算部202aにおいて実行される。なお、制限トルクTLnkの計算方法は、以下に示すものに限定されるものではなく、既に述べたとおり、各軸(各関節)の動作が制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれらの少なくともいずれかを超えた場合に限界位置又は限界速度に達することを回避するのに有用な様々な計算手法を適用可能であることは当業者にとって明らかであろう。
【数1】


ここで、TLnk_θ及びTLnk_ωは、それぞれ、各軸の位置(回転角度)に基づいて計算される制限トルク及び各軸の速度(角速度)に基づいて計算される制限トルクであり、例えば図3(c)及び図3(d)に示すような特性を有する。kPθ及びkMθはそれぞれ正負方向の位置による制限トルク計算定数、kPω及びkMωはそれぞれ正負方向の速度による制限トルク計算定数である。θ及びωは現在の位置(回転角度、関節角度)及び速度(角速度)、θPLim及びθMLimはそれぞれ正負方向の制限開始位置、θPTrm及びθMTrmはそれぞれ正負方向の限界位置である。ωPLim及びωMLimはそれぞれ正負方向の制限開始速度、ωPTrm及びωMTrmはそれぞれ正負方向の限界速度である。この例において、制限トルクTLnkは、各軸の制限開始位置と現在位置との差に基づいて計算される第1の制限トルクTLnk_θと、制限開始速度と現在速度との差に基づいて計算される第2の制限トルクTLnk_ωとの和である。
【0051】
本来、これらのパラメータをロボット1の軸数分だけ設定する必要があるが、正負方向の位置による制限トルク計算定数kPθ及びkMθ並びに正負方向の速度による制限トルク計算定数kPω、kMωは式(3)(4)(6)(7)により導出できるので、制限開始位置θPLim及びθMLim、限界位置θPTrm及びθMTrm、制限開始速度ωPLim及びωMLim、限界速度ωPTrm及びωMTrmを教示装置3から入力するのみですべての定数を決定することができ、関節座標系における可動域制限トルクを計算することができる。
【0052】
さらに、制限開始位置と制限開始速度を、それぞれ限界位置と限界速度から逆制限方向に一定量戻した値(すなわち、一定量だけ絶対値の小さな値)となるよう、当該一定量を事前に設定しておくことにより、S41において操作者が教示装置3から設定する変数は、軸数分の正負方向の限界位置と限界速度、すなわち、軸数分のθPTrm、θMTrm、ωPTrm、ωMTrmのみでよい。
【0053】
なお、本実施例は、各軸の位置及び速度の両方に基づいて可動域制限トルクを計算してこれを反力として作用させるものであるが、このような構成に代えて、各軸の位置及び加速度に基づいた可動域制限を行うことも可能である。この場合、図3(a)において、各軸のモータのエンコーダにより検出される位置から加速度を計算する手段、加算部及び加速度フィードバックゲイン要素からなる加速度フィードバックループが構成される。
【0054】
次に、図2のS11において柔軟制御の座標系として作業座標系が指定された場合において実施される本発明の一実施例の可動域制限装置及び可動域制限方法の構成及び原理に関して、図4を用いて説明する。図4(a)は、作業座標系に基づきコントローラ2において可動域制限を実行する可動域制限付き位置制御部301のブロック図である。基本的な構成は図3(a)の構成に類似するが、図4(a)においては、順運動学計算部215において、関節位置指令に対して順運動学計算を行い、作業座標系への変換を行って、ロボットの手先位置に関する指令に変換する必要がある。作業座標系とはロボットの操作者が任意に決定できる座標系で、この例では作業座標系原点を手先位置として垂直方向にz軸、ロボット前後方向にx軸、ロボット左右方向にy軸をとっている。
【0055】
以下、ロボット1の手先位置が作業座標系のz軸方向に移動する場合について動作を説明する。可動域制限付き位置制御部301において、ロボット1の手先位置は、軸(関節)101a〜101fに内蔵された各駆動モータ206のエンコーダ(図示せず)によって検出される各軸の位置、ロボット1の各リンクの既知の長さ、及びロボットアーム先端に取り付けられたエンドエフェクタ(手先効果器)の既知の寸法から得られる。エンドエフェクタは作業対象物に対して何らかの作業を行う装置であり、物を掴むハンド(グリッパ)やバリ取りを行うグラインダなど、用途によって様々なものが存在する。
【0056】
得られた手先位置は、順運動学計算部221(各関節のモータの位置に基づいて作業座標系における手先位置を計算する)、加算部216及び位置フィードバックゲイン要素KpLNR217からなる作業座標系位置フィードバックループと、順運動学計算部221、速度演算部220、加算部218及び速度フィードバックゲイン要素KvLNR219からなる作業座標系速度フィードバックゲインループとによって、関節位置指令を順運動学計算部215により変換することにより得られる、作業座標系へ変換された手先位置指令にフィードバックされる。速度フィードバックゲイン要素KvLNR219の出力は対応する力の値へと変換されて手先力制限部213へ入力されてもよい。KvLNRの乗算により、制御的に速度から力への単位変換が行われる。手先力制限部213は、ロボット1の手先力に対して予め与えられた制限(0%〜100%)を与えるものであり、その制限値はロボット1の動作目的や動作環境等に応じて予め適切に定められる任意の値である。手先力制限部213を用いることにより、手先力を所定の力制限値内に留めることができる。
【0057】
作業座標系で柔軟制御を実行する場合、上述のように手先力制限部213においてロボットの手先力が設定値以上にならないように制限を与えたり、位置フィードバックゲインKpLNRや速度フィードバックゲインKvLNRを可変にしたりすることが有用である。
【0058】
可動域制限付き位置制御部301においては、さらに、後に詳述する手法により作業座標系における可動域制限力計算部212において計算された制限力を手先力制限部213の出力に加算した後、逆計算処理部214において逆計算を行って値を力から各軸(関節)に要求されるトルクに変換する。重力補償トルク計算部204及び摩擦補償トルク計算部205の動作は図3(a)の場合と同様である。
【0059】
図4(b)は、本実施例を6軸ロボットに適用したときの実施形態の説明図である。ロボット1の手先位置が作業座標系のz軸方向に移動する場合を例として説明する。図4(b)に示されるXPTrmzは、手先の限界位置を示す。手先がこのXPTrmzまで移動することを回避するため、本発明では、限界位置XPTrmzから一定量だけ戻した(すなわち、一定量だけ絶対値の小さな)位置(以下、「制限開始位置」という。)であるXPLimzを予め設定しておく。そして、手先の位置が図4(b)に示すように制限開始位置XPLimzを超えると、所定の計算手法に従って、図4(a)における作業座標系可動域制限力計算部212において反力FLnrzを計算し、これを加算して得た力に逆計算を施した後、得られたトルクを各軸のモータに指示する。例えば直接教示を行っている操作者は、それまで柔軟に制御できていたロボット1の動作が反力を受けたことを認識することができるので、ロボット1が可動域限界に近づいていることを認識することができる。
【0060】
図4(c)及び図4 (d)は可動域制限力計算部212において実行される計算を説明する図である。図3に関連して既に説明した関節座標系の場合と同様に、反力は、ロボット1の手先の位置と速度の両方に基づいて計算される。図4(c)において、縦軸は手先位置に基づいて決定される反力(制限力)を表し、横軸は手先位置を表す。図4(d)において、縦軸は手先の移動する速度に基づいて決定される反力を表し、横軸は手先の移動する速度を表す。反力を滑らかに提示するよう、図4(c)及び図4(d)に示されるように、所定の制限開始位置(XPLim、XMLim)又は制限開始速度(VPLim、VMLim)から立ち上がり、限界位置(XPTrm、XMTrm)又は限界速度(VPTrm、VMTrm)に向かって漸近するような2次以上の曲線によって反力が表されるようにするのが好ましい。但し、反力と位置又は速度との関係は図4(c)及び図4(d)に示される関係に限定されない。反力は、手先の現在位置が制限開始位置を超えて大きくなるにつれて又は現在速度が制限開始速度を超えて大きくなるにつれて、大きくなるように規定されればよい。手先位置が制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれらの少なくとも一方を超えた場合に手先が限界位置又は限界速度に達することを回避するのに有用な様々な計算式を設定し得る。図4(c)において、XPLim、XMLimは、それぞれ正方向及び負方向の制限開始位置であり、XPTrm、XMTrmは、それぞれ正方向及び負方向の限界位置である。図4(d)に示される各値も、同様に、正方向及び負方向の制限開始速度並びに正方向及び負方向の限界速度をそれぞれ意味している。既に述べたように、制限開始位置及び制限開始速度は、それぞれ限界位置及び限界速度から所定の値だけ原点方向に近づいた値に設定される。
【0061】
ここで再び図2に戻り、本発明の一実施例による作業座標系の場合の可動域制限の処理手順を説明する。
【0062】
S22において、作業座標系においてロボット1の手先が発揮する力の制限値を、例えば教示装置3から設定する。ここで設定された力制限は図4(a)における手先力制限部213において使用される。
【0063】
次に、S32において、作業座標系において柔軟制御を実行する。さらに、S42において、作業座標系の可動域制限に必要となる制限力FLnr(図4参照)を以下に示す式(8)から式(14)により計算するために必要となる各種のパラメータを設定する。この計算は、図4(a)の例においては、作業座標系可動域制限力計算部212において実行される。なお、制限力FLnrの計算方法は、以下に示すものに限定されるものではなく、既に述べたとおり、手先位置が制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれらの少なくとも一方を超えた場合に手先が限界位置又は限界速度に達することを回避するのに有用な様々な計算手法を適用可能であることは当業者にとって明らかであろう。
【数2】


ここで、FLnr_x及びFLnr_vは、それぞれ、ロボット1の手先の位置に基づいて計算される制限力及び手先の速度に基づいて計算される制限力であり、例えば図4(c)及び図4(d)に示すような特性を有する。kPx及びkMxはそれぞれ正負方向の位置による制限力計算定数、kPv及びkMvはそれぞれ正負方向の速度による制限力計算定数である。x及びvは現在の手先位置及び速度、xPLim及びxMLimはそれぞれ正負方向の制限開始位置、xPTrm及びxMTrmはそれぞれ正負方向の限界位置である。vPLim及びvMLimはそれぞれ正負方向の制限開始速度、vPTrm及びvMTrmはそれぞれ正負方向の限界速度である。この例において、制限力FLnrは、手先の制限開始位置と現在位置との差に基づいて計算される第1の制限力FLnr_xと、制限開始速度と現在速度との差に基づいて計算される第2の制限力FLnr_vとの和である。
【0064】
本来、これらのパラメータを3次元作業座標系のX軸、Y軸及びZ軸の分だけ設定する必要があるが、正負方向の位置による制限力計算定数及び正負方向の速度による制限力計算定数は式(10)(11)(13)(14)により導出できるので、関節座標系の場合の設定と同様、制限開始位置xPLim及びxMLim、限界位置xPTrm及びxMTrm、制限開始速度vPLim及びvMLim、限界速度vPTrm及びvMTrmを教示装置から入力するのみですべての定数を決定することができ、作業座標系における可動域制限力を計算することができる。さらに、制限開始位置及び制限開始速度を、それぞれ限界位置及び限界速度から逆制限方向に一定量戻した(すなわち、一定量だけ絶対値の小さな)値となるよう、当該一定量を事前に設定しておくことにより、S42において操作者が教示装置3から設定する変数は、X軸、Y軸及びZ軸についての正負方向の限界位置及び限界速度、すなわち、xPTrm、xMTrm、vPTrm、vMTrmのみでよい
ことになる。
【0065】
作業座標系における可動域制限においては、図4(a)の逆計算処理部214が示すように、上述のようにして計算された制限力と手先力制限部213の出力との合計値を関節座標系の制限トルクに変換するために逆計算(214)を行う。作業座標系の手先力から関節座標系のトルクへの逆計算の方法としては、関節トルクと手先力の関係を規定するヤコビ逆行列を用いる方法などが一般的に知られている。
【0066】
なお、本実施例は、ロボットの手先の位置及び速度の両方に基づいて可動域制限力を計算してこれを反力として作用させるものであるが、このような構成に代えて、手先の位置及び加速度に基づいた可動域制限を行うことも可能である。この場合、図4(a)において、順運動学計算部、加速度を計算する手段、加算部及び加速度フィードバックゲイン要素からなる加速度フィードバックループが構成される。
【0067】
図2に示す本発明の実施例においては、関節座標系、作業座標系の場合とも、最後にS51においてロボットのアーム端を操作者が直接操作してロボットに位置教示を行う。この場合、ロボットは柔軟制御状態にあり、通常の状態では、操作者の及ぼす外力に倣って動作することが出来る。そして、関節座標系の場合にはいずれかの軸が所定の制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれを超えたときに、作業座標系の場合には手先が所定の制限開始位置又は制限開始速度の少なくともいずれかに達するかもしくはこれを超えたときに、コントローラ2は、既に述べた本発明の実施例の手法によって、可動域制限トルク又は可動域制限力を発生させる。このような特徴により、本発明によれば、操作者は、ロボット1が現在可動域限界に近づきつつあることを認識することができ、ロボットの機械損傷を回避することができる。軸や手先の位置だけでなく速度にも基づいて可動域制限トルクや可動域制限力の計算を行うことにより、柔軟制御中にロボットに対して急激に大きな外力が働いた場合に、ロボット各軸や手先の位置の急激な変化に適切に対応し得る可動域制限を行うことができる。
【0068】
直接教示は、ロボットの手先部等を直接操作して所望する位置に導き、位置登録するという過程で行われる。このような直接教示においては、操作者がロボットの動作位置に注視していなかったためにロボットが可動域限界に達してしまい、ロボットに機械損傷を与えたり、もしくは、ロボットを周辺装置と衝突させたりするという問題が起こり得る。本発明の実施例によれば、これらの問題を回避できる。すなわち、ロボットの動作領域を予め設定しておくことで、操作者の教示作業においてロボットが動作限界や周辺装置の付近に近付いた時に操作者に反力を提示することにより、上述のような機械損傷や衝突を防ぐことが出来るのである。
【0069】
また、予め複数の周辺機器の配置情報を基にロボットの柔軟制御動作時の可動領域を必要最小限に制限しておくことで、ロボットがある周辺機器から外力を受けて想定以上に倣いそうになった場合でも、ロボットと別の周辺機器との干渉を回避できる。
【0070】
また、本実施例では作業座標系の直交成分のみの説明であったが、回転成分でも同様の設定が可能であることは明白である。
【符号の説明】
【0071】
1 ロボット
2 コントローラ
3 教示装置
4 操作者
101a〜f ロボットの関節軸(6軸)
201a〜f 柔軟制御状態での可動域制限付き位置制御部(6軸)
202a 関節座標系における可動域制限トルク計算部
203a トルク制限部
204、204a 重力補償トルク計算部
205、205a 摩擦補償トルク計算部
206a 駆動モータ
207a 速度演算部
208a 加算部
209a 位置フィードバックゲイン要素
210a 加算部
211a 速度フィードバックゲイン要素
212 作業座標系における可動域制限力計算部
213 手先力制限部
214 逆計算処理部
215 順運動学計算部
216 加算部
217 位置フィードバックゲイン要素
218 加算部
219 速度フィードバックゲイン要素
220 速度演算部
221 順運動学計算部
222 加算部

【特許請求の範囲】
【請求項1】
少なくとも1つの関節を有するロボットの柔軟制御に使用する制御装置であって、各関節につき、
関節位置指令に対して、該関節の位置に基づいてそれぞれ位置フィードバック制御及び速度フィードバック制御を行う、位置フィードバック制御手段及び速度フィードバック制御手段と、
該関節に設定された関節座標系において、該関節につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と該関節の現在位置との関係、及び該関節につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と該関節の現在速度との関係に基づいて、制限トルクを計算する制限トルク計算手段であって、前記制限トルクは、前記現在位置が前記制限開始位置を越えて大きくなるにつれて又は前記現在速度が前記制限開始速度を超えて大きくなるにつれて大きくなる、制限トルク計算手段と
を備え、
前記速度フィードバック制御手段の出力に前記計算された制限トルクを加算して得られるトルクにより該関節の動作を制御する制御装置。
【請求項2】
前記制限トルクは、前記制限開始位置と前記現在位置との差に基づいて計算される第1の制限トルクと前記制限開始速度と前記現在速度との差に基づいて計算される第2の制限トルクとの和である請求項1に記載の制御装置。
【請求項3】
前記制限トルク(TLnk)は、以下の式
【数1】

により計算され、ここで、TLnk_θ及びTLnk_ωはそれぞれ前記第1の制限トルク及び前記第2の制限トルク、kPθ及びkMθはそれぞれ正負方向の位置に関する制限トルク計算定数、kPω及びkMωはそれぞれ正負方向の速度に関する制限トルク計算定数、θ及びωはそれぞれ現在位置及び現在速度、θPLim及びθMLimはそれぞれ正負方向の制限開始位置、θPTrm及びθMTrmはそれぞれ正負方向の限界位置、ωPLim及びωMLimはそれぞれ正負方向の制限開始速度、ωPTrm及びωMTrmはそれぞれ正負方向の限界速度である請求項2に記載の制御装置。
【請求項4】
少なくとも1つの関節を有するロボットの柔軟制御に使用する制御装置であって、
各関節に対する関節位置指令から作業座標系におけるロボットの手先位置指令を決定する順運動学計算部と、
前記手先位置指令に対して、各関節の位置に基づいてそれぞれ位置フィードバック制御及び速度フィードバック制御を行う、位置フィードバック制御手段及び速度フィードバック制御手段と、
作業座標系において、前記手先につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と前記手先の現在位置との関係、及び前記手先につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と前記手先の現在速度との関係に基づいて、制限力を計算する制限力計算手段であって、前記制限力は、前記現在位置が前記制限開始位置を越えて大きくなるにつれて又は前記現在速度が前記制限開始速度を超えて大きくなるにつれて大きくなる、制限力計算手段と、
前記速度フィードバック制御手段の出力に前記計算された制限力を加算して得られる力から各関節に要求されるトルクを計算する逆計算処理手段と
を備え、
前記計算されたトルクにより各関節の動作を制御する制御装置。
【請求項5】
前記制限力は、前記制限開始位置と前記現在位置との差に基づいて計算される第1の制限力と前記制限開始速度と前記現在速度との差に基づいて計算される第2の制限力との和である請求項4に記載の制御装置。
【請求項6】
前記制限力(FLnr)は、以下の式
【数2】

により計算され、ここで、FLnr_x及びFLnr_vはそれぞれ前記第1の制限力及び前記第2の制限力、kPx及びkMxはそれぞれ正負方向の位置に関する制限力計算定数、kPv及びkMvはそれぞれ正負方向の速度に関する制限力計算定数、x及びvはそれぞれ現在位置及び現在速度、xPLim及びxMLimはそれぞれ正負方向の制限開始位置、xPTrm及びxMTrmはそれぞれ正負方向の限界位置、vPLim及びvMLimはそれぞれ正負方向の制限開始速度、vPTrm及びvMTrmはそれぞれ正負方向の限界速度である請求項5に記載の制御装置。
【請求項7】
少なくとも1つの関節を有するロボットの柔軟制御に使用する制御方法であって、少なくとも1つの関節につき、
関節位置指令に対して、該関節の位置に基づいて位置フィードバック制御及び速度フィードバック制御を行うステップと、
該関節に設定された関節座標系において、該関節につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と該関節の現在位置との関係、及び該関節につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と該関節の現在速度との関係に基づいて、制限トルクを計算するステップであって、前記制限トルクは、前記現在位置が前記制限開始位置を越えて大きくなるにつれて又は前記現在速度が前記制限開始速度を超えて大きくなるにつれて大きくなる、制限トルクを計算するステップと、
前記速度フィードバック制御の出力に前記計算された制限トルクを加算して得られるト
ルクにより該関節の動作を制御するステップと
を備える制御方法。
【請求項8】
少なくとも1つの関節を有するロボットの柔軟制御に使用する制御方法であって、
順運動学計算により、各関節に対する関節位置指令から作業座標系におけるロボットの手先位置指令を決定するステップと、
前記手先位置指令に対して、各関節の位置に基づいて位置フィードバック制御及び速度フィードバック制御を行うステップと、
作業座標系において、前記手先につき予め設定された限界位置よりも絶対値が所定量だけ小さい制限開始位置と前記手先の現在位置との関係、及び前記手先につき予め設定された限界速度よりも絶対値が所定量だけ小さい制限開始速度と前記手先の現在速度との関係に基づいて、制限力を計算するステップであって、前記制限力は、前記現在位置が前記制限開始位置を越えて大きくなるにつれて又は前記現在速度が前記制限開始速度を超えて大きくなるにつれて大きくなる、制限力を計算するステップと、
逆計算により、前記速度フィードバック制御の出力に前記計算された制限力を加算して得られる力から各関節に要求されるトルクを計算するステップと、
前記計算されたトルクにより各関節の動作を制御するステップと
を備える制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−206886(P2011−206886A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−77368(P2010−77368)
【出願日】平成22年3月30日(2010.3.30)
【出願人】(000006622)株式会社安川電機 (2,482)
【Fターム(参考)】