学習制御ロボット
【課題】本発明は、学習制御機能を持つロボットの学習稼動の動作中、もしくは学習後の実稼動の動作中に例外処理が起きた場合に対処可能な学習制御ロボット及び再学習可能な学習制御ロボットを提供することを目的とする。
【解決手段】本発明の学習制御ロボットは、ロボット機構部と、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、学習制御の実行中に、データを取得するためにロボット機構部の学習稼動を実行し、学習制御の実行後に、学習制御部が計算した学習補正量に基づいて、ロボット機構部の実稼動を実行する通常制御部と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、を有することを特徴とする。
【解決手段】本発明の学習制御ロボットは、ロボット機構部と、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、学習制御の実行中に、データを取得するためにロボット機構部の学習稼動を実行し、学習制御の実行後に、学習制御部が計算した学習補正量に基づいて、ロボット機構部の実稼動を実行する通常制御部と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、を有することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は学習制御ロボットに関し、特に学習制御機能を有した制御装置を備えた産業用ロボットに関する。
【背景技術】
【0002】
学習制御に関する技術は、ロボットでは商品レベルで実用化されていないものの、工作機械では実用化が進んで来ている(例えば、特許文献1、2)。
【0003】
ここで、学習制御について簡単に説明する。学習制御はフィードフォワード信号をある同じ動作に対して最適化する制御である。繰り返し同じ動作を行う事により、フィードフォワード信号が更新されて行き、最終的にはある形に落ち着く(あまり更新による変化がなくなる。)。その時点で、学習を終了して、学習制御によって得られたフィードフォワード信号を更新せずにそのまま使用する。具体的な更新のプロセスとしては、まず、ロボット機構部を動作させる作動プログラムを実行して、所定の動作パラメータでロボット機構部に所定の動作を実行させ、その動作中に位置偏差に関するデータ(例えば、振動量や軌跡誤差量)をセンサ等により計測する。動作終了後にそのデータから次回の動作パラメータの補正量(学習補正量)を計算する。そして、次の動作中はその学習補正量を用いながら動作を行い、かつ振動量や軌跡誤差量も計測する。そして、動作終了後は前回の学習補正量と計測されたデータから次回の動作パラメータの学習補正量を計算する。学習補正量がある形に収束して、位置偏差が所定の値以下になるまで、このプロセスを繰り返すことにより学習制御が行われる。学習制御終了後は、最終的に得られた学習補正量を用いながら動作(実稼動)を行うが、振動量や軌跡誤差量は計測しない。そして、動作終了後も学習補正量を更新せずに、次回も同じ学習補正量を使用する。以下、本発明の説明において、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算することを「学習制御」といい、上記データを取得するためにロボット機構部を動作させることを「学習稼動」といい、学習制御部が計算した学習補正量に基づいてロボット機構部を制御することを「実稼動」という。
【0004】
図1に従来の学習制御機能を備えたロボット(学習制御ロボット)の概略図を示す。従来の学習制御ロボット100は、ロボット機構部1及びロボット機構部1を制御する制御装置2により構成される。制御装置2は、学習制御ロボットの学習制御を実行する学習制御部3と、ロボット機構部1を直接的に駆動する通常制御部4とを備えている。
【0005】
ロボット機構部1には、アーム11、アーム先端部12、立体センサ13、モータ(図示せず)が設けられている。ロボット機構部1のモータには、制御装置2に含まれる通常制御部4からの信号が入力される。ロボット機構部1のモータは、アーム11を駆動し、アーム先端部12を所望の位置に移動させて、例えば溶接等の作業を実行する。アーム先端部12には立体センサ13が設置されており、アーム先端部12の空間的な位置データ(yj(k))を得ることができる。立体センサ13からの位置データ(yj(k))は学習制御部3に出力され、学習制御に利用される。ここで、jは試行回数、kは時間を表す。
【0006】
通常制御部4には、位置制御部41、速度制御部42、電流制御部43、アンプ44、微分手段45が設けられている。位置制御部41は、制御装置2の外部から入力される位置指令データ(yd(k))を受信する。位置制御部41は、さらに、ロボット機構部1のモータ位置等の位置データを受信し、ロボット機構部1のアーム先端部12の所望の位置データを速度制御部42に対して出力する。微分手段45は、ロボット機構部1からフィードバックされるモータ位置データを受信し、モータ速度を算出し、これを速度制御部42に対して出力する。
【0007】
速度制御部42は、位置制御部41からの位置データ及び微分手段45からのモータ速度データを勘案して所望のモータ速度を算出し、これを電流制御部43に対して出力する。電流制御部43は、アンプ44からフィードバックされる電流値を受信するとともに、速度制御部42から入力された所望のモータ速度となるようにモータに流す電流を算出し、これをアンプ44に対して出力する。アンプ44は、電流制御部43からの電流値に基づいて所望の電力を算出し、これをロボット機構部1のモータ(図示せず)に投入する。
【0008】
学習制御部3には、第1メモリ31、学習制御器32、第2メモリ33、RAM34が設けられている。第1メモリ31には、アーム先端部12に関する位置指令データ(yd(k))と、立体センサ13が測定した位置データ(yj(k))との差分である目的補正量ej(k)が入力され、これを記憶するともに、目的補正量ej(k)を学習制御器32に対して出力する。ここで、目的補正量ej(k)は、アーム先端部12の所望の位置に対する誤差(位置偏差)に相当する。
【0009】
学習制御器32は、学習制御器32に内蔵されたRAM34に格納された作業プログラムを実行することにより、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する。即ち、上記RAM34に格納された前試行の学習補正量uj(k)と目的補正量ej(k)から学習補正量uj+1(k)を算出し、これを第2メモリ33とRAM34に対して出力する。第2メモリ33に入力された学習補正量uj+1(k)は、第2メモリ33に記憶されるとともに、通常制御部4の位置制御部41で算出される位置偏差に関するデータ(位置偏差データ)に加算される。
【0010】
補正された位置偏差データに基づいて、ロボット機構部1が制御され、学習制御が繰り返される。学習制御は、この一連のプロセスを繰り返し実行する事により位置偏差を所定の値以下、好ましくは「0」に収束させるものである。学習制御終了後、即ち実稼動では、図1の点線で示した学習補正量更新のためのループは実行されず、第2メモリ33から学習補正量uj+1(k)が位置制御部41に出力される。なお、図1において、実線部分は通常制御部4がロボット機構部1の学習稼動または実稼動の際に実行される部分を表し、点線部分である学習制御における学習補正量の計算手順は学習稼動での動作終了後に実行される。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2009−83074
【特許文献2】特開2006−172149
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来の学習制御に関する技術においては、アプリケーションの幅が狭く、運用に関しては余り考慮されていないという問題があった。即ち、学習制御は同じ動作を繰り返す事を想定しているが、それ故、学習稼動、もしくは実稼動にかかわらず、学習制御が想定している動作とは違う動きをする場合(例えば、一時停止、速度オーバライドの変更等。以下「例外処理」という)、学習補正量が動作を悪化させる可能性があった。特に、動作速度が速い場合等においては、ロボット機構部で振動などが生じる恐れもあった。
【0013】
本発明は、学習制御ロボットの学習稼動の実行中、もしくは実稼動の実行中に例外処理が起きた場合に対処可能な学習制御ロボット及び再学習可能な学習制御ロボットを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の学習制御ロボットは、ロボット機構部と、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、学習制御の実行中に、データを取得するためにロボット機構部の学習稼動を実行し、学習制御の実行後に、学習制御部が計算した学習補正量に基づいて、ロボット機構部の実稼動を実行する通常制御部と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、を有することを特徴とする。
【0015】
さらに、例外対処は、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理であることが好ましい。
【0016】
一例として、例外処理は、作業プログラムに対する教示修正処理である。
【0017】
他の一例として、例外処理は、学習稼動又は実稼動の一時停止処理である。
【0018】
さらに他の一例として、例外処理は、学習稼動又は実稼動の一時停止後の動作再開処理である。
【0019】
その他の一例として、例外処理は、学習稼動の実行中又は実稼動の実行中における速度オーバライドの変更処理である。
【0020】
また、教示修正処理後のロボット機構部の空間的位置が、教示修正処理前のロボット機構部の空間的位置を基準とする所定の領域内に存在している場合には、例外対処は実行されないようにしてもよい。
【0021】
ここで、所定の領域は、教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域であることが好ましい。
【0022】
また、学習制御部に学習制御を再度実行させて学習補正量を再計算する再学習制御部をさらに有していてもよい。
【発明の効果】
【0023】
本発明によれば、学習制御ロボットの学習稼動の実行中又は実稼動の実行中に、学習制御ロボットを制御する作業プログラムに対する教示修正処理、ロボット機構部の一時停止処理及び一時停止後の動作再開処理、速度制御部に対する速度オーバライドの変更処理に代表される例外処理が起きた場合に、例外対処を実行することにより、安全性を高めることができる。
【0024】
さらに、本発明によれば、例外処理が起きた場合に、ロボット制御部に設けられた例外対処部が例外対処としてロボット機構部の動作速度を所定の安全な速度に落とすとともに、学習制御により得られた学習補正量をゼロに設定することができ、安全性を高めることができる。
【図面の簡単な説明】
【0025】
【図1】従来の学習制御ロボットの構成図である。
【図2】本発明の実施例1に係る学習制御ロボットの構成図である。
【図3】本発明の実施例1に係る学習制御ロボットの動作フローを示すフローチャートである。
【図4】作業プログラムの一例を示す図である。
【図5】学習稼動において教示修正処理を実行した場合の教示修正の有無の確認手順の流れを示すフローチャートである。
【図6】学習後の実稼動において教示修正処理を実行した場合の教示修正の有無の確認手順の流れを示すフローチャートである。
【図7】本発明の実施例2及び3に係る学習制御ロボットの構成図である。
【図8】本発明の実施例2に係る学習制御ロボットの動作フローを示すフローチャートである。
【図9】本発明の実施例3に係る学習制御ロボットの動作フローを示すフローチャートである。
【図10】本発明の実施例4に係る学習制御ロボットの構成図である。
【図11】本発明の実施例4に係る学習制御ロボットの動作フローを示すフローチャートである。
【図12】本発明の実施例5に係る学習制御ロボットの構成図である。
【図13】本発明の実施例5に係る学習制御ロボットの動作フローを示すフローチャートである。
【発明を実施するための形態】
【0026】
以下図面を参照して、本発明に係る学習制御ロボットについて説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【実施例1】
【0027】
図2に本発明の実施例1に係る学習制御ロボットの構成図を示す。本発明の実施例1に係る学習制御ロボット101は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部5と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5をさらに設けている点である。実施例1においては、例外対処部5は、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御器32に内蔵されたRAM34に格納された作業プログラムに対して教示修正処理が行われた場合に、例外処理が行われたものと判断し、例外対処を行う点を特徴としている。ここで、例外対処とは、学習制御ロボットに対して例外的な処理が行われた場合に、学習制御ロボットを安全な状態にすることをいい、例えば、ロボット機構部1の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定することが挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、RAM34及び第2メモリ33内の学習補正量をゼロに設定する。
【0028】
学習制御部3は、作業プログラム実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する。さらに、学習制御部3は、計算した学習補正量を通常制御部4の位置制御部41に送る。一方、通常制御部4は、学習制御部3が学習補正量を計算するため、または学習制御部3が計算した学習補正量を利用して、ロボット機構部1による学習稼動もしくは実稼動を制御する。即ち、学習制御の実行中に、通常制御部4は位置偏差に関するデータを取得するためにロボット機構部1の学習稼動を実行し、学習制御部3は学習補正量を計算する学習制御を実行する。学習制御の実行後に、通常制御部4は学習制御部が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する。例外対処部5は、上記作業プログラムの内容を常に監視している。作業プログラムに修正が加えられ、その修正が学習制御ロボットに異常な動作を誘発させるような教示修正である場合には、通常制御部4の速度制御部42を制御するともに、RAM34及び第2メモリ33内の学習補正量をゼロに設定する。
【0029】
次に、実施例1の学習制御ロボットの動作手順について説明する。図3に、実施例1の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS101において、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、例外対処部5が学習制御器32内のRAM34に格納された作業プログラムを常に監視する。作業プログラムに変更があった場合に、作業プログラムに加えられた修正が教示修正であるか否かを判断する。作業プログラムに加えられた修正が教示修正ではないと判断した場合には、元の状態に戻る。ここで、教示修正であるか否かの判断については、作業プログラムにおいて、ロボット機構部の動作に関連するデータが変更された場合は教示修正と判断し、それ以外のデータに修正が加えられた場合は教示修正ではないと判断する。
【0030】
作業プログラムに加えられた修正が教示修正であると判断した場合には、ステップS102において、作業プログラムに格納されている教示修正処理後のロボット機構部の空間的位置が、教示修正処理前のロボット機構部の空間的位置を基準とする所定の領域内に存在しているか否かを判断する。具体的には、教示修正処理後のロボット機構部の空間的位置が、所定の領域として、教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域内に存在しているか否かを判断する。これは以下のことを目的としている。即ち、教示修正による修正量が小さい場合には、ロボット機構部に与える影響は小さく、例外対処は不要と判断する。教示修正による修正量が大きい場合にのみ、例外対処を行う。このようにすることで、教示修正による修正量が小さく、ロボット機構部には影響が及ばない場合にまで不要な例外対処を行わずに済ませることができる。ステップS102において、教示修正処理後の空間的位置が所定の領域内であると判断した場合には、例外対処は行わず元の状態に戻る。なお、この場合、教示修正による修正量が小さいため、再学習を行う事無く修正前の学習補正量を使うことができる。
【0031】
ステップS102において、教示修正処理後の空間的位置が所定の領域を超えていると判断した場合には、ステップS103において、例外対処を実行する。例外対処として、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理を行う。学習制御部の学習補正量をゼロとし、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落とし、その後に動作を開始することができる。そのため、教示修正処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【0032】
次に、教示修正処理の有無の判断手順について説明する。図4に作業プログラムの一例を示す。作業プログラム内の学習命令はモーダル形式となっている。ロボット機構部の学習制御が行われる範囲は、LVC (Learning Vibration Control) START[1]〜LVC END[1]及びLVC START[2]〜LVC END[2]であり、この範囲内で教示修正処理が行われたか否かが判断される。
【0033】
教示修正処理は学習稼動及び学習後の実稼動の両者において行われる可能性がある。まず、学習稼動の実行中における教示修正処理の有無の判断手順について説明する。図5に、学習稼動において教示修正処理を実行した場合の教示修正処理の有無の確認手順の流れを表すフローチャートを示す。まず、ステップS201において、作業プログラムに変更があった場合に、例外対処部5が、プログラムの編集日時が変更されたか否かを判断する。これは、図2に示すように、例外対処部5がRAM34内の作業プログラムの内容を常に監視することにより実行される。プログラムの編集日時が変更されていない場合には、ステップS207において、例外対処部5がLVC内で変更なしと判断し、ステップS208で例外対処部5が学習補正量の変更は不要と判断し、処理を終了する。
【0034】
一方、ステップS201において、例外対処部5が、プログラムの編集日時が変更されたと判断した場合には、教示修正処理が行われたか否かを確認するために、ステップS202において、例外対処部5は検査を実行するか否かの問合せを行う。例えば、表示部(図示せず)に「学習済データ作成時よりプログラムが変更されました。学習済みデータを検査する必要があります。検査モード、かつ、マシンロック状態になります。この状態でプログラムを実行すれば、検査を行えます。実行しますか?」と表示する。ここで、「マシンロック状態」とは、ロボット機構部を動作させない状態をいう。検査を実行する場合は、ステップS203において、例外対処部5が学習済みファイルに保存されたデータとマシンロック状態で作られたデータが一致するか否かを判断する。両者のデータが一致している場合には、教示修正処理は行われなかったものと判断し、処理を終了する。ステップS202において、ユーザ自身が、再教示が必要である事を認識している場合には、検査を実行せず、後述するように変更されたモーダル情報部分に関して再学習を行う。ここで「モーダル情報」とは、指令された情報を保持し、新たに指令されるまで継続して使用される情報である。
【0035】
ステップS203において、例外対処部5が、学習済みファイルに保存されたデータとマシンロック状態で作られたデータが一致していないと判断した場合は、ステップS204において、例外対処部5は、教示修正処理が行われたものと判断し、例外対処を実行する。具体的には、例外対処部5は、ユーザに教示修正処理の存在を認識させるため、表示部のアラーム画面に教示修正された動作文を含むモーダル情報を表示する。さらに、ステップS205において、ユーザはモーダル情報を確認後、検査モードを手動でOFFにする。このとき、自動的にマシンロックも解除される。
【0036】
以上のようにして、学習稼動の実行中において作業プログラムに修正が加えられた場合に、例外対処部5は、その修正が教示修正であるか否かを判断し、教示修正があったと判断した場合には例外対処を行う。
【0037】
次に、学習後の実稼動の実行中における教示修正処理の有無の判断手順について説明する。図6に、学習後の実稼動において教示修正処理を実行した場合の教示修正処理の有無の確認手順の流れを表すフローチャートを示す。まず、ステップS301において、例外対処部5が学習制御器32内のRAM34に格納された作業プログラムを常に監視しておき、作業プログラムに変更があった場合に、プログラム編集日時と学習済ファイル作成日時が一致しているか否かを判断する。これは、学習後にプログラムに対して修正が加えられたか否かを判断するためのものである。例外対処部5が、プログラム編集日時と学習済ファイル作成日時とが一致していると判断した場合は、ステップS307において、例外対処部5はLVC内で変更なしと判断する。さらに、ステップS308で例外対処部5は学習補正量の変更は不要と判断し、処理を終了する。
【0038】
一方、ステップS301において、例外対処部5が、プログラム編集日時と学習済ファイル作成日時が一致していないと判断した場合には、教示修正が行われたか否かを確認するために、ステップS302において、例外対処部5は検査を実行するか否かの問合せを行う。ステップS303〜S305の処理は、上述した学習稼動中における教示修正の有無の判断手順ステップS203〜S205と同一なので詳細な説明は省略する。
【0039】
本実施例によれば、ロボット機構部1の学習稼動の実行中、または実稼動の実行中に作業プログラムが修正された場合において、教示修正の有無を判断することができ、その教示修正が例外処理に該当する場合において例外対処を行うことができる。
【実施例2】
【0040】
次に、本発明の実施例2に係る学習制御ロボットについて説明する。図7に本発明の実施例2に係る学習制御ロボットの構成図を示す。本発明の実施例2に係る学習制御ロボット102は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5及び稼働状況検知部7をさらに設けており、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボットに一時停止処理が行われた場合に例外対処を行う点である。稼働状況検知部7は、学習制御ロボット102の外部から稼働状況データを受信し、稼動状況データにはロボット機構部1の一時停止処理の指示の有無を示すデータ及び一時停止処理後の動作再開指示の有無を示すデータが含まれる。学習制御ロボット102のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0041】
ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1を一時停止させる指示がなされた場合は、稼働状況検知部7が受信する稼働状況データには、ロボット機構部1の一時停止処理の指示を示すデータが含まれる。稼働状況検知部7は、受信した稼働状況データに基づいてロボット機構部1の一時停止処理の指示の存在を検知し、その旨を例外対処部5に通知する。例外対処部5は、ロボット機構部1の一時停止処理の指示に基づいて例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理が挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、第2メモリ33内の学習補正量をゼロに設定する。
【0042】
次に、実施例2の学習制御ロボットの動作手順について説明する。図8に、実施例2の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS401において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1に対して一時停止の指示がされたか否かを判断する。具体的には、稼働状況検知部7がロボット機構部1の稼動状態を常に監視しておき、受信した稼働状況データに基づいてロボット機構部1に対する一時停止指示の有無を判断し、一時停止指示があった場合は例外対処部5に通知する。例外対処部5が、一時停止指示の通知を受けず例外処理はされていないと判断した場合には元の状態に戻る。例外対処部5が、一時停止指示の通知を受け例外処理がされたものと判断した場合には、ステップS402において、例外対処部5は例外対処を実行する。例外対処として、例外対処部5は、学習制御部の学習補正量をゼロにしながら、速度制御部42を制御して、ロボット機構部1の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として停止処理に入る。それ故、一時停止処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例3】
【0043】
次に、本発明の実施例3に係る学習制御ロボットについて説明する。実施例3の学習制御ロボットの構成は実施例2と同様である。実施例2と異なる点は、ロボット機構部1の一時停止後において動作を再開する指示があった場合に例外対処を行うようにしている点である。ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1を一時停止させた後、動作を再開させる指示がなされた場合に、稼働状況検知部7が受信する稼働状況データには、ロボット機構部1の一時停止処理後の動作再開の指示を示すデータが含まれる。稼働状況検知部7は、受信した稼働状況データに基づいてロボット機構部1の一時停止処理後の動作再開指示の存在を検知し、その旨を例外対処部5に通知する。例外対処部5はロボット機構部1の一時停止処理後の動作再開指示に基づいて例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理が挙げられる。具体的には、例外対処部5は、ロボット機構部の動作速度を学習補正量がゼロでも振動が生じない速度に落とし、第2メモリ33内の学習補正量をゼロに設定してから、動作を開始する。それ故、一時停止後に動作再開処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【0044】
次に、実施例3の学習制御ロボットの動作手順について説明する。図9に、実施例3の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS501において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1に対して一時停止後に動作再開の指示がされたか否かを判断する。具体的には、稼働状況検知部7がロボット機構部1の稼動状態を常に監視しておき、受信した稼働状況データに基づいてロボット機構部1に対する一時停止後の動作再開の指示の有無を判断する。一時停止後の動作再開指示があった場合は例外対処部5に通知する。例外対処部5が、一時停止後の動作再開指示の通知を受けず例外処理はされていないと判断した場合には元の状態に戻る。例外対処部5が、一時停止後の動作再開指示の通知を受け例外処理がされたものと判断した場合には、ステップS502において、例外対処を実行する。例外対処として、学習制御部の学習補正量をゼロにして、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として動作を開始する。それ故、一時停止後に動作再開処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例4】
【0045】
次に、本発明の実施例4に係る学習制御ロボットについて説明する。図10に本発明の実施例4に係る学習制御ロボットの構成図を示す。本発明の実施例4に係る学習制御ロボット103は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5及び速度オーバライド検知部8をさらに設けている点である。実施例4においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボット103の制御装置2に速度オーバライドの変更が行われた場合に例外対処を行う。ここで、「速度オーバライド」とは、予め設定したロボット機構部の動作速度を修正するために、動作速度に掛ける倍率をいう。実施例4においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、速度オーバライド検知部8が速度制御部42を常に監視するようにしている。速度オーバライドの変更がなされた場合に、速度オーバライド検知部8は、これを検知し、例外対処部5に通知する。このとき例外対処部5は例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定することが挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、第2メモリ33内の学習補正量をゼロに設定する。学習制御ロボット103のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0046】
次に、実施例4の学習制御ロボットの動作手順について説明する。図11に、実施例4の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS601において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、速度制御部42に対して速度オーバライドの変更がされたか否かを判断する。具体的には、速度オーバライド検知部8が速度制御部42を常に監視しておき、速度オーバライドの変更の有無を判断する。速度オーバライドの修正指示があった場合は速度オーバライド検知部8が、例外対処部5に通知する。例外対処部5が速度オーバライドの変更はされていないと判断した場合には元の状態に戻る。例外対処部5が、速度オーバライドの変更がされたものと判断した場合には、ステップS602において、例外対処を実行する。例外対処として、例外対処部5は学習制御部の学習補正量をゼロにしながら、速度制御部42を制御して、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として動作を継続する。それ故、速度オーバライド変更処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例5】
【0047】
次に、本発明の実施例5に係る学習制御ロボットについて説明する。図12に本発明の実施例5に係る学習制御ロボットの構成図を示す。本発明の実施例5に係る学習制御ロボット104は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、例外対処部5とを備えている。図2に示した実施例1の学習制御ロボットの構成と異なる点は、制御装置2内に再学習制御部6をさらに設けており、再学習制御部6は、学習制御ロボットに例外対処がなされた後に、学習制御部3に学習制御を再度実行させて学習補正量を再計算する再学習を行う点である。実施例5においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボットに例外処理がなされて例外対処が実行された後に、例外対処部5は再学習制御部6に通知し、再学習制御部6は学習制御器32を制御する。学習制御ロボット104のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0048】
次に、実施例5の学習制御ロボットの動作手順について説明する。図13に、実施例5の学習制御ロボットの動作フローを説明するためのフローチャートを示す。ステップS700〜S703は、実施例1のステップS100〜S103と同様であるので詳細な説明は省略する。ステップS704において、例外対処後に再学習処理が実行される。具体的には、例外対処部5が、例外対処が完了したことを再学習制御部6に通知する。その後、再学習制御部6が学習制御器32を制御して、再学習処理により学習補正量を計算し直すように制御する。このようにして、例外処理として教示修正がなされ、例外対処がされた場合においても再学習を行うことにより適正な学習補正量を得ることができ、ロボット機構部を正常に動作させることができるようになる。なお、本実施例においては、例外処理として教示修正があった場合に行われる例外対処の後に再学習処理を行う場合を例にとって説明した。しかしながら、例外処理として一時停止処理、一時停止後の動作再開処理及び速度オーバライドの変更処理があった場合に行われる例外対処の後に再学習処理を実行するようにしてもよい。
【符号の説明】
【0049】
1 ロボット機構部
2 制御装置
3 学習制御部
4 通常制御部
5 例外対処部
6 再学習制御部
7 稼働状況検知部
8 速度オーバライド検知部
31 第1メモリ
32 学習制御器
33 第2メモリ
34 RAM
41 位置制御部
42 速度制御部
43 電流制御部
44 アンプ
45 微分手段
100、101、102、103、104 学習制御ロボット
【技術分野】
【0001】
本発明は学習制御ロボットに関し、特に学習制御機能を有した制御装置を備えた産業用ロボットに関する。
【背景技術】
【0002】
学習制御に関する技術は、ロボットでは商品レベルで実用化されていないものの、工作機械では実用化が進んで来ている(例えば、特許文献1、2)。
【0003】
ここで、学習制御について簡単に説明する。学習制御はフィードフォワード信号をある同じ動作に対して最適化する制御である。繰り返し同じ動作を行う事により、フィードフォワード信号が更新されて行き、最終的にはある形に落ち着く(あまり更新による変化がなくなる。)。その時点で、学習を終了して、学習制御によって得られたフィードフォワード信号を更新せずにそのまま使用する。具体的な更新のプロセスとしては、まず、ロボット機構部を動作させる作動プログラムを実行して、所定の動作パラメータでロボット機構部に所定の動作を実行させ、その動作中に位置偏差に関するデータ(例えば、振動量や軌跡誤差量)をセンサ等により計測する。動作終了後にそのデータから次回の動作パラメータの補正量(学習補正量)を計算する。そして、次の動作中はその学習補正量を用いながら動作を行い、かつ振動量や軌跡誤差量も計測する。そして、動作終了後は前回の学習補正量と計測されたデータから次回の動作パラメータの学習補正量を計算する。学習補正量がある形に収束して、位置偏差が所定の値以下になるまで、このプロセスを繰り返すことにより学習制御が行われる。学習制御終了後は、最終的に得られた学習補正量を用いながら動作(実稼動)を行うが、振動量や軌跡誤差量は計測しない。そして、動作終了後も学習補正量を更新せずに、次回も同じ学習補正量を使用する。以下、本発明の説明において、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算することを「学習制御」といい、上記データを取得するためにロボット機構部を動作させることを「学習稼動」といい、学習制御部が計算した学習補正量に基づいてロボット機構部を制御することを「実稼動」という。
【0004】
図1に従来の学習制御機能を備えたロボット(学習制御ロボット)の概略図を示す。従来の学習制御ロボット100は、ロボット機構部1及びロボット機構部1を制御する制御装置2により構成される。制御装置2は、学習制御ロボットの学習制御を実行する学習制御部3と、ロボット機構部1を直接的に駆動する通常制御部4とを備えている。
【0005】
ロボット機構部1には、アーム11、アーム先端部12、立体センサ13、モータ(図示せず)が設けられている。ロボット機構部1のモータには、制御装置2に含まれる通常制御部4からの信号が入力される。ロボット機構部1のモータは、アーム11を駆動し、アーム先端部12を所望の位置に移動させて、例えば溶接等の作業を実行する。アーム先端部12には立体センサ13が設置されており、アーム先端部12の空間的な位置データ(yj(k))を得ることができる。立体センサ13からの位置データ(yj(k))は学習制御部3に出力され、学習制御に利用される。ここで、jは試行回数、kは時間を表す。
【0006】
通常制御部4には、位置制御部41、速度制御部42、電流制御部43、アンプ44、微分手段45が設けられている。位置制御部41は、制御装置2の外部から入力される位置指令データ(yd(k))を受信する。位置制御部41は、さらに、ロボット機構部1のモータ位置等の位置データを受信し、ロボット機構部1のアーム先端部12の所望の位置データを速度制御部42に対して出力する。微分手段45は、ロボット機構部1からフィードバックされるモータ位置データを受信し、モータ速度を算出し、これを速度制御部42に対して出力する。
【0007】
速度制御部42は、位置制御部41からの位置データ及び微分手段45からのモータ速度データを勘案して所望のモータ速度を算出し、これを電流制御部43に対して出力する。電流制御部43は、アンプ44からフィードバックされる電流値を受信するとともに、速度制御部42から入力された所望のモータ速度となるようにモータに流す電流を算出し、これをアンプ44に対して出力する。アンプ44は、電流制御部43からの電流値に基づいて所望の電力を算出し、これをロボット機構部1のモータ(図示せず)に投入する。
【0008】
学習制御部3には、第1メモリ31、学習制御器32、第2メモリ33、RAM34が設けられている。第1メモリ31には、アーム先端部12に関する位置指令データ(yd(k))と、立体センサ13が測定した位置データ(yj(k))との差分である目的補正量ej(k)が入力され、これを記憶するともに、目的補正量ej(k)を学習制御器32に対して出力する。ここで、目的補正量ej(k)は、アーム先端部12の所望の位置に対する誤差(位置偏差)に相当する。
【0009】
学習制御器32は、学習制御器32に内蔵されたRAM34に格納された作業プログラムを実行することにより、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する。即ち、上記RAM34に格納された前試行の学習補正量uj(k)と目的補正量ej(k)から学習補正量uj+1(k)を算出し、これを第2メモリ33とRAM34に対して出力する。第2メモリ33に入力された学習補正量uj+1(k)は、第2メモリ33に記憶されるとともに、通常制御部4の位置制御部41で算出される位置偏差に関するデータ(位置偏差データ)に加算される。
【0010】
補正された位置偏差データに基づいて、ロボット機構部1が制御され、学習制御が繰り返される。学習制御は、この一連のプロセスを繰り返し実行する事により位置偏差を所定の値以下、好ましくは「0」に収束させるものである。学習制御終了後、即ち実稼動では、図1の点線で示した学習補正量更新のためのループは実行されず、第2メモリ33から学習補正量uj+1(k)が位置制御部41に出力される。なお、図1において、実線部分は通常制御部4がロボット機構部1の学習稼動または実稼動の際に実行される部分を表し、点線部分である学習制御における学習補正量の計算手順は学習稼動での動作終了後に実行される。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2009−83074
【特許文献2】特開2006−172149
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来の学習制御に関する技術においては、アプリケーションの幅が狭く、運用に関しては余り考慮されていないという問題があった。即ち、学習制御は同じ動作を繰り返す事を想定しているが、それ故、学習稼動、もしくは実稼動にかかわらず、学習制御が想定している動作とは違う動きをする場合(例えば、一時停止、速度オーバライドの変更等。以下「例外処理」という)、学習補正量が動作を悪化させる可能性があった。特に、動作速度が速い場合等においては、ロボット機構部で振動などが生じる恐れもあった。
【0013】
本発明は、学習制御ロボットの学習稼動の実行中、もしくは実稼動の実行中に例外処理が起きた場合に対処可能な学習制御ロボット及び再学習可能な学習制御ロボットを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の学習制御ロボットは、ロボット機構部と、作業プログラムを実行することにより、ロボット機構部の位置偏差に関するデータを取得して、ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、学習制御の実行中に、データを取得するためにロボット機構部の学習稼動を実行し、学習制御の実行後に、学習制御部が計算した学習補正量に基づいて、ロボット機構部の実稼動を実行する通常制御部と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、を有することを特徴とする。
【0015】
さらに、例外対処は、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理であることが好ましい。
【0016】
一例として、例外処理は、作業プログラムに対する教示修正処理である。
【0017】
他の一例として、例外処理は、学習稼動又は実稼動の一時停止処理である。
【0018】
さらに他の一例として、例外処理は、学習稼動又は実稼動の一時停止後の動作再開処理である。
【0019】
その他の一例として、例外処理は、学習稼動の実行中又は実稼動の実行中における速度オーバライドの変更処理である。
【0020】
また、教示修正処理後のロボット機構部の空間的位置が、教示修正処理前のロボット機構部の空間的位置を基準とする所定の領域内に存在している場合には、例外対処は実行されないようにしてもよい。
【0021】
ここで、所定の領域は、教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域であることが好ましい。
【0022】
また、学習制御部に学習制御を再度実行させて学習補正量を再計算する再学習制御部をさらに有していてもよい。
【発明の効果】
【0023】
本発明によれば、学習制御ロボットの学習稼動の実行中又は実稼動の実行中に、学習制御ロボットを制御する作業プログラムに対する教示修正処理、ロボット機構部の一時停止処理及び一時停止後の動作再開処理、速度制御部に対する速度オーバライドの変更処理に代表される例外処理が起きた場合に、例外対処を実行することにより、安全性を高めることができる。
【0024】
さらに、本発明によれば、例外処理が起きた場合に、ロボット制御部に設けられた例外対処部が例外対処としてロボット機構部の動作速度を所定の安全な速度に落とすとともに、学習制御により得られた学習補正量をゼロに設定することができ、安全性を高めることができる。
【図面の簡単な説明】
【0025】
【図1】従来の学習制御ロボットの構成図である。
【図2】本発明の実施例1に係る学習制御ロボットの構成図である。
【図3】本発明の実施例1に係る学習制御ロボットの動作フローを示すフローチャートである。
【図4】作業プログラムの一例を示す図である。
【図5】学習稼動において教示修正処理を実行した場合の教示修正の有無の確認手順の流れを示すフローチャートである。
【図6】学習後の実稼動において教示修正処理を実行した場合の教示修正の有無の確認手順の流れを示すフローチャートである。
【図7】本発明の実施例2及び3に係る学習制御ロボットの構成図である。
【図8】本発明の実施例2に係る学習制御ロボットの動作フローを示すフローチャートである。
【図9】本発明の実施例3に係る学習制御ロボットの動作フローを示すフローチャートである。
【図10】本発明の実施例4に係る学習制御ロボットの構成図である。
【図11】本発明の実施例4に係る学習制御ロボットの動作フローを示すフローチャートである。
【図12】本発明の実施例5に係る学習制御ロボットの構成図である。
【図13】本発明の実施例5に係る学習制御ロボットの動作フローを示すフローチャートである。
【発明を実施するための形態】
【0026】
以下図面を参照して、本発明に係る学習制御ロボットについて説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【実施例1】
【0027】
図2に本発明の実施例1に係る学習制御ロボットの構成図を示す。本発明の実施例1に係る学習制御ロボット101は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、学習稼動の実行中又は実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部5と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5をさらに設けている点である。実施例1においては、例外対処部5は、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御器32に内蔵されたRAM34に格納された作業プログラムに対して教示修正処理が行われた場合に、例外処理が行われたものと判断し、例外対処を行う点を特徴としている。ここで、例外対処とは、学習制御ロボットに対して例外的な処理が行われた場合に、学習制御ロボットを安全な状態にすることをいい、例えば、ロボット機構部1の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定することが挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、RAM34及び第2メモリ33内の学習補正量をゼロに設定する。
【0028】
学習制御部3は、作業プログラム実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する。さらに、学習制御部3は、計算した学習補正量を通常制御部4の位置制御部41に送る。一方、通常制御部4は、学習制御部3が学習補正量を計算するため、または学習制御部3が計算した学習補正量を利用して、ロボット機構部1による学習稼動もしくは実稼動を制御する。即ち、学習制御の実行中に、通常制御部4は位置偏差に関するデータを取得するためにロボット機構部1の学習稼動を実行し、学習制御部3は学習補正量を計算する学習制御を実行する。学習制御の実行後に、通常制御部4は学習制御部が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する。例外対処部5は、上記作業プログラムの内容を常に監視している。作業プログラムに修正が加えられ、その修正が学習制御ロボットに異常な動作を誘発させるような教示修正である場合には、通常制御部4の速度制御部42を制御するともに、RAM34及び第2メモリ33内の学習補正量をゼロに設定する。
【0029】
次に、実施例1の学習制御ロボットの動作手順について説明する。図3に、実施例1の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS101において、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、例外対処部5が学習制御器32内のRAM34に格納された作業プログラムを常に監視する。作業プログラムに変更があった場合に、作業プログラムに加えられた修正が教示修正であるか否かを判断する。作業プログラムに加えられた修正が教示修正ではないと判断した場合には、元の状態に戻る。ここで、教示修正であるか否かの判断については、作業プログラムにおいて、ロボット機構部の動作に関連するデータが変更された場合は教示修正と判断し、それ以外のデータに修正が加えられた場合は教示修正ではないと判断する。
【0030】
作業プログラムに加えられた修正が教示修正であると判断した場合には、ステップS102において、作業プログラムに格納されている教示修正処理後のロボット機構部の空間的位置が、教示修正処理前のロボット機構部の空間的位置を基準とする所定の領域内に存在しているか否かを判断する。具体的には、教示修正処理後のロボット機構部の空間的位置が、所定の領域として、教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域内に存在しているか否かを判断する。これは以下のことを目的としている。即ち、教示修正による修正量が小さい場合には、ロボット機構部に与える影響は小さく、例外対処は不要と判断する。教示修正による修正量が大きい場合にのみ、例外対処を行う。このようにすることで、教示修正による修正量が小さく、ロボット機構部には影響が及ばない場合にまで不要な例外対処を行わずに済ませることができる。ステップS102において、教示修正処理後の空間的位置が所定の領域内であると判断した場合には、例外対処は行わず元の状態に戻る。なお、この場合、教示修正による修正量が小さいため、再学習を行う事無く修正前の学習補正量を使うことができる。
【0031】
ステップS102において、教示修正処理後の空間的位置が所定の領域を超えていると判断した場合には、ステップS103において、例外対処を実行する。例外対処として、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理を行う。学習制御部の学習補正量をゼロとし、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落とし、その後に動作を開始することができる。そのため、教示修正処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【0032】
次に、教示修正処理の有無の判断手順について説明する。図4に作業プログラムの一例を示す。作業プログラム内の学習命令はモーダル形式となっている。ロボット機構部の学習制御が行われる範囲は、LVC (Learning Vibration Control) START[1]〜LVC END[1]及びLVC START[2]〜LVC END[2]であり、この範囲内で教示修正処理が行われたか否かが判断される。
【0033】
教示修正処理は学習稼動及び学習後の実稼動の両者において行われる可能性がある。まず、学習稼動の実行中における教示修正処理の有無の判断手順について説明する。図5に、学習稼動において教示修正処理を実行した場合の教示修正処理の有無の確認手順の流れを表すフローチャートを示す。まず、ステップS201において、作業プログラムに変更があった場合に、例外対処部5が、プログラムの編集日時が変更されたか否かを判断する。これは、図2に示すように、例外対処部5がRAM34内の作業プログラムの内容を常に監視することにより実行される。プログラムの編集日時が変更されていない場合には、ステップS207において、例外対処部5がLVC内で変更なしと判断し、ステップS208で例外対処部5が学習補正量の変更は不要と判断し、処理を終了する。
【0034】
一方、ステップS201において、例外対処部5が、プログラムの編集日時が変更されたと判断した場合には、教示修正処理が行われたか否かを確認するために、ステップS202において、例外対処部5は検査を実行するか否かの問合せを行う。例えば、表示部(図示せず)に「学習済データ作成時よりプログラムが変更されました。学習済みデータを検査する必要があります。検査モード、かつ、マシンロック状態になります。この状態でプログラムを実行すれば、検査を行えます。実行しますか?」と表示する。ここで、「マシンロック状態」とは、ロボット機構部を動作させない状態をいう。検査を実行する場合は、ステップS203において、例外対処部5が学習済みファイルに保存されたデータとマシンロック状態で作られたデータが一致するか否かを判断する。両者のデータが一致している場合には、教示修正処理は行われなかったものと判断し、処理を終了する。ステップS202において、ユーザ自身が、再教示が必要である事を認識している場合には、検査を実行せず、後述するように変更されたモーダル情報部分に関して再学習を行う。ここで「モーダル情報」とは、指令された情報を保持し、新たに指令されるまで継続して使用される情報である。
【0035】
ステップS203において、例外対処部5が、学習済みファイルに保存されたデータとマシンロック状態で作られたデータが一致していないと判断した場合は、ステップS204において、例外対処部5は、教示修正処理が行われたものと判断し、例外対処を実行する。具体的には、例外対処部5は、ユーザに教示修正処理の存在を認識させるため、表示部のアラーム画面に教示修正された動作文を含むモーダル情報を表示する。さらに、ステップS205において、ユーザはモーダル情報を確認後、検査モードを手動でOFFにする。このとき、自動的にマシンロックも解除される。
【0036】
以上のようにして、学習稼動の実行中において作業プログラムに修正が加えられた場合に、例外対処部5は、その修正が教示修正であるか否かを判断し、教示修正があったと判断した場合には例外対処を行う。
【0037】
次に、学習後の実稼動の実行中における教示修正処理の有無の判断手順について説明する。図6に、学習後の実稼動において教示修正処理を実行した場合の教示修正処理の有無の確認手順の流れを表すフローチャートを示す。まず、ステップS301において、例外対処部5が学習制御器32内のRAM34に格納された作業プログラムを常に監視しておき、作業プログラムに変更があった場合に、プログラム編集日時と学習済ファイル作成日時が一致しているか否かを判断する。これは、学習後にプログラムに対して修正が加えられたか否かを判断するためのものである。例外対処部5が、プログラム編集日時と学習済ファイル作成日時とが一致していると判断した場合は、ステップS307において、例外対処部5はLVC内で変更なしと判断する。さらに、ステップS308で例外対処部5は学習補正量の変更は不要と判断し、処理を終了する。
【0038】
一方、ステップS301において、例外対処部5が、プログラム編集日時と学習済ファイル作成日時が一致していないと判断した場合には、教示修正が行われたか否かを確認するために、ステップS302において、例外対処部5は検査を実行するか否かの問合せを行う。ステップS303〜S305の処理は、上述した学習稼動中における教示修正の有無の判断手順ステップS203〜S205と同一なので詳細な説明は省略する。
【0039】
本実施例によれば、ロボット機構部1の学習稼動の実行中、または実稼動の実行中に作業プログラムが修正された場合において、教示修正の有無を判断することができ、その教示修正が例外処理に該当する場合において例外対処を行うことができる。
【実施例2】
【0040】
次に、本発明の実施例2に係る学習制御ロボットについて説明する。図7に本発明の実施例2に係る学習制御ロボットの構成図を示す。本発明の実施例2に係る学習制御ロボット102は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5及び稼働状況検知部7をさらに設けており、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボットに一時停止処理が行われた場合に例外対処を行う点である。稼働状況検知部7は、学習制御ロボット102の外部から稼働状況データを受信し、稼動状況データにはロボット機構部1の一時停止処理の指示の有無を示すデータ及び一時停止処理後の動作再開指示の有無を示すデータが含まれる。学習制御ロボット102のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0041】
ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1を一時停止させる指示がなされた場合は、稼働状況検知部7が受信する稼働状況データには、ロボット機構部1の一時停止処理の指示を示すデータが含まれる。稼働状況検知部7は、受信した稼働状況データに基づいてロボット機構部1の一時停止処理の指示の存在を検知し、その旨を例外対処部5に通知する。例外対処部5は、ロボット機構部1の一時停止処理の指示に基づいて例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理が挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、第2メモリ33内の学習補正量をゼロに設定する。
【0042】
次に、実施例2の学習制御ロボットの動作手順について説明する。図8に、実施例2の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS401において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1に対して一時停止の指示がされたか否かを判断する。具体的には、稼働状況検知部7がロボット機構部1の稼動状態を常に監視しておき、受信した稼働状況データに基づいてロボット機構部1に対する一時停止指示の有無を判断し、一時停止指示があった場合は例外対処部5に通知する。例外対処部5が、一時停止指示の通知を受けず例外処理はされていないと判断した場合には元の状態に戻る。例外対処部5が、一時停止指示の通知を受け例外処理がされたものと判断した場合には、ステップS402において、例外対処部5は例外対処を実行する。例外対処として、例外対処部5は、学習制御部の学習補正量をゼロにしながら、速度制御部42を制御して、ロボット機構部1の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として停止処理に入る。それ故、一時停止処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例3】
【0043】
次に、本発明の実施例3に係る学習制御ロボットについて説明する。実施例3の学習制御ロボットの構成は実施例2と同様である。実施例2と異なる点は、ロボット機構部1の一時停止後において動作を再開する指示があった場合に例外対処を行うようにしている点である。ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1を一時停止させた後、動作を再開させる指示がなされた場合に、稼働状況検知部7が受信する稼働状況データには、ロボット機構部1の一時停止処理後の動作再開の指示を示すデータが含まれる。稼働状況検知部7は、受信した稼働状況データに基づいてロボット機構部1の一時停止処理後の動作再開指示の存在を検知し、その旨を例外対処部5に通知する。例外対処部5はロボット機構部1の一時停止処理後の動作再開指示に基づいて例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定する処理が挙げられる。具体的には、例外対処部5は、ロボット機構部の動作速度を学習補正量がゼロでも振動が生じない速度に落とし、第2メモリ33内の学習補正量をゼロに設定してから、動作を開始する。それ故、一時停止後に動作再開処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【0044】
次に、実施例3の学習制御ロボットの動作手順について説明する。図9に、実施例3の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS501において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、ロボット機構部1に対して一時停止後に動作再開の指示がされたか否かを判断する。具体的には、稼働状況検知部7がロボット機構部1の稼動状態を常に監視しておき、受信した稼働状況データに基づいてロボット機構部1に対する一時停止後の動作再開の指示の有無を判断する。一時停止後の動作再開指示があった場合は例外対処部5に通知する。例外対処部5が、一時停止後の動作再開指示の通知を受けず例外処理はされていないと判断した場合には元の状態に戻る。例外対処部5が、一時停止後の動作再開指示の通知を受け例外処理がされたものと判断した場合には、ステップS502において、例外対処を実行する。例外対処として、学習制御部の学習補正量をゼロにして、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として動作を開始する。それ故、一時停止後に動作再開処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例4】
【0045】
次に、本発明の実施例4に係る学習制御ロボットについて説明する。図10に本発明の実施例4に係る学習制御ロボットの構成図を示す。本発明の実施例4に係る学習制御ロボット103は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、を備えている。図1に示した従来の学習制御ロボットの構成と異なる点は、制御装置2内に例外対処部5及び速度オーバライド検知部8をさらに設けている点である。実施例4においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボット103の制御装置2に速度オーバライドの変更が行われた場合に例外対処を行う。ここで、「速度オーバライド」とは、予め設定したロボット機構部の動作速度を修正するために、動作速度に掛ける倍率をいう。実施例4においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、速度オーバライド検知部8が速度制御部42を常に監視するようにしている。速度オーバライドの変更がなされた場合に、速度オーバライド検知部8は、これを検知し、例外対処部5に通知する。このとき例外対処部5は例外処理が行われたものと判断し、例外対処を行う。例外対処として、例えば、ロボット機構部の動作速度を所定の安全な速度に落とし、学習補正量をゼロに設定することが挙げられる。具体的には、例外対処部5は、速度制御部42を制御して、ロボット機構部の動作速度を所定の安全な速度に落とすとともに、第2メモリ33内の学習補正量をゼロに設定する。学習制御ロボット103のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0046】
次に、実施例4の学習制御ロボットの動作手順について説明する。図11に、実施例4の学習制御ロボットの動作フローを説明するためのフローチャートを示す。まず、ステップS601において、例外対処部5が、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、速度制御部42に対して速度オーバライドの変更がされたか否かを判断する。具体的には、速度オーバライド検知部8が速度制御部42を常に監視しておき、速度オーバライドの変更の有無を判断する。速度オーバライドの修正指示があった場合は速度オーバライド検知部8が、例外対処部5に通知する。例外対処部5が速度オーバライドの変更はされていないと判断した場合には元の状態に戻る。例外対処部5が、速度オーバライドの変更がされたものと判断した場合には、ステップS602において、例外対処を実行する。例外対処として、例外対処部5は学習制御部の学習補正量をゼロにしながら、速度制御部42を制御して、ロボット機構部の動作速度を自動的に学習補正量がゼロでも振動が生じない動作速度まで落として動作を継続する。それ故、速度オーバライド変更処理が行われても、ロボット機構部の動作中に振動が生じる事はない。
【実施例5】
【0047】
次に、本発明の実施例5に係る学習制御ロボットについて説明する。図12に本発明の実施例5に係る学習制御ロボットの構成図を示す。本発明の実施例5に係る学習制御ロボット104は、ロボット機構部1と、作業プログラムを実行することにより、ロボット機構部1の位置偏差に関するデータを取得して、ロボット機構部1の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部3と、学習制御の実行中に、データを取得するためにロボット機構部1の学習稼動を実行し、学習制御の実行後に、学習制御部3が計算した学習補正量に基づいて、ロボット機構部1の実稼動を実行する通常制御部4と、例外対処部5とを備えている。図2に示した実施例1の学習制御ロボットの構成と異なる点は、制御装置2内に再学習制御部6をさらに設けており、再学習制御部6は、学習制御ロボットに例外対処がなされた後に、学習制御部3に学習制御を再度実行させて学習補正量を再計算する再学習を行う点である。実施例5においては、ロボット機構部1の学習稼動の実行中又は実稼動の実行中において、学習制御ロボットに例外処理がなされて例外対処が実行された後に、例外対処部5は再学習制御部6に通知し、再学習制御部6は学習制御器32を制御する。学習制御ロボット104のその他の構成は、実施例1の構成と同様であるので詳細な説明は省略する。
【0048】
次に、実施例5の学習制御ロボットの動作手順について説明する。図13に、実施例5の学習制御ロボットの動作フローを説明するためのフローチャートを示す。ステップS700〜S703は、実施例1のステップS100〜S103と同様であるので詳細な説明は省略する。ステップS704において、例外対処後に再学習処理が実行される。具体的には、例外対処部5が、例外対処が完了したことを再学習制御部6に通知する。その後、再学習制御部6が学習制御器32を制御して、再学習処理により学習補正量を計算し直すように制御する。このようにして、例外処理として教示修正がなされ、例外対処がされた場合においても再学習を行うことにより適正な学習補正量を得ることができ、ロボット機構部を正常に動作させることができるようになる。なお、本実施例においては、例外処理として教示修正があった場合に行われる例外対処の後に再学習処理を行う場合を例にとって説明した。しかしながら、例外処理として一時停止処理、一時停止後の動作再開処理及び速度オーバライドの変更処理があった場合に行われる例外対処の後に再学習処理を実行するようにしてもよい。
【符号の説明】
【0049】
1 ロボット機構部
2 制御装置
3 学習制御部
4 通常制御部
5 例外対処部
6 再学習制御部
7 稼働状況検知部
8 速度オーバライド検知部
31 第1メモリ
32 学習制御器
33 第2メモリ
34 RAM
41 位置制御部
42 速度制御部
43 電流制御部
44 アンプ
45 微分手段
100、101、102、103、104 学習制御ロボット
【特許請求の範囲】
【請求項1】
ロボット機構部と、
作業プログラムを実行することにより、前記ロボット機構部の位置偏差に関するデータを取得して、前記ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、
前記学習制御の実行中に、前記データを取得するために前記ロボット機構部の学習稼動を実行し、前記学習制御の実行後に、前記学習制御部が計算した前記学習補正量に基づいて、前記ロボット機構部の実稼動を実行する通常制御部と、
前記学習稼動の実行中又は前記実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、
を有することを特徴とする学習制御ロボット。
【請求項2】
前記例外対処は、前記ロボット機構部の動作速度を所定の安全な速度に落とし、前記学習補正量をゼロに設定する処理である、請求項1に記載の学習制御ロボット。
【請求項3】
前記例外処理は、前記作業プログラムに対する教示修正処理である、請求項1または2に記載の学習制御ロボット。
【請求項4】
前記例外処理は、前記学習稼動又は前記実稼動の一時停止処理である、請求項1または2に記載の学習制御ロボット。
【請求項5】
前記例外処理は、前記学習稼動又は前記実稼動の一時停止後の動作再開処理である、請求項1または2に記載の学習制御ロボット。
【請求項6】
前記例外処理は、前記学習稼動の実行中又は前記実稼動の実行中における速度オーバライドの変更処理である、請求項1または2に記載の学習制御ロボット。
【請求項7】
前記教示修正処理後の前記ロボット機構部の空間的位置が、前記教示修正処理前の前記ロボット機構部の空間的位置を基準とする所定の領域内に存在している場合には、前記例外対処は実行されない、請求項3に記載の学習制御ロボット。
【請求項8】
前記所定の領域は、前記教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域である、請求項7に記載の学習制御ロボット。
【請求項9】
前記学習制御部に前記学習制御を再度実行させて前記学習補正量を再計算する再学習制御部をさらに有する、請求項1乃至8のいずれか一項に記載の学習制御ロボット。
【請求項1】
ロボット機構部と、
作業プログラムを実行することにより、前記ロボット機構部の位置偏差に関するデータを取得して、前記ロボット機構部の位置偏差を所定の値以下とするための学習補正量を計算する学習制御を実行する学習制御部と、
前記学習制御の実行中に、前記データを取得するために前記ロボット機構部の学習稼動を実行し、前記学習制御の実行後に、前記学習制御部が計算した前記学習補正量に基づいて、前記ロボット機構部の実稼動を実行する通常制御部と、
前記学習稼動の実行中又は前記実稼動の実行中において例外処理が起きた場合に、例外対処を実行する例外対処部と、
を有することを特徴とする学習制御ロボット。
【請求項2】
前記例外対処は、前記ロボット機構部の動作速度を所定の安全な速度に落とし、前記学習補正量をゼロに設定する処理である、請求項1に記載の学習制御ロボット。
【請求項3】
前記例外処理は、前記作業プログラムに対する教示修正処理である、請求項1または2に記載の学習制御ロボット。
【請求項4】
前記例外処理は、前記学習稼動又は前記実稼動の一時停止処理である、請求項1または2に記載の学習制御ロボット。
【請求項5】
前記例外処理は、前記学習稼動又は前記実稼動の一時停止後の動作再開処理である、請求項1または2に記載の学習制御ロボット。
【請求項6】
前記例外処理は、前記学習稼動の実行中又は前記実稼動の実行中における速度オーバライドの変更処理である、請求項1または2に記載の学習制御ロボット。
【請求項7】
前記教示修正処理後の前記ロボット機構部の空間的位置が、前記教示修正処理前の前記ロボット機構部の空間的位置を基準とする所定の領域内に存在している場合には、前記例外対処は実行されない、請求項3に記載の学習制御ロボット。
【請求項8】
前記所定の領域は、前記教示修正処理前の位置を中心とした楕円球、球、直方体、立方体、多面体のいずれかの立体で規定される領域である、請求項7に記載の学習制御ロボット。
【請求項9】
前記学習制御部に前記学習制御を再度実行させて前記学習補正量を再計算する再学習制御部をさらに有する、請求項1乃至8のいずれか一項に記載の学習制御ロボット。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−192267(P2011−192267A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2011−31925(P2011−31925)
【出願日】平成23年2月17日(2011.2.17)
【出願人】(390008235)ファナック株式会社 (1,110)
【Fターム(参考)】
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願日】平成23年2月17日(2011.2.17)
【出願人】(390008235)ファナック株式会社 (1,110)
【Fターム(参考)】
[ Back to top ]