JP3736029B2 - Pulse motor drive system trajectory control apparatus and method, and recording medium - Google Patents
Pulse motor drive system trajectory control apparatus and method, and recording medium Download PDFInfo
- Publication number
- JP3736029B2 JP3736029B2 JP12357197A JP12357197A JP3736029B2 JP 3736029 B2 JP3736029 B2 JP 3736029B2 JP 12357197 A JP12357197 A JP 12357197A JP 12357197 A JP12357197 A JP 12357197A JP 3736029 B2 JP3736029 B2 JP 3736029B2
- Authority
- JP
- Japan
- Prior art keywords
- coordinate data
- data
- curve length
- smoothing
- coordinate
- 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 - Fee Related
Links
Images
Landscapes
- Control Of Position Or Direction (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、パルスモータ駆動系の軌道制御装置及び方法及び記録媒体に関する。
【0002】
【従来の技術】
従来より、サーボループを有するサーボモータ(DCモータ、ACモータ等)を採用したロボット等においては、滑らかなCP(Continuous Path )曲線を得るための各種のアルゴリズム(以下、スムージングアルゴリズムという)が提案されている。
図13は、サーボモータロボットのスムージングアルゴリズムの従来例の構成を示す説明図である。
【0003】
この種のスムージングアルゴリズムとしては、大きく分けてCP動作に先立って軌道計算を行う動作前計算方式とリアルタイムに軌道計算を行うリアルタイム計算方式の2種類がある。
動作前計算方式は、軌道計算専用の高速CPUを用いて、動作前に曲線のスムージング(スプライン補間)、速度、加速度等を全て計算し、モータ、メカ能力限界に応じて修正し、最終的な位置・速度・加速度結果をメモリに展開するとともに、動作時には、このメモリを参照しながらCP動作が進行する方式であり、軌道計算専用の高速CPUが必要である。
これに対して、リアルタイム計算方式は、上述のような軌道計算専用の高速CPUをもたない普通のロボットにおいて、ロボットの動作とスムージングとを同時に処理する方式であり、この従来例で説明するスムージングアルゴリズムは、リアルタイム計算方式によるものである。
【0004】
次に、図13に示す従来のスムージングアルゴリズムの構成について説明する。このスムージングアルゴリズムは、CP曲線のサンプリング部10と、ランプ信号発生部20と、3次ローパスフィルタ(l−ソフトモータ)部30と、座標変換部40と、インバース(逆変換)部50とから構成される。
曲線サンプリング部10では、所定のCP定速度Vcpに応じて、曲線を一定のエレメント長△lに切り、サンプリングする。ここで、サンプリング時間をTsとすると、△lは以下のようになる。
△l=Vcp・Ts ……(従1)
【0005】
次に、ランプ信号発生部20は、CP定速度Vcpを発生するものであり、式(従1)に従ってサンプリング時間Ts毎に△lずつ移動長を増していくことにより、図13(B)に示すようなランプ信号を生成する。また、CPの全長をLとすれば、Tf時間後にランプは水平に折れることとなる。つまり、以下のようになる。
Vcp=L/Tf、Tf=N・Ts(N=整数) ……(従2)
なお、Nが整数となるように、TfつまりVcpを多少トリミングするが、Tsは、一般に十分小さいので問題ない。
このような方式により、例えば図14に示すように、CP曲線上で、領域毎に速度を変更することや、途中停止等を行うことも容易となる。
【0006】
次に、3次ローパスフィルタ部30(l−ソフトモータ)は、図15(A)に示すようなランプ信号より、図15(B)に示すような滑らかな線加減速曲線lを生成するものである。この3次のローパスフィルタは、伝達関数G(s)=a/s+b/s2+c/s3のとき、G(s)/1+G(s)で安定となる構造を有するローパスフィルタである。
そして、このフィルタ部30による滑らかさは、フィルタ部30の時定数を変更することにより、自由に可変できる。
【0007】
次に、座標変換部40は、3次ローパスフィルタ部30の出力である曲線長lを、CP曲線上の空間座標Ψ(x、y、z)に変換するものである。空間座標Ψ(x、y、z)の各座標をlを用いてパラメータ表示すると、任意の連続CP曲線は以下のように表現できる。
x=x(l)、y=y(l)、z=z(l) ……(従3)
これは曲線が折れ線である場合も同様である。また、極座標(R軸)成分に対しても指定したい場合には、上式(従3)に、r=r(l)を加えればよい。
ここで、l→Ψ(x、y、z)座標変換とは、上式(従3)よりΨ(x、y、z)を求めることとなる。したがって、この変換では、Ψ(x、y、z)に位置誤差は発生しない。
【0008】
次に、インバース(逆変換)部50は、上述した空間座標Ψ(x、y、z)をロボットの関節角Θ(θx、θy、θz)に変換するものである。ここでΨ=F(Θ)とした時、Θ=F-1・Ψを求めることとなる。
【0009】
【発明が解決しようとする課題】
ところで、上述のようなスムージングアルゴリズムは、サーボモータロボット用のものであるが、従来は、パルスモータを採用したロボットにおいても、上述のようなスムージングアルゴリズムをそのまま採用していた。
しかしながら、制御系自体にスムージング機能(すなわち、サーボループのローパス機能)を有するサーボモータロボットに比較し、パルスモータロボットは、パルス列による軌道指令通りに駆動するものである。
したがって、このようなパルスモータロボットにサーボモータロボット用のアルゴリズムを採用した従来技術では、動作速度が低いときやCP曲線自体が滑らかであれば支障がないが、動作速度が高かったり、CP曲線が折れ線であるときには、適正なCP動作精度を得ることは困難であり、また機構部の振動や脱調等の点で大きな支障を生じる。
【0010】
例えば図16(A)に示すように、直交ロボットにおける直交コーナをもったCP曲線では、図16(B)(C)に示すように、x、y軸関節速度Vx、Vyが大きくステップジャンプする。
これに対してサーボループを有するサーボモータロボットでは、このステップジャンプの影響は、サーボのローパスフィルタ特性により吸収され、ほとんどの場合、モータやメカ動作の障害とならない。
一方、サーボループをもたないパルスモータを採用しているロボットでは、関節速度ジャンプ量が大きくなる、つまりCP速度が大きくなると、メカ衝撃となり、滑らかなCP曲線動作が困難となる。
【0011】
そこで本発明の目的は、低廉なパルスモータを用いた駆動系において、高速で高精度の円滑なCP動作を得ることができるパルスモータ駆動系の軌道制御装置及び方法及び記録媒体を提供することにある。
【0012】
【課題を解決するための手段】
本発明は前記目的を達成するため、制御対象物のCP動作を制御するパルスモータ駆動系の軌道制御装置において、前記制御対象物のCP動作曲線に基づいて、所定のCP速度に対応する曲線長データを生成する曲線長データ生成手段と、前記曲線長データをn次元(n≧2)の座標データに変換する座標変換手段と、前記座標変換手段によって得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングする座標データスムージング手段と、前記座標データスムージング手段より出力される座標データを速度補正用メモリに格納するメモリ格納手段と、前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す読み出し手段と、前記読み出し手段によって読み出された座標データを駆動信号に変換する逆変換手段とを有することを特徴とする。
【0013】
また本発明は、制御対象物のCP動作を制御するパルスモータ駆動系の軌道制御方法において、前記制御対象物のCP動作曲線に基づいて、所定のCP速度に対応する曲線長データを生成する曲線長データ生成工程と、前記曲線長データをn次元(n≧2)の座標データに変換する座標変換工程と、前記座標変換工程によって得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングする座標データスムージング工程と、前記座標データスムージング工程より出力される座標データを速度補正用メモリに格納するメモリ格納工程と、前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す読み出し工程と、前記読み出し工程によって読み出された座標データを駆動信号に変換する逆変換工程とを有することを特徴とする。
【0014】
また本発明は、コンピュータ読み取り可能な記録媒体に、制御対象物のCP動作曲線に基づいて、所定のCP速度に対応する曲線長データを生成する機能と、前記曲線長データをn次元(n≧2)の座標データに変換する機能と、前記n次元の各座標データを、それぞれローパスフィルタに通してスムージングする機能と、前記ローパスフィルタを通した座標データを速度補正用メモリに格納する機能と、前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す機能と、前記速度補正用メモリより読み出された座標データを駆動信号に変換する機能とを実現させるためのプログラムを記録したことを特徴とする。
【0015】
以上のような本発明では、曲線長データより得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングする。そして、スムージングされた座標データを速度補正用メモリに一時格納し、この格納した座標データを順次読み出して、駆動信号に変換してパルスモータ駆動系に出力していく。
ここで、n次元の各座標データをローパスフィルタに通してスムージングすることにより、パルスモータ駆動系を駆動する場合の滑らかな動作を得ることができ、メカ振動や脱調を防止する。また、速度補正用メモリを介して伝送することにより、安定した速度によって駆動することができる。
【0016】
【発明の実施の形態】
以下、本発明によるパルスモータ駆動系の軌道制御装置の実施の形態例について説明する。
本例のパルスモータ駆動系は、例えば4軸小型卓上ロボットとして構成されたものであり、このパルスモータロボットのCP動作を制御する軌道制御装置は例えばホストコンピュータ内のアルゴリズムとして構成されている。
なお、本例のスムージングアルゴリスムは上述のようにリアルタイム計算方式を採用したものである。
【0017】
図1は、本発明によるパルスモータロボットの軌道制御装置によるスムージングアルゴリスムの第1の例を示すブロック図である。
このスムージングアルゴリスムは、関節速度のジャンプに対応したメカ振動や脱調を回避可能なパルスモータロボット専用のスムージングアルゴリズムとして構成されており、CP曲線のサンプリング部110と、ランプ信号発生部120と、3次ローパスフィルタ(l−ソフトモータ)部130と、座標変換部140と、3次ローパスフィルタ(Ψ−ソフトモータ)部150と、速度補正用メモリ部160と、速度補正/線形補間部170と、インバース(逆変換)部180とを有する。
【0018】
曲線サンプリング部110では、所定のCP定速度Vcpに応じて、曲線を一定のエレメント長△lに切り、サンプリングする。ここで、サンプリング時間をTsとすると、△lは以下のようになる。
△l=Vcp・Ts ……(1)
次に、ランプ信号発生部120は、CP定速度Vcpを発生するものであり、式(1)に従ってサンプリング時間Ts毎に△lずつ移動長を増していくことにより、図1(B)に示すようなランプ信号を生成する。
【0019】
また、CPの全長をLとすれば、Tf時間後にランプは水平に折れることとなる。つまり、以下のようになる。
Vcp=L/Tf、Tf=N・Ts(N=整数) ……(2)
なお、Nが整数となるように、TfつまりVcpを多少トリミングするが、Tsは、一般に十分小さいので問題ない。
このような方式により、例えば図14に示すように、CP曲線上で、領域毎に速度を変更することや、途中停止等を行うことも容易となる。
【0020】
次に、3次ローパスフィルタ部130(l−ソフトモータ)は、図15(A)に示すようなランプ信号より、図15(B)に示すような滑らかな線加減速曲線lを生成するものである。この3次ローパスフィルタは、伝達関数G(s)=a/s+b/s2+c/s3のとき、G(s)/1+G(s)で安定となる構造を有するローパスフィルタである。
そして、このフィルタ部130による滑らかさは、フィルタ部130の時定数を変更することにより、自由に可変できる。
【0021】
次に、座標変換部140は、3次ローパスフィルタ部130の出力である曲線長lを、CP曲線上の空間座標Ψ(x、y、z)に変換するものである。空間座標Ψ(x、y、z)の各座標をlを用いてパラメータ表示すると、任意の連続CP曲線は以下のように表現できる。
x=x(l)、y=y(l)、z=z(l) ……(3)
これは曲線が折れ線である場合も同様である。また、極座標(R軸)成分に対しても指定したい場合には、上式(3)に、r=r(l)を加えればよい。
ここで、l→Ψ(x、y、z)座標変換とは、上式(3)よりΨ(x、y、z)を求めることとなる。したがって、この変換では、Ψ(x、y、z)に位置誤差は発生しない。
【0022】
次に、3次ローパスフィルタ(Ψ−ソフトモータ)部150は、座標変換部140によるx、y、zのデータを、それぞれ3次ローパスフィルタに通してスムージングするものである。
図16で説明したように、座標変換部140が生成するx、y、zの各々はCP曲線によっては例えば直交方向に折れて、それぞれの速度x’、y’、z’がジャンプする。
【0023】
なお、以下の説明において、各座標データx、y、zに対し、速度をdx/dt=x’、dy/dt=y’、dz/dt=z’、加速度をd2 x/dt2 =x”、d2 y/dt2 =y”、d2 z/dt2 =z”と表すものとする。また、1度フィルタを通したデータをx*、y*、z*、2度フィルタを通したデータをx**、y**、z**と表すものとする。なお、x、y、z以外の記号についても同様である。
ただし、図面中の記載においては、速度は各記号の上に1つのドットを付して表し、加速度は各記号の上に2つのドットを付して表すものとする。また、1度フィルタを通したデータは各記号の上に1本の波線を付して表し、2度フィルタを通したデータは各記号の上に2本の波線を付して表すものとする。
【0024】
上述したジャンプが直接パルスモータに伝わってしまうと脱調したり、メカを大きく揺す恐れがあるので、この(x、y、z)各々もソフトモータに入力し、ローパスする。
ここでパルスモータの脱調、メカ振動対策だけなら、(x、y、z)をローパスするのでなくて、インバース部180で逆変換をかけた関節角(Θx 、Θy 、Θz )の各々をローパスすれば良いと思われるが、この手法をとると、ローパス効果のため、CP曲線に大きな位置誤差(精度エラー)が発生し、しかもこの位置エラーは、(x、y、z)のCP軌跡エラーとなり、予測できないものとなる。なお、サーボモータでは、この問題を抱えている。
【0025】
一方、(x、y、z)にスムージングをかける場合でも、位置エラー(精度エラー)は発生するが、これは3次ローパスフィルタ(Ψ−ソフトモータ)部150の時定数で制御可能なエラーである。
そこで本例では、(x、y、z)をローパスすることにより、CP位置精度、速度精度を制御して関節角加速度を滑らかにし、パルスモータの脱調、メカ振動を防止する。
なお、3次ローパスフィルタ(Ψ−ソフトモータ)部150におけるx、y、zの3つのローパスフィルタは、上述した3次ローパスフィルタ部130と同様に、伝達関数G(s)=a/s+b/s2+c/s3のとき、G(s)/1+G(s)で安定となる構造を有するローパスフィルタである。
【0026】
また、3次ローパスフィルタ(Ψ−ソフトモータ)部150の各フィルタは、互いに同一の特性を有し、また、各フィルタの特性(極配置)は必要に応じて、自由にチューニング可能であるものとする。
特に、図2に示すように、ステップ信号を入力した時、速度がピークに達する時間Tpを自由にチューニング可能であるものとする。
【0027】
上述のようにスムージングとは、CP位置精度、速度精度をコントロールして、加速度を柔らげる機能である。図3(A)〜(I)は、この状況を示す説明図である。なお、ここでは説明を簡単にするため、図3(A)に示すように、x−yの2次元平面上で直交コーナを有するCP曲線の例について説明する。
この場合、x、yの曲線長データは、図3(B)(C)に示すように、共にCP速度一定のためランプ波形となり、x、yの速度x’、y’は、図3(D)(E)に示すように、共にステップ関数となる。そして、これらをローパスすることにより、x’*、y’*は、図3(F)(G)に示すように、一定に時定数で滑らかな曲線となる。
【0028】
そして、図3(H)に示すように、これらを合成したCP速度l’において、ソフトモータのピーク速度到達時間はTpとなる。ここで、ソフトモータ出力のCP速度l’は、l’*={(x’*)2 +(y’*)2 }1/2 なるベクトル量であるため、l’は一定とならず、くさび状に落ちてしまう。
また、図3(I)に示すように、スムージングされたCP曲線(x*、y*)は、コーナ部の内側を指定軌跡からズレて走ることとなる。
【0029】
ロボットのCP動作では、位置精度も速度精度も重要ではあるが、両者を理想的に走らすことは、力学上不可能である。このため、本アルゴリズムでは、スムージングのチューニング機構として、図4に示すようなソフトモータのチューニング(極配置)を用いる。
一方、速度のチューニング機構としては、速度補正メモリ部160及び速度補正/線形補間部170を用いる。以下、図1に沿って、速度補正メモリ部160及び速度補正/線形補間部170の動作について説明する。なお、サンプリング時間Ts、CP速度Vcp及び各種ソフトモータの時定数は既に決定されているものとする。
【0030】
本例のCP速度補正アルゴリズムでは、上述した座標変換部140より出力する空間座標Ψ(x、y、z)を3次ローパスフィルタ(Ψ−ソフトモータ)部150に入力するのと同時に、3次ローパスフィルタ部150の出力(x*、y*、z*)を速度補正メモリ部160にサンプリングタイミング毎にストアしていく。
したがって、速度補正メモリ部160には、P1 (x*、y*、z*)→P2 (x*、y*、z*)→P3 (x*、y*、z*)、………、PN (x*、y*、z*)の形で格納される。
なお、速度補正メモリ部160上のポインタ数Nは、時間Tp分用意する。つまり、Tp/Ts=Nとなる。
【0031】
次に、CP速度補正について説明する。
一般にロボットのCP動作のアプリケーションでは、CP速度Vcpを一定にして走らせたいケース(例えばディスペンサ作業、半田付け、塗布作業等)が多い。
しかし、図5に示すように、3次ローパスフィルタ(Ψ−ソフトモータ)部150の出力によるCP速度Vcp*は、Vcp*={(x’*)2 +(y’*)2 }1/2 で一定とならず、くさび状に変化してしまう。
すなわち、(x’*2 +y’*)は一定となるが、{(x’*)2 +(y’*)2 }1/2 は一定とならない。
そこで、本例では減速開始時点t=t1 以後において、以下のような処理を行い、速度Vcp*を補正する。
【0032】
まず、t=t1 におけるΨ−ソフトモータの出力がP1 (x1 *、y1 *、z1 *)にストアされているとする。そして、以後、サンプリング時間Ts毎にP2 、P3 、P4 、…とストアされているとする。
ここで、t=t1 +Tsでの位置データP2 (x2 *、y2 *、z2 *)を次式より速度補正メモリ上でサーチする。
△l={P2 2 −P1 2 }1/2 ……(4)
ただし、P2 2 −P1 2 ≒(x2 *−x1 *)+(y2 *−y1 *)+(z2 *−z1 *)とする。 ……(5)
【0033】
上式(4)を厳格に満たすP2 は、メモリ上には一般には存在しない。そこで、まず△l以上となる点Pi を探す。つまり、
{Pi 2 −P1 2 }1/2 ≧△l ……(6)
ここで、Pi とPi-1 の間を線形補間して、上式(4)を満たすP2 を線形補間計算にて決定する。
【0034】
具体的には、例えば図6において、
線分長〈Pi-1 〜Pi 〉=△li ……(7)
で、Pi-1 からδli の距離にある点Pi ´においてちょうど△lになったとする。δli は知ることのできる値であるので、δli =K・△li より、K=δli /△li なるKを決定する。これにより、
により、Pi ´(xi *´、yi *´、zi *´)が決定できる。
【0035】
以後、このPi ´を起点として、ここからの距離が△lとなる点を同様に決定していく。このアルゴリズムでは、メモリ上の位置データは既にスムージングされており、この位置を基にCP速度Vcp一定となるように線形補間がなされるから、図7に示すように、CP位置、CP速度は、各々期待通りとなる。
しかしながら、以上のようなアルゴリズムにおいて、CPU能力等の関係で、サンプリング時間Tsが大きいと、関節各速度がジャンプし、このままでは、メカ振動、脱調等の問題が残る。
【0036】
そこで、本例では、CP速度補正を100%行うのでなく、所定のP%(<100%)のみ実行する方法を採用する。なお、サンプリング時間Tsが充分小さい場合には、このような処理は不要である。
100%補正では、Ts間の移動距離が△l=Vcp・Tsとなるようなポイントをメモリ上のポイントデータに基づいて線形補間でもとめた。
ここで、△l(n)を、t=nTsとt=(n−1)Tsとの間の距離とする。つまり、
△l(n)={Pn 2 −Pn-1 2 }1/2 ≦△l ……(9)
【0037】
次に、△l´(n)を、P%補正する場合のt=nTsとt=(n−1)Tsとの間の距離とする。このとき、
これにより、△l´(n)を決定する。これ以後、メモリサーチ及び線形補間は、100%補正時と同様に処理することにより、図8に示すように、CP速度、P%補正ができ、関節各速度、ジャンプ量を小さくでき、メカ振動を小さく抑制できる。なお、このP%の値は、ロボット言語やティーチングペンダント等によりユーザが適宜入力できるようにする。
【0038】
次に、以上のようにして得られた補正データ(x、y、z)に基づいて、インバース(逆変換)部180において、ロボットの関節角Θ(θx、θy、θz)に変換し、後段のパルスボードに送出する。
【0039】
図9は、本発明によるパルスモータロボットの軌道制御装置によるスムージングアルゴリスムの第2の例を示すブロック図である。
上述した第1の例による速度補正方法では、図8からも分かるように、補正された速度において、t=Tp/2にて速度が滑らかでなくなる。つまり、CP加速度が、わずかかも知れないが、ジャンプすることとなる。そして、このジャンプ(不連続性)によって、関節各速度のジャンプとなり、メカ振動、脱調上好ましくない。そこで本発明の第2の例では、このような問題に対応する構成ついて説明する。なお、このスムージングアルゴリスムは、上述した第1の例によるスムージングアルゴリスムと併用できるものである。
【0040】
このスムージングアルゴリスムは、CP曲線のサンプリング部210と、ランプ信号発生部220と、座標変換部230と、3次ローパスフィルタ(Ψ−ソフトモータ)部240と、曲線長計算部250と、3次ローパスフィルタ(l−ソフトモータ)部260と、速度補正用メモリ部270と、インバース(逆変換)部280とを有する。
このうち、CP曲線のサンプリング部210とランプ信号発生部220は、図1に示すサンプリング部110とランプ信号発生120と共通である。
【0041】
また、座標変換部230は、図1に示す座標変換部140と同様の機能を有しており、ランプ信号発生部220より出力される曲線長lを空間座標ψ(x、y、z)に変換するものである。
また、3次ローパスフィルタ(Ψ−ソフトモータ)部240は、図1に示す3次ローパスフィルタ部150と同様であり、座標変換部230からの座標データx、y、zをローパスフィルタを通してスムージングするものである。なお、各軸x、y、zのソフトモータにおける時定数は同じである。
【0042】
また、曲線長計算部250は、3次ローパスフィルタ部150の出力データx*、y*、z*に基づいて、ローパスがかけられたCP曲線長l*を計算するものである。つまり、l*={x*2 +y*2 +z*2 }1/2 を計算する。
また、速度補正用メモリ部270では、以上のようなl*及び(x*、y*、z*)をサンプリング時間毎に順番にPn (l*、x*、y*、z*)の形で格納するものである。
【0043】
3次ローパスフィルタ(l−ソフトモータ)部260は、曲線長計算部250から出力されるCP曲線長l*を3次ローパスフィルタを通してスムージングするものである。この3次ローパスフィルタ部260の出力をl**とする。
図10に示すように、l*’は、くさび形に速度が鋭く落ち込み、ディスペンサ作業等において不都合も予想される。そこで、l*をさらに3次ローパスフィルタ部260でスムージングすることにより、速度もスムージングされる。
図10から分かるように、l*’の変化が滑らかにスムージングされたCP加速度、連続のl**’が得られる。なお、l−ソフトモータのF特性を小さくした方が図10に示すように補正が強く働くものである。
【0044】
速度補正用メモリ部270は、上述したPn (l*、x*、y*、z*)を順次格納するとともに、サンプリング時間に対応し、3次ローパスフィルタ部260からのl**に基づいて(x*、y*、z*)を順次サーチして出力する機能を有している。以下、この手順について説明する。
まず、l**は、l−ソフトモータによりスムージングを受けた曲線長であるが、このl**に対応するCP曲線上の点(x*、y*、z*)をメモリよりサーチして求める。
メモリ内には、Pn (l*、x*、y*、z*)の形で格納されているので、l*=l**となるPn をサーチして、このPn (x*、y*、z*)を次段のインバース部280に送出する。
【0045】
これにより、l−ソフトモータでスムージングされたl**と、Ψ−ソフトモータでスムージングされたl*との間に、CP曲線として位置エラーが入り込まないようにしている。
なお、上述のようにl*=l**となるPn をサーチして見つからない場合には、図1で利用した線形補間法を適用する。
また、インバース部280は、速度補正用メモリ部270にて得られた補正データ(x*、y*、z*)よりロボットの関節角Θ(θx、θy、θz)を算出し、後段のパルスボードに送出する。
【0046】
次に、以上のような各例における速度補正用メモリ部160、270の使用方法の詳細について順を追って説明する。
まず、CP曲線計算スタートで、ソフトモータ出力をメモリに順次ストアしていく。この段階ではロボットはまだ動作していない。
次に、メモリは、Tp/Tssの記憶領域を用意してあるので、このメモリがfullになったら、ロボットのCP動作を実際にスタートさせる。つまり、メモリの先頭データを変換してパルスボードに送出開始する。
これ以後も、メモリにソフトモータ出力をストアしていくが、メモリ容量はTp/Tssしか用意していないので、1つのデータをストアする毎に、Tp前のメモリデータは順番に捨てていく。したがって、このメモリはリングバッファとするのが有効である。
【0047】
次に、このメモリを用いて、速度補正をかけるトリがとなるのは、各軸の速度のジャンプ量、すなわち指令加速度(x”、y”、z”)のいずれかの値が、前もって与えられる加速度閾値(xS ”、yS ”、zS ”)をオーバーした場合とする。従って、閾値をオーバーしないようなCP曲線であれば、この速度補正は実行されない。
なお、加速度閾値(xS ”、yS ”、zS ”)は、メカ構造に左右される量であるので、事前の実験等で決定しておく必要がある。また、加速時(0≦t≦Tp)と減速時(Tf≦t≦Tf+Tp)にも補正はかけない。
【0048】
加速度ジャンプがTp時間内にコーナが続いた場合、Tp間の速度は補正される。しかし、Tp以降の部分の速度補正はかからない。こういったケースは少ないので対応する必要は必ずしもないが、もし対応する場合は、メモリをリングバッファ構造にして、常に補正をかけてしまう手法も可能である。特に、CPUの計算負担が重くない場合に、この方法が有効である。
【0049】
次に、以上のようなパルスモータ専用CP曲線のスムージングアルゴリズムに関する応用例について説明する。
まず、パルスモータ脱調防止アルゴリズムについて説明する。
ロボットのユーザがどんな形のCP曲線でロボットを走らせるか、ロボット設計者には分からない。これに対し、どんな形のCP曲線に対しても、パルスモータが脱調せぬように、CP最高速度Vcpmax をかなり低めに設計することは可能であるが、これでは保守的な設計となり、ロボットの能力を抑えてしまう。
そこでこのような場合、ユーザが欲するCP速度で走らせて見て、脱調した場合、3つのψ−ソフトモータの時定数を適当に大きくすることで脱調を防止することができる。もちろんこの場合、CP軌跡のズレは大きくなるが、脱調を防止するための選択肢として有効となる。なお、このように3つのψーソフトモータ時定数をユーザがロボット言語やティーチングペンダントから変更できるようにしておく。
【0050】
また、上記のようにユーザにソフトモータ時定数を変更させるシステムがどうしても好ましくない場合、前計算方式とすると自動説調防止が可能となる。以下に手順概要を示す。
まず、図1に示す処理をCP曲線最後までロボットを動作させずに行う(前計算)。
次に、前計算時における各軸の(Θx’、Θy’、Θz’)及び(Θx”、Θy”、Θz”)を各サンプリング時間毎にメモリに格納する。
このメモリデータを利用して、図11に示すように、各軸毎にTN特性を描いて見て、TN特性をはみ出している軸を見つける。なお、複数の軸が共にはみ出している場合、はみ出している割合が大きい軸のTN軌跡を描いて見る。
【0051】
次に、TN軌跡の中で加速度がピークとなる点(Θp”、Θp’)を見つける。ここで、速度Θp’におけるTN特性上の加速度をΘ1 ”とする場合に、α=(Θp”/Θ1 ”)1/2 となるαを計算し、ψーソフトモータの時定数をα倍以上に設定すれば、脱調を防止できる。
何故なら、(x、y、z)ソフトモータの時定数をα倍すれば、加速度は1/α2 となり、Θp”がΘ1 ”となりTN特性以内に納まるからである。
【0052】
次に、上述したスムージングアルゴリズムを用いた場合、CP軌跡がCP速度Vcpでどのように変化するかを説明する。なお、CP曲線は無数にあるので、上述した直交ロボットによる直角コーナの場合で説明する。
ψーソフトモータの時定数の1つである速度ピーク到達時間をTpとする。すると、Tp間に走るCP曲線上の距離△l(Tp)は、△l(Tp)≒Vcp/Tpで、CP速度Vcpにほぼ比例して図12に示すようになる。
つまり、Vcpが大きい程、コーナからのズレが大きくなるが、Vcpが小さい程、ズレは小さくなる。そして、ユーザがVcpをチューニングすることで、ズレを調整できる。
【0053】
また、上述したスムージングアルゴリズムは、ホストCPUにとっては、かなりな処理負担となる。このうち、l−ソフトモータ130はCP速度の加減速を滑らかに生成するローパスフィルタであるが、後段のψーソフトモータ150も、同様の役割を持っているので、CPUへの負担が大きい場合、l−ソフトモータ130は省略しても良い。
さらに、上述した各例では、制御対象物としてパルスモータロボットを制御する構成について説明したが、本発明はロボット以外の駆動系を制御する構成として広く応用し得るものである。
【0054】
【発明の効果】
以上説明したように本発明では、曲線長データより得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングし、これらのスムージングされた座標データを速度補正用メモリに一時格納し、この格納した座標データを順次読み出して駆動信号に変換し、パルスモータ駆動系に出力するようにした。
したがって本発明によれば、安価なパルスモータ駆動系において、高速CP動作や折れ線状のCP軌道に対し、サーボモータ駆動系と同等ないしそれ以上の滑らかな軌道を得ることができ、また安定した動作速度を容易に得ることができる効果がある。
【図面の簡単な説明】
【図1】本発明によるパルスモータロボットの軌道制御装置によるスムージングアルゴリスムの第1の例を示すブロック図である。
【図2】図1に示すアルゴリスムにおけるψソフトモータの作用を説明する説明図である。
【図3】図1に示すアルゴリスムにおけるCP曲線の直線コーナ部に対するスムージング曲線の生成工程を示す説明図である。
【図4】図1に示すアルゴリスムにおけるψソフトモータの特性とCP精度との関係を説明する説明図である。
【図5】図1に示すアルゴリスムにおける速度スムージングによる作用を説明する説明図である。
【図6】図1に示すアルゴリスムにおける速度スムージングデータの補間方法を説明する説明図である。
【図7】図1に示すアルゴリスムにおける速度スムージングデータの補間による作用を説明する説明図である。
【図8】図1に示すアルゴリスムにおける速度スムージングデータの速度補正量を制御した場合の作用を説明する説明図である。
【図9】本発明によるパルスモータロボットの軌道制御装置によるスムージングアルゴリスムの第2の例を示すブロック図である。
【図10】図9に示すアルゴリスムにおけるψソフトモータの周波数特性と速度スムージングデータとの関係を示す説明図である。
【図11】図1、図9に示すアルゴリスムにおける脱調防止のためのTN特性と加速度の一例を示す説明図である。
【図12】図1、図9に示すアルゴリスムにおけるCP速度とCP軌跡の関係を示す説明図である。
【図13】サーボモータロボットのスムージングアルゴリズムの従来例の構成を示す説明図である。
【図14】図1、図9、図13に示すアルゴリズムにおいてCP速度を変更した場合のランプ信号を示す説明図である。
【図15】ランプ信号をローパスフィルタによってスムージングした場合の波形例を示す説明図である。
【図16】直角コーナを有するCP曲線におけるCP速度の変動を示す説明図である。
【符号の説明】
110、210……サンプリング部、120、220……ランプ信号発生部、130、260……3次ローパスフィルタ(l−ソフトモータ)部、140、230……座標変換部、150、240……3次ローパスフィルタ(Ψ−ソフトモータ)部、160、270……速度補正用メモリ部、170……速度補正/線形補間部、180、280……インバース(逆変換)部、250……曲線長計算部。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a trajectory control apparatus and method for a pulse motor drive system, and a recording medium.
[0002]
[Prior art]
Conventionally, various algorithms (hereinafter referred to as smoothing algorithms) for obtaining a smooth CP (Continuous Path) curve have been proposed for robots and the like that employ servo motors having a servo loop (DC motor, AC motor, etc.). ing.
FIG. 13 is an explanatory diagram showing a configuration of a conventional example of a smoothing algorithm for a servo motor robot.
[0003]
There are two types of smoothing algorithms of this type: a pre-operation calculation method that performs trajectory calculation prior to CP operation and a real-time calculation method that performs trajectory calculation in real time.
The pre-operation calculation method uses a high-speed CPU dedicated to trajectory calculation, calculates all the smoothing (spline interpolation), speed, acceleration, etc. of the curve before the operation, and corrects it according to the motor and mechanical capability limits. In this system, the position / velocity / acceleration result is developed in the memory and the CP operation proceeds while referring to the memory during operation, and a high-speed CPU dedicated to orbit calculation is required.
On the other hand, the real-time calculation method is a method of simultaneously processing the robot operation and smoothing in an ordinary robot that does not have a high-speed CPU dedicated for trajectory calculation as described above, and the smoothing described in this conventional example. The algorithm is based on a real-time calculation method.
[0004]
Next, the configuration of the conventional smoothing algorithm shown in FIG. 13 will be described. This smoothing algorithm includes a CP curve sampling unit 10, a ramp signal generation unit 20, a third-order low-pass filter (1-soft motor) unit 30, a
The curve sampling unit 10 cuts the curve into a certain element length Δl according to a predetermined CP constant speed Vcp and samples the curve. Here, if the sampling time is Ts, Δl is as follows.
Δl = Vcp · Ts (Subordinate 1)
[0005]
Next, the ramp signal generation unit 20 generates a CP constant speed Vcp. By increasing the movement length by Δl for each sampling time Ts according to the equation (subordinate 1), FIG. A ramp signal as shown is generated. If the total length of CP is L, the lamp will be broken horizontally after Tf time. That is, it is as follows.
Vcp = L / Tf, Tf = N · Ts (N = integer) (subordinate 2)
Although Tf, that is, Vcp is trimmed somewhat so that N is an integer, Ts is generally small enough to cause no problem.
According to such a method, for example, as shown in FIG. 14, it becomes easy to change the speed for each region or to stop the operation on the CP curve.
[0006]
Next, the third-order low-pass filter unit 30 (l-soft motor) generates a smooth linear acceleration / deceleration curve l as shown in FIG. 15B from a ramp signal as shown in FIG. It is. This third-order low-pass filter is a low-pass filter having a structure that is stable at G (s) / 1 + G (s) when the transfer function G (s) = a / s + b / s2 + c / s3.
The smoothness of the filter unit 30 can be freely changed by changing the time constant of the filter unit 30.
[0007]
Next, the
x = x (l), y = y (l), z = z (l) (subordinate 3)
The same applies when the curve is a polygonal line. If it is desired to specify the polar coordinate (R-axis) component, r = r (l) may be added to the above equation (subordinate 3).
Here, l → Ψ (x, y, z) coordinate conversion means obtaining Ψ (x, y, z) from the above equation (subordinate 3). Therefore, in this conversion, no position error occurs in Ψ (x, y, z).
[0008]
Next, the inverse (inverse transform)
[0009]
[Problems to be solved by the invention]
By the way, the smoothing algorithm as described above is for a servo motor robot, but conventionally, a smoothing algorithm as described above has been adopted as it is even in a robot employing a pulse motor.
However, compared with a servo motor robot having a smoothing function (that is, a low-pass function of a servo loop) in the control system itself, the pulse motor robot is driven according to a trajectory command by a pulse train.
Therefore, in the conventional technology in which the algorithm for the servo motor robot is used for such a pulse motor robot, there is no problem if the operation speed is low or the CP curve itself is smooth, but the operation speed is high or the CP curve is When it is a broken line, it is difficult to obtain an appropriate CP operation accuracy, and a great trouble is caused in terms of vibration and step-out of the mechanism portion.
[0010]
For example, as shown in FIG. 16 (A), in a CP curve having an orthogonal corner in an orthogonal robot, as shown in FIGS. 16 (B) and 16 (C), the x and y axis joint velocities Vx and Vy greatly step jump. .
On the other hand, in a servo motor robot having a servo loop, the effect of this step jump is absorbed by the low-pass filter characteristics of the servo, and in most cases does not become an obstacle to the motor or mechanical operation.
On the other hand, in a robot that employs a pulse motor without a servo loop, when the joint speed jump amount increases, that is, the CP speed increases, a mechanical impact occurs, and smooth CP curve operation becomes difficult.
[0011]
SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a trajectory control device and method for a pulse motor drive system and a recording medium capable of obtaining a smooth CP operation at high speed and high accuracy in a drive system using an inexpensive pulse motor. is there.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a trajectory control device for a pulse motor drive system that controls the CP operation of a control object, and a curve length corresponding to a predetermined CP speed based on the CP operation curve of the control object. Curve length data generating means for generating data, coordinate conversion means for converting the curve length data into n-dimensional (n ≧ 2) coordinate data, and each of n-dimensional coordinate data obtained by the coordinate conversion means, Coordinate data smoothing means for smoothing through a low-pass filter, memory storage means for storing the coordinate data output from the coordinate data smoothing means in a speed correction memory, and coordinate data stored in the speed correction memory for a predetermined amount Readout means that sequentially reads out at the timing, and the coordinate data read out by the readout means as drive signals And having an inverse conversion means for conversion.
[0013]
According to another aspect of the present invention, there is provided a trajectory control method for a pulse motor drive system for controlling a CP operation of an object to be controlled. A long data generation step, a coordinate conversion step for converting the curve length data into n-dimensional (n ≧ 2) coordinate data, and the n-dimensional coordinate data obtained by the coordinate conversion step through low-pass filters, respectively. Smoothing coordinate data smoothing step, memory storing step of storing the coordinate data output from the coordinate data smoothing step in the speed correction memory, and reading out the coordinate data stored in the speed correction memory sequentially at a predetermined timing And an inverse conversion step of converting the coordinate data read out by the readout step into a drive signal Characterized in that it has a.
[0014]
The present invention also provides a function for generating curve length data corresponding to a predetermined CP speed on a computer-readable recording medium based on a CP operation curve of an object to be controlled; 2) the function of converting the coordinate data into the coordinate data, the function of smoothing each of the n-dimensional coordinate data through a low-pass filter, the function of storing the coordinate data passed through the low-pass filter in a speed correction memory, Recording a program for realizing the function of sequentially reading the coordinate data stored in the speed correction memory at a predetermined timing and the function of converting the coordinate data read from the speed correction memory into a drive signal It is characterized by.
[0015]
In the present invention as described above, each n-dimensional coordinate data obtained from the curve length data is smoothed through a low-pass filter. The smoothed coordinate data is temporarily stored in the speed correction memory, and the stored coordinate data is sequentially read out, converted into a drive signal, and output to the pulse motor drive system.
Here, by smoothing each of the n-dimensional coordinate data through a low-pass filter, a smooth operation when driving the pulse motor drive system can be obtained, and mechanical vibration and step-out are prevented. In addition, by transmitting through the speed correction memory, it is possible to drive at a stable speed.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of a trajectory control device for a pulse motor drive system according to the present invention will be described below.
The pulse motor drive system of this example is configured as, for example, a 4-axis small desktop robot, and the trajectory control device that controls the CP operation of the pulse motor robot is configured as an algorithm in a host computer, for example.
Note that the smoothing algorithm of this example employs a real-time calculation method as described above.
[0017]
FIG. 1 is a block diagram showing a first example of a smoothing algorithm by a trajectory control device for a pulse motor robot according to the present invention.
This smoothing algorithm is configured as a smoothing algorithm dedicated to a pulse motor robot capable of avoiding mechanical vibration and step-out corresponding to a joint speed jump, and includes a CP curve sampling unit 110, a ramp signal generation unit 120, and 3 A second-order low-pass filter (1-soft motor) unit 130, a coordinate conversion unit 140, a third-order low-pass filter (Ψ-soft motor) unit 150, a speed correction memory unit 160, a speed correction / linear interpolation unit 170, And an
[0018]
The curve sampling unit 110 cuts the curve into a certain element length Δl according to a predetermined CP constant speed Vcp and samples the curve. Here, if the sampling time is Ts, Δl is as follows.
Δl = Vcp · Ts (1)
Next, the ramp signal generation unit 120 generates a CP constant speed Vcp, and increases the movement length by Δl for each sampling time Ts in accordance with the equation (1), so as shown in FIG. Such a ramp signal is generated.
[0019]
If the total length of CP is L, the lamp will be broken horizontally after Tf time. That is, it is as follows.
Vcp = L / Tf, Tf = N · Ts (N = integer) (2)
Although Tf, that is, Vcp is trimmed somewhat so that N is an integer, Ts is generally small enough to cause no problem.
According to such a method, for example, as shown in FIG. 14, it becomes easy to change the speed for each region or to stop the operation on the CP curve.
[0020]
Next, the third-order low-pass filter unit 130 (1-soft motor) generates a smooth linear acceleration / deceleration curve l as shown in FIG. 15B from a ramp signal as shown in FIG. It is. This third-order low-pass filter is a low-pass filter having a structure that is stable at G (s) / 1 + G (s) when the transfer function G (s) = a / s + b / s2 + c / s3.
The smoothness by the filter unit 130 can be freely changed by changing the time constant of the filter unit 130.
[0021]
Next, the coordinate conversion unit 140 converts the curve length l that is the output of the third-order low-pass filter unit 130 into the spatial coordinates Ψ (x, y, z) on the CP curve. When each coordinate of the spatial coordinates Ψ (x, y, z) is displayed as a parameter using l, an arbitrary continuous CP curve can be expressed as follows.
x = x (l), y = y (l), z = z (l) (3)
The same applies when the curve is a polygonal line. If it is desired to specify the polar coordinate (R-axis) component, r = r (l) may be added to the above equation (3).
Here, l → Ψ (x, y, z) coordinate conversion means obtaining Ψ (x, y, z) from the above equation (3). Therefore, in this conversion, no position error occurs in Ψ (x, y, z).
[0022]
Next, the third-order low-pass filter (Ψ-soft motor) unit 150 smoothes the x, y, and z data from the coordinate conversion unit 140 through the third-order low-pass filter.
As described with reference to FIG. 16, each of x, y, and z generated by the coordinate conversion unit 140 is bent in, for example, an orthogonal direction depending on the CP curve, and the respective velocities x ′, y ′, and z ′ jump.
[0023]
In the following description, for each coordinate data x, y, z, the speed is dx / dt = x ′, dy / dt = y ′, dz / dt = z ′, and the acceleration is d.2 x / dt2 = X ", d2 y / dt2 = Y ", d2 z / dt2 = Z ". Also, the data that has passed through the filter once is represented as x *, y *, z *, and the data that has passed through the filter twice is represented as x **, y **, z **. The same applies to symbols other than x, y, and z.
However, in the description in the drawings, the speed is expressed by adding one dot on each symbol, and the acceleration is expressed by adding two dots on each symbol. In addition, data that has passed through the filter once is represented by a single wavy line on each symbol, and data that has passed through the filter twice is represented by having two wavy lines on each symbol. .
[0024]
If the jump described above is directly transmitted to the pulse motor, the stepping out or the mechanism may be greatly shaken, so each of these (x, y, z) is also input to the soft motor and low-passed.
Here, if only the pulse motor step-out and mechanical vibration countermeasures are taken, the joint angle (Θ) which is inversely transformed by the
[0025]
On the other hand, even when smoothing (x, y, z), a position error (accuracy error) occurs, but this is an error that can be controlled by the time constant of the third-order low-pass filter (Ψ-soft motor) unit 150. is there.
Therefore, in this example, (x, y, z) is low-passed to control the CP position accuracy and speed accuracy to smooth the joint angular acceleration and prevent the pulse motor from stepping out and mechanical vibration.
Note that the three low-pass filters x, y, and z in the third-order low-pass filter (Ψ-soft motor) unit 150 are similar to the above-described third-order low-pass filter unit 130, and the transfer function G (s) = a / s + b / The low-pass filter has a structure that is stable at G (s) / 1 + G (s) when s2 + c / s3.
[0026]
The filters of the third-order low-pass filter (Ψ-soft motor) unit 150 have the same characteristics, and the characteristics (pole arrangement) of the filters can be freely tuned as necessary. And
In particular, as shown in FIG. 2, when a step signal is input, a time Tp at which the speed reaches a peak can be freely tuned.
[0027]
As described above, smoothing is a function that softens acceleration by controlling CP position accuracy and velocity accuracy. 3A to 3I are explanatory diagrams showing this situation. In order to simplify the description, an example of a CP curve having orthogonal corners on an xy two-dimensional plane will be described as shown in FIG.
In this case, as shown in FIGS. 3B and 3C, the curve length data of x and y are both ramp waveforms because the CP speed is constant, and the x and y speeds x ′ and y ′ are shown in FIG. D) Both become step functions as shown in (E). Then, by low-passing these, x ′ * and y ′ * become a smooth curve with a constant time constant as shown in FIGS.
[0028]
As shown in FIG. 3H, the peak speed arrival time of the soft motor is Tp at the CP speed l ′ obtained by combining these. Here, the CP speed l 'of the soft motor output is l' * = {(x '*)2 + (Y ’*)2 }1/2 Since l ′ is not constant, it falls in a wedge shape.
Further, as shown in FIG. 3I, the smoothed CP curve (x *, y *) runs away from the designated locus inside the corner portion.
[0029]
In the CP operation of the robot, position accuracy and speed accuracy are important, but it is impossible in terms of dynamics to run both ideally. For this reason, in this algorithm, tuning (polar arrangement) of a soft motor as shown in FIG. 4 is used as a smoothing tuning mechanism.
On the other hand, a speed correction memory unit 160 and a speed correction / linear interpolation unit 170 are used as a speed tuning mechanism. The operations of the speed correction memory unit 160 and the speed correction / linear interpolation unit 170 will be described below with reference to FIG. Note that the sampling time Ts, the CP speed Vcp, and the time constants of various soft motors are already determined.
[0030]
In the CP speed correction algorithm of the present example, the spatial coordinates Ψ (x, y, z) output from the coordinate conversion unit 140 described above are input to the third-order low-pass filter (Ψ-soft motor) unit 150 at the same time. The output (x *, y *, z *) of the low-pass filter unit 150 is stored in the speed correction memory unit 160 at every sampling timing.
Therefore, the speed correction memory unit 160 includes P1 (X *, y *, z *) → P2 (X *, y *, z *) → PThree (X *, y *, z *), ..., PN Stored in the form of (x *, y *, z *).
Note that the number N of pointers on the speed correction memory unit 160 is prepared for the time Tp. That is, Tp / Ts = N.
[0031]
Next, CP speed correction will be described.
Generally, there are many cases (for example, dispenser work, soldering, coating work, etc.) where it is desired to run the robot at a constant CP speed Vcp in an application for robot CP operation.
However, as shown in FIG. 5, the CP speed Vcp * by the output of the third-order low-pass filter (Ψ-soft motor) unit 150 is Vcp * = {(x ′ *)2 + (Y ’*)2 }1/2 It is not constant and changes to a wedge shape.
That is, (x ’*2 + Y ′ *) is constant, but {(x ′ *)2 + (Y ’*)2 }1/2 Is not constant.
Therefore, in this example, the deceleration start time t = t1 Thereafter, the following processing is performed to correct the speed Vcp *.
[0032]
First, t = t1 The output of Ψ-soft motor at P is P1 (X1 *, Y1 *, Z1 *) Is stored. Thereafter, P every sampling time Ts.2 , PThree , PFour Suppose that it is stored as.
Where t = t1 Position data P at + Ts2 (X2 *, Y2 *, Z2 *) Is searched in the speed correction memory using the following formula.
△ l = {P2 2 -P1 2 }1/2 ...... (4)
However, P2 2 -P1 2 ≒ (x2 * -X1 *) + (Y2 * -Y1 *) + (Z2 * -Z1 *). ...... (5)
[0033]
P that strictly satisfies the above equation (4)2 Generally does not exist in memory. Therefore, first, the point P that becomes Δl or morei Search for. That means
{Pi 2 -P1 2 }1/2 ≧ △ l (6)
Where Pi And Pi-1 P that satisfies the above equation (4) by linear interpolation between2 Is determined by linear interpolation calculation.
[0034]
Specifically, for example, in FIG.
Line length <Pi-1 ~ Pi > = △ li ...... (7)
So Pi-1 To δli Point P at a distance ofi Suppose that Δl is exactly Δl. δli Is a known value, so δli = K ・ △ li From K = δli / △ li K is determined. This
Pi ´ (xi * ', Yi * ', Zi * ') Can be determined.
[0035]
Thereafter, this Pi Starting from ′, the point where the distance from here is Δl is determined in the same manner. In this algorithm, the position data on the memory is already smoothed, and linear interpolation is performed based on this position so that the CP speed Vcp is constant. Therefore, as shown in FIG. Each will be as expected.
However, in the above algorithm, when the sampling time Ts is large due to the CPU capacity or the like, each joint speed jumps, and problems such as mechanical vibration and step-out remain as it is.
[0036]
Therefore, in this example, a method of executing only predetermined P% (<100%) instead of performing CP speed correction 100% is adopted. Note that such processing is not necessary when the sampling time Ts is sufficiently small.
In the 100% correction, a point at which the movement distance between Ts becomes Δl = Vcp · Ts was determined by linear interpolation based on the point data on the memory.
Here, Δl (n) is a distance between t = nTs and t = (n−1) Ts. That means
Δl (n) = {Pn 2 -Pn-1 2 }1/2 ≦ △ l …… (9)
[0037]
Next, Δl ′ (n) is a distance between t = nTs and t = (n−1) Ts in the case of P% correction. At this time,
Thereby, Δl ′ (n) is determined. Thereafter, the memory search and linear interpolation are processed in the same manner as in the case of 100% correction, and as shown in FIG. 8, CP speed and P% correction can be performed, each joint speed and jump amount can be reduced, and mechanical vibrations can be reduced. Can be kept small. Note that the value of P% can be appropriately input by the user using a robot language, a teaching pendant, or the like.
[0038]
Next, based on the correction data (x, y, z) obtained as described above, the inverse (inverse transformation)
[0039]
FIG. 9 is a block diagram showing a second example of the smoothing algorithm by the trajectory control device of the pulse motor robot according to the present invention.
In the speed correction method according to the first example described above, as can be seen from FIG. 8, at the corrected speed, the speed is not smooth at t = Tp / 2. That is, although the CP acceleration may be slight, it jumps. This jump (discontinuity) results in a jump at each joint speed, which is undesirable in terms of mechanical vibration and step-out. Therefore, in the second example of the present invention, a configuration corresponding to such a problem will be described. This smoothing algorithm can be used together with the smoothing algorithm according to the first example described above.
[0040]
This smoothing algorithm includes a CP
Among them, the CP
[0041]
The coordinate conversion unit 230 has the same function as that of the coordinate conversion unit 140 shown in FIG. 1, and the curve length l output from the ramp signal generation unit 220 is converted into the spatial coordinates ψ (x, y, z). To convert.
The third-order low-pass filter (Ψ-soft motor) unit 240 is the same as the third-order low-pass filter unit 150 shown in FIG. 1, and smoothes the coordinate data x, y, z from the coordinate conversion unit 230 through the low-pass filter. Is. In addition, the time constant in the soft motor of each axis x, y, z is the same.
[0042]
The curve
Further, in the speed correction memory unit 270, the above l * and (x *, y *, z *) are set to P in order for each sampling time.n It is stored in the form of (l *, x *, y *, z *).
[0043]
The third order low pass filter (l-soft motor)
As shown in FIG. 10, l * 'sharply drops in the shape of a wedge, and inconvenience is expected in the dispenser operation and the like. Therefore, the speed is also smoothed by further smoothing l * by the third-order low-
As can be seen from FIG. 10, the CP acceleration in which the change of l * ′ is smoothly smoothed and continuous l ** ′ are obtained. Note that the correction works more strongly when the F characteristic of the l-soft motor is reduced as shown in FIG.
[0044]
The speed correction memory unit 270 is configured to store the Pn (L *, x *, y *, z *) are sequentially stored, and (x *, y *, z *) is stored based on l ** from the third-order low-
First, l ** is the length of the curve smoothed by the l-soft motor, and the point (x *, y *, z *) on the CP curve corresponding to this l ** is searched from the memory. Ask.
In memory, Pn Since it is stored in the form of (l *, x *, y *, z *), P such that l * = l **n Search for this Pn (X *, y *, z *) is sent to the
[0045]
This prevents a position error from entering as a CP curve between l ** smoothed by the l-soft motor and l * smoothed by the Ψ-soft motor.
As described above, P such that l * = l **n If the search is not found, the linear interpolation method used in FIG. 1 is applied.
Further, the
[0046]
Next, details of how to use the speed correction memory units 160 and 270 in the above examples will be described in order.
First, at the start of CP curve calculation, the soft motor output is sequentially stored in the memory. At this stage, the robot is not operating yet.
Next, since the memory has a Tp / Tss storage area, the CP operation of the robot is actually started when the memory becomes full. That is, the start data of the memory is converted and started to be sent to the pulse board.
Thereafter, the soft motor output is stored in the memory. However, since only the memory capacity Tp / Tss is prepared, the memory data before Tp is discarded in order every time one data is stored. Therefore, it is effective that this memory is a ring buffer.
[0047]
Next, using this memory, a bird to perform speed correction becomes the jump amount of the speed of each axis, that is, any value of the command acceleration (x ″, y ″, z ″) is given in advance. Acceleration threshold (xS ", YS ", ZS Therefore, if the CP curve does not exceed the threshold value, this speed correction is not executed.
The acceleration threshold value (xS ", YS ", ZS ”) Is an amount that depends on the mechanical structure, and therefore needs to be determined in advance through experiments, etc. Also, during acceleration (0 ≦ t ≦ Tp) and during deceleration (Tf ≦ t ≦ Tf + Tp) No correction is applied.
[0048]
If the acceleration jump continues within the Tp time, the speed during Tp is corrected. However, the speed correction of the part after Tp is not applied. Since these cases are few, it is not always necessary to deal with them. However, if they are to be dealt with, it is possible to use a method in which the memory is made a ring buffer structure and correction is always applied. This method is particularly effective when the calculation burden on the CPU is not heavy.
[0049]
Next, an application example related to the smoothing algorithm for the CP curve dedicated to the pulse motor as described above will be described.
First, the pulse motor step-out prevention algorithm will be described.
The robot designer does not know what kind of CP curve the robot user will run. On the other hand, CP maximum speed Vcp so that the pulse motor will not step out for any shape of the CP curve.max Can be designed quite low, but this is a conservative design, which reduces the robot's ability.
Therefore, in such a case, when the user runs at the desired CP speed and steps out, the step-out can be prevented by appropriately increasing the time constants of the three ψ-soft motors. Of course, in this case, the deviation of the CP trajectory increases, but it is effective as an option for preventing the step-out. It should be noted that the three ψ-soft motor time constants can be changed by the user from the robot language or teaching pendant.
[0050]
In addition, when the system for allowing the user to change the soft motor time constant as described above is inevitably desirable, the automatic calculation can be prevented by using the pre-calculation method. The procedure outline is shown below.
First, the process shown in FIG. 1 is performed without operating the robot until the end of the CP curve (pre-calculation).
Next, (Θx ′, Θy ′, Θz ′) and (Θx ″, Θy ″, Θz ″) of each axis at the time of the previous calculation are stored in the memory for each sampling time.
Using this memory data, as shown in FIG. 11, a TN characteristic is drawn for each axis to find an axis protruding from the TN characteristic. When a plurality of axes protrudes together, the TN locus of the axis with a large protruding ratio is drawn and viewed.
[0051]
Next, a point (Θp ″, Θp ′) at which the acceleration reaches a peak in the TN locus is found. Here, the acceleration on the TN characteristic at the velocity Θp ′ is expressed as Θ.1 ”, Α = (Θp” / Θ1 ”)1/2 If α is calculated and the time constant of ψ-soft motor is set to α times or more, step-out can be prevented.
This is because (x, y, z) If the time constant of the soft motor is multiplied by α, the acceleration will be 1 / α.2 Θp ”is Θ1 This is because it falls within the TN characteristics.
[0052]
Next, how the CP trajectory changes at the CP speed Vcp when the above-described smoothing algorithm is used will be described. Since there are an infinite number of CP curves, the case of a right angle corner by the above-described orthogonal robot will be described.
The speed peak arrival time, which is one of the time constants of ψ-soft motor, is Tp. Then, the distance Δl (Tp) on the CP curve running between Tp is Δl (Tp) ≈Vcp / Tp, and is approximately proportional to the CP speed Vcp as shown in FIG.
That is, the larger the Vcp, the larger the deviation from the corner, but the smaller the Vcp, the smaller the deviation. Then, the user can adjust the deviation by tuning Vcp.
[0053]
Further, the above-described smoothing algorithm is a considerable processing burden for the host CPU. Of these, the l-soft motor 130 is a low-pass filter that smoothly generates acceleration / deceleration of the CP speed. However, since the subsequent ψ-soft motor 150 also has the same role, if the load on the CPU is large, l -The soft motor 130 may be omitted.
Further, in each of the above-described examples, the configuration for controlling the pulse motor robot as the control object has been described. However, the present invention can be widely applied as a configuration for controlling a drive system other than the robot.
[0054]
【The invention's effect】
As described above, in the present invention, each of the n-dimensional coordinate data obtained from the curve length data is smoothed through the low-pass filter, and the smoothed coordinate data is temporarily stored in the speed correction memory. The stored coordinate data was sequentially read out and converted into a drive signal and output to the pulse motor drive system.
Therefore, according to the present invention, in an inexpensive pulse motor drive system, a smooth orbit that is equal to or higher than that of the servo motor drive system can be obtained for a high-speed CP operation or a polygonal CP orbit, and a stable operation is achieved. There is an effect that speed can be easily obtained.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first example of a smoothing algorithm by a trajectory control device for a pulse motor robot according to the present invention.
FIG. 2 is an explanatory diagram for explaining the operation of a ψ soft motor in the algorithm shown in FIG. 1;
FIG. 3 is an explanatory diagram illustrating a smoothing curve generation process for a straight corner portion of a CP curve in the algorithm illustrated in FIG. 1;
4 is an explanatory diagram for explaining the relationship between the characteristics of a ψ soft motor and the CP accuracy in the algorithm shown in FIG. 1; FIG.
FIG. 5 is an explanatory diagram for explaining the effect of velocity smoothing in the algorithm shown in FIG. 1;
6 is an explanatory diagram for explaining a method of interpolating velocity smoothing data in the algorithm shown in FIG. 1; FIG.
7 is an explanatory diagram for explaining the effect of interpolation of velocity smoothing data in the algorithm shown in FIG. 1; FIG.
FIG. 8 is an explanatory diagram for explaining the operation when the speed correction amount of the speed smoothing data in the algorithm shown in FIG. 1 is controlled.
FIG. 9 is a block diagram showing a second example of the smoothing algorithm by the trajectory control device of the pulse motor robot according to the present invention.
10 is an explanatory diagram showing a relationship between frequency characteristics of a ψ soft motor and speed smoothing data in the algorithm shown in FIG. 9;
11 is an explanatory diagram showing an example of TN characteristics and acceleration for preventing step-out in the algorithm shown in FIGS. 1 and 9. FIG.
12 is an explanatory diagram showing a relationship between a CP speed and a CP trajectory in the algorithm shown in FIGS. 1 and 9. FIG.
FIG. 13 is an explanatory diagram showing a configuration of a conventional example of a smoothing algorithm of a servo motor robot.
14 is an explanatory diagram showing a ramp signal when the CP speed is changed in the algorithms shown in FIGS. 1, 9, and 13. FIG.
FIG. 15 is an explanatory diagram showing a waveform example when a ramp signal is smoothed by a low-pass filter.
FIG. 16 is an explanatory diagram showing a variation in CP speed in a CP curve having a right angle corner.
[Explanation of symbols]
110, 210... Sampling unit, 120, 220... Ramp signal generation unit, 130, 260... Third-order low-pass filter (1-soft motor) unit, 140, 230... Coordinate conversion unit, 150, 240. Next-order low-pass filter (Ψ-soft motor) unit, 160, 270... Speed correction memory unit, 170... Speed correction / linear interpolation unit, 180, 280. Department.
Claims (11)
前記制御対象物のCP動作曲線に基づいて、所定のCP速度に対応する曲線長データを生成する曲線長データ生成手段と、
前記曲線長データをn次元(n≧2)の座標データに変換する座標変換手段と、
前記座標変換手段によって得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングする座標データスムージング手段と、
前記座標データスムージング手段より出力される座標データを速度補正用メモリに格納するメモリ格納手段と、
前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す読み出し手段と、
前記読み出し手段によって読み出された座標データを駆動信号に変換する逆変換手段と、
を有することを特徴とするパルスモータ駆動系の軌道制御装置。In the trajectory control device of the pulse motor drive system that controls the CP operation of the controlled object,
Curve length data generating means for generating curve length data corresponding to a predetermined CP speed based on the CP operation curve of the control object;
Coordinate conversion means for converting the curve length data into n-dimensional (n ≧ 2) coordinate data;
Coordinate data smoothing means for smoothing each n-dimensional coordinate data obtained by the coordinate conversion means through a low-pass filter,
Memory storage means for storing the coordinate data output from the coordinate data smoothing means in a speed correction memory;
Reading means for sequentially reading the coordinate data stored in the speed correction memory at a predetermined timing;
Inverse conversion means for converting the coordinate data read by the reading means into a drive signal;
A trajectory control device for a pulse motor drive system.
前記メモリ格納手段は、前記曲線長データ算出手段からの曲線長データと座標データスムージング手段より出力される座標データとを対応付けて前記速度補正用メモリに格納し、
前記読み出し手段は、前記曲線長データスムージング手段の出力と前記速度補正用メモリに格納した座標データとを比較し、この比較結果に基づいて前記座標データを読み出すことを特徴とする請求項1記載のパルスモータ駆動系の軌道制御装置。Curve length data calculating means for calculating a curve length from output data of the coordinate data smoothing means, and curve length data smoothing means for smoothing the curve length data from the curve length data calculating means through a low-pass filter,
The memory storage means stores the curve length data from the curve length data calculation means and the coordinate data output from the coordinate data smoothing means in association with each other in the speed correction memory,
The said reading means compares the output of the said curve length data smoothing means with the coordinate data stored in the said memory for speed correction, The said coordinate data are read based on this comparison result, Orbit control device for pulse motor drive system.
前記制御対象物のCP動作曲線に基づいて、所定のCP速度に対応する曲線長データを生成する曲線長データ生成工程と、
前記曲線長データをn次元(n≧2)の座標データに変換する座標変換工程と、
前記座標変換工程によって得られるn次元の各座標データを、それぞれローパスフィルタに通してスムージングする座標データスムージング工程と、
前記座標データスムージング工程より出力される座標データを速度補正用メモリに格納するメモリ格納工程と、
前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す読み出し工程と、
前記読み出し工程によって読み出された座標データを駆動信号に変換する逆変換工程と、
を有することを特徴とするパルスモータ駆動系の軌道制御方法。In the trajectory control method of the pulse motor drive system for controlling the CP operation of the controlled object,
A curve length data generating step for generating curve length data corresponding to a predetermined CP speed based on the CP operation curve of the control object;
A coordinate conversion step of converting the curve length data into n-dimensional (n ≧ 2) coordinate data;
Coordinate data smoothing step of smoothing each n-dimensional coordinate data obtained by the coordinate conversion step through a low-pass filter,
A memory storing step of storing the coordinate data output from the coordinate data smoothing step in a speed correction memory;
A reading step of sequentially reading out the coordinate data stored in the speed correction memory at a predetermined timing;
An inverse conversion step of converting the coordinate data read by the reading step into a drive signal;
A trajectory control method for a pulse motor drive system.
前記曲線長データをn次元(n≧2)の座標データに変換する機能と、
前記n次元の各座標データを、それぞれローパスフィルタに通してスムージングする機能と、
前記ローパスフィルタを通した座標データを速度補正用メモリに格納する機能と、
前記速度補正用メモリに格納した座標データを所定のタイミングで順次読み出す機能と、
前記速度補正用メモリより読み出された座標データを駆動信号に変換する機能と、
を実現させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。A function of generating curve length data corresponding to a predetermined CP speed based on the CP operation curve of the control object;
A function of converting the curve length data into n-dimensional (n ≧ 2) coordinate data;
A function of smoothing each of the n-dimensional coordinate data through low-pass filters,
A function of storing coordinate data that has passed through the low-pass filter in a speed correction memory;
A function of sequentially reading the coordinate data stored in the speed correction memory at a predetermined timing;
A function of converting the coordinate data read from the speed correction memory into a drive signal;
A computer-readable recording medium on which a program for realizing is recorded.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12357197A JP3736029B2 (en) | 1997-04-24 | 1997-04-24 | Pulse motor drive system trajectory control apparatus and method, and recording medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12357197A JP3736029B2 (en) | 1997-04-24 | 1997-04-24 | Pulse motor drive system trajectory control apparatus and method, and recording medium |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10301632A JPH10301632A (en) | 1998-11-13 |
| JP3736029B2 true JP3736029B2 (en) | 2006-01-18 |
Family
ID=14863883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12357197A Expired - Fee Related JP3736029B2 (en) | 1997-04-24 | 1997-04-24 | Pulse motor drive system trajectory control apparatus and method, and recording medium |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3736029B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114012777B (en) * | 2021-11-23 | 2022-07-05 | 天津理工大学 | Method for eliminating front three-joint nonlinear error of six-joint robot |
-
1997
- 1997-04-24 JP JP12357197A patent/JP3736029B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH10301632A (en) | 1998-11-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6920378B2 (en) | Command generation combining input shaping and smooth baseline functions | |
| WO2018195689A1 (en) | S-type velocity planning method, device and system, and robot and numerical control machine tool | |
| JP3736029B2 (en) | Pulse motor drive system trajectory control apparatus and method, and recording medium | |
| WO1994019732A1 (en) | Device for reducing oscillations of a robot | |
| EP0483756B1 (en) | Robot controlling method and apparatus | |
| JP4049956B2 (en) | Robot controller | |
| CN114748100B (en) | Control method for ultrasonic scanning, visual servo system and readable storage medium | |
| JP2001216008A (en) | Robot control method | |
| JPH07200031A (en) | Numerical control method and numerical control device | |
| JPH05324044A (en) | Robot trajectory control method | |
| JP2014104558A (en) | Controlling device | |
| JPH08234824A (en) | Device and method for controlling robot | |
| JP2001092508A (en) | Numerical controller for parallel mechanism machine tools | |
| CN115609343A (en) | Movement magnification adjusting method and device, computer equipment and storage medium | |
| JP4433618B2 (en) | Robot control apparatus, robot control method, and robot | |
| JP2000163114A (en) | Acceleration / deceleration processing method in interpolation curve | |
| JPH03242703A (en) | Learning method for feed forward gain in motor control | |
| JPH01119809A (en) | Robot locus control method | |
| JP2645551B2 (en) | Robot controller | |
| JPH0643928A (en) | Path interpolating method for robot | |
| CN118832584A (en) | Robot multi-pose interpolation algorithm based on RBF and quintic spline interpolation splicing | |
| JPH0991020A (en) | Method for controlling teaching robot | |
| JPS63155203A (en) | Speed control system for robot | |
| JP2638467B2 (en) | Robot controller | |
| CN114102596A (en) | Motion control method and device for motion mechanism, electronic device and medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050926 |
|
| 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: 20051004 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051017 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |