(57)【要約】【課題】ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することが可能なロボット制御装置を提供する。【解決手段】ロボット制御装置１０は、学習補正量を算出する学習制御を行う学習制御部２０と、学習制御中に前記ロボット機構部の先端部の位置を記憶する位置記憶部２１と、学習制御中に前記ロボット機構部の先端部の速度を記憶する速度記憶部２２と、学習制御後にロボット機構部を前記位置指令より動作させている間、学習制御中に記憶されたロボット機構部の先端部の位置や速度に対する誤差から、該先端部の位置や速度が異常状態であるか、又は正常状態であるかを判定し、この判定結果に応じて、前記学習補正量を適用するか否かを切替えるように構成された学習補正量適用判定部２５と、を備える。【選択図】図１
2018069410.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータ（１１）により駆動されるロボット機構部の動作を制御するロボット制御装置（１０）であって、
前記ロボット機構部を位置指令により動作させたときの前記ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行う学習制御部（２０）と、
前記学習制御の実施中に前記ロボット機構部の先端部の位置を所定の時間間隔で記憶する位置記憶部（２１）と、
前記学習制御の実施中に前記ロボット機構部の先端部の速度を前記所定の時間間隔で記憶する速度記憶部（２２）と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の位置と、該実際の位置に対応する、前記位置記憶部（２１）に記憶されている前記先端部の位置との間の位置誤差を算出する位置誤差算出部（２３）と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の速度と、該実際の速度に対応する、前記速度記憶部（２２）に記憶されている前記先端部の位置との間の速度誤差を算出する速度誤差算出部（２４）と、
前記学習制御の後に前記ロボット機構部を前記位置指令より動作させている間、前記位置誤差及び前記速度誤差に基づき、前記先端部の位置及び速度が異常状態であるか、又は正常状態であるかを判定し、この判定結果に応じて、前記学習補正量を前記先端部の位置に対して適用するか否かを切替えるように構成された学習補正量適用判定部（２５）と、
を備えるロボット制御装置（１０）。
【請求項２】
前記学習補正量適用判定部（２５）は、前記位置誤差が所定の第一閾値を超えたか、又は前記速度誤差が所定の第二閾値を超えた場合に、前記先端部の位置又は速度が異常状態であると判定し、前記学習補正量を適用しないように構成された、請求項１に記載のロボット制御装置（１０）。
【請求項３】
前記学習補正量適用判定部（２５）は、前記位置誤差が所定の第一閾値以下であり、且つ前記速度誤差が所定の第二閾値以下である場合に、前記先端部の位置及び速度が正常状態であると判定し、前記学習補正量を適用するように構成された、請求項２に記載のロボット制御装置（１０）。
【請求項４】
前記先端部の位置又は速度が前記異常状態であると前記学習補正量適用判定部（２５）により判定された場合に、前記先端部の速度を所定の安全速度以下に調節するように構成された速度指令調節部（２６）をさらに備える、請求項１または２に記載のロボット制御装置（１０）。
【請求項５】
前記学習制御部（２０）は、前記ロボット機構部に関する複数の異なる動作にそれぞれ対応する複数の前記学習補正量を記憶するように構成された、請求項１から４のいずれか一項に記載のロボット制御装置（１０）。
【請求項６】
前記学習補正量適用判定部（２５）は、前記先端部の位置又は速度に対する判定結果を前記正常状態に切替えた時、前記学習制御部（２０）に記憶された複数の前記学習補正量のうち、前記正常状態になった前記ロボット機構部の動作に対応する前記学習補正量を適用するように構成された、請求項５に記載のロボット制御装置（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習制御機能を備えたロボット制御装置に関する。
【背景技術】
【０００２】
従前より、サーボモータにより駆動される被駆動体の位置や速度を制御するために、通常、位置フィードバック制御、速度フィードバック制御、さらには電流フィードバック制御が行われている。しかし、そのようなフィードバック制御を行っても、被駆動体の剛性が低い場合や被駆動体が高加速度で動作される場合には、被駆動体に位置ずれが発生し、被駆動体の位置精度が安定しないことがある。そこで、被駆動体の位置精度を高めるために学習制御を行うことが従前より提案されている。
【０００３】
例えば、特許文献１は、被加工物が取付けられていてサーボモータにより駆動される被駆動体と、被加工物を加工する工具が取付けられた被取付部材とを備える工作機械本体において、被取付部材の先端点に加速度センサを取付けて学習制御を行うことを開示する。
学習制御は、所定の周期で同一パターンの動作を繰返す指令に対し、位置指令値と位置フィードバック値との差である位置偏差をゼロ付近に収束させるための学習補正量を求めるプロセスである。
【０００４】
具体的には、サーボモータを制御する制御回路に入力された位置指令値と、被駆動体の位置を検出する位置検出器から出力された位置フィードバック値との差（以下、第一位置偏差と呼ぶ。）が、位置指令の入力毎に取得される。このとき、被取付部材の先端点に取付けられた加速度センサにより検出される加速度を２回積分することにより、被取付部材の先端点の位置ずれ量（変位量）も取得される。この位置ずれ量と前述の第一位置偏差とを加算することにより、指令位置に対する被取付部材の先端点の位置誤差（以下、第二位置偏差と呼ぶ。）が計算される。この計算された第二位置偏差がゼロに収束すれば、被取付部材の先端点の位置は位置指令の位置と一致する。このため、第二位置偏差をゼロに収束させるための補正量（以下、学習補正量と呼ぶ。）が計算される。
上述のような一連の処理を同一の移動指令によって所定の試行回数だけ繰返すことにより、上記の第二位置偏差がゼロ付近の所定閾値以下に収束するまで前述の学習補正量は更新され、学習補正量の最良値が求められる。学習補正量の最良値は制御装置内のメモリに保存される。以上の制御プロセスが学習制御と呼ばれるものである。
学習制御が終了した後には、加速度センサは被取付部材の先端点から取外される。学習制御後の通常の制御においては、学習制御の時と同じ移動指令による制御が行われるとともに、前述の学習補正量の最良値が上記の第一位置偏差に適用されることになる。
特許文献１においては、学習制御の際に、加速度センサを被取付部材の先端点に取付けずに、機械モデルを使用して、指令位置に対する被取付部材の先端点の位置誤差を予測することも開示されている。
【０００５】
また、特許文献２においては、ワークを回転させるサーボモータの回転駆動力の変動を抑制するために、位置指令値と位置フィードバック値との差である位置偏差を小さくするための位置補正量を算出する学習制御部を備える工作機械用制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１７２１４９号公報
【特許文献２】特開２００９−８３０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、工作機械においては、学習制御に関する技術の実用化が進んでいる。産業用ロボットにおいても、アーム部の先端に取付けられているツールの重量が大きいほど、さらにはアーム部の剛性が低いほど、動作中のアーム部の先端のツールに生じる振動や揺れは大きくなり、ツールの位置精度が悪くなる。このため、ロボットの動作においても学習制御の適用が検討されている。特に、同じパターンの作業をロボットに繰返し実行させる場合、学習制御は有効である。
【０００８】
しかしながら、工作機械に用いられた学習制御技術をロボットの制御にそのまま適用できない場合がある。
つまり、学習制御は、所定の周期で同一パターンの移動指令を所定回数繰返してモータ制御回路に入力することを前提としたプロセスである。工作機械の場合、被加工物が取付けられた移動駆動体の軌跡や速度が学習制御時と実際の稼働時とで大きく変わらないので、学習制御を行う意義は大きい。一方、産業用ロボットにおいては、ロボットのツールの移動パターンはロボットの稼働中に生産ライン上の周辺機器と関連して変わることが多い。例えば、ロボットの稼働中に、外部信号の入力待ちの為にツールを待機位置に移動させる必要が生じたり、ロボットが別の動作を行うためにツールの移動パターンが切替わったりすることがある。また、ツールの移動パターンをロボットに教示又は修正するためにユーザが教示操作盤によりロボットを操作することもある。これらの要因により、学習制御後のロボットの実稼働においては、必ずしも学習制御時と全く同じ軌跡や速度でロボットのツールは移動していない。このように学習制御時と軌跡や速度が異なるロボット動作に対して、学習制御により取得された学習補正量を適用すると、ツールの振動が収束されないばかりか、かえって振動が発散してしまう可能性がある。このため、産業用ロボットに対して学習制御技術がほとんど使われていないのが、実状である。
【０００９】
そこで本発明は、上述したような課題に鑑み、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することが可能なロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一態様によれば、サーボモータにより駆動されるロボット機構部の動作を制御するロボット制御装置であって、
前記ロボット機構部を位置指令により動作させたときの前記ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行う学習制御部と、
前記学習制御の実施中に前記ロボット機構部の先端部の位置を所定の時間間隔で記憶する位置記憶部と、
前記学習制御の実施中に前記ロボット機構部の先端部の速度を前記所定の時間間隔で記憶する速度記憶部と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の位置と、該実際の位置に対応する、前記位置記憶部に記憶されている前記先端部の位置との間の位置誤差を算出する位置誤差算出部と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の速度と、該実際の速度に対応する、前記速度記憶部に記憶されている前記先端部の位置との間の速度誤差を算出する速度誤差算出部と、
前記学習制御の後に前記ロボット機構部を前記位置指令より動作させている間、前記位置誤差及び前記速度誤差に基づき、前記先端部の位置及び速度が異常状態であるか、又は正常状態であるかを判定し、この判定結果に応じて、前記学習補正量を前記先端部の位置に対して適用するか否かを切替えるように構成された学習補正量適用判定部と、
を備えるロボット制御装置が提供される。
さらに、本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記位置誤差が所定の第一閾値を超えたか、又は前記速度誤差が所定の第二閾値を超えた場合に、前記先端部の位置又は速度が異常状態であると判定し、前記学習補正量を適用しないように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記位置誤差が所定の第一閾値以下であり、且つ前記速度誤差が所定の第二閾値以下である場合に、前記先端部の位置及び速度が正常状態であると判定し、前記学習補正量を適用するように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記先端部の位置又は速度が前記異常状態であると前記学習補正量適用判定部により判定された場合に、前記先端部の速度を所定の安全速度以下に調節するように構成された速度指令調節部をさらに備える、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習制御部は、前記ロボット機構部に関する複数の異なる動作にそれぞれ対応する複数の前記学習補正量を記憶するように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記先端部の位置又は速度に対する判定結果を前記正常状態に切替えた時、前記学習制御部に記憶された複数の前記学習補正量のうち、前記正常状態になった前記ロボット機構部の動作に対応する前記学習補正量を適用するように構成された、ロボット制御装置が提供される。
【発明の効果】
【００１１】
本発明によれば、学習制御後にロボットを実際に動作させたときに、ロボット機構部の先端部の実際の位置や速度に応じて、事前の学習制御時に算出した学習補正量の適用を有効又は無効に切替えることができる。これにより、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することができる。さらに、複数の動作パターンを実行できる産業用ロボットに対して学習制御技術を有効活用することができる。
【００１２】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態のロボット制御装置を説明するためのブロック図である。
【図２】本発明の一実施形態のロボット制御装置の処理フローの主要部を説明するための図である。
【図３】図２に示されたステップＳ１３からステップＳ１４の処理をより具体的に示した図である。
【図４】図２に示されたステップＳ１７からステップＳ１８の処理をより具体的に示した図である。
【図５】学習制御によるロボット動作を実施したときのロボット機構部の先端部の位置軌跡と、学習制御後に実際のロボット動作を実施したときのロボット機構部の先端部の位置軌跡とが相異する例を示した図である。
【図６】複数の移動パターンの各々に関する学習制御を実施するプログラム部分を含むロボット動作プログラムの一例を示した図である。
【図７】各々のロボット動作のインデックス番号とロボット機構部の先端部の現在位置とから学習補正量を特定するときの処理フローを示した図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【００１５】
図１は、本発明の一実施形態のロボット制御装置１０を説明するためのブロック図である。本実施形態のロボット制御装置１０は、サーボモータ１１により駆動される関節軸を介して連結された複数のアーム部（図示せず）を有するロボット１００を制御する装置である。ロボット１００は例えば産業用途の垂直多関節ロボットである。ロボット１００の遠位側のアーム部の先端（以下、ロボット機構部の先端部と呼ぶ。）には、例えば把持ハンドや工具、溶接ガンなどといった作業ツール（図示せず）が取付けられている。
【００１６】
図１に示されるように、サーボモータ１１は、位置ＦＢ（即ち、位置フィードバック値）及び速度ＦＢ（即ち、速度フィードバック値）を検出するパルスコーダ１２、例えばロータリエンコーダを内蔵している。ロボット制御装置１０は、ロボット１００におけるロボット機構部の先端部の位置を検出する位置検出部１３と、該ロボット機構部の先端部の速度を検出する速度検出部１４とをそれぞれ備えている。
なお、位置検出部１３は、位置ＦＢを順変換してロボット機構部の先端部の位置を計算する。また、速度検出部１４は、位置検出部１３により計算された先端部の位置を微分して速度を算出する。
【００１７】
さらに図１を参照すると、ロボット制御装置１０は、サーボモータ１１を制御するための基本的な構成要素として、動作指令部１５、位置制御部１６、速度制御部１７、電流制御部１８、及びアンプ１９を備えている。
動作指令部１５は、予め作成されたロボット動作プログラムまたは、教示操作盤（図示せず）からの動作指示に従って、ロボットを動作させる指令（位置指令値）を位置制御部１６に対して出力する。ロボット動作プログラムは、ロボット制御装置１０内のＲＯＭ等のメモリに記憶されている。
位置制御部１６は、動作指令部１５から与えられた位置指令値と、パルスコーダ１２により検出された位置ＦＢとの差である位置偏差量を処理し、速度制御部１７に対して速度指令値を出力する。
速度制御部１７は、位置制御部１６から与えられた速度指令値と、パルスコーダ１２により検出された速度ＦＢとの差である速度偏差量を処理し、電流制御部１８に対して電流指令値を出力する。
電流制御部１８は、速度制御部１７から与えられた電流指令値と、アンプ１９からの電流ＦＢ（即ち、電流フィードバック値）との差である電流偏差量を処理し、アンプ１９に対して電流指令値（トルク指令値）を出力する。
アンプ１９は、電流制御部１８からそれぞれ電流指令値を受信するとともに、受信した電流指令値に基づいて、サーボモータ１１を駆動する駆動電流を生成し、サーボモータ１１を回転駆動する。
動作指令部１５からの位置指令値に従って、ロボット１００の各関節軸に連結されたサーボモータ１１を回転駆動させると、ロボット１００におけるロボット機構部の先端部に取付けられた作業ツールは指令された位置に移動する。
【００１８】
さらに、図１に示されるとおり、本実施形態のロボット制御装置１０は、学習制御部２０、位置記憶部２１、速度記憶部２２、位置誤差算出部２３、速度誤差算出部２４、学習補正量適用判定部２５、及び、速度指令調節部２６を備える。以下、これら構成要素の機能を詳述する。
【００１９】
学習制御部２０は、背景技術の欄において説明した、いわゆる学習制御を行うための機能部分である。つまり、学習制御部２０は、ロボット機構部を位置指令により動作させたときの該ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行うように構成されている。
より具体的には、学習制御部２０は、動作指令部１５から与えられた位置指令値と、ロボット１００におけるロボット機構部の先端部に取り付けたセンサ３０により検出された位置との差である位置偏差量をゼロ付近に収束させるための学習補正量を求めるように構成されている。ここで、センサ３０は、ロボット１００におけるロボット機構部の先端部の位置や変位を監視できる装置であれば何でもよい。そのような装置としては、例えば、加速度センサ、ジャイロセンサ、慣性センサ、レーザトラッカ、カメラ、またはモーションキャプチャ装置などの、位置や変位を計測できる装置を適用しうる。なお、学習補正量を求めるときは、センサ３０により検出されたロボット機構部の先端部の位置が使用されるが、学習制御の終了後にはセンサ３０はロボット機構部の先端部から取外される。さらに、学習制御部２０は、所定周期で所定回数繰返される同一の動作指令に対して、その都度学習補正量を更新しながら最良値を求めるように構成されている。学習制御部２０の具体的な構成は、特許文献１（例えば図２、図４、図６参照）に記載されている学習制御器と同じであるので、その説明は省略する。
【００２０】
本実施形態の学習制御部２０の出力部には、学習補正量の出力先を位置制御部１６又は学習補正量適用判定部２５のいずれか一方に切替えるスイッチ２７が設けられている。
学習制御によるロボット動作を行うに際し、学習制御部２０の出力が位置制御部１６の入力となるようにスイッチ２７が切替えられる。学習制御部２０は学習補正量を記憶するメモリ２０ａを有し、同一の動作指令が繰返される度に、メモリ２０ａ内に学習補正量が書込まれて更新されるようになっている。
一方、学習制御の終了後に、学習制御を実施したときの動作指令でロボット１００を実際に動作させるときには、学習制御部２０の出力が学習補正量適用判断部２５の入力となるようにスイッチ２７が切替えられる（図１に示されるスイッチ２７の状態）。これにより、メモリ２０ａ内の学習補正量が学習補正量適用判定部２５を介して位置制御部１６に出力されるようになっている。
【００２１】
位置記憶部２１は、学習制御によるロボット動作中、位置検出部１３により検出されたロボット機構部の先端部の位置を所定の時間間隔Ｔで記憶する。学習制御の終了後には、学習制御によるロボット動作を行ったときのロボット機構部の先端部の位置データ（軌跡データ）が位置記憶部２１内に記憶されていることになる。
速度記憶部２２は、学習制御によるロボット動作中、速度検出部１４により検出されたロボット機構部の先端部の速度を上記所定の時間間隔Ｔで記憶する。学習制御の終了後には、学習制御によるロボット動作を行ったときのロボット機構部の先端部の速度データが位置記憶部２１内に記憶されていることになる。
【００２２】
位置記憶部２１、速度記憶部２２、メモリ２０ａなどには、例えば、ＲＡＭ（Random Access Memory）といったメモリ装置や、ハードディスクといった磁気記憶装置などを用いることができる。図１に示された位置記憶部２１、速度記憶部２２、及びメモリ２０ａはそれぞれ別個に設けられているが、それらは、一つの記憶装置内に割当てられた異なる記憶領域としてもよい。
【００２３】
位置誤差算出部２３は、学習制御後に学習制御時の動作指令でロボット１００を動作させている間、位置検出部１３から、ロボット機構部の先端部の実際の位置を上記所定の時間間隔Ｔで受信するようになっている。
さらに、位置誤差算出部２３は、位置検出部１３から上記所定の時間間隔Ｔで受信されるロボット機構部の先端部の実際の位置と、該実際の位置に対応する、位置記憶部２１に記憶されているロボット機構部の先端部の位置との間の誤差を算出するようになっている。以降、この誤差を位置誤差と呼ぶ。
【００２４】
速度誤差算出部２４は、学習制御後に学習制御時の動作指令でロボット１００を動作させている間、速度検出部１４から、ロボット機構部の先端部の実際の速度を上記所定の時間間隔Ｔで受信するようになっている。
さらに、速度誤差算出部２４は、速度検出部１４から上記所定の時間間隔Ｔで受信されるロボット機構部の先端部の実際の速度と、該実際の速度に対応する、速度記憶部２２内に記憶されているロボット機構部の先端部の速度との間の誤差を算出するようになっている。以降、この誤差を速度誤差と呼ぶ。
【００２５】
但し、位置記憶部２１や速度記憶部２２に記憶されている位置データや速度データが、学習制御後のロボット１００の実際の動作中に位置検出部１３や速度検出部１４から出力される位置データや速度データにより上書きされないようにする必要である。
このため、位置検出部１３の出力部には、学習制御時に位置検出部１３の出力先を位置記憶部２１に設定し、学習制御後のロボット１００の実際の動作時には位置検出部１３の出力先を位置誤差算出部２３に設定するためのスイッチ２８が設けられている。速度検出部１４の出力部にも、学習制御時に速度検出部１４の出力先を速度記憶部２２に設定し、学習制御後のロボット１００の実際の動作時には速度検出部１４の出力先を速度誤差算出部２４に設定するためのスイッチ２９が設けられている。学習制御後のロボット１００の実際の動作中、スイッチ２８及びスイッチ２９は、図１に示された状態になっている。
【００２６】
前述したスイッチ２７、スイッチ２８及びスイッチ２９は、例えば、ロボット制御装置１０に対する学習制御のスタート信号の入力または、通常動作のスタート信号の入力に応じて切替わるように構成されているのが好ましい。
【００２７】
学習補正量適用判定部２５は、位置誤差算出部２３や速度誤差算出部２４がそれぞれ算出した位置誤差や速度誤差に基づき、ロボット機構部の先端部の位置又は速度が異常状態であるか、又は正常状態であるかを判定するように構成されている。
本明細書でいう「異常」とは、学習制御後のロボット１００の実際の動作中におけるロボット機構部の先端部の位置や速度が、学習制御を実施したときのロボット機構部の位置や速度に対して所定の閾値範囲を超えて異なっていることを意味する。「正常」とは、「異常」でない状態のことである。
【００２８】
さらに、学習補正量適用判定部２５は、ロボット機構部の先端部の位置及び速度の少なくとも一方が異常状態であると判定した場合には、学習制御部２０のメモリ２０ａに記憶されている学習補正量を位置制御部１６に対して出力しないように構成されている。より具体的には、ロボット機構部の先端部に関する位置誤差及び速度誤差の少なくとも一方が予め定められた閾値を超える場合には、学習補正量適用判定部２５は、異常が発生したと判定し、学習補正量の適用を行わないようにする。
また、学習補正量適用判定部２５は、ロボット機構部の先端部の位置及び速度のいずれも正常状態であると判定した場合には、学習制御部２０のメモリ２０ａに記憶されている学習補正量を位置制御部１６に対して出力するように構成されている。より具体的には、ロボット機構部の先端部に関する位置誤差及び速度誤差のいずれも予め定められた閾値以下である場合には、学習補正量適用判定部２５は、異常は発生していないと判定し、学習補正量の適用を行うようにする。
要するに、ロボット１００の実際の動作におけるロボット機構部の先端部の位置や速度が学習制御時の位置や速度と比べて異常状態であるか、又は正常状態であるかを判定し、異常状態の場合には学習補正量を前述の位置偏差量に適用する。正常状態の場合には学習補正量を前述の位置偏差量に適用する。
このような学習補正量適用判定部２５は、前述したロボット機構部の先端部の位置及び速度のそれぞれに関する異常の有無を判定するための閾値を設定する設定部（図示せず）を備え、それらの閾値をロボット制御装置１０外から書換えられることが好ましい。
【００２９】
速度指令調節部２６は、学習補正量適用判定部２５から異常の有無を受取り、異常が有る場合には、ロボット機構部の先端部の速度を所定の安全速度以下に調節するように構成されている。
より具体的には、学習補正量適用判定部２５は、ロボット機構部の先端部の位置及び速度が異常状態であると判定した時、異常が発生した旨の信号（以下、異常検出信号と呼ぶ。）を速度指令調節部２６に出力する。速度指令調節部２６は、異常検出信号を受信している時のみ、位置制御部１６からの速度指令値を所定の割合で減少させ、減少させた速度指令値を速度制御部１７に対して出力する。これにより、ロボット機構部の先端部の速度（サーボモータ１１の回転速度）が所定の安全速度以下に低下する。一方、異常検出信号が出力されていない間は、位置制御部１６からの速度指令値を減少させる調節は行われない。
なお、このような速度指令調節部２６は、本発明のロボット制御装置に対し、必ずしも備えられていなくてもよい。
【００３０】
［ロボット制御装置１０の動作］
図２は、本実施形態のロボット制御装置１０の処理フローの主要部を説明するための図である。以下、図１及び図２を参照しながら、本実施形態のロボット制御装置１０の動作を説明する。
【００３１】
学習制御を行うときには、図１に示される状態のスイッチ２７は、学習制御部２０の出力先が学習補正量適用判定部２７から位置制御部１６になるように切替わる。さらに、図１に示される状態のスイッチ２８は、位置検出部１３の出力先が位置誤差算出部２３から位置記憶部２１となるように切替わる。図１に示される状態のスイッチ２９は、速度検出部１４の出力先が速度誤差算出部２４から速度記憶部２２となるように切替わる。このようなスイッチ２７〜２９の切替えは、ロボット制御装置１０に対して学習制御のスタート信号が入力されることにより同時に行われる。
学習制御中は、動作指令部１５からの位置指令値とパルスコーダ１２からの位置ＦＢとの差である位置偏差量、及び位置検出部１３による検出位置が学習制御部２０に入力され、学習制御部２０内で学習補正量が求められて位置制御部１６に対して出力される。さらに、動作指令部１５から同一の動作指令が繰返される度に、学習制御部２０のメモリ２０ａ内に学習補正量が書込まれて更新される。
【００３２】
学習制御の終了後、学習制御を実施したときの動作指令でロボット１００を実際に動作させるときには、スイッチ２７〜２９はそれぞれ、図１に示される状態に切替わる。これらスイッチの切替えは、ロボット制御装置１０に対して通常動作のスタート信号が入力されることにより同時に行われる。
【００３３】
図２に示される処理フローは、学習制御後にロボット１００を実際に動作させるときの処理フローである。このため、図２に示される処理フローを開始するまでに、前述のように学習制御が終了し、スイッチ２７〜２９の各々は、図１に示される状態になっているものとする。さらに、学習制御によるロボット動作を行ったときのロボット機構部の先端部の位置データ（軌跡データ）及び速度データはそれぞれ、図１に示される位置記憶部２１及び速度記憶部２２に記憶されているものとする。
【００３４】
学習制御後にロボット１００の実際の動作を開始すると、まず、位置誤差算出部２３は、位置検出部１３からロボット機構部の先端部の位置を、学習制御中に位置記憶部２１がロボット機構部の先端部の位置を記憶したときと同じ所定の時間間隔Ｔで受信する。
位置誤差算出部２３は、位置検出部１３から上記所定の時間間隔Ｔで受信されるロボット機構部の先端部の実際の位置と、該実際の位置に対応する、位置記憶部２１に記憶されているロボット機構部の先端部の位置との間の位置誤差を算出する（図２のステップＳ１１）。
【００３５】
次いで、図２のステップＳ１２において、学習補正量適用判定部２５は、前述したロボット機構部の先端部に関する位置誤差が所定の第一閾値を超えたどうかを判定する。その位置誤差が所定の第一閾値を超えた場合には、学習補正量適用判定部２５は、位置が異常状態であると判定するとともに、位置制御部１６に対する学習補正量の適用が無効の状態になっているか否かを判定する（図２のステップＳ１３）。
この判定処理の結果、学習補正量の適用が無効の状態でなければ、学習補正量適用判定部２５は、位置制御部１６に対する学習補正量の適用を無効の状態に切替える（図２のステップＳ１４）。
このステップＳ１４の後や、上記ステップＳ１３において学習補正量の適用が無効の状態になっていると判定された後は、上記ステップＳ１２から次の判定結果が出るまで、前述したステップＳ１３及びステップＳ１４の処理は行われない。
【００３６】
また、上記のステップＳ１２において、前述したロボット機構部の先端部に関する位置誤差が上記所定の第一閾値以下であると学習補正量適用判定部２５により判定された場合には、図２のステップＳ１５が実施される。
ステップＳ１５においては、速度誤差算出部２４は、速度検出部１４から上記所定の時間間隔Ｔで受信されるロボット機構部の先端部の実際の速度と、該実際の速度に対応する、速度記憶部２２内に記憶されているロボット機構部の先端部の速度との間の速度誤差を算出する。
速度誤差算出部２４が速度検出部１４からロボット機構部の先端部の速度を受信する時刻及びタイミングは、前述した位置誤差算出部２３が位置検出部１３からロボット機構部の先端部の位置を受信する時刻及びタイミングと同じである。
【００３７】
続いて、図２のステップＳ１６において、学習補正量適用判定部２５は、前述したロボット機構部の先端部に関する速度誤差が所定の第二閾値を超えたかどうかを判定する。その速度誤差が所定の第二閾値を超えた場合には、学習補正量適用判定部２５は、速度が異常状態であると判定するとともに、前述のようなステップＳ１３からステップＳ１４の処理を行う。
一方、上記のステップＳ１６において、前述したロボット機構部の先端部に関する速度誤差が上記所定の第二閾値以下であると学習補正量適用判定部２５により判定された場合には、図２のステップＳ１７が行われる。
上記ステップＳ１７においては、学習補正量適用判定部２５は、速度が正常状態であると判定するとともに、位置制御部１６に対する学習補正量の適用が有効の状態になっているか否かを判定する。この判定の結果、学習補正量の適用が有効の状態でなければ、学習補正量適用判定部２５は、位置制御部１６に対する学習補正量の適用を有効の状態に切替える（図２のステップＳ１８）。
このステップＳ１８の後や、上記ステップＳ１７において学習補正量の適用が有効の状態になっていると判定された後は、上記ステップＳ１６から次の判定結果が出るまで、前述したステップＳ１７及びステップＳ１８の処理は行われない。
【００３８】
図３は、図２に示されたステップＳ１３からステップＳ１４の処理をより具体的に示した図である。以下、図１、図２とともに図３を参照しながら、ステップＳ１３からステップＳ１４の処理の具体例を説明する。
図２のステップＳ１２での判定結果が「ＹＥＳ」の場合、すなわち、位置誤差算出部２３により算出された位置誤差が上記所定の第一閾値を超えた場合には、学習補正量適用判定部２５は、位置が異常状態であると判定する（図３のステップＳ２１）。さらに、前述したステップＳ１６での判定結果が「ＹＥＳ」の場合、すなわち、速度誤差算出部２４により算出された速度誤差が上記所定の第二閾値を超えた場合にも、学習補正量適用判定部２５は、速度が異常状態であると判定する（図３のステップＳ２１）。
学習補正量適用判定部２５は、前述のように位置又は速度が異常状態であると判定すると、位置制御部１６に対する学習補正量の適用を無効の状態に切替える（図３のステップＳ２２）。これにより、学習補正量適用判定部２５は、位置が異常状態であると判定している間は、学習制御部２０のメモリ２０ａに記憶されている学習補正量を位置制御部１６に対して出力しなくなる。例えば、学習補正量適用判定部２５は、位置制御部１６に出力する学習補正量をゼロに設定する（図３のステップＳ２３）。
【００３９】
続いて、学習補正量適用判定部２５は、前述した異常検出信号を速度指令調節部２６に出力する。速度指令調節部２６は、異常検出信号の受信中、位置制御部１６からの速度指令値を所定の割合で減少させ、減少させた速度指令値を速度制御部１７に対して出力する。これにより、学習補正量適用判定部２５において速度が異常状態であると判定されている間は、ロボット機構部の先端部の速度（サーボモータ１１の回転速度）が所定の安全速度以下に減少する（図３のステップＳ２４）。
前述したステップＳ２３及びステップＳ２４の順番は逆でもよい。
【００４０】
図４は、図２に示されたステップＳ１７からステップＳ１８の処理をより具体的に示した図である。以下、図１、図２とともに図４を参照しながら、ステップＳ１７からステップＳ１８の処理の具体例を説明する。
図２のステップＳ１２での判定結果が「ＮＯ」の場合、すなわち、位置誤差算出部２３により算出された位置誤差が上記所定の第二閾値以下である場合、学習補正量適用判定部２５は、位置が正常状態であると判定する（図４のステップＳ３１）。さらに、前述したステップＳ１７での判定結果が「ＮＯ」の場合、すなわち、速度誤差算出部２４により算出された速度誤差が上記所定の第二閾値以下である場合、学習補正量適用判定部２５は、速度が正常状態であると判定する（図４のステップＳ３１）。
学習補正量適用判定部２５は、前述のように位置と速度が正常状態であると判定すると、位置制御部１６に対する学習補正量の適用を有効の状態に切替える（図４のステップＳ３２）。これにより、学習補正量適用判定部２５は、位置と速度が正常状態であると判定している間、学習制御部２０のメモリ２０ａに記憶されている学習補正量を位置制御部１６に対して出力する。つまり、学習補正量適用判定部２５は、メモリ２０ａ内の学習補正量を前述の位置偏差量に適用する（図４のステップＳ３３）。
【００４１】
学習補正量適用判定部２５は、位置と速度が正常状態であると判定している間は、前述した異常検出信号を速度指令調節部２６に出力しない。このため、位置制御部１６からの速度指令値は速度指令調節部２６により減少されない。これにより、学習補正量適用判定部２５において位置と速度が正常状態であると判定されている間は、ロボット機構部の先端部の速度（サーボモータ１１の回転速度）は、位置制御部１６からの速度指令値に応じた速度に維持される（図４のステップＳ３４）。つまり、学習補正量適用判定部２５における異常の判定結果が異常状態から正常状態に切替わると、ロボット機構部の先端部の速度は低速状態から高速状態に復帰することになる。
前述したステップＳ３３及びステップＳ３４の順番は逆でもよい。
【００４２】
図５は、学習制御によるロボット動作を実施したときのロボット機構部の先端部の位置軌跡と、学習制御後に実際にロボット動作を実施したときのロボット機構部の先端部の位置軌跡とが相異する例を模式的に示した図である。
例えば、学習制御において、図５に点線Ｘにより示されるように、ロボット機構部の先端部が位置Ｐ１から所定の距離だけ直線移動したら曲線移動し、さらに直線移動して位置Ｐ３へ到達するように、ロボット１００の動作が実施されたとする。
上記の学習制御後に生産ラインにて実際にロボット１００を動作させたとき、ロボット１００の近くに設置されている周辺機器や別のロボットなどとの干渉を避けるためにインターロック機能が働くことがある。学習制御は、一般にロボット１００の近くに設置された周辺機器などの動作を考慮しないで実施されるが、実際に生産ラインが稼働すると、ロボット１００の近くの周辺機器や別のロボットがロボット１００の動作に関連して動くからである。
インターロック機能が働いた場合、例えば、ロボット１００におけるロボット機構部の先端部は、図５に示される位置Ｐ２（待機位置）に移動して待機し、インターロック解除信号の受信後に位置Ｐ３に向けて移動する。このため、ロボット機構部の先端部は、学習制御時とは異なる位置軌跡、図５に実線Ｙにより示されるように位置Ｐ１から位置Ｐ２を経て位置Ｐ３に移動するような軌跡を描くことになる。
【００４３】
図５における点線Ｘと実線Ｙの軌跡を比較すると、位置Ｐ１から位置Ｐ３へ移動するロボット機構部の先端部の軌跡は、図５に示される位置Ｑ１付近で学習制御時の軌跡とは大きく違っている。また、位置Ｐ１から位置Ｐ３へ移動するロボット機構部の先端部の軌跡は、図５に示される位置Ｑ２付近で学習制御時の軌跡に接近しながら一致するようになっている。
ロボット機構部の先端部の位置軌跡が学習制御時と一致していないロボット１００の実際の動作制御に、学習制御により取得された学習補正量を適用すると、ロボット機構部の先端部に振動や揺れが発生しまうことがある。
そのため、本実施形態のロボット制御装置１０は、ロボット機構部の先端部の実際の位置軌跡が、学習制御を実施したときのロボット機構部の先端部の位置軌跡から大きく異なった場合には、異常が発生したと判定し、学習補正量の適用を行わないようにしている。また、ロボット機構部の先端部の実際の位置軌跡が、学習制御を実施したときのロボット機構部の先端部の位置軌跡と一致するように復帰すれば、学習補正量の適用を再開するようにしている。
【００４４】
したがって、前述のようなロボット制御装置１０によれば、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することができる。さらに、複数の動作パターンを実行できる多くの産業用ロボットに対して学習制御技術を有効活用することができる。
【００４５】
なお、学習制御後にロボット１００を実際に動作させたときにロボット機構部の先端部の位置軌跡が学習制御時の位置軌跡と異なってしまう要因は、前述のようなインターロック機能によりロボット機構部の先端部を待機位置Ｐ２に移動させる例だけではない。
例えば、作業者が、ロボット制御装置１０に予め記憶されたロボット機構部の先端部の位置及び軌跡の一部を、実際の生産現場の状況に応じて教示操作盤により修正することがある。この場合、生産ラインにて実際にロボット１００を動作させたときのロボット機構部の先端部の軌跡は、事前に学習制御を実施したときのロボット機構部の先端部の軌跡から変わってしまう。
その他に、次のような要因もある。例えば、車体を製造するためのスポット溶接作業をロボット１００により行う場合、生産ラインに設置されたロボット１００に送られてくる車体の種類が変わると溶接位置も変わる。このため、ロボット１００に取付けられた溶接ガンの移動パターン（軌跡）を変える必要が生じる。この場合、これまでの移動パターンが別の移動パターンに切替わるためのロボット動作が必要となる。このような動作の分岐点においては、学習制御時と同じ移動パターン(軌跡）でロボット１００を動作させられなくなることがある。
本実施形態のロボット制御装置１０は、このような要因により実際の移動パターンが学習制御時の移動パターンから外れてしまう状況に対して適用しうるものである。
【００４６】
（その他の実施形態）
前述したような車体のスポット溶接作業をロボット１００により行う場合、一般に、複数の車種に応じて、ロボット１００の溶接ガンの複数の移動パターンがロボット１００の動作プログラムに記述されている。このような複数の移動パターンの動作をロボット制御装置１０によりロボット１００に実行させる場合について以下に説明する。
【００４７】
この場合、図１に示されたロボット制御装置１０の動作指令部１５は、ロボット動作プログラムに記述された複数の移動パターンのうちの、ロボット１００の作業目的に対応する移動パターンに従って、位置指令値を出力する。
このような複数の移動パターンの各々についても事前に学習制御を実施することより、移動パターン毎の学習補正量を取得して学習制御部２０のメモリ２０ａに記憶しておくことが好ましい。
例えば、図６は、前述した複数の移動パターンの各々に関する学習制御を実施するプログラム部分を含むロボット動作プログラムの一例を示した図である。図６に示されるように、複数のロボット動作（ＬＰ［１］ ＦＩＮＥ ＳＰＯＴ、ＬＰ［２］ ＣＮＴ１００など）がロボット動作プログラム内に記述されている。それらロボット動作のうち、学習制御の対象とするロボット動作が、学習開始命令（ＬＶＣ ＳＴＡＲＴ［１］）と学習終了命令（ＬＶＣ ＥＮＤ［１］）とにより囲まれている。
【００４８】
ロボット制御装置１０は、前述した学習制御のスタート信号を受信すると、ロボット１００の所定の動作に関する学習制御を行う。このとき、ロボット制御装置１０は、図６に示されたロボット動作プログラムにおける学習開始命令と学習終了命令との間に記述された複数のロボット動作を、その学習開始命令から学習終了命令へのプログラムの流れに従って逐次実行する。学習制御を行うときのロボット制御装置１０の動作については、既に図１を参照して説明したとおりである。
【００４９】
プログラムの流れに従ってそれぞれのロボット動作の学習制御が行われる度に、図１に示されるロボット制御装置１０の学習制御部２０において学習補正量が求められてメモリ２０ａに記憶される。このとき、それぞれのロボット動作の学習制御が行われた順番にインデックス番号、例えば、図６に示されるような番号（１）〜（５）が割当てられる。図１に示されたメモリ２０ａは、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得された学習補正量とを互いに対応付けて記憶している。図１に示された位置記憶部２１もまた、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得されたロボット機構部の先端部の位置データ（軌跡データ）とを互いに対応付けて記憶している。
以上の事により、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得された学習補正量と、各々のロボット動作の学習制御において取得されたロボット機構部の先端部の位置データ（軌跡データ）とが互いに紐付けられるようになる。
このため、現在行われているロボット動作のインデックス番号や、現在のロボット動作におけるロボット機構部の先端部の位置が分かれば、そのロボット動作におけるロボット機構部の先端部の位置に対応する学習補正量を特定することができる。
【００５０】
図７は、前述のように各々のロボット動作のインデックス番号とロボット機構部の先端部の現在位置とから学習補正量を特定するときの処理フローを示した図である。
ロボット１００による実際の生産作業において、図６に示されたインデックス番号（１）のロボット動作からインデックス番号（２）のロボット動作に切替わるとする。
ロボット制御装置１０はロボット動作プログラムにおけるインデックス番号（２）のロボット動作を実行したことを認識しているので、位置記憶部２１に記憶されている、インデックス番号（２）に対応する学習制御時の位置データ（軌跡データ）を使用する。
インデックス番号（２）のロボット動作はインデックス番号（１）のロボット動作とは異なる。このため、インデックス番号（２）のロボット動作に切替わる過程において、ロボット機構部の先端部の位置に異常が発生したと学習補正量適用判定部２５により判定される。この場合、図２や図３を参照して既に説明したように、学習補正量の適用が無効の状態となる（図２のステップＳ１４及び図３のステップＳ２２を参照）。
【００５１】
その後、インデックス番号（２）のロボット動作に切替わる過程において、ロボット機構部の先端部の位置は、インデックス番号（２）のロボット動作に対応するロボット機構部の先端部の位置軌跡に接近するようになる。このため、位置誤差算出部２３及び速度誤差算出部２４により算出される位置誤差及び速度誤差のいずれも予め定められた閾値以下になる。これにより、学習補正量適用判定部２５は、ロボット機構部の先端部の位置及び速度が正常状態であると判定し、位置制御部１６に対する学習補正量の適用を無効から有効の状態に切替える（図４のステップＳ３１〜ステップＳ３２、及び図７のステップＳ４１参照）。
【００５２】
しかし、学習補正量の適用を有効の状態にしても、インデックス番号（２）のロボット動作に対応する学習補正量はメモリ２０ａ内から未だ特定されていない。このため、図７のステップＳ４２において、ロボット制御装置１０は、学習補正量適用判定部２５により位置及び速度が正常状態であると判定されたロボット動作のインデックス番号と、正常状態となったロボット動作におけるロボット機構部の先端部の位置とを取得する。
このとき、ロボット制御装置１０はインデックス番号（２）のロボット動作を実行したことを認識しているので、現在行われているロボット動作のインデックス番号（２）を取得できる。一方、正常状態となったロボット動作におけるロボット機構部の先端部の位置は、位置検出部１３から取得されうる。
【００５３】
続いて、図７のステップＳ４３において、ロボット制御装置１０は、取得したインデックス番号（２）を基に、該インデックス番号（２）のロボット動作に対応する学習補正量をメモリ２０ａ内から特定する。
さらに、図７のステップＳ４４において、ロボット制御装置１０の学習補正量適用判定部２５は、正常状態となったロボット動作におけるロボット機構部の先端部の位置に対し、特定した学習補正量を適用する。
上述の処理フローによれば、学習制御後に実際に動作させたロボット機構部の先端部の位置が異常状態から正常状態に復帰すると、正常状態となったロボット動作におけるロボット機構部の先端部の位置に対し、そのロボット動作に対応する学習補正量が適用される。これにより、前述のようにインデックス番号（２）のロボット動作に切替わったとき、該ロボット動作に合った学習補正量を迅速に適用することができる。
【００５４】
なお、上述した実施形態のロボット制御装置１０は、バスを介して互いに接続された、記憶部、ＣＰＵ（control processing unit）、および通信部などを備えたコンピュータシステムを用いて構成されうる。該記憶部は、ＲＯＭ（read only memory)やＲＡＭ（random access memory）などである、また、上述したようなロボット制御装置１０が備える動作指令部１２、位置誤差算出部２３、速度誤差算出部２４、学習補正量適用判定部２５、速度指令調節部２６、等の機能や動作は、ＲＯＭに記憶されたプログラムがＣＰＵにより実行されることよって達成されうる。
【００５５】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の実施形態のロボット制御装置の構成要素や機能などに変更および種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【符号の説明】
【００５６】
１０    ロボット制御装置
１１    モータ
１２    パルスコーダ
１３    位置検出部
１４    速度検出部
１５    動作指令部
１６    位置制御部
１７    速度制御部
１８    電流制御部
１９    アンプ
２０    学習制御部
２０ａ    メモリ
２１    位置記憶部
２２    速度記憶部
２３    位置誤差算出部
２４    速度誤差算出部
２５    学習補正量適用判定部
２６    速度指令調節部
２７〜２９    スイッチ
３０    センサ
１００    ロボット
【図１】
2018069410.tif 000003
【図２】
2018069410.tif 000004
【図３】
2018069410.tif 000005
【図４】
2018069410.tif 000006
【図５】
2018069410.tif 000007
【図６】
2018069410.tif 000008
【図７】
2018069410.tif 000009