JP4358979B2 - Robot system control method and control apparatus - Google Patents
Robot system control method and control apparatus Download PDFInfo
- Publication number
- JP4358979B2 JP4358979B2 JP2000278063A JP2000278063A JP4358979B2 JP 4358979 B2 JP4358979 B2 JP 4358979B2 JP 2000278063 A JP2000278063 A JP 2000278063A JP 2000278063 A JP2000278063 A JP 2000278063A JP 4358979 B2 JP4358979 B2 JP 4358979B2
- Authority
- JP
- Japan
- Prior art keywords
- joint
- acceleration
- deceleration
- speed
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 70
- 230000001133 acceleration Effects 0.000 claims description 281
- 238000004364 calculation method Methods 0.000 claims description 122
- 239000011159 matrix material Substances 0.000 claims description 95
- 230000007246 mechanism Effects 0.000 claims description 78
- 230000005484 gravity Effects 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 41
- 239000003638 chemical reducing agent Substances 0.000 claims description 14
- 230000014509 gene expression Effects 0.000 description 42
- 230000008569 process Effects 0.000 description 33
- 238000012545 processing Methods 0.000 description 23
- 230000009467 reduction Effects 0.000 description 20
- 230000036544 posture Effects 0.000 description 15
- OVSKIKFHRZPJSS-UHFFFAOYSA-N 2,4-D Chemical compound OC(=O)COC1=CC=C(Cl)C=C1Cl OVSKIKFHRZPJSS-UHFFFAOYSA-N 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 210000001550 testis Anatomy 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 101100491149 Caenorhabditis elegans lem-3 gene Proteins 0.000 description 1
- 101000914628 Homo sapiens Uncharacterized protein C8orf34 Proteins 0.000 description 1
- 241000276498 Pollachius virens Species 0.000 description 1
- 102100027225 Uncharacterized protein C8orf34 Human genes 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Landscapes
- Control Of Position Or Direction (AREA)
- Manipulator (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ロボットシステムの制御方法及び制御装置に関する。
【0002】
【従来の技術】
従来、複数の関節を有するロボットシステムの制御装置では、動作速度指令に加減速度(以下、加速度と減速度を意味する。また、加速と減速とを含み、加減速という。)を設け、なめらかな動作を実現している。ロボットの関節を、同じ速度パターンで動作させても、関節に発生するトルクは、ロボットの姿勢に依存して異なる。重力や他の関節から受ける干渉力などの負荷トルクが、ロボットの関節位置すなわちロボット姿勢により変わってしまうためである。負荷トルクが最大となるロボット姿勢で、速度パターンを固定すると、負荷トルクの影響が小さい姿勢での動作時間が必要以上に延びてしまう。一方、最小の姿勢で固定すると、負荷トルクの大きな姿勢で、モータが許容できる以上のトルクが必要となり、モータ制御に異常が発生して問題となる。
【0003】
図10は、第1の従来例の位置決め動作処理を示すフローチャートである。図10において、まず、ステップS101で関節番号iを0にリセットした後、関節番号iが最終の関節imaxとなるまで、各関節番号i毎にステップS102からステップS104までの処理を繰り返す。ここで、ステップS102では、開始位置、目標位置及び目標速度をセットし、ステップS103で移動量の計算処理を実行した後、ステップS104で加速度及び減速度のプリセット情報に基づいて速度パターンの計算を行う。さらに、ステップS107では、最長動作時間の関節を抽出し、ステップS108で関節番号iを0にリセットした後、関節番号iが最終の関節imaxとなるまで、各関節番号i毎にステップS109における速度パターンの再計算処理である終了時間の同期処理を繰り返す。
【0004】
図11は、図10の終了時間の同期処理の一例を説明するための各関節の速度パターンを示すグラフである。図10のステップS107では、第2の関節が最長動作時間tmaxを有するとして抽出され、第1の関節と第3の関節の速度パターンは、それらの動作時間が第2の関節が最長動作時間tmaxとなり、
(a)面積Saが面積Sapに等しくなり、
(b)面積Sbが面積Sbpに等しくなり、
(c)面積Scが面積Scpに等しくなり、
(d)面積Sdが面積Sdpに等しくなる
ように決定される。なお、図10のグラフの積分値である面積は距離を表す。
【0005】
この第1の従来例において、ステップS104での速度パターンの生成に使われる、加速度及び減速度の情報は、関節毎にプリセットされており、ロボットの姿勢に応じて変動する負荷トルクの影響度は考慮されていない。変動する負荷トルクとは、重力及び負荷慣性モーメント並びに他の関節から受ける干渉力等である。そのため、プリセットされる加速度及び減速度情報は、負荷トルクが最大となるロボット姿勢において、モータ制御に異常が発生しない値とするのが一般的である。
【0006】
【発明が解決しようとする課題】
しかしながら、第1の従来例の方法では以下の問題がある。
(a)負荷トルクが最大でないロボット姿勢における位置決め動作では、モータの能力が最大限に使用されていない。
(b)ロボット設計の際、負荷トルクが最大のロボット姿勢において、モータ制御に異常が発生しないようにモータを選定しなければならず、必然的にオーバースペックとなる。
【0007】
この問題を解決するために、特開平7−261822号公報(以下、第2の従来例という。)では、重力モーメント、加速度による慣性、他の関節の動作による干渉トルクを受ける駆動関節に対して、各関節の質量並びに重心位置から発生する負荷トルク成分を計算し、加速度の影響を受ける負荷トルク成分が、駆動関節の許容ピークトルクから加減速度の影響を受けない負荷トルク成分の値を差し引いた値となるように、加減速時間を求める方法がとられていた。しかしながら、この方法にも、以下の問題がある。
【0008】
(a)ロボットのすべての関節の加減速時間が同じという前提条件のもとで、加減速時間が演算されており、関節毎の移動量に大きな差があるような位置決め動作を行う場合、駆動関節の許容トルクに余裕があるにもかかわらず、動作時間を短縮できない。以下、第1の課題という。
(b)ロボットのリンク自体の慣性テンソルによる負荷トルク成分を考慮していないため、関節の回転中心から重心位置までの距離が短いロボットでは厳密な負荷トルク成分の計算ができない。以下、第2の課題という。
【0009】
本発明の目的は以上の問題点を解決し、ロボット機構部の各関節の許容ピークトルク(許容値)を越えず、かつ最短時間で動作が終了できる最適な各関節の加減速度を求めることができ、しかも、動作時間を短縮できるロボットシステムの制御方法及び制御装置を提供することにある。
【0010】
【課題を解決するための手段】
本発明に係るロボットシステムの制御方法は、複数の関節を有するロボット機構部の動作を制御するロボットシステムの制御方法であって、
上記ロボット機構部を動作させるときのロボット機構部の各関節の開始位置と、目標位置と、目標速度とを教示データとして第1の記憶手段に格納する第1の記憶ステップと、
上記ロボット機構部の各関節の速度パターンを予測演算するときに用いる各関節の加速度と減速度の情報とを第2の記憶手段に格納する第2の記憶ステップと、
上記第1の記憶手段に格納された教示データと、上記第2の記憶手段に格納された各関節の加速度及び減速度とに基づいて、当該各関節の開始位置と目標位置と目標速度である教示データから当該格納された各関節の加速度及び減速度で動作するように、各関節についての時間に対する速度のパターンであって、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターン、もしくは一定の加速度で動作し一定の減速度で動作する三角形状の速度パターンを計算する第1の速度パターン計算方法を用いて、上記ロボット機構部の各関節の加速度予測値と、動作時間予測値を演算し、上記動作時間予測値の中から、その最大値を最長動作時間として演算する第1の演算ステップと、
上記動作時間予測値の中から動作時間が最大となる関節を最大動作関節とし、その最大動作関節の動作時間を最長動作時間とし、各関節について上記動作時間予測値が上記最長動作時間と同じになり、加速時の距離が再計算前後で同じでかつ減速時の距離が再計算前後で同じになり、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターンとなるように動作速度及び加減速度を再計算した値をそれぞれ、速度予測値、加速度予測値及び減速度予測値として再計算する速度パターン再計算方法を用いて、上記ロボット機構部の各関節について、上記第1の演算ステップによって演算された動作時間予測値が、上記第1の演算ステップによって演算された最長動作時間と同じになるように、速度並びに加速度及び減速度として再計算した値を、速度予測値、加速度予測値及び減速度予測値とする第2の演算ステップとを含むロボットシステムの制御方法において、
上記ロボット機構部の各関節に連結される各リンクの慣性テンソル、質量及び重心位置とを含むロボットダイナミクスベースパラメータを第3の記憶手段に格納する第3の記憶ステップと、
上記第1の記憶手段に格納された各関節の開始位置及び目標位置と、上記第2の演算ステップによって演算された速度予測値と、上記第3の記憶手段に格納されたロボットダイナミクスベースパラメータとに基づいて、
(a)上記ロボット機構部の各関節についての、加速度により関節自身に発生するトルク、並びに他関節の加速度により発生する干渉トルクを示す慣性行列と、
(b)上記ロボット機構部の各関節についての、遠心力及びコリオリ力により発生するトルクを示す粘性行列と、
(c)上記ロボット機構部の各関節の重力モーメントにより発生するトルクを示す重力行列と
を含む上記開始位置及び目標位置におけるロボットダイナミクスモデルを計算する第3の演算ステップと、
上記第3の演算ステップによって演算されたロボットダイナミクスモデルと、上記第2の演算ステップによって演算された各関節の加速度予測値及び減速度予測値とに基づいて、当該各関節の加速度予測値が互いに比例して加速時に加速度予測値の各関節間の比例関係が保持されるという第1の比例関係と、当該各関節の減速度予測値が互いに比例して減速時に減速度予測値の各関節間の比例関係が保持されるという第2の比例関係とが保持される第1の条件を満足し、かつ各関節の許容ピークトルクから、加速度及び減速度に関係の無い重力行列から求められる重量項の値、並びに加速度及び減速度に関係の無い粘性行列から求められる粘性項の値を減算した減算結果値が、各関節が上記加速度予測値及び減速度予測値で動作した場合に各関節で発生するトルク以上となるという第2の条件を満足するような最適な加速度及び最適な減速度を各関節毎に演算する第4の演算ステップと、
上記第1の演算ステップにおいて最長動作時間となった関節を検索し、検索した関節である第kの関節について、上記第4の演算ステップによって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された第kの関節の開始位置、目標位置及び目標速度を含む教示データとから、上記第1の速度パターン計算方法を用いて第k関節の速度パターンを演算し、その動作時間を基準動作時間とする第5の演算ステップと、
上記第kの関節以外のすべての関節について、上記第5の演算ステップによって演算された基準動作時間と、上記第4の演算ステップによって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された開始位置及び目標位置を含む教示データとに基づいて、最長動作時間である基準動作時間となった関節についてのみ、当該最適な加速度及び当該最適な減速度を用いて上記第1の速度パターン計算方法により基準動作時間を求め、その他の関節については、当該最適な加速度と当該最適な減速度を保持し、かつ動作時間が上記基準動作時間となるように各関節の台形状の速度パターンを計算する第2の速度パターン計算方法を用いて、動作時間が上記基準動作時間となり、上記最適な加速度及び最適な減速度で動作するような速度パターンを生成する第6の演算ステップとを含むことを特徴とする。
【0011】
また、上記ロボットシステムの制御方法において、好ましくは、上記粘性行列及び上記重力行列において、加速度に関係しないトルクとして、上記粘性行列及び重力行列に加算することにより、上記各関節で発生する摩擦抵抗を考慮することを特徴とする。
【0012】
さらに、上記ロボットシステムの制御方法において、好ましくは、各関節の慣性モーメントからなる慣性行列の対角成分に、上記各関節の減速機を含むモータのロータの慣性モーメントを加算することにより、上記各関節自身の加減速で発生するトルク演算値を補正するステップとをさらに含むことを特徴とする。
【0013】
本発明に係るロボットシステムの制御装置は、複数の関節を有するロボット機構部の動作を制御するロボットシステムの制御装置であって、
上記ロボット機構部を動作させるときのロボット機構部の各関節の開始位置と、目標位置と、目標速度とを教示データとして格納する第1の記憶手段と、
上記ロボット機構部の各関節の速度パターンを予測演算するときに用いる各関節の加速度と減速度の情報とを格納する第2の記憶手段と、
上記第1の記憶手段に格納された教示データと、上記第2の記憶手段に格納された各関節の加速度及び減速度とに基づいて、当該各関節の開始位置と目標位置と目標速度である教示データから当該格納された各関節の加速度及び減速度で動作するように、各関節についての時間に対する速度のパターンであって、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターン、もしくは一定の加速度で動作し一定の減速度で動作する三角形状の速度パターンを計算する第1の速度パターン計算方法を用いて、上記ロボット機構部の各関節の加速度予測値と、動作時間予測値を演算し、上記動作時間予測値の中から、その最大値を最長動作時間として演算する第1の演算手段と、
上記動作時間予測値の中から動作時間が最大となる関節を最大動作関節とし、その最大動作関節の動作時間を最長動作時間とし、各関節について上記動作時間予測値が上記最長動作時間と同じになり、加速時の距離が再計算前後で同じでかつ減速時の距離が再計算前後で同じになり、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターンとなるように動作速度及び加減速度を再計算した値をそれぞれ、速度予測値、加速度予測値及び減速度予測値として再計算する速度パターン再計算方法を用いて、上記ロボット機構部の各関節について、上記第1の演算手段によって演算された動作時間予測値が、上記第1の演算手段によって演算された最長動作時間と同じになるように、速度並びに加速度及び減速度として再計算した値を、速度予測値、加速度予測値及び減速度予測値とする第2の演算手段とを備えたロボットシステムの制御装置において、
上記ロボット機構部の各関節に連結される各リンクの慣性テンソル、質量及び重心位置とを含むロボットダイナミクスベースパラメータを格納する第3の記憶手段と、
上記第1の記憶手段に格納された各関節の開始位置及び目標位置と、上記第2の演算手段によって演算された速度予測値と、上記第3の記憶手段に格納されたロボットダイナミクスベースパラメータとに基づいて、
(a)上記ロボット機構部の各関節についての、加速度により関節自身に発生するトルク、並びに他関節の加速度により発生する干渉トルクを示す慣性行列と、
(b)上記ロボット機構部の各関節についての、遠心力及びコリオリ力により発生するトルクを示す粘性行列と、
(c)上記ロボット機構部の各関節の重力モーメントにより発生するトルクを示す重力行列と
を含む上記開始位置及び目標位置におけるロボットダイナミクスモデルを計算する第3の演算手段と、
上記第3の演算手段によって演算されたロボットダイナミクスモデルと、上記第2の演算手段によって演算された各関節の加速度予測値及び減速度予測値とに基づいて、当該各関節の加速度予測値が互いに比例して加速時に加速度予測値の各関節間の比例関係が保持されるという第1の比例関係と、当該各関節の減速度予測値が互いに比例して減速時に減速度予測値の各関節間の比例関係が保持されるという第2の比例関係とが保持される第1の条件を満足し、かつ各関節の許容ピークトルクから、加速度及び減速度に関係の無い重力行列から求められる重量項の値、並びに加速度及び減速度に関係の無い粘性行列から求められる粘性項の値を減算した減算結果値が、各関節が上記加速度予測値及び減速度予測値で動作した場合に各関節で発生するトルク以上となるという第2の条件を満足するような最適な加速度及び最適な減速度を各関節毎に演算する第4の演算手段と、
上記第1の演算手段において最長動作時間となった関節を検索し、検索した関節である第kの関節について、上記第4の演算手段によって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された第kの関節の開始位置、目標位置及び目標速度を含む教示データとから、上記第1の速度パターン計算方法を用いて第k関節の速度パターンを演算し、その動作時間を基準動作時間とする第5の演算手段と、
上記第kの関節以外のすべての関節について、上記第5の演算手段によって演算された基準動作時間と、上記第4の演算手段によって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された開始位置及び目標位置を含む教示データとに基づいて、最長動作時間である基準動作時間となった関節についてのみ、当該最適な加速度及び当該最適な減速度を用いて上記第1の速度パターン計算方法により基準動作時間を求め、その他の関節については、当該最適な加速度と当該最適な減速度を保持し、かつ動作時間が上記基準動作時間となるように各関節の台形状の速度パターンを計算する第2の速度パターン計算方法を用いて、動作時間が上記基準動作時間となり、上記最適な加速度及び最適な減速度で動作するような速度パターンを生成する第6の演算手段とを備えたことを特徴とする。
【0014】
また、上記ロボットシステムの制御装置において、好ましくは、上記粘性行列及び上記重力行列において、加速度に関係しないトルクとして、上記各関節で発生する摩擦抵抗を考慮することを特徴とする。
【0015】
さらに、上記ロボットシステムの制御装置において、好ましくは、各関節の慣性モーメントからなる慣性行列の対角成分に、上記各関節の減速機を含むモータのロータの慣性モーメントを加算することにより、上記各関節自身の加減速で発生するトルク演算値を補正する手段とをさらに備えたことを特徴とする。
【0016】
【発明の実施の形態】
以下、図面を参照して本発明に係る実施形態について説明する。
【0017】
図1は、本発明に係る一実施形態であるロボットシステムの構成を示すブロック図であり、図2は、図1のロボット機構部1の構成を示すスケルトン図である。図1において、この実施形態に係るロボットシステムは、例えば3個である複数の関節RJ1乃至RJ3を有するロボット機構部1と、ロボット機構部1の動作を制御するための制御装置10と、教示データなどのデータを入力するための入力手段であるティーチペンダント20とを備えて構成される。ここで、ロボット機構部1は、図2に示すように、ベースBA1からリンクL1を介して関節RJ1に連結され、次いで、関節RJ1はリンクL2を介して関節RJ2に連結され、そして、関節RJ2はリンクL3を介して関節RJ3に連結され、さらに、関節RJ3にはリンクL4が連結され、そのリンクL4の端部は例えば溶接作業などの所定の操作を行う操作端LEとなっている。ここで、各関節RJ1乃至RJ3は回転可能に構成されている。
【0018】
この実施形態に係るロボットシステムの制御装置10は、概略説明すれば、ロボット機構部1の各関節RJ1乃至RJ3を駆動するモータの性能を効率よく使用することで、タクトタイム(工程時間)の短縮、並びにマニピュレータ開発時のモータ選定裕度の向上を行い、具体的には、関節RJ1乃至RJ3に発生させることができる許容ピークトルクを指定しておき、ロボット機構部1の各関節RJ1乃至RJ3の開始位置、目標位置及び目標速度と、各関節に連結されるロボットリンク(リンクアームともいうが、本実施形態では、リンクL1乃至L4をいう。)の重心位置、質量及び慣性テンソルから成るダイナミクスベースパラメータから、各関節の許容ピークトルクを越えず、かつ最短時間で動作が終了できる最適な各関節の加減速度を求める。この場合、ロボット機構部1の関節RJ1乃至RJ3毎の移動量に大きな差がある位置決め動作を行う場合でも、駆動関節の許容ピークトルクを最大限有効に使用した加減速度を演算し、動作時間の短縮を可能にするとともに、関節に連結されるリンク自体の慣性テンソルによる負荷トルク成分を考慮し、関節の回転中心からリンクの重心位置までの距離が短いロボットや、ロボットが特異な姿勢となっても、厳密な負荷トルク成分の計算を実現することで、許容値を越えるトルクを必要とするような加減速度の演算を防止する。また、この実施形態に係るロボットシステムの制御装置10は、モータMO1乃至MO3の軸受けや減速機の摩擦抵抗を考慮し、厳密な負荷トルク成分の計算を実現することで、許容値を越えるトルクを必要とするような加減速度の演算を防止する。さらに、この実施形態に係るロボットシステムの制御装置10は、減速機を含むモータMO1乃至MO3のロータの慣性モーメントにより発生するトルクを考慮し、厳密な負荷トルク成分の計算を実現することで、許容値を越えるトルクを必要とするような加減速度の演算を防止する。
【0019】
まず、この実施形態に係る制御方法の動作原理について以下に詳述する。ロボット機構部1の各関節に連結されるリンクの重心位置、質量、リンク長さ、慣性テンソル並びに、各関節の位置(角度)、速度、加速度から、各関節に発生するトルクTが、次式により演算できることが知られており、ロボットダイナミクスモデルという。
【0020】
【数1】
T=H(θ)・θdd+C(θ,θd)+G(θ)・g
【0021】
この数1は、例えば、従来技術文献1「広瀬茂男,”ロボット工学−機械システムのベクトル解析−”,裳華房,2版,1989年2月10日」の11.3.[4]項に、剛体の運動解析手法の1つであるニュートンオイラー法を用いた逆動力学演算の手順が詳しく説明されており、最終的に逆動力学の演算式は、当該従来技術文献1の式(11.28)となる。ここで、式(11.28)中のJTKは、ロボット先端に加えるべき外力とモーメントで、本発明に係る実施形態では考慮する必要の無い項となり、上記数1を得ることができる。ここで、上記ロボットダイナミクスモデルは、慣性行列H、粘性行列C及び重力行列Gから構成され、慣性行列Hはロボット機構部の各関節の加速度により関節自身に発生するトルク並びに他関節の加速度により発生する干渉トルクを示し、粘性行列Cはロボット機構部の各関節の遠心力及びコリオリ力により発生するトルクを示し、重力行列Gは、ロボット機構部の各関節の重力モーメントにより発生するトルクを示す。
【0022】
慣性行列H、粘性行列C及び重力行列Gは、ロボット機構部1の各関節に連結されるリンクの重心位置、質量、慣性テンソル、及び各関節の位置、速度、加速度から計算できる。ここで、ロボット各関節に連結されるリンクの重心位置、質量、慣性テンソル、リンク長さは、ロボットの機構やリンク形状及び材質から予め求めておくことが可能な既知の固定値であるから、上記数1を使用すると、各関節の位置、速度、加速度の3つから、各関節に発生するトルクが演算できる。上記数1の各項目は以下の意味を持つ。なお、実施例では、各関節の数n=3である。
【0023】
【表1】
【0024】
次いで、この実施形態で用いる各項目の単位及び個数を以下に示す。
【0025】
【表2】
―――――――――――――――――――――――――――――――――――
記号 項目 単位 個数
―――――――――――――――――――――――――――――――――――
T 関節に発生するトルク N・m n×1行列
θ 関節位置(角度) rad n×1行列
θd 関節速度 rad/sec n×1行列
θdd 関節加速度 rad/sec2 n×1行列
H 慣性行列 kg・m2 n×n行列
C 粘性行列 N・m n×1行列
G 重力行列 kg・m n×3行列
g 重力加速度ベクトル m/s2 3×1行列
Tpeak 関節の許容ピークトルク N・m n×1行列
θs 開始位置 rad n×1
θe 目標位置 rad n×1
V 目標速度 rad/sec n×1
Asmp 仮の加速度 rad/sec2 n×1
Dsmp 仮の減速度 rad/sec2 n×1
Vest 加速度予測値 rad/sec n×1
Test 動作時間予測値 sec n×1
Vrea 速度予測値 rad/sec n×1
Area 加速度予測値 rad/sec2 n×1
Drea 減速度予測値 rad/sec2 n×1
Tmax 最長動作時間 sec 1
―――――――――――――――――――――――――――――――――――
Ixi,Ixyi,Ixzi リンクの慣性テンソル kg・m2 3×3
Ixyi,Iyi,Iyzi
Ixzi,Iyzi,Izi
―――――――――――――――――――――――――――――――――――
mi リンク質量 kg 1×n
mxi,myi,mzi リンク重心位置ベクトル m 3×n
記号なし 重力加速度 m/sec2 1
Cm 動粘性係数 N・m・sec n×1行列
θdm モータ速度 rad/sec n×1行列
Fcou クーロン摩擦トルク N・m n×1行列
―――――――――――――――――――――――――――――――――――
Im 減速機を含むモータロータの kg・m2 1×n
慣性モーメント
―――――――――――――――――――――――――――――――――――
Tad 加減速で使用できるトルク N・m n×1行列
Aopt 最適な加速度 rad/sec2 n×1行列
Dopt 最適な減速度 rad/sec2 n×1行列
Tbase 基準動作時間 sec 1
Sai 第iの関節の移動量 rad 1
Vopti 第iの関節の最適な速度 rad/sec 1
Tai 第iの関節の加速時間 sec 1
Tci 第iの関節の定速時間 sec 1
Tdi 第iの関節の減速時間 sec 1
ξi 第iの関節の減速比 無次元 1
―――――――――――――――――――――――――――――――――――
【0026】
次いで、実施例(n=3)におけるロボットダイナミクスのベースパラメータについて説明する。質量miは、第iの関節(ここで、iは自然数であり、1から関節の最大個数までとる。)の動作により移動しかつ第i+1の関節の動作によっては移動しない第iの関節に連結されるリンクの質量を示す。また、重心位置mxi、myi、mziは、第iの関節の動作により移動し、かつ第i+1の関節の動作によっては移動しない第iの関節に連結されるリンクの重心位置を示す。また、第iの関節の慣性テンソルIxi乃至Iziは、第iの関節の動作により移動しかつ第i+1の関節の動作によっては移動しない第iの関節に連結されるリンクの慣性テンソルを示し、例えば、従来技術文献1の節3.8に、演算手順が詳しく説明されており、最終的に慣性テンソルの演算式は、当該従来技術文献1の式(3.38)となる。
【0027】
ここで、重心位置及び慣性テンソルを演算する上での基準をリンク座標系とする。リンク座標系は、例えば、従来技術文献2「吉川恒夫訳,”ロボット・マニピュレータ”,株式会社コロナ社,初版,1989年12月15日」の節2.9に各関節毎に割り当てるリンク座標系の定義手順が詳細に説明されているが、ここでは、基本的なリンク座標系の定義について説明する。
【0028】
まず、慣性テンソルIは、物体の回転し難さを示すのに一般的に使用され、公知の通り次式の3×3の対称行列で表され、その対角成分はロボット機構部の各関節の慣性モーメントを、その他の成分は慣性乗積の負の値を表す。
【0029】
【数2】
【0030】
また、慣性モーメントは次式より求められ、物体(ロボットリンク)の回り難さ及び止め難さを表す。
【0031】
【数3】
Ix=∫(y2+z2)dm
【数4】
Iy=∫(z2+x2)dm
【数5】
Iz=∫(x2+y2)dm
【0032】
次いで、慣性乗積は、次式より求められ、物体(ロボットリンク)が回転運動を行っているとき、その運動を乱すモーメントを表す。
【0033】
【数6】
Ixy=∫xydm
【数7】
Iyz=∫yzdm
【数8】
Izx=∫zxdm
【0034】
ここで、式中のx,y,zは、所定の慣性テンソルの基準座標で表され、dmは微小体積の質量を示す。ここで、基準座標をリンク座標系とする。例えば、第2の関節から第3の関節に伸張するリンクL3において、第2の関節の回転中心を原点として、第2の関節に割り当てられたリンク座標が定められ、第2の関節のリンク座標におけるx方向をリンク長さの方向とし、z方向を回転軸方向とし、y方向を右手座標系の方向とする。ここで、第2の関節に連結されたリンクL3の慣性テンソルの基準座標は、第2の関節に割り当てられたリンク座標系をリンクL3の重心位置に移動したときの座標系とする。他の関節についても同様に定義する。
【0035】
次いで、慣性、粘性及び重力の行列値の演算方法について説明する。慣性行列H、粘性行列C、及び重力行列Gは、次式を用いて数値計算して求める。なお、第1の関節の位置をθ1とし、第2の関節の位置をθ2とし、第3の関節の位置をθ3とする。また、第1の関節の速度をθd1とし、第2の関節の速度をθd2とし、第3の関節の速度をθd3とする。
【0036】
【数9】
【0037】
ここで、
【数10】
H11
=mx12・m1+[2・a1・mx2・cos(θ2)+(1/2)・mx22{1+cos(2・θ2)}+a12+mz22]m2
+(a12+2{cos(θ2)・a2-my3・sin(θ2+θ3)+mx3・cos(θ2+θ3)}a1
+[-my3{sin(2・θ2+θ3)+sin(θ3)}+mx3{cos(2・θ2+θ3)+cos(θ3)}]a2
-mx3・my3・sin(2・θ3+2・θ2)+(1/2)a22{1+cos(2・θ2)}
-(1/2)my32{cos(2・θ3+2・θ2)-1}
+(1/2)mx32{cos(2・θ3+2・θ2)+1)}m3+(1/2)Ix2{1-cos(2・θ2)}
+(1/2)Iy2{1+cos(2・θ2)}
+(1/2)Ix3{1-cos(2・θ3+2・θ2)}+(1/2)Iy3{cos(2・θ3+2・θ2)+1}
-Ixy3・sin(2・θ3+2・θ2)+Iz1
【数11】
H12=-m2・mz2・mx2・sin(θ2)
【数12】
H13=0
【0038】
【数13】
H21=H12
【数14】
H22
=m2・mx22+[a22+2{mx3・cos(θ3)-my3・sin(θ3)}a2+my32+mx32]m3+Iz3+Iz2
【数15】
H23=[{mx3・cos(θ3)-my3・sin(θ3)}a2+my32+mx32]m3+Iz3
【0039】
【数16】
H31=H13
【数17】
H32=H23
【数18】
H33=(my32+mx32)m3+Iz3
【0040】
【数19】
C=[C1 C2 C3]T
【0041】
ここで、
【数20】
C1
=[{-mx2・m2(mx2・sin(2・θ2)+2・a1・sin(θ2))
+(-2・a1(mx3・sin(θ2+θ3)+my3・cos(θ2+θ3)+a2・sin(θ2))
-2・a2(mx3・sin(2・θ2+θ3)+my3・cos(2・θ2+θ3))-2・my3・mx3・cos(2・θ3+2・θ2)
+(my32-mx32)・sin(2・θ3+2・θ2)-a22・sin(2・θ2))m3
+(Ix3-Iy3)sin(2・θ3+2・θ2)
+(Ix2-Iy2)sin(2・θ2)-2・Ixy3・cos(2・θ3+2・θ2)}θd2
+{m3(-2・a1(my3・cos(θ2+θ3)+mx3・sin(θ2+θ3))
-2・my3・mx3・cos(2・θ3+2・θ2)
+(my32-mx32)sin(2・θ3+2・θ2)
-a2(mx3(sin(2・θ2+θ3)+sin(θ3))+my3(cos(2・θ2+θ3)+cos(θ3))}]
-2・Ixy3・cos(2・θ3+2・θ2)-(Iy3-Ix3)sin(2・θ3+2・θ2))θd3)θd1
-m2・mz2・mx2・cos(θ2)・θd2 2
【数21】
C2
=[(1/2)mx2・m2(mx2・sin(2・θ2)+2・a1・sin(θ2))
+(1/2)(Iy3-Ix3)sin(2・θ3+2・θ2)
+(1/2)sin(2・θ2)(Iy2-Ix2)+Ixy3・cos(2・θ3+2・θ2)
+{a1(my3・cos(θ2+θ3)+mx3・sin(θ2+θ3))
+a2(mx3・sin(2・θ2+θ3)+my3・cos(2・θ2+θ3))
+(1/2)a22・sin(2・θ2)+(1/2)(mx32-my32)sin(2・θ3+2・θ2)
+my3・mx3・cos(2・θ3+2・θ2)
+a1・a2・sin(θ2)}m3]θd1 2-2・m3・a2(mx3・sin(θ3)+my3・cos(θ3))θd2・θd3
-m3・a2(mx3・sin(θ3)+my3・cos(θ3))θd3 2
【数22】
C3=[{a1(my3・cos(θ2+θ3)+mx3・sin(θ2+θ3))
+(1/2)a2{mx3(sin(2・θ2+θ3)+sin(θ3))+my3(cos(2・θ2+θ3)+cos(θ3))}
+(1/2)(mx32-my32)sin(2・θ3+2・θ2)+my3・mx3・cos(2・θ3+2・θ2)}m3
+(1/2)(Iy3-Ix3)sin(2・θ3+2・θ2)+Ixy3・cos(2・θ3+2・θ2)]θd1 2
+m3・a2(mx3・sin(θ3)+my3・cos(θ3))θd2 2
【0042】
【数23】
【0043】
ここで、
【数24】
G11
=-sin(θ1)・mx1・m1
+{cos(θ1)・mz2-sin(θ1)・a1-(1/2)mx2(sin(θ1+θ2)-sin(-θ1+θ2))}m2
-sin(θ1)・a1・m3-(1/2)m3((sin(θ1+θ2)-sin(-θ1+θ2))a2
+mx3(-sin(-θ1+θ2+θ3)+sin(θ1+θ2+θ3))
+my3(cos(θ1+θ2+θ3)-cos(-θ1+θ2+θ3)))
【数25】
G12
=cos(θ1)・mx1・m1
+{sin(θ1)・mz2+cos(θ1)・a1+(1/2)mx2(cos(-θ1+θ2)+cos(θ1+θ2))}m2
+cos(θ1)・a1・m3+(1/2)m3{(cos(-θ1+θ2)+cos(θ1+θ2))a2
+mx3(cos(-θ1+θ2+θ3)+cos(θ1+θ2+θ3))
+my3(-sin(-θ1+θ2+θ3)-sin(θ1+θ2+θ3))}
【数26】
G13=0
【0044】
【数27】
G31
=(1/2)m3・{mx3(-sin(-θ1+θ2+θ3)-sin(θ1+θ2+θ3))
-my3(cos(-θ1+θ2+θ3)+cos(θ1+θ2+θ3))}
【数28】
G32
=(1/2)m3・{mx3(cos(θ1+θ2+θ3)-cos(-θ1+θ2+θ3))
-my3(-sin(-θ1+θ2+θ3)+sin(θ1+θ2+θ3))}
【数29】
G33=m3(-my3・sin(θ2+θ3)+mx3・cos(θ2+θ3))
【0045】
【数30】
G21
=(1/2)mx2・m2(-sin(θ1+θ2)-sin(-θ1+θ2))
+(1/2)m3・a2(-sin(θ1+θ2)-sin(-θ1+θ2))
+(1/2)m3{mx3(-sin(-θ1+θ2+θ3)-sin(θ1+θ2+θ3))-my3(cos(-θ1+θ2+θ3)
+cos(θ1+θ2+θ3))}
【数31】
G22
=(1/2)mx2・m2(-cos(-θ1+θ2)+cos(θ1+θ2))
+(1/2)m3・a2(-cos(-θ1+θ2)+cos(θ1+θ2))
+(1/2)m3(mx3(cos(θ1+θ2+θ3)-cos(-θ1+θ2+θ3))
-my3(-sin(-θ1+θ2+θ3)+sin(θ1+θ2+θ3)))
【数32】
G23
=m2・mx2・cos(θ2)+cos(θ2)m3・a2+m3(-my3・sin(θ2+θ3)+mx3・cos(θ2+θ3))
【0046】
上記数9乃至数32は、表2に示すパラメータ、図2に示すリンク長さa1、a2、並びに関節位置θ、関節速度θdのみから構成され、ここで、θ、θd以外はすべて既知の値である。なお、a1はリンクL2のリンク長さであり、a2はリンクL3のリンク長さである。従って、開始位置θsと速度予測値Vreaを入力すれば、開始位置θsにおけるロボットダイナミクスモデルを計算することができ、同様に、目標位置θeと速度予測値Vreaを入力すれば、目標位置におけるロボットダイナミクスモデルが計算できる。具体的には、以下の式に示す通りである。速度予測値Vreaの演算方法については、後述するのでここでの説明は省略する。
【0047】
【数33】
開始位置の慣性行列:Hs=H(θs)
【数34】
開始位置の粘性行列:Cs=C(θs,Vrea)
【数35】
開始位置の重力行列:Gs=G(θs)
【数36】
目標位置の慣性行列:He=H(θe)
【数37】
目標位置の粘性行列:Ce=C(θe,Vrea)
【数38】
目標位置の重力行列:Ge=G(θe)
【0048】
ところで、ロボットの各関節に発生させることができるトルクは、モータや機械の設計仕様から制限される既知の値であり、これをTpeakとすると、上述の数1の左辺を次式のように置き換えられる。
【0049】
【数39】
Tpeak≧H(θ)・θdd+C(θ,θd)+G(θ)・g
【0050】
ここで、Tpeakは、関節の許容ピークトルクn×1行列である。上記数39を変形して次式の数40の形式に変換する。数40の左辺は、関節の許容ピークトルクTpeakから、加減速度に関係の無い重力モーメントや遠心力、コリオリ力等の外乱トルクを差し引いた値であり、加減速に使用できるトルクを表す。数40の右辺は、ロボット各関節が加減速度θddで動作した場合に各関節で発生するトルクを表す。つまり、数40は、第1の課題を満足させる加減速度を演算する上での条件式の1つとなる。
【0051】
【数40】
Tpeak−(C(θ,θd)+G(θ)・g)≧H(θ)・θdd
【0052】
数40において、Tpeak及びgは既知の固定値であり、また、H、C、Gは、ロボット各関節に連結されるリンクの重心位置、質量、慣性テンソル、リンク長さ、及び関節位置θ、関節速度θdから演算されるロボットのダイナミクスモデルである。従って、上記数40において、関節加速度θddを除くと、未知の値は関節速度θdのみとなる。なぜなら、ロボット各関節に連結されるリンクの重心位置、質量、慣性テンソル、リンク長さは、ロボットの機構やリンク形状及び材質等から予め求めておくことが可能な既知の固定値で、また関節位置θは、予め教示された開始位置あるいは目標位置を使用できるからである。
【0053】
そのため、本実施形態では、数40における関節速度θdを予測する手段を持つ。ここでことわっておくが、θdとして教示された目標速度を使用することはできない。すべての関節に対して最高速度での位置決め動作を要求しても、各関節ごとに移動量が違うことが一般的であり、目標位置へ到達する時間すなわち動作時間に差が発生する。そのため、すべての関節で動作時間を同じにすると、移動量の少ない関節は、目標速度より低い速度で動作する。同様の理由で、移動量の少ない関節は加減速度も抑えられるので、この考慮をしなければ、上述の第1の課題を解決する最適な値を演算することはできない。加減速度が抑えられる関節は、他の関節へ与える干渉力の影響を抑えることができる。そのため、本発明に係る実施形態では、関節毎の加減速度についても予測する手段を持つ。
【0054】
関節毎の速度、加減速度の予測は、以下の手順で行う。まず、ロボットのいかなる姿勢でも正常に動作が可能な加速度及び減速度(それぞれ以下、仮の加速度、仮の減速度という。)を予め記憶しておく。次に、予め教示される開始位置θs、目標位置θe、及び目標速度Vから、上記した仮の加減速度が保持されるように、すべての関節の速度パターンを計算する。本発明では、この速度パターンの計算方法を、第1の速度パターン計算方法という。
【0055】
この第1の速度パターン計算方法は、後述する図4の処理フローにおいて、ステップS2、S6及びS9において用いるものであり、その方法について以下に説明する。
【0056】
ロボットの第iの関節における、第1の速度パターン計算方法は、第iの関節の教示される教示データの開始位置θsi、目標位置θei、目標速度Viから、目標加速度Ai、目標減速度Diで動作するように、各関節の速度パターンを生成する公知の計算方法である。ここで、各関節の速度パターンとは、図7に示す台形状の速度パターン、又は図8に示す三角形状の速度パターンのことであり、第iの関節の加速時間Tai、定速時間Tci、減速時間Tdi、動作速度Vriがこの第1の速度パターン計算方法により演算される。また、第iの関節の加速時間Tai、定速時間Tci、減速時間Tdiを加算した値が速度パターンにおける動作時間Triとなる。第iの関節の場合、以下の式を使用することで、第iの関節の開始位置θsi、目標位置θei、目標速度Vi、目標加速度Ai、目標減速度Diから、加速時間Tai、定速時間Tci、減速時間Tdi、動作時間Tri、動作速度Vriを計算できる。
【0057】
【数41】
Tai=Vi/Ai
【数42】
Tdi=Vi/Di
【数43】
Tci={θei−θsi−Vi(Tai+Tdi)/2}/Vi
【数44】
Tri=Tai+Tci+Tdi
【数45】
Vri=Vi
【0058】
ここで、上記数43により求められた定速時間Tciが0未満となったときは、図8に示す三角形状の速度パターンとなるケースで、この場合は、以下の式により、加速時間Tai、定速時間Tci、減速時間Tdi、動作時間Tri、及び動作速度Vriを計算できる。
【0059】
【数46】
【数47】
Tai=Vi/Ai・sf
【数48】
Tdi=Vi/Di・sf
【数49】
Tci=0
【数50】
Tri=Tai+Tci+Tdi
【数51】
Vri=Vi・sf
【0060】
次に、すべての関節の速度パターンの中から、動作時間が最大となる関節(以下、最大動作関節という。)を抽出し、すべての関節において速度パターンの動作時間が、最大動作関節の動作時間と同じになるように速度パターンの再生成を行う。この処理を、終了時間の同期処理という。終了時間の同期処理については、公知の技術であるので説明は省略する。以上の処理の一例を図10及び図11に示す。図10及び図11からも判るように、第1の速度パターン計算を行い、終了時間の同期処理を行うことで、速度予測値Vrea、加速度予測値Area、減速度予測値Dreaを演算できる。
【0061】
速度予測値Vreaを上記数40の関節速度θdに代入することにより、上記数40は関節の加速度又は減速度であるθdd以外はすべて既知の値となる。また、他の関節の動作により干渉トルクを受ける駆動関節の許容ピークトルクを最適に配分するために、演算された加速度予測値Area及び減速度予測値Dreaの各関節間の比例関係を求め、この比例関係と上記数40とを同時に満足する加減速度を求める。つまり、加速時においては、予測された加速度の各関節間の比例関係が保たれ、かつ上記数40を満足させる加速度が、前述の第1の課題を解決する最適な加速度Aoptとなり、減速時においては、予測された減速度の各関節間の比例関係が保たれ、かつ上記数40を満足させる減速度が、前述の第1の課題を解決する最適な減速度Doptとなる。
【0062】
以上の結果、最適な加速度及び減速度が求まるがこれだけでは最適な速度パターンが計算できたとは言えない。なぜなら、最適な加速度Aoptと最適な減速度Doptを使用しても、速度パターンの生成手段が従来と同じであれば、関節毎に動作時間が変わり、図10及び図11に示すような従来と同様の終了時間の同期処理を施さねばならず、これにより最適な加減速度が保持されないためである。そのため、本発明に係る実施形態では、計算の結果求められた最適な加減速度が保持されるような、速度パターン生成処理を含む。以下に、その手順を説明する。
【0063】
前述した終了時間の同期処理において、最長動作時間となった関節についてのみ、既に求めた最適な加速度Aopt及び最適な減速度Doptを用いて、前述した第1の速度パターン計算方法により基準動作時間Tbaseを求める(図4のステップS6)。その他の関節については、最適な加速度Aoptと最適な減速度Doptを保持し、かつ動作時間が上記基準動作時間Tbaseとなるように、第2の速度パターン計算方法を用いた速度パターン生成処理を実行する(図4のステップS7)。これにより、すべての関節の動作時間が最長動作関節と同じになるので、終了時間の同期処理を施す必要が無くなり、先に計算された最適な加減速度が保持される。
【0064】
先に求められた最適な加速度Aopt及び最適な減速度Doptを保持し、かつ動作時間が上記基準動作時間Tbaseとなるような速度パターンが実現できない関節が存在した場合は(図4のステップS8でNO)、その関節のみ第1の速度パターン計算を行い、すべての関節の速度パターン計算が終了した(図4のステップS9)後に、前述の終了時間の同期処理(図4のステップS10)を施せばよい。このようなことが起こるのは、加減速度を最適化したことで、最適化前とは最大動作関節が変わってしまうケースである。終了時間の同期処理を施すことで、加減速度の最適度合いが若干低下するが、加減速に使用できるトルクを越えることは無い。
【0065】
以上のように演算される速度パターンで各関節を動作させることにより、第1の課題を解決できる。第2の課題については、上記数40の慣性行列H及び粘性行列Cが関節に連結されるリンクの慣性テンソルを含んだものになるため、必然的に達成可能となる。
【0066】
また、別の実施形態において、各関節内のモータの軸受けや減速機の摩擦抵抗を考慮した場合について説明する。上記数1で表されるロボットダイナミクスモデルを、次式のように変更することにより、各関節内のモータの軸受けや減速機の摩擦抵抗を考慮できる。
【0067】
【数52】
【0068】
ここで、Cmはモータの軸受けや減速機の動粘性係数n×1行列であり、動粘性係数とは、速度と動摩擦トルクとの比例関係を表す定数である。また、動摩擦トルクとは、速度に比例した大きさを持つトルク成分である。さらに、θdmはモータの速度n×1行列であり、Fcouはクーロン摩擦トルクである。クーロン摩擦トルクとは、速度に無関係な大きさを持ち、常に運動と逆の方向に働くトルク成分である。上記数52において、sgn(θdm)はモータの速度n×1行列に基づいて次式のように決定される符号関数である。
【0069】
【数53】
sgn(θdm)
=1;θdm>0のとき
=0;θdm=0のとき
=−1;θdm<0のとき
【0070】
また、第iの関節の速度とモータの回転速度の関係はその減速比ξiから次式のように表される。
【0071】
【数54】
θdmi=θdi・ξi
【0072】
さらに、上記数52のθdmは、次式で表される。
【0073】
【数55】
θdm=[θd1・ξ1,θd2・ξ2,θd3・ξ3]T
【0074】
ここで、ξiは、第iの関節内の減速機の減速比である。ここで、パラメータCm、Fcou、ξも、予め設定可能な既知の値であるから、上記数52であっても、上述と同様に最適な加減速度の演算が可能であるので、詳細については省略する。
【0075】
さらに、そのほかの別の実施形態においては、上述の数9に示す慣性行列Hを以下のように補正することにより、各関節内における減速機を含むモータロータの慣性モーメントにより発生するトルクの考慮が可能になる。
【0076】
【数56】
【0077】
ここで、Imiは減速機を含むモータロータの慣性モーメントである。連動して動く回転体の慣性モーメントは、その減速比の2乗分の1倍されて入力軸の慣性モーメントに影響を与える。従って、入力軸の慣性モーメントが出力軸に与える影響はその逆であるため、減速比の2乗倍されなければならない。減速機を含むモータロータの慣性モーメントが減速比の2乗倍されて加算されているのはそのためである。
【0078】
慣性行列Hの対角要素は自分自身に与えるトルクの影響を示し、他の要素は他の関節に与える干渉トルクの影響を示している。減速機を含むモータロータの慣性モーメントが他の関節に干渉することは無いので、対角要素のみ補正すればよい。従って、Imi、ξiも、予め設定可能な既知の値であるから、上記数56であっても、上述と同様に最適な加減速度の演算が可能であるので、詳細については省略する。
【0079】
次いで、図1を参照して、本実施形態に係るロボットシステムの構成について説明する。図1に示すように、制御装置10は、
(a)クロック発生器110によって発生されるクロック信号と当該クロック信号を所定の分周比で分周する分周器111によって発生される同期信号SYNCに基づいてROM101に格納されたシステムプログラムに従って、ロボット機構部1の動作を制御するCPU100と、
(b)ロボット機構部1の動作を制御するための位置決め動作処理を含むプログラムと、当該プログラムを実行するために必要なデータを格納するROM101と、
(c)CPU100のワーキングエリアとして用いられ、計算途中のデータを一時的に格納するRAM102と、
(d)上記位置決め動作処理を実行するために必要なデータを予め格納する記憶装置であって、教示データメモリ106aと、仮の加減速度情報メモリ106bと、ロボットダイナミクスベースパラメータメモリ106cとを含むハードディスクメモリ106と、
(e)ティーチペンダント20が接続されたインターフェース103と、
(f)各モータMO1乃至MO3に対する駆動制御値であるモータ指令位置のデータを格納するデュアルポートRAM104とを備える。
これらの各回路100乃至103及び106とデュアルポートRAM104の第1のポートがバス109を介して接続される。なお、ティーチペンダント20についての処理はCPU100の割り込み処理によって実行される。
【0080】
ハードディスクメモリ106内の教示データメモリ106aは、ロボット機構部1を動作させるときのロボット機構部1の各関節の開始位置と、目標位置と、目標速度とを、教示データとして予めティーチペンダント20を用いて入力して格納する。また、仮の加減速度情報メモリ106bは、速度パターンを予測演算するときに用いる各関節の仮の加速度と仮の減速度の情報を予めティーチペンダント20を用いて入力して格納する。さらに、ロボットダイナミクスベースパラメータメモリ106cは、ロボット機構部1の各関節に連結されるリンクの慣性テンソルと、質量と、重心位置とを含むロボットダイナミクスベースパラメータをティーチペンダント20を用いて入力して格納する。
【0081】
デュアルポートRAM104の第2のポートはラッチ回路105に接続され、ラッチ回路105は同期信号SYNCに同期して、デュアルポートRAM104に格納された各モータMO1乃至MO3に対する3個のモータ指令位置のデータを同時にラッチした後、ロボット機構部1の関節制御に関するモータ指令位置のデータをサーボ制御回路107を介してモータMO1乃至MO3に出力して駆動する。
【0082】
次いで、ロボット機構部1の各関節RJk(実施例では、k=1,2,3)の構造とサーボ制御回路107の構成について図3を参照して説明する。図3に示すように、モータMOkの回転軸は減速機REkの入力軸に連結され、減速機REkはモータMOkの回転速度を所定の減速比λkだけ減速することによって、モータMOkによって発生されるトルクを上記減速比の逆数倍だけ増大させて、減速機REkの出力軸に連結されたリンクLkに出力する。ここで、モータMOkの回転軸にはセンサSNkの軸が連結され、当該センサSNkからの出力信号がサーボ制御回路107内の加算器120の減算入力端子に入力される。一方、ラッチ回路105からのモータ指令位置DPkのデータが加算器120の加算入力端子に入力される。加算器120から出力されるデータは、D/A変換器(図示せず。)によってアナログ電圧信号に変換された後、所定の増幅度を有する増幅器121を介してモータMOkの駆動端子に印加される。以上のように構成されたサーボ制御のフィードバック系においては、回転角度がモータ指令位置DPkとなるように制御され、これによって、モータと減速機を介して連結されるリンクLkが、DPkを減速比で除した分である関節変数θkだけ回転される。
【0083】
図4は、図1のCPU100によって実行される位置決め動作処理を示すフローチャートである。
【0084】
図4において、まず、ステップS1において、教示データメモリ106a内の教示データに基づいて、ロボット機構部1の各関節の開始位置、目標位置及び目標速度を設定し、ステップS2において、上記ステップS1で設定されたデータと、仮の加減速度情報メモリ106b内の仮の加減速度情報とに基づいて、第1の速度パターン計算を行い、ロボット機構部1の各関節の動作時間と加速度予測値とを演算する。この処理は、図10の従来例のステップS103及びS104と同様の処理である。具体的には、第1の速度パターン計算方法における目標加速度Aとして仮の加速度Asmpを、目標減速度Dとして仮の減速度Dsmpを使用する。また、第1の速度パターン計算方法により演算される動作速度Vrを加速度予測値Vestとし、動作時間Trを動作時間予測値Testとする。
【0085】
さらに、ステップS3において、ステップS2で演算された全ての関節の速度パターンに対して終了時間の同期処理を実行する。この終了時間の同期処理は、図10の従来例のステップS109乃至S111の処理(以下、従来例の速度パターン再計算処理という。)と同様の処理であり、上記動作時間予測値の中から、動作時間が最大となる関節を最大動作関節とし、その最大動作関節の動作時間を最長動作時間Tmaxとする。そして、各関節について、上記動作時間予測値が上記最長動作時間と同じになるように、動作速度及び加減速度を再計算した値をそれぞれ、速度予測値、加速度予測値及び減速度予測値としてRAM102に一時的に格納する。
【0086】
そして、ステップS4においてロボットダイナミクスベースパラメータメモリ106c内のロボットダイナミクスベースパラメータに基づいて、開始位置及び目標位置のロボットダイナミクスモデルの演算処理を実行する。この処理では、上記開始位置及び目標位置と上記速度予測値と上記ロボットダイナミクスベースパラメータから、数9乃至数38を用いて、開始位置及び目標位置における慣性行列H、粘性行列C及び重力行列Gを含むロボットダイナミクスモデルを演算してロボットダイナミクスベースパラメータメモリ106cに格納する。さらに、ステップS5において最適な加減速度の演算を実行する。この処理では、上記演算されたロボットダイナミクスモデルに基づいて、上記数40と、上記加速度予測及び減速度予測における各関節間の比例関係を同時に満足する加減速度を、最適な加減速度として求める。つまり、加速時においては、加速度予測値Areaの各関節間の比例関係(後述する数76)が保たれ、かつ数40を満足するような最適な加速度Aoptを演算する一方、減速時においては、減速度予測値Dreaの各関節間の比例関係(後述する数89)が保たれ、かつ数40を満足するような最適な減速度Doptを演算し、演算された最適な加速度Aopt及び最適な減速度DoptをRAM102内に格納する。
【0087】
次いで、ステップS6では、ステップS3の処理結果に基づいて、最長動作時間となった関節を検索し、検索した関節である第kの関節について、ステップS5で演算された最適な加速度Aoptkと、最適な減速度Doptkと、第k関節の教示データ(開始位置、目標位置、目標速度)とから、上述の第1の速度パターン計算方法を用いて第k関節の速度パターンを演算し、その動作時間を基準動作時間Tbaseとし、演算結果をRAM102に格納する。さらに、ステップS7では、上記の第kの関節以外のすべての関節について、第2の速度パターン計算方法を用いて、基準動作時間Tbaseと、最適な加速度Aoptと、最適な減速度Doptと、教示データ(開始位置、目標位置)とから、動作時間が基準動作時間Tbaseとなり、最適な加速度Aoptで動作し、最適な減速度Doptで動作する速度パターンを生成してRAM102に格納する。そして、ステップS8では、動作時間が基準動作時間Tbaseとなり、最適な加速度Aoptで動作し、最適な減速度Doptで動作する速度パターンがすべての関節で存在したか否かが判断され、YESのときは当該位置決め動作処理を終了するが、NOのときはステップS9に進む。
【0088】
ステップS9では、動作時間が基準動作時間Tbaseとなり、最適な加速度Aoptで動作し、最適な減速度Doptで動作する速度パターンが存在しなかったすべての関節について、第1の速度パターン計算方法を用いて、最適な加速度Aoptと、最適な減速度Doptと、教示データ(開始位置、目標位置、目標速度)から速度パターンを演算してRAM102に格納する。最後に、ステップS10では、ステップS6、S7及びS9で演算された速度パターンに基づいて、すべての関節の速度パターンの中から最長動作時間を抽出し、従来例の速度パターン再計算処理と同様に、すべての関節について、最長動作時間と一致するように、速度パターンを再計算して計算結果をRAM102に格納する。
【0089】
この位置決め動作処理の後、生成された速度パターンに基づいて、公知の通り、モータ指令位置DPkのデータを計算してデュアルポートRAM104、ラッチ回路105及びサーボ制御回路107を介してロボット機構部1に出力することにより、最適に位置決め動作処理がなされたデータに基づいて、ロボット機構部1の動作を制御することができる。
【0090】
なお、以上の実施形態において、上記数52に示すように、加速度に関係しないトルク成分として、粘性行列C及び重力行列Gに加え、モータMO1乃至MO3の軸受けや減速機RE1乃至RE3から発生する摩擦抵抗を考慮することで、加速に使用することのできるトルクの演算精度を向上させてもよい。また、上記数56に示すように、慣性行列Hの対角成分に、減速機RE1乃至RE3を含むモータMO1乃至MO3のロータの慣性モーメントを加算することで、自分自身の加減速で発生するトルク演算値を補正してもよい。
【0091】
図4のステップS8において、動作時間が基準動作時間Tbaseとなり、最適な加速度Aoptで動作し、最適な減速度Doptで動作する速度パターン存在しない関節があったとき(ステップS8でNO)、その関節を最長動作時間の関節の番号をkとし、ステップS6からの処理を再度行ってもよい。
【0092】
【実施例】
図2に示すロボット機構部1(n=3)における、位置決め動作のための最適な加減速度の演算例を図4のフローチャートを参照して説明する。
【0093】
ステップS1では、ロボット機構部1の各関節について、位置決め動作の開始位置、目標位置及び目標速度を、教示データメモリ106a内の教示データから読み出して以下のようにセットする。
【0094】
【数57】
開始位置:θs=[θs1,θs2,θs3]T
【数58】
目標位置:θe=[θe1,θe2,θe3]T
【数59】
目標速度:V=[V1,V2,V3]T
【0095】
一方、仮の加減速度情報メモリ106bには、ロボットのすべての姿勢で動作が可能な仮の加減速度情報の値が以下のように予めセットされる。
【0096】
【数60】
仮の加速度:Asmp=[Asmp1,Asmp2,Asmp3]T
【数61】
仮の減速度:Dsmp=[Dsmp1,Dsmp2,Dsmp3]T
【0097】
そして、ステップS2では、上記セットされた開始位置、目標位置、目標速度、仮の加速度及び仮の減速度に基づいて、各関節毎に前述の第1の速度パターン計算を行う。第1の速度パターンの計算は、従来例と同様である。第1の速度パターン計算により、以下の値が予測される。その概念を図5に示す。図5の例では、第1の関節及び第2の関節は、目標速度に達するに必要な移動量があったが、第3の関節は移動量が少なく、目標速度に達していない。
【0098】
【数62】
加速度予測値:Vest=[Vest1,Vest2,Vest3]T
【数63】
動作時間予測値:Test=[Test1,Test2,Test3]T
【0099】
さらに、ステップS3においては、前述の終了時間の同期処理後におけるロボット各関節の速度及び加減速度の値を以下のように再予測する。
【0100】
【数64】
速度予測値:Vrea=[Vrea1,Vrea2,Vrea3]T
【数65】
加速度予測値:Area=[Area1,Area2,Area3]T
【数66】
減速度予測値:Drea=[Drea1,Drea2,Drea3]T
【0101】
上記動作時間予測値における最長動作時間をTmaxとおくと、上記の値は、以下の式から演算できる。終了時間の同期処理の概念を図6に示す。図6の予測例では、移動量の少ない第2の関節及び第3の関節の速度及び加減速度が低下しているのがわかる。
【0102】
【数67】
Vreai=Vesti・Testi/Tmax
【数68】
Areai=Asmpi・(Testi/Tmax)2
【数69】
Dreai=Dsmpi・(Testi/Tmax)2
【0103】
なお、ロボットダイナミクスベースパラメータメモリ106cは、上記数1で表されるロボットダイナミクスモデルを生成するための、ロボットダイナミクスベースパラメータを予め格納する。ロボットダイナミクスベースパラメータの一覧を以下の表に示す。
【0104】
【表3】
【0105】
次いで、ステップS4では、上記ロボットダイナミクスベースパラメータと、ロボット機構部の各関節の位置及び速度から、上記数1で表現されるロボットダイナミクスモデルを生成する。ロボットダイナミクスモデルは、慣性行列Hと、粘性行列Cと、重力行列Gから構成される。図2の機構を持つロボット機構部1におけるダイナミクスモデルを、ニュートン及びオイラー法に基づき計算したものが数9乃至数38に示されている。これら数9乃至数38に示されたモデル式において、未知の値は、関節の位置及び速度のみであり、これに開始位置θsと、速度予測値Vreaとを入力すれば、開始位置におけるロボットダイナミクスモデルを計算できる。同様に、目標位置θeと、速度予測値Vreaを入力すれば、目標位置におけるロボットダイナミクスモデルを計算できる。従って、ステップS4では、以下のロボットダイナミクスモデルが計算される。
【0106】
【表4】
【0107】
次いで、ステップS5では、最適な加速度Aopt及び最適な減速度Doptを、以下の手順で演算する。最初は、最適な加速度Aoptを求める。そして、Hs、Gs、Csをそれぞれ数40のH、G、Cに代入し、最適な加速度Aopt(又は最適な減速度Dopt)を数40のθddとする。また、簡略化のため数40の左辺を1つにまとめると次式のように表すことができる。
【0108】
【数70】
Tad≧Hs(θs)・Aopt
【0109】
数70の左辺のTadは、次式で表され、加速時においては加速に使用できるトルクであり、減速時においては減速に使用できるトルクとなる。ここでは、加速度を求めようとしているので、Tadは加速に使用できるトルクを表す。加速時と減速時とでは、使用するトルクの符号が異なるので、前述した終了時間の同期処理後における各関節加速度の予測値Areaの符号を考慮する。
【0110】
【数71】
Tad
=sgn2(Area)・Tpeak−(Cs(θs,Vrea)
+G(θs)・g)
【0111】
ここで、符号関数sgn2は次式で表される。
【0112】
【数72】
sgn2(Area)
=1;Area≧0のとき
=−1;Area<0のとき
【0113】
上記数70を要素別に展開すると、次式のように表される。Tadは、加速に使用できるトルクを表しているから、次式が加速に使用できるトルクを最大限利用するための加速度を求める条件式となる。
【0114】
【数73】
Tad1
≧Hs11・Aopt1+Hs12・Aopt2+Hs13・Aopt3
【数74】
Tad2
≧Hs21・Aopt1+Hs22・Aopt2+Hs23・Aopt3
【数75】
Tad3
≧Hs31・Aopt1+Hs32・Aopt2+Hs33・Aopt3
【0115】
前述した終了時間の同期処理後における各関節加速度の予測値はAreaであった。各関節の最適な加速度Aoptも、加速度予測値Areaと同じ比例関係を保つものとすると、次式の関係を満たさなければならない。
【0116】
【数76】
Aopt1:Aopt2:Aopt3=Area1:Area2:Area3
【0117】
上記数73乃至75及び数76の関係を満たす加速度Aoptが、加速度予測値Areaの各関節間の比例関係を保ち、かつ加速に使用できるトルクを最大限利用できる加速度であり、本実施形態において、最適となる値となる。基準関節は、動作する関節であればどれでも良いが、本実施例では、Areaの中で絶対値が最大となる関節を求め、これを基準関節jとする。基準関節jをベースに上記数76を次式のように変形する。
【0118】
【数77】
Aopt1=(Area1/Areaj)・Aoptj
【数78】
Aopt2=(Area2/Areaj)・Aoptj
【数79】
Aopt3=(Area3/Areaj)・Aoptj
【0119】
ここで、Areajは基準関節jの予測加速度であり、Aoptjは基準関節jの最適な加速度である。次に、上記数77乃至79を上記数73乃至75に代入して展開すると、次の3個の不等式になる。
【0120】
【数80】
Tad1
≧H11・(Area1/Areaj)・Aoptj+H12・(Area2/Areaj)・Aoptj
+H13・(Area3/Areaj)・Aoptj
【数81】
Tad2
≧H21・(Area1/Areaj)・Aoptj+H22・(Area2/Areaj)・Aoptj
+H23・(Area3/Areaj)・Aoptj
【数82】
Tad3
≧H31・(Area1/Areaj)・Aoptj+H32・(Area2/Areaj)・Aoptj
+Hn3・(Area3/Areaj)・Aoptj
【0121】
上記数80乃至82の3個の不等式において、基準関節jにおける最適な加速度Aoptj以外はすべて既知の値であるから、上記数80乃至82の3個の不等式から、基準関節jにおける最適な加速度が3通り計算できる。このときに計算される3個の加速度をそれぞれを、Aoptj_1、Aoptj_2、Aoptj_3とすると、次式を得る。
【0122】
【数83】
Aoptj_1=Tad1・Areaj/(H11・Area1+H12・Area2+H13・Area3)
【数84】
Aoptj_2=Tad2・Areaj/(H21・Area1+H22・Area2+H23・Area3)
【数85】
Aoptj_3=Tad3・Areaj/(H31・Area1+H32・Area2+H33・Area3)
【0123】
上記数83乃至85に示す加速度Aoptj_1、Aoptj_2、Aoptj_3から、絶対値が最小の値を基準関節jの最適な加速度としなければならない。なぜなら、絶対値が最小の値のみが、上記数80乃至数82の3個の不等式を同時に満たすことができるからである。加速度Aoptj_1、Aoptj_2、Aoptj_3の中で最小の値を最小の加速度Aoptj_minとし、これを上記数77乃至数79に代入すると次式となり、これによりすべての関節の最適な加速度を求めることができる。
【0124】
【数86】
Aopt1=(Area1/Areaj)・Aoptj_min
【数87】
Aopt2=(Area2/Areaj)・Aoptj_min
【数88】
Aopt3=(Area3/Areaj)・Aoptj_min
【0125】
このようにして求められた加速度が、第1の課題を満たす最適な加速度となる。最適な減速度Doptについても、全く同様の手順で求めることができる。具体的には、上記数70乃至数88において、パラメータθs、Hs、Cs、Gs、Aopt、Areaの代わりにそれぞれ、パラメータθe、He、Ce、Ge、Dopt、Dreaを使用すればよい。ここで、加速度に関する数76に対応する減速度に関する式は次式となる。
【0126】
【数89】
Dopt1:Dopt2:Dopt3=Drea1:Drea2:Drea3
【0127】
次いで、ステップS6では、以上の計算の結果求められた最適な加減速度が保持されるような、速度パターンの演算処理を行う。以下に、その手順を説明する。ステップS3の終了時間の同期処理において、最長動作時間となった第k関節についてのみ、最適な加速度Aoptk、最適な減速度Doptkを用いて、前述した第1の速度パターン計算により基準動作時間Tbaseを求める。次いで、ステップS7では、第k関節以外の関節について、加速度が最適な加速度Aoptとなり、減速度が最適な減速度Doptとなり、かつ動作時間が基準動作時間Tbaseとなるように、第2の速度パターン計算を行う。ステップS6、S7により、すべての関節の速度パターンにおける動作時間が基準動作時間Tbaseとなるので、終了時間の同期処理を施す必要が無くなり、先に計算された最適な加減速度が保持される。
【0128】
ロボットの第iの関節における、第2の速度パターン計算方法について図9を交えて具体的に説明する。図9から判るように、既知の値である基準動作時間Tbase、第iの関節の最適な加速度Aopti、第iの関節の最適な減速度Dopti、第iの関節の移動量Saiは、第iの関節の最適な速度Vopti、第iの関節の加速時間Tai、第iの関節の定速度時間Tci、第iの関節の減速時間Tdiにより以下の式で表される。
【0129】
【数90】
Tbase=Tai+Tci+Tdi
【数91】
Sai=Vopti・(Tci+(Tai+Tdi)/2)
【数92】
Vopti=Tai・Aopti
【数93】
Vopti=Tdi・Dopti
【0130】
上記数90乃至93の4つの式からなる連立方程式を解くと、時間Tci、Vopti、Tai、Tdiを、以下の式から演算できる。
【0131】
【数94】
【0132】
【数95】
Vopti
=(Tbase−Tci)・Aopti・Dopti/(Dopti+Aopti)
【数96】
Tai=Vopti/Aopti
【数97】
Tdi=Vopti/Dopti
【0133】
ただし、加速度が最適な加速度Aoptiとなり、減速度が最適な減速度Doptiとなり、かつ動作時間が基準動作時間Tbaseとなるような、速度パターン計算が求まらないケースがある。それは、次の2つのケースである。
(a)上記数94において、定速時間Tciが虚数として求まる場合、及び
(b)上記数94において、最適な速度Voptiが教示速度Viを越える値として求まる場合。
【0134】
ステップS8では、上記の2つのケースに該当する関節が存在した場合をNOと判定する。ステップS9では、ステップS8でNOと判定された全ての関節について、従来と同様の第1の速度パターン計算を実施する。次いでステップS10では、すべての関節の速度パターンについて、前述の終了時間の同期処理を施す。ステップS8でNOと判定されるのは、加減速度を最適化したことで、最適化前とは最大動作関節が変わってしまうケースであるあるが、ステップS9、S10の処理を実施することで、加減速度の最適度合いが若干低下するが、加減速に使用できるトルクを越えることは無い。
【0135】
最後に、上記数71におけるgは重力加速度ベクトルであり、重力の働く方向を定義するものである。一般的に、ロボット座標において重力が−z方向に働くよう座標を定義するので、gは次式のようになる。なお、重力加速度は、9.8m/sec2である。
【0136】
【数98】
g=[0,0,−1×(重力加速度)]T
【0137】
以上説明したように、本発明に係る実施形態によれば、開始位置及び目標位置と速度予測値とロボットダイナミクスベースパラメータから、上記数9乃至数38を用いて、開始位置及び目標位置における慣性行列H、粘性行列C及び重力行列Gを含むロボットダイナミクスモデルを計算し(ステップS4)、計算されたロボットダイナミクスモデルに基づいて、加速度予測値の各関節間の比例関係と各関節の許容ピークトルクの条件を満足する最適な加速度及び減速度を演算した(ステップS5)後、すべての関節で動作時間を一致させる同期処理を実行する(ステップS6、S7)。従って、ロボット機構部1の各関節毎の移動量に大きな差がある位置決め動作を行う場合でも、駆動関節の許容トルクを最大限有効に使用した加減速度を演算し、動作時間の短縮を可能にし、関節に連結されるリンク自体の慣性による負荷トルク成分を考慮し、関節回転中心から関節に連結されるリンクの重心位置までの距離が短いロボットや、ロボットが特異な姿勢となっても、厳密な負荷トルク成分の計算を実現することで、許容値を越えるトルクを必要とするような加減速度の演算を防止する。これにより、ロボット機構部1の各関節の許容ピークトルクを越えず、かつ最短時間で動作が終了できる最適な各関節の加減速度を求めることができる。
【0138】
また、動作時間が基準動作時間Tbaseとなり、最適な加速度Aoptで動作し、最適な減速度Doptで動作する速度パターンがすべての関節で存在しないときは、ステップS9で第1の速度パターン計算方法を用いて速度パターンを演算した後、ステップS10で従来例の速度パターン再計算処理で同期処理を実行しているので、すべての場合について、最適な速度パターンを演算できる。
【0139】
さらに、本実施形態によれば、モータの軸受けや減速機の摩擦抵抗を考慮し、厳密な負荷トルク成分の計算を実現するので、許容値を越えるトルクを必要とするような加減速度の演算を防止することができる。
【0140】
またさらに、本実施形態によれば、減速機を含むモータロータの慣性モーメントにより発生するトルクを考慮し、厳密な負荷トルク成分の計算を実現するので、許容値を越えるトルクを必要とするような加減速度の演算を防止することができる。
【0141】
<変形例>
以上の実施形態において、ロボット機構部1は、3個の関節RJ1乃至RJ3を備えているが、本発明はこれに限らず、少なくとも2個の関節を備えていればよい。
【0142】
以上の実施形態においては、各関節RJ1乃至RJ3は回転可能に構成されているが、本発明はこれに限らず、2つの関節以上では少なくとも1つは、並進運動を行う直動であってもよい。
【0143】
【発明の効果】
以上詳述したように本発明に係るロボットシステムの制御方法又は制御装置によれば、計算されたロボットダイナミクスモデルに基づいて、加速度予測値の各関節間の比例関係と各関節の許容ピークトルクの条件を満足する最適な加速度及び減速度を演算した後、すべての関節で動作時間を一致させる同期処理を実行する。従って、ロボット機構部の各関節毎の移動量に大きな差がある位置決め動作を行う場合でも、駆動関節の許容トルクを最大限有効に使用した加減速度を演算し、動作時間の短縮を可能にし、関節自体の慣性による負荷トルク成分を考慮し、関節回転中心から重心位置までの距離が短いロボットや、ロボットが特異な姿勢となっても、厳密な負荷トルク成分の計算を実現することで、許容値を越えるトルクを必要とするような加減速度の演算を防止する。これにより、ロボット機構部の各関節の許容ピークトルクを越えず、かつ最短時間で動作が終了できる最適な各関節の加減速度を求めることができる。
【0144】
また、上記ロボットシステムの制御方法又は制御装置において、好ましくは、上記加速度に関係しないトルク成分を、上記粘性行列及び重力行列に加算することにより、上記各関節で発生する摩擦抵抗を考慮する。従って、上記各関節の摩擦抵抗を考慮し、厳密な負荷トルク成分の計算を実現するので、許容値を越えるトルクを必要とするような加減速度の演算を防止することができる。
【0145】
さらに、上記ロボットシステムの制御方法又は制御装置において、好ましくは、上記慣性行列の対角成分に、上記各関節の慣性モーメントを加算することにより、上記各関節自身の加減速で発生するトルク演算値を補正する。従って、上記各関節の慣性モーメントにより発生するトルクを考慮し、厳密な負荷トルク成分の計算を実現するので、許容値を越えるトルクを必要とするような加減速度の演算を防止することができる。
【図面の簡単な説明】
【図1】 本発明に係る一実施形態であるロボットシステムの構成を示すブロック図である。
【図2】 図1のロボット機構部1の構成を示すスケルトン図である。
【図3】 図1のロボット機構部1の各関節RJk(k=1,2,3)の構成を示す斜視図、並びに図1の制御装置10内のサーボ制御回路107の構成を示すブロック図である。
【図4】 図1のCPU100によって実行される位置決め動作処理を示すフローチャートである。
【図5】 図4の速度パターンの予測演算処理(ステップS2)の概念を示すグラフであって、(a)は第1の関節の予想速度パターンを示す時間対第1の関節の速度特性を示すグラフであり、(b)は第2の関節の予想速度パターンを示す時間対第2の関節の速度特性を示すグラフであり、(c)は第3の関節の予想速度パターンを示す時間対第3の関節の速度特性を示すグラフである。
【図6】 図4の速度パターンの終了時間の同期処理(ステップS3)の概念を示すグラフであって、(a)は第1の関節の予想速度パターンを示す時間対第1の関節の速度特性を示すグラフであり、(b)は第2の関節の予想速度パターンを示す時間対第2の関節の速度特性を示すグラフであり、(c)は第3の関節の予想速度パターンを示す時間対第3の関節の速度特性を示すグラフである。
【図7】 台形状の速度パターンのときの本実施形態で用いる第1の速度パターン計算方法を示す、時間対速度特性を示すグラフである。
【図8】 三角形状の速度パターンのときの本実施形態で用いる第1の速度パターン計算方法を示す、時間対速度特性を示すグラフである。
【図9】 本実施形態で用いる第2の速度パターン計算方法を示す、時間対速度特性を示すグラフである。
【図10】 第1の従来例の位置決め動作処理を示すフローチャートである。
【図11】 図10の終了時間の同期処理の一例を説明するための各関節の速度パターンを示すグラフであって、(a)は第1の関節の速度パターンを示す時間対第1の関節の速度特性を示すグラフであり、(b)は第2の関節の速度パターンを示す時間対第2の関節の速度特性を示すグラフであり、(c)は第3の関節の速度パターンを示す時間対第3の関節の速度特性を示すグラフである。
【符号の説明】
1…ロボット機構部、
10…制御装置、
20…ティーチペンダント、
100…CPU、
101…ROM、
102…RAM、
103…インターフェース、
104…デュアルポートRAM、
105…ラッチ回路、
106…ハードディスクメモリ、
106a…教示データメモリ、
106b…仮の加減速度情報メモリ、
106c…ロボットダイナミクスベースパラメータメモリ、
107…サーボ制御回路、
110…クロック発生器、
111…分周器、
RJ1乃至RJ3……関節、
L1乃至L4…リンク、
MO1乃至M3…モータ、
RE1乃至RE3…減速機、
SN1乃至SN3…センサ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a control method and a control apparatus for a robot system.
[0002]
[Prior art]
Conventionally, a control device of a robot system having a plurality of joints is provided with an acceleration / deceleration (hereinafter, acceleration and deceleration are included, and acceleration / deceleration is included, and acceleration / deceleration is included) in an operation speed command. Operation is realized. Even if the joints of the robot are operated with the same speed pattern, the torque generated at the joints differs depending on the posture of the robot. This is because load torque such as gravity and interference force received from other joints changes depending on the joint position of the robot, that is, the robot posture. If the speed pattern is fixed in the robot posture in which the load torque is maximum, the operation time in the posture in which the influence of the load torque is small is extended more than necessary. On the other hand, if it is fixed in the minimum posture, a torque that is larger than the motor can tolerate in a posture with a large load torque is required, and an abnormality occurs in the motor control.
[0003]
FIG. 10 is a flowchart showing the positioning operation process of the first conventional example. In FIG. 10, first, after resetting the joint number i to 0 in step S101, the joint number i becomes the final joint i.maxSteps S102 to S104 are repeated for each joint number i. Here, in step S102, the start position, the target position, and the target speed are set. In step S103, the movement amount is calculated. In step S104, the speed pattern is calculated based on the acceleration and deceleration preset information. Do. Further, in step S107, the joint having the longest motion time is extracted, and after resetting the joint number i to 0 in step S108, the joint number i becomes the final joint i.maxUntil end time, the synchronization process of the end time, which is the recalculation process of the speed pattern in step S109, is repeated for each joint number i.
[0004]
FIG. 11 is a graph showing a velocity pattern of each joint for explaining an example of the end time synchronization process of FIG. In step S107 of FIG. 10, the second joint has the longest motion time t.maxThe velocity patterns of the first joint and the third joint are extracted as having the motion time t of the second joint is the longest motion time tmaxAnd
(A) The area Sa becomes equal to the area Sap,
(B) The area Sb is equal to the area Sbp,
(C) The area Sc is equal to the area Scp,
(D) Area Sd becomes equal to area Sdp
To be determined. In addition, the area which is the integral value of the graph of FIG. 10 represents distance.
[0005]
In the first conventional example, the acceleration and deceleration information used for generating the speed pattern in step S104 is preset for each joint, and the degree of influence of the load torque that varies according to the posture of the robot is Not considered. The fluctuating load torque includes gravity, load inertia moment, interference force received from other joints, and the like. For this reason, the preset acceleration and deceleration information are generally set to values that do not cause any abnormality in motor control in the robot posture where the load torque is maximum.
[0006]
[Problems to be solved by the invention]
However, the first conventional method has the following problems.
(A) In the positioning operation in the robot posture where the load torque is not maximum, the motor capacity is not used to the maximum extent.
(B) When designing the robot, the motor must be selected so that no abnormality occurs in the motor control in the robot posture with the maximum load torque, which inevitably results in overspec.
[0007]
In order to solve this problem, Japanese Patent Application Laid-Open No. 7-261822 (hereinafter referred to as a second conventional example) describes a driving joint that receives an interference torque due to a gravitational moment, an inertia due to acceleration, and an operation of another joint. The load torque component generated from the mass of each joint and the position of the center of gravity is calculated, and the load torque component affected by the acceleration is subtracted from the allowable peak torque of the drive joint, which is not affected by the acceleration / deceleration. The method of obtaining the acceleration / deceleration time was taken so as to be a value. However, this method also has the following problems.
[0008]
(A) Drive when the acceleration / deceleration time is calculated under the precondition that all the joints of the robot have the same acceleration / deceleration time, and the positioning operation has a large difference in the movement amount of each joint. The operating time cannot be shortened even though there is a margin in the allowable torque of the joint. Hereinafter, it is referred to as a first problem.
(B) Since the load torque component due to the inertia tensor of the robot link itself is not taken into account, a robot with a short distance from the rotation center of the joint to the position of the center of gravity cannot accurately calculate the load torque component. Hereinafter, it is referred to as a second problem.
[0009]
The object of the present invention is to solve the above-mentioned problems and to obtain the optimum acceleration / deceleration of each joint that can be completed in the shortest time without exceeding the allowable peak torque (allowable value) of each joint of the robot mechanism section. It is also possible to provide a robot system control method and control apparatus that can reduce the operation time.
[0010]
[Means for Solving the Problems]
A control method of a robot system according to the present invention is a control method of a robot system that controls the operation of a robot mechanism unit having a plurality of joints,
A first storage step of storing, as teaching data, a start position, a target position, and a target speed of each joint of the robot mechanism section when operating the robot mechanism section;
A second storage step of storing, in a second storage means, information on acceleration and deceleration of each joint used when predicting and calculating a speed pattern of each joint of the robot mechanism section;
Based on the teaching data stored in the first storage means and the acceleration and deceleration of each joint stored in the second storage means,A speed pattern with respect to time for each joint so as to operate with the acceleration and deceleration of each joint stored from the teaching data which is the start position, target position and target speed of each joint, and a constant acceleration Calculate a trapezoidal speed pattern that operates at a constant speed and operates at a constant deceleration, or a triangular speed pattern that operates at a constant acceleration and operates at a constant deceleration.Using the first velocity pattern calculation method, each joint of the robot mechanism unitAdditionA first calculation step of calculating a speed predicted value and an operating time predicted value, and calculating the maximum value as the longest operating time from the operating time predicted value;
The joint with the maximum motion time among the predicted motion time values is the maximum motion joint, the motion time of the maximum motion joint is the longest motion time, and the motion time prediction value for each joint is the same as the longest motion time. The trapezoidal speed is the same when the acceleration is the same before and after the recalculation, and the same when the deceleration is before and after the recalculation, and operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. Recalculate the motion speed and acceleration / deceleration values so that they become patterns, and recalculate them as speed prediction values, acceleration prediction values, and deceleration prediction values, respectively.Using the speed pattern recalculation method, for each joint of the robot mechanism unit, the predicted operation time calculated by the first calculation step is the same as the longest operation time calculated by the first calculation step. In a control method for a robot system, including a second calculation step in which values recalculated as speed, acceleration, and deceleration are used as a speed prediction value, an acceleration prediction value, and a deceleration prediction value.
A third storage step of storing, in a third storage means, robot dynamics base parameters including an inertia tensor, a mass and a gravity center position of each link connected to each joint of the robot mechanism section;
A start position and a target position of each joint stored in the first storage means; a predicted speed value calculated in the second calculation step; and a robot dynamics base parameter stored in the third storage means; On the basis of the,
(A) For each joint of the robot mechanism section, an inertia matrix indicating torque generated in the joint itself by acceleration, and interference torque generated by acceleration of other joints;
(B) a viscosity matrix indicating a torque generated by centrifugal force and Coriolis force for each joint of the robot mechanism unit;
(C) a gravity matrix indicating torque generated by the gravitational moment of each joint of the robot mechanism section;
A third calculation step for calculating a robot dynamics model at the start position and the target position, including:
Based on the robot dynamics model calculated by the third calculation step, and the predicted acceleration value and deceleration prediction value of each joint calculated by the second calculation step,A first proportional relationship in which a predicted acceleration value of each joint is proportional to each other and a proportional relationship between the joints of the acceleration predicted value is maintained during acceleration, and a predicted deceleration value of each joint is decelerated in proportion to each other Sometimes a second proportional relationship is maintained that the proportional relationship between each joint in the predicted deceleration value is retainedSatisfies the first condition, andThe value of the weight term obtained from the gravity matrix not related to acceleration and deceleration from the allowable peak torque of each joint, and the value of the viscosity term obtained from the viscosity matrix not related to acceleration and decelerationThe subtraction result value obtained by subtracting the optimal acceleration and the optimal condition satisfying the second condition that each joint is equal to or greater than the torque generated at each joint when the joint is operated with the predicted acceleration value and the predicted deceleration value. DecelerationFor each jointA fourth calculation step for calculating;
The joint having the longest operation time in the first calculation step is searched, and the optimum acceleration and optimum deceleration calculated in the fourth calculation step are calculated for the k-th joint that is the searched joint, From the teaching data including the start position, target position and target speed of the kth joint stored in the first storage means, the speed pattern of the kth joint is calculated using the first speed pattern calculation method, A fifth calculation step using the operation time as a reference operation time;
For all joints other than the kth joint, the reference operation time calculated by the fifth calculation step, the optimum acceleration and optimum deceleration calculated by the fourth calculation step, and the first Based on the teaching data including the start position and the target position stored in the storage means,Only for the joint that has reached the reference movement time that is the longest movement time, the reference movement time is obtained by the first speed pattern calculation method using the optimum acceleration and the optimum deceleration, and for other joints, Calculate the trapezoidal velocity pattern of each joint so that the optimal acceleration and the optimal deceleration are maintained and the operation time is the above-mentioned reference operation time.Using a second speed pattern calculation method, and a sixth calculation step of generating a speed pattern that has the operation time as the reference operation time and operates at the optimum acceleration and the optimum deceleration. And
[0011]
In the above-described robot system control method, preferably,In the viscosity matrix and the gravity matrix, as torque not related to acceleration,By adding to the viscosity matrix and the gravity matrix, the frictional resistance generated at each joint is taken into consideration.
[0012]
Furthermore, in the control method of the robot system, preferably,Consisting of moment of inertia of each jointFor each diagonal component of the inertia matrix,Motor rotor including reducerAnd a step of correcting a torque calculation value generated by acceleration / deceleration of each joint itself by adding the inertia moments.
[0013]
A control device for a robot system according to the present invention is a control device for a robot system that controls the operation of a robot mechanism having a plurality of joints,
First storage means for storing, as teaching data, the start position, target position, and target speed of each joint of the robot mechanism when operating the robot mechanism;
Second storage means for storing information on acceleration and deceleration of each joint used when predicting and calculating a speed pattern of each joint of the robot mechanism section;
Based on the teaching data stored in the first storage means and the acceleration and deceleration of each joint stored in the second storage means,A speed pattern with respect to time for each joint so as to operate with the acceleration and deceleration of each joint stored from the teaching data which is the start position, target position and target speed of each joint, and a constant acceleration Calculate a trapezoidal speed pattern that operates at a constant speed and operates at a constant deceleration, or a triangular speed pattern that operates at a constant acceleration and operates at a constant deceleration.First speed pattern calculationMethodUsing the above, each joint of the robot mechanismAdditionA first calculation means for calculating a speed prediction value and an operation time prediction value, and calculating the maximum value as the longest operation time from the operation time prediction values;
The joint with the maximum motion time among the predicted motion time values is the maximum motion joint, the motion time of the maximum motion joint is the longest motion time, and the motion time prediction value for each joint is the same as the longest motion time. The trapezoidal speed is the same when the acceleration is the same before and after the recalculation, and the same when the deceleration is before and after the recalculation, and operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. Recalculate the motion speed and acceleration / deceleration values so that they become patterns, and recalculate them as speed prediction values, acceleration prediction values, and deceleration prediction values, respectively.Speed pattern recalculationMethodFor each joint of the robot mechanism unit, the speed of the predicted motion time calculated by the first calculation means is the same as the longest motion time calculated by the first calculation means. And a controller for a robot system comprising second calculation means for setting the values recalculated as acceleration and deceleration as speed prediction values, acceleration prediction values, and deceleration prediction values,
Third storage means for storing robot dynamics base parameters including an inertia tensor, a mass and a gravity center position of each link connected to each joint of the robot mechanism section;
A start position and a target position of each joint stored in the first storage means; a speed prediction value calculated by the second calculation means; and a robot dynamics base parameter stored in the third storage means; On the basis of the,
(A) For each joint of the robot mechanism section, an inertia matrix indicating torque generated in the joint itself by acceleration, and interference torque generated by acceleration of other joints;
(B) a viscosity matrix indicating a torque generated by centrifugal force and Coriolis force for each joint of the robot mechanism unit;
(C) a gravity matrix indicating torque generated by the gravitational moment of each joint of the robot mechanism section;
A third computing means for calculating a robot dynamics model at the start position and the target position, including:
Based on the robot dynamics model calculated by the third calculation means and the predicted acceleration value and deceleration prediction value of each joint calculated by the second calculation means,A first proportional relationship in which a predicted acceleration value of each joint is proportional to each other and a proportional relationship between the joints of the acceleration predicted value is maintained during acceleration, and a predicted deceleration value of each joint is decelerated in proportion to each other Sometimes a second proportional relationship is maintained that the proportional relationship between each joint in the predicted deceleration value is retainedSatisfies the first condition, andThe value of the weight term obtained from the gravity matrix not related to acceleration and deceleration from the allowable peak torque of each joint, and the value of the viscosity term obtained from the viscosity matrix not related to acceleration and decelerationThe subtraction result value obtained by subtracting the optimal acceleration and the optimal condition satisfying the second condition that each joint is equal to or greater than the torque generated at each joint when the joint is operated with the predicted acceleration value and the predicted deceleration value. DecelerationFor each jointA fourth calculating means for calculating;
A search is made for the joint having the longest operation time in the first calculation means, and for the k-th joint that is the searched joint, the optimum acceleration and optimum deceleration calculated by the fourth calculation means, From the teaching data including the start position, target position and target speed of the kth joint stored in the first storage means, the first speed pattern calculation is performed.MethodCalculating a speed pattern of the k-th joint using, and using the operation time as a reference operation time;
For all joints other than the k-th joint, the reference operation time calculated by the fifth calculation means, the optimum acceleration and optimum deceleration calculated by the fourth calculation means, and the first Based on the teaching data including the start position and the target position stored in the storage means,Only for the joint that has reached the reference movement time that is the longest movement time, the reference movement time is obtained by the first speed pattern calculation method using the optimum acceleration and the optimum deceleration, and for other joints, Calculate the trapezoidal velocity pattern of each joint so that the optimal acceleration and the optimal deceleration are maintained and the operation time is the above-mentioned reference operation time.Second speed pattern calculationMethodAnd a sixth operation means for generating a speed pattern that operates with the optimum acceleration and the optimum deceleration.
[0014]
In the control device for the robot system, preferably,In the viscosity matrix and the gravity matrix, as torque not related to acceleration,The frictional resistance generated at each joint is taken into consideration.
[0015]
Furthermore, in the control device of the robot system, preferably,Consisting of moment of inertia of each jointFor each diagonal component of the inertia matrix,Motor rotor including reducerMeans for correcting torque calculation values generated by acceleration / deceleration of the joints by adding the inertia moments.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments according to the present invention will be described below with reference to the drawings.
[0017]
FIG. 1 is a block diagram showing a configuration of a robot system according to an embodiment of the present invention, and FIG. 2 is a skeleton diagram showing a configuration of the
[0018]
The control device 10 of the robot system according to this embodiment will be described in brief. By efficiently using the performance of the motor that drives the joints RJ1 to RJ3 of the
[0019]
First, the operation principle of the control method according to this embodiment will be described in detail below. From the position of the center of gravity, the mass, the link length, the inertia tensor, and the position (angle), speed, and acceleration of each joint, the torque T generated at each joint is expressed by the following equation: It is known that it can be calculated by the robot dynamics model.
[0020]
[Expression 1]
T = H (θ) · θdd + C (θ, θd) + G (θ) · g
[0021]
This
[0022]
The inertia matrix H, the viscosity matrix C, and the gravity matrix G can be calculated from the center of gravity position, the mass, the inertia tensor, and the position, velocity, and acceleration of each joint connected to each joint of the
[0023]
[Table 1]
[0024]
Next, the unit and the number of each item used in this embodiment are shown below.
[0025]
[Table 2]
―――――――――――――――――――――――――――――――――――
Symbol Item Unit Quantity
―――――――――――――――――――――――――――――――――――
T Torque generated in the joint N · mn × 1 matrix
θ Joint position (angle) rad n × 1 matrix
θd Joint speed rad / sec n × 1 matrix
θdd Joint acceleration rad / sec2 n × 1 matrix
H Inertia matrix kg · m2 n × n matrix
C Viscosity matrix N · m n × 1 matrix
G Gravity matrix kg · m n × 3 matrix
g Gravity acceleration vector m / s2 3 × 1 matrix
Tpeak allowable joint torque N · m n × 1 matrix
θs start position rad n × 1
θe target position rad n × 1
V target speed rad / sec n × 1
Asmp provisional acceleration rad / sec2 n × 1
Dsmp Temporary deceleration rad / sec2 n × 1
VestAdditionSpeed prediction value rad / sec n × 1
Test operation time predicted value sec n × 1
Vrea speed prediction value rad / sec n × 1
Area Acceleration prediction value rad / sec2 n × 1
Dream deceleration prediction value rad / sec2 n × 1
Tmax Maximum
―――――――――――――――――――――――――――――――――――
Ixi, Ixyi, Ixzi Link inertia tensor kg · m2 3x3
Ixyi, Iyi, Iyzi
Ixzi, Iyzi, Izi
―――――――――――――――――――――――――――――――――――
mi link
mxi, myi, mzi Link centroid
No symbol Gravity acceleration m /
Cm Kinematic viscosity coefficient N ・ m ・ sec n × 1 matrix
θdm Motor speed rad / sec n × 1 matrix
Fcou Coulomb friction torque N · m n × 1 matrix
―――――――――――――――――――――――――――――――――――
Im kg / m of motor rotor including reduction gear2 1xn
Moment of inertia
―――――――――――――――――――――――――――――――――――
Tad Torque that can be used for acceleration / deceleration N ・ mn × 1 matrix
Aopt Optimal acceleration rad / sec2 n × 1 matrix
Dopt Optimal deceleration rad / sec2 n × 1 matrix
Tbase reference
Sai The movement amount of the i-th
Vopti Optimal speed of the i-th joint rad /
Tai Acceleration time of the i-th
Tci Constant speed time of the i-th
Tdi Deceleration time of the i-th
ξi Reduction ratio of i-th
―――――――――――――――――――――――――――――――――――
[0026]
Next, base parameters for robot dynamics in the example (n = 3) will be described. The mass mi is connected to the i-th joint that moves by the operation of the i-th joint (where i is a natural number, taking from 1 to the maximum number of joints) and does not move by the operation of the i + 1-th joint. Indicates the mass of the link to be performed. The center-of-gravity positions mxi, myi, and mzi indicate the center-of-gravity positions of the links that are moved by the operation of the i-th joint and that are connected to the i-th joint that is not moved by the operation of the i + 1-th joint. Further, the inertia tensors Ixi to Izi of the i-th joint indicate the inertia tensors of the link that is connected to the i-th joint that moves by the motion of the i-th joint and does not move by the motion of the i + 1-th joint. In Section 3.8 of
[0027]
Here, a reference for calculating the position of the center of gravity and the inertia tensor is a link coordinate system. The link coordinate system is, for example, a link coordinate system assigned to each joint in section 2.9 of the
[0028]
First, the inertia tensor I is generally used to indicate the difficulty of rotating an object, and is represented by a 3 × 3 symmetric matrix of the following formula as known in the art, and its diagonal components are the joints of the robot mechanism. The other moments represent the negative value of the product of inertia.
[0029]
[Expression 2]
[0030]
The moment of inertia is obtained from the following equation, and represents the difficulty in turning and stopping the object (robot link).
[0031]
[Equation 3]
Ix = ∫ (y2+ Z2) Dm
[Expression 4]
Iy = ∫ (z2+ X2) Dm
[Equation 5]
Iz = ∫ (x2+ Y2) Dm
[0032]
Next, the inertial product is obtained from the following equation, and represents the moment that disturbs the motion of the object (robot link) when it is performing the rotational motion.
[0033]
[Formula 6]
Ixy = ∫xydm
[Expression 7]
Iyz = ∫yzdm
[Equation 8]
Izx = ∫zxdm
[0034]
Here, x, y, and z in the formula are expressed by reference coordinates of a predetermined inertia tensor, and dm indicates a mass of a minute volume. Here, the reference coordinate is a link coordinate system. For example, in the link L3 extending from the second joint to the third joint, the link coordinates assigned to the second joint are determined with the rotation center of the second joint as the origin, and the link coordinates of the second joint are determined. The x direction in is the link length direction, the z direction is the rotation axis direction, and the y direction is the right-handed coordinate system direction. Here, the reference coordinate of the inertia tensor of the link L3 connected to the second joint is the coordinate system when the link coordinate system assigned to the second joint is moved to the center of gravity of the link L3. The same applies to other joints.
[0035]
Next, a method for calculating matrix values of inertia, viscosity, and gravity will be described. The inertia matrix H, the viscosity matrix C, and the gravity matrix G are obtained by numerical calculation using the following equations. Note that the position of the first joint is θ1And the position of the second joint is θ2And the position of the third joint is θThreeAnd Also, the velocity of the first joint is θd1And the velocity of the second joint is θd2And the speed of the third joint is θdThreeAnd
[0036]
[Equation 9]
[0037]
here,
[Expression 10]
H11
= mx12・ M1 + [2 ・ a1 ・ mx2 ・ cos (θ2) + (1/2) ・ mx22{1 + cos (2 ・ θ2)} + a12+ mz22] m2
+ (a12+2 {cos (θ2) ・ A2-my3 ・ sin (θ2+ θThree) + mx3 ・ cos (θ2+ θThree)} a1
+ [-my3 {sin (2 ・ θ2+ θThree) + sin (θThree)} + mx3 {cos (2 ・ θ2+ θThree) + cos (θThree)}] a2
-mx3 ・ my3 ・ sin (2 ・ θThree+2 ・ θ2) + (1/2) a22{1 + cos (2 ・ θ2)}
-(1/2) my32{cos (2 ・ θThree+2 ・ θ2) -1}
+ (1/2) mx32{cos (2 ・ θThree+2 ・ θ2) +1)} m3 + (1/2) Ix2 {1-cos (2 ・ θ2)}
+ (1/2) Iy2 {1 + cos (2 ・ θ2)}
+ (1/2) Ix3 {1-cos (2 ・ θThree+2 ・ θ2)} + (1/2) Iy3 {cos (2 ・ θThree+2 ・ θ2) +1}
-Ixy3 ・ sin (2 ・ θThree+2 ・ θ2) + Iz1
## EQU11 ##
H12 = -m2 ・ mz2 ・ mx2 ・ sin (θ2)
[Expression 12]
H13 = 0
[0038]
[Formula 13]
H21 = H12
[Expression 14]
H22
= m2 ・ mx22+ [a22+2 {mx3 ・ cos (θThree) -my3 ・ sin (θThree)} a2 + my32+ mx32] m3 + Iz3 + Iz2
[Expression 15]
H23 = [{mx3 ・ cos (θThree) -my3 ・ sin (θThree)} a2 + my32+ mx32] m3 + Iz3
[0039]
[Expression 16]
H31 = H13
[Expression 17]
H32 = H23
[Formula 18]
H33 = (my32+ mx32) m3 + Iz3
[0040]
[Equation 19]
C = [C1 C2 C3]T
[0041]
here,
[Expression 20]
C1
= [{-mx2 ・ m2 (mx2 ・ sin (2 ・ θ2) +2 ・ a1 ・ sin (θ2))
+ (-2 ・ a1 (mx3 ・ sin (θ2+ θThree) + my3 ・ cos (θ2+ θThree) + a2 ・ sin (θ2))
-2 ・ a2 (mx3 ・ sin (2 ・ θ2+ θThree) + my3 ・ cos (2 ・ θ2+ θThree))-2 ・ my3 ・ mx3 ・ cos (2 ・ θThree+2 ・ θ2)
+ (my32-mx32) ・ Sin (2 ・ θThree+2 ・ θ2) -a22・ Sin (2 ・ θ2)) m3
+ (Ix3-Iy3) sin (2 ・ θThree+2 ・ θ2)
+ (Ix2-Iy2) sin (2 ・ θ2) -2 ・ Ixy3 ・ cos (2 ・ θThree+2 ・ θ2)} θd2
+ {m3 (-2 ・ a1 (my3 ・ cos (θ2+ θThree) + mx3 ・ sin (θ2+ θThree))
-2 ・ my3 ・ mx3 ・ cos (2 ・ θThree+2 ・ θ2)
+ (my32-mx32) sin (2 ・ θThree+2 ・ θ2)
-a2 (mx3 (sin (2 ・ θ2+ θThree) + sin (θThree)) + my3 (cos (2 ・ θ2+ θThree) + cos (θThree))}]
-2 ・ Ixy3 ・ cos (2 ・ θThree+2 ・ θ2)-(Iy3-Ix3) sin (2 ・ θThree+2 ・ θ2)) θdThree) θd1
-m2, mz2, mx2, cos (θ2) ・ Θd2 2
[Expression 21]
C2
= [(1/2) mx2 ・ m2 (mx2 ・ sin (2 ・ θ2) +2 ・ a1 ・ sin (θ2))
+ (1/2) (Iy3-Ix3) sin (2 ・ θThree+2 ・ θ2)
+ (1/2) sin (2 ・ θ2) (Iy2-Ix2) + Ixy3 ・ cos (2 ・ θThree+2 ・ θ2)
+ {a1 (my3 ・ cos (θ2+ θThree) + mx3 ・ sin (θ2+ θThree))
+ a2 (mx3 ・ sin (2 ・ θ2+ θThree) + my3 ・ cos (2 ・ θ2+ θThree))
+ (1/2) a22・ Sin (2 ・ θ2) + (1/2) (mx32-my32) sin (2 ・ θThree+2 ・ θ2)
+ my3 ・ mx3 ・ cos (2 ・ θThree+2 ・ θ2)
+ a1 ・ a2 ・ sin (θ2)} m3] θd1 2-2 ・ m3 ・ a2 (mx3 ・ sin (θThree) + my3 ・ cos (θThree)) θd2・ ΘdThree
-m3 ・ a2 (mx3 ・ sin (θThree) + my3 ・ cos (θThree)) θdThree 2
[Expression 22]
C3 = [{a1 (my3 ・ cos (θ2+ θThree) + mx3 ・ sin (θ2+ θThree))
+ (1/2) a2 {mx3 (sin (2 ・ θ2+ θThree) + sin (θThree)) + my3 (cos (2 ・ θ2+ θThree) + cos (θThree))}
+ (1/2) (mx32-my32) sin (2 ・ θThree+2 ・ θ2) + my3 ・ mx3 ・ cos (2 ・ θThree+2 ・ θ2)} m3
+ (1/2) (Iy3-Ix3) sin (2 ・ θThree+2 ・ θ2) + Ixy3 ・ cos (2 ・ θThree+2 ・ θ2)] θd1 2
+ m3 ・ a2 (mx3 ・ sin (θThree) + my3 ・ cos (θThree)) θd2 2
[0042]
[Expression 23]
[0043]
here,
[Expression 24]
G11
= -sin (θ1) ・ Mx1 ・ m1
+ {cos (θ1) ・ Mz2-sin (θ1) ・ A1- (1/2) mx2 (sin (θ1+ θ2) -sin (-θ1+ θ2))} m2
-sin (θ1) ・ A1 ・ m3- (1/2) m3 ((sin (θ1+ θ2) -sin (-θ1+ θ2)) a2
+ mx3 (-sin (-θ1+ θ2+ θThree) + sin (θ1+ θ2+ θThree))
+ my3 (cos (θ1+ θ2+ θThree) -cos (-θ1+ θ2+ θThree)))
[Expression 25]
G12
= cos (θ1) ・ Mx1 ・ m1
+ {sin (θ1) ・ Mz2 + cos (θ1) ・ A1 + (1/2) mx2 (cos (-θ1+ θ2) + cos (θ1+ θ2))} m2
+ cos (θ1) ・ A1 ・ m3 + (1/2) m3 {(cos (-θ1+ θ2) + cos (θ1+ θ2)) a2
+ mx3 (cos (-θ1+ θ2+ θThree) + cos (θ1+ θ2+ θThree))
+ my3 (-sin (-θ1+ θ2+ θThree) -sin (θ1+ θ2+ θThree))}
[Equation 26]
G13 = 0
[0044]
[Expression 27]
G31
= (1/2) m3 ・ {mx3 (-sin (-θ1+ θ2+ θThree) -sin (θ1+ θ2+ θThree))
-my3 (cos (-θ1+ θ2+ θThree) + cos (θ1+ θ2+ θThree))}
[Expression 28]
G32
= (1/2) m3 ・ {mx3 (cos (θ1+ θ2+ θThree) -cos (-θ1+ θ2+ θThree))
-my3 (-sin (-θ1+ θ2+ θThree) + sin (θ1+ θ2+ θThree))}
[Expression 29]
G33 = m3 (-my3 ・ sin (θ2+ θThree) + mx3 ・ cos (θ2+ θThree))
[0045]
[30]
G21
= (1/2) mx2 ・ m2 (-sin (θ1+ θ2) -sin (-θ1+ θ2))
+ (1/2) m3 ・ a2 (-sin (θ1+ θ2) -sin (-θ1+ θ2))
+ (1/2) m3 {mx3 (-sin (-θ1+ θ2+ θThree) -sin (θ1+ θ2+ θThree))-my3 (cos (-θ1+ θ2+ θThree)
+ cos (θ1+ θ2+ θThree))}
[31]
G22
= (1/2) mx2 ・ m2 (-cos (-θ1+ θ2) + cos (θ1+ θ2))
+ (1/2) m3 ・ a2 (-cos (-θ1+ θ2) + cos (θ1+ θ2))
+ (1/2) m3 (mx3 (cos (θ1+ θ2+ θThree) -cos (-θ1+ θ2+ θThree))
-my3 (-sin (-θ1+ θ2+ θThree) + sin (θ1+ θ2+ θThree)))
[Expression 32]
G23
= m2 ・ mx2 ・ cos (θ2) + cos (θ2) m3 ・ a2 + m3 (-my3 ・ sin (θ2+ θThree) + mx3 ・ cos (θ2+ θThree))
[0046]
The above formulas 9 to 32 are composed only of the parameters shown in Table 2, the link lengths a1 and a2 shown in FIG. 2, the joint position θ, and the joint velocity θd. Here, all values other than θ and θd are known values. It is. Note that a1 is the link length of the link L2, and a2 is the link length of the link L3. Therefore, if the start position θs and the predicted speed value Vrea are input, the robot dynamics model at the start position θs can be calculated. Similarly, if the target position θe and the predicted speed value Vrea are input, the robot dynamics at the target position is calculated. The model can be calculated. Specifically, it is as shown in the following formula. Since the calculation method of the predicted speed value Vrea will be described later, a description thereof is omitted here.
[0047]
[Expression 33]
Inertial matrix of start position: Hs = H (θs)
[Expression 34]
Viscosity matrix at the start position: Cs = C (θs, Vrea)
[Expression 35]
Gravity matrix at the start position: Gs = G (θs)
[Expression 36]
Inertial matrix of target position: He = H (θe)
[Expression 37]
Viscosity matrix of target position: Ce = C (θe, Vrea)
[Formula 38]
Gravity matrix of the target position: Ge = G (θe)
[0048]
By the way, the torque that can be generated in each joint of the robot is a known value that is limited by the design specifications of the motor and machine. If this is Tpeak, the left side of the
[0049]
[39]
Tpeak ≧ H (θ) · θdd + C (θ, θd) + G (θ) · g
[0050]
Here, Tpeak is a joint allowable peak torque n × 1 matrix. The above equation (39) is transformed into the following equation (40). The left side of Equation 40 is a value obtained by subtracting disturbance torque such as gravity moment, centrifugal force, and Coriolis force that is not related to acceleration / deceleration from the allowable peak torque Tpeak of the joint, and represents torque that can be used for acceleration / deceleration. The right side of Equation 40 represents the torque generated at each joint when each joint of the robot operates at the acceleration / deceleration θdd. That is, Equation 40 is one of conditional expressions for calculating the acceleration / deceleration that satisfies the first problem.
[0051]
[Formula 40]
Tpeak− (C (θ, θd) + G (θ) · g) ≧ H (θ) · θdd
[0052]
In Equation 40, Tpeak and g are known fixed values, and H, C, and G are the gravity center position, mass, inertia tensor, link length, and joint position θ of the link connected to each joint of the robot. It is a robot dynamics model calculated from the joint velocity θd. Therefore, in the above formula 40, except for the joint acceleration θdd, the unknown value is only the joint velocity θd. This is because the center of gravity, mass, inertia tensor, and link length of the link connected to each joint of the robot are known fixed values that can be obtained in advance from the robot mechanism, link shape, material, etc. This is because the start position or the target position taught in advance can be used as the position θ.
[0053]
For this reason, the present embodiment has means for predicting the joint velocity θd in Equation 40. Note that the target speed taught as θd cannot be used. Even if the positioning operation at the maximum speed is requested for all the joints, the movement amount is generally different for each joint, and there is a difference in the time to reach the target position, that is, the operation time. Therefore, if the operation time is the same for all joints, a joint with a small amount of movement operates at a speed lower than the target speed. For the same reason, since the acceleration / deceleration of a joint with a small amount of movement can be suppressed, the optimum value for solving the first problem cannot be calculated without taking this into consideration. A joint in which acceleration / deceleration can be suppressed can suppress the influence of interference forces on other joints. Therefore, the embodiment according to the present invention has means for predicting the acceleration / deceleration for each joint.
[0054]
The prediction of the speed and acceleration / deceleration for each joint is performed according to the following procedure. First, acceleration and deceleration (hereinafter referred to as temporary acceleration and temporary deceleration, respectively) that can be normally operated in any posture of the robot are stored in advance. Next, the speed patterns of all the joints are calculated from the start position θs, the target position θe, and the target speed V that are taught in advance so that the temporary acceleration / deceleration described above is maintained. In the present invention, this speed pattern calculation method is referred to as a first speed pattern calculation method.
[0055]
This first speed pattern calculation method is used in steps S2, S6 and S9 in the processing flow of FIG. 4 described later, and the method will be described below.
[0056]
The first speed pattern calculation method for the i-th joint of the robot is based on the target acceleration Ai and the target deceleration Di from the start position θsi, target position θei, and target speed Vi of the teaching data taught for the i-th joint. This is a known calculation method for generating a velocity pattern for each joint so as to operate. Here, the speed pattern of each joint is the trapezoidal speed pattern shown in FIG. 7 or the triangular speed pattern shown in FIG. 8, and the acceleration time Tai of the i-th joint, the constant speed time Tci, The deceleration time Tdi and the operation speed Vri are calculated by this first speed pattern calculation method. The value obtained by adding the acceleration time Tai, the constant speed time Tci, and the deceleration time Tdi of the i-th joint is the operation time Tri in the speed pattern. In the case of the i-th joint, by using the following expression, from the start position θsi, target position θei, target speed Vi, target acceleration Ai, target deceleration Di of the i-th joint, acceleration time Tai, constant speed time Tci, deceleration time Tdi, operation time Tri, and operation speed Vri can be calculated.
[0057]
[Expression 41]
Tai = Vi / Ai
[Expression 42]
Tdi = Vi / Di
[Expression 43]
Tci = {θei−θsi−Vi (Tai + Tdi) / 2} / Vi
(44)
Tri = Tai + Tci + Tdi
[Equation 45]
Vri = Vi
[0058]
Here, when the constant speed time Tci obtained by the above equation 43 is less than 0, it is a case where the triangular speed pattern shown in FIG. 8 is obtained. In this case, the acceleration time Tai, The constant speed time Tci, the deceleration time Tdi, the operation time Tri, and the operation speed Vri can be calculated.
[0059]
[Equation 46]
[Equation 47]
Tai = Vi / Ai · sf
[Formula 48]
Tdi = Vi / Di · sf
[Equation 49]
Tci = 0
[Equation 50]
Tri = Tai + Tci + Tdi
[Equation 51]
Vri = Vi · sf
[0060]
Next, the joint having the maximum motion time (hereinafter referred to as the maximum motion joint) is extracted from the speed patterns of all the joints, and the motion time of the speed pattern in all the joints is the motion time of the maximum motion joint. The speed pattern is regenerated to be the same as. This processing is called end time synchronization processing. Since the end time synchronization process is a known technique, a description thereof will be omitted. An example of the above processing is shown in FIGS. As can be seen from FIG. 10 and FIG. 11, by calculating the first speed pattern and performing the synchronization processing of the end time, the predicted speed value Vrea, predicted acceleration value Area, and predicted deceleration value Dream can be calculated.
[0061]
By substituting the predicted speed value Vrea into the joint speed θd of the above equation 40, the above equation 40 becomes a known value except for θdd which is the acceleration or deceleration of the joint. Further, in order to optimally distribute the allowable peak torque of the driving joint that receives the interference torque due to the operation of other joints, the proportional relationship between the calculated acceleration predicted value Area and deceleration predicted value Drea is obtained. An acceleration / deceleration that satisfies the proportional relationship and the above equation 40 at the same time is obtained. That is, at the time of acceleration, the proportional relationship between the joints of the predicted acceleration is maintained, and the acceleration that satisfies the above equation 40 is the optimal acceleration Aopt that solves the first problem described above, and at the time of deceleration. The deceleration that maintains the proportional relationship between the joints of the predicted deceleration and satisfies the above equation 40 is the optimum deceleration Dopt that solves the first problem described above.
[0062]
As a result, the optimum acceleration and deceleration can be obtained, but it cannot be said that the optimum velocity pattern can be calculated by this alone. This is because even if the optimum acceleration Aopt and the optimum deceleration Dopt are used, if the speed pattern generation means is the same as the conventional one, the operation time changes for each joint, and the conventional one as shown in FIGS. This is because the same end time synchronization process must be performed, and the optimum acceleration / deceleration cannot be maintained. Therefore, the embodiment according to the present invention includes a speed pattern generation process in which the optimum acceleration / deceleration obtained as a result of the calculation is maintained. The procedure will be described below.
[0063]
In the above-described synchronization processing of the end time, only the joint having the longest operation time is used for the reference operation time Tbase by the above-described first speed pattern calculation method using the optimum acceleration Aopt and the optimum deceleration Dopt already obtained. Is obtained (step S6 in FIG. 4). For the other joints, the speed pattern generation process using the second speed pattern calculation method is executed so that the optimal acceleration Aopt and the optimal deceleration Dopt are maintained and the operation time becomes the reference operation time Tbase. (Step S7 in FIG. 4). As a result, since the operation time of all the joints is the same as that of the longest operation joint, it is not necessary to perform the synchronization process of the end time, and the optimum acceleration / deceleration calculated previously is maintained.
[0064]
If there is a joint that has the optimum acceleration Aopt and the optimum deceleration Dopt determined earlier and cannot realize a speed pattern in which the operation time becomes the reference operation time Tbase (in step S8 in FIG. 4). NO), the first speed pattern calculation is performed only for the joint, and after the speed pattern calculation of all the joints is completed (step S9 in FIG. 4), the above-described end time synchronization processing (step S10 in FIG. 4) is performed. That's fine. This occurs when the acceleration / deceleration is optimized and the maximum motion joint changes from before the optimization. By performing the synchronization processing of the end time, the optimum degree of acceleration / deceleration is slightly reduced, but the torque that can be used for acceleration / deceleration is not exceeded.
[0065]
The first problem can be solved by operating each joint with the speed pattern calculated as described above. The second problem is inevitably achieved because the inertia matrix H and the viscosity matrix C of the formula 40 include the inertia tensor of the link connected to the joint.
[0066]
Moreover, in another embodiment, the case where the bearing of the motor in each joint and the frictional resistance of a reduction gear are considered is demonstrated. By changing the robot dynamics model expressed by
[0067]
[Formula 52]
[0068]
Here, Cm is a dynamic viscosity coefficient n × 1 matrix of a motor bearing or a speed reducer, and the dynamic viscosity coefficient is a constant representing a proportional relationship between speed and dynamic friction torque. The dynamic friction torque is a torque component having a magnitude proportional to the speed. Furthermore, θdm is the motor speed n × 1 matrix, and Fcou is the Coulomb friction torque. Coulomb friction torque is a torque component that has a magnitude independent of speed and always works in the opposite direction of motion. In the above equation 52, sgn (θdm) is a sign function determined as follows based on the motor speed n × 1 matrix.
[0069]
[Equation 53]
sgn (θdm)
= 1; When θdm> 0
= 0; when θdm = 0
= -1; When θdm <0
[0070]
Further, the relationship between the speed of the i-th joint and the rotational speed of the motor is expressed by the following equation from the reduction ratio ξi.
[0071]
[Formula 54]
θdmi = θdi · ξi
[0072]
Further, θdm in the above formula 52 is expressed by the following equation.
[0073]
[Expression 55]
θdm = [θd1・ Ξ1, Θd2・ Ξ2, ΘdThree・ ΞThree]T
[0074]
Here, ξi is a reduction ratio of the reduction gear in the i-th joint. Here, since the parameters Cm, Fcou, and ξ are also known values that can be set in advance, even with the above formula 52, the optimum acceleration / deceleration can be calculated in the same manner as described above, and the details are omitted. To do.
[0075]
Furthermore, in another embodiment, it is possible to consider the torque generated by the moment of inertia of the motor rotor including the speed reducer in each joint by correcting the inertia matrix H shown in Equation 9 as follows. become.
[0076]
[56]
[0077]
Here, Imi is the moment of inertia of the motor rotor including the speed reducer. The moment of inertia of the rotating body that moves in conjunction is multiplied by the square of its reduction ratio to affect the moment of inertia of the input shaft. Therefore, the influence of the moment of inertia of the input shaft on the output shaft is the opposite, and must be multiplied by the square of the reduction ratio. This is why the moment of inertia of the motor rotor including the speed reducer is multiplied by the square of the speed reduction ratio and added.
[0078]
The diagonal element of the inertia matrix H indicates the influence of torque applied to itself, and the other elements indicate the influence of interference torque applied to other joints. Since the moment of inertia of the motor rotor including the speed reducer does not interfere with other joints, only the diagonal elements need be corrected. Accordingly, since Imi and ξi are also known values that can be set in advance, even if the number is 56, the optimum acceleration / deceleration can be calculated in the same manner as described above, and the details are omitted.
[0079]
Next, the configuration of the robot system according to the present embodiment will be described with reference to FIG. As shown in FIG.
(A) According to the system program stored in the
(B) a program including a positioning operation process for controlling the operation of the
(C) a
(D) A storage device that stores data necessary for executing the positioning operation process in advance, and includes a
(E) an
(F) a dual-
These
[0080]
The
[0081]
The second port of the
[0082]
Next, the structure of each joint RJk (k = 1, 2, 3 in the embodiment) of the
[0083]
FIG. 4 is a flowchart showing a positioning operation process executed by the
[0084]
In FIG. 4, first, in step S1, the start position, target position, and target speed of each joint of the
[0085]
Further, in step S3, end time synchronization processing is executed for the speed patterns of all joints calculated in step S2. This synchronization processing of the end time is the same processing as the processing of steps S109 to S111 of the conventional example of FIG. 10 (hereinafter referred to as the speed pattern recalculation processing of the conventional example). The joint having the maximum motion time is defined as the maximum motion joint, and the motion time of the maximum motion joint is defined as the longest motion time Tmax. Then, for each joint, the values obtained by recalculating the motion speed and the acceleration / deceleration so that the motion time prediction value is the same as the longest motion time are respectively used as the speed prediction value, the acceleration prediction value, and the deceleration prediction value. Temporarily store.
[0086]
In step S4, based on the robot dynamics base parameter in the robot dynamics base parameter memory 106c, the calculation processing of the robot dynamics model of the start position and the target position is executed. In this process, the inertia matrix H, the viscosity matrix C, and the gravity matrix G at the start position and the target position are calculated from the start position, the target position, the predicted speed value, and the robot dynamics base parameter using Equations 9 to 38. The robot dynamics model is calculated and stored in the robot dynamics base parameter memory 106c. In step S5, the optimum acceleration / deceleration is calculated. In this processing, based on the calculated robot dynamics model, the acceleration / deceleration that satisfies the above equation 40 and the proportional relationship between the joints in the acceleration prediction and the deceleration prediction at the same time is obtained as the optimum acceleration / deceleration. That is, during acceleration, the optimal acceleration Aopt that maintains the proportional relationship between the joints of the predicted acceleration area Area (Equation 76 described later) and satisfies Equation 40 is calculated, while during deceleration, The optimum deceleration Aopt and the optimum reduction are calculated by calculating the optimum deceleration Dopt that maintains the proportional relationship between the joints of the predicted deceleration value Dream (Equation 89 described later) and satisfies Equation 40. The speed Dopt is stored in the
[0087]
Next, in step S6, based on the processing result in step S3, the joint having the longest operation time is searched, and the optimal acceleration Aoptk calculated in step S5 and the optimal acceleration for the k-th joint that is the searched joint are calculated. The k-th joint speed pattern is calculated using the above-described first speed pattern calculation method from the actual deceleration Doptk and the k-th joint teaching data (start position, target position, target speed), and the operation time is calculated. Is the reference operation time Tbase, and the calculation result is stored in the
[0088]
In step S9, the first speed pattern calculation method is used for all joints in which the operation time becomes the reference operation time Tbase, the operation is performed at the optimum acceleration Aopt, and the velocity pattern operated at the optimum deceleration Dopt does not exist. Thus, a speed pattern is calculated from the optimum acceleration Aopt, optimum deceleration Dopt, and teaching data (start position, target position, target speed) and stored in the
[0089]
After this positioning operation processing, as is well known, based on the generated speed pattern, the data of the motor command position DPk is calculated and transmitted to the
[0090]
In the above embodiment, as shown in Equation 52, in addition to the viscosity matrix C and the gravity matrix G, friction generated from the bearings of the motors MO1 to MO3 and the reducers RE1 to RE3 as torque components not related to acceleration. By considering the resistance, the calculation accuracy of the torque that can be used for acceleration may be improved. Further, as shown in the above formula 56, by adding the inertia moment of the rotors of the motors MO1 to MO3 including the speed reducers RE1 to RE3 to the diagonal component of the inertia matrix H, the torque generated by its own acceleration / deceleration The calculated value may be corrected.
[0091]
In step S8 of FIG. 4, when the operation time becomes the reference operation time Tbase, there is a joint that operates at the optimum acceleration Aopt and operates at the optimum deceleration Dopt (NO in step S8), the joint The number of the joint with the longest operation time may be k, and the processing from step S6 may be performed again.
[0092]
【Example】
A calculation example of the optimum acceleration / deceleration for the positioning operation in the robot mechanism unit 1 (n = 3) shown in FIG. 2 will be described with reference to the flowchart of FIG.
[0093]
In step S1, the start position, target position, and target speed of the positioning operation for each joint of the
[0094]
[Equation 57]
Start position: θs = [θs1, θs2, θs3]T
[Formula 58]
Target position: θe = [θe1, θe2, θe3]T
[Formula 59]
Target speed: V = [V1, V2, V3]T
[0095]
On the other hand, in the temporary acceleration /
[0096]
[Expression 60]
Temporary acceleration: Asmp = [Asmp1, Asmp2, Asmp3]T
[Equation 61]
Temporary deceleration: Dsmp = [Dsmp1, Dsmp2, Dsmp3]T
[0097]
In step S2, the first speed pattern calculation described above is performed for each joint based on the set start position, target position, target speed, temporary acceleration, and temporary deceleration. The calculation of the first speed pattern is the same as in the conventional example. The following values are predicted by the first speed pattern calculation. The concept is shown in FIG. In the example of FIG. 5, the first joint and the second joint have a moving amount necessary to reach the target speed, but the third joint has a small moving amount and does not reach the target speed.
[0098]
[62]
AdditionSpeed prediction value: Vest = [Vest1, Vest2, Vest3]T
[Equation 63]
Expected operating time: Test = [Test1, Test2, Test3]T
[0099]
Furthermore, in step S3, the speed and acceleration / deceleration values of each joint of the robot after the synchronization processing of the end time are re-predicted as follows.
[0100]
[Expression 64]
Speed predicted value: Vrea = [Vrea1, Vrea2, Vrea3]T
[Equation 65]
Acceleration prediction value: Area = [Area1, Area2, Area3]T
[Equation 66]
Deceleration prediction value: Dream = [Drea1, Dream2, Dream3]T
[0101]
If the maximum operating time in the predicted operating time is Tmax, the above value can be calculated from the following equation. The concept of the end time synchronization process is shown in FIG. In the prediction example of FIG. 6, it can be seen that the speed and acceleration / deceleration of the second joint and the third joint with a small amount of movement are reduced.
[0102]
[Expression 67]
Vreai = Vesti · Testi / Tmax
[Equation 68]
Areai = Asmpi · (Testi / Tmax)2
[Equation 69]
Dream = Dsmpi · (Testi / Tmax)2
[0103]
Note that the robot dynamics base parameter memory 106c stores in advance robot dynamics base parameters for generating the robot dynamics model represented by the above equation (1). The following table lists the robot dynamics base parameters.
[0104]
[Table 3]
[0105]
Next, in step S4, a robot dynamics model expressed by
[0106]
[Table 4]
[0107]
Next, in step S5, the optimum acceleration Aopt and the optimum deceleration Dopt are calculated according to the following procedure. First, an optimum acceleration Aopt is obtained. Then, Hs, Gs, and Cs are substituted into H, G, and C in Formula 40, respectively, and the optimal acceleration Aopt (or optimal deceleration Dopt) is set as θdd in Formula 40. For simplification, when the left side of Formula 40 is combined into one, it can be expressed as the following equation.
[0108]
[Equation 70]
Tad ≧ Hs (θs) · Aopt
[0109]
Tad on the left side of Equation 70 is expressed by the following equation, and is torque that can be used for acceleration during acceleration, and torque that can be used for deceleration during deceleration. Here, since acceleration is to be obtained, Tad represents torque that can be used for acceleration. Since the sign of the torque to be used is different between the time of acceleration and the time of deceleration, the sign of the predicted value Area of each joint acceleration after the end time synchronization processing described above is considered.
[0110]
[Equation 71]
Tad
= Sgn2 (Area) · Tpeak− (Cs (θs, Vrea)
+ G (θs) · g)
[0111]
Here, the sign function sgn2 is expressed by the following equation.
[0112]
[Equation 72]
sgn2 (Area)
= 1; When Area ≧ 0
= -1; When Area <0
[0113]
When the above formula 70 is expanded for each element, it is expressed as follows. Since Tad represents the torque that can be used for acceleration, the following expression is a conditional expression for obtaining an acceleration for making maximum use of the torque that can be used for acceleration.
[0114]
[Equation 73]
Tad1
≧ Hs11 · Aopt1 + Hs12 · Aopt2 + Hs13 · Aopt3
[Equation 74]
Tad2
≧ Hs21 · Aopt1 + Hs22 · Aopt2 + Hs23 · Aopt3
[Expression 75]
Tad3
≧ Hs31 · Aopt1 + Hs32 · Aopt2 + Hs33 · Aopt3
[0115]
The predicted value of each joint acceleration after the end time synchronization processing described above was Area. Assuming that the optimum acceleration Aopt of each joint also maintains the same proportional relationship as the predicted acceleration value Area, the relationship of the following equation must be satisfied.
[0116]
[76]
Aopt1: Aopt2: Aopt3 = Area1: Area2: Area3
[0117]
The acceleration Aopt satisfying the relations of the above formulas 73 to 75 and formula 76 is an acceleration that maintains the proportional relationship between the joints of the predicted acceleration value Area and can use the maximum torque that can be used for acceleration. It will be the optimum value. The reference joint may be any joint that operates, but in the present embodiment, the joint having the maximum absolute value is obtained from the Area, and this is set as the reference joint j. Based on the reference joint j, the above equation 76 is transformed as follows.
[0118]
[77]
Aopt1 = (Area1 / Areaj) · Aoptj
[Formula 78]
Aopt2 = (Area2 / Areaj) · Aoptj
[79]
Aopt3 = (Area3 / Areaj) · Aoptj
[0119]
Here, Areaj is the predicted acceleration of the reference joint j, and Aoptj is the optimum acceleration of the reference joint j. Next, when the above formulas 77 to 79 are substituted into the above formulas 73 to 75 and expanded, the following three inequalities are obtained.
[0120]
[80]
Tad1
≧ H11 ・ (Area1 / Areaj) ・ Aoptj + H12 ・ (Area2 / Areaj) ・ Aoptj
+ H13 ・ (Area3 / Areaj) ・ Aoptj
[Formula 81]
Tad2
≧ H21 ・ (Area1 / Areaj) ・ Aoptj + H22 ・ (Area2 / Areaj) ・ Aoptj
+ H23 ・ (Area3 / Areaj) ・ Aoptj
[Formula 82]
Tad3
≧ H31 ・ (Area1 / Areaj) ・ Aoptj + H32 ・ (Area2 / Areaj) ・ Aoptj
+ Hn3 ・ (Area3 / Areaj) ・ Aoptj
[0121]
In the three inequalities of the above formulas 80 to 82, all except for the optimum acceleration Aoptj at the reference joint j are known values, and therefore the optimum acceleration at the reference joint j is obtained from the three inequalities of the above formulas 80 to 82. You can calculate three ways. Assuming that the three accelerations calculated at this time are Aoptj_1, Aoptj_2, and Aoptj_3, the following equations are obtained.
[0122]
[Formula 83]
Aoptj_1 = Tad1 ・ Areaj / (H11 ・ Area1 + H12 ・ Area2 + H13 ・ Area3)
[Expression 84]
Aoptj_2 = Tad2 ・ Areaj / (H21 ・ Area1 + H22 ・ Area2 + H23 ・ Area3)
[Expression 85]
Aoptj_3 = Tad3 ・ Areaj / (H31 ・ Area1 + H32 ・ Area2 + H33 ・ Area3)
[0123]
From the accelerations Aoptj_1, Aoptj_2, and Aoptj_3 shown in the above equations 83 to 85, the value having the smallest absolute value must be the optimum acceleration of the reference joint j. This is because only the value having the smallest absolute value can simultaneously satisfy the three inequalities of the above formulas 80 to 82. By substituting the minimum value among the accelerations Aoptj_1, Aoptj_2, and Aoptj_3 as the minimum acceleration Aoptj_min and substituting it into the above equations 77 to 79, the optimum accelerations of all joints can be obtained.
[0124]
[86]
Aopt1 = (Area1 / Areaj) · Aoptj_min
[Expression 87]
Aopt2 = (Area2 / Areaj) · Aoptj_min
[Equation 88]
Aopt3 = (Area3 / Areaj) · Aoptj_min
[0125]
The acceleration thus obtained is the optimum acceleration that satisfies the first problem. The optimum deceleration Dopt can also be obtained by the same procedure. Specifically, in the above formulas 70 to 88, the parameters θe, He, Ce, Ge, Dopt, and Dream may be used instead of the parameters θs, Hs, Cs, Gs, Aopt, and Area, respectively. Here, the equation relating to the deceleration corresponding to the equation 76 relating to acceleration is as follows.
[0126]
[Equation 89]
Dopt1: Dopt2: Dopt3 = Drea1: Drea2: Drea3
[0127]
Next, in step S6, a speed pattern calculation process is performed so that the optimum acceleration / deceleration obtained as a result of the above calculation is maintained. The procedure will be described below. In the synchronization process of the end time in step S3, only the kth joint having the longest operation time is used to calculate the reference operation time Tbase by the above-described first speed pattern calculation using the optimal acceleration Aoptk and the optimal deceleration Doptk. Ask. Next, in step S7, the second speed pattern is set so that the acceleration is the optimal acceleration Aopt, the deceleration is the optimal deceleration Dopt, and the operation time is the reference operation time Tbase for joints other than the k-th joint. Perform the calculation. By the steps S6 and S7, the operation time in the speed pattern of all the joints becomes the reference operation time Tbase, so that it is not necessary to perform the synchronization process of the end time, and the optimum acceleration / deceleration calculated previously is held.
[0128]
A second speed pattern calculation method for the i-th joint of the robot will be specifically described with reference to FIG. As can be seen from FIG. 9, the reference motion time Tbase, the optimal acceleration Aopt of the i-th joint, the optimal deceleration Dopt of the i-th joint, and the movement amount Sai of the i-th joint are known values. The optimal velocity Vopti, the i-th joint acceleration time Tai, the i-th joint constant speed time Tci, and the i-th joint deceleration time Tdi are expressed by the following equations.
[0129]
[90]
Tbase = Tai + Tci + Tdi
[91]
Sai = Vopti · (Tci + (Tai + Tdi) / 2)
[Equation 92]
Vopti = Tai Aopti
[Equation 93]
Vopti = Tdi ・ Dopti
[0130]
Solving the simultaneous equations consisting of the above four equations 90 to 93, the time Tci, Vopti, Tai, Tdi can be calculated from the following equations.
[0131]
[Equation 94]
[0132]
[95]
Vopti
= (Tbase-Tci) / Aopti / Dopti / (Dopti + Aopti)
[Equation 96]
Tai = Vopti / Aopti
[Equation 97]
Tdi = Vopti / Dopti
[0133]
However, there is a case where the speed pattern calculation is not obtained such that the acceleration becomes the optimum acceleration Aopt, the deceleration becomes the optimum deceleration Dopti, and the operation time becomes the reference operation time Tbase. There are two cases:
(A) In the above formula 94, when the constant speed time Tci is obtained as an imaginary number, and
(B) When the optimum speed Vopti is obtained as a value exceeding the teaching speed Vi in the above-mentioned formula 94.
[0134]
In step S8, it is determined as NO when there is a joint corresponding to the above two cases. In step S9, the first speed pattern calculation similar to the conventional one is performed for all the joints determined to be NO in step S8. Next, in step S10, the above-described end time synchronization processing is performed on the speed patterns of all joints. In step S8, NO is determined because the acceleration / deceleration has been optimized, and the case where the maximum motion joint is changed is the case before optimization, but by performing the processing of steps S9 and S10, Although the optimum degree of acceleration / deceleration is slightly reduced, the torque that can be used for acceleration / deceleration is not exceeded.
[0135]
Finally, g in the above formula 71 is a gravitational acceleration vector, which defines the direction in which gravity works. In general, since the coordinates are defined so that gravity acts in the −z direction in the robot coordinates, g is as follows. The gravitational acceleration is 9.8 m / sec.2It is.
[0136]
[Equation 98]
g = [0, 0, −1 × (gravity acceleration)]T
[0137]
As described above, according to the embodiment of the present invention, the inertia matrix at the start position and the target position is calculated from the start position, the target position, the predicted speed value, and the robot dynamics base parameter using the above formulas 9 to 38. A robot dynamics model including H, viscosity matrix C, and gravity matrix G is calculated (step S4). Based on the calculated robot dynamics model, the proportional relationship between the joints of the predicted acceleration value and the allowable peak torque of each joint are calculated. After calculating the optimum acceleration and deceleration satisfying the conditions (step S5), a synchronization process for matching the operation time is performed for all the joints (steps S6 and S7). Therefore, even when performing a positioning operation in which the movement amount of each joint of the
[0138]
Further, when the operation time becomes the reference operation time Tbase, the operation is performed with the optimum acceleration Aopt, and the velocity pattern that operates with the optimum deceleration Dopt does not exist in all the joints, the first velocity pattern calculation method is performed in step S9. After the speed pattern is calculated using the above, the synchronization process is executed in the speed pattern recalculation process of the conventional example in step S10. Therefore, the optimal speed pattern can be calculated in all cases.
[0139]
Furthermore, according to the present embodiment, the calculation of the exact load torque component is realized in consideration of the friction of the motor bearing and the reduction gear, so that the acceleration / deceleration calculation that requires a torque exceeding the allowable value is performed. Can be prevented.
[0140]
In addition, according to the present embodiment, the torque generated by the moment of inertia of the motor rotor including the speed reducer is taken into consideration, and a precise calculation of the load torque component is realized. Speed computation can be prevented.
[0141]
<Modification>
In the above embodiment, the
[0142]
In the above embodiment, each of the joints RJ1 to RJ3 is configured to be rotatable. However, the present invention is not limited to this, and at least one of the two joints or more may be a linear motion that performs a translational motion. Good.
[0143]
【The invention's effect】
As described above in detail, according to the control method or control device of the robot system according to the present invention, based on the calculated robot dynamics model, the proportional relationship between the joints of the predicted acceleration value and the allowable peak torque of each joint. After calculating the optimum acceleration and deceleration satisfying the conditions, a synchronization process for matching the operation time is executed for all the joints. Therefore, even when performing a positioning operation with a large difference in the amount of movement for each joint of the robot mechanism, it calculates the acceleration / deceleration using the maximum allowable torque of the driving joint as much as possible, and shortens the operation time. Considering the load torque component due to the inertia of the joint itself, even if the robot has a short distance from the center of rotation of the joint to the center of gravity position, or even if the robot is in a unique posture, it is acceptable by calculating the exact load torque component Acceleration / deceleration calculations that require torque exceeding the value are prevented. As a result, it is possible to obtain the optimum acceleration / deceleration speed of each joint that does not exceed the allowable peak torque of each joint of the robot mechanism unit and that can complete the operation in the shortest time.
[0144]
In the control method or control apparatus of the robot system, preferably, the frictional resistance generated at each joint is taken into consideration by adding a torque component not related to the acceleration to the viscosity matrix and the gravity matrix. Accordingly, the calculation of the exact load torque component is realized in consideration of the frictional resistance of each joint, so that the acceleration / deceleration calculation that requires a torque exceeding the allowable value can be prevented.
[0145]
Further, in the control method or control apparatus of the robot system, preferably, a torque calculation value generated by acceleration / deceleration of each joint itself by adding the inertia moment of each joint to the diagonal component of the inertia matrix. Correct. Accordingly, the calculation of the load torque component is realized in consideration of the torque generated by the inertia moment of each joint described above, so that the acceleration / deceleration calculation that requires a torque exceeding the allowable value can be prevented.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a robot system according to an embodiment of the present invention.
FIG. 2 is a skeleton diagram showing the configuration of the
3 is a perspective view showing a configuration of each joint RJk (k = 1, 2, 3) of the
4 is a flowchart showing a positioning operation process executed by a
FIG. 5 is a graph showing the concept of the speed pattern prediction calculation process (step S2) of FIG. 4, wherein (a) shows the speed characteristic of the first joint versus time indicating the predicted speed pattern of the first joint; (B) is a graph showing the speed characteristic of the second joint versus time showing the expected speed pattern of the second joint, and (c) is a graph showing the speed characteristic of the third joint vs. time. It is a graph which shows the speed characteristic of the 3rd joint.
6 is a graph showing the concept of the speed pattern end time synchronization process (step S3) in FIG. 4, wherein (a) shows the time indicating the expected speed pattern of the first joint versus the speed of the first joint. FIG. 4B is a graph showing characteristics of the second joint with respect to time indicating the predicted speed pattern of the second joint, and FIG. 4C is a graph showing the expected speed pattern of the third joint. It is a graph which shows the speed characteristic of 3rd joint with respect to time.
FIG. 7 is a graph showing a time-speed characteristic showing a first speed pattern calculation method used in the present embodiment when a trapezoidal speed pattern is used.
FIG. 8 is a graph showing speed versus speed characteristics, illustrating a first speed pattern calculation method used in the present embodiment when a triangular speed pattern is used.
FIG. 9 is a graph showing a speed vs. speed characteristic showing a second speed pattern calculation method used in the present embodiment.
FIG. 10 is a flowchart showing a positioning operation process of a first conventional example.
11 is a graph showing a speed pattern of each joint for explaining an example of the end time synchronization process of FIG. 10, where (a) is a time vs. first joint showing a speed pattern of the first joint; (B) is a graph showing the speed characteristic of the second joint versus time showing the speed pattern of the second joint, and (c) shows the speed pattern of the third joint. It is a graph which shows the speed characteristic of 3rd joint with respect to time.
[Explanation of symbols]
1 ... Robot mechanism part,
10 ... Control device,
20 ... Teach pendant,
100 ... CPU,
101 ... ROM,
102 ... RAM,
103 ... interface,
104: Dual port RAM,
105 ... Latch circuit,
106: Hard disk memory,
106a ... Teaching data memory,
106b ... Temporary acceleration / deceleration information memory,
106c ... Robot dynamics based parameter memory,
107: Servo control circuit,
110: Clock generator,
111 ... frequency divider,
RJ1 to RJ3 …… Joint,
L1 to L4 ... link,
MO1 to M3 ... motor,
RE1 to RE3 ... reducer,
SN1 to SN3 ... sensors.
Claims (6)
上記ロボット機構部を動作させるときのロボット機構部の各関節の開始位置と、目標位置と、目標速度とを教示データとして第1の記憶手段に格納する第1の記憶ステップと、
上記ロボット機構部の各関節の速度パターンを予測演算するときに用いる各関節の加速度と減速度の情報とを第2の記憶手段に格納する第2の記憶ステップと、
上記第1の記憶手段に格納された教示データと、上記第2の記憶手段に格納された各関節の加速度及び減速度とに基づいて、当該各関節の開始位置と目標位置と目標速度である教示データから当該格納された各関節の加速度及び減速度で動作するように、各関節についての時間に対する速度のパターンであって、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターン、もしくは一定の加速度で動作し一定の減速度で動作する三角形状の速度パターンを計算する第1の速度パターン計算方法を用いて、上記ロボット機構部の各関節の加速度予測値と、動作時間予測値を演算し、上記動作時間予測値の中から、その最大値を最長動作時間として演算する第1の演算ステップと、
上記動作時間予測値の中から動作時間が最大となる関節を最大動作関節とし、その最大動作関節の動作時間を最長動作時間とし、各関節について上記動作時間予測値が上記最長動作時間と同じになり、加速時の距離が再計算前後で同じでかつ減速時の距離が再計算前後で同じになり、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターンとなるように動作速度及び加減速度を再計算した値をそれぞれ、速度予測値、加速度予測値及び減速度予測値として再計算する速度パターン再計算方法を用いて、上記ロボット機構部の各関節について、上記第1の演算ステップによって演算された動作時間予測値が、上記第1の演算ステップによって演算された最長動作時間と同じになるように、速度並びに加速度及び減速度として再計算した値を、速度予測値、加速度予測値及び減速度予測値とする第2の演算ステップとを含むロボットシステムの制御方法において、
上記ロボット機構部の各関節に連結される各リンクの慣性テンソル、質量及び重心位置とを含むロボットダイナミクスベースパラメータを第3の記憶手段に格納する第3の記憶ステップと、
上記第1の記憶手段に格納された各関節の開始位置及び目標位置と、上記第2の演算ステップによって演算された速度予測値と、上記第3の記憶手段に格納されたロボットダイナミクスベースパラメータとに基づいて、
(a)上記ロボット機構部の各関節についての、加速度により関節自身に発生するトルク、並びに他関節の加速度により発生する干渉トルクを示す慣性行列と、
(b)上記ロボット機構部の各関節についての、遠心力及びコリオリ力により発生するトルクを示す粘性行列と、
(c)上記ロボット機構部の各関節の重力モーメントにより発生するトルクを示す重力行列と
を含む上記開始位置及び目標位置におけるロボットダイナミクスモデルを計算する第3の演算ステップと、
上記第3の演算ステップによって演算されたロボットダイナミクスモデルと、上記第2の演算ステップによって演算された各関節の加速度予測値及び減速度予測値とに基づいて、当該各関節の加速度予測値が互いに比例して加速時に加速度予測値の各関節間の比例関係が保持されるという第1の比例関係と、当該各関節の減速度予測値が互いに比例して減速時に減速度予測値の各関節間の比例関係が保持されるという第2の比例関係とが保持される第1の条件を満足し、かつ各関節の許容ピークトルクから、加速度及び減速度に関係の無い重力行列から求められる重量項の値、並びに加速度及び減速度に関係の無い粘性行列から求められる粘性項の値を減算した減算結果値が、各関節が上記加速度予測値及び減速度予測値で動作した場合に各関節で発生するトルク以上となるという第2の条件を満足するような最適な加速度及び最適な減速度を各関節毎に演算する第4の演算ステップと、
上記第1の演算ステップにおいて最長動作時間となった関節を検索し、検索した関節である第kの関節について、上記第4の演算ステップによって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された第kの関節の開始位置、目標位置及び目標速度を含む教示データとから、上記第1の速度パターン計算方法を用いて第k関節の速度パターンを演算し、その動作時間を基準動作時間とする第5の演算ステップと、
上記第kの関節以外のすべての関節について、上記第5の演算ステップによって演算された基準動作時間と、上記第4の演算ステップによって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された開始位置及び目標位置を含む教示データとに基づいて、最長動作時間である基準動作時間となった関節についてのみ、当該最適な加速度及び当該最適な減速度を用いて上記第1の速度パターン計算方法により基準動作時間を求め、その他の関節については、当該最適な加速度と当該最適な減速度を保持し、かつ動作時間が上記基準動作時間となるように各関節の台形状の速度パターンを計算する第2の速度パターン計算方法を用いて、動作時間が上記基準動作時間となり、上記最適な加速度及び最適な減速度で動作するような速度パターンを生成する第6の演算ステップとを含むことを特徴とするロボットシステムの制御方法。A control method of a robot system for controlling the operation of a robot mechanism having a plurality of joints,
A first storage step of storing, as teaching data, a start position, a target position, and a target speed of each joint of the robot mechanism section when operating the robot mechanism section;
A second storage step of storing, in a second storage means, information on acceleration and deceleration of each joint used when predicting and calculating a speed pattern of each joint of the robot mechanism section;
Based on the teaching data stored in the first storage means and the acceleration and deceleration of each joint stored in the second storage means, the start position, target position, and target speed of each joint. From the teaching data, it is a speed pattern with respect to time for each joint so as to operate at the stored acceleration and deceleration of each joint, which operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. By using a first speed pattern calculation method for calculating a trapezoidal speed pattern that operates or a triangular speed pattern that operates at a constant acceleration and operates at a constant deceleration, the joint mechanism of the robot mechanism section is subjected to the addition. A first calculation step of calculating a speed predicted value and an operating time predicted value, and calculating the maximum value as the longest operating time from the operating time predicted value;
The joint with the maximum motion time among the predicted motion time values is the maximum motion joint, the motion time of the maximum motion joint is the longest motion time, and the motion time prediction value for each joint is the same as the longest motion time. The trapezoidal speed is the same when the acceleration is the same before and after the recalculation, and the same when the deceleration is before and after the recalculation, and operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. Using the speed pattern recalculation method that recalculates the recalculated values of motion speed and acceleration / deceleration as patterns, respectively, as a speed prediction value, acceleration prediction value, and deceleration prediction value, For the speed, acceleration and so that the predicted motion time calculated by the first calculation step is the same as the longest motion time calculated by the first calculation step. The recalculated values as speed, velocity prediction value, a control method of a robot system and a second calculation step of the acceleration estimated value and the deceleration predicted value,
A third storage step of storing, in a third storage means, robot dynamics base parameters including an inertia tensor, a mass and a gravity center position of each link connected to each joint of the robot mechanism section;
A start position and a target position of each joint stored in the first storage means; a predicted speed value calculated in the second calculation step; and a robot dynamics base parameter stored in the third storage means; On the basis of the,
(A) For each joint of the robot mechanism section, an inertia matrix indicating torque generated in the joint itself by acceleration, and interference torque generated by acceleration of other joints;
(B) a viscosity matrix indicating a torque generated by centrifugal force and Coriolis force for each joint of the robot mechanism unit;
(C) a third calculation step of calculating a robot dynamics model at the start position and the target position including a gravity matrix indicating a torque generated by a gravity moment of each joint of the robot mechanism section;
Based on the robot dynamics model calculated in the third calculation step and the predicted acceleration and deceleration predicted values of the joints calculated in the second calculation step, the predicted acceleration values of the joints are mutually determined. The proportional relationship between the joints of the acceleration predicted value is proportionally maintained during acceleration, and the predicted deceleration value of each joint is proportional to each other. The weight term obtained from the gravity matrix not satisfying the acceleration and the deceleration is satisfied from the allowable peak torque of each joint , satisfying the first condition that the second proportional relationship is maintained. value, and the subtraction result value obtained by subtracting the value of the viscosity term obtained from the relationship without viscous matrix in acceleration and deceleration, each when each joint is operated by the acceleration estimated value and the deceleration predicted value A fourth computing step of computing an optimal acceleration and optimal deceleration that satisfies the second condition that the above torque generated in the section for each joint,
The joint having the longest operation time in the first calculation step is searched, and the optimum acceleration and optimum deceleration calculated in the fourth calculation step are calculated for the k-th joint that is the searched joint, From the teaching data including the start position, target position and target speed of the kth joint stored in the first storage means, the speed pattern of the kth joint is calculated using the first speed pattern calculation method, A fifth calculation step using the operation time as a reference operation time;
For all joints other than the kth joint, the reference operation time calculated by the fifth calculation step, the optimum acceleration and optimum deceleration calculated by the fourth calculation step, and the first Based on the teaching data including the start position and the target position stored in the storage means, only the joint that has reached the reference operation time, which is the longest operation time, using the optimum acceleration and the optimum deceleration described above. The reference motion time is obtained by the first speed pattern calculation method. For the other joints, the base of each joint is maintained so that the optimum acceleration and the optimum deceleration are maintained and the motion time becomes the reference motion time. using the second speed pattern calculation method for calculating the velocity pattern of the shape, operation time becomes the reference operation time, operating in the optimal acceleration and optimal deceleration Sixth control method of a robot system which comprises a calculating step of generating a speed pattern Una.
上記ロボット機構部を動作させるときのロボット機構部の各関節の開始位置と、目標位置と、目標速度とを教示データとして格納する第1の記憶手段と、
上記ロボット機構部の各関節の速度パターンを予測演算するときに用いる各関節の加速度と減速度の情報とを格納する第2の記憶手段と、
上記第1の記憶手段に格納された教示データと、上記第2の記憶手段に格納された各関節の加速度及び減速度とに基づいて、当該各関節の開始位置と目標位置と目標速度である教示データから当該格納された各関節の加速度及び減速度で動作するように、各関節についての時間に対する速度のパターンであって、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターン、もしくは一定の加速度で動作し一定の減速度で動作する三角形状の速度パターンを計算する第1の速度パターン計算方法を用いて、上記ロボット機構部の各関節の加速度予測値と、動作時間予測値を演算し、上記動作時間予測値の中から、その最大値を最長動作時間として演算する第1の演算手段と、
上記動作時間予測値の中から動作時間が最大となる関節を最大動作関節とし、その最大動作関節の動作時間を最長動作時間とし、各関節について上記動作時間予測値が上記最長動作時間と同じになり、加速時の距離が再計算前後で同じでかつ減速時の距離が再計算前後で同じになり、一定の加速度で動作し一定の速度で動作し一定の減速度で動作する台形状の速度パターンとなるように動作速度及び加減速度を再計算した値をそれぞれ、速度予測値、加速度予測値及び減速度予測値として再計算する速度パターン再計算方法を用いて、上記ロボット機構部の各関節について、上記第1の演算手段によって演算された動作時間予測値が、上記第1の演算手段によって演算された最長動作時間と同じになるように、速度並びに加速度及び減速度として再計算した値を、速度予測値、加速度予測値及び減速度予測値とする第2の演算手段とを備えたロボットシステムの制御装置において、
上記ロボット機構部の各関節に連結される各リンクの慣性テンソル、質量及び重心位置とを含むロボットダイナミクスベースパラメータを格納する第3の記憶手段と、
上記第1の記憶手段に格納された各関節の開始位置及び目標位置と、上記第2の演算手段によって演算された速度予測値と、上記第3の記憶手段に格納されたロボットダイナミクスベースパラメータとに基づいて、
(a)上記ロボット機構部の各関節についての、加速度により関節自身に発生するトルク、並びに他関節の加速度により発生する干渉トルクを示す慣性行列と、
(b)上記ロボット機構部の各関節についての、遠心力及びコリオリ力により発生するトルクを示す粘性行列と、
(c)上記ロボット機構部の各関節の重力モーメントにより発生するトルクを示す重力行列と
を含む上記開始位置及び目標位置におけるロボットダイナミクスモデルを計算する第3の演算手段と、
上記第3の演算手段によって演算されたロボットダイナミクスモデルと、上記第2の演算手段によって演算された各関節の加速度予測値及び減速度予測値とに基づいて、当該各関節の加速度予測値が互いに比例して加速時に加速度予測値の各関節間の比例関係が保持されるという第1の比例関係と、当該各関節の減速度予測値が互いに比例して減速時に減速度予測値の各関節間の比例関係が保持されるという第2の比例関係とが保持される第1の条件を満足し、かつ各関節の許容ピークトルクから、加速度及び減速度に関係の無い重力行列から求められる重量項の値、並びに加速度及び減速度に関係の無い粘性行列から求められる粘性項の値を減算した減算結果値が、各関節が上記加速度予測値及び減速度予測値で動作した場合に各関節で発生するトルク以上となるという第2の条件を満足するような最適な加速度及び最適な減速度を各関節毎に演算する第4の演算手段と、
上記第1の演算手段において最長動作時間となった関節を検索し、検索した関節である第kの関節について、上記第4の演算手段によって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された第kの関節の開始位置、目標位置及び目標速度を含む教示データとから、上記第1の速度パターン計算方法を用いて第k関節の速度パターンを演算し、その動作時間を基準動作時間とする第5の演算手段と、
上記第kの関節以外のすべての関節について、上記第5の演算手段によって演算された基準動作時間と、上記第4の演算手段によって演算された最適な加速度及び最適な減速度と、上記第1の記憶手段に格納された開始位置及び目標位置を含む教示データとに基づいて、最長動作時間である基準動作時間となった関節についてのみ、当該最適な加速度及び当該最適な減速度を用いて上記第1の速度パターン計算方法により基準動作時間を求め、その他の関節については、当該最適な加速度と当該最適な減速度を保持し、かつ動作時間が上記基準動作時間となるように各関節の台形状の速度パターンを計算する第2の速度パターン計算方法を用いて、動作時間が上記基準動作時間となり、上記最適な加速度及び最適な減速度で動作するような速度パターンを生成する第6の演算手段とを備えたことを特徴とするロボットシステムの制御装置。A control device for a robot system that controls the operation of a robot mechanism having a plurality of joints,
First storage means for storing, as teaching data, the start position, target position, and target speed of each joint of the robot mechanism when operating the robot mechanism;
Second storage means for storing information on acceleration and deceleration of each joint used when predicting and calculating a speed pattern of each joint of the robot mechanism section;
Based on the teaching data stored in the first storage means and the acceleration and deceleration of each joint stored in the second storage means, the start position, target position, and target speed of each joint. From the teaching data, it is a speed pattern with respect to time for each joint so as to operate at the stored acceleration and deceleration of each joint, which operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. By using a first speed pattern calculation method for calculating a trapezoidal speed pattern that operates or a triangular speed pattern that operates at a constant acceleration and operates at a constant deceleration, the joint mechanism of the robot mechanism section is subjected to the addition. A first calculating means for calculating a speed predicted value and an operating time predicted value, and calculating the maximum value as the longest operating time from the operating time predicted value;
The joint with the maximum motion time among the predicted motion time values is the maximum motion joint, the motion time of the maximum motion joint is the longest motion time, and the motion time prediction value for each joint is the same as the longest motion time. The trapezoidal speed is the same when the acceleration is the same before and after the recalculation, and the same when the deceleration is before and after the recalculation, and operates at a constant acceleration, operates at a constant speed, and operates at a constant deceleration. Using the speed pattern recalculation method that recalculates the recalculated values of motion speed and acceleration / deceleration as patterns, respectively, as a speed prediction value, acceleration prediction value, and deceleration prediction value, With respect to the speed, acceleration, and deceleration so that the predicted operating time calculated by the first calculating means is the same as the longest operating time calculated by the first calculating means. The recalculated values Te, the speed predictive value, in the control apparatus for a robot system having a second calculating means for the acceleration estimated value and the deceleration predicted value,
Third storage means for storing robot dynamics base parameters including an inertia tensor, a mass and a gravity center position of each link connected to each joint of the robot mechanism section;
A start position and a target position of each joint stored in the first storage means; a speed prediction value calculated by the second calculation means; and a robot dynamics base parameter stored in the third storage means; On the basis of the,
(A) For each joint of the robot mechanism section, an inertia matrix indicating torque generated in the joint itself by acceleration, and interference torque generated by acceleration of other joints;
(B) a viscosity matrix indicating a torque generated by centrifugal force and Coriolis force for each joint of the robot mechanism unit;
(C) third computing means for calculating a robot dynamics model at the start position and the target position, including a gravity matrix indicating a torque generated by the gravitational moment of each joint of the robot mechanism section;
Based on the robot dynamics model calculated by the third calculating means and the predicted acceleration and deceleration predicted values of the joints calculated by the second calculating means, the predicted acceleration values of the joints are mutually determined. The proportional relationship between the joints of the acceleration predicted value is proportionally maintained during acceleration, and the predicted deceleration value of each joint is proportional to each other. The weight term obtained from the gravity matrix not satisfying the acceleration and the deceleration is satisfied from the allowable peak torque of each joint , satisfying the first condition that the second proportional relationship is maintained. originating value, and the subtraction result value obtained by subtracting the value of the viscosity term obtained from the relationship without viscous matrix in acceleration and deceleration, in each joint when the joint is operating at the acceleration estimated value and the deceleration predicted value A fourth computing means for optimal acceleration and optimal deceleration that satisfies the second condition that the above torque calculating for each joint that,
A search is made for the joint having the longest operation time in the first calculation means, and for the k-th joint that is the searched joint, the optimum acceleration and optimum deceleration calculated by the fourth calculation means, From the teaching data including the start position, target position and target speed of the kth joint stored in the first storage means, the speed pattern of the kth joint is calculated using the first speed pattern calculation method , Fifth operation means having the operation time as a reference operation time;
For all joints other than the k-th joint, the reference operation time calculated by the fifth calculation means, the optimum acceleration and optimum deceleration calculated by the fourth calculation means, and the first Based on the teaching data including the start position and the target position stored in the storage means, only the joint that has reached the reference operation time, which is the longest operation time, using the optimum acceleration and the optimum deceleration described above. The reference motion time is obtained by the first speed pattern calculation method. For the other joints, the base of each joint is maintained so that the optimum acceleration and the optimum deceleration are maintained and the motion time becomes the reference motion time. using the second speed pattern calculation method for calculating the velocity pattern of the shape, operation time becomes the reference operation time, speed so as to operate at the optimal acceleration and optimal deceleration Control apparatus for a robot system, characterized in that a sixth calculating means for generating a pattern.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000278063A JP4358979B2 (en) | 2000-07-14 | 2000-09-13 | Robot system control method and control apparatus |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000214536 | 2000-07-14 | ||
| JP2000-214536 | 2000-07-14 | ||
| JP2000278063A JP4358979B2 (en) | 2000-07-14 | 2000-09-13 | Robot system control method and control apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002091572A JP2002091572A (en) | 2002-03-29 |
| JP4358979B2 true JP4358979B2 (en) | 2009-11-04 |
Family
ID=26596072
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000278063A Expired - Lifetime JP4358979B2 (en) | 2000-07-14 | 2000-09-13 | Robot system control method and control apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4358979B2 (en) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009082945A (en) * | 2007-09-28 | 2009-04-23 | Daihen Corp | Method for controlling arc welding robot system, and arc welding robot system |
| JP6448877B1 (en) | 2018-01-31 | 2019-01-09 | 三菱電機株式会社 | Motor capacity selection device, capacity selection method and capacity selection program |
| JP7115090B2 (en) * | 2018-07-17 | 2022-08-09 | オムロン株式会社 | Acceleration adjustment device and acceleration adjustment program |
| JP7182952B2 (en) * | 2018-08-27 | 2022-12-05 | キヤノン株式会社 | CONTROL METHOD, CONTROL PROGRAM, RECORDING MEDIUM, CONTROL DEVICE, ROBOT SYSTEM, AND PRODUCT MANUFACTURING METHOD |
| CN109284580B (en) * | 2018-11-13 | 2022-12-02 | 合肥哈工仞极智能科技有限公司 | Method for identifying kinetic parameters of series robot |
| CN110539302B (en) * | 2019-07-18 | 2021-12-07 | 南京航空航天大学 | Industrial robot overall dynamics modeling and dynamics parameter identification method |
| JP7443013B2 (en) * | 2019-10-04 | 2024-03-05 | 株式会社ダイヘン | robot control device |
| DE102019128082B4 (en) * | 2019-10-17 | 2022-03-10 | Franka Emika Gmbh | Torque-limited braking of a robotic manipulator |
| US11691285B2 (en) * | 2020-05-07 | 2023-07-04 | Mujin, Inc. | Method and computing system for estimating parameter for robot operation |
| WO2023032156A1 (en) * | 2021-09-03 | 2023-03-09 | 三菱電機株式会社 | Robot control system, robot control device, motion planning device, robot control program, and motion planning program |
| CN114191791B (en) * | 2021-11-12 | 2023-01-31 | 深圳华鹊景医疗科技有限公司 | Rehabilitation robot active control method and device and rehabilitation robot |
| CN114260900B (en) * | 2021-12-30 | 2023-08-29 | 库卡机器人制造(上海)有限公司 | Deceleration control method and device for robot, robot assembly and storage medium |
| CN114310063B (en) * | 2022-01-28 | 2023-06-06 | 长春职业技术学院 | A welding optimization method based on six-axis robot |
| CN115284295B (en) * | 2022-08-31 | 2025-01-21 | 美的集团(上海)有限公司 | Sampling method, sampling device, readable storage medium and robot |
| CN116880293B (en) * | 2023-07-20 | 2023-12-26 | 济南大学 | A quadruped robot control method and control terminal based on explicit model predictive control |
| CN117195422A (en) * | 2023-08-30 | 2023-12-08 | 东莞市本末科技有限公司 | Joint motor selection and evaluation methods, equipment and storage media for wheeled robots |
| CN118131612B (en) * | 2024-01-19 | 2026-03-03 | 广东工业大学 | Four-foot robot planning and control method and system based on barycenter dynamics model |
-
2000
- 2000-09-13 JP JP2000278063A patent/JP4358979B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002091572A (en) | 2002-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4358979B2 (en) | Robot system control method and control apparatus | |
| CN104254430B (en) | Robert controller, robot device and robot control method and device | |
| CN103302667B (en) | Robot control method, robot controller and robot control system | |
| JP6128767B2 (en) | Robot control apparatus and robot control method | |
| Brossog et al. | Energy consumption and dynamic behavior analysis of a six-axis industrial robot in an assembly system | |
| JP7028196B2 (en) | Robot control device, robot control method, and robot control program | |
| EP3351353A1 (en) | Robot control apparatus, robot system, robot control method and assembly manufacturing method | |
| JP2005242794A (en) | Robot control apparatus and robot control method | |
| JP2019098439A (en) | Vibration suppression device | |
| CN1120077C (en) | Robot control method and device | |
| CN112262026B (en) | Acceleration adjustment device and storage medium | |
| Wilson et al. | Augmented sliding mode control for flexible link manipulators | |
| JPH0991004A (en) | Method for estimating load weight | |
| JP6021478B2 (en) | Robot control apparatus and robot control method | |
| JP2019195892A (en) | Deflection amount estimation device, robot control device, and deflection amount estimation method | |
| JP2007272597A (en) | Robot acceleration / deceleration pattern generation method | |
| JP3805476B2 (en) | Motor control device | |
| Garciaherreros et al. | Decoupling basis control of dual-drive gantry stages for path-tracking applications | |
| JP5633268B2 (en) | Robot control device | |
| Wang et al. | Model-based robust control of permanent magnet synchronous motor for joint module of cooperative robot | |
| Filipovic et al. | Contribution to the modeling of cable-suspended parallel robot hanged on the four points | |
| Garciaherreros et al. | Model-based control of a dual-drive H-type gantry stage on a decoupling base | |
| JP3596682B2 (en) | Robot acceleration / deceleration time determination method | |
| Dirk et al. | Cost-oriented virtual reality and real-time control system architecture | |
| Aguedach et al. | Model-Based Design Approach for Cartesian Robot Using Computed Torque Control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070308 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090218 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090224 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090424 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090728 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090807 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4358979 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130814 Year of fee payment: 4 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |