JP2004252814A - 多関節型ロボットの速度制御法および制御装置 - Google Patents
多関節型ロボットの速度制御法および制御装置 Download PDFInfo
- Publication number
- JP2004252814A JP2004252814A JP2003043686A JP2003043686A JP2004252814A JP 2004252814 A JP2004252814 A JP 2004252814A JP 2003043686 A JP2003043686 A JP 2003043686A JP 2003043686 A JP2003043686 A JP 2003043686A JP 2004252814 A JP2004252814 A JP 2004252814A
- Authority
- JP
- Japan
- Prior art keywords
- interpolation
- speed
- joint
- point
- section
- 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.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
【解決手段】あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に移り変わるか、直線補間動作から関節補間動作に移り変わるかを判別し、その2つの移動区間の繋ぎ点もしくはその近傍を通過させる際に速度の結合処理が可能かどうかを判定し(速度結合処理可否判定部2)、速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせるような挙動をさせるための補間点を関節変数により決定する(速度結合演算部3)ようにしている。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は多関節型ロボットの速度制御法および制御装置に係り、詳しくは、教示点から次の教示点までの区間に幾つかの補間点を与え、移動区間ごとに予め計算されている個々の速度関数に基づき関節補間動作や直線補間動作によって移動させようとするとき、あい前後する移動区間の補間種別が異なる場合でも、前区間の減速域と後区間の加速域における速度の結合処理が可能となるようにした制御方法および装置に関するものである。
【0002】
【従来の技術】
例えば6本のアームをそれぞれ連結する軸部に各1つのモータが装着され、ロボット先端に取りつけられたトーチなどのツールもしくは溶接が施されるワークピース(これらエンドエフェクタの中心を以下TCPという)を動かすなどする多関節型ロボットは、一般にティーチングプレイバック方式で動作が再現され、予め教示したとおりの経路をロボットがたどるようになっている。
【0003】
3点以上の教示点からなる経路で多関節型ロボットを動作させる場合、前後2つの教示点で形成される1つの移動区間においては、その途中に幾つもの補間点を与えて指定した移動速度を満たす例えば台形波パターンに従う速度でもって移動される。次の移動区間においてもそれにふさわしい台形状に変化する速度により移動され、これを繰り返してツール等に目標の位置と姿勢が与えられ、ワークピースの何箇所かに溶接等の作業を施すといったことができる。
【0004】
ところで、補間動作には通常直線補間、円弧補間、関節補間の3種がある。直線補間はCP制御 continuous path controlと言われ、教示された2点間を最短コースでたどり、すなわち予め記録した速度で目標点に直進させる移動方法である。円弧補間は意図的に2点間の直路から外れた位置に参照ポイントを与え、3点を通る一義的な円弧に沿って予め記録された速度で教示点へ向かわせる方法である。この円弧補間は直線補間と同じ考え方の速度関数を使用するので、直線補間と実質的に変わるところがない。
【0005】
関節補間はPTP制御 pose−to−pose control と言われ、移動経路の直線性や円弧性は問わず、目標の関節角度に向かって各軸が原則的に同時に動き出し、同時に目標点に到達する移動方法である。ロボットの性能は関節ごとにどのような容量のモータが搭載されているか、すなわちどれだけ重いアームを動かすことができるかで決まる。PTP制御によれば各関節の100%の動作性能を発揮する制御が容易であり、高速動作が必要な移動区間で多用される。
【0006】
これによれば教示点から次の教示点へ最短時間で移すことができ、ロボット性能や稼働中の応答性の向上に貢献する。ただし、関節ごとの速度制御となるために、TCPの軌道や速度はオペレータが簡単に予測できるものでない。ロボットはこのPTP制御に限ることなく、その移動の都度その間の動作や目的にふさわしい補間方式が採択される。
【0007】
例えば図21の(a)に示すように、TCP(図示せず)が退避位置P1 からワークピース51に接近して作業態勢に入るための準備位置P3 (第1アプローチ点P2 を経由した第2アプローチ点)まで移動する間は関節補間動作により、作業準備位置P3 から最初の作業点P4 へおよび次の作業点P5 、それから少し離れた作業解放位置P6 (第1リターン点)まで移動する間は直線補間動作により、作業解放位置P6 から退避位置P7 (第2リターン点=P1 )に戻るまでは関節補間動作により移動させるようにしておくと、ロボットを機敏に動作させかつ作業部位では位置姿勢を高い精度で与えて停止させたり所望作業速度を与えたりすることができる。
【0008】
補間動作は簡単に説明すると、図21の(a)において点P2 からP3 の移動区間と点P3 からP4 の移動区間のみに幾つかの補間点を付したが、その補間点を以下の要領で定め、それをたどる動作をさせることである。図においては前者の移動区間で関節補間が適用されているが、予め決められた補間周期ごとにその区間に与えられた速度関数に従い補間点が演算される。i番目の補間は点P2 から出発して補間周期×i=JTi の時間が経過したときの補間点で与えられ、(i+1)番目の補間は点P2 から見て補間周期×(i+1)=JTi+1 が経過したときの補間点で与えられる。なお、i=4とした場合について、後述する図23の(a)の左側の台形波パターン(速度関数J1v2 )上に補間点をJθ124 としてその関節変数を示した。影の施された面積が教示点P2 (関節変数はJ1s2 )からの移動量J1r24であり、時間JT4 経過時の補間点の関節変数Jθ124 はJ1s2 にJ1r24を加えて与えられる。
【0009】
図21の(a)中の点P3 からP4 の移動区間は直線補間であるが、同様の考え方で点P3 から見たi番目の補間は時間LTi 経過したときの補間点で、(i+1)番目のそれは時間LTi+1 が経過したときの補間点で与えられる。いずれの補間法においてもその移動区間における補間開始点すなわちその移動区間における前側の教示点を基点にして補間点を演算し、その点を実現するようにサーボモータを動かせてTCPを移行させるようにしている。ちなみに、補間周期は例えば5ないし20msec程度で与えられる。
【0010】
ところで、各移動区間における補間動作は、図21の(b)に示すように、補間種別に関係なく加速・定速・減速からなる台形波パターンの速度関数で与えられるのが一般的である。例えばどの教示点においても一旦停止して作業させようとする場合には、徐々に速度を上げてまた徐々に速度を下げるようにしておけばTCPの停止位置精度は高くなり、ロボットのアームやTCPに無用の振動を及ぼすことも少なくなる。
【0011】
しかし、上記した点のうち作業点では高い精度の停止が要求されるが、作業準備位置や作業解放位置は単にその位置もしくはその近傍を通過させるだけでよい場合が多い。作業準備位置近傍での厳格な減速・停止・加速は無用であるだけでなく、この部分での緩慢であったり停滞気味の挙動は幾度となく繰り返されるロボットの反復動作の時間を長引かせることになる。もちろん、作業時間節約のために急減速や急加速させるとすれば、それは振動を助長させるもとになり好ましいことではない。
【0012】
そこで、CP動作とCP動作とをポーズ精度 pose accuracyの高く要求されていない教示点を挟んで行わせる場合、前の移動区間の減速域を後の移動区間の加速域と重ね合わせて、両区間の繋ぎ点もしくはその近傍を前の移動区間の減速中の速度と後の移動区間の加速中の速度との和で通過させれば、次の教示点に到達させる時間を縮めることができる。
【0013】
このような速度の重ね処理は前の移動区間の速度関数と後の移動区間のそれとが同種である場合、その速度関数自体を重ね合わせることによってある意味では容易に達成される。CP動作とCP動作の場合には前の並進速度関数と後の並進速度関数とを、前の回転速度関数と後の回転速度関数とを、それぞれ減速域と加速域でそれぞれの全部もしくは一部を重ねればよい。
【0014】
PTP動作は、6軸ロボットであれば図22に示すように関節(軸)ごとに速度関数が与えられる。この場合でもPTP動作同士の速度の重ね処理は、第1関節の前の速度関数J1v2 の減速域と後の速度関数J1v3 の加速域とを、第2関節の前の速度関数J2v2 と後の速度関数J2v3 とをといったように関節ごとを対象にして行われる。従って、6自由度のマニピュレータであれば、6つの組合せ全部で重ねられることになる。
【0015】
図23は第1関節のみを対象として表したものであるが、非重ね状態の(a)に対して、速度重ね処理における重ね度合いとしては(b)から(e)までのような幾つかが考えられる。ちなみに、(c)は加速域を減速域に含ませた場合、(d)は減速域を後の移動区間の定速域まで侵入させて重ねた場合、(e)は両移動区間を定速域まで侵入させた場合である。
【0016】
各速度関数を表す線が横軸とで囲む面積はTCPの移動量を表すが、(b)から(e)において途中でJ1v2−3 をたどらせたとしても、その移動量は(a)の場合と同じになることは簡単な幾何学で理解できるところである(図21の(c)の右部分を例にすると、□ACED=△ADC+△CDE=△ABC+△CDEである)。(e)のように重ね量を多くすれば、移動量が同じであるにもかかわらず、点P4 への到達時間は時間Tse(=JT22+JT16−JT30)も早められることが分かる。
【0017】
しかし、(d)や(e)のように減速域や加速域を越えてまで重ねることは妥当でない。速度関数J1v2 によって与えられている定速度が第1関節のサーボモータの例えば許容最高速度である場合には、(e)中に表したVa分大きいJ1v2−3 なる速度をもはや与えることができなくなるからである。これは、(d)の場合に、後の移動区間の定速度が前の移動区間のそれより大きくかつ第1関節のサーボモータの許容最高速度もしくはそれに近い速度で与えられているようなときにも言えることであり、これらは速度の重ね処理に不向きであることに注意すべきである。
【0018】
ところで、速度の重ね処理をするにおいて無視することができないのは、上でも少し触れたポーズ精度である。図24の(a)は重ね処理をしていない場合であるが、この場合には点P3 で停止させるので、点P2 ,P3 ,P4 が直線的に並んでいても「く字状」に折れて並んでいても、同じ距離を同じ時間を掛けて移動することになる。もちろんP3 での停止位置を忠実に再現させる意味でもポーズ精度は高く与えられる。
【0019】
一方、速度重ね処理をする場合、図23の(c)の例を適用すると、図24の(b)のようになる。速度を重ねるということは点P3 で停止させないことだけでなく、点P3 を厳密には通過させなくてもよいことを意味する。図24の(a)は速度を重ねる前の状態を表し、減速域には補間点が8つあって減速時間Tdeは補間周期tc ×8、加速域は6つあって加速時間Tacはtc ×6となっている例で表されている。図24の(b)は補間点が6つある加速域全部を、補間点8つある減速域の後半の6つの部分の領域に重ねた形態となっている。
【0020】
この場合、前後の移動区間はいずれも関節補間であるので、その速度関数J1−6v2 とJ1−6v3 とを数学的に重ねることができる。重ねる前の図24の(a)では、J1−6v2 とJ1−6v3 とが速度0を挟んで繋がった速度関数となって補間数22個(JT22)と16個(JT16)からなる2つの移動区間を纏めた点P2 ・P4 間に適用されていると見るなら、重ねた場合には、図24の(b)のように、J1−6v2 とJ1−6v2−3 とJ1−6v3 とが繋がった速度関数が補間数32個分の移動区間域に割り当てられていると見ることができる。なお、添え字のうちの一部の1−6 は、6軸分を一括表記したことを意味している。
【0021】
その結果、この(b)での重ね部の移動時間は、図24の(a)に影をつけて表した時間TR12 の半分であるTR6となる。一方、速度重ね処理は前の移動区間の終り部分の6補間分と後の移動区間の始め部分の6補間分であって移動距離は(a)も(b)も変わるものでない。とすると、点P2 ,P3 ,P4 が直線的に並んでいる場合、P3 のポーズ精度が低くてもTCPはP3 を通過することになる。
【0022】
一方、P3 で「く字状」に折れている経路の場合、(b)の軌道では図から明らかなように曲線を描かざるを得なく、点P3 をかすめた点P3aを通過することになる。移動距離が同じであるにもかかわらずその軌道が内のり軌跡で描かれているのは、6軸ロボットの場合ならその全軸の動きを考慮したものであるからである。すなわち、P3 で「く字状」に折れるということは6つのうちの幾つかの軸が負の速度を持っているはずであり、それゆえポーズ精度内で点P3 からΔPずれた点P3aが通過点となる。
【0023】
この曲線軌跡は(b)の右下部に表したように重ね処理部の補間数が少なくなればなるほど小さくなることは容易に理解でき、通過点P3aは教示点P3 に近接する。しかし、その分、重ねは速度の低いところでしか処理できないことになるから通過速度も低いものにとどまる。これは常識で想定される人間や車の動作と何ら変わりがない。逆に、重ね処理部の補間数が多くなれば軌跡の孤は大きくなり、通過点は教示点P3 からますます離反する。その分、重ねは速度の高いところで可能となり、ロボットは機敏に動く。
【0024】
ところで、特公平1ー27443号公報には、2つの移動区間がV字状をなす経路を形成している場合に、折り返し点での速度が低下しないようにした例が記載されている。これは、正しく上記した図24の(b)で説明したものであり、速度重ね処理によって簡単に言えば結果的には前後2つの速度関数を1つの速度関数に作り変えたかのように見ることができる。この考え方は当該公報の発行により公知になっているが、あい前後する2つの移動区間における補間種別は直線補間動作であり、それ以上の説明は見当たらない。
【0025】
【特許文献1】
特公平1ー27443号公報
【0026】
【発明が解決しようとする課題】
しかし、図21の(a)で示した第1アプローチ点P2 から第2アプローチ点P3 までは関節補間動作で、第2アプローチ点P3 から最初の作業点P4 へ向かうまでが直線補間動作である場合、前者の各関節の速度関数と後者の並進速度関数や回転速度関数とは異質なものであり、重ねることができない。また前者は軸(関節)の数だけ速度関数が存在するが、後者は並進と回転の2つの動作しかなく、数のうえからも合わせようがない。
【0027】
関節補間は各軸の動作量から求められる移動量だけを扱うものであり、直線補間は同次変換行列でTCPの並進と回転の量だけを扱う。従って、演算対象が全く異なる。前者は各軸の関節の運動であり、後者はTCPの運動であるからであるが、いずれにしても、移動区間の前後で補間種別が異なる場合には速度関数を重ねるという概念の導入は不可能であり、繋ぎ点前後で減速・停止・加速の動作は依然として余儀なくされる。
【0028】
図21の例で言えば、点P2 から点P3 へはTCPが一気に進出してくるが、点P3 では一旦停止してから点P4 に向かうことになり、TCPの滑らかな移動は期待し得ない。また、点P5 から点P6 へ移動すると、そこでもやはり一旦停止してから点P7 に向かう。演算上の事情を知らない人の目には、TCPがワークピース51の前後各1箇所でぎこちない動きをしているように映る。
【0029】
一旦静止するということは無用な力(慣性力)をアームに及ぼすことになるから動き続けさせた方が、しかもそれが滑らかなものにできれば、ロボットに無用な衝撃を与えなく、振動発生の原因排除もしやすくなる。これが可能になれば振動低減の意味からも性能向上の点からも極めて有用なロボットとなるわけで、このような滑らかで迅速な動作をすることができる優れたロボットの出現が望まれる。
【0030】
本発明は上記の問題に鑑みなされたもので、その目的は、移動区間ごとに記録された補間種別が異なる経路の継ぎ目(教示点)で、TCP速度に非連続性が生じないようにすること、速度の連続性を高めると共に速度性能を上げて動作の機敏化、ロボットアームへの加振抑制、作業中のぶれ防止等を実現し、それによって作業能率の向上を目指すことができる多関節型ロボットの速度制御法および制御装置を提供することである。
【0031】
【課題を解決するための手段】
本発明は、教示点から次の教示点までの区間に幾つかの補間点を与え、移動区間ごとに演算された個々の速度関数に従って関節補間動作や直線補間動作により移動させるようにした多関節型ロボットの速度制御装置に適用される。その特徴とするところは、図1を参照して、あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に移り変わるか、直線補間動作から関節補間動作に移り変わるかを判別すると共に、その2つの移動区間の繋ぎ点もしくはその近傍を通過させる際に速度の結合処理が可能かどうかを判定する速度結合処理可否判定部2と、その速度結合処理可否判定部2により速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせたように挙動させるための補間点を演算する速度結合演算部3とを具備したことである。
【0032】
制御方法の発明は、あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に移り変わるか、直線補間動作から関節補間動作に移り変わるかを判別し、その2つの移動区間の繋ぎ点もしくはその近傍を通過させる際に速度の結合処理が可能かどうかを判定し、速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせるような挙動をさせるべく関節変数を決定するようにしたことである。
【0033】
異種補間動作が関節補間から直線補間に移る場合の速度結合は、現移動区間における関節補間動作の現時刻に達成されるロボット全軸の関節変数Jθ1ji 〜Jθ6ji を算出し、これを順演算して得られるロボット基準座標系から見たTCPの同次変換行列を直線補間動作する次の移動区間の始点と見たてる。その直線補間動作の現時刻で達成される並進速度関数Lvpj+1 と回転速度関数Lvfj+1 から算出した並進運動量Lp(j+1)iと回転運動量Lf(j+1)iにより、始点とされた同次変換行列JX(j+1) から見た同次変換行列LA(j+1)iを算出し、始点を表す同次変換行列JX(j+1) に並進運動量Lp(j+1)iと回転運動量Lf(j+1)iとから算出された同次変換行列LA(j+1)iを乗じて、1補間周期の間に補間動作させたときの到達点のロボット基準座標系から見た同次変換行列LX(j+1)iを算出する。これを逆演算して関節変数Lθ1(j+1)i 〜Lθ6(j+1)i を求め、これによって関節補間による補間量に直線補間による補間量を加えた移動量を得ることにより処理するようにしたことである。
【0034】
異種補間動作が直線補間から関節補間に移る場合の速度結合は、現移動区間における直線補間動作の現時刻に到達するTCPのロボット基準座標系から見た同次変換行列LXjiを算出し、これを逆演算して得られる関節変数を関節補間動作する次の移動区間の始点と見たてる。その関節補間動作の全軸の速度関数J1vj+1 〜J6vj+1 をもとに現時刻で補間動作を実行したときの各軸の補間移動量J1r(j+1)i〜J6r(j+1)iを算出し、始点を表す全軸の関節変数Lθ1(j+1)i 〜Lθ6(j+1)i に補間動作を実行したときの各軸の補間移動量J1r(j+1)i〜J6r(j+1)iを加算して、1補間周期の間に補間動作させたときのロボットの全軸の関節変数Jθ1(j+1)i 〜Jθ6(j+1)i を算出する。これによって直線補間による補間量に関節補間による補間量を加えた移動量を得ることにより処理される。
【0035】
速度の結合処理の可否は、現移動区間において減速状態にあり、かつその移動区間における残存減速時間が次の移動区間の加速時間以下となっているかどうかで判定するようにしたことである。
【0036】
異種補間動作における速度の結合処理が適用される速度関数は、現移動区間の減速時間と次の移動区間の加速時間とを一致させておくとよい。次の移動区間の加速時間が現移動区間の減速時間よりも短い場合には、次の移動区間の加速時間を減速時間に一致させ、現移動区間の減速時間が次の移動区間の加速時間よりも短い場合は、現移動区間の減速時間を加速時間に一致させればよい。
【0037】
【発明の実施の形態】
以下に、本発明に係る多関節型ロボットの速度制御法および制御装置を、図面に基づいて詳細に説明する。図1は速度制御装置1を含む再生動作ならびに速度制御のための構成を示し、図2は制御の概略を表したフローチャートである。これは、教示点から次の教示点までの区間に幾つかの補間点を与え、移動区間ごとに演算された個々の速度関数に従って関節補間動作または直線補間動作により移動させる際に、異なる補間種別の繋ぎ部分で速度の結合処理を可能にしたものである。
【0038】
図1において装置の主たるところを概略的に述べる。産業用ロボットの教示されたプログラムの再生動作中に、異なる補間種別で教示された動作の繋ぎ目で、TCPの動きを止めることなく制御できるようにするため、速度結合処理への移行が可能であるかどうかを判定する手段が備えられる。これは速度結合処理可否判定部2として表され、現在解析中の移動区間における補間動作が減速域で行われており、かつ現解析中の補間動作の残り時間が次の解析対象区間の補間動作の加速時間以下であることを確認する機能を有する。
【0039】
すなわち、あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に、または直線補間動作から関節補間動作に移り変わるかどうかを判別すると共に、その2つの移動区間の繋ぎ点を通過させる際に速度の結合処理が可能かどうかを判定するようになっている。そして、この速度結合処理可否判定部2により速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせたように挙動させることができるようにするための速度結合演算部3が設けられる。
【0040】
この速度結合演算部3を含む軌道解析部4は、速度結合処理可否判定部2からの速度の結合処理が可能であるとの信号を受けると、補間動作演算部5における今までの補間種別による補間のための演算に加えて、速度結合演算部3において次の移動区間のための異なる補間種別を絡めた補間演算も同時に実行する。
【0041】
例えば、関節補間動作から直線補間動作に移行する際の速度結合処理においては、現軌道での関節補間中の現時刻における関節補間点を求め、次の軌道の直線補間を開始する時点の同時変換行列には、今求められた関節補間点を順キネマティクスされたものを使用し、重ね合わせることができない速度関数を直接突き合わせることなく、TCPの移動量の積み重ねにより速度の結合を実現する。
【0042】
一方、直線補間動作から関節補間動作に移行するときの速度結合処理においては、現軌道での直線補間中の現時刻において到達したTCPの同次変換行列を求め、次の軌道の関節補間を開始する時点の関節変数には、今求められた同次変換行列を逆キネマティクスしたものを使用し、関節変数の積み重ねにより速度の結合を実現する。これもまた、速度関数を重ね合わせるものではなく、TCPの移動量の積み重ねにより速度の結合を果たす。いずれの場合も、異種補間動作間の速度を重ね合わせたように挙動させるための補間点を演算するという制御をするようになっている。
【0043】
ちなみに、一般的な産業用ロボットの制御装置はティーチングプレイバック方式であり、オペレータはティーチペンダントを使用して、所望する作業をロボットコントローラに教示作業プログラムとして記録し、またオペレータからの起動指示信号を受けて、記録済みの教示作業プログラムが再生動作されるようになっている。
【0044】
ロボットコントローラは、教示作業プログラムを記録するためのハードディスク、操作者が教示作業プログラムを教示するためのティーチペンダント、オペレータが起動指示信号を発信するための操作ボックス、ロボットの手動運転や再生運転を制御するロボット制御プログラム、ロボット制御プログラムが格納されているROM、ロボット制御プログラムが実行されるCPU、ロボット制御プログラム実行中に計算の途中経過を一時的に格納するためのRAMなどから構成される。ロボットの各関節最高速度やロボットアームの長さ、補間周期といった諸元もロボットコントローラ内のROMに格納される。
【0045】
ここで、ロボット再生動作制御を簡単に触れる。図2に示すように、ハードディスクから読み出された教示作業プログラムよりロボットの補間動作命令が取り出され、補間種別と動作速度ならびに目標の位置を表すためのロボット全軸の関節角度が、先入れ・先出し(FIFO)処理式の動作命令バッファに格納される(ステップ1、以下S1などと記す)。動作命令バッファから動作コマンドを取り出した軌道生成部6(図1を参照)は、ロボットの動作コマンドのパラメータとして格納されている関節目標点、動作速度および補間種別、さらには必要に応じて現在関節角度をも考慮し、それらから補間開始点の同時変換行列や各移動区間における速度関数を生成し、前記同様FIFO形式の軌道バッファ7に格納する(S2)。
【0046】
本発明は、産業用ロボットの教示作業プログラム再生動作中の速度を、異なる補間種別間であっても途切らせることなく滑らかに変化させること、すなわち教示点の前後で補間種別が違う場合でもTCP速度に非連続性が発生しないようにするものである。これはロボットの再生動作制御の一機能として実行されるが、以下には特に関連するところにとどめ、すでに知られた再生動作の詳しいアルゴリズムの説明は省く。
【0047】
軌道解析部4は、軌道バッファ7から軌道データを取り出し、これから補間周期(例えば5msec)ごとのサーボドライバの目標関節値となる関節変数を生成する。すなわち、本発明による異種補間動作の速度結合処理がここで実行される(S4〜S10)。なお、サーボ出力部8は補間周期ごとに発せられるトリガ信号によって起動され、サーボドライバ91 ,92 ,・・・,96 に対して一定周期で指令値の更新を実行し、サーボモータ101 ,102 ,・・・,〜106 を駆動して各軸を動かし、アームを介してTCPを変位させる。
【0048】
もう少し軌道解析部4を詳しく述べる。図1に示すように、これは前記した速度結合処理可否判定部2,速度結合演算部3のほかに、補間種別判定部11や関節補間動作演算部5A、直線補間動作演算部5Bを備える。そして、速度結合演算部3は、関節補間から直線補間への速度結合演算部3Aと、直線補間から関節補間への速度結合演算部3Bを有する。速度結合演算部3での演算結果は関節補間点バッファ12に格納され、サーボ出力部8からの取り出し指令を受けてサーボドライバ91 ,92 ,・・・,96 に送り出されるようになっている。
【0049】
上記した関節補間から直線補間への速度結合演算部3Aは、速度結合処理可否判定部2で現在の移動区間において補間動作が減速域に入っており、かつその移動区間における残存減速時間が次の移動区間の加速時間以下となっていると判定されたとき、速度の結合処理を実行する。
【0050】
速度結合処理可否判定部2が速度結合処理可能判定を出すまでは、関節補間動作演算部5Aが補間のための関節変数を算出し、それを関節補間点バッファ12へ出力する。しかし、速度結合処理可否判定部2が速度結合処理可能判定を出せば、速度結合演算部3Aは関節補間動作演算部5Aで得た関節変数を取り入れると共に直線補間動作演算部5Bからも次の移動区間のための軌道データを取り込む。現移動区間での関節補間中の現時刻における関節補間点を求め、次の移動区間の直線補間を開始する時点の同時変換行列にはその関節補間点を順キネマティクスして求めたものを使用し、結果として得られる関節変数を関節補間点バッファ12へ送り出す。
【0051】
フローチャートを参照しながら後で詳しく述べるが、以下の処理がその根幹をなす。まず、現移動区間における関節補間動作の現時刻に達成されるロボット全軸の関節変数Jθ1ji 〜Jθ6ji が算出される。これを順演算して得られるロボット基準座標系から見たTCPの同次変換行列を直線補間動作する次の移動区間の始点と見たてることにして、その直線補間動作の現時刻で達成される並進速度関数Lvpj+1 と回転速度関数Lvfj+1 から算出した並進運動量Lp(j+1)iと回転運動量Lf(j+1)iにより、始点とされた同次変換行列JX(j+1) から見た同次変換行列LA(j+1)iが算出される。始点を表す同次変換行列JX(j+1) に並進運動量Lp(j+1)iと回転運動量Lf(j+1)iとから算出された同次変換行列LA(j+1)iを乗じて、1補間周期の間に補間動作させたときの到達点のロボット基準座標系から見た同次変換行列LX(j+1)iが算出されれば、これを逆演算して関節変数Lθ1(j+1)i 〜Lθ6(j+1)i を求める。これによって関節補間による補間量に直線補間による補間量を加えた移動量を得ることにより、速度結合処理が行われることになる。
【0052】
上記した直線補間から関節補間への速度結合演算部3Bも、速度結合処理可否判定部2で現在の移動区間において減速状態にあり、かつその移動区間における残存減速時間が次の移動区間の加速時間以下となっていると判定されると、速度の結合処理を実行する。
【0053】
速度結合処理可否判定部2が速度結合処理可能判定を出すまでは、直線補間動作演算部5Bが補間のための関節変数を算出し、それを関節補間点バッファ12に出力する。しかし、速度結合処理可否判定部2が速度結合処理可能判定を出せば、速度結合演算部3Bは直線補間動作演算部5Bで得た関節変数を取り入れると共に関節補間動作演算部5Aからも次の移動区間のための軌道データを取り込む。現移動区間での直線補間中の現時刻において到達したTCPの同次変換行列を求め、次の移動区間の関節補間を開始する時点の関節変数にはその同次変換行列を逆キネマティクスして求めたものを使用し、結果として得られる関節変数を関節補間点バッファ12へ送り出す。
【0054】
この場合の処理は、以下の点が主たるところである。まず、現移動区間における直線補間動作の現時刻に到達するTCPのロボット基準座標系から見た同次変換行列LXjiが算出される。これを逆演算して得られる関節変数を関節補間動作する次の移動区間の始点と見たて、その関節補間動作の全軸の速度関数J1vj+1 〜J6vj+1 をもとに現時刻で補間動作を実行したときの各軸の補間移動量J1r(j+1)i〜J6r(j+1)iが算出される。始点を表す全軸の関節変数Lθ1(j+1)i 〜Lθ6(j+1)i に補間動作を実行したときの各軸の補間移動量J1r(j+1)i〜J6r(j+1)iを加算して、1補間周期の間に補間動作させたときのロボットの全軸の関節変数Jθ1(j+1)i 〜Jθ6(j+1)i が求められる。これによって、直線補間による補間量に関節補間による補間量を加えた移動量が得られることになる。
【0055】
以下に図4からのフローチャートを参照し、異種補間動作時の速度結合に関して具体的に説明する。なお、関節補間動作から直線補間動作への乗り移りによる速度結合処理や直線補間動作から関節補間動作への乗り移りによる処理をする場合の特徴を把握しやすくするため、速度結合処理しない場合も併せて述べる。その説明順序は次に掲げる図3の(b)のタイムチャートに従う。また、後で述べる事項との関連も予めとっておく都合上、速度結合処理前になされる軌道データの生成についても触れる。
【0056】
まず、従来技術の項で述べた図21の(a)の動きを想定したタイムチャートは図21の(b)であるが、本発明は(c)にあるように、一連の速度関数のうちの2か所に見られる速度の結合処理を行う。図3の(a)は図21の(b)の順序を一部入れ替えてフローチャートの説明順に合わせたものである。この一連の動きにおいて、本発明に係る速度結合処理を行わせようとしたものが図3の(b)である。
【0057】
その速度結合処理は、関節補間動作から直線補間動作へ移るところとその逆の移り変わりをするところの2か所に現れている。図中に付されたS番号はフローチャートに付したステップ番号である。その番号群は、例えば「関節補間動作」から「直線補間動作」へ移るところの「速度結合処理」とその前後を含む動作がフローチャートのどの部分に当たるかを示している。
【0058】
この再現動作では、ロボットによる作業点をP3 とP5 の2点としている。まず、退避位置P1 から作業第1準備位置P2 までは、関節補間動作により迅速にワークピースへ接近させる。点P2 で一旦停止させた後、第1作業点P3 に向けては直線補間動作によって前進させる。この点P3 へは高いポーズ精度でもって到達させ、ここでも停止させる。
【0059】
第1作業点P3 から例えば別のワークピースのために設けた作業第2準備位置P4 までは関節補間動作により迅速に移動させ、その点では静止させることなく直線補間動作によって第2作業点P5 に向けて前進させる。この点P5 では高いポーズ精度でもって静止させる。点P5 からは直線補間動作で作業解放位置P6 へ移動させ、そこでは停止させることなく関節補間動作によって迅速に退避位置P1 (=P7 )へ戻すというプロセスとなっている。
【0060】
以下、フローチャートに基づいて詳細に説明する。まず、再現動作するにあたり教示作業プログラムが読み出される(S101)。このときカウンタjが0にセットされる(S102)。このカウンタjは移動区間の順番を表すものである。教示作業プログラムには、移動中にたどる各教示点Pj (1≦j≦N)での全軸の関節角度θ1j〜θ6j、関節補間される各移動区間(例えば教示点Pj ・Pj+1 間)での全軸の動作速度と直線補間される他の各移動区間でのTCPの並進速度といった動作速度v1j〜v6j、サーボモータの仕様やアームの重量によって決まる各軸での許容最大速度ならびに各軸に適用される加速度・減速度、各移動区間での補間種別、各教示点でのポーズ精度等が含まれており、これらが動作命令バッファに格納される(S103)。なお、上記のNは図3(b)の例で言えば7に当たり、教示点P1 ,P7 はロボットの退避位置を意味する。
【0061】
これらを基にして軌道生成が行われるが、それは点P1 からP2 である最初の移動区間から始められる。そのため移動区間の番号を表すべくカウンタjに1が加えられ(S104)、始点Pj (=P1 )と終点Pj+1 (=P2 )からなる移動区間の補間種別が「関節補間」かどうか問われる(S105)。「関節補間」であればステップ201へ移行し、「直線補間」であれば(S106)、図9のステップ206へ移行される。いずれでもなければ「円弧補間」とみなして、そのための処理が実行される(S107)。なお、上でも少し触れたが円弧補間は実質的に直線補間と同じであるので、以後の直線補間の説明でもってそれに充てることにし、その説明を省く。
【0062】
ステップ201へ進むと、軌道生成部が動作命令バッファから動作命令を取り出し、教示データを解析してロボットの軌道が生成される。すなわち、1番目の教示点における全軸の関節角度θ1 1 〜θ6 1 (=θ1 j 〜θ6 j @j=1)から、その関節変数J1s1 〜J6s1 (=J1sj 〜J6sj @j=1)を生成する。ちなみに、6軸ロボットを例にしているので、関節角度はθ1 1 からθ6 1 の6つ設けられる。次に、本移動区間の始点P1 の関節角度θ1 1 〜θ6 1 と終点P2 の関節角度θ1 2 〜θ6 2 (=θ1 j+1 〜θ6 j+1 )を比較し、指定された全軸の動作速度v1 1 〜v6 1 (=v1 j 〜v6 j @j=1)や各軸の加速度・減速度に基づく本移動区間での全軸の速度関数J1v1 〜J6v1 (=J1vj 〜J6vj @j=1)を生成する。さらに、この速度関数J1v1 〜J6v1 から本移動区間における加速時間および減速時間を算出する。最後に、ロボットコントローラ内のROMに格納されている補間周期tc を呼び出し、これをもとにこの最初の(j=1)移動区間での補間回数I1 も算出される。
【0063】
このようにして得られた最初の教示点の関節変数、最初の移動区間での速度関数、加速時間・減速時間、補間種別、補間回数、終点である教示点P2 のポーズ精度等の軌道データが、軌道バッファに格納される(S202)。
【0064】
2番目の教示点P2 および2番目の移動区間についての軌道データを求めて軌道バッファに格納すべく、カウンタjに1が加えられて2とされる(S203)。jは6である(N−1)に到っていなく(S204)、図4のステップ105へ戻される。図3の(b)から分かるように、2番目の移動区間は「直線補間」が適用されているから、ステップ106を経て図9のステップ206からの処理が始められる。
【0065】
ステップ206では軌道生成部が動作命令バッファから動作命令を取り出し、教示データを解析してロボットの軌道を生成する。すなわち、2番目の教示点P2 における全軸の関節角度θ1 2 〜θ6 2 からその関節変数L1s2 〜L6s2 を生成し、その関節変数を順演算して2番目の教示点の同次変換行列LA2 が算出される。次に、この移動区間の始点P2 の同次変換行列LA2 と終点P3 の同次変換行列LA3 、上記関節角度θ1 2 〜θ6 2 や指定された並進速度v1 2 〜v6 2 さらには各軸の加速度・減速度とから、この移動区間での並進速度関数Lvp2 と回転速度関数Lvf2 とが計算される。さらに、並進速度関数Lvp2 と回転速度関数Lvf2 からこの移動区間における加速時間および減速時間を算出する。最後に、補間周期tc をもとに、本移動区間での補間回数I2 も算出される。
【0066】
このようにして得られた2番目の教示点の同時変換行列、この移動区間での並進速度関数・回転速度関数、加速時間・減速時間、補間種別、補間回数、終点である教示点P3 のポーズ精度等の軌道データが、軌道バッファに格納される(S207)。
【0067】
3番目の教示点P3 および3番目の移動区間についての軌道データを求めて軌道バッファに格納すべく、カウンタjに1が加えられて3とされる(S208)。jは6である(N−1)に到っていなく(S209)、図4のステップ105に戻される。図3の(b)から分かるように3番目の移動区間は関節補間が適用されるから、ステップ201から前述した処理が繰り返される。このようにしてjが6となる6番目の移動区間の関節補間のための軌道データが生成され、それが格納されるとステップ203または208で1が加えられる。これによってjが6を越えることになるので(S204 またはS209 ) 、jを0にリセットして(S205 またはS210)、次の処理のための準備が整えられる。
【0068】
上記したステップ202や207で格納される軌道データは、全ての移動区間についての全ての補間分となるとかなりの量になる。通常軌道バッファはFIFO処理式のものが採用され、順次格納しては残りの演算中に格納中の古いものから順に実際の動作のため次々と引き出されていくようにしていることが多い。しかし、このフローチャートでは全ての移動区間の軌道データが一旦蓄えられるものとして、すなわちバッファに容量の大きいものが採用されているとして、以後の説明を続けることにする。
【0069】
次の処理であるステップ301以降は速度結合処理において特殊な配慮を施す場合に適用されるもので、その説明は後に譲り、ステップ401以降の動作を説明する。ここからは、軌道バッファに蓄えられた軌道データをもとに、ロボットを動かすべく補間動作する制御に入る。最初に行われる処理の対象は1番目(j=1)の移動区間であり、その補間種別が「関節補間」であるので、そのための動作が説明される。
【0070】
その後、2番目(j=2)の移動区間における「直線補間」による補間動作が述べられる。ここまでは従来からなされている補間動作である。その後、j=3の移動区間における「関節補間」の途中までの補間動作処理、その残りの減速域の全部もしくは一部での関節補間動作と4番目の移動区間の「直線補間」の加速域の全部もしくは一部における直線補間動作との重合計算により実行される速度結合処理、および4番目の移動区間の残りの直線補間動作処理からなる一連の処理が説明される。この動作は言うまでもなく本発明の主題とするところである。同様に、j=5の移動区間における「直線補間」の途中までの補間動作処理、その残りの減速域の全部もしくは一部の直線補間動作と6番目の移動区間の「関節補間」の加速域の全部もしくは一部の関節補間動作との重合計算により実行される速度結合処理、および6番目の移動区間の残りの関節補間動作処理からなる一連の処理が説明される。
【0071】
先ず図6のステップ401において最初の移動区間を処理すべく、ステップ205または210で0にリセットされているカウンタjに1が加えられる。これによって移動区間が1番目のものであると特定され、この移動区間での例えば5msecなる補間周期による補間のための演算が開始される。その最初の補間に入る前にカウンタiが0と置かれる(S402)。説明を後回しするカウンタkも0と置かれる(S403)。
【0072】
補間のための演算には、当然のことながらこの移動区間のための軌道データを取り込む必要がある。そこで、軌道解析部に1番目の移動区間のための解析対象軌道T1 が取り出されているか確認される(S404)。今は最初であるので軌道バッファより1番目の移動区間のための軌道データが解析対象軌道T1 として取り出される(S405)。その軌道データから、始点P1 と終点P2 からなるこの1番目の移動区間の補間種別は「関節補間」であるかどうか問われる(S406)。「直線補間」なら図10のステップ601へ移行されるが、1番目の移動区間は「関節補間」されるものであるのでステップ501へ進む。
【0073】
1番目の移動区間の始点P1 における全軸の関節変数J1s1 〜J6s1 が軌道データから取り出される(S501)。この移動区間における全軸での速度関数J1v1 〜J6v1 も軌道データから取り出される(S502)。ここで、1番目の移動区間の最初の補間動作のための演算を始めるべく、カウンタiに1が加えられて(S503)、1番目の補間のための演算準備に入る。1番目の移動区間における全軸の速度関数J1v1 〜J6v1 をもとにして、最初の補間動作を実行したときの各軸の補間移動量J1r 1 1〜J6r 1 1が算出される(S504)。これは、1番目の補間動作で達成される各軸の移動量を示す。
【0074】
次に、始点P1 における全軸の関節変数J1s1 〜J6s1 に、最初の補間動作を実行したときの各軸の補間移動量J1r 1 1〜J6r 1 1を加算して、その補間動作を実行したときのロボットの全軸の関節変数Jθ1 1 1 〜Jθ6 1 1 が算出される(S505)。これは、この補間動作で到達すべき全軸の目標関節変数である。そして、これら全軸の関節変数Jθ1 1 1 〜Jθ6 1 1 が補間点である各関節の指令値として関節補間点バッファに格納される(S506)。
【0075】
今は図3の(b)の最初の移動区間における一連の補間動作を説明しているので、「速度結合処理」は必要でなく、後で説明するステップ701を素通りしてステップ507へ跳ぶ。内蔵タイマ等により教えられる補間周期ごとのトリガ信号に基づき、関節補間点バッファ12から全軸の関節変数Jθ1 1 1 〜Jθ6 1 1 を各軸の指令値にして図1で説明したサーボ出力部8へ送出される。これによって、各関節が1番目の補間目標関節角度θ1 1 1 〜θ6 1 1 に向けて移動される(S508)。
【0076】
フローチャートの今の説明では、全軸の関節変数Jθ1 1 1 〜Jθ6 1 1 の指令値が関節補間点バッファに格納されると、2番目の補間のための演算が開始される前に、1番目の補間のための関節変数がサーボ出力部へ送出されるように表わした。実際は、関節補間点バッファも先に述べたFIFO処理式のものが採用されていることが多く、その場合には、幾つかの補間のための各関節の指令値が蓄積されてから、格納の早い順に補間周期ごとに出力されていくことになる。
【0077】
上の説明で最初の補間が済んだのでカウンタiに1が加えられ(S509)、2となったiでもって、ステップ510を経て図6のステップ504に戻される。このステップ504から508までは上記と同じ処理であり、その関節変数Jθ1 1 2 〜Jθ6 1 2 が出力されると、各関節が2番目の補間目標関節角度θ1 1 2 〜θ6 1 2 に向けて移動される。
【0078】
順次カウンタiに1が加えられ(S509)、その値がこの移動区間における補間数のI1 に到達するまで繰り返される。iがそれを越えた時点で(S510)、1番目の移動区間の移動が完了したと判断され、カウンタjに1が加えられ(S511)る。ステップ512を経て、図6のステップ402に戻される。iが0にリセットされ、前記したステップ404を経てステップ406へ進められ、2番目の移動区間が如何なる補間種別であるかが問われる。図3の(b)から分かるように「直線補間動作」させるべき移動区間であるから、図10のステップ601へ移行される。
【0079】
2番目の移動区間の始点P2 を表す同次変換行列LA2 が軌道データから取り出される(S601)。この移動区間における並進速度関数Lvp2 と回転速度関数Lvf2 も軌道データから取り出される(S602)。0にリセットされていたカウンタiに1が加えられ(S603)、2番目の移動区間の最初の補間のための演算準備に入る。
【0080】
2番目の移動区間における並進速度関数Lvp2 と回転速度関数Lvf2 とから1番目の補間動作を実行させたときの並進運動量Lp2 1 と回転運動量Lf2 1 が算出される(S604)。これは、1番目の補間動作で達成される補間点の並進と回転の運動量を示す。
【0081】
次に、並進運動量Lp2 1 と回転運動量Lf2 1 より、1番目の補間動作を実行させたときの始点P2 から見た補間点の同次変換行列LA2 1 を算出する(S605)。これは、今演算された補間動作で到達すべき補間点の始点P2 から見た同次変換行列である。
【0082】
始点P2 の同次変換行列LA2 に同次変換行列LA2 1 を乗じて、1番目の補間動作を実行させたときのロボット基準座標系から見た到達点の同次変換行列LX2 1 を算出する(S606)。これは、最初の補間動作で達成されるTCPのロボット基準座標系から見た同次変換行列である。
【0083】
この同次変換行列LX2 1 を逆演算して、その関節変数Lθ1 2 1 〜Lθ6 2 1 が求められる(S607)。すなわち、これが最初の補間動作で達成される全軸の目標関節変数となる。これら全軸の関節変数Lθ1 2 1 〜Lθ6 2 1 が、補間点である各関節の指令値として関節補間点バッファに格納される(S608)。
【0084】
今は図3の(b)の2番目の移動区間における補間動作を説明しているので、「速度結合処理」は必要でなく、ステップ901を素通りしてステップ609へ跳ぶ。内蔵タイマ等により指示される補間周期ごとのトリガ信号に基づき、関節補間点バッファ12から全軸の関節変数Lθ1 2 1 〜Lθ6 2 1 を各軸の指令値にしてサーボ出力部8へ送出する。これによって、各関節が1番目の補間目標関節角度θ1 2 1 〜θ6 2 1 に向けて移動される(S610)。この場合も、FIFO処理式のものが採用されていれば、幾つかの指令値が蓄積されてから補間周期ごとに順次出力されることは上記のとおりである。
【0085】
最初の補間が済んだのでカウンタiに1が加えられ(S611)、2となったiでもって、ステップ612を経て図10のステップ604からの動作に戻される。以後同様の要領で処理がステップ610まで進められる。2番目の補間が済むとカウンタiに1が加えられ(S611)、3となったiでもって、ステップ612を経てステップ604からの動作が繰り返される。この移動区間における補間数はI2 であるのでiがそれに到達するまで繰り返され、iがI2 を越えると(S612)、この2番目の移動区間の移動のための補間演算は完了する。
【0086】
ステップ612において2番目の移動区間の移動が完了したと判断されると、カウンタjに1が加えられ(S613)、ステップ614を経て図6のステップ402へ戻される。iが0にリセットされ、ステップ403,405を経てステップ406へ進められ、3番目の移動区間が如何なる補間種別であるかが問われる。図3の(b)から分かるように「関節補間」すべき移動区間であるから、ステップ501へ移行される。ここからが、本発明に係る「速度結合処理」を含む制御動作の説明となる。図16と図17も併せて参照する。
【0087】
ステップ501以降ステップ510までの動作が、前述した要領で繰り返される。図16は教示点P3 ,P4 ,P5 について表わされており、その左側の点P3 ・P4 間の台形波パターンで表された速度関数J1−6 v3の部分で、その進展の様子を見ることができる。(a)は1番目の補間をした様子を示し、その間の移動量は影を施した三角形の面積のJ1−6 r3 1であり、その補間点を表す関節変数Jθ1−6 3 1 はJ1−6 s3とJ1−6 r3 1との和で与えられる。なお、添え字のうちの1−6 は6軸分を一括して表記したことを意味する。
【0088】
(b)は4番目の補間を施した時点の進み状態を表している。(c)は加速域を脱して定速域に入っている様子を示している。図の台形波パターンは波形のコンパクト化を図るために敢えて短く表されている。(d)は減速域に入ろうとする時点であり、補間は図において14回目(JT14=補間周期tc ×14)に至っている。このi=14の演算において、ステップ504から506までの処理をした後にステップ701に進んでも、そこは素通りしてステップ507へ跳ばされる。
【0089】
しかし、i=15の場合にステップ701に至ると、今までも処理はされていたが説明を省いていた以下の判定がなされ、その判定どおりであるとステップ702以降の処理へ進められることになる。これを図16に存在しないi=15の処理で説明する。15番目の補間演算としてステップ504から505に至り、ステップ506で全軸の関節変数Jθ1 3 15〜Jθ6 3 15を補間点としてバッファに格納する。
【0090】
ところで、3番目の移動区間における補間回数I3 や減速時間Tde3 は、3番目の移動区間の補間処理に入った時点のステップ405で解析対象軌道T3 としてすでに取り出されている。従って、定速域の最終補間は、補間回数I3 −(減速時間Tde3 /補間周期tc )の番目である。これをI3cとすれば、3番目の移動区間における補間動作の15番目を意味する15は、3番目の移動区間における定速域最後の補間までの補間回数I3c=14より大きいので、この15番目の補間から減速域へ入ったと判断され、ステップ702へ進められる。
【0091】
ステップ702では、軌道解析部に3番目の次の移動区間である4番目のための解析対象軌道T4 が取り出されているかが調べられる。このステップへ進んだのは初めてであるから取り出しは未だ行われていなく、そこで軌道バッファより4番目の移動区間のための軌道データが解析対象軌道T4 として取り出される(S703)。その軌道データの点P4 に課せられたポーズ精度の大小を見て「速度結合処理」が可能かどうか判定される(S704)。
【0092】
ポーズ精度が高ければ速度結合処理が見合わされ、ステップ507へ進められる。ポーズ精度が低く予め決められた精度以下であると「速度結合処理」が可能と判断される。いまの解析対象軌道T3 における残存減速時間tR =(I3 −i)×tc =(22−15)×5msecが計算される(S705)。その残存減速時間tR が解析対象軌道T4 の加速時間Tac4 より少ないかどうかが判定される(S706)。tR がTac4 より大きければ、ステップ507へ進められる。このような処理は図16で言えば(e)である17番目の補間まで続けられる。
【0093】
補間のための演算が繰り返されiがステップ509で18にまで進むと、図17の(a)に示すようにtR =Tac4 となる(S706)。しかし、この場合もステップ507へ先送りされる。図から分かるように4番目の移動区間の速度関数Lvpf4は0であり、そこでの補間量は計算するまでもなく0である。なお、添え字のうちのpfは、並進と回転の運動を一括して表記したことを意味する。
【0094】
iが19まで進められると図17の(b)に示すようにtR <Tac4 となり、ステップ707へ進められる。ここでは、解析対象軌道T4 での補間種別が「直線補間」であるかどうかが問われる。「直線補間」でなければすなわち「関節補間」であるなら、従来技術の項で述べた「関節補間」同士の「速度重のね処理」が実行される(S708)。
【0095】
「直線補間」であれば、「関節補間」と「直線補間」との「速度結合処理」の実行に入り、ステップ403で0と置かれていたkに1が加えられる(S709)。なお、kの意味するところは、3番目の移動区間の補間をiで積み重ねて進ませようとするのに対して、その途中から行われる4番目の移動区間の補間処理をkの積み重ねで進ませようとするものである。いまkが1になったばかりであり、ステップ710ではk=1が肯定され、いままで積み重ねられてきたiの19がgに置き換えられて(S711)、図12のステップ801へ進められる。
【0096】
ステップ505で得られたロボットの全軸の関節変数Jθ1 3 19〜Jθ6 3 19を順演算し、その結果得られるロボット基準座標系から見た同次変換行列JX3 19が算出され、これを4番目の移動区間においてこれから行おうとする補間の始点と見たててJX4 と置かれる(S801)。
【0097】
4番目の移動区間における並進速度関数Lvp4 と回転速度関数Lvf4 が軌道データから取り出される(S802)。ここで、1と置かれているカウンタkをカウンタiに置き替える(S803)。いま置かれたiによって、4番目の移動区間の補間の進行を1から順次増やして使用することができるようになる。次に、説明を後に譲るが、mが0と置かれる(S804)。
【0098】
その状態で、4番目の移動区間における並進速度関数Lvp4 と回転速度関数Lvf4 とから1番目の補間動作を実行させたときの並進運動量Lp4 1 と回転運動量Lf4 1 を算出する(S805)。これは「速度結合処理」の開始から最初の補間動作で達成される補間点の並進と回転の運動量を示す。ここで、mが0であるかどうか問われる(S806)。
【0099】
mがいま0と置かれている状態にあるので、ステップ807へ進められる。ここでは、並進運動量Lp4 1 と回転運動量Lf4 1 より、1番目の補間動作を実行させたときの「同次変換行列JX4 から見た補間点の同次変換行列LA41」が算出される。これは最初の補間動作で到達すべき補間点の同次変換行列JX4 から見た同次変換行列である。
【0100】
次に、この同次変換行列JX4 に同次変換行列LA41を乗じて、1番目の補間動作を実行させたときの「ロボット基準座標系から見た到達点の同次変換行列LX41」が算出される(S808)。これは、最初の補間動作で達成される点のロボット基準座標系から見た同次変換行列である。
【0101】
この同次変換行列LX41を逆演算して、その関節変数Lθ1 4 1 〜Lθ6 4 1 が求められる(S809)。すなわち、1番目の補間動作で達成される全軸の目標関節変数であり、これがステップ810において全軸の補間点(各関節の指令値)として関節補間点バッファに格納される(S810)。これは、「速度結合処理」に基づき演算された「関節補間」と「直線補間」の速度を重ね合わせたかのように挙動させるための補間点である。
【0102】
補間周期ごとのトリガ信号が発せられると(S811)、図17の(b)に示すように、関節補間点バッファから全軸の関節変数Lθ1 4 1 〜Lθ6 4 1 を各軸の指令値にしてサーボ出力部へ送出され(S812)、各関節が1番目の補間目標関節角度θ1 4 1 〜θ6 4 1 に向けて移動を開始する。すなわち、TCPがその関節角度となるように動かされる。図中のS4 1 は4番目の移動区間の1番目の補間による移動量であり、これが3番目の移動区間における19番目の補間による移動量のJθ1−6 3 19すなわちJX4 に上乗せしたように与えられる。図中に表したS4 1 a をS4 1 に等しく描けば、そのLX4 1 を指している矢印のところの縦座標値Vm19が、そのときの速度を表すことになる。
【0103】
いまはm=0であるので(S813)、ステップ814に進んでiがg+kと置かれる。すなわちiはステップ711で19と置かれたgと1のkとが足され、20とされる。この操作によってiは3番目の移動区間の補間の回数に戻されたことになる。そこで、iが3番目の移動区間の補間回数のI3 =22より大きくなっているかが問われる(S815)。
【0104】
そうでなければ図6のステップ504へ戻され、3番目の移動区間における20番目の補間のための演算が開始される。以後、ステップ505に至ることによってJθ1 3 20〜Jθ6 3 20が求められ、それがバッファに格納された後(S506)、ステップ701に進んでステップ709でkに1が加えられて2とされる。kはもはや1でないのでステップ711は跳ばされ、gは従前の19に据え置かれる。
【0105】
図12のステップ801に入るとステップ505で得られたロボットの全軸の関節変数Jθ1 3 20〜Jθ6 3 20を順演算し、その結果得られるロボット基準座標系から見た同次変換行列JX3 20が算出され、これを4番目の移動区間においてこれから行おうとする2番目の補間の始点と見たててJX4 と置かれる。
【0106】
ステップ803へ至ると2と置かれているカウンタkがカウンタiに置き替えられる。いま置かれたi(=2)によって、4番目の移動区間の2番目の補間の処理がなされる準備が整う。そしてステップ812まで進展され、3番目の移動区間における20番目の補間による移動量に4番目の移動区間における2番目の補間による移動量が上乗せされ、それが全軸の関節変数Lθ1 4 2 〜Lθ6 4 2 なるかたちで各軸の指令値としてサーボ出力部へ送出される(S812)。各関節は2番目の補間目標関節角度θ1 4 2 〜θ6 4 2 に向けて移動することになる。以上の動作は図17の(c)に示されている。
【0107】
このようにして3番目の移動区間を補間処理するためのiが22になるまで、同じく4番目の移動区間を補間処理するためのkが4となるまで、すなわち図17の(d)の状態になるまで繰り返される。ステップ814でi=19+4=23となるとiが22のIj を越える(S815)。すなわち、もはや3番目の移動区間の補間は演算するに及ばなくなる。これは「速度結合処理」から解放されることを意味する。しかし、4番目の移動区間の残りの補間はTCPが4番目の移動区間の終点P5 に至るまで続けられねばならない。
【0108】
速度重ね処理時の(j+1)番目の移動区間の始点は、j番目の移動区間におけるi番目の補間動作により到達しようとする点が採用されている。従って、3番目の移動区間の補間が完了した後の4番目の移動区間における残りの補間動作の始点は、3番目の移動区間の補間動作が完了したとき到達している点である。これは言うまでもなく教示点P4 である。
【0109】
そこで、これ以後4番目の移動区間の残りの補間動作における始点はP4 となる。これはステップ703(図7を参照)で取り出したT4 の軌道データから、その始点P4 を表す同次変換行列LA4 で与えられる。言うまでもなく、3番目の移動区間の全軸の関節変数Jθ1 3 22〜Jθ6 3 22を順演算して得られるロボット基準座標系から見た同次変換行列JX3 22と同じものである。そこで、いずれをとってもよいが、ステップ816(図13を参照)では単純にJX4 =LA4 としてLA4 をJX4 にあてがうことにする。これを前提にして以後図17の(e)のように、3番目の移動区間によって達成された移動量に4番目の移動区間である濃い影の施された部分の移動量が重ねられるようにして、4番目の移動区間の終点P5 まで順次補間演算が続けられる。
【0110】
ステップ817へ進んでiは4であるkに1が加えられて5とされ(S817)、0のままのmに1が加えられて1と置かれる(S818)。mが1になったということは、「速度結合処理」を実質的に脱して、4番目の移動区間の残りの補間のみの演算に入っていることを教える。いまiが5であり4番目の移動区間の補間回数Ij+1 の16を越えていないので(S819)、図12のステップ805に戻り、並進運動量Lp4 5 と回転運動量Lf4 5 が算出される。
【0111】
mは1であるので、ステップ806を経てステップ820へ進められる。ここでは上記の説明に基づいて、並進運動量Lp4 5 と回転運動量Lf4 5 より、5番目の補間動作を実行させたときの同次変換行列LA4 から見た補間点の同次変換行列LA4 5 が算出される。これは、5番目の補間動作で到達すべき補間点の同次変換行列LA4 から見た同次変換行列である。そして、同次変換行列LA4 に同次変換行列LA4 5 を乗じて、5番目の補間動作を実行させたときのロボット基準座標系から見た到達点の同次変換行列LX4 5 が算出される(S821)。これは、5番目の補間動作で達成される点のロボット基準座標系から見た同次変換行列である。
【0112】
その後はステップ809から813までの処理がなされ、5であるiに1が加えられて6と置かれる(S822)。このような処理を繰り返すうちにiがI4 =16を越えると(S819)、4番目の移動区間の補間のための演算が完了する。いまjは3のまま来ており、速度結合のために4番目の移動区間まで処理したので、2を加えて5と置かれる(S823)。jはN−1=6を越えていなく(S824)、図6のステップ402へ戻される。これによって図3の(b)で言えば5番目の直線補間される移動区間の処理に入ることになる。
【0113】
その補間処理は、5番目の移動区間での「直線補間」、教示点P6 を繋ぎ点として5番目の移動区間の「直線補間」と6番目の移動区間の「関節補間」との「速度結合」、そして6番目の移動区間における残りを処理する「関節補間」からなる。その進展要領は3番目の移動区間を4番目の移動区間と繋ぐ説明と同じであるので、フローチャートには表しておくが、以下の要点部分のみの説明にとどめる。
【0114】
そのフローチャートは、ステップ402(図6を参照)から開始され、ステップ406から図10のステップ601へ、そしてステップ608から609へ直行して611で補間順の数字を1つ上げて図10のステップ604へ戻る通常の「直線補間」が繰り返される。何回かの補間が繰り返され、例えば18番目の補間においてステップ608まで到達し、ステップ901によって減速域に突入したことが確認され、またポーズ精度から「速度結合処理」の可否を判断し(S904)、残存減速時間tR が6番目の移動区間の加速時間以下となり(S906)、その補間種別が「関節補間」であると判別されたときは(S907)、カウンタに上記した繰上処理を順次加えながら図14のステップ1001へ進められる。
【0115】
この場合の「速度結合」のためにはステップ607(図10を参照)で得られたロボットの全軸の関節変数Lθ1 5 18〜Lθ6 5 18が、6番目の移動区間においてこれから行おうとする補間の始点と見たてられる。そして、6番目の移動区間における全軸での速度関数J1v6 〜J6v6 が軌道データから取り出される(S1002) 。ここで、ステップ909(図11を参照)で1と置かれているカウンタkがカウンタiに置き替えられる(S1003) 。いま置かれたiによって、6番目の移動区間の補間の進行を1から順次増やして使用することができる。次に、「速度結合処理」を実質的に脱したかどうかの指標を与えるカウンタmが0と置かれる(S1004) 。
【0116】
その状態で、6番目の移動区間における全軸の速度関数J1v6 〜J6v6 をもとに、1番目の補間動作を実行したときの各軸の補間移動量J1r6 1 〜J6r6 1 が算出される(S1005) 。これは最初の補間で達成される各軸の移動量を表す。その後に、mが0であるかどうか問われる(S1006) 。
【0117】
mがいま0と置かれた状態にあるので、ステップ1007へ進められる。ここでは、始点と見たてられた全軸の関節変数Lθ1 5 18〜Lθ6 5 18に、1番目の補間動作を実行したときの各軸の補間移動量J1r 6 1〜J6r 6 1を加算して、1番目の補間動作を実行したときのロボットの全軸の関節変数Jθ1 6 1 〜Jθ6 6 1 が算出される。これは最初の補間動作で到達すべき全軸の目標関節変数である。この全軸の関節変数Jθ1 6 1 〜Jθ6 6 1 が補間点(各関節の指令値)として関節補間点バッファに格納される(S1008) 。これは、「速度結合処理」に基づき演算された「直線補間」と「関節補間」の速度を重ね合わせたかのように挙動させるための補間点である。
【0118】
関節補間点バッファから全軸の関節変数Lθ1 6 1 〜Lθ6 6 1 を各軸の指令値にしてサーボ出力部へ送出され(S1010) 、各関節が1番目の補間目標関節角度θ1 6 1 〜θ6 6 1 に向けて移動を開始する。すなわち、TCPがその関節角度となるように動かされる。この後のステップ1011から1017までの動作は先に「関節補間」から「直線補間」への繋ぎにおける「速度結合処理」のところで述べたステップ813(図13を参照)から819までと同じ要領であるので、その説明は省く。ただし、ステップ1014はステップ816と、ステップ1018はステップ820や821とは異なるので、その部分について以下に述べる。
【0119】
ステップ1014は「速度結合処理」から抜け出て6番目の移動区間における「直線補間」を主体にした補間に入るときの処理であり、以下のとおりである。速度重ね処理時の(j+1)番目の移動区間の始点は、j番目の移動区間におけるi番目の補間動作により到達しようとする点が採用されている。従って、5番目の移動区間の補間が完了した後の6番目の移動区間における残りの補間動作の始点は、5番目の移動区間の補間動作が完了したとき到達している点である。これは言うまでもなく教示点P6 である。
【0120】
そこで、これ以後6番目の移動区間の残りの補間動作における始点はP6 となる。これはステップ903(図10を参照)で取り出したT6 の軌道データからその始点P6 を表す全軸の関節変数J1s6 〜J6s6 で与えられる。それゆえ、S1001でのLθ1 5 18〜Lθ6 5 18がJ1s6 〜J6s6 に置き替えられる。
【0121】
ステップ1018は上記のステップ1014による準備が済んだ後の6番目の移動区間の「関節補間」のみによる処理をするもので、次のように行われる。この時点でkが7(これは5番目の移動区間の補間回数に直して言えば18+7=25番目の補間に当たる)とすると、教示点P6 を表す全軸の関節変数J1s6 〜J6s6 に7番目の補間動作を実行したときの各軸の補間移動量J1r6 7 〜J6r6 7 を加算して、その補間動作を実行したときのロボットの全軸の関節変数Jθ1 6 7 〜Jθ6 6 7 が算出される。これは7番目の補間動作で到達すべき全軸の目標関節変数であることは言うまでもない。以上までが「速度結合処理」の補間手順である。
【0122】
上でも少し触れたが、「円弧補間動作」は実質的に「直線補間動作」と同じ思想の並進速度関数と回転速度関数とが採用される。従って、「円弧補間」と「関節補間」との間で「速度結合処理」するにあたっては、既に述べた「直線補間」から「関節補間」への速度結合や、「直線補間」から「関節補間」への速度結合の動作を適用することができる。そこで、「円弧補間」は「直線補間」に含まれるものであると見なせば、本発明は、速度繋ぎ部分において「順変換−逆変換」もしくは「逆変換」の処理を伴うものを対象にしているということが分かる。同種の補間種別に対する速度結合、すなわち「関節補間」から「関節補間」への繋ぎ、「直線補間」から「直線補間」へ、「円弧補間」から「円弧補間」へ、「円弧補間」から「直線補間」へ、「直線補間」から「円弧補間」への繋ぎは、速度関数の直接的な重ね合わせにより達成できるので、本発明の思想を導入するまでもないからである。
【0123】
上記の説明では、j番目の移動区間において減速状態に入っており、かつその移動区間における残存減速時間が(j+1)番目の移動区間の加速時間以下となっているかどうかで判定するようにしている。すなわち、前後する移動区間のラップ時間帯の長短を左右するのは後側の移動区間の加速時間ということになる。一方、ユーザによっては加速時間の全てまたはその多くを減速域に持ち込みたくないという場合がある。例えば150msec以上は重ねたくないという何らかの事情がある場合には、そのような条件下において、予め加速時間が150msecより大きいかどうかを調べるようにすればよい。小さければ加速時間帯の全部を減速時間と重ねるべく図17の(a)の矢印のように前送りすればよい。
【0124】
150msecより大きければ加速時間帯を前送りするに際して、加速時間帯のうち前半に存在する150msec分だけにとどめるという配慮を施すステップを加入してやればよい。具体的には、残存減速時間が150msec以下となった以降に加速時間帯との結合処理を開始させるように、条件として時間幅制限を加重させるのである。
【0125】
ところで、図18は、速度結合処理が施された場合でも、様々な速度変化を呈することを示す。この図はすべて「関節補間」から「直線補間」へ移行する例で表されているが、(a)は後側の移動区間の加速域の全部が前側の移動区間の減速域に含まれるように重ねた場合、(b)は前側の移動区間の減速域の全部が後側の移動区間の加速域に含まれるように重ねた場合、(c)は減速時間と加速時間が同じでぴたりと重ね合う場合を示している。いずれも前側の移動区間における速度が後側のそれよりも大きく与えられたものである。(d)は(a)と、(e)は(b)と、(f)は(c)と同じ趣旨であるが、これらの場合、後側の移動区間における速度が前側のそれよりも大きくなっている。
【0126】
この図を眺めてみると、(b)と(d)とは速度結合処理の部分で速度変化が減増した谷が形成されている。この結合処理部分でのTCPの動きとしては、常に滑らかな速度変化で与えられるに越したことはない。その点で、(a),(c),(e)および(f)は減少の一途をたどるか増加の一途をたどるから好ましいと言える。ところが、(a)と(e)は途中で加速度が変わっている。その折れ方が弱い場合はよいが、折れ点で加速度が急激に変化することもあり得る。結局は、加速度が一定となる(c)および(f)がロボットにとって都合よいと言える。
【0127】
このことを念頭におくと、異種補間動作における速度の結合処理が適用される速度関数は、現移動区間の減速域の時間と次の移動区間の加速域の時間とを一致させたものとしておくことができれば、本発明によって一層滑らかな速度結合を実現できることが分かる。しかし、速度関数はステップ201(図4を参照)やステップ206(図9を参照)ですでに生成されたものであり、かつ各移動区間における動作速度も異なるのが一般的であるから、常に減速時間と加速時間とが一致するとは限らない。
【0128】
そこで、本発明においては、可能な場合にこの両時間を意図的に一致させる配慮も払われる。それは、加速時間を減速時間に合わせたり、減速時間を加速時間に合わせるという処置を採ることになる。これらの場合のうち、加速時間が減速時間より長い場合に、長い加速時間を縮めて減速時間に合わせるということは避けた方がよい。それは不可能なことでないが、TCPにとってすでに適切な加速度が選定されているのであり、またサーボモータの容量を考慮したうえで決められた加速度である場合が多いから、加速時間を低減させたいという理由だけで加速度を増大させることは好ましくない。
【0129】
従って、本発明においては 減速時間が加速時間より長い場合は、加速時間を減速時間に合わせるように引き延ばし、減速時間が加速時間より短い場合には、減速時間を加速時間に合わせるように引き延ばすことにする。いずれにしても、その変更をどの時点でしておくかということになる。バッファがFIFO処理式の場合には、かなり以前に立ち戻ることは容易でないことが多い。その場合にはバッファに格納されている範囲で処置することになる。
【0130】
上記したフローチャートにそれを加味すると交錯の激しい表記となるので、動作命令バッファの容量が大きいと仮定して、その減速加速の時間の長さ合わせ処理を簡略化して表したステップ301から315の記載に基づいて説明する。なお、移動区間の数(N=7)とその補間種別および速度結合処理の要否は、図3の(b)のタイムチャートに従うものとする。ちなみに、この処理は、図1のブロック図において「異種補間速度結合性改善用速度関数再生成部」13で行われる。
【0131】
まず、1番目の移動区間の軌道データを軌道バッファ7から取り出すために、すでにステップ205(図4を参照)または210(図9を参照)において0と置かれているjに1が加えられる(S301)。これによって、最初の移動区間における減速時間tde1 と補間種別が取り出される(S302)。この移動区間における後の教示点であるP2 (作業第1準備位置)のポーズ精度から見て「速度結合処理」が可能かどうか判断される(S303)。
【0132】
ポーズ精度が低くて予め決められた精度以下であると「速度結合処理」の可能性があることになるが、この移動区間においては図3の(b)によればその必要のない扱いとなっている。ステップ304へ進んでjに1が加えられ、(N−1)=7−1=6より小さいことが確認され(S305)、2番目の移動区間以降の処理のための準備が整えられる。ステップ302において2番目の移動区間における減速時間tde2 と補間種別が取り出される。この移動区間における後の教示点であるP3 は図3の(b)によれば第1作業点であり、高いポーズ精度で停止させることにしている。ステップは303から再度ステップ304へ進められる。jに1が加えられ、ステップ305を経て3番目の移動区間以降の処理に仕向けられる。
【0133】
ステップ302において3番目の移動区間における減速時間tde3 と補間種別として指定されている「関節補間動作」が取り出される。この移動区間における後の教示点であるP4 は図3の(b)によれば作業第2準備位置であり、ポーズ精度は低く与えられている。ステップ306へ進められ、そこで現在3であるjに1が加えられて4とされる。これに基づき、4番目の移動区間における加速時間tac4 と補間種別として指定されている「直線補間動作」が取り出される(S307)。
【0134】
ステップ308であい前後する移動区間は異種補間であると判別され、加速時間tac4 が減速時間tde3 より小さいかどうか問われる(S309)。図3の(b)の該当部分を拡大した図19の(b)によれば、減速時間tde3 の方が大きくなっている。(a)には、tac4 <tde3 となる4番目の移動区間の例が、一点鎖線と二点鎖線により2つ描かれている。その2つは、減速度の絶対値に比較して加速度が大きい場合と小さい場合とを表している。(b)はそのうちの一点鎖線の移動区間を採りあげ、3番目の移動区間と速度結合処理しようとしたものである。
【0135】
この場合はステップ310に進んで、4番目の移動区間の加速時間tac4 を減速時間tde3 と等しくなるように、当該速度関数Lvpf 4 が図19の(c)に表した加速の弱められた台形状の速度関数Lvpf4m となるように生成し直される。すなわち、加速を示す線はaからbに変えられる。しかし、4番目の移動区間による移動量はあくまでも同じでなければならないから、線a,bが交差して上下に形成される三角形の面積が等しくなるように、線bの位置が決められる。
【0136】
このように変形させた後に、図18の(c)のようにする意図で、図19の(d)のように、4番目の移動区間の変形された速度関数Lvpf4m が前へ寄せられる。その結果、教示点P5 は(a)や(c)の場合より早く到達することはもちろんのこと、(b)の場合よりも早く到達できることになる((b)と(d)の図中の白抜き矢印52,53の長短を参照)。すなわち、TCPの動きはますます機敏になることが分かる。もちろん速度結合処理部における速度は(d)中に記載したcのように可及的に変化の少ないものであり、かつ3番目の移動区間の定速度と4番目の移動区間の定速度とを結ぶ全体から見ても速度変動の少ない運動をさせることができるようになる。この再生成された速度関数Lvpf4m は、従前の速度関数Lvpf4に置き替えられて軌道バッファ7に格納される(S311)。
【0137】
ステップ312で、現在のjが(N−2)=7−2=5以下であると判断されて制御はステップ302へ戻される。いまjは4とされたままであるので、ステップ302の処理が行われる。図3の(b)によれば4番目の移動区間の後の教示点P5 においては、停止して作業をさせるようになっている。従って、ステップ303では速度結合の可能性のないとの判断からステップ304へ回される。ここで、現在の4であるjが5に繰り上げられ、(N−1)=7−1=6より小さいことが確認され(S305)、5番目の移動区間以降の処理のための準備が整えられる。
【0138】
ステップ302に戻って5番目の移動区間における減速時間tde5 と補間種別の「直線補間」が取り出される。この移動区間における後の教示点であるP6 は図3の(b)によれば作業解放位置であり、近傍を通過させればよい程度の点であることが分かる。ステップは303を経て306へ進み、1が加えられてjは6となり、6番目の移動区間における加速時間tac6 と補間種別として指定されている「関節補間」が取り出される(S307)。
【0139】
ステップ308であい前後する移動区間は異種補間であると判別され、加速時間tac6 が減速時間tde5 より小さいかどうか問われる(S309)。図3の(b)の該当部分を拡大した図20の(b)によれば、減速時間tde5 の方が小さくなっている。(a)の図はtac6 >tde5 となる6番目の移動区間の例が先の例と同じく加速度の大小を分けて一点鎖線と二点鎖線の2つで挙げられている。(b)はそのうちの一点鎖線の移動区間を採りあげ、この6番目の移動区間との速度結合処理をしようとしたものである。
【0140】
この場合はステップ313に進んで、5番目の移動区間の減速時間tde5 を加速時間tac6 と等しくなるように当該速度関数J1−6 v 5 が、図20の(c)に表したような台形状の速度関数J1−6 v 5mとなるように生成し直される。減速を示す線はpからqに変えられるが、あくまでも5番目の移動区間による移動量は同じでなければならないから、線p,qが交差して上下に形成される三角形の面積が等しくなるように線qの配置が決められる。
【0141】
このように変形させた後に、図18の(f)のようにする意図で、図20の(d)のように、6番目の移動区間の変形されなかった速度関数Lvpf 6 が、5番目の移動区間の変形された速度関数J1−6 v 5mへ寄せられる。その結果、教示点P7 すなわち退避位置へは、(b)の場合よりも早く到達することになる。すなわち、TCPの動きは機敏となる。もちろん、速度結合処理部における速度は(d)中に記載したrのように可及的に変化の少ないものであり、かつ5番目の移動区間の定速度と6番目の移動区間の定速度とを結ぶ全体から見ても速度変動の少ない運動をさせることができる準備が整う。この再生成された速度関数J1−6 v 5mは、従前の速度関数J1−6 v 5 に置き替えられて軌道バッファ7に格納される(S314)。
【0142】
ステップ312で、現在6であるjが(N−2)=7−2=5以下でないと判断されて、この加減速時間の変更制御は終了し、jは0にリセットされる(S315)。なお、図3の(b)に記載されていないが、5番目と6番目の移動区間の間で速度結合処理する必要がなかったときは、j=5の状態でステップ304にたどりつくとjが6に繰り上げられ、その状態で再度ステップ304に至り、jが7に繰り上げられると、ステップ305でjが(N−1)=7−1=6より大きいと判断され、ステップ315へ導かれて、この処理は終了する。
【0143】
このようにして加減速時間を変更した速度関数が軌道バッファ7に格納されると、制御はフローチャートのステップ401からの処理に入り、必要な箇所での加減速時間の一致の図られた速度関数に基づいて、「速度結合処理」が施されることになる。
【0144】
ところで、いままでは各移動区間における速度関数は台形波パターンを例にして説明してきた。しかし、これに限らず、図3の(a)の一部に重なるようにして描いた細かい破線表示の速度関数Jm 1−6 v 3 やLm vpf 4 のように、S字波形の速度変化を持った場合にも適用することができる。このような速度関数が採用されている場合に、上記したステップ301から314の処理を施すなら、結合速度はますます滑らかなものとなる。ちなみに、以上の説明は6軸ロボットを例にしたが、2軸以上であれば、本発明を適用することができるのは言うまでもない。
【0145】
【発明の効果】
本発明によれば、補間種別の移り変わりを判別すると共に繋ぎ点もしくはその近傍における速度の結合処理が可能かどうかを判定する速度結合処理可否判定部と、異種補間動作間の速度を重ね合わせたように挙動させるための補間点を演算する速度結合演算部とを備えるので、3点以上の教示点からなる経路(曲折しているかどかは問題でない)上での速度制御において、教示点ごとに記録された補間種別が異なる場合でも、教示点でロボットのTCP速度を低下させることなく通過させることができる。
【0146】
ロボットが機敏に動けば作業能率は上がり、タクトタイムは短縮される。滑らかな速度変化が助長されることになり、無用の衝撃や力さらには振動がアームやTCPに及ぶこともなくなる。ロボットによる作業の正確さ精密さが向上し、TCPの動きもスマートなものとなる。
【0147】
速度制御法の一連の発明においても、上記の効果が発揮されることは言うまでもない。その制御は異種補間での速度結合を行うものであるが、従前から行われている同種補間における速度重ね処理の思想とは異なり、異種補間での速度結合を補間点の重合により達成した。これは同種補間の場合の速度重ね処理と組み合わせて使用するにおいて弊害をきたす要因はなく、従ってロボットの速度制御の多様化が図られることにもなる。
【0148】
速度の結合処理の可否は、現移動区間において減速状態にあり、かつその移動区間における残存減速時間が次の移動区間の加速時間以下となっているかどうかで判定するようにしておけば、結果として生じる結合された速度がサーボモータの能力を越えるようなことはなくなり、駆動系に損傷をきさずまたロボットアーム等に対する安全性も向上させやすくなる。
【0149】
異種補間動作における速度の結合処理が適用される速度関数を生成するにおいて、現移動区間の減速時間と次の移動区間の加速時間とを一致させるようにしておくと、結合された速度の滑らかさは格段に向上する。その場合、次の移動区間の加速時間が現移動区間の減速時間よりも短かければ、次の移動区間の加速時間を減速時間に一致させ、現移動区間の減速時間が次の移動区間の加速時間よりも短かければ、現移動区間の減速時間を前記加速時間に一致させておくようにすることができる。その結果、加速度の過剰な増大を防いで、サーボモータに大きな負担を強いらずまた振動助長原因も可及的に少なくしておくことができる。
【図面の簡単な説明】
【図1】本発明に係る多関節型ロボットの速度制御を実現する制御装置のブロック図。
【図2】多関節型ロボットの速度制御法の全体を簡潔に表したフローチャート。
【図3】フローチャートを説明するための移動区間の変遷と速度結合処理箇所を示したタイムチャート。
【図4】ないし
【図15】教示作業プログラムの読み出しに始まり、軌道データの生成、加減速時間の変更処理した速度関数の再生成、軌道データを基にした軌道解析すなわち補間のための演算ならびに速度結合処理を表したフローチャート。
【図16】関節補間と直線補間があい前後して並んだ場合の前側の移動区間における補間動作の説明図。
【図17】関節補間と直線補間が並んだ場合の繋ぎ点近傍での速度結合処理を施した場合の補間動作説明図。
【図18】2つの移動区間の繋ぎ点で速度結合処理した場合に起こり得る速度の変化の種類を示した説明図。
【図19】加減速時間を一致させるための処理を表したもので、加速時間を減速時間に合わせるときの説明図。
【図20】加減速時間を一致させるための処理を表したもので、減速時間を加速時間に合わせるときの説明図。
【図21】ワークピースに対して作業を施す教示点と、その軌道の補間の種類や補間法を説明するための作業モデル図およびそのタイムチャート。
【図22】3つの教示点間で関節補間されるときに使用される関節速度関数を表したタイムチャート。
【図23】関節補間同士の速度重ね処理を説明するタイムチャート。
【図24】関節補間同士の速度重ね処理をした場合の実際にたどる経路とポーズ精度との関係を表した説明図。
【符号の説明】1…速度制御装置、2…速度結合処理可否判定部、3…速度結合演算部、3A…関節補間から直線補間への速度結合演算部、3B…直線補間から関節補間への速度結合演算部、4…軌道解析部、5…補間動作演算部、5A…関節補間動作演算部、5B…直線補間動作演算部、6…軌道生成部、7…軌道バッファ、8…サーボ出力部、91 〜96 …サーボドライバ、101 〜106 …サーボモータ、11…補間種別判定部、12…関節補間点バッファ、13…異種補間速度結合性改善用速度関数再生成部、51…ワークピース、Pj …教示点。
Claims (8)
- 教示点から次の教示点までの区間に幾つかの補間点を与え、移動区間ごとに演算された個々の速度関数に従って関節補間動作や直線補間動作により移動させるようにした多関節型ロボットの速度制御装置において、
あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に移り変わるか、直線補間動作から関節補間動作に移り変わるかを判別すると共に、その2つの移動区間の繋ぎ点もしくはその近傍を通過させる際に速度の結合処理が可能かどうかを判定する速度結合処理可否判定部と、
該速度結合処理可否判定部により速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせたように挙動させるための補間点を演算する速度結合演算部と、
を具備することを特徴とする多関節型ロボットの速度制御装置。 - 教示点から次の教示点までの区間に幾つかの補間点を与え、移動区間ごとに演算された個々の速度関数に従って関節補間動作や直線補間動作により移動させるようにした多関節型ロボットの速度制御法において、
あい前後する2つの移動区間の補間種別が関節補間動作から直線補間動作に移り変わるか、直線補間動作から関節補間動作に移り変わるかを判別し、
その2つの移動区間の繋ぎ点もしくはその近傍を通過させる際に速度の結合処理が可能かどうかを判定し、
速度の結合処理が可能であると判定されたとき、異種補間動作間の速度を重ね合わせるような挙動をさせるべく関節変数を決定するようにしたことを特徴とする多関節型ロボットの速度制御法。 - 前記異種補間動作が関節補間から直線補間に移る場合の速度結合処理は、現移動区間における関節補間動作の現時刻に達成されるロボット全軸の関節変数を算出し、これを順演算して得られるロボット基準座標系から見たTCPの同次変換行列を直線補間動作する次の移動区間の始点と見たて、該直線補間動作の現時刻で達成される並進速度関数と回転速度関数から算出した並進運動量と回転運動量により、始点とされた同次変換行列から見た同次変換行列を算出し、始点を表す同次変換行列に並進運動量と回転運動量とから算出された同次変換行列を乗じて、1補間周期の間に補間動作させたときの到達点のロボット基準座標系から見た同次変換行列を算出し、これを逆演算して関節変数を求め、これによって関節補間による補間量に直線補間による補間量を加えた移動量を得ることにより行われることを特徴とする請求項2に記載された多関節型ロボットの速度制御法。
- 前記異種補間動作が直線補間から関節補間に移る場合の速度結合処理は、現移動区間における直線補間動作の現時刻に到達するTCPのロボット基準座標系から見た同次変換行列を算出し、これを逆演算して得られる関節変数を関節補間動作する次の移動区間の始点と見たて、該関節補間動作の全軸の速度関数をもとに現時刻で補間動作を実行したときの各軸の補間移動量を算出し、始点を表す全軸の関節変数に補間動作を実行したときの各軸の補間移動量を加算して、1補間周期の間に補間動作させたときのロボットの全軸の関節変数を算出し、これによって直線補間による補間量に関節補間による補間量を加えた移動量を得ることにより行われることを特徴とする請求項2に記載された多関節型ロボットの速度制御法。
- 前記速度の結合処理の可否は、現移動区間において減速状態にあり、かつその移動区間における残存減速時間が次の移動区間の加速時間以下となっているかどうかで判定するようにしたことを特徴とする請求項2ないし請求項4のいずれか一項に記載された多関節型ロボットの速度制御法。
- 異種補間動作における速度の結合処理が適用される速度関数は、現移動区間の減速時間と次の移動区間の加速時間とを一致させておくことを特徴とする請求項2ないし請求項5のいずれか一項に記載された多関節型ロボットの速度制御法。
- 次の移動区間の加速時間が現移動区間の減速時間よりも短い場合は、次の移動区間の加速時間を前記減速時間に一致させておくことを特徴とする請求項6に記載された多関節型ロボットの速度制御法。
- 現移動区間の減速時間が次の移動区間の加速時間よりも短い場合は、現移動区間の減速時間を前記加速時間に一致させておくことを特徴とする請求項6に記載された多関節型ロボットの速度制御法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043686A JP2004252814A (ja) | 2003-02-21 | 2003-02-21 | 多関節型ロボットの速度制御法および制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043686A JP2004252814A (ja) | 2003-02-21 | 2003-02-21 | 多関節型ロボットの速度制御法および制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004252814A true JP2004252814A (ja) | 2004-09-09 |
Family
ID=33026616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003043686A Pending JP2004252814A (ja) | 2003-02-21 | 2003-02-21 | 多関節型ロボットの速度制御法および制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004252814A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5208325B1 (ja) * | 2011-09-15 | 2013-06-12 | 三菱電機株式会社 | 数値制御装置、加工システム、および数値制御方法 |
JP2014534083A (ja) * | 2011-11-02 | 2014-12-18 | サムスン ヘビー インダストリーズ カンパニー リミテッド | リアルタイムウィービングモーション制御装置およびその方法 |
JP2015104773A (ja) * | 2013-11-29 | 2015-06-08 | 株式会社ダイヘン | マニピュレータの移動制御装置及び移動制御方法 |
CN105511407A (zh) * | 2014-10-14 | 2016-04-20 | 发那科株式会社 | 数值控制装置 |
KR20190112643A (ko) | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | 로봇 제어 장치, 로봇 제어 방법, 프로그램 |
KR20190112644A (ko) | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | 로봇 제어 장치, 로봇 제어 방법, 프로그램 |
JP2020019125A (ja) * | 2018-08-03 | 2020-02-06 | パナソニックIpマネジメント株式会社 | ロボット制御方法 |
CN112486034A (zh) * | 2020-11-09 | 2021-03-12 | 北京配天技术有限公司 | 验证轨迹规划的方法、电子设备及存储介质 |
-
2003
- 2003-02-21 JP JP2003043686A patent/JP2004252814A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678500B2 (en) | 2011-09-15 | 2017-06-13 | Mitsubishi Electric Corporation | Machining program creating device numerical control device, machining system, machining program creating method, numerical control method, and machining program |
JP5208325B1 (ja) * | 2011-09-15 | 2013-06-12 | 三菱電機株式会社 | 数値制御装置、加工システム、および数値制御方法 |
JP2014534083A (ja) * | 2011-11-02 | 2014-12-18 | サムスン ヘビー インダストリーズ カンパニー リミテッド | リアルタイムウィービングモーション制御装置およびその方法 |
US9302390B2 (en) | 2011-11-02 | 2016-04-05 | Samsung Heavy Ind. Co., Ltd. | Device and method for controlling weaving motion in real time |
JP2015104773A (ja) * | 2013-11-29 | 2015-06-08 | 株式会社ダイヘン | マニピュレータの移動制御装置及び移動制御方法 |
US10514681B2 (en) | 2014-10-14 | 2019-12-24 | Fanuc Corporation | Numerical controller including overlap function between arbitrary blocks by common acceleration/deceleration control unit |
CN105511407A (zh) * | 2014-10-14 | 2016-04-20 | 发那科株式会社 | 数值控制装置 |
JP2016081172A (ja) * | 2014-10-14 | 2016-05-16 | ファナック株式会社 | 共通加減速制御部による任意ブロック間のオーバラップ機能を備えた数値制御装置 |
CN105511407B (zh) * | 2014-10-14 | 2018-01-12 | 发那科株式会社 | 数值控制装置 |
KR20190112643A (ko) | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | 로봇 제어 장치, 로봇 제어 방법, 프로그램 |
KR20190112644A (ko) | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | 로봇 제어 장치, 로봇 제어 방법, 프로그램 |
US11185981B2 (en) | 2018-03-26 | 2021-11-30 | Nidec Corporation | Robot control apparatus, robot control method, and program |
JP2020019125A (ja) * | 2018-08-03 | 2020-02-06 | パナソニックIpマネジメント株式会社 | ロボット制御方法 |
JP7108893B2 (ja) | 2018-08-03 | 2022-07-29 | パナソニックIpマネジメント株式会社 | ロボット制御方法 |
CN112486034A (zh) * | 2020-11-09 | 2021-03-12 | 北京配天技术有限公司 | 验证轨迹规划的方法、电子设备及存储介质 |
CN112486034B (zh) * | 2020-11-09 | 2023-11-10 | 北京配天技术有限公司 | 验证轨迹规划的方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3566822B1 (en) | Robot joint space point-to-point movement trajectory planning method | |
JP4922584B2 (ja) | ロボットシステム | |
JP2514490B2 (ja) | 産業用ロボットの連動手動操作による教示制御方法 | |
EP1477284A1 (en) | Drive control method and drive controller | |
JP6501470B2 (ja) | 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体 | |
JPH06198584A (ja) | 産業用ロボットの手動操作による教示制御装置および教示方法 | |
JP2004252814A (ja) | 多関節型ロボットの速度制御法および制御装置 | |
CN103778843B (zh) | 一种工业机器人示教再现方法 | |
KR0160998B1 (ko) | 로보트의 구동경로 계획방법 | |
JP5858168B2 (ja) | リアルタイムウィービングモーション制御装置およびその方法 | |
JP2007000954A (ja) | ロボット教示装置及び方法 | |
JP2014161917A (ja) | ロボット制御システム、ロボット、ロボット制御方法及びプログラム | |
JP6123595B2 (ja) | 2軸ロボットの速度制御方法 | |
JP3689194B2 (ja) | ロボットの制御方法 | |
JPH02219107A (ja) | 数値制御装置 | |
JPH10286788A (ja) | 軌跡制御装置 | |
JPH1076489A (ja) | ロボットアーム教示方法及び装置 | |
JPH08123531A (ja) | 軌道の制御方法 | |
JP6046994B2 (ja) | 制御装置 | |
JP2020097083A (ja) | ロボットの制御装置及び制御方法 | |
JPH1148091A (ja) | 軌跡制御装置 | |
JPS6116305A (ja) | ロボツト制御方法およびその装置 | |
JPS63150183A (ja) | ロボツトの運動制御方法 | |
JPS6115207A (ja) | ロボツト制御方法およびその装置 | |
JPS63106010A (ja) | ロボツトの経路移動制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080827 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081022 |