(57)【特許請求の範囲】
【請求項１】
位置制御の対象とする制御対象部位と、前記制御対象部位に設置されたセンサと、を備えたロボット機構部と、
前記制御対象部位の目標軌跡または目標位置に関する位置指令データを取得し、前記位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、前記ロボット機構部を所定の動作速度で動作させる動作制御部と、
前記センサの検出結果から前記制御対象部位の軌跡または位置を算出し、前記軌跡と前記目標軌跡との間の軌跡誤差または前記位置と前記目標位置との間の位置誤差を補正するための、もしくは前記ロボット機構部を動作させたときに生じる前記制御対象部位の振動を抑制するための、学習補正量を、学習制御により算出する学習制御部と、を有し、
前記動作制御部は、前記学習補正量を用いて前記位置偏差データを補正し、
前記学習制御部は、前記学習補正量を算出する過程で、前記ロボット機構部を動作させて、前記ロボット機構部に許容される最大加速度、最大速度に基づいて、最大速度オーバライドをそれぞれ算出し、算出した前記最大速度オーバライドのうち最小の最大速度オーバライドに基づいて前記ロボット機構部で設定可能な最大動作速度を算出し、前記最大動作速度に至るまで１回又は複数回に渡って前記動作速度を増加させながら前記学習補正量を算出する、
ことを特徴とするスポット溶接ロボット。
【請求項２】
前記動作制御部は、前記ロボット機構部の動作速度の目標値である目標動作速度を取得し、
前記学習制御部は、前記目標動作速度と前記最大動作速度とを比較し、前記目標動作速度が前記最大動作速度より小さい場合には、前記目標動作速度に至るまで１回又は複数回に渡って前記動作速度を増加させながら前記学習補正量を算出する、請求項１に記載のスポット溶接ロボット。
【請求項３】
前記学習制御部は、前記最大動作速度を前記ロボット機構部で許容される最大速度及び最大加速度に基づいて算出する、請求項１又は２に記載のスポット溶接ロボット。
【請求項４】
位置制御の対象とする制御対象部位と、前記制御対象部位に設置されたセンサと、を備えたロボット機構部と、
前記制御対象部位の目標軌跡または目標位置に関する位置指令データを取得し、前記位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、前記ロボット機構部を所定の動作速度で動作させる動作制御部と、
前記センサの検出結果から前記制御対象部位の軌跡または位置を算出し、前記軌跡と前記目標軌跡との間の軌跡誤差または前記位置と前記目標位置との間の位置誤差を補正するための、もしくは前記ロボット機構部を動作させたときに生じる前記制御対象部位の振動を抑制するための、学習補正量を、学習制御により算出する学習制御部と、を有し、
前記動作制御部は、前記学習補正量を用いて前記位置偏差データを補正し、
前記学習制御部は、前記学習補正量を算出し、前記軌跡誤差または前記位置誤差、もしくは、前記振動と予め設定した各閾値とを比較する処理を行い、前記軌跡誤差または前記位置誤差、もしくは、前記振動が前記各閾値を越えるまで、動作速度を増加させながら、前記処理を繰り返し、
動作時間終了前の所定時間における軌跡誤差または位置誤差、もしくは振動が各閾値内に収まる限り、ある一定量のオーバライドを上げていくプロセスを繰り返す事により、動作速度を増加させる、
ことを特徴とするスポット溶接ロボット。
【請求項５】
前記学習制御部は、前記センサの検出結果から算出された前記制御対象部位の軌跡誤差、位置誤差または振動成分を含んだデータを前記ロボット機構部の各軸を基準とした位置座標に変換することにより前記各軸上のデータを算出する、請求項１乃至４のいずれか一項に記載のスポット溶接ロボット。
【請求項６】
前記学習制御部は、前記ロボット機構部に所定の動作を実行させて、前記センサの位置及び傾きを算出する、請求項１乃至５のいずれか一項に記載のスポット溶接ロボット。
【請求項７】
前記学習補正量を保存するための記憶部を更に有する、請求項１乃至６のいずれか一項に記載のスポット溶接ロボット。
【請求項８】
前記センサは、ビジョンセンサ、加速度センサ、ジャイロセンサ、慣性センサ、及び歪ゲージのいずれかである、請求項１乃至７のいずれか一項に記載のスポット溶接ロボット。
【請求項９】
前記ロボット機構部への前記センサの着脱を可能とする取付手段を備える、請求項１乃至８のいずれか一項に記載のスポット溶接ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は学習制御機能を備えたスポット溶接ロボットに関し、特にアーム側に取り付けたセンサを利用して動作の高速化を行うスポット溶接ロボットに関する。
【背景技術】
【０００２】
ロボットにおいて、サーボモータで駆動される被駆動体の位置や速度を制御するために、通常、位置フィードバック制御、速度フィードバック制御さらには電流フィードバック制御がなされ、被駆動体が指令位置、速度と一致するように制御がなされる。
【０００３】
このような位置、速度、電流のフィードバック制御を行っても、ロボットの高速動作では、軌跡誤差、位置誤差、または振動（以下、「軌跡誤差等」という）が発生する。また、高速動作ではモータ側とアーム側の動特性が違うために、モータエンコーダからはアーム側の軌跡誤差等を直接測定する事はできなくなる。そのために、アーム側に直接センサを取り付けて軌跡誤差等を計測する必要がある。センサを取り付けた学習制御の例として、ロボットの例ではないが加速度センサを使用した学習制御が公開されている（特許文献１）。
【０００４】
図１に従来の学習制御を実施する学習制御器を備えたロボットの概略図を示す。ロボット１００は、ロボット機構部１と、ロボット機構部１を制御するロボット制御部２により構成される。ロボット制御部２は、ロボットの学習制御を実施する学習制御部３と、ロボット機構部１を直接的に駆動する動作制御部４とを備えている。
【０００５】
ロボット機構部１には、センサ１０、アーム１１、アーム先端部を構成するガン１２、モータ（図示せず）が設けられている。ロボット機構部１のモータには、ロボット制御部２に含まれる動作制御部４からの信号が入力され、アーム１１を駆動し、ガン１２を所望の位置に移動させて、例えば溶接等の作業を実行する。ガン１２にはセンサ１０が設置されており、ガン１２の空間的な位置データ（yj(k)）を得ることができる。センサ１０の検出結果から算出される位置データ（yj(k)）は学習制御部３に出力され、学習制御に利用される。ここで、ｊは試行回数、kは時間である。yd(k)は位置指令データ、yj(k)は前回（一試行前）の制御対象量である位置データ、ej(k)はフィルターを通して、yd(k)とyj(k)から計算された目的補正量である。uj(k)は前回の学習補正量を表す。
【０００６】
動作制御部４には、位置制御部４１、速度制御部４２、電流制御部４３、アンプ４４、微分手段４５が設けられている。位置制御部４１は、ロボット制御部２の外部から入力される目標動作速度及び位置指令データ（yd(k)）を受信するとともに、ロボット機構部１のモータ位置情報を受信し、ロボット機構部１のガン１２の所望の位置偏差データを速度制御部４２に対して出力する。微分手段４５は、ロボット機構部１からフィードバックされるモータ位置情報を受信し、モータ速度を算出し、これを速度制御部４２に対して出力する。
【０００７】
速度制御部４２は、位置制御部４１からの位置偏差データ及び微分手段４５からのモータ速度情報を勘案して所望のモータ速度を算出し、これを電流制御部４３に対して出力する。電流制御部４３は、アンプ４４からフィードバックされる電流値を受信するとともに、速度制御部４２から入力された所望のモータ速度となるようにモータに流す電流を算出し、これをアンプ４４に対して出力する。アンプ４４は、電流制御部４３からの電流値に基づいて所望の電力を算出し、これをロボット機構部１のモータ（図示せず）に投入する。
【０００８】
学習制御部３には、第１メモリ３１、学習制御器L(q)３２、ローパスフィルターQ(q)３３、第２メモリ３４、第３メモリ３５、一試行遅れW-1３００が設けられている。第１メモリ３１には、ガン１２に関する位置指令データ（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前後までの軌跡誤差等の位相が回転するので、除去したい帯域の軌跡誤差等データまで加工されてしまい、学習制御の性能が劣化してしまうという問題があった。
【００１６】
さらに、学習制御器の調整が難しいという問題もあった。色々な調整方法が提案されているものの、コントローラの次数が高くなる、安定性が低くなる、膨大な行列計算が必要になる等の問題点がある。それ故、大部分の現場において、調整は経験に基づいて試行錯誤で行われているのが実情である。また、ロボットは姿勢に応じてシステムが変化するために試行錯誤での調整がより難しいという特徴がある。そして、これまでのところ、自動的にパラメータの調整を行い、高速化を行う学習機能を備えた産業用ロボットは存在していない。
【００１７】
特許文献２及び３に開示されている、従来の一般的なスポット溶接ロボットは、予め記憶した動作を再生しスポット溶接を行なうだけのものであったため、ロボットの高速動作によって発生する軌跡誤差や振動成分によって、ロボットの最適動作が阻害されるという問題があった。また、特許文献４に開示されている視覚センサによって対象物を検出し、ロボットの動作を補正する例においても、対象物に向かうロボット自身の動作を最適化することは不可能であったため、前述同様、軌跡誤差や振動成分が発生し、ロボットの動作速度の低下の原因となっていた。
【００１８】
本発明は、ロボット動作が生産性を左右するスポット溶接アプリケーションにおいて、位置制御の対象となる部位の位置をセンサで検出し、これを目標とする動作に近づけるよう制御する、学習制御機能を備えたスポット溶接ロボットを提供することで、ロボット動作の高速化による生産性の向上、コストカットを実現するものである。
【課題を解決するための手段】
【００１９】
本発明のスポット溶接ロボットは、位置制御の対象とする制御対象部位と、制御対象部位に設置されたセンサと、を備えたロボット機構部と、制御対象部位の目標軌跡または目標位置に関する位置指令データを取得し、位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、ロボット機構部を所定の動作速度で動作させる動作制御部と、センサの検出結果から制御対象部位の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部を動作させたときに生じる制御対象部位の振動を抑制するための、学習補正量を、学習制御により算出する学習制御部と、を有し、動作制御部は、学習補正量を用いて位置偏差データを補正し、学習制御部は、学習補正量を算出する過程で、ロボット機構部で設定可能な最大動作速度を算出し、最大動作速度に至るまで１回又は複数回に渡って動作速度を増加させながら学習補正量を算出する、ことを特徴とする。
【００２０】
本発明の他の実施態様として、動作制御部は、ロボット機構部の動作速度の目標値である目標動作速度を取得し、学習制御部は、目標動作速度と最大動作速度とを比較し、目標動作速度が最大動作速度より小さい場合には、目標動作速度に至るまで１回又は複数回に渡って動作速度を増加させながら学習補正量を算出するようにしてもよい。
【００２１】
本発明の他の実施態様として、学習制御部は、最大動作速度をロボット機構部で許容される最大速度及び最大加速度に基づいて算出することが好ましい。
【００２２】
本発明の他の実施態様として、本発明のスポット溶接ロボットは、位置制御の対象とする制御対象部位と、制御対象部位に設置されたセンサと、を備えたロボット機構部と、制御対象部位の目標軌跡または目標位置に関する位置指令データを取得し、位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、ロボット機構部を所定の動作速度で動作させる動作制御部と、センサの検出結果から制御対象部位の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部を動作させたときに生じる制御対象部位の振動を抑制するための、学習補正量を、学習制御により算出する学習制御部と、を有し、動作制御部は、学習補正量を用いて位置偏差データを補正し、学習制御部は、学習補正量を算出し、軌跡誤差または位置誤差、もしくは、振動と予め設定した各閾値とを比較する処理を行い、軌跡誤差または位置誤差、もしくは、振動が各閾値を越えるまで、動作速度を増加させながら、処理を繰り返す、ことを特徴とする。
【００２３】
本発明の他の実施態様として、動作制御部は、ロボット機構部の動作速度の目標値である目標動作速度を取得し、学習制御部は、目標動作速度に至るまで１回又は複数回に渡って動作速度を増加させ、増加させる度に、学習補正量を算出し、軌跡誤差または位置誤差、もしくは、振動と予め設定した各閾値とを比較する処理を行い、軌跡誤差または位置誤差、もしくは、振動が各閾値内に収まる限り、あるいは動作速度が目標動作速度に至るまで、処理を繰り返すようにしてもよい。
【００２４】
本発明の他の実施態様として、学習制御部は、センサの検出結果から算出された制御対象部位の軌跡誤差、位置誤差または振動成分を含んだデータをロボット機構部の各軸を基準とした位置座標に変換することにより各軸上のデータを算出するようにしてもよい。
【００２５】
本発明の他の実施態様として、学習制御部は、ロボット機構部に所定の動作を実行させて、センサの位置及び傾きを算出するようにしてもよい。
【００２６】
本発明の他の実施態様として、学習補正量を保存するための記憶部を更に有することが好ましい。
【００２７】
本発明の他の実施態様として、センサは、ビジョンセンサ、加速度センサ、ジャイロセンサ、慣性センサ、及び歪ゲージのいずれかであることが好ましい。
【００２８】
本発明の他の実施態様として、ロボット機構部へのセンサの着脱を可能とする取付手段を備えることが好ましい。
【発明の効果】
【００２９】
本発明によれば、学習制御部が学習稼動状態で設定可能な最大動作速度を算出し、最大動作速度に至るまで１回または複数回に渡って動作速度を増加させながら学習補正量を算出する学習を行うことにより、学習中における動作の高速化を自動的に実行することができる。
【００３０】
また本発明によれば、位置制御の対象となる部位の位置をセンサで検出し、これを目標とする動作に近づけるよう制御する、学習制御機能を有することにより、スポット溶接ロボットの振動を抑え、俊敏な動作を実現することができる。
【００３１】
さらに本発明によれば、振動のない俊敏な動作によって、ロボットの動作速度をあげ、ロボットの作業能力を向上させることが可能となる。スポット溶接では、ロボット動作速度の向上によって生産性の向上を達成することができる。また、同じサイクルタイムのスポット溶接システムであれば、より少ない台数のスポット溶接ロボットで、これまでと同じボリュームのスポット溶接が実現できるため、システムコストの低減が可能となる。
【図面の簡単な説明】
【００３２】
【図１】従来のロボットの構成図である。
【図２】本発明の実施例１に係るスポット溶接ロボットのロボット機構部の斜視図である。
【図３】本発明の実施例１に係るスポット溶接ロボットのロボット機構部及びセンサの構成図である。
【図４】本発明の実施例１に係るスポット溶接ロボットのロボット機構部の構成概念図である。
【図５】ワールド座標系におけるセンサの位置を示す図である。
【図６】本発明の実施例１に係るスポット溶接ロボットの構成図である。
【図７】本発明の実施例１に係るスポット溶接ロボットを構成するロボット機構部の動作手順について説明するためのフローチャートである。
【図８】本発明の実施例２に係るスポット溶接ロボットを構成するロボット機構部の動作手順について説明するためのフローチャートである。
【図９】本発明の実施例３に係るスポット溶接ロボットを構成するロボット機構部の動作手順について説明するためのフローチャートである。
【図１０】本発明の実施例４に係るスポット溶接ロボットを構成するロボット機構部の動作手順について説明するためのフローチャートである。
【図１１】ビジョンセンサの例を示す図である。
【発明を実施するための形態】
【００３３】
以下、図面を参照して、本発明に係るスポット溶接ロボットについて説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【実施例１】
【００３４】
本実施例ではスポット溶接ロボットの動作の高速化を行う例について説明する。まず、図２に本発明のスポット溶接ロボットのロボット機構部の斜視図を示す。また、図３に本発明のスポット溶接ロボットのロボット機構部の構成図を示す。図３（ａ）はロボット機構部の全体構成を示し、図３（ｂ）はセンサを取り付けたスポット溶接ガン（以下、単に「ガン」という。）の拡大図を示す。ロボット機構部１は公知のロボットマニピュレータであり、位置制御の対象とする制御対象部位であるガン１２が作業を行う位置姿勢に到達可能であれば、その機構に制限はない。ガン１２は対向する一対の電極（対向電極２１及び可動電極２２）を備えており、一方を可動として対向電極２１と可動電極２２との間の間隔を可変とすることにより、種々の溶接ワーク（図示せず）に対して溶接を行うことができる。ロボット機構部１の軌跡及び位置及びロボット機構部が静止するために減速した際に起きる振動を検出するセンサとして、センサ１０が、ロボット機構部の位置制御の対象とする制御対象部位であるガン１２の先端部に取り付けられている。センサ１０として、三軸加速度センサを用いることができる。センサ１０は、ロボット機構部１への着脱を可能とする取付手段として磁石を備えており、着脱可能となっている。センサ１０のケースを磁石としてもよい。なお、磁石を用いる例は一例であって、他の手段により取付手段を構成してもよい。
【００３５】
以下、本発明の実施例として加速度センサを用いた例について説明するが、加速度センサの代わりにビジョンセンサを用いてもよい。ビジョンセンサを用いた例を図１１に示す。ビジョンセンサ７０は、第１カメラ７２及び第２カメラ７３の２台のカメラを備えており、ロボットハンド７１に設置される。ビジョンセンサ７０は、カメラ７２、７３を用いて、ターゲットライン７４上の仮想ツールセンターポイント(ＴＣＰ）７６の位置を計測し、進行方向７５をｘ軸の正の方向にとった場合における、ｘ軸、ｙ軸、ｚ軸のそれぞれの軸方向の軌跡誤差等であるΔx, Δy, Δzを算出するものである。
【００３６】
センサ１０を取り付けた後、ロボット機構部に所定の動作を実行させて、センサの位置及び傾きを算出するキャリブレーションを行う。キャリブレーションの手順は次の通りである。
【００３７】
まず、最初に加速度センサの傾きを特定する。図４のように、ワールド座標系のある点P0からX軸方向に動作を行い、ある点P1を通過し、その時の加速度データを取得する。そして、P0点における静止状態での加速度データをa0として、P1点における動作状態での加速度データをa1とする。その時、重力加速度（静止加速度）を除外した加速度axγはaxγ= a1- a0と表す事ができる。このとき、モータエンコーダからの推定アーム加速度をａxwとすると、規格化を行って、ａx＝ａxγ／ａxwと表すことができる。
【００３８】
同様に、点P0からY軸方向に動作を行い、ある点P2を通過し、その時の加速度データa2を取得する。その時、重力加速度を除外した加速度ayγはayγ=a2-a0と表す事ができる。このとき、モータエンコーダからの推定アーム加速度をａywとすると、規格化を行って、ａy＝ａyγ／ａywと表すことができる。
【００３９】
これら二つに直交するベクトルをazγ=ax×ayとして、以下のように表すことができる。
【数１】
0005480198.tif 000002
【００４０】
それ故、ツール座標系からワールド座標系へ姿勢の変換を行うための行列Rtは以下のように表すことができる。
【００４１】
【数２】
0005480198.tif 000003
【００４２】
次に、J5とJ6を動作させる事により、加速度センサの位置を特定する。まず、図４の様にJ5をΔθ1だけ回転させる。そして、その時の変位Δφ1を以下のようにする。
【００４３】
【数３】
0005480198.tif 000004
その時のワールド座標系のX軸方向のオフセット量ΔxはΔx=Δφ1／Δθ1と表される。
【００４４】
そして、図５の様にJ6をΔθ2だけ回転させる。そして、その時の変位Δφ2を以下のようにする。
【００４５】
【数４】
0005480198.tif 000005
【００４６】
そのとき、γ=Δφ2／Δθ2となり、ワールド座標系Y軸方向のオフセット量ΔyはΔy=γcosθ2、ワールド座標系のZ軸方向のオフセット量ΔzはΔz=γsinθ2と計算される。
【００４７】
次に学習制御器の設計を行う。まず、それぞれの軸について学習補正量の入力から加速度センサの検出結果から推定した位置までの周波数応答を測定する。また、学習制御のブロックは図６に描かれている。
【００４８】
図６に本発明の実施例に係るスポット溶接ロボットの概略構成図を示す。ロボット１００は、ロボット機構部１と、ロボット機構部１を制御するロボット制御部２により構成される。ロボット機構部１は、位置制御の対象とする制御対象部位であるガン１２と、ガン１２に設置されたセンサ１０と、を備えている。ロボット制御部２は、ロボットの学習制御を実施する学習制御部３と、ロボット機構部１を直接的に駆動する動作制御部４とを備えている。動作制御部４は、制御対象部位であるガン１２の目標軌跡または目標位置に関する位置指令データを取得し、位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、ロボット機構部１を所定の動作速度で動作させる。
【００４９】
学習制御部３は、センサ１０の検出結果から制御対象部位であるガン１２の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部１を動作させたときに生じる制御対象部位であるガン１２の振動を抑制するための、学習補正量を、学習制御により算出する。動作制御部４は、学習補正量を用いて位置偏差データを補正する。
【００５０】
実施例１に係るスポット溶接ロボットは、学習制御部３が、学習補正量を算出する過程で、ロボット機構部１で設定可能な最大動作速度を算出し、最大動作速度に至るまで１回又は複数回に渡って動作速度を増加させながら学習補正量を算出する点を特徴としている。学習制御部３以外は、図１に示した従来のロボットの構成と同様であるので、詳細な説明は省略する。
【００５１】
学習制御部３には、第１メモリ３１、位置変換器３５、ハイパスフィルター３６、逆変換器ＩＫ（Inverse Kinematics）３７、順変換器ＦＫ（Forward Kinematics）３８、学習制御器L(q)３２、ローパスフィルターQ(q)３３、第２メモリ３４、第３メモリ３５、第４メモリ３９、一試行遅れW-1３００が設けられている。そして、その周波数応答結果から、線形行列不等式を解く事により、学習制御器の設計を行う。
【００５２】
次に、学習制御器の設計方法について説明する。上述の線形行列不等式とは以下の拘束条件下で、
【００５３】
【数５】
0005480198.tif 000006
【００５４】
【数６】
0005480198.tif 000007
【００５５】
この式ではQ(z)が学習帯域をカット周波数に持つローパスフィルター、L(z)が学習制御フィルター、P(z)が学習補正量入力から制御対象までの伝達関数になる。このγが小さい程、学習制御器の性能は高くなる。学習制御器の最適化問題はQ(z)すなわち、学習制御の帯域が与えられた時、最小のγを与える学習フィルターL(z)を算出する問題である。そして、この式は以下の様に変形する事が可能である。
【００５６】
【数７】
0005480198.tif 000008
【００５７】
【数８】
0005480198.tif 000009
【００５８】
ここで、Lkをαk,jとVjの線形性により表す事ができる。ここで、VjはLkと同じ次元であり、Vjは、要素(j,i)以外は全てゼロになる。例えば、Ny=2、Nu=2とする。
【００５９】
【数９】
0005480198.tif 000010
【００６０】
【数１０】
0005480198.tif 000011
【００６１】
【数１１】
0005480198.tif 000012
【００６２】
そして、最小化問題はcTxすなわちγ2を最小とする問題に帰着する。これは、学習制御器の最適化問題と読み替える事ができる。よって、安定性条件と単調減少性への十分条件は
【００６３】
【数１２】
0005480198.tif 000013
となる。そこで、実験からP(ejΩi)を測定し、学習帯域フィルターQ(z)を与えれば、自動的に学習フィルターL(z)を求める事ができる。
【００６４】
更に、学習制御器のロバスト性を考慮する。ロボットは姿勢により大きくシステムが変化するのが特徴である。
【００６５】
ある一つの姿勢を基準姿勢とした時に、Pn(z)は基準姿勢の学習システムとする。そうすると、任意の姿勢Pm(z)はPm(z)＝Pn(z)＋ΔPm(z)と表される。ΔPm(z)はその基準姿勢からの学習システムの変化量である。その時、学習帯域フィルターQ(z)が与えられた場合の拘束条件は以下のようになる。
【００６６】
【数１３】
0005480198.tif 000014
【００６７】
そこで、m姿勢分だけ、実験よりP(ejΩi)を測定すれば、前例同様に自動的に学習制御器を求める事ができる。
【００６８】
次に、学習制御器のデータ処理手順について説明する。図６に示されるように、フィードバックは位置制御、速度制御、電流制御の三つのループから成立していて、学習制御はフィードバックの位置制御ループ外側にループを組んでいる。実線部分は学習稼動状態で動作中に有効なループになり、停止後は点線のループが有効となる。ajは加速度センサから得たデータであり、位置変換器３５は加速度データajを位置データに変換する。学習中は、センサ１０が検出したロボットの静止の際に起きる振動のデータを第１メモリ３１に保存する。第２メモリ３４からは学習補正量uj+1(k)が出力される。
【００６９】
動作終了後、位置変換器３５により直交座標の軌跡誤差等を推定し、ゼロ位相ハイパスフィルターであるハイパスフィルター３６を用いる事により、オフセットを取り除いた軌跡誤差等Δrを抽出する。その軌跡誤差等をモータ位置フィードバック(FB)データからＦＫを用いて推定したセンサの推定位置データrに加算することにより、アームのダイナミクスを含めた、センサ１０の直交座標系でのセンサ位置を推定する。
【００７０】
ここで、センサから推定されたセンサ位置を基軸三軸に逆変換（逆運動学計算）することにより、アームダイナミクスを含んだ各軸上での位置を計算する。即ち、センサの検出結果から算出された制御対象部位の軌跡誤差、位置誤差または振動成分を含んだデータをロボット機構部の各軸を基準とした位置座標に変換することにより各軸上のデータを算出する。このアームダイナミクスを含んだ各軸位置からアームダイナミクスを含まない各軸の位置、すなわちモータの位置を減算することにより各軸目的補正量を算出する。以下の式ではψjがj回目の試行の各軸目的補正量、IKは逆変換、θjはj回目の試行の各軸モータ位置である。
【００７１】
【数１４】
0005480198.tif 000015
【００７２】
この各軸目的補正量ψjを学習制御器に入力する事により、次の試行の学習補正量uj+1(k)を算出する。学習制御器L(q)３２を通して、第３メモリ３５から前の試行の学習補正量uj(k)を足し込みローパスフィルターQ(q)３３を通して、次の試行の学習補正量uj+1(k)が算出される。以上のようにして、センサ１０から検出されたデータを用いて、位置振動成分を抑制する学習補正量uj+1(k)を算出する。
【００７３】
次に、本発明の実施例１に係るロボット機構部の動作手順について図面を用いて説明する。図７は、実施例１に係るロボット機構部の動作手順について説明するためのフローチャートである。ロボット機構部の動作の高速化は、学習制御部が、学習実行中に、即ち学習補正量を算出する過程（学習稼動状態）で、ロボット機構部に設定可能な最大動作速度を算出し、最大動作速度に至るまで１回または複数回に渡って動作速度を増加させながら学習補正量を算出する学習を行うことにより実行される。ここで、「学習稼動状態」とは、作業プログラムによりロボット機構部を動作させて、センサの検出結果から算出したロボット機構部の制御対象位置の軌跡または位置を、動作制御部に与えられた目標軌跡もしくは目標位置に、それぞれ近づけるために学習補正量を算出する学習を行う状態をいう。
【００７４】
まず、ステップＳ１０１において、学習制御部は、学習補正量を算出する過程で、ロボット機構部で設定可能な最大動作速度を算出する。最大動作速度は、ロボット機構部で許容される最大速度及び最大加速度に基づいて算出することができる。具体的には、最初に、ロボット機構部を一回動作させて、一回目の試行のデータから、各軸モータの学習可能な最大動作速度をロボット機構部に許容される最大加速度、最大速度の観点から算出する。
【００７５】
まず、最大加速度の観点から各軸モータの学習可能な最大動作速度を算出する方法について説明する。ここで、動作速度の算出は、初期の動作速度に掛ける係数である速度オーバライドを算出することにより行う。ロボットの運動方程式は以下の様に定義される。
【００７６】
【数１５】
0005480198.tif 000016
【００７７】
【数１６】
0005480198.tif 000017
【００７８】
【数１７】
0005480198.tif 000018
ここで、添え字のiはi軸目を示す。
【００７９】
上記のようにして、最大加速度の観点から、最大速度オーバライドovr_max1,iが得られ、初期の動作速度に最大速度オーバライドを掛けることにより最大動作速度が得られる。
【００８０】
同様に、最大速度の観点から、最大速度オーバライドovr_max2,iについて計算を行う。一回目の試行の最大速度をων,i、モータの最大速度許容量をωp,iとすると、
【００８１】
【数１８】
0005480198.tif 000019
となる。
【００８２】
上記のようにして、最大速度の観点から、最大速度オーバライドovr_max2,iが得られる。上記の２つの条件と更に軸の中で最小の速度オーバライドが学習制御で使用可能な最大速度オーバライドになる。よって、それをovr_maxと表すと、
【００８３】
【数１９】
0005480198.tif 000020
となる。一回のステップで増加させる速度オーバライドの量をΔとすると、ステップ数ｎは、Δを用いて以下の様に算出される。
【００８４】
【数２０】
0005480198.tif 000021
【００８５】
動作速度を最大動作速度まで、例えばnステップで増加させて学習を実行し学習補正量を算出する。具体的には、まず、ステップＳ１０２において、学習制御部は、初期の動作速度において学習を数回繰り返し、振動が収束した後に、学習補正量を算出する。次に、ステップＳ１０３において、学習制御部は、学習補正量をメモリ等の記憶部、例えばＦ−ＲＯＭもしくはメモリカード（ＭＣ）等に保存する。
【００８６】
次に、ステップＳ１０４において、学習制御部は、動作速度を所定量増加させ、ステップＳ１０５において、学習制御部は、動作速度が最大動作速度より大きくなっているか否かを判断し、動作速度が最大動作速度以下である場合（Ｎｏ）には、ステップＳ１０２において、学習制御部は、所定量増加させた動作速度において学習を実行する。即ち、現在の動作速度である動作速度に所定量の速度を加算した新たな動作速度である新動作速度にて学習を実行する。動作速度が最大動作速度より大きくなっている場合（Ｙｅｓ）には、学習制御を終了する。
【００８７】
このようにして、動作速度が最大動作速度に達するまで、動作速度を上げるプロセスと学習を行うプロセスを繰り返す事により、最大動作速度付近での学習補正量を得ることができ、ロボットの動作を高速化することができる。また、本実施例のように、動作速度を徐々に増加させることにより、学習過程で生じる振動を抑制することができ、学習補正量の補正によって抑えるべき振動を小さくすることができる。その結果として、振動を抑制する効果（制振効果）がよくなる。
【００８８】
ロボット機構部を学習制御により算出した学習補正量基づいて動作させる実稼動時にはＦ−ＲＯＭもしくはメモリカード（ＭＣ）から呼び出して学習補正量を再生する。
【実施例２】
【００８９】
次に、本発明の実施例２に係るスポット溶接ロボットのロボット機構部の動作手順について図面を用いて説明する。実施例２に係るスポット溶接ロボットの構成図は実施例１と同様であるので詳細な説明は省略する。図８は、実施例２に係るロボット機構部の動作手順について説明するためのフローチャートである。本発明の実施例２に係るスポット溶接ロボットは、動作制御部４が、ロボット機構部１の動作速度の目標値である目標動作速度を取得し、学習制御部３が、目標動作速度と最大動作速度とを比較し、目標動作速度が最大動作速度より小さい場合には、目標動作速度に至るまで１回又は複数回に渡って動作速度を増加させながら学習補正量を算出する点を特徴としている。
【００９０】
まず、ステップＳ２０１において、スポット溶接ロボットの動作制御部４が外部から目標動作速度を取得する。具体的には、図６において、位置制御部４１が位置指令データyd(k)とともに目標動作速度を取得し、速度制御部４２に転送する。次に、ステップＳ２０２において、学習制御部３は、学習補正量を算出する過程で、ロボット機構部１で設定可能な最大動作速度を算出する。最大動作速度は、ロボット機構部で許容される最大速度及び最大加速度に基づいて算出することができる。具体的には、最初に、ロボット機構部を一回動作させて、一回目の試行のデータから、各軸モータの学習可能な最大動作速度をロボット機構部に許容される最大加速度、最大速度の観点から算出する。最大動作速度の算出方法は実施例１と同様であるので詳細な説明は省略する。
【００９１】
次に、ステップＳ２０３において、取得した目標動作速度と最大動作速度との大小関係を比較する。目標動作速度が最大動作速度より小さい場合には、目標動作速度に至るまで１回又は複数回に渡って動作速度を増加させながら学習補正量を算出する。具体的には、ステップＳ２０４において、学習制御部３は、初期の動作速度において学習を数回繰り返し、振動が収束した後に、学習補正量を算出する。次に、ステップＳ２０５において、学習制御部３は、学習補正量をメモリ、例えばＦ−ＲＯＭもしくはメモリカード（ＭＣ）等に保存する。
【００９２】
次に、ステップＳ２０６において、学習制御部は動作速度を所定量増加させ、ステップＳ２０７において、学習制御部３は、動作速度が目標動作速度より大きくなっているか否かを判断し、動作速度が目標動作速度以下である場合（Ｎｏ）には、ステップＳ２０４において、学習制御部３は、動作速度を所定量増加させた後の動作速度において学習を実行する。即ち、現在の動作速度である動作速度に所定量の速度を加算した新たな動作速度である新動作速度にて学習を実行する。動作速度が目標動作速度より大きくなっている場合（Ｙｅｓ）には、学習制御を終了する。
【００９３】
このようにして、動作速度が目標動作速度に達するまで、動作速度を上げるプロセスと学習を行うプロセスを繰り返す事により、目標動作速度付近での学習補正量を得ることができ、ロボットの動作を高速化することができる。また、本実施例のように、動作速度を徐々に増加させることにより、学習過程で生じる振動を抑制することができ、学習補正量の補正によって抑えるべき振動を小さくすることができる。その結果として、振動を抑制する効果（制振効果）がよくなる。さらに、目標動作速度が最大動作速度よりも小さい場合には、動作速度を最大動作速度まで増加させる必要がなくなり、学習補正量の算出を短時間で行うことができる。
【００９４】
ロボット機構部を学習制御により算出した学習補正量基づいて動作させる実稼動時にはＦ−ＲＯＭもしくはメモリカード（ＭＣ）から呼び出して学習補正量を再生する。
【００９５】
一方、ステップＳ２０３において、目標動作速度が最大動作速度以上である場合については、学習制御を終了させてもよいし、実施例１と同様に動作速度が最大動作速度に至るまで学習制御を行うようにしてもよい。一例として、図８においては、動作速度が最大動作速度に至るまで学習制御を行う例を示している。ステップＳ２０９〜Ｓ２１１は、上記のＳ２０４〜Ｓ２０６と同様である。ステップＳ２１２において、学習制御部３は、動作速度が最大動作速度より大きくなっているか否かを判断し、動作速度が最大動作速度以下である場合（Ｎｏ）には、ステップＳ２０９において、学習制御部は、動作速度を所定量増加させて学習を実行する。即ち、現在の動作速度である動作速度に所定量の速度を加算した新たな動作速度である新動作速度にて学習を実行する。動作速度が最大動作速度より大きくなっている場合（Ｙｅｓ）には、学習制御を終了する。
【００９６】
本実施例では、目標動作速度が最大動作速度を超えている場合について、動作速度を最大動作速度まで増加させて学習補正量を算出する例を示したがこのような例には限られない。上述のように、目標動作速度が最大動作速度を超えている場合には学習補正を終了するようにしてもよい。
【実施例３】
【００９７】
次に、本発明の実施例３に係るスポット溶接ロボットのロボット機構部の動作手順について図面を用いて説明する。実施例３に係るスポット溶接ロボットの構成図は実施例１と同様であるので詳細な説明は省略する。図９は、実施例３に係るロボット機構部の動作手順について説明するためのフローチャートである。本発明の実施例３に係るスポット溶接ロボットは、位置制御の対象とする制御対象部位であるガン１２と、制御対象部位であるガン１２に設置されたセンサ１０と、を備えたロボット機構部１と、制御対象部位であるガン１２の目標軌跡または目標位置に関する位置指令データを取得し、位置指令データを用いて算出される位置偏差データに従って、作業プログラムにより、ロボット機構部１を所定の動作速度で動作させる動作制御部４と、センサ１０の検出結果から制御対象部位であるガン１２の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部１を動作させたときに生じる制御対象部位であるガン１２の振動を抑制するための、学習補正量を、学習制御により算出する学習制御部３と、を有し、動作制御部４は、学習補正量を用いて位置偏差データを補正し、学習制御部３は、学習補正量を算出し、軌跡誤差または位置誤差、もしくは、振動と予め設定した各閾値とを比較する処理を行い、軌跡誤差または位置誤差、もしくは、振動が各閾値を越えるまで、動作速度を増加させながら、上記処理を繰り返す、ことを特徴としている。
【００９８】
以下、実施例３に係るスポット溶接ロボットの動作手順について説明する。まず、ステップＳ３０１において、学習制御部３は、初期の動作速度において学習を数回繰り返し、振動が収束した後に、学習制御部３は、センサ１０の検出結果から制御対象部位であるガン１２の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部を動作させたときに生じる制御対象部位であるガン１２の振動を抑制するための、学習補正量を、学習制御により算出する。次に、ステップＳ３０２において、学習制御部３は、学習補正量をメモリ等の記憶部、例えばＦ−ＲＯＭもしくはメモリカード（ＭＣ）等に保存する。
【００９９】
次に、ステップＳ３０３において、動作速度を所定量増加させ、ステップＳ３０４において、軌跡誤差または位置誤差、もしくは、振動が各閾値を越えているか否かを判断する。図９においては、軌跡誤差とその閾値との間の大小関係について判断する例を示しているが、位置誤差及び振動についても同様である。軌跡誤差、位置誤差及び振動の各閾値は予めメモリに格納しておくことができる。次に、ステップＳ３０４において、軌跡誤差が閾値を越えている場合には処理を終了し、軌跡誤差が閾値以下の場合には、ステップＳ３０１に戻って学習を繰り返す。例えば、動作速度を５０ｍｍ／ｓｅｃで動作させたときには軌跡誤差が閾値以下であり、動作速度を１００ｍｍ／ｓｅｃで動作させたときには軌跡誤差が閾値を越えたような場合、学習補正量の算出は動作速度５０ｍｍ／ｓｅｃの場合について実行され、動作速度１００ｍｍ／ｓｅｃの場合には実行されない。このようにして、軌跡誤差が所定の閾値の範囲内となる学習補正量を算出することができる。
【０１００】
ここで、動作速度を増加させる方法について詳しく説明する。本実施例のように、最大動作速度が設定されていない場合、即ち最大速度オーバライドが設定されていない場合、例えば動作時間終了前100msec（0.1sec）の軌跡誤差が閾値内に収まる限り、ある一定量のオーバライドを上げていく。このプロセスを繰り返す事により、高速化が行われる。
【０１０１】
振動量をψj(t)、動作終了時間をt_endとする。すると、振動量が閾値内に収まる条件は以下の様に表記可能である。
【０１０２】
【数２１】
0005480198.tif 000022
【０１０３】
目標動作速度が設定されていない場合、即ち、目標オーバライドが設定されていない場合、上記の条件を満たす間、オーバライドを上げていく。over_curを今回の試行のオーバライドと定義する。
【０１０４】
なお、実施例２のように目標オーバライドover_max3がサイクルタイムにより算出されている場合は上記の条件と下記の条件が同時に満たされている間、オーバライドを上げていく。
over_cur＜over_max3
【０１０５】
以上のように、本実施例によるスポット溶接ロボットによれば、軌跡誤差等が所定の閾値に収まる範囲内で動作速度を高めた状態での学習補正量を算出することができるので、一定の軌跡誤差等の範囲内でスポット溶接ロボットの動作速度を高速化することができる。
【実施例４】
【０１０６】
次に、本発明の実施例４に係るスポット溶接ロボットのロボット機構部の動作手順について図面を用いて説明する。実施例４に係るスポット溶接ロボットの構成図は実施例１と同様であるので詳細な説明は省略する。図１０は、実施例４に係るロボット機構部の動作手順について説明するためのフローチャートである。本発明の実施例４に係るスポット溶接ロボットは、動作制御部４が、ロボット機構部１の動作速度の目標値である目標動作速度を取得し、学習制御部３は、目標動作速度に至るまで１回又は複数回に渡って動作速度を増加させ、増加させる度に、学習補正量を算出し、軌跡誤差または位置誤差、もしくは、振動と予め設定した各閾値とを比較する処理を行い、軌跡誤差または位置誤差、もしくは、振動が各閾値内に収まる限り、あるいは動作速度が目標動作速度に至るまで、処理を繰り返す、ことを特徴としている。
【０１０７】
以下、実施例４に係るスポット溶接ロボットの動作手順について説明する。まず、ステップＳ４０１において、スポット溶接ロボットの動作制御部４が外部から目標動作速度を取得する。具体的には、図６において、位置制御部４１が位置指令データyd(k)とともに目標動作速度を取得し、速度制御部４２に転送する。次に、ステップＳ４０２において、学習制御部３は、初期の動作速度において学習を数回繰り返し、振動が収束した後に、学習制御部３は、センサ１０の検出結果から制御対象部位であるガン１２の軌跡または位置を算出し、軌跡と目標軌跡との間の軌跡誤差または位置と目標位置との間の位置誤差を補正するための、もしくはロボット機構部を動作させたときに生じる制御対象部位であるガン１２の振動を抑制するための、学習補正量を、学習制御により算出する。次に、ステップＳ４０３において、学習制御部３は、学習補正量をメモリ等の記憶部、例えばＦ−ＲＯＭもしくはメモリカード（ＭＣ）等に保存する。
【０１０８】
次に、ステップＳ４０４において、動作速度を所定量増加させ、ステップＳ４０５において、取得した目標動作速度と動作速度との大小関係を比較する。目標動作速度が動作速度より小さい場合には、ステップＳ４０６において、軌跡誤差または位置誤差、もしくは、振動が各閾値を越えているか否かを判断する。図１０においては、軌跡誤差とその閾値との間の大小関係について判断する例を示しているが、位置誤差及び振動についても同様である。軌跡誤差、位置誤差及び振動の各閾値は予めメモリに格納しておくことができる。
【０１０９】
ステップＳ４０６において、軌跡誤差が閾値を越えている場合には処理を終了し、軌跡誤差が閾値以下の場合には、ステップＳ４０２に戻って学習を繰り返す。例えば、動作速度を５０ｍｍ／ｓｅｃで動作させたときには軌跡誤差が閾値以下であり、動作速度を１００ｍｍ／ｓｅｃで動作させたときには軌跡誤差が閾値を越えたような場合、学習補正量の算出は動作速度５０ｍｍ／ｓｅｃの場合について実行され、動作速度１００ｍｍ／ｓｅｃの場合には実行されない。このようにして、軌跡誤差が所定の閾値の範囲内となる学習補正量を算出することができる。一方、ステップＳ４０５において、目標動作速度が動作速度以上の場合には、処理を終了する。
【０１１０】
本実施例においては、動作速度が目標動作速度を超えない範囲内かつ軌跡誤差等が閾値を超えない範囲内で学習補正量を算出するようにしているので、目標動作速度及び軌跡誤差等の両者の条件を満足する学習補正量を算出することができる。従って、動作速度が設定した目標動作速度の範囲内において、軌跡誤差等が所定の閾値の範囲に収まる範囲内で動作速度を高めた状態での学習補正量を算出することができるので、所定の目標動作速度の範囲内かつ一定の軌跡誤差等の範囲内でスポット溶接ロボットの動作速度を高速化することができる。
【０１１１】
以上、本発明の実施例においては、ロボット機構部に取り付けるセンサとして、加速度センサを用いる例を示したが、ビジョンセンサ、ジャイロセンサ、慣性センサ、歪ゲージを用いてもよい。
【符号の説明】
【０１１２】
１    ロボット機構部
２    ロボット制御部
３    学習制御部
４    動作制御部
１０    加速度センサ
１２    ガン
２１    対向電極
２２    可動電極
３１    第１メモリ
３２    学習制御器
３３    ローパスフィルター
３４    第２メモリ
３５    第３メモリ
３６    ハイパスフィルター
３７    逆変換器
３８    順変換器
４１    位置制御部
４２    速度制御部
４３    電流制御部
４４    アンプ
４５    微分手段
１００    ロボット
【図１】
0005480198.tif 000023
【図２】
0005480198.tif 000024
【図３】
0005480198.tif 000025
【図４】
0005480198.tif 000026
【図５】
0005480198.tif 000027
【図６】
0005480198.tif 000028
【図７】
0005480198.tif 000029
【図８】
0005480198.tif 000030
【図９】
0005480198.tif 000031
【図１０】
0005480198.tif 000032
【図１１】
0005480198.tif 000033