(57)【特許請求の範囲】
【請求項１】
位置制御の対象とする部位にセンサを備えたロボット機構部と、前記ロボット機構部の動作を制御する制御装置とを含むロボットであって、
前記制御装置は、
前記ロボット機構部の動作を制御する通常制御部と、
作業プログラムに指定された教示速度に、速度変化比を乗算した速度指令にて前記ロボット機構部を動作させたときに、前記センサにより検出された結果から、前記ロボット機構部の制御対象の軌跡または位置を前記通常制御部に与えられた目標軌跡または目標位置に近づけるための学習補正量、もしくは前記ロボット機構部を動作させたときに生じる前記制御対象の振動を抑制するための学習補正量を算出する学習を行う学習制御部と、
作業プログラムにおける位置又は速度の教示及び修正を行う教示制御部と、
を有し、
前記ロボット機構部の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行い、
前記通常制御部は、
作業プログラムで設定された教示位置に基づく位置指令と、前記学習制御部により算出された学習補正量と、作業プログラムで設定された教示速度に前記学習補正量の算出時に使われた速度変化比を乗算した速度指令とにより前記ロボット機構部を動作させ、
前記学習制御部により学習補正量が算出された後に、前記教示制御部により教示点の位置修正が行われた際、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、前記教示点への移動を前記教示速度で制御し、前記所定距離未満のときは、前記教示点への移動を前記速度指令で制御する、ことを特徴とするロボット。
【請求項２】
前記学習制御部は、所定の最大速度変化比に至るまで複数回に渡って速度変化比を変化させながら学習補正量を算出する学習を行う、請求項１に記載のロボット。
【請求項３】
前記所定の最大速度変化比は、前記ロボット機構部を動作させた時に得られたデータ、前記ロボット機構部で許容される最大速度、最大加速度又は減速機の寿命に基づいて、前記学習制御部により算出される、請求項２に記載のロボット。
【請求項４】
前記所定の最大速度変化比を外部から前記制御装置に設定する、請求項２に記載のロボット。
【請求項５】
前記通常制御部は、前記学習制御部により学習補正量が算出された後に、前記教示制御部により教示点の位置修正が行われた際、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、前記教示点への移動及び前記教示点からその次の教示点への移動を教示速度で制御し、前記所定距離未満のときは、前記教示点への移動及び前記教示点からその次の教示点への移動を前記速度指令で制御する、請求項１に記載のロボット。
【請求項６】
前記通常制御部は、前記学習制御部により学習補正量が算出された後に、前記教示制御部により速度指令の修正が行われた際、修正後の速度指令と修正前の速度指令との間の差が所定比率または所定値以上のときは、前記教示点への移動を教示速度で制御し、前記所定比率または前記所定値未満のときは、前記教示点への移動を前記速度指令で制御する、請求項１に記載のロボット。
【請求項７】
前記学習制御部は、前記センサから検出されたデータに対し、前記ロボット機構部の位置振動成分を算出するためのフィルタを備えた、請求項１乃至６のいずれか一項に記載のロボット。
【請求項８】
前記学習制御部は、前記センサから検出されたデータをロボットの各軸の基本三軸に逆変換することにより、位置振動成分を含んだ各軸上の位置を計算する、請求項７に記載のロボット。
【請求項９】
前記学習制御部は、前記ロボット機構部に所定の動作を実行させて、前記センサの位置及び傾きを算出する、請求項１乃至８のいずれか一項に記載のロボット。
【請求項１０】
前記学習制御部は、前記学習補正量を保存するためのメモリをさらに有する、請求項１乃至９のいずれか一項に記載のロボット。
【請求項１１】
前記センサは、ビジョンセンサ、加速度センサ、ジャイロセンサ、慣性センサ、光学センサまたは歪ゲージのいずれかである、請求項１乃至１０のいずれか一項に記載のロボット。
【請求項１２】
前記センサは、ロボット機構部へ着脱可能な取付手段を備えた、請求項１乃至１１のいずれか一項に記載のロボット。
【請求項１３】
前記センサは、前記取付手段としての磁石を備えている、請求項１２に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は学習制御機能を備えたロボットに関し、特にアーム側に取り付けたセンサを利用して動作の高速化を行うロボットに関する。
【背景技術】
【０００２】
ロボットにおいて、サーボモータで駆動される被駆動体の位置や速度を制御するために、通常、位置フィードバック制御、速度フィードバック制御さらには電流フィードバック制御がなされ、被駆動体が指令位置、速度と一致するように制御がなされる。
【０００３】
このような位置、速度、電流のフィードバック制御を行っても、ロボットの高速動作では、軌跡誤差・位置振動成分が発生する。また、高速動作ではモータ側とアーム側の動特性が違うために、モータエンコーダからはアーム側の軌跡誤差・位置振動成分を直接測定する事はできなくなる。そのために、アーム側に直接センサを取り付けて軌跡誤差・位置振動成分を計測する必要がある。また、このようなセンサとして加速度センサを使用して学習制御を行う例が公開されている（特許文献１）。
【０００４】
図１に学習制御を実施する学習制御フィルタを備えたロボットの概略図を示す。ロボット１０００は、ロボット機構部１と、ロボット機構部１を制御する制御装置２とにより構成される。制御装置２は、ロボットの学習制御を実施する学習制御部３と、ロボット機構部１を直接的に駆動する通常制御部４とを備えている。
【０００５】
ロボット機構部１には、加速度センサ１０、アーム１１、アーム先端部１２、モータ（図示せず）が設けられている。制御装置２に含まれる通常制御部４は、ロボット機構部１のモータに信号を入力し、アーム１１を駆動し、アーム先端部１２を所望の位置に移動させて、例えば溶接等の作業を実行する。アーム先端部１２には加速度センサ１０が設置されており、アーム先端部１２の空間的な位置データ（yj(k)）を得ることができる。加速度センサ１０からの位置データ（yj(k)）は学習制御部３に出力され、学習制御に利用される。ここで、ｊは試行回数、kは時間、図１中のNsは一試行のサンプリング数を表す。yd(k)は位置指令データ、yj(k)は前回の制御対象量、ej(k)はフィルタを通して、yd(k)とyj(k)から計算された目的補正量、uj(k)は前回の学習補正量を表す。
【０００６】
通常制御部４には、位置制御部４１、速度制御部４２、電流制御部４３、アンプ４４、微分手段４５が設けられている。位置制御部４１は、制御装置２の外部から入力される位置指令データ（yd(k)）を受信するとともに、ロボット機構部１のモータ位置等の位置情報を受信し、ロボット機構部１のアーム先端部１２の所望の位置情報を速度制御部４２に対して出力する。微分手段４５は、ロボット機構部１からフィードバックされるモータ位置情報を受信し、モータ速度を算出し、これを速度制御部４２に対して出力する。
【０００７】
速度制御部４２は、位置制御部４１からの位置情報及び微分手段４５からのモータ速度情報を勘案して所望のモータ速度を算出し、これを電流制御部４３に対して出力する。電流制御部４３は、アンプ４４からフィードバックされる電流値を受信するとともに、速度制御部４２から入力された所望のモータ速度となるようにモータに流す電流を算出し、これをアンプ４４に対して出力する。アンプ４４は、電流制御部４３からの電流値に基づいて所望の電力を算出し、これをロボット機構部１のモータ（図示せず）に投入する。
【０００８】
学習制御部３には、第１メモリ３１、学習制御フィルタL(q)３２、ローパスフィルタQ(q)３３、第２メモリ３４、第３メモリ３６２が設けられている。第１メモリ３１には、アーム先端部１２に関する位置指令データ（yd(k)）と、加速度センサ１０が測定した位置データ（yj(k)）からフィルタを通して、目的補正量ej(k)が入力され、これを記憶するともに、目的補正量ej(k)をL(q)３２に対して出力する。ここで、目的補正量ej(k)は、アーム先端部１２の所望の位置に対する軌跡・振動誤差に相当する。
【０００９】
学習制御フィルタL(q)３２は、L(q)３２に格納された作業プログラムを実行することにより、目的補正量ej(k)とuj(k)から学習補正量uj+1(k)を算出し、これをローパスフィルタQ(q)３３に対して出力する。Q(q)３３に入力された学習補正量uj+1(k)は、第２メモリ３４に対して出力され、第２メモリ３４に保存されるとともに、通常制御部４の位置制御部４１で算出される位置偏差データに加算される。
【００１０】
補正された位置偏差データに基づいて、ロボット機構部１が制御され、学習制御が繰り返される。学習制御は、この一連のプロセスを繰り返し実行する事により位置偏差を「０」に収束させるものである。学習制御により学習補正量を算出するための動作終了後、即ち学習稼動終了後には、図１の点線で示した学習補正量更新のためのループは実行されず、第２メモリ３４から学習補正量uj+1(k)が位置制御部４１に出力される。なお、図１の信号の流れを示す実線部分及び点線部分に関して、実線部分は通常制御部４がロボット機構部１を動作させる際に実行される部分を表し、点線部分は学習制御部３が学習稼動状態で学習制御を実行する部分を表し、点線部分は通常制御部４によるロボット機構部１の動作終了後に実行される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−１７２１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来の学習制御は、ある条件下の軌跡・振動誤差の改善という点に着目していた。しかしながら、アプリケーションの幅は狭く、また使い勝手に関しては余り考慮されていないという問題があった。
【００１３】
センサを使った学習制御の例である上記従来技術は、工作機械の例であるものの、センサとして加速度センサを使用する事を想定している。ロボットに加速度センサを取り付けた場合、直交座標での軌跡・位置誤差が抽出可能であるが、そのままではセンサデータから各軸の軌跡・位置誤差の計算ができないという問題があった。
【００１４】
また、上記従来技術では、加速度センサから軌跡・振動誤差を抽出する際に通常のハイパスフィルタを用いて抽出している。工作機械の場合は対象とするフィードバック制御帯域が数十Hz〜数百Hzと高いため、すなわちフィードバック制御がその帯域で非常に良い性能を持っているため、オフセットデータを取り除くために10Hz以下のデータを用いて学習制御することができなくても、大きな問題は無く、オフセットはそれ程重要な問題ではない。一方、産業用ロボットにおいては、通常、フィードバックの制御帯域は数Hzであり、それ以上高い帯域はフィードフォワードで制御していて、性能がモデル誤差に依存しやすいため、その部分を学習制御で補正している。例えば、加速度センサデータのオフセットを除去するために1Hzのハイパスフィルタをかけた場合は10Hz前後までの軌跡・振動誤差の位相が回転する。そのために、除去したい帯域の軌跡・振動誤差データまで加工されてしまい、学習制御の性能が劣化してしまうという問題があった。
【００１５】
さらに、学習制御のフィルタの調整には、二つの難しい問題がある。一つ目は収束条件である。収束条件とは繰り返し学習を行うと必ず収束できるという保証である。これが保障されていないと、学習回数を重ねる毎に発散してしまい最終的には動作を悪化させてしまう事になる。また、二つ目は単調減少条件である。この条件は学習を重ねる毎に軌跡・振動誤差が減少する事を保障する条件である。これが保障されていないと、収束する過程で軌跡・振動誤差が非常に大きくなってから収束する可能性が生じることとなる。そうすると、学習過程で大きく軌跡がずれたり、振動を起こしたりして、周辺機器にも損傷を引き起こす可能性がある。この二つの条件を満たすための調整は経験に基づいて試行錯誤で行われているのが実情である。そのうえ、ロボットは姿勢に応じてシステムが変化するためロバスト性までも考慮しなければならない。学習制御フィルタはこれらの要素により複雑になりすぎ実装が非常に難しく、且つ設計過程計算も煩雑すぎるために、これらの条件を満たすようなコントローラは産業用ロボットの世界では使われていないのが現状である。工作機械で使われている例もあるが、実際にはそのアプリケーション毎に経験に基づいて調整が行われているのが実情である。これまでのところ、このような問題に対して、システマチックにパラメータの設計を行い、且つ高速化を行う学習機能を備えた産業用ロボットは存在していない。
【課題を解決するための手段】
【００１６】
本発明のロボットは、位置制御の対象とする部位にセンサを備えたロボット機構部と、ロボット機構部の動作を制御する制御装置とを含むロボットであって、制御装置は、ロボット機構部の動作を制御する通常制御部と、作業プログラムに指定された教示速度に、速度変化比を乗算した速度指令にてロボット機構部を動作させたときに、センサにより検出された結果から、ロボット機構部の制御対象の軌跡または位置を通常制御部に与えられた目標軌跡または目標位置に近づけるため、もしくはロボット機構部を動作させたときに生じる制御対象の振動を抑制するための学習補正量を算出する学習を行う学習制御部と、を有し、ロボット機構部の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行うことを特徴とする。
【００１７】
本発明の他の実施態様として、学習制御部は、所定の最大速度変化比に至るまで複数回に渡って速度変化比を変化させながら学習補正量を算出する学習を行うことが好ましい。
【００１８】
本発明の他の実施態様として、所定の最大速度変化比は、ロボット機構部を動作させた時に得られたデータ、ロボット機構部で許容される最大速度、最大加速度又は減速機の寿命に基づいて、学習制御部により算出されるようにしてもよい。
【００１９】
本発明の他の実施態様として、所定の最大速度変化比を外部から制御装置に設定するようにしてもよい。
【００２０】
本発明の他の実施態様として、周波数応答の概念を導入し、Ｈ無限大ノルムによる学習制御フィルタの設計手法を提案している。これにより、経験的な手法ではなくシステマチックな手法によりロボットの周波数応答から収束性、単調減少性を保障したフィルタの設計が可能になっている。更に、姿勢変化に対応するロバスト性についてもＨ無限大ノルムに不確定要素を組み込む事によりシステマチックに計算可能とした。このシステマチックな手法はこれらのフィルタの設計問題を判定値符号行列問題の最小化問題に帰着させている。
【００２１】
本発明の他の実施態様として、制御装置は、作業プログラムにおける位置又は速度の教示及び修正を行う教示制御部をさらに有し、通常制御部は、作業プログラムで設定された教示位置に基づく位置指令と、学習制御部により算出された学習補正量と、作業プログラムで設定された教示速度に学習補正量の算出時に使われた速度変化比を乗算した速度指令とによりロボット機構部を動作させ、学習制御部により学習補正量が算出された後に、教示制御部により教示点の位置修正が行われた際、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、教示点への移動を教示速度で制御し、所定距離未満のときは、教示点への移動を速度指令で制御するようにしてもよい。
【００２２】
本発明の他の実施態様として、通常制御部は、学習制御部により学習補正量が算出された後に、教示制御部により教示点の位置修正が行われた際、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、教示点への移動及び教示点からその次の教示点への移動を教示速度で制御し、所定距離未満のときは、教示点への移動及び教示点からその次の教示点への移動を速度指令で制御するようにしてもよい。
【００２３】
本発明の他の実施態様として、通常制御部は、学習制御部により学習補正量が算出された後に、教示制御部により速度指令の修正が行われた際、修正後の速度指令と修正前の速度指令との間の差が所定比率または所定値以上のときは、教示点への移動を教示速度で制御し、所定比率または所定値未満のときは、教示点への移動を速度指令で制御するようにしてもよい。
【００２４】
本発明の他の実施態様として、学習制御部は、センサから検出されたデータに対し、ロボット機構部の軌跡・振動誤差を算出するためのフィルタを備えるようにしてもよい。
【００２５】
本発明の他の実施態様として、学習制御部は、センサから検出されたデータを基軸三軸に逆変換することにより、軌跡・振動誤差を含んだ各軸上の位置を計算することが好ましい。
【００２６】
本発明の他の実施態様として、学習制御部は、ロボット機構部に所定の動作を実行させて、センサの位置及び傾きを算出するようにしてもよい。
【００２７】
本発明の他の実施態様として、学習制御部は、学習補正量を保存するためのメモリをさらに有することが好ましい。
【００２８】
本発明の他の実施態様として、センサは、ビジョンセンサ、加速度センサ、ジャイロセンサ、慣性センサ、光学センサまたは歪ゲージのいずれかであってもよい。
【００２９】
本発明の他の実施態様として、センサは、ロボット機構部へ着脱可能な取付手段を備えることが好ましく、取付手段として磁石を備えることがさらに好ましい。
【発明の効果】
【００３０】
本発明によれば、ロボット機構部の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行うことにより、速度変化比の変更による軌跡ずれが生じないため、ロボット機構部の動作における精度と安全性を向上させることができる。
【００３１】
さらに、本発明によれば、学習制御部が学習稼動状態で設定可能な最大速度変化比を算出し、最大速度変化比に至るまで複数回に渡って速度変化比を増加させながら学習補正量を算出する学習を行うことにより、学習中における動作の高速化を自動的に実行することができる。
【００３２】
また、ロボットの動作の高速化により、作業に必要なロボットの台数を減らし、ラインのスペースを小さくし、工程を削減する事によるシステムコストを削減することができるという効果が得られる。さらに、ロボットの保守台数も削減する事ができ、保守費用の削減にも貢献する。
【００３３】
また、ゼロ位相フィルタを導入する事により、加速度センサのオフセット問題を性能劣化させる事無く解決することができる。
【図面の簡単な説明】
【００３４】
【図１】従来のロボットの構成図である。
【図２】本発明の実施例１に係るロボットの構成図である。
【図３】本発明の実施例１に係るロボットのロボット機構部及びセンサの構成図である。
【図４】本発明の実施例１に係るロボットのロボット機構部の構成概念図である。
【図５】ワールド座標系におけるセンサの位置を示す図である。
【図６】本発明の実施例１に係るロボットを構成するロボット機構部の動作の高速化の手順について説明するためのフローチャートである。
【図７】軌跡一定の動作について説明するための図である。
【図８】減速機の寿命に基づいて最大速度変化比を求める手順について示すフローチャートである。
【図９】ゼロ位相ハイパスフィルタの効果について説明するための図である。
【図１０】ゼロ位相ハイパスフィルタにおけるデータの処理手順を示す図である。
【図１１】本発明の実施例２に係るロボットの構成図である。
【図１２】本発明の実施例２に係るロボットの動作手順について説明するためのフローチャートである。
【図１３】本発明の実施例２に係るロボットの動作手順について説明するためのフローチャートである。
【図１４】ビジョンセンサの例を示す図である。
【発明を実施するための形態】
【００３５】
以下、図面を参照して、本発明に係るロボットについて説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【実施例１】
【００３６】
図２に本発明の実施例１に係るロボット１００の概略図を示す。ロボット１００は、ロボット機構部１と、ロボット機構部１を制御する制御装置２により構成される。制御装置２は、ロボット１００の学習制御を実施する学習制御部３と、ロボット機構部１を直接的に駆動して、ロボット機構部１の動作を制御する通常制御部４とを備えている。
【００３７】
学習制御部３は、作業プログラムに指定された教示速度に、速度変化比を乗算した速度指令にてロボット機構部を動作させたときに、加速度センサ１０によって検出された結果から、ロボット機構部１の制御対象の軌跡または位置を通常制御部４に与えられた目標軌跡または目標位置に近づけるため、もしくはロボット機構部を動作させたときに生じる制御対象の振動を抑制するための学習補正量uj+1(k)を算出する学習を行う。本発明の実施例１に係るロボット１００は、通常制御部４が、ロボット機構部１の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行うことを特徴としている。学習制御部３以外は、図１に示した従来のロボットの構成と同様であるので、詳細な説明は省略する。学習制御部３には、第１メモリ３１、位置変換器３５、ハイパスフィルタ３６、逆変換器ＩＫ３７、順変換器ＦＫ３８、学習制御フィルタL(q)３２、ローパスフィルタQ(q)３３、第２メモリ３４、第３メモリ３６２、第４メモリ３９が設けられている。
【００３８】
図３に、本発明に係るロボット１００のロボット機構部１の構成図を示す。図３（ａ）はロボット機構部１の全体構成を示し、図３（ｂ）は加速度センサ１０を取り付けたガン２０の拡大図を示す。ロボット機構部１は公知のロボットマニピュレータ（以下、単に「ロボット機構部」という）であり、ガン２０が作業を行う位置姿勢に到達可能であれば、その機構に制限はない。ロボット機構部１の位置及びロボット機構部１が静止するために減速した際に起きる軌跡・振動誤差を検出するセンサとして、加速度センサ１０が、ロボット機構部の位置制御の対象とする部位であるガン２０の先端部に取り付けられている。加速度センサ１０として、三軸加速度センサを用いることができる。加速度センサ１０はロボット機構部１へ着脱可能な磁石等の取付手段を備えており、着脱可能となっている。加速度センサ１０のケースを磁石としてもよい。
【００３９】
図４を用いて、図３に示すロボットのロボット機構部１に付された加速度センサ１０のキャリブレーションについて説明する。
最初に、加速度センサ１０を取り付けた後、ロボット機構部１に所定の動作を実行させて、加速度センサ１０の位置及び傾きを算出するキャリブレーションを行う。キャリブレーションを行うためにはツール座標系からワールド座標系へのデータの変換が必要であり、その手順は次の通りである。
【００４０】
まず、加速度センサ１０の傾きを特定する。図５のように、ワールド座標系のある点P0からX軸方向に動作を行い、ある点P1を通過し、その時の加速度データを取得する。そして、P0点での静止状態での加速度データをa0として、P1点での動作状態での加速度データをa1とする。その時、重力加速度（静止加速度）を除いた加速度axγはaxγ= a1- a0と表す事ができる。規格化を行って、以下のように定義する。
【数１】
0005383756.tif 000002
【００４１】
次に、点P0からY軸方向に動作を行い、ある点P2を通過し、その時の加速度データa2を取得する。その時、重力加速度を除いた加速度ayγはayγ=a2-a0と表す事ができる。規格化を行って、以下のように表すことができる。
【数２】
0005383756.tif 000003
【００４２】
これら二つに直交するベクトルをazγ=ax×ayとして、以下のように表すことができる。
【数３】
0005383756.tif 000004
【００４３】
それ故、ツール座標系からワールド座標系へ姿勢の変換を行うための行列Rtは以下のように表すことができる。
【００４４】
【数４】
0005383756.tif 000005
【００４５】
次に、J5とJ6を動作させる事により、加速度センサ１０の位置を特定する。まず、図４の様にJ5をΔθ1だけ回転させる。そして、その時の加速度センサ１０の座標系で計測される加速度データに行列Rtを乗じて、ワールド座標系に変換された加速度データを
【００４６】
【数５】
0005383756.tif 000006
とおくと、センサ変位Δφ1は以下のように表される。
【００４７】
【数６】
0005383756.tif 000007
その時のワールド座標系のX軸方向のオフセット量ΔxはΔx=Δφ1／Δθ1と表される。
【００４８】
そして、図５の様にJ6をΔθ2だけ回転させる。そして、その時の加速度センサ座標系で計測される加速度データに行列Rtを乗じて、ワールド座標系に変換された加速度データを
【００４９】
【数７】
0005383756.tif 000008
とおくと、センサ変位Δφ2は以下のように表される。
【００５０】
【数８】
0005383756.tif 000009
【００５１】
γ=Δφ2／Δθ2となり、ワールド座標系Y軸方向のオフセット量ΔyはΔy=γcosθ2、ワールド座標系のZ軸方向のオフセット量ΔzはΔz=γsinθ2と計算される。
以上のようにして、ツール座標系からワールド座標系へのデータの変換を行うことにより、加速度センサ１０の出力データから加速度センサ１０の位置及び傾きを算出することができ、キャリブレーションを実行することができる。
【００５２】
次に、学習制御フィルタ３２の設計について説明する。
最初に、それぞれの軸について学習補正量uj+1(k)の入力から加速度センサ１０から推定した位置までの周波数応答を測定する。また、学習制御部３のブロックは図２に描かれている。
【００５３】
次に、周波数応答結果から、線形行列不等式を解く。線形行列不等式とは以下の拘束条件下で、
【００５４】
【数９】
0005383756.tif 000010
【００５５】
【数１０】
0005383756.tif 000011
【００５６】
この式ではQ(z)が学習帯域をカット周波数に持つローパスフィルタ、L(z)が学習制御フィルタ、P(z)が学習補正量の入力から制御対象までの伝達関数になる。ここで、L(z)は学習制御フィルタの周波数領域での表記方法であり、一方L(q)は学習制御フィルタの時間領域での表記方法である。このγが小さい程、学習制御フィルタの性能は高くなる。学習制御フィルタの最適化問題は、Q(z)すなわち、学習制御の帯域が与えられた時、最小のγを与える学習制御フィルタL(z)を算出する問題である。そして、この式は以下の様に変形する事が可能である。
【００５７】
【数１１】
0005383756.tif 000012
【００５８】
【数１２】
0005383756.tif 000013
【００５９】
ここで、Lkをαk,jとVjの線形性により表す事ができる。ここで、VjはLkと同じ次元であり、Vjは、要素(j,i)以外は全てゼロになる。例えば、Ny=2、Nu=2とする。
【００６０】
【数１３】
0005383756.tif 000014
【００６１】
【数１４】
0005383756.tif 000015
【００６２】
【数１５】
0005383756.tif 000016
【００６３】
これは、線形行列不等式（１）の拘束条件と等価である。そして、最小化問題はcTxすなわちγ2を最小とする問題に帰着する。これは、学習制御フィルタの最適化問題と読み替える事ができる。すなわち、判定値符号行列の線形不等式による最小化問題に帰着する事により、システマチックに解を得る事が可能になる。よって、安定性条件と単調減少性への十分条件は
【００６４】
【数１６】
0005383756.tif 000017
となる。そこで、実験からP(ejΩi)を測定し、学習帯域フィルタQ(z)を与えれば、自動的に学習制御フィルタL(z)３２を求める事ができる。
【００６５】
更に、学習制御フィルタのロバスト性を考慮する。ロボットは姿勢により大きくシステムが変化するのが特徴である。
【００６６】
ある一つの姿勢を基準姿勢とした時に、Pn(z)を基準姿勢の学習システムとする。そうすると、任意の姿勢Pm(z)はPm(z)＝Pn(z)＋ΔPm(z)と表される。ΔPm(z)はその基準姿勢からの学習システムの変化量である。その時、学習帯域フィルタQ(z)が与えられた場合の拘束条件は以下のようになる。
【００６７】
【数１７】
0005383756.tif 000018
【００６８】
以上の手順により、m姿勢分だけ、実験よりP(ejΩi)を測定すれば、前例同様に自動的に学習制御フィルタを求める事ができる。
【００６９】
次に、学習制御部におけるデータ処理手順について説明する。
図２に示されるように、フィードバックは位置制御、速度制御、電流制御の三つのループから成立していて、学習制御はフィードバックの位置制御ループ外側にループを組んでいる。実線部分は学習稼動状態で動作中に有効なループになり、停止後は点線のループが有効となる。ajは加速度センサ１０から得たデータであり、位置変換器３５は加速度データajを位置データに変換する。学習中は、加速度センサ１０が検出したロボット機構部１の静止の際に起きる振動のデータを第１メモリ３１に保存する。第２メモリ３４からは学習補正量uj+1(k)が出力される。
【００７０】
動作終了後、位置変換器３５により直交座標の軌跡・振動誤差を推定し、ゼロ位相ハイパスフィルタであるハイパスフィルタ３６を用いる事により、オフセットを取り除いた軌跡・振動誤差Δrを抽出する。その軌跡・振動誤差をモータ位置フィードバック(FB)データからＦＫ３８を用いて推定した加速度センサ１０の位置データrに加算することにより、アームのダイナミクスを含めた、加速度センサ１０の直交座標系でのセンサ位置を推定する。
【００７１】
次に、加速度センサ１０の検出データから推定されたセンサ位置を基軸三軸に逆変換することにより、アームダイナミクス、即ち位置振動成分を含んだ各軸上での位置を計算する。このアームダイナミクスを含んだ各軸位置からアームダイナミクスを含まない各軸の位置、即ちモータの位置を減算することにより各軸目的補正量を計算する。以下の式ではψjがj回目の試行の各軸目的補正量、IKは逆変換、θmjはj回目の試行の各軸モータ位置である。
【００７２】
【数１８】
0005383756.tif 000019
【００７３】
この各軸目的補正量を学習制御フィルタに入力する事により、次の試行の補正量uj+1(k)を計算する。学習制御フィルタL(q)３２を通して、第３メモリ３６２から前の試行の学習補正量ujを足し込みローパスフィルタQ(q)３３を通して、次の試行の学習補正量uj+1が算出される。
以上述べたように学習制御部３におけるデータ処理手順により、学習補正量uj+1を求めることができる。
【００７４】
次に、学習制御におけるロボット機構部１の動作の高速化の手順について図６を用いて説明する。
図６は、ロボット機構部の動作の高速化の手順について説明するためのフローチャートである。ロボット機構部１の動作の高速化は、学習制御部３が、学習実行中に設定可能な最大速度変化比を算出し、所定の最大速度変化比に至るまで複数回に渡って速度変化比を変化させながら学習補正量uj+1(k)を算出する学習を行うことにより実行される。プログラムを実行する際には教示速度に速度変化比を乗算した速度が動作速度になる。この速度変化比の処理手法は速度オーバライドと同一である。
【００７５】
最初に、ステップＳ１０１において、学習制御部３は、学習実行中に設定可能な最大速度変化比を設定する。最大速度変化比は、ロボット機構部を動作させた時に得られたデータ、ロボット機構部で許容される最大速度、最大加速度又は減速機の所望の寿命に基づいて、学習制御部３により算出される。最初に、ロボット機構部を一回動作させて、一回目の試行のデータから、各軸モータの学習可能な最大加速度から決まる最大速度変化比、最大速度から決まる最大速度変化比及び減速機の寿命から決まる最大速度変化比をそれぞれ算出する。
【００７６】
まず、最大加速度の観点から各軸モータの学習可能な最大速度変化比を算出する。ロボットの運動方程式は以下の様に定義される。
【００７７】
【数１９】
0005383756.tif 000020
【００７８】
【数２０】
0005383756.tif 000021
【００７９】
【数２１】
0005383756.tif 000022
オフライン上などで、実際に動作させずに最大速度比を決定する場合は、一回目の試行の最大トルクの代わりに、最大トルク指令を代わりに使う事が可能である。
【００８０】
この時、ovr_max1,iがτa,iの二乗に比例する事を考慮すると、
【００８１】
【数２２】
0005383756.tif 000023
となる。ここで、添え字のiはi軸目を示す。
【００８２】
上記のようにして、最大加速度の観点から、最大速度変化比ovr_max1,iが得られる。
【００８３】
次に、最大速度の観点から、最大速度変化比ovr_max2,iについて計算を行う。一回目の試行の最大速度をων,i、モータの最大速度許容量をωp,iとすると、
【００８４】
【数２３】
0005383756.tif 000024
となる。オフライン上などで、実際に動作させずに最大速度比を決定する場合は、一回目の試行の最大速度の代わりに、最大速度指令を使う事が可能である。
【００８５】
上記のようにして、最大速度の観点から、最大速度変化比ovr_max2,iが得られる。
【００８６】
次に、減速機の寿命の観点から、最大速度変化比ovr_max3,iについて計算を行う。減速機の推定寿命をＬh[hour]とすると、Ｌhは下記の式で表される。本実施例では、下記の式を用いて、最大速度変化比ovr_max3,iを決定する。
【００８７】
【数２４】
0005383756.tif 000025
ただし、Ｋは定格寿命[hour]、ωtは定格速度[rpm]、ωavは平均速度[rpm]、τtは定格トルク[Nm]、τavは平均トルク[Nm]である。また、係数１０／３は、減速機の種類に依存する係数である。ここで、平均速度ωavは次のように定義される。
【００８８】
【数２５】
0005383756.tif 000026
ただし、ωj(t)はモータ軸速度、ｊは整数、Δtはサンプル時間である。また、平均トルクτavは下記の式で表される。オフライン上などで、実際に動作させずに最大速度比を決定する場合は、一回目の試行のモータ軸速度の代わりに、モータ軸速度指令を使う事が可能である。
【００８９】
【数２６】
0005383756.tif 000027
【００９０】
次に、最大速度変化比ovr_max3,iを算出する方法について詳細に説明する。初回の動作では、速度変化比ovrを下記のように設定する。
【００９１】
【数２７】
0005383756.tif 000028
また、この時のモータ軸速度をωini,j（jΔt）と定義する。この時の減速機の推定寿命は下記の式で表される。オフライン上などで、実際に動作させずに最大速度比を決定する場合は、一回目の試行のモータ軸速度の代わりに、モータ軸速度指令を使う事が可能である。
【００９２】
【数２８】
0005383756.tif 000029
ここで、平均速度ωini,avは以下の式で表される。
【００９３】
【数２９】
0005383756.tif 000030
また、平均トルクτavは以下の式で表される。
【００９４】
【数３０】
0005383756.tif 000031
【００９５】
Ｌini,j≧Ｌdという条件が満たされていれば、更なる高速化が可能である。満たされていなければ、これ以上の高速化は出来ない。上記条件が満たされている場合、下記のようにovrを上積みしていく。
【００９６】
【数３１】
0005383756.tif 000032
但し、kは最適化のためにovrを増加させた回数である。このとき、モータ軸速度ωj（jΔt）は以下の様に表せる。
【００９７】
【数３２】
0005383756.tif 000033
平均速度ωavは、以下の式で表される。
【００９８】
【数３３】
0005383756.tif 000034
平均トルクτavは、以下の式で表される。
【００９９】
【数３４】
0005383756.tif 000035
よって、このときの減速機の推定寿命Ｌh,kは以下の式で表される。
【０１００】
【数３５】
0005383756.tif 000036
Ｌh,k≧Ｌdを満たす最大のkをkmaxとおくと、kmaxを用いてovr_max3,iは以下の様に表される。
【０１０１】
【数３６】
0005383756.tif 000037
以上のようにして求めた３つの値の中での最小値を学習制御で使用可能な最大速度変化比とする。よって、それをovr_maxと表すと、
【０１０２】
【数３７】
0005383756.tif 000038
となる。
【０１０３】
次に、ステップＳ１０２において、速度制御部４２が、速度変化比の初期値を設定する。例えば、初期値を１０％に設定する。
【０１０４】
次に、ステップＳ１０３において、電流制御部４３が、設定した速度変化比の初期値でロボット機構部を動作させるための動作パラメータの初期値を設定する。
【０１０５】
次に、ステップＳ１０４において、設定した動作パラメータにおいてロボット機構部を動作させて、加速度センサ１０からの信号に基づいて、学習制御部３が、振動減衰率を算出する。ここで、振動減衰率は式（２）で算出されるγから求めることができる。
【０１０６】
次に、ステップＳ１０５において、位置制御部４１が、振動減衰率が一定の水準、例えば２５％未満であるか否かを調べる。
【０１０７】
次に、ステップＳ１０６において、振動減衰率が２５％以上である場合は、振動が十分に減衰しているとはいえないものと判断して、位置制御部４１が、学習制御フィルタから学習補正量uj+1(k)を更新する。
【０１０８】
振動減衰率が２５％未満である場合は、ステップＳ１０７において、速度制御部４２が、速度変化比を増加させる。例えば、速度変化比を１０％から２０％へ増加させる。
【０１０９】
次に、ステップＳ１０８において、速度制御部４２が、設定した速度変化比が最大速度変化比を超えているか否かを判断する。
【０１１０】
ステップＳ１０８において、設定した速度変化比が最大速度変化比を超えていない場合は、ステップＳ１０９において、電流制御部４３が、速度変化比が増加するように動作パラメータを設定する。例えば、速度変化比２０％で動作するように動作パラメータを設定する。その後、ステップＳ１０４〜Ｓ１０６を繰り返すことにより、振動減衰率が２５％未満となるような学習補正量uj+1(k)を算出する。
【０１１１】
このように、本発明においては速度変化比を最大速度変化比まで、例えば複数のステップｎで増加させて学習を実行し学習補正量uj+1(k)を算出している。一回のステップで増加させる速度変化比の量をΔとすると、速度変化比を増加させるステップ数ｎは、Δを用いて以下のように算出される。
【０１１２】
【数３８】
0005383756.tif 000039
ここで、ovr_curは最初に設定した速度変化比である。
【０１１３】
ステップＳ１０８において、設定した速度変化比が最大速度変化比を超えている場合は、ステップＳ１１０において、学習制御部３は、学習補正量uj+1(k)を最大速度変化比における学習補正量uj+1(k)と決定し、学習制御部３は、学習補正量uj+1(k)をＦ−ＲＯＭもしくはメモリカード（ＭＣ）に保存する。
【０１１４】
このようにして、速度変化比が最大速度変化比に達するまで、速度変化比を上げるプロセスと学習を行うプロセスを繰り返す事により、動作速度を高速化する。実稼動時には通常制御部４が、Ｆ−ＲＯＭもしくはメモリカード（ＭＣ）から学習補正量uj+1(k)を呼び出して再生する。
【０１１５】
ここで、本発明のロボット１００における通常制御部４は、ロボット機構部１を軌跡一定で動作させている点を特徴としている。軌跡一定での動作とは、ロボット機構部１の制御対象位置（先端点）を初期の位置から所望の位置まで速度変化比を変化させて動作させる場合に、速度変化比の大きさに係らず、一定の軌跡を描くようにして動作させることをいう。従って、通常制御部４は、ロボット機構部１の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行う。例えば、図７（ａ）に示すように、軌跡一定ではない場合は、始点Ａから終点Ｃまで速度変化比を１０、５０、１００％として、それぞれ動作させた場合に、異なった軌跡Ｔ10、Ｔ50、Ｔ100を描くこととなる。これに対して、軌跡一定とした場合には、始点Ａから終点Ｃまで速度変化比を１０、５０、１００％として、それぞれ動作させた場合であっても同一の軌跡Ｔ0を描く。本発明では、ロボット機構部の制御対象位置を軌跡一定で動作させることにより、速度変化比の変更による軌跡ずれが生じないため、ロボット機構部の動作における精度と安全性を向上させることができる。
【０１１６】
以上のように、図６に記載の高速化手順によれば、ロボット機構部の制御対象位置が速度変化比に依らず一定の軌跡を移動するように、速度変化比を複数回に渡って徐々に増加させながら、振動が所定の範囲に収束するまで繰り返し学習を行って学習補正量を算出しているので、振動を抑制することができる学習補正量を効率よく算出することができる。
また、本発明のように、軌跡を一定にする事により、高速化終了後すぐにロボット１００が量産動作に入ることができる。即ち、通常通りに軌跡を一定とせずに高速化した場合には、軌跡が変わるため障害物との干渉をチェックする必要が生じ、干渉する場合は高速化前のプログラムを変更して、高速化した際に干渉しないように調節する必要があるが、本発明のように軌跡を一定にする事により、このようなチェックを省略することができる。
【０１１７】
次に、減速機の寿命に基づいて最大速度変化比を求める手順について、図８のフローチャートを用いて詳細に説明する。まず、ステップＳ２０１において、移送制御(TP=Transports and Programs)プログラムを１回だけ動作させて、実速度データを取得する。次に、ステップＳ２０２において、実速度データを用いて、速度変化比を増加させたときの推定寿命を算出する。次に、ステップＳ２０３において、その推定寿命が要望寿命Ｌdより大きくなっているか否かを調べる。推定寿命が要望寿命Ｌdより大きくなっていなければ、ステップＳ２０４において、再び速度変化比を増加させて、ステップＳ２０２において、推定寿命を算出する。以上のプロセスを繰り返し、ステップＳ２０５において、要望寿命が推定寿命を上回らない最大速度変化比ovr_max3,iを算出する。
このようにして、減速機の寿命に基づいて最大速度変化比が求められる。
【０１１８】
以上の説明においては、所定の最大速度変化比が、ロボット機構部１を動作させることによってロボット機構部１で許容される最大速度、最大加速度及び減速機の寿命に基づいて、学習制御部３により算出される例を示したが、所定の最大速度変化比を外部から制御装置２に設定するようにしてもよい。
【０１１９】
以上説明したとおり、本発明においてはハイパスフィルタとしてゼロ位相ハイパスフィルタを用いている。以下、ゼロ位相ハイパスフィルタを用いた理由について説明する。
【０１２０】
加速度センサが検出した加速度に関するデータを位置振動データとして使用するためには、オフセットを除去する必要がある。オフセットを除去するためには2-3Hz以下の低周波のデータを取り除くハイパスフィルタを使用する必要がある。しかしながら、ハイパスフィルタはカット周波数の0.1〜10倍の位相をずらしてしまう欠点がある。位相がずれてしまうと実際の振動のデータが得られず、学習制御の性能が大きく劣化してしまう。これは、実際と異なる位相の振動を補正するように学習制御が働いてしまうためである。そこで、位相がずれないハイパスフィルタを使用できれば、性能を上げる事が出来る。ゼロ位相フィルタは、フィルタ処理された時間波形の特徴を、フィルタ処理されていない波形で現れる場所にそのまま保持することができるという特徴を有しており、本発明では位相のずれを生じないゼロ位相フィルタを用いている。
【０１２１】
ゼロ位相ハイパスフィルタの効果について、図９を用いて説明する。同図（ａ）は実線で示す周期1[Hz]の信号と10[Hz]の信号が混合している元の信号と、これに通常のハイパスフィルタを通した10[Hz]の信号（破線）及びゼロ位相ハイパスフィルタを通した10[Hz]の信号（点線）を示す。同図（ｂ）は同図（ａ）の楕円部分の拡大図を示す。同図（ｂ）に示すように、元の信号とゼロ位相ハイパスフィルタを通した10[Hz]の信号は、共に時刻ｔ2及びｔ4でピークを示しているのに対して、通常のハイパスフィルタを通した10[Hz]の信号は時刻ｔ1及びｔ3でピークを示している。このことから、通常のハイパスフィルタは元の信号に対して位相がずれているのに対して、ゼロ位相ハイパスフィルタを通した場合には元の信号と位相が一致していることがわかる。このように、ゼロ位相ハイパスフィルタを用いることにより、位相遅れを抑制することができる。それ故、本実施例においてはゼロ位相ハイパスフィルタを用いている。
【０１２２】
次に、ゼロ位相フィルタにおけるデータ処理手順について、図１０を用いて説明する。時系列順に１〜Ｎの順に並べられた元のデータｄ0にハイパスフィルタをかけてデータｄ1を得た後、時系列を反転させてＮ〜１の順に並べ替えることによりデータｄ2を得る。次に、データｄ2にハイパスフィルタをかけてデータｄ3を得た後、再度時系列を反転させて１〜Ｎの順に並べ替えることによりデータｄ4を得る。データｄ2からデータｄ4までの処理をH(z-1)と表すと、ゼロ位相フィルタはローパス(もしくはハイパス）フィルタH(z)を用いてH(z)H(z-1)と表記される。以上のように、時系列を反転させてデータを並べ替えているため、この処理はオフラインでしか行うことができないが、本実施例では、ロボット機構部の動作中に加速度データを収集しており、動作終了後にオフライン処理を行うことにより、位相をずらさないゼロ位相ハイパスフィルタを使用する事が可能である。
【実施例２】
【０１２３】
次に、本発明の実施例２に係るロボットについて説明する。図１１に本発明の実施例２に係るロボットの概略図を示す。実施例２に係るロボット１０１は、実施例１に係るロボット１００に加えて、作業プログラムが格納されたプログラム教示部５１と、プログラム実行部５２と、動作計画部５３とを有する教示制御部５０をさらに備えている点を特徴としている。教示制御部５０は、作業プログラムにおける位置又は速度の教示及び修正を行う。
【０１２４】
また、実施例２に係るロボット１０１の通常制御部４は、さらに例外対処部４６を備えている。この例外対処部４６は、作業プログラムで設定された教示位置に基づく位置指令と、学習制御部３により算出された学習補正量uj+1(k)と、作業プログラムで設定された教示速度に学習補正量uj+1(k)の算出時に使われた速度変化比を乗算した速度指令とによりロボット機構部１を動作させ、学習制御部３により学習補正量uj+1(k)が算出された後に、教示制御部５０により教示点の位置修正が行われた際、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、教示点への移動を教示速度で制御し、所定距離未満のときは、教示点への移動を速度指令で制御する。
【０１２５】
学習が完了した動作は学習制御フィルタ３２内のＲＡＭ３２１に保存されている学習補正量uj+1(k)を使用して、高速動作で再生される。しかしながら、学習した時の動作が大幅に変更されると、学習補正量uj+1(k)が適用できなくなるため、高速動作ができなくなる。ここで、動作が変更されたか否かはＲＡＭ３２１に記録されており、動作位置・速度指令と動作計画から算出された動作位置yd(k)及び速度指令Vd(k)を比較する事により判断することができる。動作が変更された場合は、例外処理（すなわち教示速度）で動作を実行する。
【０１２６】
次に、本発明の実施例２に係るロボット１０１の動作手順について、図１２のフローチャートを用いて説明する。この動作手順は、作業プログラムで設定された教示位置に学習制御部３により算出された学習補正量uj+1(k)を加えた指令位置と、作業プログラムで設定された教示速度に学習補正量uj+1(k)の算出時に使われた速度変化比を乗算した速度指令にてロボット機構部１を動作させ、学習制御部３により学習補正量uj+1(k)が算出された後に実行される。
【０１２７】
最初に、ステップＳ３０１において、例外対処部４６が、教示修正の有無を判断する。教示修正の有無の判断は、例外対処部４６が教示制御部５０内のプログラム教示部５１に格納された作業プログラムにおける教示点の位置修正の有無を検出することにより判断する。
【０１２８】
次に、ステップＳ３０１において、例外対処部４６が、教示修正があったと判断した場合は、ステップＳ３０２において、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離未満か否かを判断する。位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離以上のときは、教示点への移動を教示速度で制御し、所定距離未満のときは、教示点への移動を速度指令で制御する。所定距離以上のときは、ステップＳ３０３において、教示点への移動を教示速度、即ち、速度変化比を乗算しない速度で制御する。ここでは、教示点への移動のみについて説明したが、その教示点から次の教示点へ向かう動作を同様に制御するようにしてもよい。
【０１２９】
一方、ステップＳ３０２において、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離未満の場合は、教示点への移動を速度指令で制御する。
【０１３０】
また、ステップＳ３０１において、例外対処部４６が、教示修正がなかったと判断した場合も同様に、教示点への移動を速度指令で制御する。
【０１３１】
以上の説明においては、プログラム教示部５１に予め格納された作業プログラムが、教示点の位置を修正した場合の処理手順について説明したが、次に、作業プログラムが、教示点の位置に加えて、速度指令を修正した場合の処理手順について図１３のフローチャートを用いて説明する。
【０１３２】
ステップＳ４０１〜Ｓ４０３及びＳ４０５は上記のステップＳ３０１〜３０４に相当するので、詳細な説明は省略する。ステップＳ４０２において、位置修正後の教示点の位置と位置修正前の教示点の位置との間の距離が所定距離未満の場合は、さらに、ステップＳ４０４において、修正前の速度指令と修正後の速度指令との間の差が所定の比率または所定値未満か否かを判断する。所定比率または所定値以上のときは、ステップＳ４０３において、教示点への移動を教示速度、即ち、速度変化比を乗算しない速度で制御する。
【０１３３】
一方、ステップＳ４０４において、修正前の速度指令と修正後の速度指令との間の差が所定比率または所定値未満のときは、ステップＳ４０５において、教示点への移動を速度指令で制御する。
【０１３４】
以上のように、実施例２に係るロボットによれば、作業プログラムにおいて教示位置または教示速度が修正された場合、修正された程度に応じて、動作速度を制御することができるため、作業プログラムにおける教示位置または教示速度の修正が大幅に行われた場合においてもロボットの動作を安定して実行させることができる。
【０１３５】
なお、実施例２に係るロボット１０１においても、実施例１に係るロボット１００と同様に、通常制御部４は、ロボット機構部１の制御対象位置が速度変化比に依らず一定の軌跡を移動するように処理を行うことができる。さらに、実施例２に係るロボット１０１においても、実施例１に係るロボット１００と同様に、ロボット機構部１の位置振動成分を算出するための位相のずれを生じないハイパスフィルタを備えるようにしてもよい。
【０１３６】
以上、本発明の実施例においては、ロボット機構部に取り付けるセンサとして、加速度センサを用いる例を示したが、ビジョンセンサ、ジャイロセンサ、慣性センサ、光学センサ、または歪ゲージのいずれかのセンサを用いてもよい。
【０１３７】
一例として、加速度センサの代わりにビジョンセンサを用いる例を図１４に示す。ビジョンセンサ７０は、第１カメラ７２及び第２カメラ７３の２台のカメラを備えており、ロボットハンド７１に設置される。ビジョンセンサ７０は、カメラ７２、７３を用いて、Targetライン７４上の仮想ＴＣＰ７６の位置を計測し、進行方向７５をｘ軸の正の方向にとった場合における、ｘ軸、ｙ軸、ｚ軸のそれぞれの軸方向の軌跡・振動誤差であるΔx、Δy、Δzを算出するものである。
【符号の説明】
【０１３８】
１    ロボット機構部
２    制御装置
３    学習制御部
４    通常制御部
３１    第１メモリ
３２    学習制御フィルタ
３２１    ＲＡＭ
３３    ローパスフィルタ
３４    第２メモリ
３５    位置変換器
３６    ハイパスフィルタ
３６２    第３メモリ
３７    逆変換器
３８    順変換器
４１    位置制御部
４２    速度制御部
４３    電流制御部
４４    アンプ
４５、４７    微分手段
４６    例外対処部
５０    教示制御部
５１    プログラム教示部
５２    プログラム実行部
５３    動作計画部
１００、１０１    ロボット
【図１】
0005383756.tif 000040
【図２】
0005383756.tif 000041
【図３】
0005383756.tif 000042
【図４】
0005383756.tif 000043
【図５】
0005383756.tif 000044
【図６】
0005383756.tif 000045
【図７】
0005383756.tif 000046
【図８】
0005383756.tif 000047
【図９】
0005383756.tif 000048
【図１０】
0005383756.tif 000049
【図１１】
0005383756.tif 000050
【図１２】
0005383756.tif 000051
【図１３】
0005383756.tif 000052
【図１４】
0005383756.tif 000053