(57)【要約】【課題】多関節ロボットに他の物体との干渉等の異常が発生した際に、関節ごとの負荷状態を正確に見積もって個別の関節の損傷の可能性を誤差少なく評価できるロボットシステムの制御方法を提供する。【解決手段】記録装置０５は、エンコーダの出力に基づく関節ごとの移動情報とモータの出力に基づく関節ごとの負荷情報とを継続的に記録している。制御コントローラ０２がロボット０１の動作の異常を検知してロボット０１を停止させる。その後、負荷解析装置０６が、異常を検知する前からロボット０１が実際に停止するまでに記録された移動情報及び負荷情報に基づいて、複数の関節における最大負荷を計算して、故障部品特定装置０７が計算結果に基づいて、部品が損傷した関節を特定する。表示装置０８が、損傷した関節を特定する情報を出力する。【選択図】図１
2015217468.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンク部が関節で連結され、それぞれの関節を個別に駆動する複数のモータと、それぞれの関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットと、
前記複数のモータを制御する制御部と、を有するロボットシステムの制御方法において、
前記制御部が、前記検知装置の出力に基づく関節ごとの移動情報を記録する記録工程と、
前記制御部が、前記多関節ロボットの動作の異常を検知して前記多関節ロボットを停止させる停止工程と、
前記制御部が、少なくとも前記異常の検知をする前から前記異常を検知するまでに記録された前記移動情報に基づいて前記複数の関節における損傷した関節を特定する特定工程と、
前記制御部が、損傷した関節を特定する情報を出力する出力工程と、を有することを特徴とするロボットシステムの制御方法。
【請求項２】
複数のリンク部が関節で連結され、それぞれの関節を個別に駆動する複数のモータと、それぞれの関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットと、
前記複数のモータを制御する制御部と、を有するロボットシステムの制御方法において、
前記制御部が、前記モータの出力に基づく関節ごとの負荷情報と前記検知装置の出力に基づく関節ごとの移動情報とを記録する記録工程と、
前記制御部が、前記多関節ロボットの動作の異常を検知して前記多関節ロボットを停止させる停止工程と、
前記制御部が、少なくとも前記異常の検知をする前から前記異常を検知するまでに記録された前記負荷情報及び前記移動情報に基づいて前記複数の関節における損傷した関節を特定する特定工程と、
前記制御部が、損傷した関節を特定する情報を出力する出力工程と、を有することを特徴とするロボットシステムの制御方法。
【請求項３】
前記特定工程は、前記異常を検知する前から前記多関節ロボットの停止までに記録された前記負荷情報及び前記移動情報に基づいて前記複数の関節における損傷した関節を特定することを特徴とする請求項２に記載のロボットシステムの制御方法。
【請求項４】
前記記録工程は、前記多関節ロボットの動作中、所定時間分の前記負荷情報及び前記移動情報を保持して前記所定時間を超える分の前記移動情報を消去することを特徴とする請求項２又は３に記載のロボットシステムの制御方法。
【請求項５】
前記関節は、前記モータの回転を減速してそれぞれの関節を個別に駆動する変速機と、前記変速機に駆動される部材を個別に回転自在に保持するベアリングと、を有し、
前記特定工程は、特定した前記関節における前記変速機と前記ベアリングのいずれが損傷したかを特定することを特徴とする請求項１乃至４のいずれか１項に記載のロボットシステムの制御方法。
【請求項６】
前記制御部の出力を表示する表示部を有し、
前記出力工程は、前記異常に伴って前記複数の関節のそれぞれに発生した最大負荷を求めて前記表示部に表示することを特徴とする請求項１乃至５のいずれか１項に記載のロボットシステムの制御方法。
【請求項７】
前記出力工程は、前記異常に伴って前記複数の関節のそれぞれに発生した負荷の時間的な変化を表す負荷曲線を求めて前記表示部に表示することを特徴とする請求項１乃至６のいずれか１項に記載のロボットシステムの制御方法。
【請求項８】
請求項１乃至７のいずれか１項に記載のロボットシステムの制御方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを記録した記録媒体。
【請求項１０】
複数のリンク部が関節で連結され、それぞれの関節を個別に駆動する複数のモータと、それぞれの関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットと、
前記モータの出力に基づく関節ごとの負荷情報と前記検知装置の出力に基づく関節ごとの移動情報とを記録し、前記負荷情報と前記移動情報の少なくとも一方に基づいて前記多関節ロボットの動作の異常を検知して前記多関節ロボットを停止させ、少なくとも前記異常を検知する前から前記異常を検知するまでに記録された前記負荷情報及び前記移動情報に基づいて前記複数の関節における損傷した関節を特定して、損傷した関節を特定する情報を出力する制御部と、を有することを特徴とするロボットシステム。
【請求項１１】
１個のリンク部と当該リンク部に連結された１個の関節とを交換単位として一体に組み立てた交換可能ユニットを少なくとも１つ備えることを特徴とする請求項１０に記載のロボットシステム。
【請求項１２】
複数のリンク部が関節で連結され、それぞれの関節を個別に駆動する複数のモータと、それぞれの関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットと、前記多関節ロボットの動作の異常を検知して前記多関節ロボットを停止させる制御部と、を備えたロボットシステムに接続される診断装置であって、
前記多関節ロボットの動作中に前記ロボットシステムから継続的に入力される前記負荷情報と前記移動情報とを記録し、前記制御部が前記多関節ロボットを停止させた後に、少なくとも前記制御部が前記異常を検知する前から前記異常を検知するまでに記録された前記負荷情報及び前記移動情報に基づいて損傷した関節と当該関節において損傷した部品とを特定して、当該関節及び当該部品を特定する情報を出力することを特徴とする診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リンク部を連結する関節を個別に駆動する複数のモータと、リンク部を連結する関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットの制御方法に関する。
【背景技術】
【０００２】
個別のリンク部の両端を回動関節で連結して複数のリンク部の折れ曲がり動作を可能にした多関節ロボットが広く用いられている。多関節ロボットでは、複数のリンク部のいくつかがリンク部の長手方向に垂直な断面内でねじる方向に回転するねじり関節を備えているので、多関節ロボットは、６軸運動、７軸運動といった人間の腕に近い複雑な動作が可能である。
【０００３】
多関節ロボットは、試運転時、ティーチング時、実動作時のいずれにおいても、他の物体に干渉する可能性がある。多関節ロボットが他の物体に干渉すると、特定の関節に過負荷を生じて原点ずれが発生したり、関節を構成する減速機、ベアリング等の部品に損傷が発生したりする可能性がある。そして、関節に原点ずれが発生した状態、あるいは関節の部品に損傷が発生した状態で多関節ロボットを動作させると、動作精度が低下してワークを落下させたり、消費電力が増大したり、他の多関節ロボットに干渉したりする可能性がある。そのため、多関節ロボットの動作中に、複数の関節における動作異常を早期に発見して、部品交換、再調整等の必要な処置を行うことが求められている。
【０００４】
特許文献１のロボットシステムは、多関節ロボットの複数の関節において関節ごとに設けられたモータの負荷情報（電流）と、モータごとに設けられたエンコーダの出力と、を制御部が取り込んで関節ごとの現在の負荷状態をリアルタイムに演算している。そして、いずれかの関節において許容範囲を超える負荷が演算されると、多関節ロボットを停止させて、許容範囲を超えた負荷が発生した関節を通知している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２０２９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のロボットシステムでは、多関節ロボットのそれぞれの関節における負荷状態を正確に判断できない。例えば、多関節ロボットのアーム部が他の物体に干渉したとき、２つの別の関節においてモータの電流変化とエンコーダの出力変化とが等しかったとしても、２つの関節に発生する最大負荷は大きく異なってくる。干渉する前の２つの関節の回転方向や負荷状態に応じて、干渉によって２つの関節に発生する最大負荷に大きな違いが発生するので、部品の破損状況を正確に判断できない。
【０００７】
本発明は、多関節ロボットに他の物体との干渉等の異常が発生した際に、関節ごとの負荷状態を正確に見積もって個別の関節の損傷の可能性を誤差少なく評価できるロボットシステムの制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明のロボットシステムの制御方法は、複数のリンク部が関節で連結され、それぞれの関節を個別に駆動する複数のモータと、それぞれの関節の回転量を個別に検知する複数の検知装置と、を有する多関節ロボットと、前記複数のモータを制御する制御部と、を有するロボットシステムの制御方法である。そして、前記制御部が、前記検知装置の出力に基づく関節ごとの移動情報を記録する記録工程と、前記制御部が、前記多関節ロボットの動作の異常を検知して前記多関節ロボットを停止させる停止工程と、前記制御部が、少なくとも前記異常の検知をする前から前記異常を検知するまでに記録された前記移動情報に基づいて前記複数の関節における損傷した関節を特定する特定工程と、前記制御部が、損傷した関節を特定する情報を出力する出力工程と、を有する。
【発明の効果】
【０００９】
本発明のロボットシステムの制御方法では、関節ごとの移動情報を記録しているので、異常が検知された後でも、異常の検知がされる前の移動情報を使用して異常発生時の関節ごとの負荷状態の経時変化を求めることができる。したがって、異常の検知がされる前の移動情報を使用できない場合に比較して個別の関節の負荷状態を正確に見積もって損傷の可能性を誤差少なく評価できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１のロボットシステムの全体構成の説明図である。
【図２】ロボットの関節の構造の説明図である。
【図３】予備リンクユニットの交換の説明図である。
【図４】故障個所表示制御のフローチャートである。
【図５】故障個所判定制御のフローチャートである。
【図６】ロボットが他物体に干渉したときのエンコーダ情報の説明図である。
【図７】ロボットが他物体に干渉したときのモータ出力情報の説明図である。
【図８】実施の形態２のロボットシステムの構成の説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１２】
＜実施の形態１＞
図１は実施の形態１のロボットシステムの全体構成の説明図である。図１に示すように、実施の形態１のロボットシステムＲＳでは、制御部ＳＢは、生産ラインに搭載されたロボット０１が周囲の装置などに衝突した時に、ロボット０１の故障部品を特定する。制御部ＳＢは、記録装置０５に記録された衝突直前のロボット０１の各関節の動作スピードや動作方向から、ロボット０１のどの関節のどの部品に破損が生じたのかを特定する。
【００１３】
（多関節ロボット）
図１に示すように、ロボット０１は、初期姿勢を取っている。ロボット０１は、先端のリンク０６０にエンドエフェクタ０７０を設けた６軸多関節ロボットである。
【００１４】
ロボット０１のベース１００とリンク０１０とは、Ｚ軸方向の回転軸の周りで回転するねじり関節０１１で接続されている。ねじり関節０１１は初期姿勢から±１８０度の可動範囲を有する。ねじり関節０１１はＪ１関節と略称する。
【００１５】
ロボット０１のリンク０１０とリンク０２０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０２１で接続されている。回動関節０２１は初期姿勢から±８０度の可動範囲を有する。ねじり関節０２１はＪ２関節と略称する。
【００１６】
ロボット０１のリンク０２０とリンク０３０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０３１で接続されている。回動関節０３１は初期姿勢から±７０度の可動範囲を有する。ねじり関節０３１はＪ３関節と略称する。
【００１７】
ロボット０１のリンク０３０とリンク０４０とは、Ｘ軸方向の回転軸の周りで回転するねじり関節０４１で接続されている。ねじり関節０４１は初期姿勢から±１８０度の可動範囲を有する。ねじり関節０４１はＪ４関節と略称する。
【００１８】
ロボット０１のリンク０４０とリンク０５０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０５１で接続されている。回動関節０５１は初期姿勢から±１２０度の可動範囲を有する。回動関節０５１はＪ５関節と略称する。
【００１９】
ロボット０１のリンク０５０とリンク０６０とは、Ｘ軸方向の回転軸の周りで回転するねじり関節０６１で接続されている。ねじり関節０６１は初期姿勢から±２４０度の可動範囲を有する。ねじり関節０６１はＪ６関節と略称する。
【００２０】
ロボット０１のリンク０６０の先には、生産ラインにおいて組み立て作業や移動作業を行うための電動ハンドやエアハンドなどのエンドエフェクタ０７０が接続されている。
【００２１】
ロボット０１は、制御コントローラ０２によって制御されて所定の動作を行う。制御コントローラ０２は、演算処理を実行するＣＰＵ、ロボット０１を作動させてワークの組み立てを実行させるプログラム及びデータを記録したＲＯＭ、演算処理上の一時記憶を行うＲＡＭなどが搭載された制御用コンピュータである。
【００２２】
操作パネルＳＰは、表示部の一例である表示装置０８と操作スイッチを備える。オペレータは、操作パネルＳＰを通じて、ロボット０１に各種の指令操作を実行し、各種の動作モードを設定することができる。
【００２３】
ティーチングペンダント０４は、人が手動でロボット０１を操作するためのリモコン装置である。オペレータは、ティーチングペンダント０４を操作して、動作させたい関節軸を選択し、スピード、関節の回転方向を数値で指定して、ロボット０１を実際に動作させることができる。さらに、予めプログラムで準備されている何種類かの連続動作をティーチングペンダント０４で選択して実行させることもできる。
【００２４】
周辺装置０９は、ロボット０１が実行する組み立て作業や搬送作業をサポートする装置である。周辺装置０９は、ガイドレール０９１に沿って移動装置０９０がスライドする機構を持つ。ロボット０１は、移動装置０９０によって搬送された本体ワークＷを作業台ＳＤに載せ替えて部品を組み付け、部品が組み付けられた本体ワークＷを作業台ＳＤに戻す。
【００２５】
（関節構造）
図２はロボットの関節の構造の説明図である。図１に示すねじり関節０１１、０４１、０６１、回動関節０２１、０３１、０５１は、個別にモータ、エンコーダ、ベアリング、減速機を備えた基本的に共通の構造を有する。そのため、ねじり関節０４１について説明し、他の関節に関する重複した説明を省略する。
【００２６】
図２に示すように、モータ４０３は、ねじり関節０４１を回転させるためのモータである。
【００２７】
減速機４０５は、モータ４０３の回転を減速してリンク０４０のフレーム４０２を回転させるハーモニックドライブ（登録商標）減速機である。
【００２８】
ベアリング４０６は、リンク０４０がＸ軸方向に位置決められているとき、リンク０４０をＸ軸の周りでねじり回転自在に支持するクロスローラベアリングである。
【００２９】
エンコーダ４０３Ｅは、モータ４０３の回転角度に比例した個数のパルスを出力するインクリメンタルエンコーダである。エンコーダ４０３Ｅは、リンク０３０とリンク０４０の原点合わせを行うための原点合わせセンサを含む。
【００３０】
制御コントローラ０２は、電源が投入されると、エンコーダ４０３Ｅの出力を参照してリンク０３０とリンク０４０の原点合わせを行う。その後、エンコーダ４０３Ｅの出力パルスのパルスカウントによってモータ４０３の回転速度と回転角度とを認識して、リンク０３０とリンク０４０のねじれ角度をフィードフォワード制御する。
【００３１】
以上説明したように、多関節ロボットの一例であるロボット０１は、複数のリンク部が関節で連結されている。ロボット０１のそれぞれの関節は、関節を個別に駆動する複数のモータ４０３とそれぞれの関節の回転量を個別に検知する複数の検知装置の一例であるエンコーダ４０３Ｅとを有する。制御コントローラ０２は、エンコーダ４０３Ｅの出力に基づいてモータ４０３を制御する。
【００３２】
ところで、ロボット０１が他の物体に干渉したとき、リンク０１０、０２０、０３０、０４０、０５０のフレーム構造が干渉の負荷によって塑性変形してロボット０１が変形する可能性もある。しかし、リンク０１０、０２０、０３０、０４０、０５０のフレーム構造はロボット０１の構造上、修理や交換が難しい。このため、リンク０１０、０２０、０３０、０４０、０５０のフレーム構造には、減速機４０５やベアリング４０６よりも大きな安全率を持たせて設計がされている。そうする事で、ロボット０１が他の物体と干渉した際には、容易に修理、部品交換が可能な減速機４０５、ベアリング４０６を選択的に故障させている。
【００３３】
（異常の発生）
近年、多関節ロボットを組み込んだ生産ラインによる様々な製品の組み立てが行われている。カメラやプリンターなどの製品群では、機種が多くて製品サイクルが比較的に短いため、多関節ロボットを組み込んだ生産ラインの変更の頻度が高い。
【００３４】
近年、市場のニーズとして、様々な製品における少量多品種化が進んでいる。多関節ロボットを組み込んだ生産ラインがこのような少量多品種生産に応えていくためには、生産ラインの組み換えに際して、立ち上げを速くすることが必要となっている。
【００３５】
生産ラインの変更や組み換えでは、生産ラインの立ち上げにおいて、多関節ロボットに作業を教える教示作業（ティーチング）を行う場面でトラブルが発生する可能性がある。
【００３６】
図１に示すように、ロボット０１を生産ラインで使うためには、ロボット０１に動作位置と作業内容を覚えさせる教示作業が必要である。教示作業時、オペレータは、ティーチングペンダント０４を使って手動操作でロボットを動作させる。このとき、オペレータは、人為的ミスによってロボット０１を周辺装置０９へ衝突させてしまう場合がある。生産ラインでは、空間の使用効率を向上させるために、狭い空間にロボット０１と周辺装置０９を設置しているため、少しの操作ミスや設定ミスでも、ロボット０１と周辺装置０９の衝突が発生し易い。
【００３７】
また、ロボット０１に動作を教える教示作業が完了した後、ロボット０１と周辺装置０９とを連動して動作させる場面でトラブルが発生する可能性もある。この時、ロボット０１と周辺装置０９とを個別に単独で動作させた時には発生しなかった装置間の干渉が生じる場合がある。
【００３８】
ロボット０１が周辺装置０９や他のロボットや物体に干渉すると、ロボット０１のねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１のいずれかに原点ずれ、塑性変形、部品ずれ等による狂いが発生する可能性がある。狂いを放置したままロボット０１の運転を継続させると、ワークの組み立て精度が低下する可能性がある。
【００３９】
そのため、ロボット０１が物体に干渉する等して緊急停止した際には、故障個所の有無を検査して、故障個所を特定することが必要となる。従来の故障個所特定方法は、ロボット０１の関節のブレーキを解除して、サービスマンが手でロボット０１の関節部を動かして、回転時に手に伝わる違和感を検査する方法である。あるいは、関節で連結される２つのリンクにピン孔を設け、関節の原点ずれを確認するために、ピン孔に原点ピンを挿入して原点ずれの有無を確認する方法である。これらの方法は、熟練を要して作業が難しく非常に時間がかかるので、もっと簡単に短時間でロボット０１の故障箇所を特定できる方法が求められている。
【００４０】
そこで、実施の形態１では、ロボット０１の干渉が発生した場合に、ロボット０１の関節軸の故障の有無を速やかに自動判定するプログラムを組み込んでいる。このプログラムは、ロボット０１の関節軸の故障の有無のみならず、どの部品に故障が発生しているのかを自動的に予測してオペレータに通知する。
【００４１】
（制御ユニット）
図１に示すように、制御部ＳＢは、演算処理を実行するＣＰＵ、プログラム及びデータを記録したＲＯＭ、演算処理上の一時記憶を行うＲＡＭなどが搭載された制御用コンピュータである。制御部ＳＢは、所定のプログラムに従って周辺装置０９とロボット０１とを制御して、本体ワークＷの組み立て作業を実行する。
【００４２】
制御ユニットＳＵは、制御部ＳＢ、記録装置０５、負荷解析装置０６、及び故障部品特定装置０７を含んでロボットシステムＲＳに組み込まれている。制御ユニットＳＵは、制御コントローラ０２、記録装置０５、負荷解析装置０６、故障部品特定装置０７から取得したデータを処理してロボット０１の関節軸の故障の有無を判定して故障個所を特定する。制御ユニットＳＵは、ロボット０１の関節軸の故障の有無の判定結果と故障個所の特定結果を表示装置０８に表示する。
【００４３】
図２に示すように、ロボット０１が他の物体と干渉すると、モータ４０３には想定外の電流が流れ、想定外の電流量は、干渉が発生した場所、そのときの移動速度、回動角度、他の関節の状態に応じて違ってくる。同時に、エンコーダ４０３Ｅは、プログラムから外れた想定外の変位や衝撃を検知して出力する。
【００４４】
制御ユニットＳＵは、ロボット０１の動作中に干渉が発生すると、ロボット０１の動作の異常を検知してロボット０１の停止工程を実行する。そして、ロボット０１を停止させた状態で、演算能力をロボット０１の各関節の損傷判断に振り向ける。記録装置０５からモータ４０３の電流値及びエンコーダ４０３Ｅの出力値を、干渉発生よりも過去に遡って収集して、演算上の仮想空間で干渉の状況を再現して、ねじり関節０４１の損傷の有無を評価する。
【００４５】
（記録装置）
制御ユニットＳＵは、記録装置０５に、ロボット０１の動作中、ロボット０１および周辺装置０９の動作データを記録する。記録装置０５には、１０ｍｓｅｃごとの時系列データで、ロボット０１のねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１のエンコーダから取得した動作スピード、関節角度、関節ごとのモータの電流値が刻々と記録される。移動装置０９０の位置センサのデータから取得した周辺装置０９のスピード、移動位置も記録される。制御部ＳＢは、記録装置０５における取得から５秒間が経過したデータを刻々と消去する。
【００４６】
記録装置０５は、記録工程において、エンコーダ４０３Ｅの出力に基づく関節ごとの移動情報とモータの出力に基づく関節ごとの負荷情報とを継続的に記録する。
【００４７】
（負荷解析装置）
負荷解析装置０６は、演算処理を実行するＣＰＵ、プログラム及びデータを記録したＲＯＭ、演算処理上の一時記憶を行うＲＡＭなどが搭載されたデータ処理用コンピュータである。負荷解析装置０６は、ロボット０１、周辺装置０９の動力学的な計算を行い、ロボット０１に他物体が干渉したときにロボット０１の各関節に生じた衝撃力の大きさと向きを計算する。
【００４８】
負荷解析装置０６は、特定工程において、少なくとも異常の検知をする前から異常を検知するまでに記録された負荷情報と移動情報とに基づいてロボット０１の複数の関節に作用した力の大きさと方向とを特定する。
【００４９】
（故障部品特定装置）
故障部品特定装置０７は、演算処理を実行するＣＰＵ、各部品の許容荷重を記録したＲＯＭ、演算処理上の一時記憶を行うＲＡＭなどが搭載されたデータ処理用コンピュータである。故障部品特定装置０７は、ロボット０１のねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１について負荷解析装置０６が算出した衝撃力の大きさと向きからロボット０１のどの部分のどの部品に故障が発生したのかを特定する。故障部品特定装置０７は、ＲＯＭに記録された各部品の許容荷重と負荷解析装置０６が算出した各部品の衝撃力の大きさとを比較して、各部品の故障発生の可能性を判定する。
【００５０】
故障部品特定装置０７は、負荷解析装置０６が特定した力の大きさと方向とに基づいて複数の関節における損傷した関節を特定し、さらに関節において損傷した部品を特定する。
【００５１】
（表示装置）
制御ユニットＳＵは、表示装置０８を作動させて損傷した関節を特定する情報を出力する出力工程を実行する。制御ユニットＳＵは、表示装置０８に、故障部品特定装置０７が特定した部品の故障発生の有無状況を表示して、オペレータへ干渉後の生産プロセスへの復帰に必要な処理を促す。
【００５２】
（リンク交換ユニット）
図３は予備リンクユニットの交換の説明図である。生産ラインで衝突などのトラブルが生じた場合、速やかに生産ラインを再開させることが求められる。しかし、図２に示すように、ロボット０１の関節部の構成は複雑で、故障個所を特定した後の修理作業にも膨大な時間が必要となる。よって、簡単に分解、組み立てが可能な構造に設計されたロボット０１が求められている。
【００５３】
図３の（ａ）に示すように、ロボット０１が故障するトラブルが生じた場合、生産ラインからロボット０１を取り外して修理エリアで修理を行い、再度、ロボット０１全体を生産ラインに設置することができる。ロボット０１は、関節軸で分解、組み立てができるように設計されているので、ロボット０１は、リンクユニット３０１を関節軸ごとに修理エリアへ持ち運んで分解、組み立てすることができる。
【００５４】
あるいは、ロボット０１から故障したリンクユニット３０１を関節軸で取り外して、図３の（ｂ）に示すように、予め準備していた予備リンクユニット３０３に交換することができる。この場合、ロボット０１を生産ラインから下ろすことなく、生産ラインに乗せたまま修理可能である。
【００５５】
ロボット０１は、先端部のリンクユニット３０１の強度の安全率が根元側の他のリンクユニット３０２に比べて小さく設計されているため、ロボット０１が周囲の物体に干渉した場合、安全率の小さい先端部のリンクユニット３０１が最初に壊れ易い。ロボット０１のベース０１内に、先端部の予備リンクユニット３０３を準備しているので、予備リンクユニット３０３をベース０１から取り出して、先端部のリンクユニット３０１に交換するだけで、速やかにロボット０１の修理を完了できる。図３の（ａ）における点線部Ａの断面構造が図２に示される。
【００５６】
図２に示すように、リンク０３０とリンク０４０とは、ねじり関節０４１において容易に分解ができる構造である。リンクユニット３０１は、リンク０４０とリンク０３０の間で分解して、ねじり関節０４１より先端側を容易に交換できる。リンクユニット３０１を分解すると、リンク０４０に、ねじり関節０４１を駆動させるためのモータ４０３、減速機４０５などの故障が発生しやすい部品が１セットで組み付けられている。
【００５７】
ねじり関節０４１は、モータ４０３、減速機４０５、クロスローラベアリング４０６を含む。モータ４０３は、ねじ４１０によってハウジング４０４に固定されている。ハウジング４０４は、ねじ４０９によってリンク０３０のフレーム４０１に固定されている。
【００５８】
クロスローラベアリング４０６は、減速機４０５の回転をリンク０４０のフレーム４０２に伝える回転案内機構を回転自在に支持するニードルベアリングである。クロスローラベアリング４０６の内輪は、ねじ４０７によってリンク０４０のフレーム４０２に固定されている。クロスローラベアリング４０６の外輪は、ねじ４０８によってモータハウジング４０４に固定されている。
【００５９】
ロボット０１は、ねじ４０９を取り外すと、リンク０４０から先のリンクユニット３０１をねじり関節０４１と一体に取り外すことが可能である。図３の（ｂ）に示すように、予備リンクユニット３０３を用意しておくことで、ねじ４０９だけでリンク０４０とねじり関節０４１とを一体に交換することができる。図３の（ａ）に示すように、実施の形態１では、リンクユニット３０１を、予備リンクユニット３０３に交換するだけなので、ロボット０１の関節軸の部品単位で修理するよりも速やかに修理を終えることが可能である。
【００６０】
図２に示すように、先端部のリンクユニット３０１は、修理が容易な構造を採用しているため、ロボット０１に故障が生じた場合の修理、復旧までの時間が短くて済む。ただし、図２に示したのは、ねじり関節０４１において容易に分解ができる構造の例であり、本発明は図２の構造には限定されない。
【００６１】
（異常発生時の制御）
図４は故障個所表示制御のフローチャートである。図１を参照して図４に示すように、制御部ＳＢは、生産ラインの開始が指令されると（Ｓ２１１）、ロボット０１、周辺装置０９の動作を開始させる。
【００６２】
制御部ＳＢは、ロボット０１の刻々の動作情報、周辺装置０９の刻々の動作情報を記録装置０５に所定時間分記録して刻々更新する（Ｓ２１２）。
【００６３】
制御部ＳＢは、それぞれのモータの電流値と基準電流の差分及びエンコーダの出力値と基準位置との差分が所定許容範囲を超えると、ロボット０１において他物体との干渉が発生したと判断する。制御部ＳＢは、ロボット０１で衝突が発生すると（Ｓ２１３のＹＥＳ）、制御コントローラ０２を通じてロボット０１及び周辺装置０９の動作を停止させる（Ｓ２１４）。制御部ＳＢは、停止判断後、実際にロボット０１が停止するまで、ロボット０１の刻々の動作情報、周辺装置０９の刻々の動作情報を記録装置０５に記録する。
【００６４】
負荷解析装置０６は、ロボット０１の停止後、衝突前から衝突を経て停止するまでのすべてのモータの電流値の時系列データと、すべてのエンコーダの出力値の時系列データとを記録装置０５から取得する（Ｓ２１５）。
【００６５】
負荷解析装置０６は、ロボット０１の停止後、モータの電流値の時系列データとエンコーダの出力値の時系列データとを用いてロボット０１と他物体の衝突位置と、衝突時の各関節の移動速度とを特定する（Ｓ２１６）。
【００６６】
負荷解析装置０６は、ロボット０１と他物体の衝突位置と、衝突時の各関節の移動速度とを用いて衝突から停止までのロボット０１の動作をシミュレーションして関節ごとの衝突負荷を求める（Ｓ２１７）。負荷解析装置０６は、記録装置０５に保存された衝突前のロボット０１及び周辺装置０９の動作データから衝突発生時のロボット０１の各リンクの姿勢と移動方向と移動速度とを計算する。負荷解析装置０６は、衝突発生から停止までのロボット０１及び周辺装置０９の動作データからロボット０１の各関節における衝撃の方向と大きさを計算する。負荷解析装置０６は、衝突から停止までの関節ごとの衝突負荷の曲線を求め、関節ごとの衝突負荷の時間的変化の曲線を表示装置０８に出力する。
【００６７】
故障部品特定装置０７は、関節ごとに衝突負荷の曲線と許容荷重とを比較して、故障した可能性のある関節の有無を判定し、故障した可能性のある関節がある場合には、その関節の場所と故障した部品名とを表示装置０８に表示させる（Ｓ２１８）。負荷解析装置０６は、エンコーダの出力値とモータの電流値の時系列データから計算した負荷によってロボット０１の各関節に故障が発生したかどうかを判定する（Ｓ２１９のＹｅｓ、Ｓ２２０のＹｅｓ、２２１のＹｅｓ）。
【００６８】
故障部品特定装置０７は、ロボット０１の故障個所を特定する。故障部品特定装置０７は、計算した故障の可能性の高い関節の番号と、その関節内で故障した可能性が高い部品名とを表示装置０８に表示させる（Ｓ２２６、Ｓ２２４、Ｓ２２２）。故障部品特定装置０７は、故障した可能性の高い関節を特定するとともに、その故障に対する対応を決定して表示装置０８に表示する（Ｓ２２６、Ｓ２２４、Ｓ２２２）。そして、サービスマンによって故障に対する対応が実施されると（Ｓ２２７のＹｅｓ、Ｓ２２５のＹｅｓ、Ｓ２２３のＹｅｓ）、生産ラインを再開する（Ｓ２３０）。
【００６９】
（異常発生時の対処）
故障部品特定装置０７は、ロボット０１の故障箇所が２つ以上あると判断した場合にはロボット０１の全体交換を判断する。故障個所が多くて修理に時間が必要な場合、もしくは修理不能な場合、ロボット０１の全体交換を判断する（Ｓ２１９のＹｅｓ）。
【００７０】
操作パネルＳＰの表示に従ってサービスマンがロボット０１を生産ラインから取り外し、予備として保有していた新しいロボット０１を生産ラインに取り付けて、表示装置０８に付設された操作パネルに交換完了を入力する（Ｓ２２６）。
【００７１】
制御部ＳＢは、ロボット０１の全体交換が完了すると、生産工程を再開する（Ｓ２２７）。ただし、予備のロボット０１を準備して保存しておくには多大なコストが発生するので、ロボット０１の全体交換は、あまり好ましくない方法である。
【００７２】
故障部品特定装置０７は、ロボット０１の故障個所が１つの場合、ロボット０１の故障個所を特定して部品交換や修理を行わせる判断をする。故障部品特定装置０７は、ユニット化された設計がされたロボット０１、周辺装置０９でユニットの取り外し、取り付けで修理が完了する場合にはユニット交換を判断する（Ｓ２２０のＹｅｓ）。
【００７３】
故障部品特定装置０７は、ロボット０１の関節を構成する機械部品の一部が故障した場合は、部品交換を行わせる判断をする（Ｓ２２１のＹｅｓ）。故障部品特定装置０７は、故障個所が無い場合には現状のままを判断して（Ｓ２２１のＮｏ）、生産ライン再開を行う（Ｓ２３０）。
【００７４】
以上説明したように、ロボットシステムＲＳは、１個のリンク部と当該リンク部に連結された１個の関節とを交換単位として一体に組み立てた交換可能ユニットを少なくとも１つ備える。
【００７５】
（故障個所判定制御）
図５は故障個所判定制御のフローチャートである。図１を参照して図５に示すように、負荷解析装置０６は、ロボット０１の干渉が発生した時にねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１にかかる個別の衝撃力を求める（Ｓ２１７）。負荷解析装置０６は、記録装置０５に記録された、ロボット０１が他物体に干渉する前から干渉が発生して停止するまでのロボット０１の動作の時系列データを用いて、ロボット０１及び周辺装置０９の動作と、衝撃力の伝播をシミュレーション計算する。
【００７６】
故障部品特定装置０７は、負荷解析装置０６による衝撃力の伝播のシミュレーション結果に基づいて、ロボット０１のねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１に発生する負荷の大きさと方向を個別に計算する（Ｓ２１７）。
【００７７】
ところで、関節にかかる負荷が等しくても、関節の回転方向と負荷の方向とのずれに応じて間接内で損傷を受ける部品は異なってくる。そのため、他物体との干渉が発生したとき、関節軸の方向が異なると、間接内で破損している可能性のある部品は異なってくる。図１に示す姿勢でロボット０１が他物体に干渉したとき、回動関節０２１、０３１、０５１に作用するＹ軸回転のモーメントは関節軸の減速機に損傷を与える可能性があり、それ以外の方向の負荷は関節軸のベアリングに損傷を与える可能性がある。ねじり関節０４１、０６１に作用するＸ軸回転のモーメントは関節軸の減速機に損傷を与える可能性があり、それ以外の方向の負荷は関節軸のベアリングに損傷を与える可能性がある。
【００７８】
例えば、図２に示すように、リンク０４０がＸ軸方向に位置決められているとき、ねじり関節０４１の関節軸の回転方向はＸ軸周りである。そして、他物体との干渉によってねじり関節０４１に作用するＸ軸回転のモーメントは、関節軸を構成する減速機４０５に損傷を与える可能性がある。それ以外の方向の負荷はベアリング４０６に損傷を与える可能性がある。
【００７９】
そこで、故障部品特定装置０７は、他物体との干渉によってねじり関節０４１に発生するねじり関節０４１の回転方向のモーメントを計算する（Ｓ２０６１）。故障部品特定装置０７は、計算したねじり関節０４１の回転方向のモーメントのピーク値と減速機４０５の瞬時許容最大トルクとを比較して減速機４０５の故障判定を行う（Ｓ２０６２）。衝突によって発生したモーメントのピーク値が減速機４０５の瞬時許容最大トルクよりも大きければ、減速機４０５に故障が発生したと判定する（Ｓ２０６３）。衝突によって発生したモーメントのピーク値が減速機４０５の瞬時許容最大トルクよりも大きくなければ減速機４０５に故障が発生していないと判定する（Ｓ２０６４）。
【００８０】
故障部品特定装置０７は、他物体との干渉によってねじり関節０４１に発生するねじり関節０４１の回転方向以外の負荷を計算する（Ｓ２０６６）。そして、ねじり関節０４１の回転方向以外の負荷のピーク値をベアリング４０６の静許容荷重に比較してベアリング４０６の故障の有無を判定する（Ｓ２０６７）。負荷のピーク値がベアリング４０６の静許容荷重よりも大きければベアリング４０６が故障したと判定し（Ｓ２０６８）、負荷のピーク値がベアリング４０６の静許容荷重より小さければベアリング４０６が故障していないと判定する（Ｓ２０６９）。
【００８１】
故障部品特定装置０７は、同様の負荷計算と故障判定とを、ロボット０１のねじり関節０１１、０４１、０６１及び回動関節０２１、０３１、０５１について個別に実施する（Ｓ２０６１〜Ｓ２０６９）。故障部品特定装置０７は、他物体との干渉によってロボット０１のどの関節軸のどの部品に故障が発生したのかを判定して、表示装置０８に表示させる（Ｓ２０７０）。
【００８２】
以上説明したように、変速機の一例である減速機４０５は、モータ４０３の回転を減速して関節を個別に駆動する、ベアリングの一例であるベアリング４０６は、減速機４０５に駆動される部材の一例であるリンク０４０を個別に回転自在に保持する。故障部品特定装置０７は、損傷を判断した関節における減速機４０５とベアリング４０６のいずれが損傷したかを特定する。
【００８３】
（表示出力）
図６はロボットが他物体に干渉したときの検知情報の説明図である。図７はロボットが他物体に干渉したときの各関節の負荷表示の説明図である。
【００８４】
図６は、一例として、図１に示すロボット０１のエンドエフェクタ０７０が隣接する別のロボットに干渉した際のねじり関節０６１におけるエンコーダ出力とモータ電流の変化を示したものである。干渉が発生して、ねじり関節０６１の減速機が破損してエンコーダにずれが発生している。エンコーダの出力値（現在位置）と位置指令された位置との差が閾値を上回ると制御部ＳＢは制御コントローラ０２にエラーコードを出力してロボット０１を緊急停止させている。
【００８５】
干渉の発生後、ロボット０１のねじり関節０６１に組み込まれたモータ（ＡＣサーボモータ）は、エンコーダの現在位置を位置指令された位置へ一致させようと電流が増大し、その後、脱調を生じて波形が乱れている。記録装置０５は、その一部始終を記録している。
【００８６】
負荷解析装置０６は、回動関節０２１、０３１、０５１及びねじり関節０１１、０４１、０６１のエンコーダ出力とモータ電流の記録装置０５による記録データを解析して、干渉に伴って各関節に発生した負荷の時間的な変化を表す負荷曲線を求める。故障部品特定装置０７は、求められた負荷曲線に基づいて、干渉に伴って各関節の減速機とベアリングに発生した最大負荷を求め、減速機及びベアリングの許容負荷を超えていれば破損と判断する。
【００８７】
図７に示すように、操作パネルＳＰの表示装置０８は、故障部品特定装置０７による最大負荷の解析結果を一覧表示する。表示装置０８は、回動関節０２１、０３１、０５１及びねじり関節０１１、０４１、０６１を、上述したように、Ｊ１関節〜Ｊ６関節と表記している。ベアリングの許容負荷ｂと減速機の許容負荷ｇとを表示し、Ｊ１関節〜Ｊ６関節のベアリングと減速機の破損状況の評価結果を視覚的に表示する。
【００８８】
（比較例１）
特許文献１では、ロボットに所定の動作をさせたときのモータ電流を以前の状態と比較したり、予め設定した値と比較したりすることで、実際に故障している関節を特定している。しかし、この方法には３つの問題がある。
【００８９】
１つ目は、ロボットのどの関節で故障が生じているのかを判定できるが、その関節のどの部品に故障が生じたのかは判定できないという問題である。ロボットの関節に設置される機械要素として、モータ、減速機、ベアリング、フレーム構造などがある。ロボットを素早く修理するには、どの関節に故障が生じたのか判定するだけでは十分でなく、関節内のどの部品に故障が生じたのかを判定する必要がある。この点、特許文献１の方法では、関節を構成するどの部品に故障が生じたのか特定することができない。
【００９０】
２つ目は、モータの電流は、ロボットに同じ動作をさせても動作スピードによって異なるので、予め設定している動作スピード以外の時に生じた干渉の場合、故障が生じた関節すら特定できないという問題である。
【００９１】
例えば、モータを流れるピーク電流を、実験的に求めた基準電流値と比較する場合、初めて設定したスピードで干渉が発生した際には比較の対象である実験的に求めた基準電流値のデータが存在しないので、故障が発生した関節を特定できない。一般的に、生産ラインを立ち上げる時のロボットの教示作業は、遅いスピードから徐々にスピードを速くして問題が生じないことを確認していく。このため、動作のスピードは様々である。そして、ロボットの干渉トラブルの大半は教示作業中に発生するので、初めて設定したスピードで負荷を計算することができないのでは、ロボットの故障診断として不十分である。
【００９２】
３つ目は、ロボットが静止しているときに周辺装置や他のロボットが動いて衝突した場合、静止しているロボットのモータにはロボットの姿勢を保持する程度の電流しか流れていないので、衝突時の負荷を正確に求めることができない。負荷が正確に求められない場合、故障が生じたか否かの判定精度も低下する。
【００９３】
これに対して、実施の形態１では、ロボットが他の物体に干渉したとき、衝突前のロボットの各関節の回転位置及び回転速度が時系列データとして保存されているため、衝突時に関節に作用する負荷の大きさと方向とを正確に計算できる。ロボットのすべての関節において個々の機械要素の許容荷重と衝突時の負荷とから機械要素の損傷の有無を正確に推定できる。ロボットが意図しないタイミングで他の物体に干渉したとき、ロボットを緊急停止してさらなる損傷の発生を防止しつつ、停止状態のままロボットの故障個所と故障部品とをかなり正確に特定することができる。
【００９４】
（実施の形態１の効果）
実施の形態１によれば、ロボットの動作状態にかかわらず、他の物体に干渉するトラブルが生じたときに、干渉前の生産ライン全体の動作からロボットの多数の関節における負荷の発生状態を正確に見積もることができる。正確に見積もられた負荷やモーメントに基づいて、故障の発生した関節、故障の発生した部品を特定することができる。
【００９５】
実施の形態１によれば、ロボットを用いた生産ラインにおいてロボットが他の物体に干渉して緊急停止がされた際に、ロボットの故障の有無、故障個所、故障部品を特定することが可能になる。それにより、生産ラインの再開およびロボットの交換、修理などの判断を速やかに行う事ができる。
【００９６】
実施の形態１によれば、関節軸ごとに分解、組み立てが可能な構造に設計されたロボットを生産ラインに使うことで、素早く修理作業を行うことが可能になって、速やかに生産ラインを再開させることができる。ロボットが容易に組み立て、分解可能な設計になっているので、故障個所を特定してから修理完了までの時間を短縮することが可能になる。
【００９７】
実施の形態１によれば、多関節ロボットのそれぞれの関節における負荷状態を正確に判断できる。多関節ロボットの停止が判断されてから現実に多関節ロボットが停止するまでに関節に作用した負荷も正確に見積もることができる。
【００９８】
実施の形態１によれば、多関節ロボットが他の物体に干渉したとき緊急停止させて、停止状態のままで各関節の部品の破損状態を評価するため、評価のために部品が破損した多関節ロボットを作動させる必要がない。部品が破損した多関節ロボットを作動させてさらなる損傷を引き起こす心配がない。
【００９９】
実施の形態１によれば、異常を検知する前からロボット０１が実際に停止するまでに記録された移動情報に基づいて複数の関節における損傷した関節を特定する。このため、停止指令を出力してから実際にロボット０１が停止するまでに作用した衝撃力も見逃さない。
【０１００】
実施の形態１によれば、ロボット０１の動作中、所定時間分の移動情報を保持して所定時間を超える分の移動情報を消去し続ける。このため、記録装置０５の記憶容量が少なくても密度の高い精密なデータを収集できる。データが限られるため、負荷計算の演算処理能力も節約できる。負荷計算は、ロボット０１を停止して実行するのでロボットシステムＲＳの負荷とならない。
【０１０１】
＜実施の形態２＞
図８は実施の形態２のロボットシステムの構成の説明図である。図１に示すように、実施の形態１では、ロボット０１の故障診断を行うための構成（０５、０６、０７）がロボットシステムＲＳの制御ユニットに組み込まれていた。これに対して、図８に示すように、実施の形態２では、ロボット０１の故障診断装置（０５、０６、０７）は、ロボットシステムＲＳの制御部ＳＢに外付けされている。実施の形態２におけるこれ以外の構成及び制御は実施の形態１と同一であるため、図８中、実施の形態１と共通する構成には図１と同一の符号を付して重複する説明を省略する。
【０１０２】
図８に示すように、診断装置の一例である制御ユニットＳＵは、ロボットシステムＲＳに接続可能であって、制御コントローラ０２からロボット０１の動作中の負荷情報と移動情報とが継続的に入力される。制御ユニットＳＵは、エンコーダ４０３Ｅの出力に基づく関節ごとの移動情報とモータ４０３の出力に基づく関節ごとの負荷情報とを継続的に記録し、負荷情報と移動情報との少なくとも一方に基づいて異常を判断してロボット０１を停止させる。
【０１０３】
制御ユニットＳＵは、ロボット０１を停止した状態で、少なくとも異常を検知する前から異常を検知するまでに取得した負荷情報及び移動情報に基づいて、複数の関節における損傷した関節を特定し、さらに当該関節において損傷した部品を特定する。制御ユニットＳＵは、表示装置０８を通じて損傷した関節と損傷した部品とを特定する画像及び文字の情報を出力する。
【０１０４】
＜その他の実施の形態＞
なお、実施の形態１では、減速機４０５の瞬時許容最大トルク、ベアリング４０６の静許容荷重を故障発生の判断基準としたが、これらの数値は、実験値や経験による値で置き換えてもよい。
【０１０５】
本実施の形態は、ロボットシステムの制御方法をコンピュータに実行させるためのプログラムとしても実施できる。また、プログラムを記録した記録媒体としても実施できる。
【０１０６】
また、実施の形態１では、６軸多関節ロボットにおけるＹ軸回転する３つの関節軸について、部品の損傷が生じた関節軸を特定する方法を述べた。しかし、本発明は、この構成のロボットに限定するものではなく、他の構成のロボットにおいても同様の方法をとることで部品の損傷が生じた関節軸を特定することが可能である。
【符号の説明】
【０１０７】
０１  ロボット
０２  制御コントローラ
０５  記録装置
０６  負荷解析装置
０７  故障部品特定装置
０８  表示装置
０９  周辺装置
４０３  モータ
４０３Ｅ  エンコーダ
４０５  減速機
４０６  ベアリング
【図１】
2015217468.tif 000003
【図２】
2015217468.tif 000004
【図３】
2015217468.tif 000005
【図４】
2015217468.tif 000006
【図５】
2015217468.tif 000007
【図６】
2015217468.tif 000008
【図７】
2015217468.tif 000009
【図８】
2015217468.tif 000010