(57)【特許請求の範囲】
【請求項１】
ロボット機構部と、
前記ロボット機構部の位置制御の対象部位に設けられ、直接的または間接的に前記対象部位の位置情報を求めるための物理量を検出するセンサと、
前記ロボット機構部の動作を制御する動作制御部を有するロボット制御部と、を有し、
前記ロボット制御部は、
前記動作制御部により前記ロボット機構部に所定の動作をさせた際の、該所定の動作中に前記センサにより検出された物理量に基づいて、前記ロボット機構部の所定の動作を改善するための学習補正量を算出する学習制御部と、
前記学習制御部が算出した学習補正量と学習した所定の動作の情報との間の関係を求め、前記ロボット機構部の前記所定の動作とは異なる、新たな動作の情報に対して、求めた前記関係を使用して、前記新たな動作を改善するための学習補正量を算出する学習拡張部と、
を備え、
前記学習拡張部は、前記学習制御部が算出した学習補正量のスペクトログラム及び前記ロボット機構部の所定の動作情報のスペクトログラムから、学習補正量と動作情報との間の伝達関数を求め、該伝達関数に基づいて、新たな動作の情報を入力として新たな動作に対する学習補正量を算出する、
ことを特徴とするロボット装置。
【請求項２】
前記ロボット機構部の動作情報には、位置、動作速度、加速度、及びイナーシャのうちの少なくとも１つが含まれる、請求項１に記載のロボット装置。
【請求項３】
前記ロボット制御部は、前記動作制御部によって前記ロボット機構部で許容される最大速度及び最大加速度で、前記ロボット機構部を動作させ、またはシミュレーションモードで動作を実行させることにより、前記ロボット機構部の動作情報を取得し、
前記学習拡張部は、前記動作情報に基づいて新たな動作に対する学習補正量を算出する、請求項１または２に記載のロボット装置。
【請求項４】
前記所定の動作は、作業プログラムに使用された動作、または指定された動作範囲内に自動生成されたＸ軸、Ｙ軸、Ｚ軸、Ｘ軸まわり、Ｙ軸まわり、Ｚ軸まわりを含めた動作である、請求項１乃至３のいずれか一項に記載のロボット装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置に関し、特に、ロボットの動作を改善するための学習補正量を算出する学習機能を備えた多関節のロボット装置に関する。
【背景技術】
【０００２】
ロボットが所定の動作を繰り返し実行することにより、ロボットの動作を改善するための学習補正量を作成する学習機能を備えたロボットが知られている。また、作成した学習補正量に基づいて、ロボットを動作させながら教示修正を行う場合に、修正された動作について誤った学習補正量を適用することを回避するため、ロボットの速度を安全速度に落とし、学習補正量をゼロにする方法が提案されている（例えば、特許文献１）。
【０００３】
特許文献１では、学習制御機能を持つロボットの学習稼働、もしくは実稼働において例外処理が起きた場合の対処手段と再学習までの方法が提案されている。また、特許文献１では、学習した動作が教示修正された場合に、修正量がある範囲内であれば、隣接した位置の学習補正量をそのまま適用し、修正量が所定の範囲を超えると、減速しながら学習補正量をゼロにする方法が提案されている。
【０００４】
しかし、この従来技術においては、学習補正量がロボットの制御対象部位の位置に依存する場合、異なる位置における学習補正量をそのまま適用すると振動抑制の効果に影響を与える可能性がある。教示修正が大きい場合、減速しながら学習補正量をゼロにし、高速化効果が得られない可能性もある。また、ビジョンセンサ等を用いたトラッキング動作を行うシステムでは、ワークの位置がランダムに変化する場合に対応することができないという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９２２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、学習補正量と動作情報との間の関係を求めることによって、学習していない新たな動作に対しても学習補正量を算出することができ、センサを取り付けて行う再学習の作業が不要となるロボット装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施例に係るロボット装置は、ロボット機構部と、ロボット機構部の位置制御の対象部位に設けられ、直接的または間接的に対象部位の位置情報を求めるための物理量を検出するセンサと、ロボット機構部の動作を制御する動作制御部を有するロボット制御部と、を有し、ロボット制御部は、動作制御部によりロボット機構部に所定の動作をさせた際の、所定の動作中にセンサにより検出された物理量に基づいて、ロボット機構部の所定の動作を改善するための学習補正量を算出する学習制御部と、学習制御部が算出した学習補正量と学習した所定の動作の情報との間の関係を求め、ロボット機構部の所定の動作とは異なる、新たな動作の情報に対して、求めた関係を使用して、新たな動作を改善するための学習補正量を算出する学習拡張部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明の一実施例に係るロボット装置によれば、学習補正量と動作情報との間の関係を求めることによって、学習していない新たな動作に対しても学習補正量を算出することができ、センサを取り付けて行う再学習の作業が不要となる。また、従来対応できなかったビジョンセンサ等を用いたトラッキング動作を行うシステムにも対応できるようになる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係るロボット装置の構成図である。
【図２】本発明の実施例に係るロボット装置の学習中における位置制御の対象部位の軌跡を示す図である。
【図３】本発明の実施例に係るロボット装置の伝達関数の算出処理手順を説明するためのフローチャートである。
【図４】本発明の実施例に係るロボット装置における速度及び学習補正量の時間的変化を示す図である。
【図５】本発明の実施例に係るロボット装置の稼働中における位置制御の対象部位の新たな軌跡を示す図である。
【図６】本発明の実施例に係るロボット装置の新たな位置に対する学習補正量の算出処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施例に係るロボット装置について説明する。図１に本発明の実施例に係るロボット装置の構成図を示す。本発明の実施例に係るロボット装置１０１は、ロボット機構部１と、センサ２と、ロボット制御部４と、を有する。
【００１１】
センサ２は、ロボット機構部１の位置制御の対象部位に設けられ、直接的または間接的に対象部位の位置情報を求めるための物理量を検出する。センサ２として、例えば、加速度センサを用いることができる。ロボット機構部１の位置制御の対象部位とは、例えば、スポット溶接用のロボットであれば、スポット溶接ガンである。ただし、ロボット装置の位置制御の対象部位は、このような例には限定されず、他の部位であってもよい。
【００１２】
ロボット制御部４は、ロボット機構部１の動作を制御する動作制御部３を有する。動作制御部３は、図示しない上位制御装置等から動作指令を受け、ロボット機構部１を駆動すると共にロボット機構部１からのフィードバックデータに基づいて、ロボット機構部１の動作を制御する。フィードバック制御として、例えば、位置フィードバック制御、速度フィードバック制御、または電流フィードバック制御のうちの少なくとも１つを用いることができる。フィードバック制御によりロボット機構部１の位置または速度が指令位置または指令速度と一致するように制御される。
【００１３】
ロボット制御部４は、さらに、学習制御部５と、学習拡張部６と、を備えている。学習制御部５は、動作制御部３によりロボット機構部１に所定の動作をさせた際の、所定の動作中にセンサ２により検出された物理量に基づいて、ロボット機構部１の所定の動作を改善するための学習補正量を算出する。ロボット機構部１に実行させる所定の動作として、例えば、図２に示すように図中の矢印の方向（Ｙ方向）へのスポット溶接動作が挙げられる。所定の動作は、作業プログラムに使用された動作、または指定された動作範囲内に自動生成されたＸ軸、Ｙ軸、Ｚ軸、Ｘ軸まわり、Ｙ軸まわり、Ｚ軸まわりを含めた動作であってもよい。このように所定の動作を実行させて、ロボットの振動を低減するための学習補正量を学習制御部５により算出する。算出した学習補正量と動作指令から得られた動作情報をメモリ８に格納する。ここで、ロボット機構部１の動作情報には、位置、動作速度、加速度、及びイナーシャのうちの少なくとも１つが含まれることが好ましい。
【００１４】
センサ２として加速度センサを用いた場合は、センサ２が検出する物理量はロボット機構部１の制御対象部位の加速度である。学習制御部５が算出した学習補正量は、加算器７において動作制御部３からの指令値に加算され、補正後の指令値がロボット機構部１に入力される。
【００１５】
本発明では、学習した位置についての動作情報と作成した学習補正量に基づいて、学習していない位置の学習補正量を算出する方法及び装置を提案する。具体的には、まず、ロボットに所定の動作を実行させ、ロボットの動作を改善するための補正量を学習する。次に、所定の動作の情報及び学習補正量のスペクトログラムから動作情報と学習補正量との間の伝達関数を求め、この伝達関数を用いて、学習していない動作の情報に基づいて学習補正量を計算する。
【００１６】
学習拡張部６は、学習制御部５が算出した学習補正量と学習した所定の動作の情報との間の関係を求め、ロボット機構部１の所定の動作とは異なる、新たな動作の情報に対して、求めた関係を使用して、新たな動作を改善するための学習補正量を算出する。
【００１７】
具体的には、ロボット機構部１に所定の動作を実行させて学習補正量が求められた後は、新たな動作指令に基づいてロボット機構部１を稼働させる。停止中または稼働中にメモリ８に格納された上記の動作情報と学習補正量との間の関係を表す伝達関数を学習拡張部６により求める。動作指令から取得した新たな動作情報を学習拡張部６に入力し、上記の伝達関数に基づいて新たな動作に対する学習補正量を算出し、動作制御部３から出力された動作指令に加算する。
【００１８】
このようにして、学習拡張部６は、学習制御部５が算出した学習補正量及びロボット機構部１の所定の動作情報のスペクトログラムから、学習補正量と動作情報との間の伝達関数を求め、伝達関数に基づいて、新たな動作の情報を入力として新たな動作に対する学習補正量を算出する。
【００１９】
ロボット制御部４は、動作制御部３によってロボット機構部１で許容される最大速度及び最大加速度で、ロボット機構部１を動作させ、またはシミュレーションモードで動作を実行させることにより、ロボット機構部１の動作情報を取得するようにしてもよい。
【００２０】
なお、学習制御部５と学習拡張部６は同時に動作することはない。学習制御部５は、学習中のみ動作し、学習終了後の再生時（稼働中）には動作しない。逆に、学習拡張部６は、再生時（稼働中）のみ動作し、学習中には動作しない。
【００２１】
次に、上述した伝達関数の導出方法について説明する。
【００２２】
図３に伝達関数の算出処理手順を説明するためのフローチャートを示す。また、図４（ａ）及び図４（ｂ）に本発明の実施例に係るロボット装置における速度指令及び学習補正量の時間的変化をそれぞれ示す。まず、ステップＳ１において、学習中に得られた動作情報（例えば、速度データ）と学習補正量をメモリに格納し、これらを動作状態に応じて１つまたは複数の区間に分割する。具体的には、図４（ａ）及び図４（ｂ）に示すようにロボットが静止状態から動作開始へ遷移する時刻を区間１〜区間７の各区間の始点とし、動作が停止してから次の動作を開始する時刻を該区間の終点とする。ここで区間を区切らず、各時刻のデータから伝達関数を求めても良い。
【００２３】
次に、ステップＳ２において、区間毎に動作情報（例えば、速度データ）及び学習補正量のスペクトログラムを短時間フーリエ変換によって以下のように求める。
【００２４】
【数１】
0006386516.tif 000002
ここで、ｙiは速度、Ｙiは求められた速度のスペクトログラム、ωは窓関数、ｋはインディクス、ｍは区間番号、ｊmはｍ区間の終点時刻のインディクス、ｆは周波数区間のインディクス、ｎは所定動作のデータ数、添え字のｉは複数の軸のうちのｉ軸目かを表す軸番号をそれぞれ示す。例えば、６軸の多関節ロボットの場合、ｉは１〜６となる。
【００２５】
ここで、短時間フーリエ変換をＳＴＦＴと表すと、上記の式（１）を以下のように表すことができる。
Ｙi＝ＳＴＦＴ｛ｙi｝                                  （２）
【００２６】
また、Ｙiが既知の場合に、ｙiを求める過程は、逆変換をＩＳＴＦＴとすると、以下のように表される。
ｙi＝ＩＳＴＦＴ｛Ｙi｝                                （３）
【００２７】
学習補正量のスペクトログラムとその逆変換も同様に求めることができる。
Ｘi＝ＳＴＦＴ｛ｘi｝                                  （４）
ｘi＝ＩＳＴＦＴ｛Ｘi｝                                （５）
ここで、ｘiは学習補正量、Ｘiは求められた学習補正量のスペクトログラム、添え字のｉは軸番号をそれぞれ示す。
【００２８】
次に、ステップＳ３において、以下の通り、区間毎の速度と学習補正量との間の伝達関数を求める。
【００２９】
【数２】
0006386516.tif 000003
ここで、Ｃiは速度と学習補正量との間の伝達関数、ｍは区間番号、添え字のｉは軸番号をそれぞれ示す。
【００３０】
図５に本発明の実施例に係るロボット装置の稼働中における位置制御の対象部位の新たな軌跡を示す。稼働中においてはロボット機構部１を有するロボットに図５に示したように学習した位置と異なる新たな位置でＹ方向のスポット溶接動作を実行させる。ロボットが動作している際に、動作指令から得られた補間毎の位置と、学習した位置との間の距離を計算し、距離の一番短い区間を選び、その区間の伝達関数を使用する。ここで距離から使用する伝達関数の区間を選定したが、イナーシャからイナーシャの一番近い区間を選定してもよい。選択された伝達関数に基づいて、新たな動作指令に対して、速度情報を伝達関数に代入し、学習補正量を算出する。算出した学習補正量を動作指令に加算し、ロボット機構部１を有するロボットに出力する。
【００３１】
動作指令から得られたある時刻における制御対象部位の位置をＰtとする。図６に新たな位置Ｐtに対する学習補正量の算出処理手順を説明するためのフローチャートを示す。
【００３２】
まず、ステップＳ１１において、動作指令から新たな動作位置を取得し、新たな動作位置と各区間との間の平均距離を算出し、最も近い区間を選定する。学習した位置の各補間点からＰt（ｘpt，ｙpt，ｚpt）までの距離を以下のように計算する。
【００３３】
【数３】
0006386516.tif 000004
ここで、Ｐkは時刻ｋの位置（ｘpk，ｙpk，ｚpk）を示す。
区間毎にＰtまでの平均距離Ｓmを求め、Ｐtまでの距離が最も短い区間を選定する。イナーシャが最も近い区間を選定してもよい。
【００３４】
【数４】
0006386516.tif 000005
ここで、ｍは区間番号、ｎはｍ区間内のデータ数をそれぞれ示す。
【００３５】
次に、ステップＳ１２において、選定された区間の伝達関数に基づいて、速度情報からＰtの新たな学習補正量を算出する。
【００３６】
【数５】
0006386516.tif 000006
【００３７】
次に、ステップＳ１３において、ステップＳ１２で算出した学習補正量ｑiを動作制御部３から計算した動作指令に加算し、ロボット機構部１を有するロボットに出力する。
【００３８】
以上の説明では、動作情報として速度データを用いた例を示したが、このような例には限られず、動作情報は、位置、加速度、またはイナーシャ等であってもよい。
【００３９】
以上説明したように、本発明によれば、所定の動作によるロボットの動作情報と学習補正量との間の伝達関数を算出することが可能となる。そのため、この伝達関数を用いてセンサを用いずに学習していない動作の学習補正量を算出することが可能になる。その結果、センサのセットアップや再学習の手間が不要になり、学習の立ち上げ時間を短縮することができる。また、ビジョンセンサなどによる不定位置のワークを検出するシステムでも対応することが可能になる。
【符号の説明】
【００４０】
１    ロボット機構部
２    センサ
３    動作制御部
４    ロボット制御部
５    学習制御部
６    学習拡張部
７    加算器
８    メモリ
【図１】
0006386516.tif 000007
【図２】
0006386516.tif 000008
【図３】
0006386516.tif 000009
【図４】
0006386516.tif 000010
【図５】
0006386516.tif 000011
【図６】
0006386516.tif 000012