(58)【調査した分野】(Int.Cl.,DB名)
前記ロボットコントローラは、少なくとも前記エンドエフェクタの慣性質量に関する情報を含むエンドエフェクタ情報を読み込むエンドエフェクタ情報読み込み部を有する請求項1〜5のいずれか1項に記載のロボットシステム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の通り、多関節ロボットのアーム先端に取り付けられたエンドエフェクタによる干渉力を効果的に低減しうる一般的に適用可能な制御はこれまで知られていない。そのため、エンドエフェクタとして、ロボットの可搬重量内の重さであっても、可動部の質量が大きい等、エンドエフェクタの動作時に生じる慣性力が大きいものを用いると、エンドエフェクタの動作時の干渉力が無視できないものとなり、振動が生じるなど、位置決めに時間を要したり、精度が低下する原因となる。
【0006】
本発明の解決しようとする課題は、多関節アームを有するロボットにおいて、エンドエフェクタによる干渉力を効果的に低減しうるロボットシステム及びロボット制御方法を提供することである。
【課題を解決するための手段】
【0007】
本発明の一側面に係るロボットシステムは、複数の駆動軸を備えた多関節アームを有するロボットと、前記アーム先端に取り付けられ、駆動軸であるエンドエフェクタ軸を備えたエンドエフェクタと、前記複数の駆動軸を制御するロボットコントローラとを有し、前記ロボットコントローラは、前記エンドエフェクタ軸の駆動により生じる慣性力を求める慣性力取得部と、前記慣性力より前記複数の駆動軸の各軸に作用する外乱トルクを求める外乱トルク取得部と、前記複数の駆動軸の各軸についての制御目標値から得られるトルク指令と前記外乱トルクとに基いて、前記複数の駆動軸を制御する駆動軸制御部と、を有する。
【0008】
また、本発明の一側面に係るロボットシステムでは、前記駆動軸制御部は、フィードフォワード制御により、前記外乱トルクに対する補償を行ってよい。
【0009】
また、本発明の一側面に係るロボットシステムでは、前記ロボットコントローラは、前記エンドエフェクタ軸を制御するエンドエフェクタ軸制御部を有してよい。
【0010】
また、本発明の一側面に係るロボットシステムでは、前記ロボットコントローラは、前記複数の駆動軸の駆動により前記エンドエフェクタに生じる慣性力である逆慣性力を求める逆慣性力取得部を有し、前記エンドエフェクタ軸制御部は、前記エンドエフェクタ軸についての目標力と前記逆慣性力とに基いて、前記エンドエフェクタ軸を制御してよい。
【0011】
また、本発明の一側面に係るロボットシステムでは、前記ロボットコントーラは、前記エンドエフェクタ軸を駆動し、前記エンドエフェクタの慣性質量を推定する慣性質量推定部を有してよい。
【0012】
また、本発明の一側面に係るロボットシステムでは、前記ロボットコントローラは、少なくとも前記エンドエフェクタの慣性質量に関する情報を含むエンドエフェクタ情報を読み込むエンドエフェクタ情報読み込み部を有してよい。
【0013】
また、本発明の一側面に係るロボットシステムでは、前記多関節アームは少なくとも6軸以上の前記駆動軸を有し、前記駆動軸制御部は、前記アームの基台側の少なくとも3軸について、ヤコビ転置行列を用いて前記慣性力より前記外乱トルクを求め、前記ロボットの先端側の少なくとも3軸について、幾何学的関係を用いて前記慣性力より前記外乱トルクを求めてよい。
【0014】
また、本発明の一側面に係るロボット制御方法は、複数の駆動軸を備えた多関節アームを有するロボットの前記アーム先端に取り付けられ、駆動軸であるエンドエフェクタ軸を備えたエンドエフェクタの前記エンドエフェクタ軸の駆動により生じる慣性力を求め、前記慣性力より前記複数の駆動軸の各軸に作用する外乱トルクを求め、前記複数の駆動軸の各軸についての制御目標値から得られるトルク指令と前記外乱トルクとに基いて、前記複数の駆動軸を制御する。
【発明を実施するための形態】
【0016】
図1は本発明の実施形態に係るロボットシステムを示す概略図である。ロボットシステムは、多関節のアーム10を備え、アームの先端にエンドエフェクタ11が取り付けられたロボット1と、ロボット1を制御するロボットコントローラ2を含む。
【0017】
ここで、ロボット1は、一般的な産業用ロボットでよく、本実施形態では6軸の垂直多関節型ロボットであるが、ロボット1の形式や軸数に限定はなく、5軸のものや、7軸以上のものであってもよく、また、水平多関節型等の他の形式のものであってもよい。この例では、アーム10に設けられている駆動軸を、基台側から順に、S軸、L軸、U軸、R軸、B軸及びT軸と呼び、それぞれの駆動軸の回転方向は
図1に示した通りである。
【0018】
また、本明細書では、アーム10の基台側からの3軸である、S軸、L軸及びU軸を総称して基本軸と呼び、アーム10の先端側からの3軸である、T軸、B軸及びR軸を総称して手首軸と呼ぶものとする。アーム10が7軸以上を有する場合には、冗長軸の配置により当該軸を基本軸に含めるか、手首軸に含めるかするとよい。いずれにせよ、基本軸はアーム10の基台側からの少なくとも3軸を含み、手首軸はアーム10の手首側からの少なくとも3軸を含む。
【0019】
エンドエフェクタ11は、駆動軸であるエンドエフェクタ軸を少なくとも1軸有し、このエンドエフェクタ軸が駆動されることにより、エンドエフェクタ11の動作がなされる。以降、単に駆動軸というときには、アーム10が備える各軸(S軸〜T軸)を指し、エンドエフェクタ11が有する軸(Z軸)はエンドエフェクタ軸と呼び両者を区別する。
【0020】
エンドエフェクタ11の用途や機能、型式に特に限定はないが、この例では、エンドエフェクタ11はスポット溶接ガンであり、エンドエフェクタ軸は図中Z軸として示されている。この例のエンドエフェクタ11は、Z軸を駆動することにより顎状の部材を開閉させ、顎状の部材の先端に互いに向き合うように設けられた溶接電極で対象部材を挟み込み、高電圧を印加することによりスポット溶接を行うものである。したがって、エンドエフェクタ11の可動部材(この場合は顎状の部材)はZ軸に沿って動き、かかる動作に伴って、Z軸方向の慣性力を発生する。エンドエフェクタ11自体はロボット1の可搬重量内の重さであるが、可動部材の質量が大きく、又サイズも大きいため、エンドエフェクタ11の動作により生じる慣性力はロボット1に対する干渉力として無視できない程度の大きさとなる。
【0021】
ロボットコントローラ2は、駆動軸及びエンドエフェクタ軸を制御する。駆動軸及びエンドエフェクタ軸の駆動源は特に限定されるものではないが、本実施形態ではいずれもサーボモータを用いている。各サーボモータは、ロボットコントローラ2から出力される電流によりその位置及び速度が所望のものとなるよう制御される。
【0022】
さらに、以降の説明で、ロボットの基台を原点とし、鉛直情報をZ方向にとる座標をロボット座標Orobot、アーム10先端に設けられ、エンドエフェクタ11が取り付けられるフランジの中心を原点とし、フランジ法線方向をZ方向にとる座標をフランジ座標Oflange(図示せず)、エンドエフェクタ11の作用基準点であるP点を原点とし、エンドエフェクタ軸の駆動方向をZ方向にとる座標をツール座標Otool(図示せず)とする。
【0023】
図2は、本実施形態に係るロボットシステムの機能ブロック図である。ロボットコントローラ2は、駆動軸制御部20及びエンドエフェクタ軸制御部21を有し、それぞれ制御目標値が入力されることで、駆動軸13(
図1のS軸〜T軸)及びエンドエフェクタ軸14(
図1のZ軸)に対し制御出力、ここでは各サーボモータに対する電流を出力し、駆動軸13及びエンドエフェクタ軸14を制御する。
【0024】
さらに、ロボットコントローラ2は、エンドエフェクタ11の動作によりアーム10に作用する干渉力を補償する干渉力補償のための構成と、アーム10の動作によりエンドエフェクタ11に作用する干渉力である、逆干渉力を補償する逆干渉力補償のための構成を有する。以降、エンドエフェクタ11の動作によりアーム10に生じる干渉力を単に干渉力と呼び、アーム10の動作によりエンドエフェクタ11に生じる干渉力を逆干渉力と呼ぶ。
【0025】
[干渉力補償のための構成]
慣性力取得部22は、エンドエフェクタ軸制御部21からエンドエフェクタ軸14の駆動情報、例えば、現在の加速度を取得し、既知のエンドエフェクタ11の慣性質量から、生じる慣性力を演算し、取得する。この慣性力は、アーム10の各駆動軸13に対し、干渉力として作用する。
【0026】
さらに、外乱トルク取得部23は、慣性力から、各駆動軸13に生じる外乱トルクを演算し、取得する。得られた外乱トルクは、駆動軸制御部20における制御に用いられ、補償される。より具体的には、駆動軸制御部20において、制御目標値から得られる各駆動軸13に対するトルク指令に対し、外乱トルクが打ち消されるように制御する。
【0027】
サーボモータの一般的な位置・速度制御では、
図3に示すような制御ループが用いられる。すなわち、制御目標である位置目標uと、電動機の現在位置Xとの差eから速度指令v、加速度指令aを順に求め、電動機に対するトルク指令Tに変換し、かかるトルク指令Tに従った電流出力が電動機に対しなされる。電動機の現在位置X及び演算により推定された電動機速度v
eは、図のようにフィードバックされる。
【0028】
本実施形態では、このような一般的な制御ループに加え、さらに、トルク指令Tに対し、外乱トルク取得部23により取得された外乱トルクT
tを逆符号で加算する。これにより、エンドエフェクタ11の動作によりアーム10に生じる干渉力は打ち消される。したがって、外乱トルクT
tに関して言えば、これは電動機に対し、フィードフォワード制御がなされていることになる。あるいは、
図2の慣性力取得部22及び外乱トルク取得部23は、駆動軸制御部20に対し、一種の外乱オブザーバとして機能しているともいえる。
【0029】
この構成により、エンドエフェクタ11による干渉力は効果的に低減され、エンドエフェクタ11の動作に起因する振動が抑制されるから、位置決め精度の向上や高速化がなされる。また、干渉力の低減をフィードフォワード制御により行うため、これをフィードバック制御により行う場合に比して即応性に優れ、速やかに振動抑制がなされる。
【0030】
[逆干渉力補償のための構成]
逆慣性力取得部24は、駆動軸制御部20から各駆動軸13の駆動情報、例えば、現在の各駆動軸に生じるトルクを取得し、既知のエンドエフェクタ11の慣性質量から、エンドエフェクタ11に生じる逆慣性力を演算し、取得する。この演算は、先ほどの外乱トルクT
tを求める演算に対し、各駆動軸に生じるトルクTを用いて逆演算をするものである。この逆慣性力は、エンドエフェクタ11のエンドエフェクタ軸14に対し、逆干渉力として作用する。
【0031】
得られた逆慣性力は、エンドエフェクタ軸制御部21における制御に用いられ、補償される。より具体的には、エンドエフェクタ軸制御部21において、制御目標値から得られる目標力に対し、逆慣性力が打ち消されるように制御する。かかる制御を行うには、
図3において外乱トルクT
tを逆慣性力によりエンドエフェクタ軸14に生じるトルクとして読み替えられれば良く、すなわち、逆慣性力に関して、エンドエフェクタ軸14の電動機に対し、フィードフォワード制御がなされていることになる。また、逆慣性力取得部24は、エンドエフェクタ軸制御部21に対し、一種の外乱オブザーバとして機能することになる。
【0032】
この構成により、アーム10の動作による逆干渉力は効果的に低減され、エンドエフェクタ11に生じる振動が抑制されるから、やはり位置決め精度の向上や高速化がなされる。また、逆干渉力の低減をフィードフォワード制御により行うため、これをフィードバック制御により行う場合に比して即応性に優れ、速やかに振動抑制がなされる。
【0033】
[慣性質量を取得するための構成]
以上の制御を行うためには、エンドエフェクタ11のエンドエフェクタ軸に関する慣性質量が既知である必要がある。そのため、慣性質量推定部25は、慣性質量が既知でない場合、例えば、後述するエンドエフェクタ情報が利用できない場合等に、エンドエフェクタ軸制御部21に指令して、エンドエフェクタ軸14に対し既知の動作をさせる。この時生じた干渉力により、各駆動軸13にはかかる干渉力を打ち消すための電流が発生するが、かかる電流値(又は指令トルク)の値から、慣性質量を演算し推定する。
【0034】
この演算は、各駆動軸13に生じた電流値(又は指令トルク)より推定される外乱トルクより、前述した逆干渉力補償のための演算によってエンドエフェクタ11において生じた慣性力を求め、エンドエフェクタ軸14に対し指令した加速度で除算すればよい。これにより、あらかじめ慣性質量を測定することなく、任意のエンドエフェクタ11についての干渉力補償及び逆干渉力補償が可能である。
【0035】
あるいは、慣性質量の値は、エンドエフェクタ11に固有のものであることから、エンドエフェクタ11毎にあらかじめ測定し、エンドエフェクタ情報として用意しておいてもよい。エンドエフェクタ情報読み込み部26は、かかるエンドエフェクタ情報が利用可能な場合に、エンドエフェクタ情報を例えば外部の機器から読み込み、慣性質量を得るものである。なお、エンドエフェクタ情報には、慣性質量以外の情報、例えば、フランジ12に対するエンドエフェクタ11の取り付け角度に関する情報等を含んでいてよい。これにより、エンドエフェクタ11を異なるものに交換した場合などにも適切な慣性質量を用いて干渉力補償及び逆干渉力補償が可能である。
【0036】
なお、以上の説明では、ロボットコントローラ2がエンドエフェクタ軸制御部21を有し、エンドエフェクタ軸14をも制御するものとして説明した。かかる構成では、ロボットコントローラ2が直接エンドエフェクタ軸14の駆動情報を得ることができるので、上述した干渉力補償や逆干渉力補償が容易に行える利点がある。しかしながらこれに限定されるものでなく、エンドエフェクタ軸制御部21をロボットコントローラ2に対し別機器として用意し、両者が互いに通信することにより同期制御するものとしてもよいが、この場合には、エンドエフェクタ軸制御部21とロボットコントーラ2との間で必要な情報を送受信できるよう通信回線を用意するとともに、通信によるラグの影響に注意を払う必要がある。
【0037】
また、上述の例では、慣性力を、エンドエフェクタ軸14の駆動情報及び既知のエンドエフェクタ11の慣性質量から演算することによって適時求めているが、これをあらかじめ既知のものとして与えておき、エンドエフェクタ軸14の駆動の際に、所与の慣性力を参照することによって求めてもよい。これは、エンドエフェクタ軸14の動作があらかじめ決められたものに限定されており、生じる慣性力が限られている場合などに有効である。この時、慣性力取得部22は、エンドエフェクタ軸14の動作に応じた慣性力を参照するとよい。慣性力を既知のものとして与える場合には、想定されるエンドエフェクタ11の動作毎に、慣性力をあらかじめ測定しておいてもよいし、上述したように慣性力取得部22が慣性力を演算により求めた後、その結果を記憶しておき、同条件によるエンドエフェクタ軸14の動作の際に、記憶しておいた慣性力を参照するようにすることも可能である。既知のものとして与えられる慣性力は、例えば、上述したエンドエフェクタ情報に含まれており、エンドエフェクタ情報読み込み部26により読み込まれてよい。
【0038】
[干渉力補償の演算]
つづいて、干渉力補償をする際の具体的な演算手法を説明する。
【0039】
本実施形態では、外乱トルク取得部23による演算を、基本軸についての演算と、手首軸についての演算とに分けて行い、基本軸については、ヤコビ転置行列を用いて慣性力より各軸に作用する外乱トルクを求めており、手首軸については、幾何学的関係を用いて慣性力より各軸に作用する外乱トルクを求めている。
【0040】
一般にヤコビ転置行列を用いた演算は、その演算量が多く、また、ヤコビ転置行列の次数が大きくなると演算量は急激に増大する。そこで、一部の軸について演算量の少ない幾何学的関係による演算を行うことで、ヤコビ転置行列による演算を必要とする軸数を減らし、又その次数を減じることができるので、演算負荷を小さくできる。
【0041】
[基本軸についての演算]
まず、フランジ12に対するエンドエフェクタ11の取り付け角度を、フランジ座標OflangeのX軸、Y軸、Z軸に対する回転角度Rx、Ry、Rzとした際の、フランジ座標Oflangeからツール座標Otoolへの回転行列rot
flangeは次の通りである。
【0043】
ここで、ツール座標Otoolはフランジ座標Oflangeに対し、Z軸、Y軸、X軸の順番で回転させるものとする。
【0044】
また、ツール座標Otoolからフランジ座標Oflangeへの回転行列rot
toolは、次の通りである。
【0046】
さらに、ロボット座標Orobot原点からみたP点の姿勢を示す行列をInrepos、フランジ12の姿勢を示す行列をrotとすると、ロボット座標Orobotからツール座標Otoolへの回転行列rot
robotは、次の通りとなる。
【0048】
この回転行列rot
robotを用い、ツール座標OtoolのZ方向に生じる慣性力をFz
toolとすると、ロボット座標Orobotにおいて生じる力は、次の通りである。
【0050】
さらに、ヤコビ転置行列J
Tを用いて、ロボット座標Orobotの外力をS軸、L軸、U軸に対する外乱トルクτ
S、τ
L、τ
Uに変換する。
【0052】
以上の演算により、慣性力Fz_toolにより生じるS軸、L軸、U軸に対する外乱トルクτ
S、τ
L、τ
Uがそれぞれ求められる。
【0053】
[手首軸についての演算]
手首軸については、幾何学的関係に基いて、T軸、B軸、R軸にそれぞれ作用する外乱トルクτ
T、τ
B、τ
Rを求める。
【0054】
このとき、ツール座標OtoolのZ方向に生じる慣性力Fz
toolにより、フランジ座標Oflangeにおいて生じる力は、次の通りである。
【0056】
また、フランジ座標Oflangeにおいて、P点の座標を(Lx,Ly,Lz)とおく。
【0057】
T軸について、
図4はフランジをT軸の軸方向から見た模式図である。ここで、T軸の回転中心は、フランジの中心に一致し、フランジ座標Oflangeの原点である。図より明らかなように、T軸に作用する外乱トルクτ
Tは、次の通りである。
【0059】
B軸について、
図5Aは、フランジをT軸の軸方向から見た模式図であり、θ
TはT軸の回転角である。また、
図5Bは、フランジをB軸の軸方向から見た模式図であり、d6は、B軸の回転中心からフランジ中心までの距離である。
【0060】
図より明らかなように、B軸に作用する外乱トルクτ
Bは、次の通りである。
【0062】
R軸について、
図6Aは、フランジをT軸の軸方向から見た模式図であり、θ
TはT軸の回転角である。また、
図6Bは、フランジをB軸の軸方向から見た模式図であり、θ
BはB軸の回転角である。この時、
図6Bの紙面垂直方向に作用する力は、
図6Aに紙面水平方向の力として現れるから、図より、R軸に作用する外乱トルクτ
Rは、次の通りである。
【0064】
このようにして、手首軸に作用する外乱トルクτ
T、τ
B、τ
Rは、幾何学的関係を用いて簡単に求めることができる。
【0065】
[逆干渉力補償の演算]
つづいて、逆干渉力補償をする際の具体的な演算手法を説明する。
【0066】
この演算においては、駆動軸13により発生するトルクを、外乱トルクとおいて、前述の干渉力補償において行ったものと逆の演算をすればよいが、ここでは、エンドエフェクタ11に比較的近い位置にある手首軸の駆動による逆干渉力による影響は、相対的に遠い位置にある基本軸の駆動による逆干渉力による影響に比べ小さいため、基本軸の駆動による逆干渉力の影響のみを考慮するものとする。もちろん、手首軸の駆動による逆干渉力の影響をも考慮するものとしてもよい。
【0067】
ここで、基本軸S軸、L軸、U軸において生じるトルクをそれぞれτ
S、τ
L、τ
Uとすると、これらトルクにより生じるロボット座標Orobotにおける逆慣性力は、ヤコビ転置行列J
Tの逆行列(J
T)
−1を用いて、次の通りとなる。
【0069】
これにさらに、前出の回転行列rot
robotの転置行列rot
robotTを掛けることにより、ツール座標Otoolにおけるz軸方向の逆慣性力Fz
toolを次のように求めることができる。
【0071】
[ロボットコントローラの動作]
ロボットコントローラの動作を、
図7に示すフロー図に従って説明する。
【0072】
まず、ステップST1において、エンドエフェクタ11の慣性質量が既知であるか否かを判定する。既知である(肯定)場合にはステップST5へと進み、そうでなければ(否定)、ステップST2へと進み、エンドエフェクタ情報が利用可能であるか否かを判定する。
【0073】
ステップST2で肯定、すなわち、エンドエフェクタ情報が利用可能である場合には、ステップST3へと進み、エンドエフェクタ情報読込部26によりエンドエフェクタ情報を読み込み、エンドエフェクタ情報に含まれる慣性質量を取得する。ステップST2で否定、すなわち、エンドエフェクタ情報が利用できない場合には、ステップST4へと進み、慣性質量推定部25により、エンドエフェクタ軸14を駆動することによって慣性質量を推定する。いずれの場合でも、慣性質量を取得後、ステップST5へと進む。
【0074】
ステップST5以降は、ロボット1の通常運転時の制御となるから、一般的なモーションプログラムや、上位コントローラからの指令に基いて、ロボット1のアーム10及びエンドエフェクタ11が所望の動作をするよう制御がなされる。
図7では、特に、これら通常の制御と平行してなされる干渉力及び、逆干渉力補償に関する動作が示されている。
【0075】
ステップST5で、干渉力補償が有効であるか否かを判定する。本実施形態に係るロボットシステムでは、ユーザの指定等により、干渉力補償及び逆干渉力補償の有無を切り替えることができるものとし、ステップST5では、干渉力補償の有無を切り替えるための判断をしている。
【0076】
ステップST5で肯定、すなわち、干渉力補償が有効である場合には、ステップST6へ進み、慣性力取得部22により慣性力を取得する。さらにステップST7へ進み、外乱トルク取得部23により、慣性力より各駆動軸13に対する外乱トルクを取得する。そして、ステップST8へ進み、得られた外乱トルクをトルク指令に対する修正値として駆動軸13にフィードフォワード制御を行い、干渉力の補償を行う。
【0077】
ステップST5で否定、すなわち、干渉力補償が無効である場合及び、ステップST8の終了後は、ステップST9へと進み、逆干渉力補償が有効であるか否かを判定する。ステップST9では、逆干渉力補償の有無を切り替えるための判断をしていることになる。
【0078】
ステップST9で肯定、すなわち、逆干渉力補償が有効である場合には、ステップST10へと進み、逆慣性力取得部24により逆慣性力を取得する。さらにステップST11に進み、得られた逆慣性力を駆動力指令に対する修正値とし、或いは逆慣性力をトルクに変換した上でトルク指令に対する修正値としてエンドエフェクタ軸14にフィードフォワード制御を行い、逆干渉力の補償を行う。
【0079】
一連の動作の終了後、すなわち、ステップST9で否定の場合及び、ステップST11の終了後は、ステップST5へと戻り、以降繰り返す。これにより、本願発明では、ロボットシステム1の動作に応じて、時々刻々と変化する干渉力及び逆干渉力がリアルタイムに取得され補償される。そのため、エンドエフェクタ11において生じる慣性力や逆慣性力をあらかじめ測定しておく必要が無く、ロボットシステム1の動作を新規に作成したり変更したりした場合にも、直ちに干渉力及び逆干渉力に対する補償を行うことができ、位置決めの精度を確保するとともに、動作を高速化することができる。
【0080】
以上、本発明に係る実施形態について説明したが、この実施形態に示した具体的な構成は一例として示したものであり、本発明の技術的範囲をこれに限定することは意図されていない。当業者は、これら開示された実施形態を適宜変形してもよく、本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。