JP4244339B2 - 指令値生成装置 - Google Patents

指令値生成装置 Download PDF

Info

Publication number
JP4244339B2
JP4244339B2 JP2004307639A JP2004307639A JP4244339B2 JP 4244339 B2 JP4244339 B2 JP 4244339B2 JP 2004307639 A JP2004307639 A JP 2004307639A JP 2004307639 A JP2004307639 A JP 2004307639A JP 4244339 B2 JP4244339 B2 JP 4244339B2
Authority
JP
Japan
Prior art keywords
flag
speed
result
joint
conversion
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
Application number
JP2004307639A
Other languages
English (en)
Other versions
JP2006116658A (ja
Inventor
清石 前川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004307639A priority Critical patent/JP4244339B2/ja
Publication of JP2006116658A publication Critical patent/JP2006116658A/ja
Application granted granted Critical
Publication of JP4244339B2 publication Critical patent/JP4244339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、ロボット、工作機械、レーザ加工機等、複数の関節を備えたメカニカルシステムの先端を、上記各関節の駆動軸を制御することにより、予め定められた軌跡に沿って移動させるものにおける、上記各関節の駆動軸を制御するための指令値を生成する指令値生成装置に関する。
以下、本願では、複数の関節を備えたメカニカルシステムとしてロボットを例に説明するものとする。また、上記関節または関節の駆動軸という用語は、本願明細書では、便宜上、時として、その同義語として単に軸と表現する場合もある。
ところで、例えば、特許文献1にあるように、ロボットの制御では、特異点の存在を考慮しなければならない。即ち、先端を予め定められた軌道に沿って動作させる際に、特異点の近傍では少なくとも1つの軸の指令が急激に変化し、特異点に一致した地点では、先端位置から各軸変位を求める逆変換の解が無数に存在することになる。
そして、同文献では、特異点近傍を含む直線補間を行う際、関節角指令の差分が規定値以上になった場合に特異点と判断し、逆変換の解の種類を切り替えて、急激な関節角指令の変化を防止する。また、関節の最高速度を超過する場合は、サンプリング周期を長くして関節の最高速度以内で動作可能としている。
特開昭58−114888号公報
特異点そのものを通過する場合は逆変換の解を切り替えれば急激な関節角指令変化を防止できるが、特異点近傍を通過する場合は解を切り替えても急激な関節角指令変化を防止できない場合がある。
また、関節の最高速度を超過することをサンプリング周期を長くすることにより防止しているが、速度超過を防止するために急激にサンプリング周期を変化させると許容加速度を超過し、実現できない、あるいは実現できても大きく振動するなどの問題があった。
以上のように、ロボットの制御には、特異点の存在から指令速度の急変が避けられない。また、各軸の駆動機構は、通例の駆動機構と同様、速度指令の急変には円滑に応動しにくい。従って、駆動機構の駆動特性等を考慮して駆動機構に入力する速度指令の急変を緩和する加減速手段を挿入するのが一般的に望ましい。しかし、加減速手段というものは、上述の、ロボット特有の条件を具備する補償はない。即ち、一般に、加減速手段は平均化処理の機能を備えたフィルタ等で構成するが、入力された速度制限の時間変化を緩和するが、入力された速度指令の最低値はむしろ増大して出力される可能性がある。
従って、従来のロボット制御では、過渡的に各軸で速度制限を越えて操作に支障を来したり、演算された速度指令よりもかなり低目の速度で操作して、動作全体を遅くする必要がある問題があった。
この発明は、以上のような問題点を解消するためになされたもので、各軸の速度制限を超過する可能性を抑制するとともに、過度な低速操作を無用として、高速円滑な操作を実現する指令値生成装置を得ることを目的とする。
この発明に係る第1の指令値生成装置は、複数の関節を備えたメカニカルシステムの先端を、上記各関節の駆動軸を制御することにより、予め定められた軌跡に沿って移動させるものにおける、上記各関節の駆動軸を制御するための指令値を生成する指令値生成装置であって、
上記各関節の駆動軸の速度制限を満足するように、上記先端の移動速度およびこの移動速度を積分して得られる上記軌跡に沿った上記先端の移動量を演算する移動速度・移動量演算手段、この移動速度・移動量演算手段における任意の演算時点tで演算された移動速度(t)および移動量(t)に対し、上記演算時点tを含む所定演算時間範囲内または上記移動量(t)を含む所定演算距離範囲内での移動速度の演算結果に上記移動速度(t)より小さい移動速度が存在しない場合は上記移動速度(t)を踏襲し、上記移動速度(t)より小さい移動速度が存在する場合は上記移動速度(t)を当該小さい移動速度に置換した修正移動速度を作成し、この修正移動速度を積分して得られる移動量が上記移動量(t)に達するまで出力する移動速度修正手段、上記各関節の駆動軸の加減速駆動特性を円滑化するため上記移動速度修正手段からの修正移動速度に波形処理として移動平均フィルタ処理を施し先端移動速度指令として出力する加減速手段、およびこの加減速手段からの上記先端移動速度指令を積分して得られる先端移動量指令を実現する上記各関節の変位指令を算出(以下、逆変換と称す)し上記変位指令から各関節の駆動軸を制御するための位置指令値または速度指令値を生成する第1の逆変換手段を備えたものである。
また、この発明の第2の指令値生成装置は、6関節のメカニカルシステムにおいて、先端移動量指令を生成する先端移動量指令生成手段、5関節/6関節切替指令を発生する5関節/6関節切替手段、および6関節逆変換手段と第4関節の関節変位を所定の値に固定することにより5関節のメカニカルシステムとして動作させる場合の5関節逆変換手段とを設け、上記5関節/6関節切替手段からの5関節/6関節切替指令に基づき上記6関節逆変換手段または5関節逆変換手段のいずれかを使用して上記先端移動量指令から逆変換を行い各関節の変位指令を出力する逆変換手段を備えたものである。
以上のように、第1の指令値生成装置では、加減速手段の前段に移動速度修正手段を修正し、演算時点tを含む所定演算時間範囲内または移動量(t)を含む所定演算距離範囲内での移動速度の演算結果に、移動速度(t)より小さい移動速度が存在する場合は、移動速度(t)を当該小さい移動速度に置換した修正移動速度を作成し、この修正移動速度を積分して得られる移動量が移動量(t)に達するまで当該修正移動速度を送出するようにしたので、各軸の速度制限を超過する可能性がその分抑制され、結果として当初の要求指令に近い高速度で円滑な操作が可能となる。
また、第2の指令値生成装置では、6関節であるにもかかわらず5関節メカニカルシステムとして動作させることにより、6関節のもので問題となる第5関節の変位が0である特異点もしくはその近傍を通過する動作においても、先端速度を落とすことなく動作させることが可能となる。
実施の形態1.
図1は、本発明の実施の形態1による指令値生成装置を示すブロック図である。本発明は、ロボット、工作機械などのメカニカルシステムの先端を指定された軌道に沿って動かす場合のメカニカルシステムの各軸の位置指令または速度指令の生成装置に関するものであり、以下、実施の形態1における生成装置の概要をまず説明し、後段で、各構成要素毎にその内容の詳細を説明する。
移動速度・移動量演算手段1では、ロボット、工作機械などのメカニカルシステムの先端を指定された軌道に沿って動かす場合の軌道の各地点毎(移動量毎)にメカニカルシステムの各軸(各関節)の速度制限を満たし、かつ規定の速度以下となる移動速度を算出する。
移動速度修正手段2では、移動速度・移動量演算手段1で算出した移動速度に対して加減速を考慮した修正を加え、制御周期毎の加減速前の移動速度を算出する。
加減速手段3では、移動速度修正手段2で修正した制御周期毎の移動速度に対して2段の移動平均フィルタ処理を行い、制御周期ごとのメカニカルシステムの先端位置指令を生成する。
第1の逆変換手段としての逆変換手段A4では、後述するフラグ決定手段11から送信されるフラグ、即ち、逆変換を行う場合の変換関数を決めるフラグに基づいて、加減速手段3から出力されるメカニカルシステムの先端位置指令を各軸の位置指令に変換する逆変換を実施する。
補正手段12では、逆変換手段A4の出力をフラグ決定手段11の出力に基づき必要に応じて修正を行い、各軸の位置指令を生成する。
次に、各部の詳細を説明する。
移動速度・移動量演算手段1では、その内部の移動速度演算手段5で移動速度の規定値voを設定する。移動速度の規定値はメカニカルシステムに固有の先端最高速度とする。移動速度演算手段5および移動量演算手段6は、両者の演算回数の累積が加減速手段3で備える移動平均フィルタの窓長の総和を超えるかどうかで動作が異なる。即ち、移動量演算手段6で移動量を算出する際に用いる時間刻みをst秒、移動平均フィルタの窓長の総和をft秒とするとき、移動速度演算手段5および移動量演算手段6の演算回数の累積kの2倍がft/stを超えるかどうかで移動速度演算手段5および移動量演算手段6の動作が異なる。
以下、図2、3のフローチャートを適宜参照して移動速度・移動量演算手段1の動作を説明する。
kを、演算ステップの累積回数(k=1,2,3・・・)としたとき、2*k≦ft/stを満たす最大のkをk1とする。この実施の形態1では、動作開始(k=1)から2*k≦ft/st、即ち、k≦k1の間は(ステップS1でYES)、2周期分、即ち、2回分の計算を1度に行う。そして、動作開始時には移動速度の初期値を規定値の2倍である2*voとし、k回目の周期における移動速度の初期値を2*vk-1とする(ステップS3)。ここでk=1のときはvk-1は規定値voとする。
これらの処理は、動作開始からの移動速度・移動量演算手段1での制御の立ち上がりを高めるため、速度指令として実際の値より大きい、ここでは、2倍に設定し、2回分の計算を1度で行うようにしている。
制御をはやめる方式として、倍率を変えたり、もっと広い範囲に適用することは可能であり、始点から終点までの全てに適用することも理論的には可能である。この例で、移動平均フィルタの1/2の範囲にとどめているのは必要最小限に留めるためである。必要最小限に留めたいのは、速度が高いほど先端の動きと各軸の動きとの線形性が崩れ、各軸の速度が上限を超えない範囲で先端速度を定めていても、線形性が崩れると実際には上限を超えてしまう場合が生じうる。線形性の強さは速度が低いほど強くなるため、この実施の形態1では、速度を2倍で評価するのは必要最小限に留めている。
次に、st秒での移動量
dlk=2*vk-1*st (1)
を移動量算出手段6で算出し、さらにdlkの累積値lkを算出し、動作開始地点からlkだけ進んだ地点pkを移動量算出手段6で算出する。次に、第2の逆変換手段としての逆変換手段B7で、pkを逆変換し、必要に応じて再逆変換手段8での再逆変換、及び変換結果選択手段9で複数ある逆変換の解の選択を行うことによりpkを逆変換した結果であるthkを算出する。
なお、逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作については後ほど詳細を説明する。
thkは、移動速度演算手段5にフィードバックされ、前回の演算における逆変換結果thk-1から各軸毎の移動量
dthk = thk−thk-1 (2)
の計算を移動速度演算手段5で実施する。さらに、dthkの各軸成分とそれぞれの許容最大値dthmaxの2倍との比
rdthk(i)=|dthk(i)|/(2*dthmax(i)) (3)
を算出(iはメカニカルシステムの第i軸を意味する)し、rdthk(i)の最大値rdthkmaxを求める(ステップS3)。
rdthkmax≦1の場合(メカニカルシステムの軸数をnとし、1≦i≦nを満たすすべての自然数iに対して|dthk(i)|≦2*dthmax(i)が成り立つ場合、ステップS4でYES)は移動速度、移動量として1回目の計算結果をそのまま採用し、即ち、後述の速度操作をすることなく、また、上記で、2回分を1回で行った計算結果を本来のステップでの値に換算する処理を行う。
即ち、2*k-1番目の移動速度vs(2*k-1)および2*k番目の移動速度vs(2*k)をいずれもvk-1とする(ステップS5)。
また、2*k-1番目の移動量ls(2*k-1)を、
ls(2*k-1)=lk-1+0.5*dlk (4)
2*k番目の移動量を、
ls(2*k)= lk (5)
とする。
また、vk-1=voの場合は
vk=vo (6)
とする。また、vk-1<voの場合は
vk=min(vk-1/rdthkmax, vo ) (7)
とする(ステップS6)。ここでmin()は最小値を意味している。
(7)式から分かるように、各軸の速度に余裕があってもvo以上には速度を上げない。上限をvoと設定しておくことにより、voで各軸速度が許容値を超えない場合は再度計算する必要がなく、計算量が削減する。仮に、少なくとも1つの軸の速度が許容値に達するように動作させる場合は、毎周期再度の計算が必要となり計算量が増大する。
rdthkmax>1の場合(ステップS4でNO)は、いずれかの軸の速度が許容最大値を超えているので、移動速度を2* vk-1/rdthkmaxに修正し、dlk及びlkを算出し直す。そして、2*k-1番目の移動速度vs(2*k-1)および2*k番目の移動速度vs(2*k)をいずれもvk-1/rdthkmaxとする(ステップS7)。また、移動量に関しては求め直したdlk及びlkを用いて、2*k-1番目の移動量ls(2*k-1)を、
ls(2*k-1)=lk-1+0.5*dlk (8)
また、2*k番目の移動量を、
ls(2*k)= lk (9)
とする。また、
vk =vk-1/rdthkmax (10)
とする(ステップS8)。
2*k>ft/stとなって以降、即ち、k>k1になると(ステップS1でNOで、以下、図3のフローに移る)、今まで、2回分の計算を1度に実施していたのを、1度の計算で1回分を計算する処理に切り替える。
k>k1では第k番目の周期の演算をk2=k+kl番目の周期の演算とみなすことにし(ステップS9)、v2*kl=vkl、l2*kl=lklとする(ステップS10)。
即ち、第kl周期(ここまでは2回分計算)では、2*kl-1番目のデータと2*kl番目のデータを計算している。第kl+1回目の周期(ここからは1回分計算)では1回分の計算をすることになるが、本当はkl+1回目の周期に相当するので、2*kl回目の周期まで1度に1回分の計算を行ってきたとみなしている。つまり、2*kl+1番目の周期であるとして計算する。
同様に、第kl+2番目の周期では、2*kl+2番目の周期であるとして計算する。これを一般的な表現で書けば、k+kl番目の周期とみなすことになる。また、本当はkl+1回目の周期であるのを2*kl+1番目の周期であるとして計算する場合、前回の速度はv2*kl、前回の移動量はl2*klとなるが、それらの値はそれぞれvs(2*kl)、ls(2*k)であるため、v2*kl=vkl、l2*kl=lklとなる。
次に、st秒での移動量dlk2=vk2-1*stを移動量算出手段6で算出し、さらにdlk2の累積値lk2を算出し動作開始地点からlk2だけ進んだ地点pk2を移動量算出手段6で算出する。
次に、逆変換手段B7でpk2を逆変換し、必要に応じて再逆変換手段8での再逆変換、及び変換結果選択手段9で複数ある逆変換の解の選択を行うことによりpk2を逆変換した結果であるthk2を算出する。
なお、逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作については後ほど詳細を説明する。
thk2は、移動速度演算手段5にフィードバックされ、前回の演算における逆変換結果thk2-1から各軸毎の移動量dthk2 = thk2−thk2-1の計算を移動速度演算手段5で実施する。さらに、dthk2の各軸成分とそれぞれの許容最大値dthmaxとの比
rdthk2(i)=|dthk2(i)|/(dthmax(i)) (11)
を算出(iはメカニカルシステムの第i軸を意味する)し(ステップS11)、rdthk2(i)の最大値rdthk2maxを求める。
rdthk2max≦1の場合は(ステップS12でYES)、移動速度、移動量として1回目の計算結果をそのまま採用し、k2番目の移動速度vs(k2)をvk2-1とする(ステップS13)。また、k2番目の移動量ls(k2)をls(k2)=lk2とする。
また、vk2-1=v0の場合は
vk2=v0 (12)
とする。vk2-1<v0の場合は
vk2 =min(vk2-1/rdthk2max, v0 ) (13)
とする(ステップS14)。ここでmin()は最小値を意味している。
rdthk2max>1の場合(ステップS12でNO)は、移動速度をvk2-1/rdthk2maxに修正し、dlk2及びlk2を算出し直す。k2番目の移動速度vs(k2)をvk2-1/rdthk2maxとする(ステップS15)。また、移動量に関しては求め直したdlk2及びlk2を用いて、ls(k2)=lk2とする。また、vk2 =vk2-1/rdthk2maxとする(ステップS16)。
次に、逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作について説明する。
逆変換手段B7で先端位置から各軸の位置を求める逆変換を実施する。一般に逆変換の解は複数存在し、どの解を算出するかを指定する必要がある。この解の指定のための変数をフラグとここでは呼ぶことにする。逆変換手段B7では、動作開始後、フラグの変更が行われるまでは動作開始地点で指定されているフラグを用いて逆変換を算出する。後述する再逆変換手段8、変換結果選択手段9の動作によりフラグが変更された場合は、以降の周期では変更されたフラグを用いて逆変換を算出する。
ここで、逆変換の解が1つに定まらない特異点と一致する場合の扱いについて説明する。なお、以下に、その処理方式、即ち、特異点と一致し通常では定まった解が得られないという問題を解消するための逆変換結果生成手段(図示せず)について提案するが、この方式は、逆変換手段B7に限らず、後段で更に詳しく取り上げる逆変換手段A4についても適用出来るものである。
この特異点と一致する場合、2つの軸の値は任意の値をとりうる。特異点の一例としては、図4に示す6軸多関節ロボットの第5軸の角度が0になり、第4軸と第6軸が同一直線上に重なる場合があげられる。特異点と一致する場合は、逆変換手段B7では、図5のフローで各軸の位置を算出する。まず、特異点にあるために、任意の値を取りうる2つの軸の値を、前回の周期の速度をそのまま保つように一旦定める。例えば2つの軸がそれぞれ第i軸と第j軸でk回目の周期で特異点と一致したとすると、
thi(k) = thi(k-1)+(thi(k-1)-thi(k-2)) (14)
thj(k) = thj(k-1)+(thj(k-1)-thj(k-2)) (15)
で第i軸及び第j軸の位置を一旦定める(ステップT1)。即ち、この間では、両軸は、等速で動いていると仮定するわけである。
次に、今求めた第i軸及び第j軸の位置とメカニカルシステムの先端位置から残りの軸の位置を求める(ステップT2)。次に、求めた各軸の位置から先端の位置姿勢を算出し、先端位置姿勢誤差epを算出(ステップT3)する。さらに、thj(k)、thi(k)にep/2を加算することにより補正を行う(ステップT4)。即ち、上記で、両軸が等速で動いていると仮定したことによる誤差を補正するものである。
以上のように、この逆変換結果生成手段を備えることにより、解が一意に定まらない特異点に一致する場合も、逆変換が可能となり、既述したとおり、各種の逆変換手段に提要出来、同等の効果を奏するものである。
次に、移動速度・移動量演算手段1内の再逆変換手段8では、まず、逆変換手段B7で逆変換を行った結果が特異点近傍にあるかどうかの判別を行う。
特異点近傍であるかどうかの判別方法としては、ある特定の関節の変位が決まった範囲にあるかどうかで判別する方法が挙げられる。例えば、図4の6軸ロボットの第4軸、第6軸が同一直線上に重なる特異点の近傍かどうかは、第5軸の変位が0近傍かどうかで判別できる。例えば、しきい値を±5[deg]に設定した場合なら、第5軸の変位が±5[deg]の範囲にあれば特異点近傍であり、その範囲になければ特異点近傍ではないことになる。
特異点近傍にある場合は、逆変換手段B7で用いたフラグと近傍にある特異点に関して対になるフラグで逆変換を再度実施する。
再び、図4の6軸多関節ロボットの場合を例に説明すると、フラグは3bitで表現され、フラグの3bitの値の組み合わせ毎に逆変換の解が存在する。また、それぞれの特異点は、フラグの各bitに対応する。例えば、図4の6軸ロボットの第4軸、第6軸が同一直線上に重なる特異点は3bit目に対応(1bit目あるいは2bit目に対応させていても構わない)しているとすると、ある特異点近傍にあると判別された場合は、その特異点に対応するbitの値を変更して再逆変換手段8により再度逆変換を実施する。
例えば、図4の6軸ロボットの第4軸、第6軸が同一直線上に重なる特異点近傍にあると判別され、現在のフラグの3bit目の値が1の場合は、3bit目の値を0に変えたフラグで再度逆変換を実施する。
特異点近傍にない場合は何もしない。
変換結果選択手段9では、再逆変換手段8で再度逆変換が実施されなかった場合、すなわち特異点近傍になかった場合は何もしない。再逆変換手段8で再度逆変換が実施された場合は逆変換の解の選択を実施する。
以下、この変換結果選択手段9の動作について、図6のフローチャートを参照して説明する。
前回の周期の逆変換結果をtho、今回の周期の逆変換手段B7における逆変換結果をtha、再逆変換手段8での逆変換結果をthbとする。また、0以上1以下の定数waを用いて
thc = wa*thb+(1-wa)*tha (16)
を定義する。即ち、thcは、定数waを用いて、両結果tha、thbに重み付けをして加算したものである。
ここで、thcを導入するのは、先端の軌跡が本来の値から多少ずれても高速に動作させたいためである。
ステップU1で現在のフラグをそのまま用いた場合の各軸移動量
dtha=tha-tho (17)
を算出する。ステップU2では、dthaの各軸要素の少なくとも1つが規定値以上であるかどうかの判別を行う。少なくとも1つが規定値以上の場合はステップU3、そうでない場合はステップU4に進む。
ステップU3では、移動量対応の選択を実施する。ステップU3では、tha、thb、thcを逆変換結果として選択した場合の各軸の移動量の絶対値の最大値maxdtha, maxdthb, maxdthcを算出する。ここで、maxdthaはdthaの各軸要素の絶対値の最大値である。ステップ3では、以下の条件1〜3の判別を順に行い、判別結果に応じたフラグ及び逆変換結果を選択する。
条件1:maxdthb<maxdthaの場合は、フラグを切り替えてthbを逆変換結果として採用する。条件1でフラグを切り替えてthbを採用するのは、そちらの方が先端速度を落とす必要がなく、高速に通過できるためである。
条件1でフラグを切り替えた場合は、次回の周期以降では逆変換手段B7では切り替えたフラグ(thbのフラグ)で逆変換を実施する。
但し、thbが、動作範囲外、即ち、少なくとも1つの関節軸の変位がその上限もしくは下限を超過することになる場合はフラグを切り替えず、逆変換結果もthaを選択する。
条件2:条件1が成立せず、maxdthc<maxdthaの場合は、フラグは切り替えないが、(16)式で求めたthcを逆変換結果として採用する。
条件2でフラグを切り替えずにthcを採用するのは、tha、thbいずれを採用するよりも先端速度を落とす必要がなく、高速に通過できるためである。
但し、thcを採用すると先端が本来の軌跡からずれるため、できるだけtha、もしくはthb(この両者なら先端は本来の軌跡を保つ)が採用されるように、条件1による処理を優先して実施する。
また、thcを採用しても逆変換手段B7では元のフラグ(=thaのフラグ)で逆変換を実施する。
以上のように、条件1,2は、先端の速度をできるだけ落とすことがないようにする視点でフラグを選択しているわけである。
但し、thcが動作範囲外となる場合は、逆変換結果もthaを選択する。
条件3:条件1、2がいずれも成立しない場合はステップU4へ進む。
先のステップU3では関節の速度が高くなり過ぎないようにフラグを切替えたが、ステップU4、U5では動作範囲外に出ることを防止するためにフラグを切り替える。
先ず、ステップU4では、現在のフラグのままでは近いうちに動作範囲外に出るかどうかの判別を行う。
動作範囲外に出るかどうかは、thaがリミット近傍にあるかどうかで判別する。具体的には、第i軸の関節変位q(i)がリミット近傍にあるかどうかは、全軸共通のパラメータをα、第i軸の+側リミットをqmax、−側リミットをqminとして、q(i)>qmax-α もしくはq(i)<qmin+αが成立する場合にリミット近傍にあると判定する。
すべての軸の変位がリミット近傍になければ、そのフラグで逆変換を続けても動作範囲外になることはないため、逆変換手段B7現在のフラグで逆変換したthaを選択する。少なくとも1つの軸の変位がリミット近傍にある場合は、近いうちに動作範囲外になる可能性があるため、ステップU5でフラグの切替を検討する。
ステップU5では、thbがリミット近傍にあるかどうかを判別する。即ち、再逆変換手段8により、切り替えたフラグで逆変換を実施した結果が動作範囲内にあるかどうかを判別する。
これは、ステップU4で動作範囲外と判別されるもとになった軸がフラグを切り替えることにより値の変わらない軸(例えば、図4の6軸ロボットの第4軸、第6軸が同一直線上に重なる特異点近傍の場合、第1,2、3軸の変位はフラグを切り替えても変わらない)の場合は値が変わらないためthbも動作範囲外になる。
また、ステップU4で動作範囲外と判別されるもとになった軸がフラグを切り替えることにより値の変わる軸であっても、その軸の上限値、下限値によってはフラグを切り替えても動作範囲外になる場合がある。そのためステップU5でフラグを切り替えても動作範囲外になるかどうかの判別をする。
thbがリミット近傍にない場合は、フラグを切り替えてthbを逆変換の解として選択する。フラグを切り替えることにより動作範囲外でロボットを停止させる必要がなくなるため、動作できる範囲が広がる。
ステップU5で、thbもリミット近傍にある場合、即ち、フラグを切り替えても動作範囲外になる場合は切り替えても仕方がないので、フラグは切り替えずthaを逆変換の解として選択する。
変換結果選択手段9においてフラグを切り替えた場合、及びthcを選択した場合に、その周期及び1つ前の周期の移動量と逆変換結果を切替地点記憶手段10に記憶する。
次に、移動速度修正手段2について説明する。
移動速度・移動量演算手段1では、上記のような作用をしているので、各区間(ls(k-1)〜ls(k))における各軸の関節速度の制約を満たす先端速度vs(k)とvs(k)の累積値であるls(k)が出力される。
ロボット、工作機械などのメカニカルシステムでは機械剛性が十分には高くなく、また、メカニカルシステムを駆動するモータのトルクにも制限があるため、移動速度・移動量演算手段1の演算結果をそのまま先端での位置指令として用いることはできず、加減速を行う必要がある。
加減速を行うための手段として移動平均フィルタ(本願では、加減速手段3が相当する)を用いる方法が知られているが、移動平均フィルタを用いる場合、フィルタの出力の最小値はフィルタ入力の最小値よりも大きな値になる。これは移動平均フィルタでは、最小値の前後を含めて平均値が出力されるため、その出力は元々の最小値より大きな値になるためである。
そこで、各区間(ls(k-1)〜1s(k))での加減速手段3への入力を、移動平均フィルタの窓長を考慮した前後の区間での最小値に設定するようにしておけば、加減速手段3の出力が、その区間(ls(k-1)〜ls(k))にある場合は、超えてはいけない先端速度vs(k)以下となる。
区間(ls(k-1)〜ls(k))で、先端速度がVS(k)以下であれば、加減速後の速度が各区間で移動速度・移動量演算手段1での速度以下となるので、各軸の関節速度の制約を常に満たすことができる。
先端の移動量が各区間(ls(k-1)〜ls(k))にあるときの加減速手段3への入力を移動平均フィルタの窓長を考慮した前後の区間での最小値に設定するようにするために、移動速度修正手段2では下記の作用を行う。図7のフローチャートを参照して説明する。
移動速度修正手段1では、移動量演算手段6で移動量を算出する際に用いる時間刻みをst秒、移動平均フィルタの窓長の総和をft秒とするとき、ft/st/2以上の最小の整数をfilaとし、移動量演算手段6で算出した移動速度を修正し、指令値生成周期ごとの加減速前の位置指令もしくは速度指令を生成する。
先ず、移動速度・移動量演算手段1が出力する移動量ls(k)に対応する移動速度vlmin(k)を以下のように算出する(ステップV1)。
k>filaの場合は
vlmin(k) = min(vs(k-fila+1), vs(k-fila+2). ・ ・ ,vs(k+fila)) (18)
で算出し、
k≦filaの場合は
vlmin(k)=min(vs(1)、 vs(2)、・・vs(2k)) (19)
で算出する。
(18)、(19)式の演算は、各区間(ls(k-1)〜ls(k))における最小値の演算を行っている部分である。
次に、移動速度修正手段2での第1周期での出力である速度指令vt(1)をvlmin(1)*ovrdとする。ここで、ovrdは、メカニカルシステムを動作させるためのプログラムで設定される速度比率であり、ovrd=1のときは100%の速度で動作させることを意味する。またls(0)=0としている。
移動速度修正手段2の第j周期での出力である速度指令vt(j)のj-1までの累積値lt(j-1)=(vt(l)+vt(2)+・・・+vt(j-1))*stが、ls(k-l)<lt(j-1)≦ls(k)の間にある場合は、
vt(j)=vlmin(k)*ovrd (20)
とする。
lt(j-1)が、ls(k)を超えて次の区間に入っている場合、即ち、ls(k)<lt(j-1)≦ls(k+1)となる場合は、
vt(j)=vlmin(k+l)*ovrd (20b)
とする(ステップV2〜V5)。
これは、移動速度修正手段2の出力を速度指令とする場合に、移動速度修正手段2の出力、即ち、加減速手段3の入力の累積値が、区間(ls(k-l)〜ls(k))にある間はその最小値vlmin(k)とするものである。
換言すれば、vt(j)の前回までの累積値が存在する区間に対応する最小値をvt(j)に設定するわけである。
(20)式で計算されるvt(j)を移動速度修正手段2から出力する速度指令とする。移動速度修正手段2から位置指令を出力する場合は、vt(j)の累積値lt(j)を位置指令とする。
加減速手段3では、移動速度修正手段2から出力される指令が速度指令の場合は、速度指令を2段の移動平均フィルタに通し、通した結果を累積して指令移動量を算出し、指令移動量と動作開始地点の位置から先端の位置指令を算出する。移動速度修正手段2から出力される指令が位置指令の場合は、位置指令を2段の移動平均フィルタに通して指令移動量を算出し、指令移動量と動作開始地点の位置から先端の位置指令を算出する。
フラグ決定手段11では、切替地点記憶手段10の記憶内容と加減速手段3で算出された指令移動量に基づいて逆変換手段A4でのフラグを決定する。変換結果選択手段9でフラグが変更されていない場合は、フラグ決定手段11からは動作開始地点で指定されているフラグが出力される。変換結果選択手段9でフラグが変更されている場合は、加減速手段3から出力される指令移動量が切替地点記憶手段10に記憶されている切替地点に到達するまでは切替前のフラグを逆変換手段A4に送信し、加減速手段3から出力される指令移動量が切替地点記憶手段10に記憶されている切替地点を通過後は切替後のフラグを送信する。
補正手段12では、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替直前の地点とフラグ切替地点の間にある場合にフラグ切替により値が変わる軸の指令を補正する。
ここで補正処理を行うのは、移動速度・移動量演算手段1でフラグを切り替えている区間にある場合、加減速手段3の後に移動速度・移動量演算手段1と同じフラグ切替手段(逆変換手段B7、再逆変換手段8、変換結果選択手段9)を設ける方法もあるが、同じ区間でも移動速度・移動量演算手段1での速度と加減速手段3の出力では速度が異なるため、フラグ切替の挙動が異なる場合があり、これらを考慮したものである。
フラグ決定手段から、フラグ切替直前の地点の移動量lfb、逆変換結果thfbとフラグ切替地点における移動量lf、逆変換結果thfを入力する。フラグが切り替わることにより値が変わる軸の指令を
thnow(i)=(thf(i)-thfb(i))*(lnow-lfb)/(lf-lfb)+thfb(i) (21)
に置き換える。ここでlnowは加減速手段で算出された指令移動量である。
また、iは、第i軸を示す。即ち、図4の6軸ロボットの第4軸、第6軸が同―直線上に重なる特異点の場合は、フラグが変わることにより値が変わる軸は、第4軸、第5軸、第6軸である。従って、(21)式の計算は、第4軸、第5軸、第6軸の要素に対して実施する。
また、(21)式は、フラグ切替直前地点とフラグ切替地点との間における移動量変化量の両出力(加減速手段3からの出力とフラグ決定手段11からの出力)比は、同地点間における逆変換結果変化量の同両出力比に等しいと仮定して求められている。
本発明の実施の形態1によれば、メカニカルシステムの先端を予め定められた軌道に沿って動作させる軌道補間動作を行う際、関節速度の超過及び急激な加減速を引き起こすことなく、また、必要以上に先端速度を低下させることなく動作でき、メカニカルシステムの動作時間を短縮できる効果がある。
また、指令軌道を変更することにより、メカニカルシステムの動作時間を短縮できる効果がある。
さらに、特異点近傍で動作範囲外になる場合に再逆変換を実施し、もう一方の逆変換結果を採用することにより動作範囲外になることが防止でき、軌道補間で動作可能な範囲を拡大できる効果がある。
また、特異点と一致する場合にも各軸の指令を一意に定めることができる効果もある。
実施の形態2.
実施の形態1では、移動速度・移動量演算手段1での速度規定値としてはメカニカルシステムに固有の先端最高速度v0を用い、メカニカルシステムを動作させるためのプログラムで設定される速度比率は、移動速度修正手段2の(20)式で考慮した。
これに対し、実施の形態2では、移動速度・移動量演算手段1での速度規定値としてovrd* v0を用い、移動速度修正手段2は(20)式の代わりに
vt=vlim(k) (22)
とする。
即ち、実施の形態1では、ovrdを移動速度修正手段2で考慮するので同じ軌道を通る場合ならば、ovrdの設定によらず移動速度・移動量演算手段1での動作は全く同じになる。従って、移動速度・移動量演算手段1でフラグが切り替わるかどうかと切り替わる場合の切り替わる地点もovrdによらず同じになる。
一方、実施の形態2では、ovrdを移動速度・移動量演算手段1で考慮する。そのため、例えば、ovrd=0.1の場合、移動速度・移動量演算手段1で算出する移動速度は、ovrd・1の場合の0.1倍になる。移動速度が0.1倍になっているため、ovrd=lでは各軸移動量の各軸要素の少なくとも1つが規定値以上となる場合でも、ovrd・0.1では各軸移動量がovrd=1の場合の0.1倍になるため、いずれの軸の要素も規定値を超えないことがある。
そのため、ovrd=lではフラグの切替が起こるが、ovrd=0.lではフラグの切替が起こらない場合がある。ロボットを動作させる際、最初はovrdを小さくして試験動作を行い、試験動作でOKならovrdを大きくして実際の作業を行うことがあるが、ovrdの値によりフラグが切り替わるかどうかが異なると試験動作と実際の動作とがー致しなくなり試験動作での評価が難しくなる短所がある。
しかし、実際のovrdに合わせてフラグの切り替えの判断をするため、そのovrdに応じたフラグ切り替えの判断が実施できる。反面、実施の形態1では、ovrd=1の速度で判断するため、ovrdが小さくフラグを切り替える必要のない場合でもフラグを切り替えることがあり、この点は実施の形態2が実施の形態1より有利と言える。
実施の形態3.
この実施の形態3では、実施の形態1で説明した移動速度修正手段2の変形例について説明する。実施の形態3は、実施の形態1とは、vlmin(k)の算出方法が異なっている。
先ず、vsの増減は常時チェックし、最新の極小値vs(kp)を記憶しておく。ここで、極小値とは、vs(m-l)>vs(m)<vs(m+1)が成立するときのvs(m)をいう。
k>filaの場合は、k-fila+1〜k+filaの区間に極小値kpがある場合は、
vlmin(k)=min(vs(k-fila+1), vs(kp), vs(k+fila)) (23)
とし、極小値kpがない場合は
vlmin(k)=min(vs(k-fila+1), vs(k+fila)) (24)
とする。
k≦filaの場合は、1〜2kの区間に極小値kpがある場合は、
vlmin(k)=min(vs(1), vs(kp), vs(2k)) (25)
とし、極小値kpがない場合は
vlmin(k)=min(vs(1), vs(2k)) (26)
とする。
上記で、「最新の」とは、例えば、k=5とk=15で極小値になったとした場合、k+filaもしくは2kが4以下の時は極小値なし、k+filaもしくは2kが5〜14のときはvs(5)を記憶し、k+filaもしくは2kが15以上のときはvs(15)を記憶する。
従って、vlmin(k)を求めるもととなるvs()の極小値が2つ以上ある場合は、新しいほうの極小値のみ考慮する。最新の極小値のみ考慮する構成では、場合によっては最小値とはならない場合があるという短所があるが、min()を求めるもととなる要素数が少ないため計算量は少なくてすむ長所がある。
一方、実施の形態1では、(18)、(19)式で必ず最小値を求める。従って、計算量が多い短所はあるが、常に最小値を求めることができる長所がある。
なお、移動速度修正手段の更なる変形例としては、以下のものが考えられる。即ち、
実施の形態3では、所定の演算時間範囲内での最新の極小値と同期間端での速度から最小のものを選ぶようにしたが、同期間端の値より小さい値が存在すればその値を採用するようにしても良い。この場合も、効果の度合いは異なるが、移動速度修正手段を挿入することによる、上述したと同様の効果を奏すると言える。
更に、最小値や最近の極小値等を検出する対象範囲として、実施の形態1や3と異なり、所定の演算距離の範囲としても、移動平均フィルタ等との設定を別途調整する必要があるが、同等の効果が得られることは明らかである。
従って、移動速度修正手段2としては、移動速度・移動量演算手段1における任意の演算時点tで演算された移動速度(t)および移動量(t)に対し、上記演算時点tを含む所定演算時間範囲内または上記移動量(t)を含む所定演算距離範囲内での移動速度の演算結果に上記移動速度(t)より小さい移動速度が存在しない場合は上記移動速度(t)を踏襲し、上記移動速度(t)より小さい移動速度が存在する場合は上記移動速度(t)を当該小さい移動速度に置換した修正移動速度を作成し、この修正移動速度を積分して得られる移動量が上記移動量(t)に達するまで出力するものであればよいと言える。
以上のように、この発明の実施の形態3における指令値生成装置では、上記所定演算時間範囲内または所定演算距離範囲内での移動速度の演算結果の内の最新極小値を採用するようにしたので、移動速度修正手段での演算が簡便となるという効果がある。
実施の形態4.
図8は、本発明の実施の形態4による指令値生成装置を示すブロック図である。実施の形態1とは、逆変換手段A4及び補正手段12の代わりに、第1の逆変換手段としての逆変換手段C13を用いることが異なっているので、以下、この逆変換手段C13を中心にその動作について説明する。
逆変換手段C13では、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替直前の地点に到達するまでは切替地点以前のフラグで逆変換を実施する。また、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替を通過後は切替地点以後のフラグで逆変換を実施する。
加減速手段3で算出された指令移動量がフラグ切替直前の地点と切替地点の間にある場合は、先ず、前出の(21)式と同内容の
thnow=(thf-thfb)*(lnow-lfb)/(lf-lfb)+thfb (27)
の算出を行い、フラグ切替により値が変わる軸の値を定める。
次に、先端の姿勢は無視し、lnowに対応する先端位置と今求めたフラグ切替により値が変わる軸の値より、残りの軸の値を算出する。
即ち、更に具体的に説明すると、実旅の形態1では、逆変換実施後に一部の関節軸(例えば、図4の第5軸の関節変位が0である特異点の場合の第4,5,6軸)の値を変更する。そのため、変更後の各関節変位から求めた先端位置はもともとの指令とは一致しなくなる。即ち、先端位置が本来の軌跡からずれる短所がある。しかし、一部の関節軸の関節変位を修正するだけであるので、図4の6軸ロボットの場合、3通りある特異点すべてで同じように、かつ少ない計算量で計算できる利点がある。
一方、この実施の形態4では、修正する軸の関節変位を求めてから残りの軸の関節変位を算出するので、先端位置は本来の軌跡を保つという利点がある。先端姿勢は本来の姿勢は保てないが、この点は、実施の形態1も同様である。
図4のような6軸ロボットの逆変換を行う場合、第4,5,6軸の変位を求めてその次に残りの軸(=第1,2,3軸)の変位を算出することが一般的である。従って、第5軸の変位が0の特異点に関しては第4,5,6軸の変位が先に定まっても通常の逆変換と同じになり残りの軸の変位は少ない計算量で算出できる。しかし、残りの特異点に関しては、第4,5,6軸のうち少なくともlつの値は定まっていないため残りの軸の値を通常の逆変換と同じ方法で算出することはできず、繰り返し計算を行うなどの必要が生じ、計算量が増加する短所がある。
以上のように、この発明の実施の形態4における指令値生成装置では、フラグ切替直前地点とフラグ切替地点との両地点間では、上記先端位置が定められた軌跡を維持するように、当該切替で逆変換結果である関節変位が変化する関節の関節変位に基づき他の関節の関節変位を求めるようにしたので、フラグを切り替える区間においても、先端位置は本来の軌跡を保つという効果がある。
実施の形態5.
この実施の形態5は、先の実施の形態4の逆変換手段C13の変形例で、回路ブロック図としては、図8がそのまま適用される。以下、逆変換手段C13を中心にその動作について説明する。
逆変換手段C13では、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替直前の地点に到達するまでは切替地点以前のフラグで逆変換を実施する。また、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替を通過後は切替地点以後のフラグで逆変換を実施する。
加減速手段3で算出された指令移動量がフラグ切替直前の地点と切替地点の間にある場合は、先ず、前出の(27)式の算出を行い、各軸の値を一旦算出する。
次に、当該一旦算出した関節変位に対応するフラグを求め、先端位置から当該フラグを使用して逆変換を行い各関節変位を算出する。
即ち、更に具体的に説明すると、(27)式で算出した各軸の変位に対応するフラグを求める。例えば、図4の6軸ロボットにおいて、フラグ切替前は、第5軸が+の値を持つフラグ(ここではフラグ1と呼ぶことにする)で、フラグ切替後は、第5軸が−の値を持つフラグ(ここではフラグ2と呼ぶことにする)になる場合、(27)式において、第5軸の値が+の場合はフラグを1とし、第5軸の値が−の場合はフラグを2とする。
次に、現在の先端位置姿勢から(27)式の結果に応じて選択されたフラグを用いて逆変換を行い、各軸の変位を算出する。実施の形態5の逆変換手段C13において、加減速手段3で算出された指令移動量がフラグ切替直前の地点と切替地点の間にある場合のフローを図9に示す。
実施の形態5と実施の形態1とを比べると、実施の形態5では、フラグを切り替える区間においても先端位置姿勢を本来の位置姿勢に保つことが可能になる長所がある。
一方、フラグを切り替える際に、実施の形態1と比べると速度の変動が大きくなり振動を誘発する可能性があるという短所がある。
以上のように、この発明の実施の形態5における指令値生成装置では、フラグ切替直前地点とフラグ切替地点との両地点間では、上記フラグ決定手段から入力した上記両地点での逆変換結果である各関節変位と先端位置に基づき各関節変位を一旦算出し、当該一旦算出した関節変位からその関節変位に対応するフラグを求め、上記先端位置から当該フラグを使用して逆変換を行い各関節変位を求めるようにしたので、フラグを切り替える区間においても先端位置姿勢を本来の位置姿勢に保つことが可能になるという効果がある。
実施の形態6.
この実施の形態6は、先の実施の形態4の逆変換手段C13の変形例で、回路ブロック図としては、図8がそのまま適用される。また実施の形態6では、制御対象を先の図4の6軸垂直多関節ロボットとする。以下、逆変換手段C13を中心にその動作について説明する。
逆変換手段C13では、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されいるフラグ切替直前の地点に到達するまでは切替地点以前のフラグで逆変換を実施する。また、加減速手段3で算出された指令移動量が切替地点記憶手段10に記憶されているフラグ切替を通過後は切替地点以後のフラグで逆変換を実施する。
加減速手段3で算出された指令移動量がフラグ切替直前の地点と切替地点の間にある場合は、フラグ決定手段から入力した上記両地点での逆変換結果である各関節変位と先端位置に基づき各関節変位を一旦算出し、第1、2、3関節以外の関節変位は当該一旦算出した値に決定し、当該決定した第1、2、3関節以外の関節変位と上記先端位置から第3関節の先端位置を算出し、当該一旦算出した関節変位からその関節変位に対応するフラグを求め、上記第3関節の先端位置から当該フラグを使用して逆変換を行い上記第1、2、3関節の各関節変位を求める。
即ち、更に具体的には、先ず、前出の(27)式で各軸の値を算出する。第4、5、6軸の変位に関しては、(27)式で求めた値をそのまま採用する。
次に、第4、5、6軸の変位と先端位置lnowから、図4に示す第3軸の先端位置lnowi3を算出する。
次に、(27)式で算出した各軸の変位に対応するフラグを求める。例えば、図4の6軸垂直多関節ロボットでは、第3軸の値が0になる時も特異点であるが、フラグ切替前は第3軸が+の値を持つフラグ(ここではフラグ3と呼ぶことにする)で、フラグ切替後は第3軸が−の値を持つフラグ(ここではフラグ4と呼ぶことにする)になる場合、(27)式において第3軸の値が+の場合はフラグを3とし、第3軸の値が−の場合はフラグを4とする。
フラグが3の場合は、第3軸の先端の位置lnowi3から第1、2、3軸の変位を求める際、第3軸の値が+になる解を選択する。フラグが4の場合は、第3軸の先端の位置 lnowi3 から第1、2、3軸の変位を求める際、第3軸の値が−になる解を選択する。
実施の形態6の逆変換手段C13において、加減速手段3で算出された指令移動量がフラグ切替直前の地点と切替地点の間にある場合のフローを図10に示す。
実施の形態6と実施の形態1とを比べると、実施の形態6ではフラグを切り替える区間においても先端位置を本来の位置姿勢に保つことが可能になる長所がある。一方、フラグを切り替える際に、実施の形態1と比べると速度の変動が大きくなり振動を誘発する可能性があるという短所がある。
また、実施の形態6と実施の形態5とを比べると、実施の形態6では先端位置は必ず本来の位置を保てるが、先端の姿勢に関しては、フラグを切り替える区間では保てない場合がある。例えば、図4のロボットで、第5軸の値が0になる特異点近傍でフラグが切り替わる場合、実施の形態6では先端の姿勢は本来の姿勢からずれてしまう。
一方、フラグを切り替える際に実施の形態5では速度変動が大きくなる動作に対しても、実施の形態6では速度変動が大きくならない場合がある。例えば、図4のロボットで、第5軸の値が0になる特異点近傍でフラグが切り替わる場合、実施の形態5では速度変動が大きくなる可能性があるが、実施の形態6では速度変動は大きくならない。
以上のように、この発明の実施の形態6における指令値生成装置では、フラグ切替直前地点とフラグ切替地点との両地点間では、上記フラグ決定手段から入力した上記両地点での逆変換結果である各関節変位と先端位置に基づき各関節変位を一旦算出し、第1、2、3関節以外の関節変位は当該一旦算出した値に決定し、当該決定した第1、2、3関節以外の関節変位と上記先端位置から第3関節の先端位置を算出し、当該一旦算出した関節変位からその関節変位に対応するフラグを求め、上記第3関節の先端位置から当該フラグを使用して逆変換を行い上記第1、2、3関節の各関節変位を求めるようにしたので、フラグを切り替える区間においても先端位置を本来の位置姿勢に保つことが可能になるという効果がある。
実施の形態7.
この実施の形態7は、先の実施形態1での変換結果選択手段9の変形例である。実施の形態1では各軸の移動量とリミットの両方を考慮していたが、実施の形態7では各軸の移動量のみを考慮する。以下、この異なる部分を中心に説明する。
変換結果選択手段9では、再逆変換手段8で再度逆変換が実施されなかった場合、即ち、特異点近傍になかった場合は何もしない。再逆変換手段8で再度逆変換が実施された場合は逆変換の解の選択を実施する。
前回の周期の逆変換結果をtho、今回の周期の逆変換手段B7における逆変換結果をtha、再逆変換手段8での逆変換結果をthbとする。また、0以上1以下の定数waを用いて前出の(16)式でthcを定義する。
先ず、現在のフラグをそのまま用いた場合の各軸移動量dthaを前出の(17)式で算出する。
次に、dthaの各軸要素の少なくとも1つが規定値以上であるかどうかの判別を行う。少なくとも1つが規定値以上の場合はフラグの変更を検討する。そうでない場合はフラグは変更せず、thaを逆変換結果として採用する。
フラグの変更を検討する場合、tha、thb、thcを逆変換結果として選択した場合の各軸の移動量の絶対値の最大値maxdtha, maxdthb, maxdthcを算出する。ここでmaxdthaはdthaの各軸要素の絶対値の最大値である。次に、以下の条件1〜3の判別を順に行い、判別結果に応じたフラグ及び逆変換結果を選択する。
条件1:maxdthb<maxdthaの場合はフラグを切り替えてthbを逆変換結果として採用する。但し、thbが動作範囲外となる場合はフラグを切り替えず、逆変換結果もthaを選択する。
条件2:条件1が成立せず、maxdthc<maxdthaの場合はフラグは切り替えないがthcを逆変換結果として採用する。但し、thcが動作範囲外となる場合は、逆変換結果もthaを選択する。
条件3:条件1、2がいずれも成立しない場合はフラグを切り替えず、逆変換結果もthaを選択する。
この実施の形態7では、動作リミットは考慮しないので、フラグを切り替えないと特異点近傍で動作リミットを越え、フラグを切り替えれば動作リミット内に各関節変位が入る動作に対しては、実施の形態1では動作リミットを越えることなく動作できるのに対して、実施の形態5では動作できない点が不利になるが、変換結果選択手段9での演算処理が簡便になるという効果がある。
実施の形態8.
この実施の形態8は、先の実施形態1での変換結果選択手段9の変形例である。実施の形態1では各軸の移動量とリミットの両方を考慮していたが、実施の形態8では各軸のリミットのみを考慮する。以下、この異なる部分を中心に説明する。
変換結果選択手段9では、再逆変換手段8で再度逆変換が実施されなかった場合、即ち、特異点近傍になかった場合は何もしない。再逆変換手段8で再度逆変換が実施された場合は逆変換の解の選択を実施する。
今回の周期の逆変換手段B7における逆変換結果をtha、再逆変換手段8での逆変換結果をthbとする。
先ず、thaがリミット近傍にあるかどうかを判別する。thaがリミット近傍にない場合はフラグを切り替えずに逆変換結果としてthaを選択する。thaがリミット近傍にある場合は、thbがリミット近傍にあるかどうかを判別する。thbがリミット近傍にない場合は、フラグを切り替えてthbを逆変換の解として選択する。thbもリミット近傍にある場合はフラグを切り替えずthaを逆変換の解として選択する。
この実施の形態8では、各軸の移動量を考慮しないので、フラグを切り替えたほうが速度を低下させる必要がなく高速に動ける動作でもフラグが切り替わらないため、実施の形態1と比べると動作時間が長くなる点が不利になるが、変換結果選択手段9での演算処理が簡便になるという効果がある。
実施の形態9.
この実施の形態9は、先の実施形態1での変換結果選択手段9の変形例である。実施の形態1とは変換結果選択手段9における逆変換の解の選択のフローにおいて、ステップ3での条件判別が異なっている。
この実施の形態9におけるステップ3では、tha、thbを逆変換結果として選択した場合の各軸の移動量の絶対値の最大値maxdtha, maxdthbを算出する。ここで、maxdthaはdthaの各軸要素の絶対値の最大値である。ステップ3では、以下の条件1〜3の判別を順に行い、判別結果に応じたフラグ及び逆変換結果を選択する。
条件1:maxdthb<maxdthaの場合はフラグを切り替えてthbを逆変換結果として採用する。但し、thbが動作範囲外となる場合はフラグを切り替えず、逆変換結果もthaを選択する。
条件2:条件1が成立しない場合に、先ず、
thd = wd*thb+(1-wd)*tha (28)
dthd=thd-tho (29)
を算出し、dthdのすべての要素が規定値以下となる最大のwd(0≦wd≦1)であるwdmaxを算出する。dthdのすべての要素が規定値以下となるwd(0≦wd≦1)が存在しない場合はフラグを切り替えず逆変換結果もthaを採用する。dthdのすべての要素が規定値以下となるwd(0≦wd≦1)が存在する場合はフラグは切り替えないが
thdmax= wdmax*thb+(1-wdmax)*tha (30)
を逆変換結果として採用する。但し、thdmaxが動作範囲外となる場合は、逆変換結果もthaを選択する。
条件3:条件1、2がいずれも成立しない場合はステップU4(実施の形態1の図6参照)へ進む。
この実施の形態9では、2つのフラグでの逆変換結果の重み付和を逆変換の解とする場合に、その重みの最適化計算を実施するもので、実施の形態1と比べると動作時間を短縮できる効果がある一方で計算量が多いという短所がある。
実施の形態10.
この実施の形態10は、先の実施形態1での移動速度演算手段5の変形例である。実施の形態1では、各軸の移動速度が許容値を超える場合のみ移動速度の修正を行っていたが、実施の形態10では各軸の移動速度が許容値を超えない場合も移動速度の修正を下記のように実施する。
先ず、動作開始から2*k≦ft/stの間はrdthkmaxが0でないときは常に
vk=vk-1/ rdthkmax (31)
で移動速度を修正し再度移動量dlk、lkを算出する。rdthkmaxが0のときのみ修正しない。 移動速度・移動量演算手段1から出力される2*k-1番目の移動速度vs(2*k-1)及び2*k番目の移動速度vs(2*k)はいずれも(31)式のvkである。また、移動量に関しては求め直したdlk、lkを用いて実施の形態1と同様に(8)式、(9)式で求められる。
2*k>ft/stとなって以降は、rdthk2maxが0でないときは常に
vk2=vk2-1/rdthk2max (32)
で移動速度を修正し再度移動量dlk2、lk2を算出する。rdthk2maxが0のときのみ修正しない。
移動速度・移動量演算手段1から出力される移動速度は(32)式のvk2であり、移動量は再度算出したlk2である。
先の実施の形態1では、先端速度の上限をvとしている。即ち、関節速度に余裕があっても先端速度を上げない。
一方、実施の形態10では、関節速度に余裕がある場合は、先端速度をvよりも大きな値に設定する。従って、実施の形態10の方が高速に動作できる。
しかし、計算量の観点から見ると、実施の形態1では関節速度が許容値を超える場合のみ同一の周期で逆変換手段B7での逆変換を2度(それ以外はl度)実施するが、実施の形態10では常に同一の周期で逆変換手段B7での逆変換を2度実施することになる。言い換えれば、実施の形態1では、移動速度・移動量演算手段1の内部のブロック要素5〜9のループが1周期にl回(上限を超える場合のみ2回)であるのに対して、実施の形態10では、移動速度・移動量演算手段1の内部のブロック要素5〜9のループがl周期に必ず2回実施する。そのため、実施の形態10の方が計算量が多くなる。
以上のように、この発明の実施の形態10における指令値生成装置では、その移動速度演算手段は、上記第2の逆変換手段からの各関節変位から各関節速度を演算し、上記各関節速度と当該各関節で定められた所定の最大許容値との比に応じて上記先端移動速度を修正して出力するので、先端速度をより高速に動作させ得るという効果がある。
実施の形態11.
この実施の形態11は、実施の形態1とは、移動速度演算手段5、移動量演算手段6及び移動速度修正手段3での動作が異なっている。
先ず、移動速度演算手段5では動作開始から2*k≦ft/stの間も1周期分の計算を実施する。即ち、動作開始から終了まで全く同じ動作を行う。
動作開始時には、移動速度の初期値を規定値であるv0とし、k回目の周期における移動速度の初期値をvk-1とする。ここでk=1のときはvk-1は規定値v0とする。次にst秒での移動量
dlk= vk-1*st (33)
を移動量算出手段6で算出し、さらにdlkの累積値lkを算出し動作開始地点からlkだけ進んだ地点pkを移動量算出手段6で算出する。
次に、逆変換手段B7でpkを逆変換し、必要に応じて再逆変換手段8での再逆変換、及び変換結果選択手段9で複数ある逆変換の解の選択を行うことによりpkを逆変換した結果であるthkを算出する。
逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作については実施の形態1と同一である。
thkは、移動速度演算手段5にフィードバックされ、前回の演算における逆変換結果thk-1から各軸毎の移動量
dthk = thk−thk-1 (34)
の計算を移動速度演算手段5で実施する。更に、dthkの各軸成分とそれぞれの許容最大値dthmaxとの比
rdthk(i)=|dthk(i)|/(dthmax(i)) (35)
を算出しrdthk(i)の最大値rdthkmaxを求める。
rdthkmax≦1の場合は移動速度、移動量として1回目の計算結果をそのまま採用し、k番目の移動速度vs(k)をvk-1とする。また、k番目の移動量ls(k)をlkとする。
また、vk-1=v0の場合は
vk=v0 (36)
とする。vk-1<v0の場合は
vk =min(vk-1/rdthkmax, v0 ) (37)
とする。
rdthkmax>1の場合は、移動速度を vk-1/rdthkmaxに修正し、dlk及びlkを算出し直す。k番目の移動速度vs(k)をvk-1/rdthkmaxとする。また、移動量に関しては求め直したlkとする。また、
vk =vk-1/rdthkmax (38)
とする。
移動速度修正手段3では、動作開始からの演算回数kが2*filaを超えるまではkが偶数になる度に、
vlmin(k/2)=min(vs(l),vs(2)・・,vs(k))とする。
演算回数kが2filaを超えてからは、
v1min(k-fila)=min(vs(k-2fila+1 ),vs(k-2fila+2)・・ ,vs(k)) (39)
で算出する。
実施の形態11では、移動速度演算手段5で常に1周期分しか計算しないため、実施の形態1と比べると処理が簡単になり計算時間が削減できる長所がある。しかし、vlmin()がfilaだけ遅れるため動作時間が長くなるという問題があるが、その他の面については、以上で説明した各実施の形態での効果を奏する。
実施の形態12.
図11は、この発明の実施の形態12における指令値生成装置を示すブロック図である。この実施の形態12は、先の実施の形態2とは、切替地点記憶手段10、フラグ決定手段11、補正手段12がないことと、逆変換手段A4の代わりに逆変換手段B7、再逆変換手段8、変換結果選択手段9を用いることが異なっている。また、変換結果選択手段9でフラグを切り替えてもフラグ切替地点及びその直前の地点の情報を記憶することも実施しない。
加減速手段3の後に実施する逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作は、移動速度・移動量演算手段1内部での逆変換手段B7、再逆変換手段8、変換結果選択手段9の動作と同一である。
この実施の形態12では、加減速後のフラグの切替(thcを選択する場合も含めて)が1周期で必ず完了するため加速度変化が実施の形態1と比べて大きくなる場合があり、そのために振動を誘発する可能性がある短所はあるが、構成が簡単になり、その他の面では、以上で説明した各実施の形態での効果を奏する。
実施の形態13.
図12は、この発明の実施の形態13における指令値生成装置を示すブロック図である。この実施の形態13は、先の実施の形態12とは、再逆変換手段8、変換結果選択手段9がないことが異なっている。即ち、特異点近傍にない場合の実施の形態12と全く同じ動作をする。
この実施の形態13では、構成が簡単となり、特異点近傍を通過しない場合は(フラグの切り替えは実施の形態1、12でも起こらないため)、実施の形態1、12と同じ動作をする。その他の面では、以上で説明した各実施の形態での効果を奏する。
実施の形態14.
この実施の形態14は、先の実施の形態1の加減速手段3の変形例である。実施の形態1とは、加減速手段3で用いるフィルタが1段の移動平均フィルタと1段の1次遅れフィルタから構成され、フィルタの窓長の総和として1段の移動平均フィルタの窓長を用いることが異なっている。
この実施の形態14では、2段目のフィルタを移動平均フィルタではなく1次遅れフィルタとしているため、記憶容量が少なくてすむ長所がある。一方、1次遅れフィルタでは移動平均フィルタのように窓長が正確には定められないため、移動速度修正手段2で算出する最小値が加減速の影響を正確に考慮することができず、関節速度が許容値を超える、もしくは速度を必要以上に落とす必要がある可能性があるという短所があるが、その他の面では、以上で説明した各実施の形態での効果を奏する。
実施の形態15.
図13は、この発明の実施の形態15における指令値生成装置を示すブロック図である。実施の形態15では、先の図4に示す6軸多関節ロボットにおける先端位置指令生成手段14からの先端位置指令に対して各軸位置指令を生成する。
先ず、5軸/6軸切替手段15では、6軸ロボットを動作させるプログラム内に記載されているコマンドに基づいて5軸ロボットとして動作させるか、6軸ロボットとして動作させるかが指定される。先端位置指令生成手段14では、指令生成周期ごとの、6軸多関節ロボットの先端位置指令を生成する。先端位置指令は、加減速区間で加速度が一定となる先端速度台形指令を積分することにより得られている。
逆変換手段18には、5軸/6軸切替手段15から出力される5軸、6軸の指定と、先端位置指令生成手段14で生成された先端位置指令が入力される。5軸が指定されている場合は第4軸の値を常時、所定の値、例えば、0とし、第4軸が固定された5軸ロボットとして逆変換を実施する5軸逆変換手段16が選択され、6軸が指定されている場合は、6軸ロボットのまま逆変換を実施する6軸逆変換手段17が選択され、選択された逆変換手段で逆変換が行われ、各軸の位置指令が算出される。
6軸ロボットから5軸ロボットへ指定が切り替わった場合、即ち、6軸ロボットとして動作中にプログラム内に記載されているコマンドに基づいて5軸ロボットとして動作させることが指定されると、5軸ロボットとして動作させることを指定するコマンドが処理された地点から第4軸の値が0で残りの軸の値はコマンドが処理された地点への動作命令が自動的に挿入される。
この実施の形態15は、6軸ロボットではあるが、5軸ロボット(世の中の大多数の5軸ロボットは6軸ロボットの第4軸の関節変位が、例えば、0に固定されているものに相当する)として動作できる動作に対しては、6軸ロボットであるにもかかわらず5軸ロボットとして動作させることにより、6軸ロボットで最も問題となる第5軸の変位が0である特異点もしくはその近傍を通過する動作においても、先端速度を落とすことなく動作させるものである。5軸ロボットで第5軸の変位が0である特異点を通過できるのは、第4軸の変位が0に固定されているため、第6軸の変位が一意に定まり、5軸ロボットでは特異点にならないためである。
換言すると、この実施の形態15に係る発明は、その適用は上述した6軸ロボットになるメカニカルシステムに限られるものの、特異点もしくはその近傍を通過する動作においてその先端速度を落とすことなく円滑に動作させることを意図したものであり、その意味で、先に説明した実施の形態1等に係る発明と課題を同一とするものである。
以上でロボットに適用した場合について説明したが、各関節の駆動軸を制御することにより、その先端を所定の軌跡に沿って移動させるものであれば、たとえロボットと呼称されていないメカニカルシステムにも、本願発明は同様に適用出来、同等の効果を奏するものである。
この発明の実施の形態1における指令値生成装置を示すブロック図である。 移動速度・移動量演算手段1の動作を説明するためのフローチャートである。 図2に連なるフローチャートである。 6軸多関節ロボットの構成を示す図である。 特異点と一致する場合に、逆変換結果を生成する逆変換結果生成手段の動作を説明するためのフローチャートである。 変換結果選択手段9の動作を説明するためのフローチャートである。 移動速度修正手段3の動作を説明するためのフローチャートである。 この発明の実施の形態4における指令値生成装置を示すブロック図である。 この発明の実施の形態5における逆変換手段C13の動作を説明するためのフローチャートである。 この発明の実施の形態6における逆変換手段C13の動作を説明するためのフローチャートである。 この発明の実施の形態12における指令値生成装置を示すブロック図である。 この発明の実施の形態13における指令値生成装置を示すブロック図である。 この発明の実施の形態15における指令値生成装置を示すブロック図である。
符号の説明
1 移動速度・移動量演算手段、2 移動速度修正手段、3 加減速手段、
4 逆変換手段A、5 移動速度演算手段、6 移動量演算手段、7 逆変換手段B、
8 再逆変換手段、9 変換結果選択手段、10 切替地点記憶手段、
11 フラグ決定手段、12 補正手段、13 逆変換手段C、
14 先端位置指令生成手段、15 5軸/6軸切替手段、16 5軸逆変換手段、
17 6軸逆変換手段、18 逆変換手段。

Claims (14)

  1. 複数の関節を備えたメカニカルシステムの先端を、上記各関節の駆動軸を制御することにより、予め定められた軌跡に沿って移動させるものにおける、上記各関節の駆動軸を制御するための指令値を生成する指令値生成装置であって、
    上記各関節の駆動軸の速度制限を満足するように、上記先端の移動速度およびこの移動速度を積分して得られる上記軌跡に沿った上記先端の移動量を演算する移動速度・移動量演算手段、この移動速度・移動量演算手段における任意の演算時点tで演算された移動速度(t)および移動量(t)に対し、上記演算時点tを含む所定演算時間範囲内または上記移動量(t)を含む所定演算距離範囲内での移動速度の演算結果に上記移動速度(t)より小さい移動速度が存在しない場合は上記移動速度(t)を踏襲し、上記移動速度(t)より小さい移動速度が存在する場合は上記移動速度(t)を当該小さい移動速度に置換した修正移動速度を作成し、この修正移動速度を積分して得られる移動量が上記移動量(t)に達するまで出力する移動速度修正手段、上記各関節の駆動軸の加減速駆動特性を円滑化するため上記移動速度修正手段からの修正移動速度に波形処理として移動平均フィルタ処理を施し先端移動速度指令として出力する加減速手段、およびこの加減速手段からの上記先端移動速度指令を積分して得られる先端移動量指令を実現する上記各関節の変位指令を算出(以下、逆変換と称す)し上記変位指令から各関節の駆動軸を制御するための位置指令値または速度指令値を生成する第1の逆変換手段を備えたことを特徴とする指令値生成装置。
  2. 上記移動速度修正手段において、上記移動速度(t)に替わって上記修正移動速度として採用する上記当該小さい移動速度として、上記所定演算時間範囲内または所定演算距離範囲内での移動速度の演算結果の内の最小値を採用することを特徴とする請求項1に記載の指令値生成装置。
  3. 上記移動速度修正手段において、上記移動速度(t)に替わって上記修正移動速度として採用する上記当該小さい移動速度として、上記所定演算時間範囲内または所定演算距離範囲内での移動速度の演算結果の内の最新極小値を採用することを特徴とする請求項1に記載の指令値生成装置。
  4. 上記加減速手段として移動平均フィルタを使用し、上記所定演算時間範囲を上記移動平均フィルタの窓長の総和に設定したことを特徴とする請求項1ないし3のいずれかに記載の指令値生成装置。
  5. 上記移動速度・移動量演算手段は、上記先端移動速度を演算する移動速度演算手段、上記演算移動速度から上記先端移動量を演算する移動量演算手段、および上記先端移動量から上記各関節変位を演算する第2の逆変換手段を備え、
    上記移動速度演算手段は、上記第2の逆変換手段からの各関節変位から各関節速度を演算し、上記各関節速度と当該各関節で定められた所定の最大許容値との比の最大値を算出し、当該最大値が1より大きい場合は上記先端移動速度を当該最大値で除算した値に修正して出力することを特徴とする請求項1ないし4のいずれかに記載の指令値生成装置。
  6. 上記移動速度・移動量演算手段は、更に、上記第2の逆変換手段での逆変換結果における、上記各関節のいずれかの変位の時間変化量が所定の既定値を越える特異点近傍にあるかどうかの判断を行い、上記特異点の近傍にある場合上記第2の逆変換手段で用いたフラグと当該特異点に関して対になるフラグで再度逆変換を行う再逆変換手段、および上記第2の逆変換手段による逆変換結果を採用した場合の上記各関節変位の最大値と上記再逆変換手段による逆変換結果を採用した場合の上記各関節変位の最大値とを比較し、上記再逆変換手段による逆変換結果を採用した場合の上記各関節変位の最大値の方が小さい場合に上記再逆変換手段による逆変換結果を選択する変換結果選択手段を備えたことを特徴とする請求項5記載の指令値生成装置。
  7. 上記移動速度・移動量演算手段は、更に、上記第2の逆変換手段での逆変換結果における、上記各関節のいずれかの変位の時間変化量が所定の既定値を越える特異点近傍にあるかどうかの判断を行い、上記特異点の近傍にある場合上記第2の逆変換手段で用いたフラグと当該特異点に関して対になるフラグで再度逆変換を行う再逆変換手段、および上記第2の逆変換手段による前回の演算ステップの逆変換結果と今回の演算ステップの逆変換結果との差が所定の規定値以上のとき、上記第2の逆変換手段による逆変換結果と、上記再逆変換手段による逆変換結果と、上記両逆変換結果を重み付けして加算した逆変換結果との3者の逆変換結果のいずれかを選択する変換結果選択手段を備え、
    上記変換結果選択手段は、上記第2の逆変換手段での逆変換結果をtha、上記再逆変換手段での逆変換結果をthb、0以上1以下の定数waを用い、式thc=wa*thb+(1-wa)*thaで算出される重み付けして加算された逆変換結果をthcとしたとき、逆変換結果としてtha、thb、thcをそれぞれ選択した場合の上記各関節変位の最大値maxdtha、maxdthb、maxdthcを算出し、maxdthb<maxdthaが成り立つ場合はthbを逆変換結果として選択し、maxdthb≧maxdtha、かつmaxdthc<maxdthaが成り立つ場合はthcを逆変換結果として選択するようにしたことを特徴とする請求項5記載の指令値生成装置。
  8. 上記再逆変換手段は、上記第2の逆変換手段による逆変換結果による上記各関節変位が+側リミットからある定数を減算した値以上、もしくは、−側リミットに同じ定数を加算した値以下となる範囲にある所定のリミット近傍にあるときも逆変換を行うようにし、
    上記変換結果選択手段は、上記第2の逆変換手段による逆変換結果が上記各関節変位の所定のリミット近傍以内にあり、上記再逆変換手段による逆変換結果が上記各関節変位の所定のリミット近傍以内にないとき、上記再逆変換手段による逆変換結果を選択するようにしたことを特徴とする請求項6または7に記載の指令値生成装置。
  9. 上記変換結果選択手段の選択結果に伴い上記フラグが切り替わった地点とその直前地点である上記変換結果選択手段でのフラグ切替の1つ前の演算ステップでの地点との両地点を記憶する切替地点記憶手段、この切替地点記憶手段に記憶された情報を入力し上記第1の逆変換手段での逆変換に使用するフラグを決定するフラグ決定手段、および上記加減速手段の出力から求めた先端位置が上記両地点の間にある場合、上記フラグ決定手段から入力した、フラグ切替直前の地点の移動量lfb、逆変換結果thfbとフラグ切替地点における移動量lf、逆変換結果thfを入力し、更に、上記加減速手段で算出された指令移動量lnowを用いて表される下式に基づき上記第1の逆変換手段からの各関節変位を補正する補正手段を備えたことを特徴とする請求項6ないし8のいずれかに記載の指令値生成装置。
    (thf-thfb)*(lnow-lfb)/(lf-lfb)+thfb
  10. 上記変換結果選択手段の選択結果に伴い上記フラグが切り替わった地点とその直前地点である上記変換結果選択手段でのフラグ切替の1つ前の演算ステップでの地点との両地点を記憶する切替地点記憶手段、およびこの切替地点記憶手段に記憶された情報を入力し上記第1の逆変換手段での逆変換に使用するフラグを決定するフラグ決定手段を備え、
    上記第1の逆変換手段は、上記加減速手段の出力から求めた先端位置が、上記直前地点に達するまでは切替前のフラグで逆変換を行い、上記切替地点を通過後は切替後のフラグで逆変換を行い、上記両地点間では、上記先端位置が定められた軌跡を維持するように、当該切替で逆変換結果である関節変位が変化する関節の関節変位に基づき他の関節の関節変位を求めるようにしたことを特徴とする請求項6ないし8のいずれかに記載の指令値生成装置。
  11. 上記変換結果選択手段の選択結果に伴い上記フラグが切り替わった地点とその直前地点である上記変換結果選択手段でのフラグ切替の1つ前の演算ステップでの地点との両地点を記憶する切替地点記憶手段、およびこの切替地点記憶手段に記憶された情報を入力し上記第1の逆変換手段での逆変換に使用するフラグを決定するフラグ決定手段を備え、
    上記第1の逆変換手段は、上記加減速手段の出力から求めた先端位置が、上記直前地点に達するまでは切替前のフラグで逆変換を行い、上記切替地点を通過後は切替後のフラグで逆変換を行い、上記両地点間では、上記フラグ決定手段から入力した上記両地点での逆変換結果である各関節変位と先端位置に基づき各関節変位を一旦算出し、当該一旦算出した関節変位からその関節変位に対応するフラグを求め、上記先端位置から当該フラグを使用して逆変換を行い各関節変位を求めるようにしたことを特徴とする請求項6ないし8のいずれかに記載の指令値生成装置。
  12. 5または6関節のメカニカルシステムにおいて、上記変換結果選択手段の選択結果に伴い上記フラグが切り替わった地点とその直前地点である上記変換結果選択手段でのフラグ切替の1つ前の演算ステップでの地点との両地点を記憶する切替地点記憶手段、およびこの切替地点記憶手段に記憶された情報を入力し上記第1の逆変換手段での逆変換に使用するフラグを決定するフラグ決定手段を備え、
    上記第1の逆変換手段は、上記加減速手段の出力から求めた先端位置が、上記直前地点に達するまでは切替前のフラグで逆変換を行い、上記切替地点を通過後は切替後のフラグで逆変換を行い、上記両地点間では、上記フラグ決定手段から入力した上記両地点での逆変換結果である各関節変位と先端位置に基づき各関節変位を一旦算出し、第1、2、3関節以外の関節変位は当該一旦算出した値に決定し、当該決定した第1、2、3関節以外の関節変位と上記先端位置から第3関節の先端位置を算出し、当該一旦算出した関節変位からその関節変位に対応するフラグを求め、上記第3関節の先端位置から当該フラグを使用して逆変換を行い上記第1、2、3関節の各関節変位を求めるようにしたことを特徴とする請求項6ないし8のいずれかに記載の指令値生成装置。
  13. 上記移動速度・移動量演算手段は、動作開始からの所定の期間内のみ、移動速度および上記各関節で定められた最大許容値の速度を本来の値より大きく設定して演算するようにしたことを特徴とする請求項1ないし12のいずれかに記載の指令値生成装置。
  14. 上記逆変換手段による逆変換結果が一意に定まらない関節が生じる特異点にあるとき、前後の演算ステップにおける上記逆変換手段による逆変換結果に基づき逆変換結果を定める逆変換結果生成手段を備え、
    上記逆変換結果生成手段は、前回および前々回の演算ステップの逆変換結果から前回移動量を算出し、前回の演算ステップの逆変換結果に上記前回移動量を加算することにより当該一意に定まらない関節の逆変換結果を一旦求め、この一旦求めた逆変換結果を使用して算出した上記先端の位置姿勢と逆変換前における上記先端の位置姿勢との差に基づき上記一旦求めた逆変換結果を補正した値を当該一意に定まらない関節の逆変換結果として出力することを特徴とする請求項1ないし13のいずれかに記載の指令値生成装置。
JP2004307639A 2004-10-22 2004-10-22 指令値生成装置 Expired - Fee Related JP4244339B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004307639A JP4244339B2 (ja) 2004-10-22 2004-10-22 指令値生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004307639A JP4244339B2 (ja) 2004-10-22 2004-10-22 指令値生成装置

Publications (2)

Publication Number Publication Date
JP2006116658A JP2006116658A (ja) 2006-05-11
JP4244339B2 true JP4244339B2 (ja) 2009-03-25

Family

ID=36535019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004307639A Expired - Fee Related JP4244339B2 (ja) 2004-10-22 2004-10-22 指令値生成装置

Country Status (1)

Country Link
JP (1) JP4244339B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009113172A (ja) * 2007-11-08 2009-05-28 Mitsubishi Electric Corp 指令値生成装置
JP5447048B2 (ja) * 2010-03-18 2014-03-19 株式会社デンソーウェーブ ロボットの制御装置及びロボットの位置修正制御方法
CN111093912B (zh) 2017-09-08 2023-02-17 Ntn株式会社 采用平行连杆机构的作业装置
JP6466536B1 (ja) * 2017-09-08 2019-02-06 Ntn株式会社 パラレルリンク機構を用いた作業装置

Also Published As

Publication number Publication date
JP2006116658A (ja) 2006-05-11

Similar Documents

Publication Publication Date Title
US20200004228A1 (en) A feedrate scheduling method for five-axis dual-spline curve interpolation
JP3830475B2 (ja) 制御装置
JP6717768B2 (ja) 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法
JP4494247B2 (ja) ロボットの制御装置および制御方法
JP5009010B2 (ja) 数値制御装置
JP6450732B2 (ja) 数値制御装置
JP6585666B2 (ja) 速度一定が要求されるアプリケーションにおいて学習制御を行うロボット及びその制御方法
JP2001296912A (ja) モータの速度・加速度決定方法、加減速生成方法、加減速制御方法、加減速制御装置及びモータ制御装置
JP2000250614A (ja) バックラッシ補正装置および数値制御システム
JP6703038B2 (ja) 数値制御装置
JP2006215807A (ja) ロボット制御装置および制御方法
JP2013030101A (ja) 数値制御装置
JP2016055404A (ja) 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体
JP4244339B2 (ja) 指令値生成装置
US20200257252A1 (en) Machine learning device, control device, and machine learning search range setting method
JP3466111B2 (ja) 数値制御装置
JP2009113172A (ja) 指令値生成装置
JP6057284B2 (ja) 多関節ロボット及び半導体ウェハ搬送装置
US6684131B2 (en) Device and method for controlling robot
JP2004348250A (ja) ロボット制御装置
US10684594B2 (en) Machine learning device, servo motor controller, servo motor control system, and machine learning method
JP5461980B2 (ja) ワーク設置誤差補正手段を有する5軸加工機を制御する数値制御装置
JP2005044230A (ja) ロボット制御装置
JP3805476B2 (ja) モータ制御装置
JP2016133988A (ja) 数値制御装置と制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080806

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: 20081224

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: 20081226

R150 Certificate of patent or registration of utility model

Ref document number: 4244339

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: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

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

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

LAPS Cancellation because of no payment of annual fees