(57)【特許請求の範囲】
【請求項１】
関節を駆動させて動作するロボットの異常を診断する異常診断方法であって、前記ロボットは、予め定められた目標位置及び要求精度がそれぞれ対応付けられた複数の工程で構成された動作プログラムによって制御され、
前記複数の工程の中から前記要求精度が予め定められた値よりも高い前記工程を、診断対象工程と設定し、
前記動作プログラムを用いて、前記診断対象工程において前記ロボットの制御対象の位置と前記目標位置との差分が前記要求精度に関する許容範囲内に収まるように制御を行い、
前記診断対象工程についての測定値と前記測定値に関する基準値とを用いて前記ロボットの異常診断を行う
関節駆動ロボットの異常診断方法。
【請求項２】
前記診断対象工程を含む少なくとも１つの工程に要する作業時間を測定し、
測定された前記作業時間と前記作業時間の基準値との差分を用いて、前記ロボットの異常診断を行う
請求項１に記載の関節駆動ロボットの異常診断方法。
【請求項３】
前記作業時間として、前記診断対象工程の前の工程の終了から前記診断対象工程が終了するまでの時間を測定する
請求項２に記載の関節駆動ロボットの異常診断方法。
【請求項４】
関節を駆動させて動作するロボットの異常を診断する異常診断装置であって、前記ロボットは、予め定められた目標位置及び要求精度がそれぞれ対応付けられた複数の工程で構成された動作プログラムによって制御され、
前記複数の工程の中から前記要求精度が予め定められた値よりも高い前記工程を、診断対象工程と設定する設定手段と、
前記動作プログラムを用いて、前記診断対象工程において前記ロボットの制御対象の位置と前記目標位置との差分が前記要求精度に関する許容範囲内に収まるように制御が行われたときに、前記診断対象工程についての測定値と前記測定値に関する基準値とを用いて前記ロボットの異常診断を行う診断手段と
を有する関節駆動ロボットの異常診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節駆動ロボットの異常診断方法及び異常診断装置に関し、特に、関節駆動ロボットの異常を診断する関節駆動ロボットの異常診断方法及び異常診断装置に関する。
【背景技術】
【０００２】
産業用ロボット等のロボット（ロボットアーム）を用いて、車体等の製造現場において、溶接等の予め定められた作業が行われる。ロボットは、例えばロボットティーチング（教示）によってプログラミングされた動作プログラム（ティーチングデータ）を実行することで、所望の位置に動作する。
【０００３】
ロボットは、モータ等の駆動源によって各関節が駆動されることで、ロボットの先端に設けられたエンドエフェクタが所望の位置に動作するように制御される。ロボットの各関節には、減速機を介してモータの動力が伝達される。このようなロボットにおいては、モータ又は減速機等の劣化によりロボットに異常が発生してロボットが動作しなくなるおそれがある。したがって、ロボットが動作しなくなる前に、ロボットの異常を診断することが望まれる。
【０００４】
上記の技術に関連し、特許文献１は、ロボット劣化診断装置を開示する。特許文献１にかかるロボット劣化診断装置は、劣化診断に使用する作業プログラムにおける１サイクル再生運転完了のたびに、劣化診断に使用するデータとしての特性データ群（サイクルタイム、各関節軸が具備する減速機寿命、モータの平均トルク、最大トルク、平均回転速度、最大回転速度など）をメモリに記録する。そして、特許文献１にかかるロボット劣化診断装置は、この特性データ群を統計学的手法により解析して、解析結果に基づいてロボットアームの機械的な劣化症状を診断する。このような構成により、特許文献１にかかるロボット劣化診断装置は、過去に再生運転したときと現在再生運転したときとで特性データに違いがあった場合にも、ロボット駆動系の劣化の有無を判断することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１４８８７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１にかかる方法では、作業プログラムにおける１サイクル再生運転が完了したときに生成される特性データを用いて劣化症状を診断している。つまり、特許文献１にかかる方法では、作業プログラムにおける１サイクルにかかる特性データを用いている。ここで、単に、作業プログラムにおける１サイクルにかかる特性データを用いる場合、その作業プログラムにおける１サイクルに、ロボットの異常を顕現化させるような工程が含まれていないと、ロボットの異常を検出しそびれるおそれがある。つまり、ロボットの異常を顕現化させるような工程が含まれていないと、異常のあるロボットであっても、サイクルタイム等の特性データが、異常（劣化）を示さないおそれがある。
【０００７】
本発明は、ロボットの異常をより確実に検出することが可能な関節駆動ロボットの異常診断方法及び異常診断装置を提供するものである。
【課題を解決するための手段】
【０００８】
本発明にかかる関節駆動ロボットの異常診断方法は、関節を駆動させて動作する関節駆動ロボットの異常を診断する異常診断方法であって、前記ロボットは、予め定められた目標位置及び要求精度がそれぞれ対応付けられた複数の工程で構成された動作プログラムによって制御され、前記複数の工程の中から前記要求精度が予め定められた値よりも高い前記工程を、診断対象工程と設定し、前記動作プログラムを用いて、前記診断対象工程において前記ロボットの制御対象の位置と前記目標位置との差分が前記要求精度に関する許容範囲内に収まるように制御を行い、前記診断対象工程についての測定値と前記測定値に関する基準値とを用いて前記ロボットの異常診断を行う。
【０００９】
本発明にかかる関節駆動ロボットの異常診断装置は、関節を駆動させて動作する関節駆動ロボットの異常を診断する異常診断装置であって、前記ロボットは、予め定められた目標位置及び要求精度がそれぞれ対応付けられた複数の工程で構成された動作プログラムによって制御され、前記複数の工程の中から前記要求精度が予め定められた値よりも高い前記工程を、診断対象工程と設定する設定手段と、前記動作プログラムを用いて、前記診断対象工程において前記ロボットの制御対象の位置と前記目標位置との差分が前記要求精度に関する許容範囲内に収まるように制御が行われたときに、前記診断対象工程についての測定値と前記測定値に関する基準値とを用いて前記ロボットの異常診断を行う診断手段とを有する。
【００１０】
要求精度が高い工程においては、ロボットの制御対象の位置と目標位置との差分が許容範囲内に収まるようにロボットを制御することが困難である。そして、その傾向は、異常が発生しているロボットほど顕著である。つまり、要求精度が高い工程で制御を行うことで、ロボットの異常を顕現化させることができる。言い換えると、要求精度が高い工程における測定値は、ロボットに異常が発生したときと異常が発生していないときとで差異が生じやすい。したがって、本発明は、要求精度が高い工程における測定値と基準値とを用いて異常診断を行うことで、ロボットの異常をより確実に検出することが可能となる。
【００１１】
また、好ましくは、前記診断対象工程を含む少なくとも１つの工程に要する作業時間を測定し、測定された前記作業時間と前記作業時間の基準値との差分を用いて、前記ロボットの異常診断を行う。
作業時間は、ロボットの異常の度合が大きくなるにつれて長くなり得る。したがって、作業時間を用いて異常診断を行うことにより、さらに確実に、ロボットの異常を検出することが可能となる。
【００１２】
また、好ましくは、前記作業時間として、前記診断対象工程の前の工程の終了から前記診断対象工程が終了するまでの時間を測定する。
このように構成されることによって、測定される作業時間に対する他の装置等による影響を排除できる。したがって、さらに確実に、ロボットの異常を検出することが可能となる。
【発明の効果】
【００１３】
本発明によれば、ロボットの異常をより確実に検出することが可能な関節駆動ロボットの異常診断方法及び異常診断装置を提供できる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかるロボット制御システムを示す図である。
【図２】実施の形態１にかかる制御装置の構成を示す機能ブロック図である。
【図３】実施の形態１にかかる動作プログラム格納部によって格納されている動作プログラムを例示する図である。
【図４】実施の形態１にかかる測定値管理部によって管理される内容を示す図である。
【図５】ロボットの動作が診断対象工程の前の工程から診断対象工程に遷移する状態を示す図である。
【図６】ロボットの制御動作を説明するための図である。
【図７】ロボットの正常時と異常時とにおけるサイクルタイムの違いについて説明するための図である。
【図８】実施の形態１にかかる制御装置によってなされる異常診断方法を示すフローチャートである。
【図９】図８に示したフローチャートにおけるロボット制御処理を示すフローチャートである。
【図１０】図８に示したフローチャートにおける異常診断処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。
図１は、実施の形態１にかかるロボット制御システム１を示す図である。ロボット制御システム１は、ロボット１０及び制御装置１００を有する。制御装置１００は、動作プログラムを用いてロボット１０の動作を制御して、ロボット１０を所望の位置に制御する。また、制御装置１００は、ロボット１０の異常を診断する異常診断装置としての機能を有する。詳しくは後述する。
【００１６】
ロボット１０は、車両の製造ラインの近傍等に設置されている。ロボット１０は、例えば、車両に対して溶接（例えばスポット溶接）等の予め定められた作業を行うためのロボットである。例えば、車両の製造時において、ロボット１０は、エンドエフェクタ１２に設けられた溶接ガン等を用いて溶接等を行う。また、ロボット１０は、１つ以上の関節１４と、その関節１４を駆動するモータ（図示せず）及びモータの動力を関節１４に伝達する減速機（図示せず）を有している。ロボット１０は、制御装置１００によりモータが制御されることで、所望の動作を行う。つまり、ロボット１０は、関節１４を駆動させて動作する関節駆動ロボットである。そして、制御装置１００は、エンドエフェクタ１２の先端部１２ａの位置が、動作プログラムにおける各工程において所望の位置（目標位置）となるように、ロボット１０を制御する。つまり、本実施の形態において、ロボット１０の制御対象は、先端部１２ａである。
【００１７】
制御装置１００は、例えばコンピュータとしての機能を有する。制御装置１００は、ロボット１０の内部に搭載されてもよいし、ロボット１０と有線又は無線を介して通信可能に接続されてもよい。制御装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、Ｉ／Ｏ（Input/Output）１０４及びＵＩ（User Interface）１０５を有する。
【００１８】
ＣＰＵ１０１は、制御処理及び演算処理等を行う処理デバイスとしての機能を有する。ＲＯＭ１０２は、ＣＰＵ１０１によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。ＲＡＭ１０３は、処理データ等を一時的に記憶するための機能を有する。Ｉ／Ｏ１０４は、入出力装置であり、外部からデータ及び信号を入力し、外部にデータ及び信号を出力する。ＵＩ１０５は、例えばキーボード等の入力デバイスと、例えばディスプレイ等の出力デバイスとから構成される。なお、ＵＩ１０５は、入力デバイスと出力デバイスとが一体となったタッチパネルとして構成されてもよい。ここで、ＲＯＭ１０２は、ロボット１０を制御するための動作プログラム（ティーチングデータ）を格納できるように構成されている。
【００１９】
ここで、本実施の形態においては、ロボット１０の制御対象の実際位置は、制御装置１００の制御によって、厳密に目標位置に一致するように制御されるわけではない。ロボット１０の制御対象の実際位置と目標位置との間には、動作プログラムの各工程において予め定められた要求精度に応じて、ある程度の偏差があり得る。つまり、制御装置１００は、目標位置を基準とした要求精度に対応する許容範囲内に実際位置が収束（到達）すれば、その工程においてロボット１０の制御対象の位置を目標位置に制御できたものとして、その工程における制御を終了して次の工程の制御を行う。つまり、制御装置１００は、各工程において、ロボット１０の制御対象（先端部１２ａ）の位置と目標位置との差分（偏差）が要求精度に対応する許容範囲内に収まるように、ロボット１０を制御する。
【００２０】
なお、要求精度が高ければ、対応する許容範囲は小さく、要求精度が低ければ、対応する許容範囲は大きい。このような制御を行うことで、要求精度が低い工程においては早く許容範囲内に実際位置を収束させることができるので、作業時間を短縮することができる。
【００２１】
図２は、実施の形態１にかかる制御装置１００の構成を示す機能ブロック図である。制御装置１００は、動作プログラム格納部１１２、診断対象工程設定部１１４、ロボット制御部１１６、実際位置取得部１１８、作業時間測定部１２０、測定値管理部１２２、異常診断部１２４、及び警告出力部１２６を有する。なお、図２に示した制御装置１００の各構成要素は、ＣＰＵ１０１がＲＯＭ１０２に記憶されたプログラムを実行することによって実現可能である。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてそのプログラムをインストールするようにしてもよい。なお、図２に示した各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。
【００２２】
また、図２に示した各構成要素の１つ以上は、制御装置１００とは別の装置によって実現されてもよい。例えば、診断対象工程設定部１１４、作業時間測定部１２０、測定値管理部１２２、異常診断部１２４、及び警告出力部１２６は、制御装置１００とは別の異常診断装置によって実現されてもよい。つまり、ロボット１０の制御を行う装置と、ロボット１０の異常を診断する装置とは、物理的に別の装置であってもよい。この場合、この異常診断装置は、図１に示した制御装置１００のハードウェア構成と同様の構成を有しうる。
【００２３】
動作プログラム格納部１１２は、ロボット１０を動作させるための動作プログラムを格納する。
図３は、実施の形態１にかかる動作プログラム格納部１１２によって格納されている動作プログラム２００を例示する図である。動作プログラム２００は、複数の工程「１」〜「Ｍ」（Ｍは２以上の整数）で構成されている。各工程は、その工程におけるロボットの動作速度、その工程における要求精度、その工程における目標位置、診断対象の設定（診断対象設定）の有無、及びＩ／Ｏ信号が対応付けられている。
【００２４】
ロボットの動作速度は、数字が大きいほど速い。図３の例では全ての工程において、最も速い速度「９」が設定されている。要求精度は、ロボット１０の制御対象の位置をどれだけ目標位置に近づけるべきかを示す。要求精度が高いほど、その工程では、ロボット１０の制御対象の位置を目標位置に近づけるように制御する必要がある。ここで、要求精度は、数字が小さいほど高い。図３の例では、要求精度は、最も精度の高い精度「０」から、最も精度の低い精度「４」が設けられている。例えば、工程「１」では、精度「１」で制御が行われ、工程「２」では、精度「２」で制御が行われる。また、工程「Ｎ」（Ｎは１以上Ｍ以下の整数）では、最も高い精度「０」で制御が行われる。また、工程「Ｎ」の１つ前の工程「Ｎ−１」では、精度「２」で制御が行われる。
【００２５】
目標位置Ｐｔ（Ｐｔ＿１〜Ｐｔ＿３、・・・、Ｐｔ＿Ｎ−１〜Ｐｔ＿Ｎ、・・・Ｐｔ＿Ｍ）は、対応する工程におけるエンドエフェクタ１２の先端部１２ａの所望の位置を示す。ここで、目標位置は、制御すべき先端部１２ａの三次元空間上の位置座標（ｘ、ｙ、ｚ）を示してもよい。さらに、目標位置は、先端部１２ａが目標位置に到達するような、各関節１４の関節角度（目標関節角度）を示してもよい。制御装置１００は、各関節１４を目標関節角度に制御することで、ロボット１０の先端部１２ａを、目標位置に制御することができる。
【００２６】
診断対象設定は、その工程がロボット１０の異常診断の対象であるか否かを示す。診断対象設定が「有」と設定された工程は、診断対象となる工程、つまり診断対象工程である。異常診断部１２４は、診断対象設定が「有」と設定された工程（診断対象工程）について測定された測定値を用いて、ロボット１０の異常診断を行う。詳しくは後述する。
【００２７】
「Ｉ／Ｏ信号」は、制御装置１００（又はロボット１０）が各工程において他の装置（制御装置１００及びロボット１０以外の装置）と通信を行うときに送受信される信号を示す。「Ｉ／Ｏ信号」に何らかの信号が設定されている場合、その工程では、ロボット１０は、他の装置（又は作業者）と連携して、又は他の装置（又は作業者）と協働して、作業を行う。一方、この「Ｉ／Ｏ信号」に何も設定されていない工程では、他の装置との通信が行われない。言い換えると、その工程では、診断対象となるロボット１０は、単独で動作を行う。
【００２８】
工程「２」に設定された「インターロック信号」は、例えば、他の装置（又は作業者）が何らかの動作を行ってその動作を終了させるまで、ロボット１０の動作を停止させるための信号である。工程「３」に設定された「溶接機通信」は、エンドエフェクタ１２に取り付けられた溶接機に、溶接を実行させるために入出力される信号を示す。工程「Ｍ」に設定された「完了信号」は、動作プログラム２００の工程が全て終了したことを、他の装置に通知するための信号である。
【００２９】
診断対象工程設定部１１４（設定手段）は、動作プログラム２００の複数の工程の中から少なくとも１つを、診断対象工程と設定する。ここで、診断対象工程設定部１１４は、要求精度が予め定められた値よりも高い工程を、診断対象工程と設定する。ここで、「予め定められた値」とは、例えば精度「１」である。したがって、要求精度が予め定められた値よりも高い工程とは、精度「０」である工程である。図３の例では、工程「Ｎ」の要求精度が、最も高い精度「０」である。したがって、診断対象工程設定部１１４は、工程「Ｎ」を、診断対象工程と設定する。
【００３０】
ロボット制御部１１６は、動作プログラム２００にしたがって、ロボット１０を制御する。具体的には、ロボット制御部１１６は、先端部１２ａの位置を各工程における目標位置に制御するように、ロボット１０に対して制御信号を送信する。例えば、制御信号は、各関節１４の目標関節角度であってもよい。各関節１４を駆動するモータは、その制御信号に応じて、各関節１４の関節角度を調整する。詳しくは後述する。また、ロボット制御部１１６は、後述する実際位置取得部１１８によって取得されたロボット１０の先端部１２ａの実際位置を用いてフィードバック制御を行ってもよい。
【００３１】
ここで、「ロボット制御部１１６は、先端部１２ａの位置を目標位置に制御する」と述べたが、上述したように、ロボット制御部１１６は、先端部１２ａの位置を厳密に目標位置に一致するように制御するわけではない。ロボット制御部１１６は、各工程における要求精度に対応する許容範囲内に先端部１２ａの実際位置が到達するように、ロボット１０を制御する。つまり、ロボット制御部１１６は、各工程においてロボット１０の先端部１２ａの位置と目標位置との差分が要求精度に関する許容範囲内に収まるように制御を行う。したがって、ロボット制御部１１６は、要求精度が高い工程ほど、先端部１２ａの実際位置が目標位置に近づくように、ロボット１０を制御する。
【００３２】
実際位置取得部１１８は、ロボット１０からの信号に応じて、先端部１２ａの実際位置を取得する。例えば、先端部１２ａの位置を測定するセンサが設けられている場合は、実際位置取得部１１８は、そのセンサからの信号を受信してもよい。また、各関節１４に関節１４の実際の関節角度を測定するエンコーダが設けられている場合は、実際位置取得部１１８は、そのエンコーダから信号を受信して、受信した信号から先端部１２ａの位置を算出してもよい。また、実際位置取得部１１８は、ロボット１０の各工程が終了する前は、フィードバック制御のために、取得された実際位置を示す情報をロボット制御部１１６に出力してもよい。一方、実際位置取得部１１８は、ロボット１０の各工程が終了したとき、先端部１２ａが到達した位置（到達位置）を示す情報を、測定値管理部１２２に出力する
【００３３】
作業時間測定部１２０（測定手段）は、診断対象工程と設定された工程についての作業時間（サイクルタイム）を測定する。具体的には、作業時間測定部１２０は、診断対象工程を含むサイクルタイムを測定する。さらに具体的には、作業時間測定部１２０は、診断対象工程の１つ前の工程が終了してから、診断対象工程が終了するまでの時間をサイクルタイム（工程サイクルタイム）として計測する。詳しくは後述する。作業時間測定部１２０は、測定された工程サイクルタイムを示す情報を、測定値管理部１２２に出力する。
【００３４】
測定値管理部１２２は、ロボット１０の診断対象工程における動作に伴って測定された測定値を管理する。具体的には、測定値管理部１２２は、工程サイクルタイムと、先端部１２ａの位置に関する値とを管理する。以下、図を用いて説明する。
【００３５】
図４は、実施の形態１にかかる測定値管理部１２２によって管理される内容を示す図である。測定値管理部１２２は、診断対象工程である工程「Ｎ」について、測定値である工程サイクルタイム、到達位置、目標位置、及び到達偏差量を管理する。さらに、測定値管理部１２２は、診断対象工程である工程「Ｎ」について、異常診断の基準値である工程サイクルタイム、到達位置、目標位置、及び到達偏差量を管理する。ここで、「基準値」とは、ロボット１０が正常である（理想的には劣化がない）ときの値である。また、「到達偏差量」は、工程における制御が終了した時点での到達位置と、目標位置との偏差量を示す。
【００３６】
図４に示すように、Ｔｓは、工程「Ｎ」における工程サイクルタイムの基準値を示し、Ｔは、工程サイクルタイムの測定値を示す。また、Ｐｔ＿Ｎは、工程「Ｎ」におけるロボット１０の先端部１２ａの目標位置を示し、Ｐは、ロボット１０の先端部１２ａの到達位置を示す。このとき、ロボット１０が完全に正常であるような理想状態では、ロボット１０の先端部１２ａは、目標位置に到達し得る。したがって、このときの到達偏差量は０である。一方、ロボット１０が使用されるにつれて、ロボット１０の減速機の劣化等により、ロボット１０の先端部１２ａを目標位置に完全に一致させるように制御することは困難となっていく。したがって、測定時では、目標位置Ｐｔ＿Ｎと到達位置Ｐとの間に、０でない到達偏差量ΔＰが存在する。なお、到達偏差量ΔＰは、工程「Ｎ」における要求精度に関する許容範囲内となっている。
【００３７】
異常診断部１２４（診断手段）は、診断対象工程についての測定値と基準値とを用いて、ロボット１０の異常診断を行う。具体的には、異常診断部１２４は、診断対象工程についてのサイクルタイムに応じて、ロボット１０の異常診断を行う。詳しくは後述する。そして、異常診断部１２４は、ロボット１０に異常が発生していると判断した場合には、警告出力部１２６に対して、警告を出力する旨の命令を出力する。
【００３８】
警告出力部１２６は、異常診断部１２４による異常診断に応じて、ロボット１０に異常が発生したことを示す警告を出力する。警告出力部１２６は、ロボット１０の異常の度合に応じて異なる警告を出力してもよい。警告は、ランプ等の視覚で検知できるものであってもよいし、警報音等の聴覚で検知できるものであってもよい。
【００３９】
次に、実施の形態１にかかる異常診断のメカニズムについて説明する。
図５は、ロボット１０の動作が診断対象工程の前の工程から診断対象工程に遷移する状態を示す図である。図５には、工程「Ｎ−１」から診断対象工程である工程「Ｎ」に工程が遷移する状態が例示されている。工程「Ｎ−１」においては、ロボット１０は、（Ａ）に例示するような位置（姿勢）に制御され、工程「Ｎ」においては、ロボット１０は、（Ｂ）に例示するような位置（姿勢）に制御される。このとき、工程「Ｎ−１」から工程「Ｎ」に工程が遷移すると、ロボット１０の先端部１２ａの位置は、矢印Ａで示すように、到達位置Ｐ＿Ｎ−１から到達位置Ｐ＿Ｎに移動する。ここで、到達位置Ｐ＿Ｎ−１は、目標位置Ｐｔ＿Ｎ−１を基準とした工程「Ｎ−１」における許容範囲内にある。つまり、到達位置Ｐ＿Ｎ−１と目標位置Ｐｔ＿Ｎ−１との差分は、工程「Ｎ−１」における許容範囲内である。同様に、到達位置Ｐ＿Ｎは、目標位置Ｐｔ＿Ｎを基準とした工程「Ｎ」における許容範囲内にある。つまり、到達位置Ｐ＿Ｎと目標位置Ｐｔ＿Ｎとの差分は、工程「Ｎ」における許容範囲内である。
【００４０】
ここで、到達位置Ｐ＿Ｎと目標位置Ｐｔ＿Ｎとの差分（到達偏差量ΔＰ）とは、例えば、到達位置Ｐ＿Ｎと目標位置Ｐｔ＿Ｎとの距離であってもよい。この場合、「許容範囲」とは、到達位置Ｐ＿Ｎと目標位置Ｐｔ＿Ｎとの距離の許容される最大値であってもよい。また、工程「Ｎ−１」における要求精度は「２」であり、工程「Ｎ」における要求精度は「０」である。したがって、図５に示すように、工程「Ｎ」における許容範囲は、工程「Ｎ−１」における許容範囲よりも小さい。したがって、工程「Ｎ」の方が、工程「Ｎ−１」よりも、ロボット１０の先端部１２ａの位置を、許容範囲内に到達させることは困難である。
【００４１】
図６は、ロボット１０の制御動作を説明するための図である。ロボット制御部１１６は、工程「Ｎ−１」の位置から工程「Ｎ」の位置にロボット１０の先端部１２ａを制御する過程で、ロボット制御周期Δｔごとに、段階的に制御を行う。つまり、ロボット制御部１１６は、工程「Ｎ−１」から工程「Ｎ」に遷移する過程で、一回で指令値を目標位置Ｐｔ＿Ｎとするのではなく、ロボット制御周期Δｔごとに、異なる指令値で段階的に制御を行う。ロボット制御周期Δｔが進むにつれて、指令値は目標位置Ｐｔ＿Ｎに近づくようになっている。ここで、ロボット制御周期Δｔは、ロボット１０の制御を行う周期であり、制御装置１００のＣＰＵ１０１の性能に応じて定められ得る。なお、ロボット制御周期Δｔごとの指令値は、動作プログラムに含まれていてもよい。
【００４２】
ここで、使用期間が進んだロボット１０は、減速機等の劣化に伴う負荷抵抗の増大によって、指令値通りに制御されなくなる傾向にある。したがって、ロボット制御周期Δｔの間にロボット１０が移動するとき、時刻ｔ＋Δｔにおいて、指令値ｐｔと実際値ｐとの間に偏差Δｐが生じることとなる。この偏差Δｐは、ロボット１０の劣化が進むにつれて大きくなる傾向にある。
【００４３】
図７は、ロボット１０の正常時と異常時とにおけるサイクルタイムの違いについて説明するための図である。図７には、工程「Ｎ−１」から工程「Ｎ」に工程が遷移する状態が例示されている。工程「Ｎ−１」において到達位置Ｐ＿Ｎ−１にロボット１０の先端部１２ａが移動して工程「Ｎ−１」における制御が終了した時点を時刻ｔとする。
【００４４】
正常時では、先端部１２ａは、時刻ｔ＋Δｔで位置ｐ１に移動し、時刻ｔ＋２Δｔで位置ｐ２に移動し、時刻ｔ＋３Δｔで位置ｐ３に移動する。この３回目のロボット制御周期Δｔのときに、先端部１２ａは、工程「Ｎ」の許容範囲内である位置Ｐ＿Ｎに到達する。したがって、正常時における工程「Ｎ」の工程サイクルタイムは、３Δｔである。
【００４５】
一方、異常時では、先端部１２ａは、時刻ｔ＋Δｔで位置ｐ１’に移動するが、位置ｐ１’と位置ｐ１との間には偏差が生じている。次に、先端部１２ａは、時刻ｔ＋２Δｔで位置ｐ２’に移動するが、位置ｐ２’と位置ｐ２との間には偏差が生じている。次に、先端部１２ａは、時刻ｔ＋３Δｔで位置ｐ３’に移動するが、位置ｐ３’と位置ｐ３との間には偏差が生じている。
【００４６】
ここで、この３回目のロボット制御周期Δｔのとき、先端部１２ａは、未だ、工程「Ｎ」の許容範囲内に到達しない。したがって、ロボット制御部１１６は、さらに次のロボット制御周期Δｔで、先端部１２ａが許容範囲内に到達するように、ロボット１０を制御する。そして、時刻ｔ＋４Δｔで、位置ｐ４’に移動する。この４回目のロボット制御周期Δｔのときに、先端部１２ａは、工程「Ｎ」の許容範囲内である位置Ｐ＿Ｎに到達する。したがって、異常時における工程「Ｎ」の工程サイクルタイムは、４Δｔである。
【００４７】
このように、工程「Ｎ」の要求精度は「０」と最大であるので、許容範囲は非常に小さい。したがって、ロボット制御部１１６が先端部１２ａの位置を許容範囲内に到達させるのは容易ではない。そして、異常が発生しているロボット１０であるほど、負荷抵抗の増大等によりロボット制御部１１６が先端部１２ａの位置を許容範囲内に到達させるように制御を行うのは容易ではなく、先端部１２ａの位置が許容範囲内に到達するまでに要する時間は長くなる。つまり、異常が発生したロボット１０による工程「Ｎ」にかかる工程サイクルタイムは、正常なロボット１０による工程「Ｎ」にかかる工程サイクルタイムよりも長くなる。このような、異常時における工程サイクルタイムの伸びを利用して、実施の形態１にかかる制御装置１００は、異常診断を行う。つまり、実施の形態１においては、診断対象工程についての物理量として、工程サイクルタイムが測定される。そして、実施の形態１にかかる制御装置１００は、測定された工程サイクルタイムと、工程サイクルタイムの基準値（正常時の工程サイクルタイム）との差分を用いて、ロボット１０の異常診断を行う。
【００４８】
なお、要求精度がそれほど高くない工程では、許容範囲はそれほど小さくないので、異常が発生したロボット１０であっても、ロボット制御部１１６が先端部１２ａの位置を許容範囲内に到達させるのは、それほど困難ではない。したがって、このような工程では、異常時と正常時とで工程サイクルタイムに違いが発生しにくくなる。つまり、このような工程では、異常が顕現化しない可能性がある。この場合、工程サイクルタイムを使用しても、異常を検出することができない可能性がある。一方、実施の形態１にかかる制御装置１００は、要求精度が高い工程におけるサイクルタイムを測定して異常診断を行うので、ロボット１０に異常が発生した場合、正常時と比較して工程サイクルタイムが伸びる可能性が高くなる。つまり、要求精度が高い工程では、異常が顕現化しやすい。したがって、実施の形態１にかかる制御装置１００は、ロボット１０の異常をより確実に検出することが可能となる。
【００４９】
つまり、要求精度が高い工程における測定値（サイクルタイム）は、要求精度が低い工程における測定値よりも、ロボット１０に異常が発生したときに異常を示しやすい。言い換えると、要求精度が高い工程では、測定値（サイクルタイム）は、ロボット１０に異常が発生したときと異常が発生していないときとで差異が生じやすい。したがって、実施の形態１にかかる制御装置１００は、要求精度が高い工程における測定値及び基準値を用いて異常診断を行うことで、ロボット１０の異常をより確実に検出することが可能となる。
【００５０】
図８は、実施の形態１にかかる制御装置１００によってなされる異常診断方法を示すフローチャートである。制御装置１００の動作プログラム格納部１１２は、動作プログラムを格納する（ステップＳ１０２）。制御装置１００の診断対象工程設定部１１４は、動作プログラムの複数の工程の中から、要求精度が予め定められた閾値Ｔｈ１よりも高い工程「Ｎ」を、診断対象工程と設定する（ステップＳ１０４）。
【００５１】
次に、制御装置１００のロボット制御部１１６は、動作プログラムに従ってロボット１０を制御する（ステップＳ１１０）。Ｓ１１０の処理については図９を用いて詳述する。次に、制御装置１００は、診断対象工程である工程「Ｎ」についての診断対象工程についての物理量を測定して得られた測定値に基づいて、異常診断を行う（ステップＳ２０）。Ｓ２０の処理については図１０を用いて詳述する。
【００５２】
図９は、図８に示したフローチャートにおけるロボット制御処理（Ｓ１１０）を示すフローチャートである。まず、ロボット制御部１１６は、制御対象の工程「Ｋ」を初期化する、つまり、Ｋ＝１とする（ステップＳ１１２）。次に、ロボット制御部１１６は、工程「Ｋ」の動作を開始して（ステップＳ１１４）、ロボット１０の先端部１２ａの位置が工程「Ｋ」の目標位置Ｐｔ＿Ｋに近づくように、ロボット１０を制御する（ステップＳ１１６）。
【００５３】
ロボット制御部１１６は、先端部１２ａの実際位置Ｐが工程「Ｋ」の許容範囲内に収束したか否かを判断する（ステップＳ１１８）。具体的には、ロボット制御部１１６は、実際位置Ｐと目標位置Ｐｔ＿Ｋとの差分が工程「Ｋ」の許容範囲内であるか否かを判断する。そして、先端部１２ａの実際位置Ｐが工程「Ｋ」の許容範囲内に収束していないと判断された場合（Ｓ１１８のＮＯ）、処理はＳ１１６に戻る。一方、先端部１２ａの実際位置Ｐが工程「Ｋ」の許容範囲内に収束していると判断された場合（Ｓ１１８のＹＥＳ）、ロボット制御部１１６は、工程「Ｋ」における制御を終了する（ステップＳ１２０）。
【００５４】
次に、ロボット制御部１１６は、動作プログラムにおける最後の工程が終了したか否か、つまりＫ＝Ｍであるか否かを判断する（ステップＳ１２２）。最後の工程が終了していないと判断された場合（Ｓ１２２のＮＯ）、ロボット制御部１１６は、Ｋを１つインクリメントして（ステップＳ１２４）、次の工程について、Ｓ１１４〜Ｓ１２２の処理を繰り返す。一方、最後の工程が終了した、つまりＫ＝Ｍであると判断された場合（Ｓ１２２のＹＥＳ）、ロボット制御部１１６は、動作プログラムにおけるロボット１０の制御を終了する（ステップＳ１２６）。
【００５５】
図１０は、図８に示したフローチャートにおける異常診断処理（Ｓ２０）を示すフローチャートである。まず、制御装置１００の作業時間測定部１２０は、診断対象工程である工程「Ｎ」の１つ前の工程「Ｎ−１」の終了時点から、工程「Ｎ」の終了時点までの工程サイクルタイムＴを測定する（ステップＳ２０２）。次に、制御装置１００の異常診断部１２４は、測定値管理部１２２から、基準となる工程サイクルタイムＴｓを取得する（ステップＳ２０４）。次に、制御装置１００の異常診断部１２４は、工程サイクルタイムの上昇率Ｒ［％］を算出する（ステップＳ２０６）。ここで、工程サイクルタイム上昇率Ｒは、以下の式で表される。
Ｒ＝（（Ｔ−Ｔｓ）／Ｔｓ）＊１００
【００５６】
次に、制御装置１００の異常診断部１２４は、工程サイクルタイム上昇率Ｒが予め定められた閾値Ａよりも大きいか否かを判断する（ステップＳ２０８）。工程サイクルタイム上昇率Ｒが閾値Ａ以下であると判断された場合（Ｓ２０８のＮＯ）、異常診断部１２４は、ロボット１０に異常が発生していないと判断する（ステップＳ２１０）。一方、工程サイクルタイム上昇率Ｒが閾値Ａよりも大きいと判断された場合（Ｓ２０８のＹＥＳ）、異常診断部１２４は、工程サイクルタイム上昇率Ｒが予め定められた閾値Ｂよりも小さいか否かを判断する（ステップＳ２１２）。ここで、Ｂ＞Ａである。
【００５７】
工程サイクルタイム上昇率Ｒが閾値Ｂよりも小さいと判断された場合（Ｓ２１２のＹＥＳ）、異常診断部１２４は、ロボット１０に軽度の異常が発生していると判断する（ステップＳ２１４）。このとき、警告出力部１２６は、軽度の警告を出力する（ステップＳ２１６）。例えば、警告出力部１２６は、黄色のランプを点灯させてもよい。一方、工程サイクルタイム上昇率Ｒが閾値Ｂ以上であると判断された場合（Ｓ２１２のＮＯ）、異常診断部１２４は、ロボット１０に重度の異常が発生していると判断する（ステップＳ２１８）。このとき、ロボット１０は、異常末期の状態であり、速やかに修理が必要な状態である。このとき、警告出力部１２６は、重度の警告を出力する（ステップＳ２２０）。例えば、警告出力部１２６は、赤色のランプを点灯させてもよい。
【００５８】
要求精度が高い診断対象工程において工程サイクルタイムを測定することで、ロボット１０に異常が発生した場合に、より確実に、工程サイクルタイム上昇率Ｒが大きくなる。したがって、実施の形態１にかかる制御装置１００は、より確実に、ロボット１０の異常を検出することが可能となる。
【００５９】
つまり、要求精度が高い工程における測定値（工程サイクルタイム及び工程サイクルタイム上昇率Ｒ）は、要求精度が低い工程における測定値よりも、ロボット１０に異常が発生したときに異常を示しやすい。言い換えると、要求精度が高い工程では、測定値（工程サイクルタイム及び工程サイクルタイム上昇率Ｒ）は、ロボット１０に異常が発生したときと異常が発生していないときとで差異が生じやすい。したがって、実施の形態１にかかる制御装置１００は、要求精度が高い工程における測定値を用いて異常診断を行うことで、ロボット１０の異常をより確実に検出することが可能となる。
【００６０】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、図８〜図１０に示したフローチャートの各ステップの順序は、適宜変更可能である。また、フローチャートの各ステップの１つ以上は、省略されてもよい。
【００６１】
例えば、図１０において、Ｓ２１０〜Ｓ２２０の処理は、省略されてもよい。そして、Ｓ２０８の判定がＹＥＳの場合に、警告を出力する処理を行ってもよい。また、図１０のＳ２０２の処理は、Ｓ１１０の処理の間に行われてもよい。つまり、サイクルタイムの測定は、診断対象工程が実行されてロボット１０が制御されているときに行われてもよい。
【００６２】
また、例えば、図８のＳ１０４の処理は、Ｓ１１０の処理の後で行われてもよい。この場合、ロボット１０の制御工程が全て終了した後でどの工程が診断対象工程であるかが設定されるので、各工程における工程サイクルタイムを全て測定しておく必要がある。一方、図８のように、ロボット１０の制御の前に診断対象工程を設定しておくことで、事前に設定された診断対象工程に関する工程サイクルタイムのみを測定するのみでよくなる。
【００６３】
また、上述した実施の形態においては、要求精度が高い工程のみにおけるサイクルタイム（工程サイクルタイム）を用いて異常診断を行うとしたが、このような構成に限られない。要求精度が高い工程だけでなく、例えばその工程の前後の１つ以上の工程におけるサイクルタイムを用いて異常診断を行ってもよい。例えば、図３の例では、工程「１」の開始から工程「Ｎ」の終了までの作業時間（サイクルタイム）を用いて、異常診断を行ってもよい。
【００６４】
一方、この場合、測定されるサイクルタイムには、ロボット１０が他の装置（又は作業者）と連携又は協働して動作する工程「２」及び工程「３」における作業時間が含まれる。工程「２」及び工程「３」における作業時間は、他の装置（又は作業者）にかかる作業の影響を受け得る。これにより、サイクルタイムが上昇したとしても、その上昇した原因が、診断対象のロボット１０の異常によるものではなく、他の装置（又は作業者）によるものである可能性がある。したがって、要求精度が高い工程のみにおけるサイクルタイム（工程サイクルタイム）、つまり、診断対象工程の前の工程の終了から診断対象工程が終了するまでの時間を測定して得られた測定値を用いて異常診断を行うことにより、測定されるサイクルタイムに対する他の装置等による影響を排除できる。したがって、さらに確実に、ロボット１０の異常を検出することが可能となる。
【００６５】
また、上述した実施の形態においては、工程サイクルタイム上昇率Ｒを用いて異常診断を行うとしたが、このような構成に限られない。例えば、Ｔ／Ｔｓの値が予め定められた閾値よりも大きくなったときに、異常と判断されるようにしてもよい。
【００６６】
また、上述した実施の形態においては、ロボット１０の制御対象の位置と目標位置との差分が許容範囲内に収まるまでの時間を含むサイクルタイムを測定することで異常診断を行うとしたが、このような構成に限られない。例えば、予め定められた制限時間内にロボット１０の制御対象の位置と目標位置との差分が許容範囲内に収まる確率を用いて、異常診断を行ってもよい。この場合、正常なロボット１０における確率は、異常が発生しているロボット１０における確率よりも高い。また、要求精度が高い工程における確率の方が、その傾向はより顕著となる。つまり、要求精度が低い工程では、正常なロボット１０における確率と異常が発生しているロボット１０における確率とであまり差がないことがあるが、要求精度が高い工程では、正常なロボット１０における確率と異常が発生しているロボット１０における確率とで差異が顕著となり得る。つまり、この例における制御装置１００も、要求精度が高い工程における測定値（異常が発生している可能性のあるロボット１０における確率）と基準値（正常なロボット１０における確率）とを用いて異常診断を行うことで、ロボット１０の異常をより確実に検出することが可能となる。
【００６７】
また、上述した実施の形態においては、サイクルタイム（工程サイクルタイム）を用いて異常診断を行うとしたが、このような構成に限られない。診断対象工程についての物理量として、サイクルタイムではなく、ロボット１０の異常に伴って変動し得る任意の物理量を用いて、異常診断を行ってもよい。
【００６８】
また、例えば、図４に示した到達偏差量ΔＰを用いて、異常診断を行ってもよい。具体的には、診断対象工程における許容範囲を±ΔＡとすると、異常診断部１２４は、到達偏差量上昇率Ｄ（＝（ΔＰ／ΔＡ）＊１００）［％］を算出する。そして、異常診断部１２４は、この到達偏差量上昇率Ｄが予め定められた閾値（基準値）よりも大きい場合に、ロボット１０に異常が発生していると判断してもよい。診断対象工程では許容範囲ΔＡは小さいので、到達偏差量ΔＰが小さくても、到達偏差量上昇率Ｄは大きくなり得る。そして、到達偏差量ΔＰは、ロボット１０に異常が発生している場合に、大きくなり得る。したがって、要求精度が高い工程における測定値として到達偏差量ΔＰを用いても、より確実に、ロボット１０の異常を検出することが可能となる。
【００６９】
つまり、この例においても、要求精度が高い工程における測定値（到達偏差量ΔＰ及び到達偏差量上昇率Ｄ）は、要求精度が低い工程における測定値よりも、ロボット１０に異常が発生したときに異常を示しやすい。言い換えると、要求精度が高い工程では、測定値（到達偏差量ΔＰ及び到達偏差量上昇率Ｄ）は、ロボット１０に異常が発生したときと異常が発生していないときとで差異が生じやすい。したがって、この例における制御装置１００も、要求精度が高い工程における測定値と基準値（予め定められた閾値）とを用いて異常診断を行うことで、ロボット１０の異常をより確実に検出することが可能となる。
【００７０】
一方、考慮しなくてもよい程度のわずかな異常がロボット１０に発生した場合であっても、到達偏差量上昇率Ｄが大きくなる可能性はある。一方、サイクルタイム（作業時間）は、ロボット１０の異常の度合が大きくなるにつれて長くなり得る。したがって、サイクルタイムを用いて異常診断を行うことにより、さらに確実に、ロボット１０の異常を検出することが可能となる。
【００７１】
また、上述した実施の形態においては、異常診断を行うための動作プログラムは、実際の実機ラインにおける作業に用いられるプログラム（ティーチングデータ）を用いるとしたが、このような構成に限られない。異常診断用のプログラムを別に準備して、そのプログラムを用いて異常診断を行ってもよい。しかしながら、実際の実機ラインにおける作業に用いられるプログラムにおいて要求精度が高い工程において異常診断を行うことで、異常診断用のプログラムを別に準備することが不要となる。また、実際の作業に用いられるプログラムに要求精度の高い工程が含まれていない場合は、意図的に要求精度の高い工程を動作プログラムに挿入してもよい。
【００７２】
また、上述した実施の形態においては、診断対象工程設定部１１４は、要求精度が高い工程「Ｎ」のみを診断対象工程と設定したが、このような構成に限られない。診断対象工程設定部１１４は、工程「Ｎ」の１つ前の工程「Ｎ−１」についても、サイクルタイムの開始を指定するための診断対象工程と設定してもよい。このように、工程「Ｎ−１」及び工程「Ｎ」が診断対象工程と設定されることで、作業時間測定部１２０は、工程「Ｎ−１」の終了時点を、サイクルタイムの測定開始時点であると、容易に判断することができる。
【００７３】
また、上述した実施の形態においては、診断対象工程設定部１１４は、要求精度が高い１つの工程「Ｎ」のみを診断対象工程と設定したが、このような構成に限られない。要求精度が高い工程（精度「０」の工程）が複数ある場合は、診断対象工程設定部１１４は、要求精度が高い複数の工程を診断対象工程と設定してもよい。この場合、複数の診断対象工程について、異常診断が行われる。この場合、複数の異常診断のうち少なくとも１つにおいて異常と判断された場合に警告が出力されてもよいし、複数の異常診断の全てが異常と判断された場合に警告が出力されてもよい。さらに、複数の異常診断において異常と判断されたものの個数に応じて異なる警告が出力されてもよい。
【００７４】
また、上述した実施の形態において、制御装置１００は、ロボット１０の制御対象（例えばロボット１０の先端部１２ａ）の「位置」を制御するとし、「目標位置」は、制御対象である先端部１２ａの三次元空間上の位置座標であるとしたが、このような構成に限られない。ロボット１０の制御対象の「位置」を制御するとは、ロボット１０の制御対象の位置が三次元空間上の所望の位置に移動させるようにロボット１０を制御することだけでなく、その制御対象の位置にかかる箇所の姿勢が所望の姿勢となるようにロボット１０を制御することを含み得る。したがって、「位置」とは、三次元空間上の位置座標（ｘ、ｙ、ｚ）だけでなく、姿勢（向き）（ロール、ピッチ、ヨー）も含み得る。さらに、「目標位置」とは、三次元空間上の所望の位置座標だけでなく、所望の姿勢（向き）も含み得る。また、この場合、目標位置と実際位置との差分は、位置座標における差分と姿勢における差分とで分けて考慮されてもよい。そして、制御装置１００は、両方の差分がそれぞれの許容範囲に収まるように、ロボット１０を制御するようにしてもよい。
【００７５】
また、上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７６】
１  ロボット制御システム、１０  ロボット、１２ａ  先端部、１４  関節、１００  制御装置、１１２  動作プログラム格納部、１１４  診断対象工程設定部、１１６  ロボット制御部、１１８  実際位置取得部、１２０  作業時間測定部、１２２  測定値管理部、１２４  異常診断部、１２６  警告出力部、２００  動作プログラム
【図１】
0006544291.tif 000002
【図２】
0006544291.tif 000003
【図３】
0006544291.tif 000004
【図４】
0006544291.tif 000005
【図５】
0006544291.tif 000006
【図６】
0006544291.tif 000007
【図７】
0006544291.tif 000008
【図８】
0006544291.tif 000009
【図９】
0006544291.tif 000010
【図１０】
0006544291.tif 000011