(57)【要約】  ロボット制御装置は、メイン制御部と、位置指令θｃをメイン制御部から受け取るサーボ制御部と、サーボモータに連結された減速機の撓みを補正する撓み補正ブロック（２４）とを備えている。撓み補正ブロック（２４）は、位置指令θｃに基づいて第１位置指令補正値θｓｇｃを求める第１位置補正値演算手段（６３）と、干渉トルクτａに基づいて第２位置指令補正値θｓｋｃを求める第２位置指令補正値演算手段（６４）と、を有している。サーボ制御部は、第１位置指令補正値θｓｇｃと第２位置指令補正値θｓｋｃとを位置指令θｃに加算した新たな位置指令に基づきサーボモータを駆動する。
2019012942.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータに連結された減速機を介して駆動される関節軸を有するロボットアームの運動制御を行うロボット制御装置であって、
位置指令を送信するメイン制御部と、
サーボ制御部と、
前記減速機の撓みによる前記ロボットアームの位置ずれを補正するための撓み補正手段と、を備え、
前記撓み補正手段は、
前記減速機の撓みを発生させる外力トルクのうち重力トルクを前記位置指令に基づいて演算し、前記重力トルクに基づいて第１位置指令補正値を求める第１位置指令補正値演算手段と、
前記位置指令と前記重力トルクとに基づいて前記外力トルクのうち前記関節軸が受ける干渉によって発生する干渉トルクを演算し、前記干渉トルクに基づいて第２位置指令補正値を求める第２位置指令補正値演算手段と、を有し、
前記サーボ制御部は、前記第１位置指令補正値と前記第２位置指令補正値とを前記位置指令に加算して得られる新たな位置指令に基づいて前記サーボモータを駆動することを特徴とするロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置において、
前記第２位置指令補正値は、前記干渉トルクに基づいて得られた撓み補正値の振幅及び位相がそれぞれ補償された値であることを特徴とするロボット制御装置。
【請求項３】
サーボモータに連結された減速機を介して駆動される関節軸を有するロボットアームの運動制御を行うロボット制御装置であって、
位置指令を送信するメイン制御部と、
サーボ制御部と、
前記減速機の撓みによる前記ロボットアームの位置ずれを補正するための撓み補正手段を備え、
前記撓み補正手段は、
前記位置指令に基づいて前記ロボットアームの撓みを発生させる外力トルクのうち重力トルクを演算し、前記重力トルクに基づいて第１位置指令補正値を求める第１位置指令補正値演算手段と、
前記位置指令と前記重力トルクに基づいて前記外力トルクのうち前記関節軸が受ける干渉によって発生する干渉トルクを演算し、前記干渉トルクに基づいて電流補償値を求める電流補償値演算手段と、を有し、
前記サーボ制御部は、前記第１位置指令補正値を前記位置指令に加算して得られる新たな位置指令と、前記新たな位置指令に基づいて生成されたモータ電流指令に前記電流補償値を加算して得られる新たなモータ電流指令とに基づいて前記サーボモータを駆動することを特徴とするロボット制御装置。
【請求項４】
請求項３に記載のロボット制御装置において、
前記電流補償値は、前記干渉トルクに基づいて得られた撓み補正値の振幅及び位相がそれぞれ補償された値に所定の係数を乗じた値であることを特徴とするロボット制御装置。
【請求項５】
請求項１ないし４のいずれか１項に記載のロボット制御装置において、
前記サーボモータは、ｎ（ｎは２以上の整数）個のサーボモータのうちの一つであり、前記減速機は、ｎ個のサーボモータにそれぞれ連結されたｎ個の減速機のうちの一つであり、前記関節軸は、ｎ個の減速機を介してそれぞれ駆動されるｎ個の関節軸のうちの一つであり、前記サーボ制御部は、ｎ個のサーボモータをそれぞれ駆動するｎ個のサーボ制御部のうちの一つであり、
前記位置指令は、前記ｎ個の関節軸のそれぞれの位置を指定するｎ個の位置指令のうちの一つであり、
前記撓み補正手段は、前記ｎ個のサーボ制御部にそれぞれ対応するｎ個の撓み補正手段のうちの一つであり、前記位置指令に加えて、前記ｎ個の位置指令のうちの残りのｎ−１個の位置指令に基づいて、撓みによる前記ロボットアームの位置ずれを補正することを特徴とするロボット制御装置。
【請求項６】
請求項１ないし５のいずれか１項に記載のロボット制御装置において、
前記外力トルク及び前記重力トルクはそれぞれ動力学演算によって得られ、前記干渉トルクは、前記外力トルクから前記重力トルクを減算して得られることを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はロボット制御装置に関し、特に、減速機の撓みによるロボットアームの位置ずれ等を補正するロボットの制御に関する。
【背景技術】
【０００２】
近年、溶接や切断等の加工において、タクト短縮や仕上げの精度の観点から、レーザ加工を行う需要が高まってきている。この場合、レーザ加工の高速性、高精度を発揮させるために、多関節ロボットのロボットアームの先端にレーザ出力装置を装着して加工を行うことが多い。【０００３】
通常の多関節ロボットは、サーボモータを駆動して関節軸を回転させることで、ロボットアームを動作させている。サーボモータの駆動力は、サーボモータに連結された減速機を介して関節軸に伝達される。このような多関節ロボットでは、サーボモータに指令したロボットアーム先端位置と、実際のロボットアーム先端位置とが減速機のバネ成分によってずれてしまう、いわゆる撓みという現象が発生していた。たとえば、ロボットアームが重力による力（以下、重力トルクという）を受けている場合や、ロボットアームが有する一の関節軸が、他の関節軸から干渉による力（以下、干渉トルクという）を受けている場合に撓みは発生する。【０００４】
そこで、撓み量に基づく補正値を演算により求め、位置指令に補正値を加算するという撓み補正が提案されている（例えば、特許文献１参照）。具体的には、各関節軸の減速機にかかる外力トルクを演算し、減速機のバネ定数で除算して撓み量を求める。この撓み量は、撓みによって生じるロボットアームの先端位置のずれ量、あるいは関節軸の角度のずれ量に相当する。撓み量に基づく補正値は位置指令に逆向きに加算される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３４９３７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
多関節ロボットにおいて、減速機に発生する撓みの挙動は、重力トルクに起因する成分と干渉トルクに起因する成分とでそれぞれ異なる。したがって、上記の従来技術のように重力トルクと干渉トルクが合算された外力トルクから直接に補正を行った場合、撓み補正が正しく行われないおそれがある。【０００７】
本開示はかかる点に鑑みてなされたもので、その目的は、減速機の撓みの影響を低減し、精度良くロボットアームの位置ずれを補正可能なロボット制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本開示の一態様に係るロボット制御装置は、各関節軸に連結された減速機にかかる重力トルクと干渉トルクとを個別に求める。得られた重力トルクと干渉トルクとにそれぞれ基づいて撓み補正値が求められる。これらの値を用いてモータに与えられる位置指令が補正される。【０００９】
具体的には、本開示の一態様に係るロボット制御装置は、サーボモータに連結された減速機を介して駆動される関節軸を有するロボットアームの運動制御を行うロボット制御装置であって、位置指令を送信するメイン制御部と、サーボ制御部と、減速機の撓みによるロボットアームの位置ずれを補正するための撓み補正手段と、を備え、撓み補正手段は、減速機の撓みを発生させる外力トルクのうち重力トルクを位置指令に基づいて演算し、重力トルクに基づいて第１位置指令補正値を求める第１位置指令補正値演算手段と、位置指令と重力トルクとに基づいて外力トルクのうち関節軸が受ける干渉によって発生する干渉トルクを演算し、干渉トルクに基づいて第２位置指令補正値を求める第２位置指令補正値演算手段と、を有し、サーボ制御部は、第１位置指令補正値と第２位置指令補正値とを位置指令に加算して得られる新たな位置指令に基づいてサーボモータを駆動することを特徴とする。【００１０】
この構成によれば、撓みに与える重力トルクの影響と干渉トルクの影響とを分離し、それぞれに対して位置指令補正値を求めることができるため、ロボットアームの位置ずれを精度良く補正することができる。【００１１】
第２位置指令補正値は、干渉トルクに基づいて得られた撓み補正値の振幅及び位相がそれぞれ補償された値であるのが好ましい。【００１２】
この構成によれば、干渉トルクによる撓みの影響を確実に補正することができる。【００１３】
本開示の別の態様に係るロボット制御装置は、サーボモータに連結された減速機を介して駆動される関節軸を有するロボットアームの運動制御を行うロボット制御装置であって、位置指令を送信するメイン制御部と、サーボ制御部と、減速機の撓みによるロボットアームの位置ずれを補正するための撓み補正手段を備え、撓み補正手段は、位置指令に基づいてロボットアームの撓みを発生させる外力トルクのうち重力トルクを演算し、重力トルクに基づいて第１位置指令補正値を求める第１位置指令補正値演算手段と、位置指令と重力トルクに基づいて外力トルクのうち関節軸が受ける干渉によって発生する干渉トルクを演算し、干渉トルクに基づいて電流補償値を求める電流補償値演算手段と、サーボ制御部は、第１位置指令補正値を位置指令に加算して得られる新たな位置指令と、を有し、新たな位置指令に基づいて生成されたモータ電流指令に電流補償値を加算して得られる新たなモータ電流指令とに基づいてサーボモータを駆動することを特徴とする。【００１４】
この構成によれば、撓みに与える重力トルクの影響と干渉トルクの影響とを分離し、特に干渉トルクに関してはモータ電流に対する補償値を求めて撓み補正を行うことができる。このことにより、ロボットアームの位置ずれを応答性良く補正することができる。【００１５】
電流補償値は、干渉トルクに基づいて得られた撓み補正値の振幅及び位相がそれぞれ補償された値に所定の係数を乗じた値であるのが好ましい。【００１６】
この構成によれば、干渉トルクによる撓みの影響を確実に補正することができる。【００１７】
サーボモータは、ｎ（ｎは２以上の整数）個のサーボモータのうちの一つであり、減速機は、ｎ個のサーボモータにそれぞれ連結されたｎ個の減速機のうちの一つであり、関節軸は、ｎ個の減速機を介してそれぞれ駆動されるｎ個の関節軸のうちの一つであり、サーボ制御部は、ｎ個のサーボモータをそれぞれ駆動するｎ個のサーボ制御部のうちの一つであり、位置指令は、ｎ個の関節軸のそれぞれの位置を指定するｎ個の位置指令のうちの一つであり、撓み補正手段は、ｎ個のサーボ制御部にそれぞれ対応するｎ個の撓み補正手段のうちの一つであり、位置指令に加えて、ｎ個の位置指令のうちの残りのｎ−１個の位置指令に基づいて、撓みによるロボットアームの位置ずれを補正するように構成されているのが好ましい。【００１８】
この構成によれば、各関節軸に連結されたサーボモータの位置指令を用いて撓み補正を行うため、トルクセンサ等の専用部品を設けずに済み、コストを低減できる。【００１９】
外力トルク及び重力トルクはそれぞれ動力学演算によって得られ、干渉トルクは、外力トルクから重力トルクを減算して得られるのが好ましい。【００２０】
この構成によれば、重力トルクと干渉トルクとを簡便に分離することができ、撓みによるロボットアームの位置ずれを補正することができる。
【発明の効果】
【００２１】
以上説明したように、本開示によれば、重力トルクに起因する撓みと他軸からの干渉トルクに起因する撓みを分離して、精度良くロボットアームの位置ずれを補正できる。
【図面の簡単な説明】
【００２２】
【図１】図１は、垂直多関節６軸ロボットの構成を示す図である。
【図２Ａ】図２Ａは、主軸の動作周波数に対する伝達関数の振幅の周波数応答特性を示す図である。
【図２Ｂ】図２Ｂは、主軸の動作周波数に対する伝達関数の位相の周波数応答特性を示す図である。
【図２Ｃ】図２Ｃは、主軸に対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図３】図３は、垂直多関節６軸ロボットの先端に可動軸を追加した垂直多関節７軸ロボットの構成を示す図である。
【図４】図４は、図３に示す垂直多関節７軸ロボットのロボットアーム先端の軌跡の時間変化を示す図である。
【図５Ａ】図５Ａは、ロボットアーム先端の動作周波数に対する伝達関数の振幅の周波数応答特性を示す図である。
【図５Ｂ】図５Ｂは、ロボットアーム先端の動作周波数に対する伝達関数の位相の周波数応答特性を示す図である。
【図５Ｃ】図５Ｃは、ロボットアーム先端に対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図６】図６は、減速機に撓みが生じた場合の垂直多関節７軸ロボットのロボットアーム先端の軌跡の時間変化を示す図である。
【図７】図７は、外力トルクによって発生するロボットアーム先端の位置ずれを説明する模式図である。
【図８Ａ】図８Ａは、減速機に撓みが生じた場合の主軸の動作周波数に対する伝達関数の振幅の周波数応答特性を示す図である。
【図８Ｂ】図８Ｂは、減速機に撓みが生じた場合の主軸の動作周波数に対する伝達関数の位相の周波数応答特性を示す図である。
【図８Ｃ】図８Ｃは、主軸に対し、位置指令θｃとして０．５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図８Ｄ】図８Ｄは、主軸に対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図９】図９は、図３に示す垂直多関節７軸ロボットの位置制御に関する機能ブロック図である。
【図１０】図１０は、ロボットメカにおける減速機の撓みを説明する図である。
【図１１】図１１は、図１０に示す負荷のブロック線図である。
【図１２】図１２は、比較のための第１のサーボ制御部のブロック線図である。
【図１３】図１３は、図１２に示す撓み補正ブロックのブロック線図である。
【図１４】図１４は、本開示の実施形態１に係る第１のサーボ制御部のブロック線図である。
【図１５】図１５は、図１４に示す撓み補正ブロックのブロック線図である。
【図１６Ａ】図１６Ａは、実施形態１に係る主軸の動作周波数に対する伝達関数の振幅の周波数応答特性を示す図である。
【図１６Ｂ】図１６Ｂは、実施形態１に係る主軸の動作周波数に対する伝達関数の位相の周波数応答特性を示す図である。
【図１６Ｃ】図１６Ｃは、主軸に対し、位置指令θｃとして０．５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図１６Ｄ】図１６Ｄは、主軸に対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合の位置指令θｃと実位置θＬの時間波形を示す図である。
【図１７】図１７は、本開示の実施形態２に係る第１のサーボ制御部のブロック線図である。
【図１８】図１８は、図１７に示す撓み補正ブロックのブロック線図である。
【発明を実施するための形態】
【００２３】
以下、本開示の実施形態を図面に基づいて詳細に説明する。以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本開示、その適用物或いはその用途を制限することを意図するものでは全くない。
【００２４】
（本開示の基礎となった知見）
上述のように、減速機のバネ成分に起因してロボットアームに撓みが生じる。撓みを補正するにあたって、減速機に加わる外力トルクを考慮することが好ましい。外力トルクは、重力によるトルクと他の関節軸から受ける干渉トルクとを含む。本願発明者等は、重力トルクと干渉トルクとで、撓み補正後の位置指令に与える影響、具体的には応答周波数が異なることを見いだした。以下、垂直多関節ロボットの動作を例にとって説明する。
【００２５】
［垂直多関節ロボットの構成及び動作］
図１は、レーザ溶接や切断で用いられる従来の垂直多関節ロボットの構成を示す。この垂直多関節６軸ロボット１は、ロボットアーム２と関節軸Ｊ１〜Ｊ６とを有している。ロボットアーム２は複数の部分に分かれており、各部分の連結部に関節軸Ｊ１〜Ｊ６をそれぞれ備えている。また、関節軸Ｊ１〜Ｊ６はそれぞれ減速機（図示せず）を介してサーボモータ（図示せず）を連結している。ロボット制御装置２０は、位置指令θｃ（図１０参照）により、各サーボモータを駆動して関節軸Ｊ１〜Ｊ６をそれぞれ所望の量だけ回転させてロボットアーム２の動作及び姿勢を制御する。ロボットアーム２の先端にはレーザ出力装置３が装着されている。レーザ出力装置３にはレーザ光４を発生させるレーザ光源（図示せず）と、レーザ光４を導波する光ファイバ（図示せず）とが接続されている。
【００２６】
以降では、垂直多関節６軸ロボット１が、全体の姿勢を決める主軸３軸Ｊ１〜Ｊ３と先端の方向を決める手首３軸Ｊ４〜Ｊ６の合計６つの関節軸を有する構成であるとして、その動作を説明する。なお、図１に示すＸ，Ｙ，Ｚ方向を垂直多関節６軸ロボット１の位置や移動を説明するために用いることがある。
【００２７】
レーザ出力装置３からレーザ光４を照射してワーク５を切断する作業を考える。レーザ出力装置３は例えば、５ｋｇ程度の質量である。レーザ光４の照射位置及び方向を定めると６軸を有する垂直多関節６軸ロボット１ではロボットアーム２の姿勢、つまり、各関節軸の角度は一意に決まる。このように、関節軸の制御冗長性はゼロなので、円軌跡で切断を行うと全関節軸が動作することになる。
【００２８】
例えば、直径１０ｍｍの円を１０ｍ／分で切断する作業を仮定すると、動作時間は約０．２秒で動作周波数は約５Ｈｚとなる。各関節軸は動作周波数に対応した正弦波状の位置指令θｃを受け取り動作する。ここで位置指令θｃに対して実際の各関節軸が応答動作できる周波数を位置応答周波数と定義し、実際の各関節軸の位置（以下、実位置という）をθＬとする。なお、位置指令θｃは各関節軸の回転角度量を指示する角度指令を示し、実位置θＬは、実際に各関節軸が回転した回転角度量を示す。位置応答周波数は、垂直多関節６軸ロボット１を構成する各関節軸の固有振動周波数や、各関節軸を駆動する制御装置（図９参照）の特性で決まる。位置指令θｃを受けて各関節軸が実位置θＬに到達するまでの伝達関数ＷｃＬを以下の（式１）で定義する。
【００２９】
ＷｃＬ  ＝  θＬ／θｃ  ・・・（式１）
なお、以降の説明では、位置応答周波数は、伝達関数ＷｃＬの振幅が半分（−６ｄＢ）となる周波数、あるいは伝達関数ＷｃＬの位相が９０°遅れた周波数のいずれか低い方とする。
【００３０】
主軸３軸Ｊ１〜Ｊ３は物理的に大きく、重いので位置応答周波数を高めることは難しい。例えばアーム長２ｍ、可搬質量１０ｋｇ程度のロボットにおいて、位置応答周波数はアーム伸張姿勢（イナーシャが最大）で最小となり、５Ｈｚ程度となる。
【００３１】
図２Ａ，２Ｂは、主軸の動作周波数に対する伝達関数の応答特性を示し、図２Ａは上記の伝達関数ＷｃＬの振幅の周波数応答特性を、図２Ｂは伝達関数ＷｃＬの位相の周波数応答特性をそれぞれ示している。また、図２Ｃは、図２Ａ，２Ｂに示す周波数特性を有する主軸に対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合のθｃとθＬの時間波形を示す。
【００３２】
図２Ａ，２Ｂに示すように、位置応答周波数が５Ｈｚの場合、振幅が半分（−６ｄＢ）になり、位相が９０°遅れている。また、図２Ｃに示すように位置指令θｃに対し実位置θＬの振幅が半分になり、位相が９０°遅れている。
【００３３】
つまり、直径１０ｍｍの円を１０ｍ／分でレーザ切断する作業において、位置応答周波数５Ｈｚの主軸を動作させると、ロボットアーム２の先端が描く円軌跡の直径が半減し、形状が歪む等、満足な軌跡が得られないことになる。
【００３４】
一方、手首３軸Ｊ４〜Ｊ６は主軸３軸Ｊ１〜Ｊ３に比べ小さく軽い。そのため、５ｋｇ程度のレーザ出力装置３を装着していても、手首３軸Ｊ４〜Ｊ６は１０Ｈｚ以上の位置応答周波数をもつ。よって、ロボットアーム２の先端に新たな関節軸Ｊ７を追加してもよい。主軸３軸Ｊ１〜Ｊ３は停止状態を維持し、手首３軸Ｊ４〜Ｊ６と新たな関節軸Ｊ７とで位置決めや軌跡追従動作を実施することで、５Ｈｚ以上の動作周波数でもロボットアーム２は十分な位置応答性を実現できる。つまり、関節軸Ｊ６の回転中心位置８が動かないように、関節軸Ｊ１〜Ｊ５を完全に静止させている。
【００３５】
図３は、先端の関節軸Ｊ６と平行な関節軸Ｊ７を追加した垂直多関節７軸ロボットの構成を示す。この垂直多関節７軸ロボット６は、先端部分の関節軸Ｊ６及びＪ７のみを動作させて、ロボットアーム２の先端で円や楕円等の所望の軌道を描くことができる。
【００３６】
図４は、図３に示す垂直多関節７軸ロボット６のロボットアーム先端の軌跡の時間変化を示す。
【００３７】
時刻ｔ１で、ロボットアーム２の関節軸Ｊ１〜Ｊ５を駆動して、レーザ照射位置７を目標の円軌道の中心に移動させ、レーザ照射を開始する。時刻ｔ２で、レーザ照射位置７を＋Ｙ方向へ動かして円軌道に乗せる様に関節軸Ｊ６，Ｊ７をそれぞれの回転方向９，１０に回転させる。時刻ｔ３〜ｔ５において、円軌道に沿ってレーザ照射位置７が移動するように関節軸Ｊ６，Ｊ７を回転させ、時刻ｔ６でレーザ照射を終了する。
【００３８】
図５Ａ，５Ｂは、ロボットアーム先端の動作周波数に対する伝達関数の応答特性を示し、図５Ａは上記の伝達関数ＷｃＬの振幅の周波数応答特性を、図５Ｂは伝達関数ＷｃＬの位相の周波数応答特性をそれぞれ示している。なお、図５Ａ，５Ｂにおいてロボットアーム先端とは関節軸Ｊ６，Ｊ７を指す。また、図５Ｃは、図５Ａ，５Ｂに示す周波数特性を有するロボットアームに対し、位置指令θｃとして５Ｈｚの正弦波を与えた場合のθｃとθＬの時間波形を示す。前述したように、関節軸Ｊ６，Ｊ７は小さく軽いので、位置応答周波数は主軸と比べて高くなり、例えば２０Ｈｚ程度となる。
【００３９】
よって、図５Ａ，５Ｂに示すように、位置応答周波数が２０Ｈｚの場合、振幅が半分（−６ｄＢ）になり、位相が９０°遅れる。図５Ｃに示すように、位置指令θｃの周波数が５ｈｚの場合は、実位置θＬは振幅の減衰や位相の遅れが少なく、図２Ｃに示した場合に比べ、実位置θＬが位置指令θｃによく追従していることがわかる。
【００４０】
この場合は、直径１０ｍｍの円を１０ｍ／分でレーザ切断する作業において、図４に示すように、ほぼ指令通りにロボットアーム２の先端は円軌跡を描くことができる。
【００４１】
［ロボットアームの関節軸の動作に伴う干渉トルクの発生及びその影響］
しかし、関節軸Ｊ６，Ｊ７が動作することで関節軸Ｊ１〜Ｊ５に対して干渉トルクを発生させ、それぞれの関節軸に連結した減速機に撓みが生じる。特に主軸３軸Ｊ１〜Ｊ３の回転位置はロボットアーム２の先端までの距離が長い。本願発明者等は、これらの関節軸に連結した減速機が少しでも撓むと関節軸Ｊ６の回転中心位置８が大きく揺動し、ロボットアーム２の先端が描く軌跡に大きく影響を与えることを見いだした。
【００４２】
本願発明者等は、直径１０ｍｍの円を１０ｍ／分でレーザ切断する作業において、実際に関節軸Ｊ６の回転中心位置８の揺動を調査した。この調査により、関節軸Ｊ６に１ｍｍ程度の揺れが生じており、ロボットアーム２の先端が描く軌跡に１０％程度の誤差を与えてしまうことがわかった。また、図３に示す垂直多関節７軸ロボット６では、関節軸毎に減速機の特性も異なる。そのため、それぞれの減速機で発生する撓み量も異なり、関節軸Ｊ６の回転中心位置８の揺れ方もいびつになる。
【００４３】
図６は、減速機に撓みが生じた場合の垂直多関節７軸ロボット６のロボットアーム先端の軌跡の時間変化を示す。
【００４４】
時刻ｔ１で、ロボットアーム２の関節軸Ｊ１〜Ｊ５を駆動して、レーザ照射位置７を目標の円軌道の中心に移動させ、レーザ照射を開始する。図４の例と同様に、時刻ｔ２でレーザ照射位置７を＋Ｙ方向へ動かして、ロボットアーム２の先端を円軌道に乗せるように関節軸Ｊ６，Ｊ７を回転させる。しかし、関節軸Ｊ６，Ｊ７の動作によって生じる干渉トルクにより、主に関節軸Ｊ１の減速機が撓み、関節軸Ｊ６の回転中心位置８が＋Ｙ方向へずれる。時刻ｔ３では円軌道に沿って＋Ｘ方向へレーザ照射位置７を移動させるので、その干渉トルクで主に関節軸Ｊ２の減速機が撓み、関節軸Ｊ６の回転中心位置８が＋Ｘ方向へずれる。ただし、関節軸Ｊ１，Ｊ２にそれぞれ連結された減速機の撓み量の違いにより、関節軸Ｊ６の回転中心位置８の＋Ｘ方向へのずれ量は＋Ｙ方向のずれ量に対して半分程度になる。以下、時刻ｔ３〜ｔ５においても、干渉トルクの影響で関節軸Ｊ６の回転中心位置８の位置ずれが発生する。このため、位置指令θｃが円軌跡なのに対し、実位置θＬの軌跡はその円軌跡よりも少し膨らんだ楕円軌跡になってしまう。
【００４５】
６軸構成で主軸３軸Ｊ１〜Ｊ３を動作させた場合、例えば、円軌跡の直径が５０％程度減少する誤差が発生することがある。この誤差に比べれば上記の実位置θＬの軌跡の誤差は小さいが、一般にロボットを使用して加工を行う場合の許容誤差を超えているため、何らかの対策を行う必要がある。
【００４６】
図７は、外力トルクによって発生するロボットアーム先端の位置ずれを説明する模式図を示す。主軸３軸Ｊ１〜Ｊ３に加わる外力トルクτｄｄｙｎ１，τｄｄｙｎ２，τｄｄｙｎ３は、それぞれ重力トルクと干渉トルクとの和、すなわち、（τｇ１＋τａ１），（τｇ２＋τａ２），（τｇ３＋τａ３）になる。なお、説明の便宜上、図７には関節軸Ｊ２の撓み量θｓ２のみを示している。
【００４７】
この場合、位置指令θｃに加算する撓み補正値θｓｃ（以下、位置指令補正値という）は減速機のバネ定数をＫｓとすると以下の（式２）で表わされる。
【００４８】
θｓｃ  ＝  −θｓ  ＝  −τｄｄｙｎ／Ｋｓ  ・・・（式２）
ここで、θｓは、後述する減速機の１次側と２次側との間に発生する撓み量である。
【００４９】
また、重力トルクτｇによる撓み補正値θｓｇｃ（以下、第１位置指令補正値という）と干渉トルクτａによる撓み補正値θｓａｃとは以下の（式３）、（式４）でそれぞれ表わされる。
【００５０】
θｓｇｃ  ＝  −τｇ／Ｋｓ  ・・・（式３）
θｓａｃ  ＝  −τａ／Ｋｓ  ・・・（式４）
従って、全体の位置指令補正値θｓｃは以下のようになる。
【００５１】
θｓｃ  ＝  −（τｇ＋τａ）／Ｋｓ  ＝  θｓｇｃ＋θｓａｃ  ・・・（式５）
ここで、（式５）で表わされる位置指令補正値θｓｃを位置指令θｃに加算して撓み補正を実行すると、重力トルクτｇによる第１位置指令補正値θｓｇｃは十分に補正される。その理由は以下の通りである。
【００５２】
主軸３軸Ｊ１〜Ｊ３が停止している間は、重力トルクτｇの周波数は０Ｈｚである。また、アーム長２ｍ、可搬質量１０ｋｇ程度のロボットの主軸３軸Ｊ１〜Ｊ３は、動作角速度が１８０°／秒程度であり、１秒間で半周程度しか回転しないので、主軸３軸Ｊ１〜Ｊ３が動作中でも重力トルクτｇの変化は０．５Ｈｚ未満である。よって、重力トルクτｇによるロボットアーム２の振動周波数も０．５Ｈｚ未満となる。主軸３軸Ｊ１〜Ｊ３の位置応答周波数が５Ｈｚ程度であっても、十分に追従でき、撓み補正が可能となる。
【００５３】
一方、干渉トルクτａによる撓みは、位置指令θｃに干渉トルクτａによる撓み補正値θｓａｃを加算しても十分に補正されない。その理由は以下の通りである。
【００５４】
前述の切断動作（直径１０ｍｍの円を１０ｍ／分で切断）において、干渉トルクτａによるロボットアーム２の撓みの中心周波数は５Ｈｚとなる。よって、（式４）に示すように、干渉トルクτａによる撓み補正値θｓａｃの周波数も５Ｈｚとなる。
【００５５】
図８Ａ，８Ｂは、減速機に撓みが生じた場合の主軸の動作周波数に対する伝達関数の応答特性を示し、図８Ａは上記の伝達関数ＷｃＬの振幅の周波数応答特性を、図８Ｂは伝達関数ＷｃＬの位相の周波数応答特性をそれぞれ示している。図８Ｃは、図２Ａ，２Ｂに示す周波数特性を有する主軸に対し、位置指令θｃとして０．５Ｈｚの正弦波を与えた場合のθｃとθＬの時間波形を示し、図８Ｄは、位置指令θｃとして５Ｈｚの正弦波を与えた場合のθｃとθＬの時間波形を示す。
【００５６】
図８Ｃに示すように、第１位置指令補正値θｓｇｃに対しては、実位置θＬは十分に追従している。なお、第１位置指令補正値θｓｇｃの周波数は０．５Ｈｚとしている。一方、図８Ｄに示すように、干渉トルクτａによる撓み補正値θｓａｃに対しては、実位置θＬは振幅が半分になり、位相が９０°遅れているのがわかる。
【００５７】
以上説明したように、従来の方法では、重力トルクと干渉トルクに分離せず、外力トルクτｄｄｙｎを一体として計算し、この値に基づいて位置指令補正値θｓｃを求めていた。よって、例えば、干渉トルクτａによる撓みの実際の補正振幅が小さくなることに対応して、位置指令補正値θｓｃを増加させると、重力トルクτｇによる第１位置指令補正値θｓｇｃも併せて増加させてしまい、重力で撓んで沈んだ分以上にアームを引き上げてしまう不具合が発生する。
【００５８】
そこで、本願発明者等は、外力トルクを重力トルクと干渉トルクとに分離して求め、これらの結果に基づいてロボットアーム２の位置ずれを補正することでロボットアーム２を所望の軌跡で動作できることを見いだした。このことについて以下に詳述する。
【００５９】
（実施形態１）
［多関節ロボット及びその制御系の構成］
図９は、図３に示す垂直多関節７軸ロボット６の位置制御に関する機能ブロック図であり、ロボットメカとロボット制御装置の内部構成の概略を示す。ロボットメカ１１は、垂直多関節７軸ロボット６の機械的駆動部であり、サーボモータ１２，１２・・・（以下、単にモータという）と減速機１３，１３・・・とエンコーダ１４，１４・・・とを有している。また、図示しないがロボットメカ１１は、ロボットアーム２を含んでいる。モータ１２は減速機１３を介して図３に示す垂直多関節７軸ロボット６の関節軸Ｊ１〜Ｊ７にそれぞれ連結されている。モータ１２は、ロボット制御装置２０のサーボ制御部２３から送られる制御信号により関節軸Ｊ１〜Ｊ７を駆動し、ロボットアーム２の動作及ぶ姿勢を制御する。エンコーダ１４は、モータ１２に接続され、その回転量や回転速度を検出して、検出信号をフィードバック信号としてサーボ制御部２３に送る。
【００６０】
なお、以降の説明において、関節軸Ｊ１に連結されたモータ１２と減速機１３とエンコーダ１４とを、それぞれ「第１のモータ」、「第１の減速機」、「第１のエンコーダ」と呼ぶことがあり、関節軸Ｊ２〜Ｊ７に連結されたモータ等を「第２〜第７のモータ」等と呼ぶことがある。また、第１のモータに接続されたサーボ制御部２３と撓み補正ブロック２４とを、それぞれ「第１のサーボ制御部」、「第１の撓み補正ブロック」と呼ぶことがあり、第２〜第７のモータに接続されたサーボ制御部と２３，２３・・・と第２〜第７のサーボ制御部に接続された撓み補正ブロック２４，２４・・・とを、それぞれ「第２〜第７のサーボ制御部」、「第２〜第５の撓み補正ブロック」と呼ぶことがある。また、各関節軸に送られる位置指令や位置指令補正値を位置指令θｃ〜θ７ｃや位置指令補正値θｓｃ〜θ７ｓｃと呼ぶことがある。
【００６１】
ロボット制御装置２０は、操作・教示部２１とメイン制御部２２とサーボ制御部２３と撓み補正ブロック２４（撓み補正手段）とを有している。操作・教示部２１は、例えば、ティーチング時に取得されたロボットアーム２の軌跡及び、この軌跡を描くための各モータ１２，１２・・・の回転動作等を記憶する。
【００６２】
メイン制御部２２は、操作・教示部２１からの指示を受け、操作・教示部２１に記憶されたロボットメカ１１のロボットアーム２等の移動の軌跡に従い、垂直多関節７軸ロボット６の各関節軸Ｊ１〜Ｊ７の位置指令θｃ〜θ７ｃをそれぞれ出力する。
【００６３】
第１〜第７のサーボ制御部２３，２３・・・は、メイン制御部２２から送られた位置指令θｃ〜θ７ｃに追従するように、ロボットメカ１１内の第１〜第７のモータ１２，１２・・・の回転動作をそれぞれ制御する。
【００６４】
撓み補正ブロック２４，２４・・・は、関節軸Ｊ１〜Ｊ７に対応して、メイン制御部２２と各サーボ制御部２３，２３・・・との間にそれぞれ設けられている。撓み補正ブロック２４，２４・・・は、メイン制御部２２から受け取った位置指令θｃ〜θ７ｃに基づいて、位置指令補正値θｓｃ〜θ７ｓｃを生成する。生成された位置指令補正値θｓｃ〜θ７ｓｃは対応する位置指令θｃ〜θ７ｃに加算されて第１〜第７のサーボ制御部２３，２３・・・にそれぞれ送られる。
【００６５】
なお、ロボット制御装置２０内の各機能ブロックは、それぞれ独立の回路で構成されていてもよいし、一つの集積回路で構成されていてもよい。一部の機能ブロックの組み合わせを一つの集積回路で構成してもよい。また、メイン制御部２２やサーボ制御部２３や撓み補正ブロック２４の機能は、ソフトウェアで記述されたプログラムをＣＰＵ等の集積回路上で実行して概ね実現される。
【００６６】
図１０は、ロボットメカにおける減速機の撓みを説明する図を示す。図１０に示すように、ロボットメカ１１から、モータ１２と減速機１３とこれらに連結されるロボットアーム２の一部が負荷３０として抽出されている。負荷３０は、モータ取り付けベースとなる第１アーム３１と、これに連結されたモータ１２と、モータ１２に連結された減速機１次側３２とベアリング３４を有する減速機２次側３３とを含む減速機１３と、減速機２次側３３に回転可能に連結された第２アーム３５とを含んでいる。
【００６７】
減速機１次側３２はモータ１２の回転軸を介してモータ１２のロータ３６に結合され、サーボ制御部２３から送られたモータ回転位置θＭの分だけ回転する。減速機１３は、（式６）に示す減速比Ｒｇで、モータ回転位置θＭをアーム回転位置（実位置）θＬに変換する。
【００６８】
Ｒｇ  ＝  θＭ／θＬ  ・・・（式６）
しかし、図１０に示すように、減速機１３は減速機１次側３２と減速機２次側３３のと間にバネ成分３７が存在するので、（式６）が成立するのは、バネの伸び、つまり撓みが一定となった定常状態のみである。
【００６９】
図１１は、図１０に示す負荷のブロック線図を示し、ＩＭはモータ１２を駆動するモータ電流指令、Ｋｔはモータ１２のトルク定数、１／Ｒｇは（式６）に示す減速比の逆数、Ｋｓは減速機１３のバネ定数、θｓは減速機１次側３２と減速機２次側３３との間に発生する撓み量、τｄｄｙｎはロボットアーム２に加わる外力トルクである。なお、モータ１２にはモータ電流指令ＩＭで定められた電流が流れるものとする。
【００７０】
また、モータ伝達関数４０において、ＪＭはモータ１２のロータ３６と減速機１次側３２とを合わせた回転軸回りの慣性モーメント、ＤＭは粘性摩擦係数である。負荷伝達関数４１において、ＪＬは第２アーム３５と減速機２次側３３とを合わせた回転軸回りの慣性モーメント、ＤＬは粘性摩擦係数である。
【００７１】
図１１に示すように、モータ電流指令ＩＭに基づいてモータ回転位置θＭを得る。モータ回転位置θＭに減速比の逆数１／Ｒｇを乗じて第１の値を得る。一方、外力トルクτｄｄｙｎに基づいてアーム回転位置θＬを得る。第１の値からアーム回転位置θＬを差分して減速機１次側３２と減速機２次側３３との間に発生する撓み量θｓを演算する。得られた撓み量θｓにバネ定数Ｋｓを乗じて第２の値を得る。第２の値は、外力トルクτｄｄｙｎに加算される。また、第２の値に減速比の逆数１／Ｒｇを乗じて第３の値を得る。モータ電流指令ＩＭとモータ１２のトルク定数Ｋｔとの積から第３の値が差分される。
【００７２】
なお、図１１は、負荷及び減速機が連結されたモータの一般的な制御ブロック線図であるため、上記以外の機能の詳細説明は省略する。
【００７３】
［多関節ロボットの制御ブロックの詳細構成］
図１２は、比較のための第１のサーボ制御部のブロック線図を示す。サーボ制御部２３の位置制御ブロック５０は、位置指令θｃと撓み補正ブロック２４から出力される撓み補正値θｓｃｏ（位置指令補正値θｓｃｏともいう）とを加算した第４の値を受ける。第４の値からモータ回転位置θＭを差分して第５の値を得る。第５の値に位置比例ゲインＫｐｐを乗じて速度指令ωｃを生成する。モータ回転位置θＭは位置検出器である第１のエンコーダ１４での検出信号より得られる。なお、以降の説明において、第１のサーボ制御部２３の構成等を例にとって説明するが、第２〜第７のサーボ制御部２３，２３・・・）についても同様である。
【００７４】
速度制御ブロック５１において、モータ回転位置θＭを微分してモータ速度ωＭを得る。速度指令ωｃからモータ速度ωＭを差分して第６の値を得る。第６の値に速度比例ゲインＫｐｓを乗じて第７の値を得る。また、第６の値を積分し、速度積分ゲインＫｉを乗じて第８の値を得る。第７の値と第８の値とを加算して第１のモータ１２に流す電流を演算し、モータ電流指令ＩＭを得る。
【００７５】
図１３は、図１２に示す撓み補正ブロックの詳細構成を示す。撓み補正ブロック２５は、動力学演算ブロック６０を有している。（式２）に示すように、位置指令補正値θｓｃｏを求めるには、外力トルクτｄｄｙｎを予め得ておく必要があるが、各関節軸にトルクセンサを取り付けてこれを求めるのはコストの面から見て好ましくない。トルクセンサは一般的に高価だからである。また、トルクセンサを各関節軸に取り付けることにより、ロボットアーム２に余分な撓みが付加されてしまう。
【００７６】
そこで全軸に対してメイン制御部２２から送られた位置指令θｃ〜θ７ｃを用い、動力学演算ブロック６０で外力トルク演算値τｄｙｎを求める。動力学演算ブロック６０では、全軸の位置指令θｃ〜θ７ｃ、それらの微分値である速度成分、及び、それらの２階微分値である加速度成分を用いて動力学演算を行い、各関節軸にかかる外力トルクを演算している。
【００７７】
この外力トルク演算値τｄｙｎにバネ定数Ｋｓの負号反転した逆数を乗じて位置指令補正値θｓｃｏを求める。
【００７８】
θｓｃｏ  ＝  τｄｙｎ×（−１／Ｋｓ）  ・・・（式７）
ここで、前述したように、外力トルク演算値τｄｙｎは重力トルクτｇ、干渉トルクτａともに含んでいる。よって、周波数が高い干渉トルクτａによる撓みの実際の補正振幅が小さくなる。これに対応して、位置指令補正値θｓｃｏを増加させると、重力トルクτｇによる位置指令補正値も併せて増加させてしまう。これにより重力で撓んで沈んだ分以上にアームを引き上げてしまう不具合が発生することは既に述べたとおりである。
【００７９】
図１４は、本実施形態に係る第１のサーボ制御部のブロック線図を示し、この第１のサーボ制御部２３において、撓み補正ブロック２４を除く機能ブロックは図１２に示す構成と同様であるので説明を省略する。図１５は、図１４に示す撓み補正ブロック２４の詳細構成を示す。この撓み補正ブロック２４（撓み補正手段）は、動力学演算ブロック６１と重力演算ブロック６２とを有している。動力学演算ブロック６１は、全軸に対してメイン制御部２２から送られた位置指令θｃ〜θ７ｃを用いて外力トルク演算値τｄｙｎを求める。動力学演算ブロック６１での各関節軸にかかる外力トルクの演算は比較のために例示した上記の手法と同様である。つまり、関節軸の数がｎ個（ｎは２以上の整数）である場合、一の撓み補正ブロック２４は、メイン制御部２２から送られるｎ個のサーボモータ１２，１２・・・に対応するｎ個の位置指令θｃ〜θｎｃを受け取り、これらの位置指令に基づいて、減速機１３の撓みによるロボットアーム２の位置ずれを補正するように構成されている。
【００８０】
一方、本実施形態においては、撓み補正ブロック２４で、重力トルクτｇと干渉トルクτａとを分離し、それぞれに対する位置指令補正値を演算している。重力演算ブロック６２は、動力学演算ブロック６１と同様に位置指令θｃ〜θ７ｃを受ける。この重力演算ブロック６２は前述の速度成分及び加速度成分をゼロとして動力学演算を行うことにより重力トルクτｇを求めている。
【００８１】
また、外力トルク演算値τｄｙｎから重力トルクτｇを差分することにより、（式８）に示すように干渉トルクτａが得られる。
【００８２】
τａ  ＝  τｄｙｎ−τｇ  ・・・（式８）
以上に示すように本実施形態では、外力トルク演算値τｄｙｎ、重力トルクτｇ、干渉トルクτａのいずれも撓み補正ブロック２４内での演算により求められる。
【００８３】
また、得られた重力トルクτｇを用いて、（式９）から第１位置指令補正値θｓｇｃが得られる。
【００８４】
θｓｇｃ  ＝  τｇ×（−１／Ｋｓ）  ・・・（式９）
一方、干渉トルクτａによる撓み補正値θｓａｃは以下の式（式１０）より演算される。
【００８５】
θｓａｃ  ＝  τａ×（−１／Ｋｓ）  ・・・（式１０）
なお、前述の通り、撓み補正値θｓａｃの振幅と位相とには、実位置θＬに対応するように補償、例えば、比例補償と位相進み補償とを行うＰＤ補償を施す必要がある。これらを補償したθｓｋｃ（以下、第２位置指令補正値という）を（式１１）に示す。
【００８６】
θｓｋｃ  ＝  Ｋｐａ×θｓａｃ＋Ｋｄａ×（ｓ・θｓａｃ）  ・・・（式１１）
ここで、Ｋｐａは、ＰＤ補償比例ゲインであり、振幅補償のための係数である。Ｋｄａは、ＰＤ補償微分ゲインであり、位相補償のための係数である。また、ｓは積分要素である。
【００８７】
（式９），（式１１）で算出した値から位置指令補正値θｓｃが得られる。
【００８８】
θｓｃ  ＝  θｓｇｃ＋θｓｋｃ  ・・・（式１２）
なお、重力演算ブロック６２と撓み補正ブロック２４内での（式９）に示す演算機能とを合わせて、第１位置指令補正値演算手段６３と呼ぶこととする。また、動力学演算ブロック６１と重力演算ブロック６２と撓み補正ブロック２４内での（式８），（式１０），（式１１）に示す演算機能とを合わせて、第２位置指令補正値演算手段６４と呼ぶこととする。
【００８９】
図１４に示すように、メイン制御部２２から第１のサーボ制御部２３に送られる位置指令θｃに（式１２）で表わされる位置指令補正値θｓｃが加算された新たな位置指令（θｃ＋θｓｃ）が第１のサーボ制御部２３に入力される。第１のサーボ制御部２３は、新たな位置指令によって第１のモータ１２の駆動を制御する。
【００９０】
図１６Ａ，１６Ｂは、本実施形態に係る主軸の動作周波数に対する伝達関数の応答特性を示し、図１６Ａは伝達関数ＷｃＬの振幅の周波数応答特性を、図１６Ｂは伝達関数ＷｃＬの位相の周波数応答特性をそれぞれ示している。図１６Ｃは、図１６Ａ，１６Ｂに示す周波数特性を有する主軸に対し、第１位置指令補正値θｓｇｃとして０．５Ｈｚの正弦波を与えた場合の第１位置指令補正値θｓｇｃと実位置θＬの時間波形を示し、図１６Ｄは、第２位置指令補正値θｓｋｃとして５Ｈｚの正弦波を与えた場合の第２位置指令補正値θｓｋｃと実位置θＬの時間波形を示す。
【００９１】
図１６Ｃに示すように、第１位置指令補正値θｓｇｃに対して実位置θＬは十分に追従している。なお、第１位置指令補正値θｓｇｃの周波数は、重力トルクτｇによるロボットアーム２の振動周波数の最大値である０．５Ｈｚとしている。一方、図１６Ｄに示すように、５Ｈｚの周波数を有する第２位置指令補正値θｓｋｃに対しても実位置θＬは、振幅、位相とも十分追従している。
【００９２】
以上説明したように、本実施形態によれば、ロボットアーム２に加わる外力トルクτｄｄｙｎのうち動作応答周波数の異なる成分、つまり、重力トルクτｇと干渉トルクτａとを分離してそれぞれ演算し、これらのトルクに基づいて第１及び第２位置指令補正値θｓｇｃ，θｓｋｃを求めている。このことにより、重力トルクτｇによる撓みの影響を過剰に見積もることなく位置指令を補正することができる。また、これらの位置指令補正値θｓｇｃ，θｓｋｃをもとの位置指令θｃに加算することで、ロボットアーム２の位置ずれを精度良く補正することができる。また、個々の撓み補正ブロック２４は、メイン制御部２２から７つのサーボ制御部２３，２３・・・に送られる７つの位置指令θｃ〜θ７ｃを受け取る。個々の撓み補正ブロック２４は、これらの位置指令θｃ〜θ７ｃに基づいて、動力学演算により外力トルク演算値τｄｙｎ及び重力トルクτｇを求めている。そのため、トルクセンサ等のトルクを計測する専用部品を設けずに済み、垂直多関節６軸ロボット６及びロボット制御装置２０のコストを低減できる。また干渉トルクτａは外力トルク演算値τｄｙｎから重力トルクτｇを減算して求めている。そのため、重力トルクτｇと干渉トルクτａとを簡便に分離することができ、撓みによるロボットアーム２の位置ずれを補正することができる。
【００９３】
また、近年、ロボットの位置教示を、ティーチング・プレイバックではなく、パソコン等のＧＵＩを用いたオフラインで行うことが増えている。ティーチング・プレイバックでは、モータ１２，１２・・・に指令したロボットアーム２の先端位置と実際のロボットアーム２の先端位置にずれがあっても、繰り返し精度が高ければ問題ない。しかし、オフライン教示では絶対位置精度が要求されるので、上記の撓み補正が正しく行われなければ、ロボットを制御する上で問題となる。
【００９４】
本実施形態によれば、撓みによるロボットアーム２の位置ずれを精度良く補正でき、オフライン教示をスムーズに行うことができる。
【００９５】
（実施形態２）
図１７は本実施形態に係る第１のサーボ制御部のブロック線図を示す。本実施形態に示す構成と実施形態１に示す構成とで異なる点は、以下の３点である。一つは、撓み補正ブロック２６で、干渉トルクτａに基づいて干渉トルク電流補償値Ｉｓｃ（以下、単に電流補償値という）を求めることである。二つ目は、電流補償値Ｉｓｃをモータ電流指令ＩＭに加算することである。三つ目は、位置指令θｃには第１位置指令補正値θｓｇｃのみ加算していることである。
【００９６】
図１８は、図１７に示す撓み補正ブロックの詳細構成を示す。
【００９７】
この撓み補正ブロック２６において、重力演算ブロック６２により重力トルクτｇが演算され、（式７）により干渉トルクτａが演算されるのは実施形態１と同様である。（式１２）に示す位置指令補正値θｓｃは（式１３）に示すように修正される。
【００９８】
θｓｃ  ＝  θｓｇｃ  ・・・（式１３）
一方、干渉トルクτａからは撓み補正値θｓａｃを求めるのではなく、撓み補正値θｓａｃに対応する電流を求める。その際、実施形態１における第２位置指令補正値θｓｋｃと同様に、電流についても振幅と位相との補償が必要となり、電流補償値Ｉｓｃは、以下の（式１４）で表わされる。
【００９９】
Ｉｓｃ  ＝  （Ｋｐｂ×τａ＋Ｋｄｂ×（ｓ・τａ））×（−１／Ｋｔ）  ・・・（式１４）
ここで、Ｋｐｂは、干渉トルク電流補償比例ゲインであり、振幅補償のための係数である。Ｋｄｂは、干渉トルク電流補償微分ゲインであり、位相補償のための係数である。その他の演算要素は前述の通りである。
【０１００】
（式１４）で算出した値に基づき、速度制御ブロック５２から出力されるモータ電流指令ＩＭｂは以下の（式１５）で表わされる。
【０１０１】
ＩＭｂ  ＝  ＩＭ＋Ｉｓｃ  ・・・（式１５）
なお、動力学演算ブロック６１と重力演算ブロック６２と撓み補正ブロック２６内での（式８），（式１４）に示す演算機能とを合わせて、電流補償値演算手段６５と呼ぶこととする。
【０１０２】
図１７に示すように、メイン制御部２２から第１のサーボ制御部２３に送られる位置指令θｃに（式１３）で表わされる位置指令補正値θｓｃ（＝θｓｇｃ）が加算されて新たな位置指令（θｃ＋θｓｇｃ）が得られる。この新たな位置指令は、第１のサーボ制御部２３の位置制御ブロック５０に入力される。さらに、位置制御ブロック５０及び速度制御ブロック５１内で生成されたモータ電流指令ＩＭに電流補償値Ｉｓｃが加算されて新たなモータ電流指令ＩＭｂが得られる。新たな位置指令（θｃ＋θｓｇｃ）と新たなモータ電流指令ＩＭｂとに基づいて、第１のモータ１２の駆動が制御される。
【０１０３】
以上説明したように、本実施形態によれば、干渉トルクτａによる電流補償値Ｉｓｃをモータ電流指令ＩＭに加算することで、モータ電流に対して直接に干渉トルクτａに基づく撓みの補正を行うことができ、負荷３０の応答を高められる。つまり、干渉トルクτａによる撓みの補正効果を向上させることができる。
【０１０４】
なお、本実施形態において、干渉トルクτａによる撓みは、位置制御ブロック５０や速度制御ブロック５２の外部から送られる位置指令θｃ〜θ７ｃではなく、位置制御ブロック５０及び速度制御ブロック５２の内部で生成されるモータ電流指令ＩＭに加算して補正されている。つまり、間接的に撓みを補償しているので、モータ電流指令ＩＭに加算した電流補償値Ｉｓｃの全部が撓み減少に寄与するとは限らない。このため、電流補償値Ｉｓｃを正確に定めるには、実機での動作確認とゲイン等の調整を重ねることが必要な場合がある。
【０１０５】
なお、実施形態１，２において、垂直多関節７軸ロボット６を例にとって説明したが、特にこれに限定されない。ロボットの関節軸の数は７つに限られず、ロボットの仕様等によって適宜変更されうる。関節軸の数に応じて、ロボット制御装置２０は、ｎ個（ｎは２以上の整数）のサーボ制御部２３，２３・・・が、対応するｎ個のサーボモータ１２，１２・・・を駆動するとともに、ｎ個のサーボモータ１２，１２・・・にそれぞれ連結された減速機１３，１３・・・を介してｎ個の関節軸を駆動するように構成されている。さらに、撓み補正ブロック２４，２６は、メイン制御部２２から送られるｎ個のサーボ制御部２３，２３・・・に送られるｎ個の位置指令θｃ〜θｎｃを受け取り、これらの位置指令に基づいて、撓みによるロボットアーム２の位置ずれを補正するように構成されている。よって、２軸以上の多関節ロボットにおいて、本開示に係るロボット制御装置は適用される。
【産業上の利用可能性】
【０１０６】
本開示に係るロボット制御装置は、重力トルクに起因する撓みと他軸からの干渉トルクに起因する撓みを分離して、それぞれに対して位置指令を補正できるため、ロボットアームの位置ずれを低減でき、溶接ロボット等の産業用ロボットに適用する上で有用である。
【符号の説明】
【０１０７】
１    垂直多関節６軸ロボット
２    ロボットアーム
３    レーザ出力装置
４    レーザ光
５    ワーク
６    垂直多関節７軸ロボット
７    レーザ照射位置
８    回転中心位置
１１  ロボットメカ
１２  モータ（サーボモータ）
１３  減速機
１４  エンコーダ
２０  ロボット制御装置
２１  操作・教示部
２２  メイン制御部
２３  サーボ制御部
２４〜２６  撓み補正ブロック（撓み補正手段）
３０  負荷
３１  第１アーム
３２  減速機１次側
３３  減速機２次側
３４  ベアリング
３５  第２アーム
３６  ロータ
３７  減速機のバネ成分
４０  モータ伝達関数
４１  負荷伝達関数
５０  位置制御ブロック
５１，５２  速度制御ブロック
６０，６１  動力学演算ブロック
６２  重力演算ブロック
６３  第１位置指令補正値演算手段
６４  第２位置指令補正値演算手段
６５  電流補償値演算手段
Ｊ１〜Ｊ７  関節軸
θｃ〜θ７ｃ  位置指令
ＩＭ  モータ電流指令
ＩＭｂ  モータ電流指令
τｄｄｙｎ  外力トルク
τａ  干渉トルク
τｇ  重力トルク
【図１】
2019012942.tif 000003
【図２Ａ】
2019012942.tif 000004
【図２Ｂ】
2019012942.tif 000005
【図２Ｃ】
2019012942.tif 000006
【図３】
2019012942.tif 000007
【図４】
2019012942.tif 000008
【図５Ａ】
2019012942.tif 000009
【図５Ｂ】
2019012942.tif 000010
【図５Ｃ】
2019012942.tif 000011
【図６】
2019012942.tif 000012
【図７】
2019012942.tif 000013
【図８Ａ】
2019012942.tif 000014
【図８Ｂ】
2019012942.tif 000015
【図８Ｃ】
2019012942.tif 000016
【図８Ｄ】
2019012942.tif 000017
【図９】
2019012942.tif 000018
【図１０】
2019012942.tif 000019
【図１１】
2019012942.tif 000020
【図１２】
2019012942.tif 000021
【図１３】
2019012942.tif 000022
【図１４】
2019012942.tif 000023
【図１５】
2019012942.tif 000024
【図１６Ａ】
2019012942.tif 000025
【図１６Ｂ】
2019012942.tif 000026
【図１６Ｃ】
2019012942.tif 000027
【図１６Ｄ】
2019012942.tif 000028
【図１７】
2019012942.tif 000029
【図１８】
2019012942.tif 000030
【国際調査報告】
2019012942.tif 000031
2019012942.tif 000032
2019012942.tif 000033
2019012942.tif 000034