(57)【要約】【課題】  ロボット可動部の軌道が補間指令値による軌道からずれることを防止しつつ、動作を滑らかなものとすることができるロボットの制御方法および制御装置を提供する。【解決手段】  教示点間のロボットの動作を補間指令値により制御するロボットの制御において、ロボットをＣＰ制御により制御する場合、補間指令値に対して所定のマトリクスフィルタ処理を行った後、ロボットの各軸の指令値を生成する逆変換を行うものである。【選択図】  図１
2005118995.tif 000002
【特許請求の範囲】
【請求項１】
教示点間のロボットの動作を補間指令値により制御するロボットの制御方法であって、
ロボットを直交座標系補間動作により制御する場合、補間指令値に対して所定のマトリクスフィルタ処理を行った後、ロボットの各軸の指令値を生成する逆変換を行うことを特徴とするロボットの制御方法。
【請求項２】
所定のマトリクスフィルタ処理が、補間指令値の現在値を含む直近の指令値の所要数を平均する処理であることを特徴とする請求項１記載のロボットの制御方法。
【請求項３】
ロボットを各軸補間動作により制御する場合、前記各軸の指令値に対し所定のフィルタ処理を行うことを特徴とする請求項１記載のロボットの制御方法。
【請求項４】
所定のフィルタ処理が、各軸の指令値の現在値を含む直近の指令値の所要数を平均する処理であることを特徴とする請求項３記載のロボットの制御方法。
【請求項５】
サーボ処理部の制御遅れを各軸の指令値により補償することを特徴とする請求項１、２、３または４記載のロボットの制御方法。
【請求項６】
教示点間のロボットの動作を補間指令値により制御するロボットの制御装置であって、
マトリクスフィルタ処理部を備え、
ロボットを直交座標系補間動作により制御する場合、該マトリクスフィルタ処理部により補間指令値に対して所定のマトリクスフィルタ処理を行った後、ロボットの各軸の指令値を生成する逆変換を行う
ことを特徴とするロボットの制御装置。
【請求項７】
所定のマトリクスフィルタ処理が、補間指令値の現在値を含む直近の指令値の所要数を平均する処理であることを特徴とする請求項７記載のロボットの制御装置。
【請求項８】
各軸フィルタ処理部を備え、
ロボットを各軸補間動作により制御する場合、該各軸フィルタ処理部により所定のフィルタ処理を行うことを特徴とする請求項６記載のロボットの制御装置。    
【請求項９】
所定のフィルタ処理が、各軸の指令値の現在値を含む直近の指令値の所要数を平均する処理であることを特徴とする請求項９記載のロボットの制御装置。
【請求項１０】
サーボ処理部がフィードフォワード制御手段を備え、
該フィードフォワード制御手段によりサーボ処理部の制御遅れが補償されることを特徴とする請求項６、７、８または９記載のロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットの制御方法および制御装置に関する。さらに詳しくは、ロボットの動作を滑らかに制御するロボットの制御方法および制御装置に関する。
【背景技術】
【０００２】
従来より、アーク溶接ロボットや塗装ロボットにおいては、ロボットアームの先端を所定経路上を一定の速度で移動させる制御がなされている。この場合、教示作業の容易なことおよび経路修正が容易なことより、教示の際には主要点のみを教示しておいて、直線補間あるいは円弧補間などの方法により教示点間の位置についての指令値（補間指令値）を所定時間間隔で算出し、この補間指令値をロボットに入力してロボットを制御することがなされている。
【０００３】
ところが、図７に示すような位置関係で、多関節型のロボット１００のアーム先端を点Ｐ→点Ｑ→点Ｒ→点Ｐと順次直線補間により移動させるような場合、特に点Ｑと点Ｒとの間でアーム先端が三角形ＰＱＲの内側にくぼむ曲線Ｌにより示されるような軌道で移動し、軌道精度が悪化するという現象が起こる。
【０００４】
これは、図８に示すように、ロボット１００の各軸が、位置比例ゲインＫPの比例要素１０１と伝達関数ＧPで表される制御対象１０２とから構成される一次遅れ系であり、軸毎に異なる遅れが生じることによる。
【０００５】
このため、図９に示すように、補間指令値の変化に応じて各軸速度の補正動作を前倒しで行うフィードフォワード制御器１０３をサーボ系に組み込むようにして、アーム先端が精確に補間指令値による軌道に追従するよう制御することが行われている。ところが、このように単にアーム先端の軌道を精確に制御しようとするだけではロボットが滑らかに動作せず、例えばアーム先端の停止の際に不要な振動が励起されてしまうという問題がある。
【０００６】
すなわち、ロボットに与えられる動作指令は、図１０（ａ）に示すような、ロボット可動部の速度Ｖを単純な台形状に変化させる加減速パターンによりなされるのが通常である。このとき、加速度Ａは同図（ｂ）のように段階的に変化し、また、加速度Ａの変化率を示すジャークＪは、同図（ｃ）のように、加減速の開始および終了の各時点ｔ1，ｔ2，ｔ3，ｔ4において絶対値が無限大の値となるように変化する。したがって、アーム各軸の動作を単に補間指令値に精確に追従させるよう制御するだけではロボット可動部の加速度の変化が急峻なものとなるため、動作を滑らかなものとすることはできない。
【０００７】
そこで、従来、ロボット各軸の制御系に与えられる補間指令値に対して、一次遅れ処理や平均化処理を利用したフィルタ処理を実施し（急激な姿勢変化を抑制するために平均化処理を利用する例として、特許第２７４７８０２号公報参照）、加減速パターンをなまらせるようにして、動作を滑らかなものとすることが行われている。ところが、この方法では前掲の理由によって、ロボット可動部の軌道が補間指令値による軌道からずれるのを防止できないという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明はかかる従来技術の課題に鑑みなされたものであって、ロボット可動部の軌道が補間指令値による軌道からずれることを防止しつつ、動作を滑らかなものとすることができるロボットの制御方法および制御装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明のロボットの制御方法は、教示点間のロボットの動作を補間指令値により制御するロボットの制御方法であって、ロボットを直交座標系補間動作により制御する場合、補間指令値に対して所定のマトリクスフィルタ処理を行った後、ロボットの各軸の指令値を生成する逆変換を行うことを特徴とする。
【００１０】
本発明のロボットの制御方法においては、所定のマトリクスフィルタ処理が、例えば、補間指令値の現在値を含む直近の指令値の所要数を平均する処理とされる。
【００１１】
また、本発明のロボットの制御方法においては、ロボットを各軸補間動作により制御する場合、前記各軸の指令値に対し所定のフィルタ処理を行うものとされる。その場合、所定のフィルタ処理は、例えば各軸の指令値の現在値を含む直近の指令値の所要数を平均する処理であるものとされる。
【００１２】
さらに、本発明のロボットの制御方法においては、サーボ処理部の制御遅れを各軸の指令値により補償するのが好ましい。
【００１３】
一方、本発明のロボットの制御装置は、教示点間のロボットの動作を補間指令値により制御するロボットの制御装置であって、マトリクスフィルタ処理部を備え、ロボットを直交座標系補間動作により制御する場合、該マトリクスフィルタ処理部により補間指令値に対して所定のマトリクスフィルタ処理を行った後、ロボットの各軸の指令値を生成する逆変換を行うことを特徴とする。
【００１４】
本発明のロボットの制御装置においては、所定のマトリクスフィルタ処理が、例えば、補間指令値の現在値を含む直近の指令値の所要数を平均する処理であるものとされる。
【００１５】
また、本発明のロボットの制御装置においては、各軸フィルタ処理部を備え、ロボットを各軸補間動作により制御する場合、該各軸フィルタ処理部により所定のフィルタ処理を行うのが好ましい。その場合、所定のフィルタ処理は、例えば各軸の指令値の現在値を含む直近の指令値の所要数を平均する処理とされる。
【００１６】
さらに、本発明のロボットの制御装置においては、サーボ処理部がフィードフォワード制御手段を備え、該フィードフォワード制御手段によりサーボ処理部の制御遅れが補償されるのが好ましい。
【発明の効果】
【００１７】
以上詳述したように、本発明によれば、ロボットを直交座標系補間動作により制御する場合、ロボットを精度よく経路に沿って移動させることができるとともに、動作を滑らかなものとすることができるという優れた効果が得られる。
【発明を実施するための最良の形態】
【００１８】
本発明は前記の如く構成されているので、ロボットを直交座標系補間動作により制御する場合、ロボットを精度よく経路に沿って移動させることができるとともに、動作を滑らかなものとすることができる。
【００１９】
以下、添付図面を参照しながら本発明を実施形態に基づいて説明するが、本発明はかかる実施形態のみに限定されるものではない。
【００２０】
実施形態１
図１に、本発明のロボットの制御方法に用いる制御装置の構成を機能ブロック図で示し、同制御装置Ａは、絶対座標系やロボットの手首座標系などで表される各教示点における教示データを記憶する教示データ記憶部１０と、教示データに基づいて、各教示点間をロボット可動部が所定の軌道で移動するよう制御するための演算処理を行う軌道生成部２０と、サーボ処理部３０と、ＣＰ（Continuous Path）制御（直交座標系補間動作）による補間動作とＰＴＰ（Point to Point）制御（各軸補間動作）による補間動作との切り替えを指示する補間動作切替指示部４０とを主要構成要素として備えてなるものである。なお、かかる構成の制御装置Ａは、具体的には、ＣＰＵを中心として、後述する処理に対応させた制御プログラム等が格納されたＲＯＭ、ＲＡＭ、入出力インターフェース等を組み合わせることにより実現される。
【００２１】
軌道生成部２０は、第１軌道計算部（補間指令値（直交座標系指令値）生成部）２１、マトリクスフィルタ処理部２２、第２軌道計算部（各軸指令値生成部）２３および各軸フィルタ処理部２４から構成される。
【００２２】
第１軌道計算部２１は直交座標系補間動作（ＣＰ制御）による補間動作を行う場合、すなわち直線補間動作や円弧補間動作を行う場合は、教示データ記憶部１０からの教示データ、つまり各教示点におけるロボット可動部の位置データおよび姿勢データに基づき所定の加減速パターン（図１０参照）に従って、直線補間または円弧補間による補間指令値を生成し、マトリクスフィルタ処理部２２に出力する。このとき、第１軌道計算部２１においては、教示データの各成分をロボット固有の座標系（ロボット座標系）における直交成分（Ｘ，Ｙ，Ｚ）に変換する座標順変換処理が実施される。また、各軸補間動作（ＰＴＰ制御）による補間動作を行う場合は教示データに座標順変換処理のみを実施して、第２軌道計算部２３に出力する。
【００２３】
マトリクスフィルタ処理部２２は、第１軌道計算部２１から入力される各補間指令値に対して、各補間指令値が準拠する加減速パターンをなまらせるためのマトリクスフィルタ処理を実施して、第２軌道計算部２３に出力する。このマトリクスフィルタ処理については後で詳細に説明する。
【００２４】
第２軌道計算部２３は、マトリクスフィルタ処理部２２によりフィルタ処理された補間指令値、または第１軌道計算部２１から入力される教示データに基づいて、ロボット各軸の所定時間毎の位置を指示する各軸指令値を生成する。
【００２５】
すなわち、第２軌道計算部２３は、直交座標系補間動作による補間動作を行う場合、マトリクスフィルタ処理部２２からの補間指令値、すなわち所定時間毎のロボット可動部の位置データおよび姿勢データに対して座標逆変換処理を行って、所定時間毎のロボット各軸の位置を指示する各軸指令値を生成し、サーボ処理部３０に出力する。以下、直交座標系補間動作による各軸指令値を直交座標系補間動作各軸指令値という。
【００２６】
また、各軸補間動作による補間動作を行う場合、第２軌道計算部２３は、第１軌道計算部２１からの教示データに基づきロボット各軸毎の所定の加減速パターンに従って各軸指令値を生成し、各軸フィルタ処理部２４に出力する。以下、各軸補間動作による各軸指令値を各軸補間動作各軸指令値という。
【００２７】
各軸フィルタ処理部２４は、第２軌道計算部２３からの各軸補間動作各軸指令値に加減速パターンをなまらせるための所定の各軸フィルタ処理を実施し、サーボ処理部３０に出力する。なお、各軸フィルタ処理部２４における各軸フィルタ処理についても後で詳細に説明する。
【００２８】
次に、図２を参照して、サーボ処理部３０を説明する。
【００２９】
サーボ処理部３０はロボットの各軸毎に設けられており、ロボット各軸が軌道生成部２０からの各軸指令値に精確に追従するようフィードバック制御する制御系として構成される。すなわち、サーボ処理部３０は、各軸指令値（ｘ）からサーボモータＭのエンコーダ３１の位置検出値ｚを減算しその偏差信号ｅを出力する減算器３２と、偏差信号ｅを増幅するサーボ増幅器３３と、各軸指令値（ｘ）の変化に対して一次遅れで応答するロボット各軸の速度を各軸指令値（ｘ）に基づき前倒しで補正するよう補償値ｗを出力するフィードフォワード制御器３４と、サーボ増幅器３３の出力信号ｖに補償値ｗを加算してサーボモータＭに出力する加算器３５とから構成される。
【００３０】
次に、前述したマトリクスフィルタ処理部２２におけるマトリクスフィルタ処理を説明する。
【００３１】
第１軌道計算部２１により生成される補間指令値Ｈiは、４列４行の行列を用いて式１のように表すことができる。
【００３２】
【数１】
2005118995.tif 000003
【００３３】
ここで、この行列を構成しているベクトルＰ（Ｐx，Ｐy，Ｐz）は、ロボット可動部、例えばロボットアーム先端の位置を表し、またこの行列を構成している式２で表される３列３行の行列Ｓは、ロボット可動部、ロボットアームの姿勢を表している。
【００３４】
【数２】
2005118995.tif 000004
【００３５】
いま、時刻ｔにおける補間指令値Ｈtは、前述したように、位置ベクトルＰtと姿勢行列Ｓtとを用いて式３のように表される。
【００３６】
【数３】
2005118995.tif 000005
【００３７】
そして、補間指令値の現在値Ｈtに対して、この現在値Ｈtを含む直近ｎ個の補間指令値Ｈt、Ｈt-1、…、Ｈt-(n-1)を平均化するようにして、ロボット可動部の加減速パターンをなまらせるためのマトリクスフィルタ処理を実施する。このとき、マトリクスフィルタ処理部２２の出力信号Ｈuを構成する位置データＰiの平均値Ｐuは、下記式（４）で算出される。
【００３８】
Ｐu＝（Pt+Pt-1+…+Pt-(n-1)）/ｎ                          （４）
また、姿勢データＳiの平均値Ｓuは下記各式（５）、（６）、（７）で算出される。すなわち、Ｓi＝［ｎi，ｏi，ａi］として、
【００３９】
【数４】
2005118995.tif 000006
【００４０】
【数５】
2005118995.tif 000007
【００４１】
【数６】
2005118995.tif 000008
【００４２】
ただし、式（５）、（６）、（７）中のサンプル数（ｍ）は、位置データのサンプル数（ｎ）と一致させてもよい。
【００４３】
なお、姿勢行列Ｓは、オイラー角Ｏ，Ａ，Ｔに置き換えることもできる。そこで、演算処理の都合上、姿勢に関する補間指令値の平均化に際しては、このオイラー角Ｏ，Ａ，Ｔに置き換えたものを用いることもできる。また、当然のことながら、姿勢行列ＳをＲＰＹに置き換えて平均化処理を行ってもよい。
【００４４】
そして、この位置ベクトルＰおよびオイラー角Ｏ，Ａ，Ｔを用いて平均化した後の、時刻ｕにおける位置の補間指令値Ｐu、および姿勢の補間指令値Ｏu，Ａu，Ｔuは、それぞれ式（８）、（９）、（１０）、（１１）により表される。なお、式（８）、（９）、（１０）、（１１）中のｎ，ｍはそれぞれサンプル数を表す。ここで、サンプル数ｍ，ｎは等しくてもよく、あるいは異なっていてもよい。
【００４５】
Ｐu＝（Pt+Pt-1+…+Pt-(n-1)）/n                            （８）
Ｏu＝（Ov+Ov-1+…+Ov-(m-1)）/m                            （９）
Ａu＝（Av+Av-1+…+Av-(m-1)）/m                            （１０）
Ｔu＝（Tv+Tv-1+…+Tv-(m-1)）/m                            （１１）
ここで、位置と姿勢の補間指令値の平均化の際に、両者のサンプル数が異なる場合は、サンプル数が少ない方のサンプリング時間帯が、サンプル数が多い方のサンプリング時間帯に包含されるようにしてサンプリングを行うことは、特許第２７４７８０２号公報と同様である。
【００４６】
次に、各軸フィルタ処理部２４が実施する各軸フィルタ処理につき説明する。      
各軸フィルタ処理部２４は、各軸指令値の現在値Ｊtに対して、この現在値Ｊtを含む直近ｑ個の各軸指令値Ｊt、Ｊt-1、…、Ｊt-(q-1)を平均化し、この平均値Ｊuをサーボ処理部３０に出力する。このとき、平均値Ｊuは、下記式（１２）で算出される。
【００４７】
Ｊu＝（Ｊt＋Ｊt-1+…+Ｊt-(q-1)）/ｑ                    （１２）
このように、実施形態１の制御装置Ａは、直交座標系補間動作による補間動作の実行時、第１軌道計算部２１が生成する補間指令値に対して、加減速パターンをなまらせるためのマトリクスフィルタ処理を実施した後、第２軌道計算部２３において、前記フィルタ処理された補間指令値に基づき各軸指令値を生成するので、ロボットの動作を滑らかなものとすることができるとともに、サーボ処理部３０において例えばフィードフォワード制御を実施することによって補間指令値による直線軌道に対して精確（円弧軌道の場合は、ほぼ精確）に追従するよう制御することが可能となる。
【００４８】
また、精密な軌道追従性が問題とならない各軸補間動作においては、第２軌道計算部２３において生成された各軸指令値に対して簡単な演算処理の各軸フィルタ処理を実施するようにして、加減速パターンをなまらせるので、ロボットの動作を滑らかなものとしつつハードウェアにかかる負荷を軽減して、動作の高速化を図ることも可能となる。
【００４９】
実施形態２
本発明の実施形態２のロボット制御装置は、図３に示す重ね合わせ処理部２５を、実施形態１のロボット制御装置Ａの軌道生成部２０に付加して設けたものでその余の構成は同一とされる。
【００５０】
すなわち、図４に示す経路Ｌ1のように、ロボット可動部を、各軸補間動作により点Ｄから点Ｅに移動し、直交座標系補間動作により点Ｅから点Ｆに移動し、各軸補間動作により点Ｆから点Ｇに移動する場合を考える。この場合、実施形態１の制御装置Ａでは、点Ｅと点Ｆの２点で補間動作の切り替え、すなわちフィルタ処理の切り替えが行われる。このため、図５に示すように、点Ｅおよび点Ｆでアーム先端を一旦停止させる必要が生じる。
【００５１】
実施形態２では、これを回避するために、図６に示すように、例えばアーム先端が点Ｅの精度範囲Ｅ´に入った時点に、点Ｅから点Ｆへの補間動作を重ね合わせて開始するようにして、ロボット可動部を停止させることなく例えば内回りの軌道Ｌ2に沿って滑らかに移動させることが可能となる。
【００５２】
すなわち、実施形態２の補間動作切替指示部４０は、アーム先端が精度範囲Ｅ´に入った時点に、第１軌道計算部２１に対して、各教示点Ｅ、Ｆ間に対応する、直線補間による補間指令値の生成を開始するように指示する。第１軌道計算部２１により生成された各補間指令値は、マトリクスフィルタ処理部２２において前掲のフィルタ処理が施されて、第２軌道計算部２３に出力される。
【００５３】
第２軌道計算部２３は、各教示点Ｄ、Ｅの教示データに基づき各軸補間動作による各軸指令値ＪAを生成し、各軸フィルタ処理部２４に出力すると同時に、マトリクスフィルタ処理部２２からの各教示点Ｅ、Ｆ間に対応する補間指令値に基づき各軸指令値ＪBを生成し、重ね合わせ処理部２５に出力する。また、各軸フィルタ処理部２４は、第２軌道計算部２３からの各軸指令値ＪAに対して前掲の各軸フィルタ処理を施して、重ね合わせ処理部２５に出力する。
【００５４】
重ね合わせ処理部２５は、各軸フィルタ処理部２４からの各軸指令値ＪAと第２軌道計算部２３からの各軸指令値ＪBとに対して下記の重ね合わせ処理を実施し、この処理結果である各軸指令値Ｊnをサーボ処理部３０に出力する。
【００５５】
すなわち、各各軸指令値ＪA、ＪBおよび点Ｅの各軸値ＪEを下記式（１３）、（１４）、（１５）で定義するものとすると、
ＪA＝（ＪA-1、ＪA-2、ＪA-3、…）                        （１３）
ＪB＝（ＪB-1、ＪB-2、ＪB-3、…）                        （１４）
ＪE＝（ＪE-1、ＪE-2、ＪE-3、…）                        （１５）
重ね合わせ処理後の各軸指令値Ｊnは、下記式（１６）で算出される。
【００５６】
Ｊn＝ＪB−（ＪE−ＪA）                                  （１６）
同様に、直交座標系補間動作から各軸補間動作に切り替わる点Ｆにおいては、ロボット可動部が点Ｆの精度範囲Ｆ´に入る時点に、点Ｅ、点Ｆの各教示データに対応する直交座標系補間動作各軸指令値ＪBと、点Ｆ、点Ｇの各教示データに対応する各軸補間動作各軸指令値ＪCとに対して、下記式（１７）による重ね合わせ処理が実施されて各軸指令値Ｊmが生成される。
【００５７】
Ｊm＝ＪC−（ＪF−ＪB）                                    （１７）
ただし、ＪFは点Ｆにおける各軸値を示す。
【００５８】
このように、実施形態２の制御装置においては、直交座標系補間動作による補間動作と各軸補間動作による補間動作との切り替え時に、直交座標系補間動作による補間動作と各軸補間動作による補間動作とを重ね合わせて実施するものとしているので、補間動作の切り替え点においてロボットを一旦停止させる必要がなく、滑らかに動作させることが可能となる。
【００５９】
以上、本発明を各実施形態により説明したが、本発明はこれら実施形態に限定されるものではなく、種々改変が可能である。例えば、実施形態では、補間動作を切り替えるときに重ね合わせ処理を実施するものとしたが、補間動作の切り替えが行われない場合であっても、ロボット可動部の移動経路が折れ線的に変化する各教示点において重ね合わせ処理を実施して、動作を滑らかなものとすることができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態１に係るロボットの制御方法に用いる制御装置のブロック図である。
【図２】同装置のサーボ処理部の詳細を示すブロック図である。
【図３】本発明の実施形態２に係るロボットの制御方法に用いる制御装置要部を示すブロック図である。
【図４】実施形態１の装置における問題点を説明するための模式図であり、ロボットの動作経路を示す。
【図５】実施形態１の装置における問題点を説明するための模式図であり、ロボットの動作速度の時系列変化を示す。
【図６】実施形態２の装置の特徴的動作を説明するための模式図である。
【図７】従来技術における問題点を説明するための模式図である。
【図８】従来技術における問題点を説明するためのブロック図である。
【図９】従来技術における改良例を示すブロック図である。
【図１０】同改良例における問題点を説明するための模式図であり、同（ａ）は、ロボット可動部の加減速パターンを示し、同（ｂ）はその加速度の時系列変化を示し、同（ｃ）はそのジャーク値の時系列変化を示す。
【符号の説明】
【００６１】
Ａ          制御装置
Ｍ          サーボモータ
１０          教示データ記憶部
２０          補間指令値生成部
２１          第１軌道計算部
２２          マトリクスフィルタ処理部
２３          第２軌道計算部
２４          各軸フィルタ処理部
２５          重ね合わせ処理部
３０          サーボ処理部
３４          フィードフォワード制御器
４０          補間動作切替部
【図１】
2005118995.tif 000009
【図２】
2005118995.tif 000010
【図３】
2005118995.tif 000011
【図４】
2005118995.tif 000012
【図５】
2005118995.tif 000013
【図６】
2005118995.tif 000014
【図７】
2005118995.tif 000015
【図８】
2005118995.tif 000016
【図９】
2005118995.tif 000017
【図１０】
2005118995.tif 000018