(57)【要約】【課題】  ロボット装置の関節、特にその駆動系のロストモーションを容易かつ正確に測定できるようにし、それに基づき、ロボット装置の関節機構の寿命、或いは余命を容易かつ正確に診断できるようにする。【解決手段】ロボットアーム（１０１）の関節をサーボモータ１、および減速機１１の駆動系によって駆動する。減速機１１の入力側、および出力側の回転軸の回転角度を入力側エンコーダ１０、出力側エンコーダ１６によって測定する。回転駆動源を回転させて、減速機１１を介して関節を駆動し、両エンコーダ（１０、１６）の出力値を取得する。その関節の駆動期間における両エンコーダ（１０、１６）の出力値に基づき、減速機１１のロストモーション値を測定する。また、測定したロストモーション値に基づき、ロボットアームの関節、特に減速機１１の寿命を判定する。【選択図】  図４
2017019080.tif 000002
【特許請求の範囲】
【請求項１】
回転駆動源と、前記回転駆動源により駆動される変速機と、前記変速機の入力側の回転軸の回転角度を測定する第１の角度センサと、前記変速機の出力側の回転軸の回転角度を測定する第２の角度センサと、を備えた関節により位置姿勢を制御されるロボット装置の測定方法において、
制御装置が、前記回転駆動源を回転させて、前記変速機を介して前記関節を駆動し、前記第１および第２の角度センサの出力値を取得する角度取得工程と、
前記制御装置が、前記角度取得工程における前記関節の駆動期間における前記第１および第２の角度センサの出力値に基づき、前記変速機のロストモーションの大きさを算出するロストモーション算出工程と、
を備えたことを特徴とするロボット装置の測定方法。
【請求項２】
請求項１に記載のロボット装置の測定方法において、制御装置が、前記角度取得工程において前記関節を駆動して前記第１および第２の角度センサの出力値を取得するに先立ち、前記角度取得工程における駆動方向とは逆方向に前記関節を駆動して、前記関節に前記変速機のロストモーションを片寄せする片寄せ予備動作を行わせることを特徴とするロボット装置の測定方法。
【請求項３】
請求項１または２に記載のロボット装置の測定方法において、前記制御装置は、前記角度取得工程において、想定される前記変速機のロストモーションの角度よりも大きい回転角度、前記関節を駆動する工程を含むことを特徴とするロボット装置の測定方法。
【請求項４】
請求項１から３のいずれか１項に記載のロボット装置の測定方法において、前記制御装置は、前記角度取得工程において、前記関節を駆動する時、前記関節により駆動される被駆動部位の質量により前記関節に作用する重力モーメントが前記関節の駆動抵抗よりも小さくなる位置姿勢に前記ロボット装置を制御する姿勢制御工程を含み、前記姿勢制御工程によって制御された前記ロボット装置の位置姿勢において前記第１および第２の角度センサの出力値を取得することを特徴とするロボット装置の測定方法。
【請求項５】
請求項４に記載のロボット装置の測定方法において、前記制御装置は、前記被駆動部位の任意の位置姿勢において前記回転駆動源の駆動を停止させ、当該の駆動停止の前後で前記第１および第２の角度センサの出力が変化していない場合に、当該の前記被駆動部位の位置姿勢が、前記重力モーメントが前記関節の駆動抵抗よりも小さくなる位置姿勢であると判定することを特徴とするロボット装置の測定方法。
【請求項６】
請求項４または５に記載のロボット装置の測定方法において、前記制御装置は、前記姿勢制御工程において、前記被駆動部位の位置姿勢を、前記被駆動部位の質量により前記関節に作用する重力モーメントがほぼ一定となるよう制御することを特徴とするロボット装置の測定方法。
【請求項７】
請求項４から６のいずれか１項に記載のロボット装置の測定方法において、前記制御装置は、前記姿勢制御工程において、前記被駆動部位の位置姿勢を、前記被駆動部位の重心が前記関節の関節軸を通る鉛直軸にほぼ一致するよう制御することを特徴とするロボット装置の測定方法。
【請求項８】
請求項７に記載のロボット装置の測定方法において、前記制御装置が、ロボット装置の基台に配置された重力センサを用いて前記基台の鉛直軸に対する設置姿勢を検出し、検出した前記基台の鉛直軸に対する設置姿勢に基づき、前記被駆動部位の位置姿勢を、前記被駆動部位の重心が前記関節の関節軸を通る鉛直軸にほぼ一致するよう制御することを特徴とするロボット装置の測定方法。
【請求項９】
請求項１に記載のロボット装置の測定方法において、前記制御装置は、前記角度取得工程において、前記関節により駆動される被駆動部位の質量により前記関節に作用する重力モーメントの方向とは逆方向に前記関節が一定角度、動作するオーバーシュート区間を生成するよう前記回転駆動源の駆動方向を制御し、前記オーバーシュート区間において前記第１および第２の角度センサの出力値を取得することを特徴とするロボット装置の測定方法。
【請求項１０】
前記制御装置は、前記関節により駆動される被駆動部位の質量により前記関節に重力モーメントが作用する測定条件において、請求項４または９のいずれかに記載の前記角度取得工程によって前記第１および第２の角度センサの出力値を取得することを特徴とするロボット装置の測定方法。
【請求項１１】
前記制御装置が、請求項１から１０のいずれか１項に記載のロボット装置の測定方法によって算出したロストモーションをユーザに通知することを特徴とするロボット装置の測定方法。
【請求項１２】
前記制御装置が、請求項１から１１のいずれか１項に記載のロボット装置の測定方法によってロストモーションを算出するロストモーション測定工程を前記ロボット装置の検査モードにおいて実行することを特徴とするロボット装置の測定方法。
【請求項１３】
請求項１から１２のいずれか１項に記載のロボット装置の測定方法において、前記制御装置が、所定のロボットプログラムに基づき前記ロボット装置を動作させる実工程において前記関節について前記角度取得工程を実行可能な関節駆動期間を予め特定し、この前記実工程においては、予め特定した関節駆動期間において前記第１および第２の角度センサの出力値を取得することを特徴とするロボット装置の測定方法。
【請求項１４】
前記制御装置が、請求項１から１３のいずれか１項に記載のロボット装置の測定方法によって算出したロストモーションと、予め定められたしきい値を比較し、その比較結果に基づき前記変速機の寿命を診断することを特徴とするロボット装置の診断方法。
【請求項１５】
前記制御装置が、請求項１から１４のいずれか１項に記載のロボット装置の測定方法において算出した過去に測定したロストモーションに基づき、前記ロボット装置の余命を予測する工程を含むことを特徴とするロボット装置の診断方法。
【請求項１６】
前記制御装置に、請求項１から１４のいずれか１項に記載の各工程を実行させるためのロボット装置の制御プログラム。
【請求項１７】
請求項１６に記載のロボット装置の制御プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１から１５のいずれか１項に記載の前記ロボット装置および前記制御装置を備えたことを特徴とするロボットシステム。
【請求項１９】
請求項１８に記載のロボットシステムを用いて物品を製造することを特徴とする物品の製造方法。
【請求項２０】
回転駆動源と、前記回転駆動源により駆動される変速機と、前記変速機の入力側の回転軸の回転角度を測定する第１の角度センサと、前記変速機の出力側の回転軸の回転角度を測定する第２の角度センサと、を備えた回転駆動装置の測定方法において、
制御装置が、前記回転駆動源を回転させて、前記変速機を駆動し、前記第１および第２の角度センサの出力値を取得する角度取得工程と、
前記制御装置が、前記角度取得工程における前記変速機の駆動期間における前記第１および第２の角度センサの出力値に基づき、前記変速機のロストモーションの大きさを算出するロストモーション算出工程と、
を備えたことを特徴とする回転駆動装置の測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置の測定方法、および回転駆動装置の測定方法に関する。
【背景技術】
【０００２】
従来、工業製品などの物品の生産現場などにおいて、様々なロボット装置が使用されており、近年では、より複雑な動作を行える多軸多関節のロボットアームを備えたロボット装置ないしロボットシステムが普及しつつある。例えば、その一例として、ロボット装置を複数組み合わせて成る、いわゆるロボットセルを用いて工業製品などの物品を製造する生産ラインが知られている。
【０００３】
この種の工業用に用いられるロボット装置のロボットアームの構成は、リンクと関節の構造によって、垂直多関節構成、水平多関節構成などのように分類されることがある。しかしながら、いずれのアーム構成においても、関節の基本的構造は、いずれも類似しており、変速機（多くの場合減速機）を介して回転駆動源の出力を被駆動側のリンクの回転軸に伝達する構成が用いられる。
【０００４】
特にロボットセル構成の生産ラインでは、ラインを構成するロボット装置の１台が寿命となれば製造工程を中止して、速やかに当該のロボット装置を交換するなどの措置を講じる必要がある。一般に、ロボットアームの寿命は、関節に用いられている変速機（多くの場合、減速機）の寿命によって支配される。
【０００５】
このため、ロボット装置を用いた物品の生産システムでは、ロボットアームの変速機（減速機）の寿命を正確に診断する手段が望まれている。例えば、変速機の余命が推定できれば、関節のアセンブリ交換や、新品やオーバーホール済みのロボットアームへの換装などの予防的な措置を生産スケジュールに組み込むことができる、と考えられる。これにより、ロボットアームの突然の故障（寿命到来）によって生産ラインが停止するのを防止できる。
【０００６】
以上に鑑み、近年、ロボットアームの寿命診断に対する種々の技術が提案されている。例えば、各関節を形成するギアの摩耗量を測定し、その摩耗量を先端位置のガタの量に換算して寿命判定を行う技術が提案されている（例えば下記の特許文献１）。また、機械端エンコーダとモータエンコーダを用いて、回転駆動系のロストモーション（駆動部のガタやヒステリシス）を検出、補正する技術が提案されている（例えば下記の特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３０８９９１５号公報
【特許文献２】特開２００１−１６６８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術でギアの摩耗量を測定するには、ロボットアームを停止させてロボットアーム外部からギアの摩耗量を測定する必要があり、その測定時間のため製造の中断時間が長くなる傾向がある。また、場合によってはロボットアームを分解する必要があり、さらに多くの作業時間が必要になる、という問題がある。
【０００９】
また、特許文献２は、ラック＆ピニオンのような駆動系の出力端と入力端のエンコーダ（機械端エンコーダとモータエンコーダ）を用いて、ロストモーションを測定する構成を開示している。基本的には、同様の測定方式は、垂直多関節（多軸）のロボットアームの関節の回転駆動系にも応用できると考えられる。ところが、多軸多関節のロボットアームでは、例えばアームの姿勢に応じて、測定対象の関節（の回転駆動系）に関する力学的条件が様々に変化する可能性があり、測定結果に影響を与える可能性がある。このため、特許文献２の測定方式を単純に実施しただけでは、信頼性および精度の高いロストモーション測定を行うのは難しい。
【００１０】
本発明の課題は、ロボット装置の関節、特にその駆動系のロストモーションを容易かつ正確に測定できるようにし、それに基づき、ロボット装置の関節機構の寿命、或いは余命を容易かつ正確に診断できるようにすることにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明においては、回転駆動源と、前記回転駆動源により駆動される変速機と、前記変速機の入力側の回転軸の回転角度を測定する第１の角度センサと、前記変速機の出力側の回転軸の回転角度を測定する第２の角度センサと、を備えた関節により位置姿勢を制御されるロボット装置の測定方法において、制御装置が、前記回転駆動源を回転させて、前記変速機を介して前記関節を駆動し、前記第１および第２の角度センサの出力値を取得する角度取得工程と、前記制御装置が、前記角度取得工程における前記関節の駆動期間における前記第１および第２の角度センサの出力値に基づき、前記変速機のロストモーションの大きさを算出するロストモーション算出工程と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ロボット装置の関節の駆動系に配置された変速機の入力側および出力側の回転軸の回転角度を測定する第１および第２の角度センサの出力値に基づき、変速機のロストモーション値を測定することができる。そして、測定したロストモーション値に基づき、ロボット装置の関節機構の寿命、或いは余命を容易かつ正確に診断することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例１に係るロボット装置を模式的に示した斜視図である。
【図２】図１のロボットアームの関節の構造を示した断面図である。
【図３】実施例１に係るロボット装置の制御装置の構成を示したブロック図である。
【図４】実施例１に係るロボット装置の制御系を示した機能ブロック図である。
【図５】実施例１の関節の角度関係を示した説明図である。
【図６】実施例１のロストモーションの測定制御を示したフローチャート図である。
【図７】実施例１におけるロストモーション測定データを示したグラフ図である。
【図８】実施例１の処理を示す寿命診断処理を示したフローチャート図である。
【図９】ロボットアームに作用する重力モーメントを示した説明図である。
【図１０】図９の重力モーメント釣り合いを示した説明図である。
【図１１】（ａ）、（ｂ）はそれぞれ実施例２におけるロストモーション測定時のロボットアームの異なる姿勢を示した説明図である。
【図１２】（ａ）は図１１のモーメント釣り合いを示した説明図、（ｂ）は実施例２のロストモーションの測定制御を示したフローチャート図である。
【図１３】実施例３の測定対象の関節の駆動角度を示した説明図である。
【図１４】実施例３の制御を示したフローチャート図である。
【図１５】実施例４のロストモーションの測定制御を示したフローチャート図である。
【図１６】実施例５のロストモーションの測定制御を示したフローチャート図である。
【図１７】実施例６のロボットアームの運転時間とロストモーションの関係を示した説明図である。
【発明を実施するための形態】
【００１４】
以下、添付図面に示すいくつかの実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１５】
下記の各実施例に係るロボットシステムは、例えば物品（工業製品）を製造する現場において組み立てや加工作業などを行うロボット装置を含む。このロボット装置のロボットアームは、例えば多関節アームであって、その関節には回転駆動源（例えばモータ）と、変速機（例えば減速機）が含まれる。下記の各実施例に係るロボット装置では、関節の変速機（減速機）のロストモーションを測定し、またその測定値に基づき、関節、特にその変速機（減速機）寿命診断や余命推定を行う。
【００１６】
また、この種のロボットアームの関節の変速機として用いられる多くの減速機には歯車機構が利用されている。一般に歯車（ギア）を利用した減速機では、運転（稼動）時間が増えると、歯車が摩耗してロストモーション（バックラッシュ、ガタ）が増える。
【００１７】
また、ロボット装置の関節に設けられる減速機には、例えば、部品点数が少なく、小型軽量で、大きな減速比が取れる波動歯車機構がよく利用される。波動歯車機構では弾性歯車が用いられるため、バックラッシュのようなガタは比較的小さく抑えられるが、入力軸と出力軸の間の位置（角度）制御にはヒステリシス特性があり、このヒステリシスもガタの一種と考えることができる。本明細書のロストモーション測定方式によれば、このようなヒステリシスも含んでロストモーションが検出される。
【００１８】
特に、歯車機構を利用する変速機（減速機）では、運転時間に従って、歯車の形が摩耗により変形し、所期の噛合状態を得られなくなる可能性がある。また、変速機（減速機）のロストモーションは、例えばロボットアームの関節の位置（角度）または姿勢制御の精度に大きく影響する。従って、ロボットアームの関節の変速機（減速機）のロストモーションを測定できれば、予め定めておいたロストモーションの許容範囲との比較によって、その関節（特に変速機）の寿命診断や余命予測が可能となる。
【００１９】
一般に、機械部品の「寿命」とは、実装初期状態から使用に適さない状態になるまでの時間の長さ、または、当該の部品が使用に適さない状態になること（いわゆる故障状態）それ自体をいう。変速機の場合は、例えばロストモーションが増え、アーム先端精度の劣化や噛み合い劣化による効率低下などによって性能が低下し、これにより寿命（の長さ）が決まる。また、現時点からの（現時点で予測された）寿命のことを特に「余命」ということがある。
【００２０】
以下の実施例では、ロボットアームの関節に配置したロータリーエンコーダ（角度センサ：以下、単に「エンコーダ」と略記する）を利用して、当該関節の変速機（多くは減速機）のロストモーションを測定する。この測定したロストモーションに基づき、前記変速機の寿命診断を行うことができる。例えば、測定したロストモーションが、予め定めた（通常使用可能状態に対応する）許容範囲内に収まっているか否かに応じて、寿命診断を行う。
【００２１】
以下、実施例１〜５により、本発明の実施形態に係るロボット装置について具体的に説明する。
【実施例１】
【００２２】
本発明の実施例１に係るロボット装置５００について、図１から図８を参照しながら説明する。まず、実施例１に係るロボット装置５００の全体構成について、図１から図３を参照しながら説明する。図１は本発明の実施例１に係るロボット装置５００を模式的に示している。図２は図１のロボットアーム１００の関節の１つの断面構造を示している。また、図３は、本実施例に係るロボット装置５００の制御装置２００の構成を示している。
【００２３】
図１に示すように、ロボット装置５００は、ワークＷの組立てを行うロボットアーム１００と、ロボットアーム１００を制御する制御装置２００と、操作端末としてのティーチングペンダント３００と、を備えている。
【００２４】
ロボットアーム１００は、例えば６軸多関節のロボットアーム１０１と、ロボットアーム１０１の先端に接続されたハンド（エンドエフェクタ）１０２と、ハンド１０２に作用する力等を検出可能な不図示の力センサと、を備えている。ロボットアーム１０１は、作業台に固定される基台１０１ａ上に、変位や力を伝達する複数のリンク１２１〜１２６と、各リンク１２１〜１２６を旋回又は回転可能に連結する複数の関節１１１〜１１６と、を備えている。
【００２５】
ここで、複数の関節１１１〜１１６の基本構成は同じであるものとし、本実施例ではリンク１２１とリンク１２２との間の関節１１２を説明することにより、他の関節１１１，１１３〜１１６の説明は省略する。下記の測定制御は、ロボットアーム１０１の複数の関節１１１〜１１６のうちの少なくとも１カ所に関節１１２（図２）と同じ構成の関節が設けられていれば実施できる。
【００２６】
ロボットアーム１０１の関節１１２は、例えば図２に断面構造を示すような構成を有する。図２において、関節１１２は、サーボモータ（モータ）１、サーボモータ１の回転角度（入力側回転角度）を検出するための入力側エンコーダ１０（第１の角度センサ）、およびサーボモータ１の出力を減速する減速機１１と、を備えている。さらに、減速機１１の出力側には、リンク１２２の駆動軸（同減速機の出力軸）の回転角度（出力側回転角度）を検出する出力側エンコーダ１６が設けられている。
【００２７】
回転駆動源としてのサーボモータ１は、例えばブラシレスＤＣモータやＡＣサーボモータなどの電磁モータから構成される。このサーボモータ１は、回転軸２とロータマグネット３とで構成された回転部４と、モータハウジング５と、回転軸２を回転自在に支持する軸受６，７と、回転部４を回転させるステータコイル８と、を備えている。軸受６，７はモータハウジング５によって支持され、ステータコイル８はモータハウジング５に取り付けられている。また、サーボモータ１はモータカバー９で囲われている。
【００２８】
入力側エンコーダ１０（入力側角度検出手段）は、サーボモータ１の回転軸２の一端に配置されており、サーボモータ１の回転軸２の回転に伴って入力側パルス信号を生成し、制御装置２００に生成した入力側パルス信号を出力する。なお、サーボモータ１と入力側エンコーダ１０との間には、必要に応じて、電源ＯＦＦ時にロボットアーム１０１の姿勢を保持する等ためのブレーキユニットを設けることができる。
【００２９】
減速機１１は、入力部であるウェブジェネレータ１２と、出力部であるサーキュラスプライン１３と、ウェブジェネレータ１２とサーキュラスプライン１３との間に配置されたフレックススプライン１４と、を備えている。ウェブジェネレータ１２は、サーボモータ１の回転軸２の上記入力側エンコーダ１０が設けられているのとは反対側の他端に接続されている。
【００３０】
フレックススプライン１４は、リンク１２１に固定され、一方、サーキュラスプライン１３は、リンク１２２（被駆動部位）と結合され、リンク１２２の回動角度を決定する。つまり、サーボモータ１の回転軸２とウェブジェネレータ１２との結合部が、減速機１１の入力側となり、フレックススプライン１４とリンク１２２との結合部が減速機１１の出力側となる。そして、サーボモータ１の回転数は、減速機１１により１／Ｎに減速（減速比Ｎで減速）され、リンク１２１とリンク１２２とが相対的に回転する。このときの減速機１１の出力側の回転角度が、実出力角度、即ち関節１１２の角度となる。
【００３１】
出力側エンコーダ（第２の角度センサ）１６は、減速機１１の出力側に配置され、リンク１２１とリンク１２２との相対角度を検出する。具体的には、出力側エンコーダ１６は、関節１１２の駆動（リンク１２１とリンク１２２との相対移動）に伴って出力側パルス信号を生成し、制御装置２００に対して生成した出力側パルス信号を出力する。なお、入力側エンコーダ１０および出力側エンコーダ１６は、一般的なロータリーエンコーダと同様に、光学式或いは磁気式ロータリーエンコーダとして構成することができる。さらに、リンク１２１とリンク１２２との間には、クロスローラベアリング１５が設けられており、リンク１２１とリンク１２２とは、クロスローラベアリング１５を介して回転可能に結合されている。
【００３２】
再び図１において、ハンド１０２は、ワークＷを把持可能な複数のフィンガと、複数のフィンガを駆動する不図示のアクチュエータと、を備えており、複数のフィンガを駆動することでワークＷを把持することができる。ハンド１０２には不図示の力センサが設けられる。この力センサは、ハンド１０２が複数のフィンガでワークＷを把持する際等にハンド１０２に作用する力やモーメントを検出するのに用いられる。
【００３３】
ロボットアーム１０１は、工場などの生産現場に設置され、例えば各種の工業製品などの物品の加工や組み立てに利用することができる。その場合、ワークＷは、例えばロボットアーム１０１により組み立てられる物品１０３に装着される部品の１つである。本実施例、あるいは他の実施例において例示するロストモーション測定手法を利用して、ロボットアーム１０１、特にその関節や減速機の寿命を管理することにより、ロボットアーム１０１の姿勢制御を高精度に実施できる。このため、物品生産の現場において、ロボットアーム１０１を用いて高精度で信頼性の高い物品（各種の工業製品）の加工や組み立てを行うことができ、良品を歩留まりよく生産することができる。
【００３４】
図１のロボット装置５００の制御装置２００は例えば図３に示すように構成することができる。図３に示した制御装置２００は、ＣＰＵ（演算部）２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（記憶部）２０４と、記録ディスクドライブ２０５と、各種のインターフェース２１１〜２１５と、を備えている。
【００３５】
ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５および各種のインターフェース２１１〜２１５が、バス２１６を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果を一時的に記憶する記憶装置である。
【００３６】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果である各種のデータ等を記憶する記憶部であると共に、ＣＰＵ２０１に、各種演算処理を実行させるためのプログラム（例えば、後述する減速機状態監視処理）３３０を記録する。ＣＰＵ２０１は、例えばＨＤＤ２０４に記録（格納）されたプログラム３３０に基づいて各種演算処理を実行する。記録ディスクドライブ２０５は、記録ディスク３３１に記録された各種データやプログラム等を読み出すことができる。
【００３７】
インターフェース２１１には、ロボットアーム１０１の教示などに用いられるロボット操作装置として、ユーザが操作可能なティーチングペンダント３００が接続されている。ティーチングペンダント３００には、例えばＬＣＤパネルなどによる表示装置やキーボードなどから成るユーザーインターフェースが配置される。このユーザーインターフェースは、ジョグ操作によってロボットアーム１０１の各関節の角度を指定したり、あるいはロボットアーム１０１の基準点が取るべき位置姿勢（教示点）を指定するために用いられる。
【００３８】
ティーチングペンダント３００は、上記のユーザーインターフェースを介して行われた入力操作に応じた制御量、例えば、入力された各関節１１１〜１１６の目標関節角度をインターフェース２１１およびバス２１６を介してＣＰＵ２０１に出力する。また、インターフェース２１２ａ，２１２ｂには、上記の入力側エンコーダ１０および出力側エンコーダ１６が接続されている。入力側エンコーダ１０および出力側エンコーダ１６は、前述したパルス信号をインターフェース２１２ａ，２１２ｂおよびバス２１６を介してＣＰＵ２０１に出力する。さらに、インターフェース２１３，２１４には、各種画像が表示されるモニタ３１１や書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３１２を接続する。
【００３９】
また、インターフェース２１５にはサーボ制御装置３１３が接続されている。ＣＰＵ２０１は、サーボモータ１の回転軸２の回転角度の制御量を示す駆動指令のデータを所定間隔でバス２１６およびインターフェース２１５を介してサーボ制御装置３１３に出力することができる。サーボ制御装置３１３は、ＣＰＵ２０１から入力を受けた駆動指令に基づき、サーボモータ１への電流の出力量を演算し、サーボモータ１へ電流を供給して、ロボットアーム１０１の関節１１１〜１１６の関節角度制御を行う。即ち、ＣＰＵ２０１は、サーボ制御装置３１３を介して、関節１１１〜１１６の角度が目標関節角度となるように、サーボモータ１による関節１１１〜１１６の駆動を制御する。
【００４０】
また、本実施例１のロストモーション測定では必須ではないが、ロボットアーム１０１には重力センサ２１７を設けることができる。重力センサ２１７は、例えばピエゾ抵抗型、静電容量型その他の検出方式による加速度センサデバイスなどから構成することができる。重力センサ２１７は、例えば基台１０１ａの水平面（ないし鉛直軸）に対する設置姿勢を検出できるよう、基台１０１ａ内に配置する。
【００４１】
重力センサ２１７の出力は、後述の実施例２において、例えば、関節１１２によって駆動される手先側の被駆動部位の重心がその関節軸を通る鉛直軸ｇに一致するような姿勢を保つように制御する場合の基準として利用することができる。
【００４２】
ここで、図４を参照して、後述する減速機状態監視処理のために必要なＣＰＵ２０１およびＨＤＤ２０４廻りのハードウェアにより実現される機能について説明する。
【００４３】
図４は、実施例１に係るロボット装置５００の制御系を示す機能ブロック図である。図４に示すように、この制御系は、理論出力角演算部４０１、実出力角演算部４０２、ロストモーション演算部４０３、ロストモーション比較診断部４０４と許容ロストモーション記憶部４０５、および診断動作記憶部４０６を備えている。
【００４４】
理論出力角演算部４０１は、入力側エンコーダ１０から受けた入力側パルス信号をカウントして入力側回転角度θｍを求め、減速比Ｎを用いて出力側の角度に換算した理論出力角θｔ（＝θｍ÷Ｎ）を演算する。実出力角演算部４０２は、出力側エンコーダ１６から受けた出力側パルス信号をカウントし、実出力角（出力側回転角度）θｒを演算する。
【００４５】
本実施例では、理論出力角演算部４０１および実出力角演算部４０２から得られる理論出力角θｔと、実出力角θｒの差を、ロストモーション（Δθ）と考える。図４の構成では、ロストモーション演算部４０３は、理論出力角演算部４０１の演算結果と、実出力角演算部４０２の演算結果の差（θｒ−θｔ）から関節（例えば１１２）のロストモーションΔθを演算する。このロストモーションΔθを求める測定制御については、後で図６を用いて詳しく説明する。
【００４６】
減速機１１もサーキュラスプラインとフレックススプライン等が主な要因でロストモーションが発生する。ロボットアーム、即ち、波動歯車減速機の運転に伴い、サーキュラスプラインとフレックススプラインの歯面が摩耗する。この歯面の摩耗により、ロストモーションが増加する。また、波動歯車減速機に限らず、歯車減速機の寿命は一般に歯面の摩耗量で診断できる。以上のことから、減速機のロストモーションを検出すれば、歯面の摩耗量が推定でき、寿命診断が可能となる。
【００４７】
このため、許容ロストモーション記憶部４０５には、予め求めたロストモーションの許容値を記憶しておく。許容ロストモーション記憶部４０５に記憶させておくロストモーションの許容値は、使用する減速機のカタログ値などに基づき定めることができる。例えば、波動歯車減速機のメーカーカタログにおいては、例えば角度表現でヒステリシスロスの値が記載されていることがある。また、本実施例においては、ヒステリシスロスをロストモーションの許容値としても良い。また、組付けや搬送などの作業において、ロストモーション増加によってロボット先端精度が悪化し、作業の支障となるようなロストモーション値を求めて、その値を許容ロストモーションの閾値としても良い。
【００４８】
ロストモーション比較診断部４０４は、ロストモーション演算部４０３が算出したロストモーションΔθと、許容ロストモーション記憶部４０５に格納している許容ロストモーションを比較する。そして、ロストモーションΔθが許容ロストモーションを超える場合、ロストモーション比較診断部４０４は、当該の関節、特にその減速機の寿命が尽きている、と診断する。
【００４９】
一方、ロストモーションΔθが許容値以下の場合は、当該の関節、特にその減速機が通常使用可能であると診断する。減速機１１が寿命に達したと診断した場合、ロストモーション比較診断部４０４は、モニタ３１１へ寿命に達したことを示す警告を表示する。動作記憶部４０６には寿命に必要な一連の動作（図６で説明の動作）や姿勢を記憶する。
【００５０】
次に、図５と図６を参照し、ロストモーションの測定手法の一例につき、説明する。ここでは、ロストモーションの最も単純かつ基本的な測定モデルを示すために、図１の関節１１１のロストモーションの測定方法を説明する。
【００５１】
ここで、図１のロボットアーム１０１の関節１１１は、アームの基台１０１ａ上でリンク１２１を回転支持する。図１のようなロボットアーム１０１は、基台１０１ａを水平な床面などに固定し、設置され、関節１１１の回転（関節）軸は、鉛直方向にほぼ一致することになる。
【００５２】
上述の通り、ロストモーションは、関節（の減速機）の回転位置（角度）の制御誤差であって、もし関節軸廻りに、例えばその関節の被駆動部位の質量に起因する重力モーメントが作用すると、その大小によってロストモーションの測定値が影響を受ける。ここで、関節１１１の場合は、関節の被駆動部位（リンク１２１以降）の質量は、関節１１１の関節軸廻りの回転モーメントとしては作用しない。本実施例の測定対象である関節１１１に関しては、その関節以降、手先側の被駆動部位の質量のロストモーションに対する影響を考慮する必要がない。
【００５３】
図５は関節１１１の回転軸の角度関係の一例を示しており、ここで回転角θ１、θ２、θ３は任意の角度である。図６は実施例１のロストモーションの測定手順を示している。図示の測定手順は、例えばＣＰＵ２０１の制御プログラムとして、例えばＨＤＤ２０４（あるいはＲＯＭ２０２）に格納しておくことができる（後述の各フローチャートについても同様）。
【００５４】
なお、図６の測定手順では、関節１１１のモータ（図２ではサーボモータ１に相当）を駆動するが、この時の回動角は、例えば入力側エンコーダ１０から得た入力側エンコーダ値に基づき閉ループ制御する。
【００５５】
ロストモーションを測定する場合、図６のステップＳ１１において、まず関節１１１の関節角を図５の関節角度θ１に位置決めする。次に、ステップＳ１２において、（図５では反時計廻りに）関節１１１を回転させ、関節角度θ２に位置決めする。これらの関節角制御は、例えば上記のように入力側エンコーダ１０から得た入力側エンコーダ値に基づき閉ループ制御する。
【００５６】
続いて、ステップＳ１３において、同じ方向に関節１１１を回転させ、関節角度θ３を位置決めし、入力側エンコーダ１０と出力側エンコーダ１６の値を取得する。
【００５７】
さらに、ステップＳ１４において、関節１１１をステップＳ１３とは逆方向に回転させ、関節１１１の関節角を図５の関節角度θ２に位置決めし、入力側エンコーダ１０と出力側エンコーダ１６の値を取得する。
【００５８】
上記のステップＳ１１とステップ１２は、ステップＳ１３およびＳ１４（角度取得工程）に先立って行う片寄せ予備動作で、少なくともステップＳ１３の開始時にロストモーションを片寄しておくために行うものである。即ち、ロストモーション測定の起点、終点である関節角度θ２、θ３において、片寄せを行いロストモーションの初期誤差の影響を０（ないし最小限）に制御する。本実施例の関節１１１のように、関節軸に関して当該関節の被駆動部位の重力モーメントが作用しない場合などにはこのようなロストモーションの片寄せ予備動作を行うことができる。ここで、ステップＳ１２とステップＳ１３で片寄せを行う時の関節１１１の回転方向は同じ必要があり、モータの正逆転によって回転する関節回転量（θ３−θ2）は、対象の駆動系で想定されるロストモーション量より大きい必要がある。
【００５９】
図７は、本実施例の実験結果の一例で測定データの波形を示している。図７の横軸の数値（７０１）は測定サンプリング順を示している。また、図７の縦軸は関節角度（θ）で、理論出力軸角７０２（実線）と、出力側エンコーダ１６で測定した実出力角７０３（破線）の波形を示している。理論出力軸角７０２（実線）は、入力側エンコーダ１０の出力値を用いて例えば理論出力角演算部４０１により演算される制御値である。なお、図７では説明を簡単にするため、理論出力軸角７０２および実出力角７０３の初期値θｔ０、θｒ０を以下のようにとって図示している。
【００６０】
θｔ０  ＝  θｒ０  ＝  θ２  ＝    ０°  …（１）
上記の式（１）において、θｔ０は理論出力軸角７０２の初期値、θｒ０は実出力角７０３の初期値である。
【００６１】
図７のグラフで初期値近傍では理論出力軸角７０２と実出力角７０３に差異はないが、途中から差異が発生している。例えば図７では、関節角θ２からθ３に向かう正逆回転の往路は、ロストモーションを片寄せ（ステップＳ１１、Ｓ１２）した状態から回動を開始しており、実出力角７０３は理論出力軸角７０２によく追従している。
【００６２】
ところが、関節角θ３で関節１１１の回転方向を逆転させて行う関節角θ３からθ２に向かう復路（ステップＳ１３、Ｓ１４）では、機構のロストモーションの影響によって、実出力角７０３が理論出力軸角７０２から除々に乖離している。この実出力角７０３（θｒ）と理論出力軸角７０２（θｔ）の差（７０４）がロストモーションである。
【００６３】
図６のステップＳ１５では、ロストモーション演算を行う（ロストモーション算出工程）。この時の算出方式としては、例えば、関節角θ２（ステップＳ１４）において、生じている実出力角７０３と理論出力軸角７０２の差をロストモーションの測定値として用いるものである。ここで、実出力角７０３は出力側エンコーダ１６から求めた角度値、理論出力軸角７０２は上記のように入力側エンコーダ１０の出力値に対して減速比Ｎを用いて出力側の角度に換算して求める。
【００６４】
なお、ステップＳ１５では、関節角θ２（ステップＳ１４：停止角度）におけるロストモーションの値から、関節角θ３（ステップＳ１３：初期角度）におけるロストモーションの値を減算して、その値をロストモーション測定値として算出してもよい。即ち、関節角θ２（ステップＳ１４：停止角度）においても、入力側エンコーダ１０と出力側エンコーダ１６の値を取得しているため、上記同様にこの角度においてもロストモーション値を算出できる。この関節角θ２（初期角度）におけるロストモーション値を関節角θ３（停止角度）におけるロストモーション値から差し引く。この演算方式によれば、予備動作（ステップＳ１１、Ｓ１２）によって片寄せの制御が充分ではなかった場合にも、それによって生じていた関節角θ２（初期角度）におけるロストモーションの成分を除去でき、より信頼性の高い測定値を得ることができる。
【００６５】
以上のようにロボットアーム１０１の関節１１１の回動制御を行い、入力側エンコーダ値と出力側エンコーダ値を介して減速機のロストモーションを測定することができる。さらに、測定したロストモーションと予め記憶しておいた許容ロストモーションを比較して寿命診断を行うことができる。
【００６６】
図８は、関節１１１の寿命診断を行う検査モードの制御手順の一例を示している。図８の手順では、まずステップＳ２１において、ロボットアーム１０１のユーザ（例えば管理者）が寿命診断の検査を開始するモードを選択する。
【００６７】
次に、ステップＳ２２において、診断動作記憶部４０６に予め登録しておいたロストモーション測定の姿勢に制御する。この時の関節角は、例えば図６で示した関節１１１の例ではθ１となる。
【００６８】
続いて、ステップＳ２３において、図７の測定手順（測定工程）を実行し、ロストモーションを測定する。このステップ２３の測定手順（測定工程）は、図６のステップＳ１１からＳ１５と同様の処理である。
【００６９】
次に、ステップＳ２４において、ステップＳ２３で測定したロストモーションを許容ロストモーション記憶部４０５に登録しておいた許容値と比較する。そして、ステップＳ２４の比較の結果、ステップＳ２３で測定したロストモーションが許容ロストモーション記憶部４０５の判定値よりと大きければ、ステップＳ２５において減速機の寿命であると診断してユーザへ警告する。また、ステップＳ２４が否定された場合には、検査モードを正常終了する（ステップＳ２６）。
【００７０】
ただし、正常終了のためにステップＳ２４からステップＳ２６へ分岐する場合は、減速機の寿命が尽きていないことをユーザに明示的に通知してもよい。これらステップＳ２５の警告や、正常終了の通知は、例えばティーチングペンダント３００のディスプレイや、別途配置した不図示のディスプレイを用いる、あるいは、不図示の音声合成および音声出力手段を用いて実施することができる。後述の実施例における各種の情報通知も、上記のような表示出力や音声出力による通知手段により実施することができる。
【００７１】
以上のように、本実施例１のロボット装置５００によれば、ロボットアーム１０１の減速機寿命診断をするために、外部から測定機をセットしてガタを測定、またはロボットアームを分解することなく診断することができる。
【００７２】
なお、以上では、例えば図２においてサーボモータ１と減速機１１とが直結されている状態を図示した。しかしながら、サーボモータと波動歯車減速機との間にタイミングベルトなどの伝達系を配置する場合も考えられる。そのような構成においても、許容ロストモーション記憶部４０５に記憶させておくロストモーションの許容値は、予め実験を行うなどして決定することができる。
【実施例２】
【００７３】
次に、図９から図１２を参照し、本発明の実施例２に係るロボット装置について説明する。ロボット装置の全体構成は図１と同様であるが、便宜上、本実施例２のロボット装置に関しては、図１中の５００Ａの符号を用いることにする。
【００７４】
上記実施例１では、ロストモーションの測定対象の関節の被駆動部位の質量が関節軸廻りに重力モーメントとして働かない関節１１１を例にとり、ロストモーションの測定と寿命診断を行う構成を説明した。即ち、上記実施例１では、関節１１１の関節軸は鉛直方向とほぼ一致しており、この関節軸廻りには関節１１１よりも手先の被駆動部位の質量によって発生する回転モーメント（重力モーメント）が作用しない。また、関節１１１は、最も基台１０１ａ側のいわゆる第１関節であり、その関節軸の鉛直方向ないし水平面に対する姿勢は、例えばアームの他の部分の位置、姿勢に影響を受けない。
【００７５】
これに対して、図１のようなアーム構成において、第２関節以降、即ち、関節１１２以降の手先側の関節では、その関節の被駆動部位の姿勢によっては被駆動部位の質量により関節軸廻りに重力モーメントが働く、或いは重力モーメントの大きさが変わる可能性がある。
【００７６】
従って、図１のようなアーム構成において、関節１１２以降の手先側の関節に関してロストモーション測定およびそれに基づく寿命診断などを行うには、その関節の被駆動部位の質量により関節軸廻りに働く重力モーメントを考慮した制御が必要となる。
【００７７】
例えば、大略、次のような重力モーメント条件の制御手法が考えられる。即ち、ロストモーション測定のための関節駆動の際、当該関節の被駆動部位の質量により関節軸廻りに働く重力モーメントを特定の状態に制御する。例えば、ロストモーション測定のための関節駆動の間、その重力モーメントがなるべく一定の状態、例えば、重力モーメントが０または最小限の状態となるよう制御する。
【００７８】
本実施例２では、上記のようにロストモーションの測定工程において重力モーメント条件を制御し、ロストモーションを測定し、また、それに基づき寿命診断を行う例につき説明する。以下、本実施例２では、その関節の被駆動部位の質量（自重）によって関節軸廻りに比較的大きな重力モーメントが働く関節１１２を例にロストモーションの測定制御を説明する。
【００７９】
なお、本実施例２の構成は、関節軸廻りの重力モーメントが関節駆動系の駆動抵抗、具体的には摩擦トルク（摩擦抵抗）よりも小さい範囲で関節駆動を行うか、あるいはその範囲内の重力モーメントしか生じないようロボットアームを姿勢制御する技術である。この関節駆動系の駆動抵抗は、ロボットアームの自重に起因する関節軸廻りの重力モーメントに抗してロストモーションが生じないよう自己保持する抵抗（負荷）として作用する。本実施例では、摩擦トルク（摩擦抵抗）よりも小さい範囲で関節駆動を行うか、あるいはその範囲内の重力モーメントしか生じないようロボットアームを姿勢制御する。
【００８０】
図９は、関節１１２の関節軸廻りに比較的大きな重力モーメントが働くようなロボットアーム１０１の姿勢の１例を示している。また、図１０は図９のアーム姿勢におけるモーメント釣り合いを示している。特に、図１０は図９の左右を反転した状態の図示であり、関節１１２の関節軸（回転中心）５０１と、リンク１２２以降の手先部位に相当する被駆動部位５０２を示している。
【００８１】
図１０において、Ｍは関節１１２より手先の被駆動部位５０２の運動質量、Ｌ１は関節軸５０１と運動質量Ｍの重心の距離である。また、Ｔｆは関節１１２に設けたクロスローラベアリング等の摩擦トルク（摩擦抵抗）、ｇは重力加速度で、関節軸５０１廻りに働く重力モーメントはＭｇＬ１となる。
【００８２】
ここで、図９ないし図１０の状態は、摩擦トルクＴｆよりも重力モーメントＭｇＬ１の方が大きな状態である（Tｆ＜ＭｇＬ１）ものとする。この状態では、摩擦トルクＴｆのみで重力モーメントＭｇＬ１を支えることができず、関節１１２の減速機（図２の１１）に回動モーメントが作用する。この回動モーメントの大きさは、厳密には重力モーメントＭｇＬ１と摩擦トルクＴｆの差（ＭｇＬ１−Ｔｆ）である。この回動モーメント（ＭｇＬ１−Ｔｆ）により、減速機の歯面が所定の圧力で接触して、いわゆる片寄せの状態が生じる。この片寄の状態で実施例１の方法でロストモーションを測定するのは困難である。
【００８３】
これに対して、図１１（ａ）、（ｂ）のようなロボットアーム１０１の姿勢を考える。図１１（ａ）、（ｂ）のいずれにおいても、関節１１２の関節軸５０１（回転中心）により駆動される手先側の被駆動部位（リンク１２２以降）の重心Ｇは、関節軸５０１を通る鉛直軸ｇにほぼ一致する位置を占めている。
【００８４】
このような状態では、図１２（ａ）に示すように重力モーメントＭｇＬ２は、関節１１２の摩擦トルクＴｆよりも小さくなる。図１２において、５０１、および５０２は図１０同様に、関節１１２の関節軸、および関節１１２により回動支持される手先側の被駆動部位である。また、Ｌ２は関節軸５０１と被駆動部位５０２の運動質量Ｍの重心（図１１（ａ）、（ｂ）のＧ）の距離であり、この時の重力モーメントはＭｇＬ２となる。
【００８５】
ここで、図１２（ａ）では、理解を容易にするため、意図的に運動質量Ｍの重心（図１１（ａ）、（ｂ）のＧ）を関節軸５０１を通る鉛直軸ｇから外した位置に図示している。この場合、距離L２は０ではなく、僅かながら摩擦トルクＴｆよりも小さい重力モーメントＭｇＬ２が関節軸に働く。もし、運動質量Ｍの重心（図１１（ａ）、（ｂ）のＧ）が関節軸５０１を通る鉛直軸ｇに一致する位置にあれば距離Ｌ２は０となり、関節軸５０１には重力モーメントは働かない（ＭｇＬ２＝０）。
【００８６】
即ち、図１１（ａ）、（ｂ）、図１２（ａ）の状態は、摩擦トルクＴｆよりも重力モーメントＭｇＬ２の方が小さな状態である（Ｔｆ＞ＭｇＬ２）。この状態が保持されている間は、摩擦トルクＴｆのみで重力モーメントＭｇＬ２を支えることができる。逆に言えば、関節１１２の摩擦トルクＴｆに打ち勝って関節に片寄り（せ）を発生するような回動モーメント（ＭｇＬ２−Ｔｆ）が働かないため、図９、図１０の場合のように測定外乱として制御すべき片寄り（せ）の状態は発生しない。
【００８７】
図１１（ａ）、（ｂ）のような姿勢（制御）を利用し、被駆動部位によって生じる重力モーメントに起因する片寄せ、即ち、ロストモーションの誤差分を事実上、キャンセルでき、特定の関節回動範囲内のロストモーション（のみ）を測定できる。
【００８８】
その方法の１つは、関節１１２の初期角度（実施例１のθ３）を図１１（ａ）、または図１１（ｂ）のいずれかの状態に取り、入力側エンコーダ１０と出力側エンコーダ１６の値を取得する（図６のステップＳ１３に相当）。続いて、この初期角度（実施例１のθ３）から関節１１２を小さな回動角度の範囲内にある停止角度（実施例１のθ２）まで回動させ、入力側エンコーダ１０と出力側エンコーダ１６の値を取得する（図６のステップＳ１４に相当）。その後、実施例１で説明したのと同様のロストモーション演算（図６のステップＳ１５相当）を実施してロストモーション測定値を得る。この時、初期角度（実施例１のθ３）〜停止角度（実施例１のθ２）の測定範囲としては、摩擦トルクＴｆよりも重力モーメントＭｇＬ２の方が小さな状態（Ｔｆ＞ＭｇＬ２）が保たれる範囲を選ぶ。この初期角度（実施例１のθ３）〜停止角度（実施例１のθ２）の測定範囲は、例えばロボットアーム１０１の仕様、特に対象の関節の被駆動部位の重量や、関節に用いられている減速機などの仕様に応じて、あるいは予め実測を行って求めることができる。
【００８９】
また、図１１（ａ）、（ｂ）のような姿勢（制御）を利用する他の手法としては、例えば関節１１２の初期角度（実施例１のθ３）を図１１（ａ）の角度に、また、停止角度（実施例１のθ２）を図１１（ｂ）の角度に取る。そして、図１１（ａ）の初期角度（実施例１のθ３）から図１１（ｂ）の停止角度（実施例１のθ２）まで関節１１２を回動させるのに同期（連動）して、被駆動部位の姿勢制御を行う。例えば、図１１（ａ）の被駆動部位（リンク１２２以降）が鉛直軸ｇに沿って直立した姿勢から、図１１（ｂ）のように被駆動部位の重心Ｇが鉛直軸ｇ上にバランスする姿勢に移行するよう姿勢制御を行う。そして、その間、常に関節１１２の被駆動部位の重心Ｇが関節軸５０１を通る鉛直軸ｇにほぼ一致するような姿勢を保つよう、関節１１２の回動に同期して動的に関節１１３以降の手先側の各関節の角度を制御する。このような制御は、例えば図１２（ｂ）に示すような制御手順によって実現される。
【００９０】
図１２（ｂ）は、実施例１の図６に相当するもので、図６のステップＳ１３〜Ｓ１５の部分を抜き出してある。そして、ステップＳ１３〜Ｓ１４において関節１１２を回動させるのに同期して、並行して実行するステップＳ９１において、上記の被駆動部位の同期制御を実行させる。このステップＳ９１の被駆動部位の姿勢制御ルーチンは、ＣＰＵ２０１によって同期（並列）実行される別プロセス、あるいは別スレッドとして実装することができる。ステップＳ９１の被駆動部位の姿勢制御ルーチンにおいては、上記のように、関節１１２の回動に同期して関節１１２の被駆動部位の重心Ｇが関節軸５０１を通る鉛直軸ｇに一致するような姿勢を保つよう、被駆動部位の姿勢制御を行う。
【００９１】
図１２（ｂ）のステップＳ９１の被駆動部位（リンク１２２以降）の姿勢制御に必要な被駆動部位の重心Ｇの制御パターンは、アーム仕様、例えば各部の重量などの条件に応じて予め決定しておくことができる。また、本実施例２では関節１１２を例にとっているが、図１２（ｂ）の制御は、他の関節の測定の場合でも、当該関節により駆動される被駆動部位の重心（Ｇ）を測定に必要な範囲で制御できれば適用できる。その場合、当然、ステップＳ９１における被駆動部位の重心Ｇの制御パターンは、アームや関節の仕様によって関節ごとに定めておくことができる。測定対象の関節に対する被駆動部位の重心Ｇの位置は、例えば、アームの各部の形状や重量といった設計情報に基づき、ＣＰＵ２０１によって演算することができる。
【００９２】
また、測定時の関節１１２の駆動に同期して、関節１１２の被駆動部位の重心Ｇが関節軸５０１を通る鉛直軸ｇに一致するような姿勢を保つようなロボットアーム１０１の姿勢制御（ステップＳ９１）のパターンは予めプログラムしておくことができる。このようなロボットアーム１０１の姿勢制御パターンは、例えば、基台１０１ａの底面などが水平面に対して水平（ないし鉛直軸に対して垂直）となるようなデフォルトの設置姿勢を基準として作成する。その場合、もしロボットアーム１０１がデフォルトの設置姿勢と異なる姿勢で設置されているならば、ロボットアーム１０１の姿勢制御パターンは予めプログラムされたパターンとは異なるものに変更（補正）する必要がある。この変更（補正）すべき測定時のロボットアーム１０１の姿勢制御パターンには、測定時の関節１１２の駆動角度と、ステップＳ９１における被駆動部位の姿勢制御が含まれる。
【００９３】
そこで重力センサ２１７（図３）を設けておけば、ＣＰＵ２０１は、図１２（ｂ）の測定制御を行う場合、重力センサ２１７を利用して、予め用意したロボットアーム１０１の姿勢制御パターンを基台１０１ａの設置姿勢に応じて変更（補正）できる。例えば、図１２（ｂ）の測定制御において、ＣＰＵ２０１は、重力センサ２１７で検出した基台１０１ａの水平面（ないし鉛直軸）に対する傾斜角度を用いて、各関節の初期角度などのパラメータを変更（補正）することができる。その場合、例えば、重力センサ２１７で検出した基台１０１ａの傾斜角度に応じて、測定時の関節１１２の初期角度（実施例１のθ３）や、ステップＳ９１における関節１１３以降の被駆動部位の関節の初期角度を変更（補正）することができる。
【００９４】
以上のように、本実施例２によれば、その被駆動部位の質量によって関節軸廻りに比較的大きな重力モーメントが働く関節（例えば１１２）でも、重力モーメントによって生じる測定誤差を事実上キャンセルした状態でロストモーションを測定することができる。例えば関節１１２では、図９のような姿勢では、被駆動部位により生じる重力モーメントによってロストモーションが片寄せされる可能性があり、ロストモーションの測定誤差が生じる。
【００９５】
これに対して、本実施例では、図１１（ａ）、（ｂ）、図１２（ａ）で説明したように、角度取得工程において、駆動抵抗、即ち摩擦トルクＴｆよりも被駆動部位の重力モーメントＭｇＬ２が小さい範囲内でロストモーションを測定する。あるいは、図１２（ｂ）で説明したように、測定工程において、より能動的に駆動抵抗、即ち摩擦トルクＴｆよりも重力モーメントＭｇＬ２が小さく保たれるよう、被駆動部位の姿勢制御を行いつつ、特定の関節回動範囲におけるロストモーションを測定する。より具体的には、関節１１２の場合、被駆動部位の重心Ｇが関節軸５０１を通る鉛直軸ｇにほぼ一致するような姿勢を保つよう、被駆動部位の姿勢制御を行う。いずれの場合も、特定の関節回動範囲における減速機１１の入、出力軸のエンコーダの検出角度（位置）の差を介してロストモーションを測定する。
【００９６】
即ち、本実施例２によれば、被駆動部位の質量（自重）によって関節軸廻りに比較的大きな重力モーメントが働く関節（例えば１１２）でも、重力モーメントによって生じる測定誤差を事実上、キャンセルし、ロストモーションを正確に測定することができる。また、そのロストモーション測定結果に応じて、実施例１と同様の方法で当該関節、特にその駆動系である減速機の寿命を高い信頼性で正確に診断することができる。
【００９７】
なお、ＣＰＵ２０１が、測定対象の関節を任意の姿勢（回動角度）で位置決めし、そこで関節のサーボモータ１を駆動停止し、その前後で入力側エンコーダ１０および出力側エンコーダ１６の出力値を監視する。そして、モータ駆動の遮断の前後で両エンコーダの出力値に変化がなければ、ＣＰＵ２０１は、その回動角度（関節角）は駆動抵抗、即ち摩擦トルクＴｆよりも被駆動部位による重力モーメントＭｇＬ２が小さい姿勢と判定（確認）することができる。なお、この時、測定対象の関節の被駆動部位の姿勢は、例えば当該の関節廻りに働く重力モーメントができるだけ小さくなるような姿勢に制御する。
【００９８】
ロボットアーム１０１のそれぞれの関節の適当な範囲のいくつかの関節角度について、このような重力モーメント確認工程を行うことによって、各関節について、摩擦トルクＴｆより重力モーメントＭｇＬ２が小さくなる関節角の範囲を特定することができる。このような重力モーメントに影響を受けずにロストモーション測定を行える角度範囲を特定する範囲特定工程は、例えば、実機のロボットアーム１０１のそれぞれの関節について、予め実行しておくことができる。そして、この範囲特定工程の結果に応じて、実機のロボットアーム１０１の個体ごとにロストモーション測定の始点、終点である関節角度θ３、θ２の角度範囲を決定することができる。
【００９９】
なお、ロボットアーム１０１先端のエンドエフェクタ交換を行うことにより、アームのジオメトリが変化し、特定関節に関する重力条件（質量や重心位置）が変更になる場合は上記の関節角度θ３、θ２などの制御条件を変更する必要がある。
【実施例３】
【０１００】
次に、図１３および図１４を参照して、本発明の実施例３に係るロストモーションの測定制御につき説明する。本実施例のロボット装置について用いる参照符号は、図１の５００Ｂとする。本実施例でも、実施例２の場合と同様、ハードウェア構成およびソフトウェア構成は実施例１のものと同様であるものとする。
【０１０１】
実施例２では、測定対象の関節より手先の被駆動部位の姿勢を制御して、測定対象の関節の関節軸廻りに働く重力モーメントの条件を制御する、特に被駆動部位により生じる重力モーメントＭｇＬ２が摩擦トルクＴｆよりも小さくなるよう制御する構成を示した。
【０１０２】
しかしながら、図１１〜図１２に示したような被駆動部位の姿勢制御が常に可能であるとは限らない。例えば、工場など、工業製品のような物品の実際の生産現場においては、アームの動作に干渉する可能性のある物体が種々配置されている可能性があり、実施例２に示したような被駆動部位の姿勢制御が不可能な場合もある。そこで、本実施例３では、関節動作のオーバーシュートが生じる区間を利用してロストモーションを測定する手法を示す。
【０１０３】
本実施例では、測定対象の関節を関節角度（下記のθ４）から関節角度（下記のθ５）まで回動させ、関節角度θ５において関節の回転駆動方向を反転させる。このような動作を行わせると、駆動系全体の慣性によって、実際の関節角度は反転駆動に同期して直ちに反転せず、関節角度（下記のθ５）をしばらく行き過ぎた反転角度から実際の関節の反転が開始される。このような現象は、オーバーシュートなどと呼ばれる。また、このようなオーバーシュートは減速機（１１）の入出力軸のいずれに設けたエンコーダ（１０、１６）においても観測される。
【０１０４】
本実施例では、関節軸廻りに働く重力モーメントの条件を積極的に制御することなくロストモーションを測定する手法として、上記のような関節の反転駆動時のオーバーシュート区間を利用する。
【０１０５】
なお、本実施例においては、測定対象の関節は、例えば実施例２と同様に比較的大きな重力モーメントが働く関節１１２とする。また、測定対象の関節（１１２）より手先側の被駆動部位の姿勢については任意であるが、好ましくは特定の関節の測定を行う場合はいつも、その関節に対する被駆動部位の姿勢を一定の姿勢に制御する。
【０１０６】
図１３は、本実施例の反転駆動時のオーバーシュート区間を利用した測定手法を示している。本実施例では、測定対象の関節（１１２）を図１３の関節角度θ４から関節角度θ５まで回動させ、関節角度θ５において関節の回転駆動方向を反転させる。ロボットアーム１０１の構成は本実施例でも同様（例えば図１１）とする。
【０１０７】
また、図１３において、鉛直軸は図の垂直（縦）方向に一致しているものとし、関節角度θ５とθ６の場合は、重力モーメントが関節角度θ４の方向へ発生する状態にある。そして、関節角度θ５において関節の回転駆動方向を反転させた時、重力モーメントと逆方向に上記のオーバーシュートが生じ、実際には関節は関節角度θ５を行き過ぎて、例えば関節角度θ６までオーバーシュートする。
【０１０８】
本実施例では、関節角度θ５から関節角度θ６に向かうオーバーシュート区間において、入力側エンコーダ１０および出力側エンコーダ１６を介して、当該関節のロストモーションを測定する。この関節（１１２）のオーバーシュート区間（θ５〜θ６）を力学的に見ると、関節軸には、図１３の時計廻り（θ５−＞θ４）方向に、被駆動部位の質量および姿勢に応じた重力モーメントが加わる。また、関節角度θ５からは関節（１１２）のモータ（サーボモータ１）は反転駆動されており、その駆動力は応じた重力モーメントと同様に図１３の時計廻り（θ５−＞θ４）方向に働く。
【０１０９】
しかしながら、オーバーシュート区間（θ５〜θ６）では、実際には、駆動系の慣性によって、関節は図１３の反時計廻り（θ５−＞θ６）方向に移動する。すなわち、オーバーシュート区間（θ５〜θ６）では、関節角度θ４−＞θ５のモータ駆動力の設定に応じて生じた慣性が上記の重力モーメント、およびモータ駆動力に打ち勝って、関節（１１２）が反時計廻り（θ５−＞θ６）方向に動作している。
【０１１０】
本実施例では、ロストモーション測定時にはいつも、関節角度θ４−＞θ５のモータ駆動力を制御して、この一定区間のオーバーシュート区間（θ５−＞θ６）を生じさせ、この区間（θ５−＞θ６）において、ロストモーションを測定することにする。このオーバーシュート区間（θ５−＞θ６）では、一定の慣性力によって生じるオーバーシュート動作、という一定の条件の元で機構のロストモーションを測定できる。
【０１１１】
関節角度θ５からθ６に向かうオーバーシュート区間において、測定対象の関節（１１２）の入力側エンコーダ１０および出力側エンコーダ１６の出力値を記録する。そして、入力側エンコーダ１０および出力側エンコーダ１６の差分の変化に基づき、測定対象の関節（１１２）のロストモーションを測定する。
【０１１２】
例えば、オーバーシュート区間（θ５〜θ６）における入力側エンコーダ１０および出力側エンコーダ１６の差分の最大値を測定対象の関節（１１２）のロストモーションの測定値とする。あるいは、オーバーシュート区間（θ５〜θ６）における入力側エンコーダ１０および出力側エンコーダ１６の差分の最大値から最小値を減算した値をロストモーションの測定値とする、といった演算手法を用いてもよい。
【０１１３】
ここで、特定の関節（１１２）のロストモーションを測定する時、ＣＰＵ２０１は例えば出力側エンコーダ１６の出力値を監視しつつ、一定の関節角度θ６まで（あるいはそれ以上）オーバーシュートするようサーボモータ１の駆動条件を制御する。そして、測定対象の関節（１１２）の入力側エンコーダ１０および出力側エンコーダ１６の出力値を記録する区間は、必ず一定角度の関節角度θ５〜θ６の区間とする。
【０１１４】
なお、上記のオーバーシュート区間（θ５〜θ６）の関節角度は、その関節で想定されるロストモーションの量より大きい必要がある。かくなるオーバーシュート量（θ５〜θ６）を確保するには、例えば、ＣＰＵ２０１によって、関節角度θ４〜θ５における関節の駆動速度（あるいはさらに関節角度θ５からの反転駆動速度）を制御し、関節角度θ６までオーバーシュートが生じるよう制御する。
【０１１５】
例えば、出力側エンコーダ１６の出力を監視しながら、関節角度θ４−＞関節角度θ５の駆動、および関節角度θ５における反転駆動を繰り返し行い、関節角度θ６までオーバーシュートが生じる駆動条件を決定することができる。このような関節角度θ４−＞関節角度θ５の駆動、および関節角度θ５における反転駆動を繰り返し試行する場合には、例えば、毎回、関節角度θ５における反転駆動開始時点から入力側エンコーダ１０および出力側エンコーダ１６の出力値の記録を開始する。そして、関節角度θ６までのオーバーシュートを確認できた時点で、各エンコーダ（１０、１６）の出力値記録を停止し、測定を終了する、といった測定制御を行うことができる。
【０１１６】
また、関節角度θ６までオーバーシュートが生じるような関節角度θ４〜θ５における関節の駆動速度は、例えば、予め測定対象の関節について駆動速度とオーバーシュート角度の実測を行うことによって定めておくこともできる。
【０１１７】
本実施例では、測定対象の関節に働く重力モーメントは積極的に制御しないかわりに、オーバーシュート区間（θ５〜θ６）を一定の角度区間とする。もちろん、このオーバーシュート区間（θ５〜θ６）においても、例えば関節１１２のような関節では、少なくない重力モーメントが関節軸に働く可能性がある。しかしながら、例えば関節角度θ４〜θ５における関節の駆動速度を制御することによって、一定のオーバーシュート区間（θ５〜θ６）の角度区間を確保することにより、毎回、一定の測定条件でロストモーションを測定することができる。
【０１１８】
図１４は、上記図１３で説明した測定制御の流れを示している。図１４のステップＳ３１において、ＣＰＵ２０１は、測定対象の関節１１２のモータ（サーボモータ１）を駆動し、測定開始点である関節角度θ４まで回動させる。続いてステップＳ３２では、当該関節を関節角度θ４まで回動させる。
【０１１９】
さらに、ステップＳ３３において、関節角度θ４からθ５までの間、モータ（サーボモータ１）を駆動する。そして、ステップＳ３４において、関節角度がθ５になった時点でモータの駆動方向を反転させ、上記の関節角度θ６までオーバーシュートさせる。このオーバーシュート区間（θ５〜θ６）では、測定対象の関節１１２の入力側エンコーダ１０および出力側エンコーダ１６の出力値を記録する。続いて、測定対象の関節１１２の駆動を関節角度θ４で停止させる（ステップＳ３５）。
【０１２０】
ステップＳ３６では、オーバーシュート区間（θ５〜θ６）で記録した測定対象の関節１１２の入力側エンコーダ１０および出力側エンコーダ１６の出力値に基づき、上述の演算手法によってロストモーションの測定値を算出する。上記のようにして測定したロストモーションの測定値は、例えば実施例１と同様の寿命診断（図８のステップＳ２４〜Ｓ２６）に用いることができる。
【０１２１】
以上のように、本実施例３によれば、測定対象の関節に被駆動部位の重力モーメントが働く条件においても、重力モーメントと逆方向に一定角度量のオーバーシュートが生じるように関節のモータ（サーボモータ１）を駆動制御する。また、オーバーシュート区間（θ５−＞θ６）の大きさはロストモーションの角度より大きくなるように制御する。そして、モータの反転駆動後の重力モーメントと逆方向の一定角度のオーバーシュート区間（θ５−＞θ６）で、測定対象の関節の入力側エンコーダ（１０）および出力側エンコーダ（１６）の出力値に基づき、当該関節のロストモーションを測定する。以上のような測定制御を行うことにより、当該関節の被駆動部位により生じる重力モーメントに影響されずに測定対象の関節のロストモーションを測定でき、この測定を定期的に行うことで減速機の寿命を診断することができる。
【０１２２】
なお、ロボットアーム１０１先端のエンドエフェクタ交換を行うことにより、アームのジオメトリが変化し、特定関節に関する重力条件（質量や重心位置）が変更になる場合は上記のオーバーシュート区間（θ５〜θ６）などの制御条件を変更する必要がある。
【実施例４】
【０１２３】
上記の実施例１では重力モーメントが影響しない関節（例えば関節１１１）、実施例２と実施例３では同重力モーメントが影響する可能性のある関節（例えば関節１１２）に適用可能なロストモーションの測定制御を示した。通常、ロボットアーム（１０１）では、上記のように、構造あるいはさらにアームの姿勢に応じて、関節の被駆動部位の重力モーメントが影響しない関節と、同影響を受ける関節が生じる。
【０１２４】
そこで、本実施例４では、測定対象の関節が、その被駆動部位の重力モーメントの影響を受けるか否かに応じて実施例１、実施例２、または実施例３のいずれかの測定制御を選択する例を示す。なお、ハードウェアおよび制御系の構成は、本実施例でも上述同様であるものとする。
【０１２５】
図１５に本実施例４における測定制御手順を示す。図１５では、図８のフローと同一ないし相当する処理ステップには同様の番号を付して詳細な説明を省略するものとする。
【０１２６】
図１５のステップＳ５１では、関節１１１〜１１６を各々の角度に位置決めし、ロボットアーム１０１を予め定めた測定姿勢に制御する。そして、関節１１１〜１１６の各々について重力モーメントが発生するか否かを計算する。この時、関節１１１のように構造的に重力モーメントが発生するか否かを特定できる関節については、設計上の条件によって判定が可能である。他の関節については、当該のロボットアーム１０１の測定姿勢におけるその関節の被駆動部位の姿勢によって判定が可能である。
【０１２７】
そして、ステップＳ５２では、重力モーメントが発生しない関節については実施例１の測定制御を選択する。また、同ステップＳ５２において、重力モーメントが発生する場合で、摩擦トルクＴｆよりも重力モーメントＭｇＬ２が小さい姿勢であれば、実施例２の方法を選択し、そうでない場合は実施例３の方法を選択する。なお、摩擦トルクＴｆと重力モーメントＭｇＬ２の大小関係は、例えば実施例２で述べた手法を用いて判定できる。即ち、測定対象の関節を任意の姿勢（回動角度）で位置決めし、そこで関節を駆動するモータの駆動を遮断し、その前後で入力側エンコーダ１０および出力側エンコーダ１６の出力値を監視し、判定する。
【０１２８】
また、ステップＳ５２で実施例２の方法を選択した場合、ステップＳ５３において、姿勢変更を行って実施例１の測定制御を実施可能であれば、ステップＳ５４に進む。ステップＳ５４では、ロボットアーム１０１を実施例１の測定制御を実施可能な姿勢に変更し、実施例１の測定制御を選択し直す。
【０１２９】
また、ステップＳ５２で実施例３の方法を選択した場合も同様で、ステップＳ５３において、姿勢変更を行って実施例１の測定制御を実施可能であれば、ステップＳ５４に進む。そして、ステップＳ５４では、上記同様にロボットアーム１０１を実施例１の測定制御を実施可能な姿勢に変更し、実施例１の測定制御を選択し直す。
【０１３０】
一方、ステップＳ５２で実施例３の測定制御を選択した場合、実施例１の測定制御を実施可能な姿勢に変更不可能であるが、実施例２の測定制御が可能であれば、ステップＳ５４実施例２の測定制御を実施可能な姿勢に変更し、実施例２の測定制御を選択し直す。
【０１３１】
上記のようにステップＳ５３、Ｓ５４の制御を実施するのは、実施例３を行う場合、オーバーシュートをロストモーションより大きくする必要があるので動作調整に時間がかかる場合があるのを考慮したものである。上記のようにステップＳ５３、Ｓ５４を実装しておくことにより、可能な限り実施例３の測定制御よりも、実施例１または実施例２の測定制御を選択し、迅速にロストモーション測定を行うことができる。
【０１３２】
また、ステップＳ５３、Ｓ５４では、実施例２よりも実施例１の測定制御の方が関節回転角度による重力モーメントの変動が小さいから、いずれの測定制御も選択できる場合は、実施例１を選択するよう構成してもよい。即ち、姿勢変更により複数のロストモーションが選択可能な場合、優先順位としては、第１は実施例１の測定制御、第２は実施例２の測定制御、第３は実施例３の測定制御を選択するよう制御してもよい。
【０１３３】
以上のような制御を行うことにより、本実施例４によれば、ロボットアーム１０１の関節毎に重力モーメントの有無を計算し、異なるロストモーションの測定制御からその関節に最適な測定制御を選択することができる。このため、本実施例４によれば、信頼性の高いロストモーションの測定が可能であり、また、それに基づき信頼性の高い寿命診断を行うことができる。
【０１３４】
なお、実施例１の測定制御では被駆動部位による重力モーメントが発生せず、ロストモーションを片寄する予備動作を行っている。また、実施例２の測定制御では、重力モーメントを摩擦でキャンセルできるためロストモーションを片寄する予備動作は行わなくてもよい。また、実施例３の測定制御では、重力モーメントの影響を事実上無視できるオーバーシュート区間を利用しているためロストモーションを片寄せする予備動作は行わなくてもよい。
【実施例５】
【０１３５】
上述の実施例１〜実施例４に示したロストモーション測定、およびそれに基づく寿命診断は、例えばシステムの電源投入時の初期化動作の際に実行できる。また、タイマ計時などに基づき、定期的にロストモーション測定、およびそれに基づく寿命診断を実行するようにしてもよい。これらは、例えば工業製品などの物品の生産現場などにおけるロボット装置の実稼働期間とは別の検査モード、あるいはテストモードなどとして実行する手法に相当する。
【０１３６】
しかしながら、本実施例５で示すように、検査モードやテストモードではなく、ロボット装置の実稼働期間のロボット動作を利用してロストモーション測定、およびそれに基づく寿命診断を実施することもできる。
【０１３７】
実施例５では検査モードでなく、物品の生産現場に設置されたロボット装置の実稼働期間、例えば物品の生産工程中にロストモーション測定および寿命診断を行う。
【０１３８】
即ち、本実施例５では、物品生産などのために所定のロボットプログラムに基づきロボット装置を動作させる実工程で測定対象の関節について前記角度取得工程を実行可能な関節駆動期間を予め特定しておく。そして、実際に実工程を実施する時、予め特定した関節駆動期間において入力側エンコーダ１０および出力側エンコーダ１６の出力値を取得し、ロストモーションを測定する。
【０１３９】
図１６は本実施例５において、物品の生産現場に設置されたロボット装置５００ＣのＣＰＵ２０１が実行する測定制御手順の概略を示している。この場合、物品を生産するための、ロボットアーム１０１のワーク（部品）や工具などの操作手順は、予めロボットプログラムとして用意されているものとする。また、本実施例５に係るロボット装置５００Ｃのハードウェア、および制御系の構成は本実施例でも上述の各実施例と同様であるものとする。
【０１４０】
図１６のステップＳ４１では、当該のロボットプログラムに基づき、実工程運転と同じ動作をロボットアーム１０１に実行させ、その間、各関節の入力側エンコーダ１０および出力側エンコーダ１６の出力値を取得する。
【０１４１】
ステップＳ４２では、ＣＰＵ２０１は、例えばステップＳ４１で取得した出力側エンコーダ値を利用し、ロボットプログラムから上記の実施例１〜３で示した測定制御を実施可能な測定区間を抽出（選択）する。その場合、抽出した測定区間ごとに、実施例１〜３のいずれの測定制御を行うかを選択し、関連付けの上、ＲＡＭ２０３などに配置した制御メモリ領域に記憶する。
【０１４２】
なお、本実施例において、上記の「測定区間」は、例えばＲＴＣ素子などを用いたタイマ計時によって特定可能な制御時刻（例えば精度はμｓオーダーとする）などによって表現されるものとする。
【０１４３】
ステップＳ４３では、ステップＳ４２で抽出した測定区間における各関節の入力側エンコーダ１０および出力側エンコーダ１６の出力値を用いて、選択した実施例１〜３のいずれかの測定制御によってロストモーションを測定する。
【０１４４】
ステップＳ４４では、ステップＳ４３で各関節について、測定した最大のロストモーションを得た測定区間をＲＡＭ２０３などに配置した制御メモリ領域に登録する。また、この時、当該の測定区間で得た（最大の）ロストモーション値を制御メモリ領域に関連付けて登録しておいてもよい。
【０１４５】
次に、ステップＳ４５において、ロボットプログラムに応じて、ロボットアーム１０１に実工程動作を実行させ、物品の製造動作を行わせる。その間、ステップＳ４６において、各関節につきステップＳ４４で登録した測定区間においてその関節のロストモーションを測定する。
【０１４６】
ステップＳ４７では、ステップＳ４６で測定したロストモーションが基準値以内であるか否かを判定し、寿命を診断する。即ち、ステップＳ４６で測定したロストモーションと、予め定められたしきい値を比較し、その比較結果に基づき当該関節、特にその変速機の寿命を診断する。この時に用いる基準値には、予めＲＯＭ２０２やＲＡＭ２０３に用意したしきい値の他、ステップＳ４４で登録した当該の測定区間で得た（最大の）ロストモーション値を用いるようにしてもよい。ステップＳ４７で当該の関節の寿命が尽きていない、と判断した場合にはステップＳ４５に復帰して実工程動作を継続する。一方、ステップＳ４７で当該関節の寿命が尽きていると診断するとステップＳ４８に進み、当該関節の寿命が尽きている旨をユーザに警告する。ステップＳ４８で、実工程動作を停止する緊急停止制御を実行するか否かは、運用上の規約などに応じて定めておけばよい。
【０１４７】
以上のように本実施例５によれば、実工程動作をテストモード（ステップＳ４１〜Ｓ４４）で実行して、（例えば実施例１〜３のいずれかの測定方式で）ロストモーション測定を行なえる測定区間を選択、登録することができる。そして、その後の実工程運転において、選択、登録した測定区間における入力側エンコーダ１０および出力側エンコーダ１６の出力値に応じてロストモーション測定を行い、その結果に応じて寿命診断する。従って、本実施例５によれば、実工程運転を利用して実時間でロストモーション測定と寿命診断を行うことができる。このため、実際に物品の製造に直接寄与しない検査モードやテストモードが不要であり、物品の製造効率を著しく向上することができる。
【実施例６】
【０１４８】
上述の実施例１〜５では、測定対象の関節の駆動系中の減速機（１１）の関節の入力側エンコーダ（１０）および出力側エンコーダ（１６）の出力値に基づき、ロストモーションを測定し、それに基づき寿命判定（寿命診断）を行う構成を示した。また、上述の各実施例では、測定したロストモーションを例えば、許容範囲の限界値に相当する値（しきい値）と比較することにより、寿命診断を行う例を示した。
【０１４９】
上述の寿命診断の手法によると、測定対象の関節（特にその駆動系である減速機）の寿命が尽きた場合に、その事を発見（検出）することができる。ところが、実際の工業製品などの物品の生産現場では、実際にロボットアームの関節の寿命が尽きる頃には、組み立て不良などの障害が発生することがある。そして、実際に障害が発生して生産工程が停止し、該当のロボットアームを換装するまで作業によって生産が不可能となる事態となれば大きな損失であるから、可能であればこのような事態は回避すべきである。
【０１５０】
そこで、本実施例６では、過去に測定したロストモーションに基づき、ロボット装置、特にその関節（の減速機）の余命を予測して、ユーザ（管理者）にその予測結果を通知する構成を例示する。このように関節（の減速機）の余命の予測結果を得られれば、ユーザ（管理者）はロボットアームの関節の寿命が尽きる頃までに、関節部品（あるいはロボットアーム全体）の交換作業などの予防的な措置（予知保全ないし予防保全）を講じることができる。本実施例６においても、ロボット装置のハードウェア、および制御系の構成は上述の各実施例と同様であるものとする。
【０１５１】
図１７は本実施例６において、物品の生産現場に設置されたロボット装置（例えば５００Ｃ）のＣＰＵ２０１が実行する寿命（余命）予測制御手順の概略を示している。
【０１５２】
図１７は、横軸に運転時間を取り、例えば実施例１〜３の測定制御によって測定したロストモーションの測定値（縦軸）を示している。即ち、図１７は、ロボットアーム（１０１）の運転時間とロストモーションの関係を示しており、通常、運転時間の増加と共にロストモーションも増加する。また、図１７は一つの関節のロストモーションの変化を示しているが、図１のような６（関節）軸のロボットアーム（１０１）では、各関節についてロストモーションを測定すれば同様のグラフが６種類存在することになる。
【０１５３】
ＣＰＵ２０１は、各関節について測定したロストモーションの測定値をＲＡＭ２０３やＨＤＤ２０４（あるいは他の不揮発メモリ）などに格納した記録領域に、測定時刻と関連づけて記録することができる。その場合、データ形式には、各種データベースシステムにおけるファイルフォーマットなどを利用することができる。
【０１５４】
図１７の場合、同図中の原点（ｔ０）から時刻ｔ１までの波形７１１（簡略化のためほぼ直線的に示してある）は、実際に当該の関節で実測したロストモーション値に相当する。この場合、ＲＡＭ２０３やＨＤＤ２０４などに配置した記録領域のロストモーション値を参照することにより、ＣＰＵ２０１は時刻ｔ１以後のロストモーション値の波形７１２を線形近似や多項式近似のような補間演算によって予測することができる。
【０１５５】
一方、しきい値７１３は、上述の実施例同様に、当該関節に関して予め定めた限界値であって、図１７で予測された波形７１２は、時刻ｔ２においてしきい値７１３と交錯することが判る。この時刻ｔ１〜時刻ｔ２の期間は当該関節の余命（の時間長）に相当する。
【０１５６】
即ち、時刻ｔ１までに、ロストモーションの測定値の波形７１１を蓄積すれば、ＣＰＵ２０１は、時刻ｔ２においてロストモーションの測定値が限界のしきい値７１３に到達する、つまり時刻ｔ２において当該の関節の寿命が尽きる、と予測することができる。
【０１５７】
上記の余命予測は、ＣＰＵ２０１が図８のステップＳ２４や図１６のステップＳ４６のように、ロストモーション測定後の寿命判断を行うタイミングで実行することができる。即ち、図８のステップＳ２４や図１６のステップＳ４６のタイミング（上記の時刻ｔ１に相当）において、ＲＡＭ２０３やＨＤＤ２０４などに配置した記録領域のロストモーション値を参照する。そして、時刻ｔ１以後のロストモーション値の波形７１２を予測し、時刻ｔ２（あるいは時刻ｔ２までの時間長）を求め、ユーザ（管理者）に通知することができる。
【０１５８】
この余命通知は、図８のステップＳ２５や図１６のステップＳ４７に相当するタイミングで実行することができる。この場合、予測した時刻ｔ２（あるいは時刻ｔ２までの時間長）を通知するメッセージの出力には、ティーチングペンダント３００のディスプレイや、別途配置した不図示のディスプレイを用いることができる。また、同通知には、不図示の音声合成および音声出力手段を用いてもよい。
【０１５９】
なお、当然ながら、ロボットアーム（１０１）に実行させている工程（ロボットプログラム）が変更されれば、当該関節の消耗の進行の度合は変化する。即ち、図１７の波形７１１に対応するロストモーションを蓄積する期間は、同一の工程（ロボットプログラム）をロボットアーム（１０１）に実行させている期間である必要がある。
【０１６０】
このため、ロボットアーム（１０１）で実行させる工程（ロボットプログラム）を変更した場合は、そして、工程が変更になった時点からのロストモーション測定値の蓄積データを用いて予測値を推定すればよい。このための簡単な制御方法としては、工程変更時の工程変更時刻（たとえばｔｃ）を記憶させ、この工程変更時刻（ｔｃ）から時刻ｔ１までのロストモーション測定値の波形を用いて波形予測を行えばよい。また、工程変更を行った場合は、それ以前の古いロストモーション測定値は不要であるから、ロストモーション測定値の蓄積データはＲＡＭ２０３やＨＤＤ２０４（あるいは他の不揮発メモリ）などに配置した記録領域上で消去してしまってもよい。
【０１６１】
以上のように、本実施例６によれば、関節（の減速機）の余命を予測して、ユーザ（管理者）にその予測結果を通知することができるため、ユーザ（管理者）は関節部品（あるいはロボットアーム全体）の交換作業などの予防的な措置を講じることができる。このような関節部品（あるいはロボットアーム全体）の交換作業などの予防的な措置は、定期点検などの保守タイミングにおいて実施することができ、突発的に生産ラインを停止させて補修を行う必要がなくなる。このため、物品の生産ラインの稼働効率を低下させることがなく、ロボットアームを用いて極めて効率的な物品の生産が可能となる。
【０１６２】
以上、本発明のいくつかの実施例について説明したが、本発明は上述した実施例に限定されるものではない。また、上記各実施例に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は本発明の実施例に記載されたものに限定されるものではない。
【０１６３】
例えば、上記各実施例では、説明の都合上、垂直多関節構成のロボットアームを例示したが、本発明のロボット装置の関節のロストモーションの測定技術は水平ロボットアーム（スカラロボット）などにも適用することができる。
【０１６４】
また、上記各実施例の測定制御やロボット制御の各機能は、例えば制御装置２００の主制御部としてのＣＰＵ２０１により実行される。従って、上述した各機能は、例えば制御プログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することよって実現することができる。この場合、記録媒体から読み出されたプログラム自体が上述した実施例の機能を実現することになり、プログラム自体、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体は本発明を構成することになる。
【０１６５】
また、上記各実施例では、上記のコンピュータ読み取り可能な記録媒体の一例として例えばＨＤＤ２０４を例示したが、本発明に係る制御プログラムの記録媒体はＨＤＤ２０４に限定されるものではない。本発明に係る制御プログラムはコンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図３に示すＲＯＭ２０２、外部記憶装置３１２、記録ディスク３３１等を用いてもよい。例えば、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード（フラッシュメモリ）、ＲＯＭ等を用いることができる。また、本発明に係る制御プログラムを、ネットワークを介してダウンロードしてコンピュータに実行させるようにしてもよい。
【０１６６】
また、コンピュータが読み出したプログラムコードを本発明に係る実行することにより、機能が実現されるだけに限定するものではない。例えば本発明に係るプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって上記各実施例の機能が実現される場合も含まれる。
【０１６７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって本発明に係る機能が実現される場合も含まれる。
【０１６８】
本発明は、上述の実施例の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１６９】
１…サーボモータ（モータ）、１０…入力側エンコーダ（第１の角度センサ）、１１…減速機（変速機）、１６…出力側エンコーダ（第２の角度センサ）、１００…ロボットアーム、１１１〜１１６…関節、２００…制御装置、２０１…ＣＰＵ（演算部）、２０４…ＨＤＤ（記憶部）、３００…ティーチングペンダント、５００…ロボット装置、Ｗ…ワーク。
【図１】
2017019080.tif 000003
【図２】
2017019080.tif 000004
【図３】
2017019080.tif 000005
【図４】
2017019080.tif 000006
【図５】
2017019080.tif 000007
【図６】
2017019080.tif 000008
【図７】
2017019080.tif 000009
【図８】
2017019080.tif 000010
【図９】
2017019080.tif 000011
【図１０】
2017019080.tif 000012
【図１１】
2017019080.tif 000013
【図１２】
2017019080.tif 000014
【図１３】
2017019080.tif 000015
【図１４】
2017019080.tif 000016
【図１５】
2017019080.tif 000017
【図１６】
2017019080.tif 000018
【図１７】
2017019080.tif 000019