(57)【要約】【課題】ロボット装置の関節の駆動系の構成部位の故障ないし性能低下を汎用的に検出でき、また、故障ないし性能低下に係る構成部位を特定できるようにする。【解決手段】関節の駆動系に駆動力を印加するモータのモータ電流から駆動トルクを算出し、保存する（Ｓ１、Ｓ２）。また、駆動系の出力側に配置されたトルクセンサで検出された出力トルクを取得、保存する（Ｓ３）。モータの回転方向が反転する際の（Ｓ４〜Ｓ５）、上記の出力トルクと、駆動トルクと、駆動系の故障部位を特定可能なプロファイルデータと、を比較した結果に基づき、故障の有無、および故障がある場合はその故障部位を特定する故障個所判定を行う。【選択図】図９
2020110877.tif 000002
【特許請求の範囲】
【請求項１】
ロボット装置の関節を駆動する駆動系の故障を診断するロボット診断方法において、
制御装置が、前記駆動系に駆動力を印加するモータの駆動トルクを取得する駆動トルク取得工程と、
前記制御装置が、前記駆動系の出力側に配置されたトルクセンサから出力トルクを取得する出力トルク取得工程と、
前記制御装置が、前記モータの回転方向が反転する際の前記駆動トルクと、前記モータの回転方向が反転する際の前記出力トルクと、前記駆動系の故障部位を特定可能なプロファイルデータと、を比較した結果に基づき、故障の有無、および故障がある場合の故障部位を特定する故障診断工程と、
を含むロボット診断方法。
【請求項２】
請求項１に記載のロボット診断方法において、前記故障診断工程で、前記駆動トルクと前記出力トルクとの差分であるトルク差分と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断方法。
【請求項３】
請求項１に記載のロボット診断方法において、前記駆動系でバックラッシュが発生している区間の時間と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断方法。
【請求項４】
請求項１に記載のロボット診断方法において、前記故障診断工程で、前記駆動トルクと前記出力トルクとの差分の変化する波形の形状と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断方法。
【請求項５】
請求項１から４のいずれか１項に記載のロボット診断方法において、前記駆動系が複数の伝達装置を含み、前記故障診断工程において、複数の前記伝達装置の少なくとも１つが前記駆動系の故障部位として特定されるロボット診断方法。
【請求項６】
請求項５に記載のロボット診断方法において、複数の前記伝達装置に、減速機、プーリ、ベルト、のうちいずれか少なくとも１つが含まれるロボット診断方法。
【請求項７】
請求項１から６のいずれか１項に記載のロボット診断方法において、前記故障診断工程が特定した前記故障部位を識別可能な情報を出力する出力工程を含むロボット診断方法。
【請求項８】
請求項１から７のいずれか１項に記載のロボット診断方法の各工程を、前記制御装置を構成するＣＰＵに実行させる制御プログラム。
【請求項９】
請求項８に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１０】
ロボット装置の関節を駆動する駆動系の故障を診断する制御装置を備えたロボット診断装置において、
前記制御装置が、前記駆動系に駆動力を印加するモータの駆動トルクを取得する駆動トルク取得工程と、
前記制御装置が、前記駆動系の出力側に配置されたトルクセンサから出力トルクを取得する出力トルク取得工程と、
前記制御装置が、前記モータの回転方向が反転する際の前記駆動トルクと、前記モータの回転方向が反転する際の前記出力トルクと、前記駆動系の故障部位を特定可能なプロファイルデータと、を比較した結果に基づき、故障の有無、および故障がある場合の故障部位を特定する故障診断工程と、
を実行するロボット診断装置。
【請求項１１】
請求項１０に記載のロボット診断装置において、前記故障診断工程で、前記駆動トルクと前記出力トルクとの差分であるトルク差分と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断装置。
【請求項１２】
請求項１０に記載のロボット診断装置において、前記駆動系でバックラッシュが発生している区間の時間と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断装置。
【請求項１３】
請求項１０に記載のロボット診断装置において、前記故障診断工程で、前記駆動トルクと前記出力トルクとの差分の変化する波形の形状と、前記プロファイルデータと、を比較することにより、前記駆動系の故障部位を特定するロボット診断装置。
【請求項１４】
請求項１０から１３のいずれか１項に記載のロボット診断装置において、前記駆動系が複数の伝達装置を含み、前記故障診断工程において、複数の前記伝達装置の少なくとも１つが前記駆動系の故障部位として特定されるロボット診断装置。
【請求項１５】
請求項１４に記載のロボット診断装置において、複数の前記伝達装置に、減速機、プーリ、ベルト、のうちいずれか少なくとも１つが含まれるロボット診断装置。
【請求項１６】
請求項１０から１５のいずれか１項に記載のロボット診断装置において、前記故障診断工程が特定した前記故障部位を識別可能な情報を出力する出力装置を備えたロボット診断装置。
【請求項１７】
請求項１０から１６のいずれか１項に記載のロボット診断装置において、前記制御装置が、前記ロボット装置の関節の位置姿勢を制御するロボット制御装置であるロボット診断装置。
【請求項１８】
請求項１０から１６のいずれか１項に記載のロボット診断装置において、前記制御装置が、前記ロボット装置が配置されたロボットシステムを制御するロボットシステム制御装置であるロボット診断装置。
【請求項１９】
請求項１０から１６のいずれか１項に記載のロボット診断装置において、前記制御装置が、前記ロボット装置に外付けされた外部端末により構成されるロボット診断装置。
【請求項２０】
請求項１９に記載のロボット診断装置および前記ロボット装置が配置された生産システムであって、前記ロボット装置により物品を製造する生産システム。
【請求項２１】
請求項１９に記載のロボット診断装置および前記ロボット装置が配置された生産システムにおいて、前記ロボット装置により物品を製造する物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置の関節を駆動する駆動系の故障を診断する処理を行うロボット診断方法、ロボット診断装置、制御プログラム、記録媒体、生産システム、および物品の製造方法に関する。
【背景技術】
【０００２】
従来、工業用製品の物品の生産現場において、様々なロボット装置が使用されており、近年では、より複雑な動作を行える多軸多関節のロボットアームを備えたロボット装置が普及している。
【０００３】
この種の工業用に用いられるロボット装置のロボットアームの構成は、リンクと関節の構造により分類すると、垂直多関節構成、水平多関節構成などのようなものがある。しかしながら、いずれのアーム構成においても、関節の駆動系の構造は類似しており、回転駆動源となるモータの駆動力をプーリ、ベルト、減速機（ギヤ）などの伝達系によって被駆動側のリンクに伝達する構成が用いられている。
【０００４】
このようなロボットアームを構成するモータ駆動力の伝達系は、例えば稼働時間が長くなるに従い、故障や性能低下を生じる確率が高くなってくる。このような故障や性能低下には、減速機の歯の摩耗によるバックラッシュ量の増加、プーリとモータ軸を固定するビスの緩みによるガタの発生、などが含まれる。このような故障や性能低下により、各関節の角度伝達精度が低下し、ロボットアームの動作精度の低下を生じる。そのため、近年では、ロボットアームの故障診断に関する様々な技術が提案されている。
【０００５】
例えば、下記の特許文献１では、トルク検出手段が検出するモータトルク値がほぼ零となる区間を駆動ギヤ間のバックラッシュ発生区間として検出することが考えられている。特許文献１では、同区間時のモータ回転量から求めたバックラッシュ量と閾値との比較により、故障判定を行う。また、下記の特許文献２では、モータ軸とプーリの締結部のガタを検出するために、モータ回転位置を特定の制御周期で検出し、制御周期毎の単位時間当たりの移動量を一定時間積算して求めた値と閾値と比較する手法が考えられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２０１７４５号公報
【特許文献２】特開２００９−１４２９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では、故障診断の対象は減速機のみに限定されている。また、特許文献２では、故障診断の対象はプーリの締結部のみに限定されている。即ち、これらの従来技術の故障診断の対象は、いずれも特定の部位に限定されている。そのため、特許文献１および２のような診断対象が限られた装置を用いようとすると、ロボットアームの各部の駆動系の構成が異なれば、駆動系の構成ごとに異なる診断装置を配置する必要があり、ロボット装置全体が複雑化する可能性がある。
【０００８】
本発明の課題は、ロボット装置の関節の駆動系の構成部位の故障ないし性能低下を汎用的に検出でき、また、故障ないし性能低下に係る構成部位を特定できるようにすることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明においては、ロボット装置の関節を駆動する駆動系の故障を診断するロボット診断方法において、制御装置が、前記駆動系に駆動力を印加するモータの駆動トルクを取得する駆動トルク取得工程と、制御装置が、前記駆動系の出力側に配置されたトルクセンサから出力トルクを取得する出力トルク取得工程と、前記制御装置が、前記モータの回転方向が反転する際の前記駆動トルクと、前記モータの回転方向が反転する際の前記出力トルクと、前記駆動系の故障部位を特定可能なプロファイルデータと、を比較した結果に基づき、故障の有無、および故障がある場合の故障部位を特定する故障診断工程と、を含む構成を採用した。
【発明の効果】
【００１０】
上記構成によれば、モータの回転方向が反転する際に、駆動トルクと、出力トルクと、駆動系の故障部位を特定可能なプロファイルデータと、を比較し、ロボット装置の関節の駆動系の構成部位の故障ないし性能低下を汎用的に検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明を実施可能なロボットシステムを模式的に示す説明図である。
【図２】図１のロボットアームの関節の構成を示す説明図である。
【図３】図２のモータ軸側プーリを示す説明図である。
【図４】本発明の実施形態に係るロボット診断装置の制御系の構成を示すブロック図である。
【図５】本発明の実施形態１における制御装置の機能構成を示したブロック図である。
【図６】故障ないし性能低下を生じていない状態における駆動トルクと出力トルクを示した波形図である。
【図７】故障判定に用いるプロファイルデータを示す説明図である。
【図８】（ａ）はモータ軸側プーリの適正な状態における同プーリ周辺の構成、および駆動トルク、出力トルクを、また、（ｂ）はモータ軸側プーリの止めねじが緩んだ故障状態の同プーリ周辺の構成、および駆動トルク、出力トルクを示した説明図である。
【図９】本発明の実施形態に係るロボット関節の駆動制御の要部を示したフローチャート図である。
【図１０】本発明の実施形態１における故障診断プログラムの流れを示したフローチャート図である。
【図１１】本発明の実施形態２における制御装置の機能構成を示したブロック図である。
【図１２】本発明の実施形態２における故障診断プログラムの流れを示したフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１３】
なお、以上では、「故障ないし性能低下」とある程度の幅を持った障害の範囲を差すような表現によってロボット装置の関節の駆動系に生じる問題に言及してきた。以下では、「故障ないし性能低下」と一々記述するのは煩雑であるから、単に「故障」の一語によって、上記してきた「故障ないし性能低下」の範囲の障害を表現する。以下では、「故障」と言う場合は上記の「故障ないし性能低下」と同等の事象を意味するものとする。以下では、「故障」と言う場合は、例えば、機構の部材の破損や摩滅などから、機構の制御精度の低下などまでを含んだ、ある程度の幅を持った障害の範囲を意味する。
【００１４】
＜実施形態１＞
以下、本発明に係る実施形態１につき図１〜図１０を参照して説明する。図１は本発明に係るロボット診断を実施可能なロボットシステム５００の概略構成を示している。図１に示すように、ロボットシステム５００は、工業製品ないしその部品などの物品を製造すべく、ワークＷに対して組立てや加工に係る操作を行うロボット装置１００を備える。また、ロボットシステム５００は、ロボット装置１００を制御するロボット制御装置２００と、ロボット制御装置２００に接続されたティーチングペンダント３００と、を備えている。ロボットシステム５００は、工業製品ないしその部品などの物品を製造する生産ライン（生産システム）に、特定の作業工程を実施するよう、配置することができる。
【００１５】
ロボット装置１００は、例えば６軸多関節構成のロボットアーム１０１と、ロボットアーム１０１の先端に接続されたハンド（エンドエフェクタ）１０２と、を備えている。なお、ロボットアーム１０１としては垂直多関節の構成のものを例示しているが、パラレルリンク構成など他のリンク結合構成を有するものであっても本発明は同様に実施できる。
【００１６】
ロボットアーム１０１は、作業台に固定されるベース部１０１ａと、変位や力を伝達する複数のリンク１２１〜１２６と、各リンク１２１〜１２６を旋回又は回転可能に連結する複数の関節１１１〜１１６と、を備えている。なお、本実施形態においては、複数の関節１１１〜１１６は構成がほぼ同じであるため、リンク１２１とリンク１２２を連結する関節１１２を説明することで他の関節１１１、１１３〜１１６の説明に換えるものとする。また、関節１１２と同じ構成の関節は、ロボットアーム１０１の複数の関節１１１〜１１６のうちの少なくとも１カ所に備えていればよい。
【００１７】
図２に示すように、関節１１２は、リンク１２１に取り付けられているサーボモータ（モータ）１と、サーボモータ１の回転角度を検出するエンコーダ１１と、サーボモータ１の出力を減速する減速機１２と、を備えている。また、関節１１２は、減速機１２の出力側のトルクを検出するためのトルクセンサ１５を備えている。なお、サーボモータ１とエンコーダ１１との間には、必要に応じて、電源ＯＦＦ時にロボットアーム１０１の姿勢を保持するためのブレーキユニットなどを設けるものとしてもよい。
【００１８】
サーボモータ１の出力軸であるモータ軸２には、モータ軸側プーリ３が取り付けられている。また、減速機入力軸７には、減速機側プーリ６が取り付けられ、これら各プーリと、モータ軸側プーリ３と減速機側プーリ６の間に架装されたベルト５を介して、サーボモータ１の駆動力が減速機１２に伝達される。リンク１２１には、軸受８、９、１０が配置され、これら軸受を介して支持されたモータ軸２、減速機入力軸７、リンク１２２は滑らかに回動することができる。
【００１９】
上記の駆動系（伝達系）の出力側、例えば減速機１２の出力側にはトルクセンサ１５が装着されている。トルクセンサ１５は、減速機１２とリンク１２２とを結合してこれらの間で駆動トルクを伝達するとともに、その大きさを検出する。トルクセンサ１５から取得されるトルクは、以下では、関節の駆動系の出力側におけるトルクを意図して、「出力トルク」ということがある。なお、以下に示す制御では、駆動系（伝達系）の入力側、特にサーボモータ１が発生している駆動トルクを取得する必要があり、以下では駆動電流に基づき駆動トルクを算出する例を示す。しかしながら、トルクセンサ１５と同様のセンサを駆動系（伝達系）の入力側、例えばモータ軸側プーリ３の入力側などに配置してサーボモータ１が発生している駆動トルクを取得することも考えられる。
【００２０】
図３は、モータ軸側プーリ３の要部を拡大して示している。同図のように、この構成では、モータ軸２の一部が直線状に切り欠かれ、モータ軸２とモータ軸側プーリ３が一体に回動できるよう止めねじ４で固定されている。ベルト５は例えばいわゆるコッグドベルトであり、その表面には図のような歯が形成されており、モータ軸側プーリ３に形成された不図示の歯と噛み合うことでモータ軸側プーリ３の回転がベルト５に伝達する。当然ながら、減速機側プーリ６も上記同様に構成される。
【００２１】
減速機１２は平歯車で、入力部である駆動歯車１３と、出力部である従動歯車１４と、を備えている。駆動歯車１３は減速機入力軸７に接続され、従動歯車１４は、トルクセンサ１５に接続されている。従動歯車１４は、駆動歯車１３に対し、その径は大きく歯数も多い。
【００２２】
一般に、駆動歯車の歯数に対する、従動歯車の歯数の比（＝従動歯車の歯数／駆動歯車の歯数）は減速比として取り扱うことができる。例えば、減速比Ｎのとき、従動歯車の回転数は駆動歯車の回転数の１／Ｎに減速される。すなわち、サーボモータ１の回転は、モータ軸２、モータ軸側プーリ３、ベルト５、減速機側プーリ６、減速機入力軸７を介して減速機１２に入力され、これらから成る駆動系（伝達系）により減速される。このような伝達系の構成により、リンク１２１とリンク１２２とが相対的に回動する速度、ないしはその関節が発生するトルクが制御される。
【００２３】
トルクセンサ１５には、例えば歪ゲージ式のものを使用することができる（駆動系の入力側に配置されるトルクセンサも同様）。歪ゲージ方式では、トルクセンサ１５にトルクが加わった時に弾性体の歪量を弾性体に装着した歪みゲージで計測し、計測した歪量に相当する検出量として、トルクを取得することができる。
【００２４】
本実施形態では、ロボットアーム１０１の関節１１１〜１１６、リンク１２１〜１２６は、関節１１１を例に説明した構成を有するものとする。ただし、以下では関節１１１、リンク１２１に係る制御を説明するものとし、必ずしも他の関節やリンクに関して全く同様の構成が配置されることは必須ではない。また、以下では、上記の１関節の駆動系において、モータ軸２、モータ軸側プーリ３、ベルト５、減速機側プーリ６、減速機入力軸７、減速機１２を伝達系１６と呼称することがある。
【００２５】
図４は、本実施形態においてロボット装置１００の故障診断（ロボット診断）を行うロボット制御装置２００の制御系の構造を示している。なお、本実施形態では、故障診断を行う制御装置が、ロボット装置１００の位置姿勢を制御するロボット制御装置２００ないしその制御回路、特にＣＰＵ２０１であるものとするが、故障診断を行う制御装置の配置ないし実装形態は本発明を限定するものではない。例えば、後述の故障診断を行う制御装置は、ロボット装置１００が配置されたロボットシステムを制御するロボットシステム制御装置のような装置であってもよい。このようなロボットシステム制御装置としては、例えば生産ラインに配置された生産機器を統合的に制御するＰＬＣやシーケンサなどと呼ばれる統合制御装置が考えられる。また、例えば、後述の故障診断を行う制御装置は、ロボット装置１００に外付けされた外部端末、ＰＣやサーバコンピュータなどにより構成されていてもよい。あるいは、後述の故障診断を行う制御装置は、ロボット装置１００に内蔵されていてもよい。なお、ロボット制御装置２００とは異なる制御装置により、後述の故障診断を行う場合には、サーボモータ１の駆動トルクや、駆動系の出力トルクなどに係る制御情報は適当な通信手段を介して故障診断を行う制御装置に伝達されるものとする。この制御情報を伝送する通信手段には、任意のネットワークや制御信号線を用いてよい。
【００２６】
図４に示すように、ロボット制御装置２００は、ＣＰＵ（演算部）２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（記憶部）２０４と、記録ディスクドライブ２０５と、各種のインタフェース２１１〜２１６と、を備えている。
【００２７】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５および各種のインタフェース２１１〜２１６が、バス２１７を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果を一時的に記憶する記憶装置である。
【００２８】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果である各種のデータ等を記憶する記憶部を構成し、例えば、各種の演算処理をＣＰＵ２０１に実行させるためのプログラム（例えば、後述する故障個所判定プログラム３３１）を記録する。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラムに基づいて各種演算処理を実行する。記録ディスクドライブ２０５は、記録ディスク２０６に記録された各種データや制御プログラム等を読み出すことができる。なお、記録ディスク２０６は、例えば各種の光ディスクのような着脱可能な記録媒体から構成される。もし、記録ディスク２０６に後述の制御プログラムが格納されている場合は、記録ディスク２０６は、本発明のコンピュータ読み取り可能な記録媒体を構成する。
【００２９】
インタフェース２１１には、ユーザが操作可能なティーチングペンダント３００が接続されている。このティーチングペンダント３００は、入力された各関節１１１〜１１６の目標関節角度をインタフェース２１１およびバス２１７を介してＣＰＵ２０１に出力する。また、インタフェース２１２には、エンコーダ１１が接続されており、パルス信号をインタフェース２１２およびバス２１７を介してＣＰＵ２０１に出力する。同様に、インタフェース２１３には、トルクセンサ１５が接続されており、電圧信号をインタフェース２１３およびバス２１７を介してＣＰＵ２０１に出力する。また、インタフェース２１４，２１５には、各種画像や文字情報が表示されるモニタ３１１や書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３１２が接続されている。後述のように、モニタ３１１は、例えばロボット装置１００の関節の故障発生の有無ないし故障部位（故障個所）を識別可能な情報を出力するために用いることができる。
【００３０】
また、インタフェース２１６にはサーボ制御装置３１３が接続されている。ＣＰＵ２０１は、サーボモータ１のモータ軸２の回転角度の制御量を示す駆動指令のデータを、例えば所定の時間間隔でバス２１７およびインタフェース２１６を介してサーボ制御装置３１３に出力する。サーボ制御装置３１３は、ＣＰＵ２０１から入力を受けた駆動指令に基づき、サーボモータ１への電流の出力量を演算し、サーボモータ１へ電流を供給して、ロボットアーム１０１の関節１１１〜１１６の関節角度制御を行う。即ち、ＣＰＵ２０１は、サーボ制御装置３１３を介して、関節１１１〜１１６の角度が目標関節角度となるように、サーボモータ１による関節１１１〜１１６の駆動を制御する。
【００３１】
ここで、故障診断プログラム、例えば後述する故障個所判定プログラム３３１、トルク取得プログラム３３０を実行する際にＣＰＵ２０１およびＨＤＤ２０４が果す機能構成を図５により説明する。図５は、本実施形態１に係るロボットシステム５００の制御系の機能ブロック構成を示している。
【００３２】
図５に示すように、ＣＰＵ２０１が後述する故障個所判定プログラム３３１を実行することにより、以下のような各機能ブロックが構成される。これらは、例えば、関節反転動作判定部４０１と、モータ電流取得部４０２と、駆動トルク演算部４０３と、出力トルク取得部４０４と、バックラッシュ時間演算部４０５と、トルク差分演算部４０６と、故障個所判定部４０７である。また、ＲＡＭ２０３は、トルク記憶部４０８を備え、ＨＤＤ２０４（あるいはＲＯＭ２０２）は、プロファイル記憶部４０９を備えている。
【００３３】
モータ電流取得部４０２は、特定の制御周期毎に（例えば１００μ秒周期毎に）サーボモータ１に流れる三相の電流値をＡ／Ｄ変換し、Ａ／Ｄ変換値から三相の電流値を求める。Ａ／Ｄ変換値から電流値は、電流検出ＩＣの電流検出感度係数から求められる変換式をもって算出される。なお、ここでＡ／Ｄ変換値ないしは電流値をローパスフィルタに通しノイズを除去してもよい。
【００３４】
駆動トルク演算部４０３は、モータ電流取得部４０２で取得した三相電流をベクトル変換しｑ軸電流ｉｑを求め、さらにトルク定数Ｋｔと減速比Ｎを乗算し、駆動トルクτｉ（＝Ｎ×Ｋｔ×ｉｑ）を求める。算出された駆動トルクτｉは、トルク記憶部４０８に保存される。ここで、ｑ軸電流ｉｑとは、三相電流においてトルクに寄与する成分であり、下の式（１）、（２）によって求めることができる。また、ｉｕ、ｉｖ、ｉｗは三相電流を示し、θはサーボモータ１の電気角を示す。
【００３５】
【数１】
2020110877.tif 000003
【００３６】
【数２】
2020110877.tif 000004
【００３７】
出力トルク取得部４０４は、トルクセンサ１５の出力信号をＡ／Ｄ変換し、Ａ／Ｄ変換値から出力トルクτｏを求める。出力トルクτｏはトルク記憶部４０８に保存される。同Ａ／Ｄ変換値から出力トルクτｏへの変換は、トルク変換式により行われる。このトルク変換式は、予めトルクセンサ１５単体の状態で、特定のトルクを印加したときのＡ／Ｄ変換値をサンプリングし、印加トルクとＡ／Ｄ変換値の関係性から求める。
【００３８】
トルク記憶部４０８は、駆動トルクτｉと出力トルクτｏの時系列データをそれぞれ別個に保存する領域であり、リングバッファの構造をとる。ロボットアーム１０１起動開始から駆動トルクτｉと出力トルクτｏを保存し始め、一定時間（例えば１０秒）経過したら最古のデータを最新のデータに置き換える。このようなリングバッファ制御によって、常に現時点から一定時間分過去に遡った最新のデータを保存することができる。
【００３９】
関節反転動作判定部４０１は、サーボ制御装置３１３から呼び出されると、エンコーダ１１から受けたパルス信号をカウントして回転角度を求める。回転方向（回転角度の符号）が反転するタイミングから所定時間（例えば４秒）経過したタイミングで、故障個所判定プログラム３３１を読み出す。
【００４０】
通常、ロボットアーム１０１の動作は複数の工程動作から構成される。そして、本実施形態では、例えば工程動作において故障診断を実行するかを定義した故障診断タイミングの定義情報をユーザが予めサーボ制御装置３１３に設定しておくことができるものとする。あるいは、後述するように故障診断タイミングの定義情報を、自動作成することも考えられる。
【００４１】
次に、本実施形態における故障個所判定プログラム３３１について説明する。本実施形態の故障個所判定プログラム３３１は、関節の駆動系が故障し、故障部位が生じたことを検出し、また、その故障部位を特定することができるよう構成されている。
【００４２】
バックラッシュ時間演算部４０５は、トルク記憶部４０８に保存された出力トルクτｏの時系列データを参照する。出力トルクτｏは、例えば図６のような波形となる。なお、トルク記憶部４０８に保存されている駆動トルクτｉと出力トルクτｏは、例えばデジタル化された数値データである場合があるが、図６では理解を容易にするためアナログ波形を図示している。
【００４３】
図６において、実線が出力トルクτｏ、一点鎖線が駆動トルクτｉに対応づけられている。このとき、出力トルクτｏがほぼゼロである時間をバックラッシュ時間Ｔｂｌとする。このバックラッシュ時間Ｔｂｌが駆動歯車１３と従動歯車１４の間でバックラッシュが発生している時間である。
【００４４】
トルク差分演算部４０６は、駆動トルク演算部４０３が算出し、トルク記憶部４０８に保存された駆動トルクτｉと、トルクセンサ１５から取得し、トルク記憶部４０８に保存された出力トルクτｏの時系列データを参照する。駆動トルクτｉと出力トルクτｏとしては、例えば図６のようなデータが格納されている。図６において、バックラッシュ時間Ｔｂｌにおける駆動トルクτｉの最小値と、出力トルクτｏの最小値の差分がトルク差分τｉｏとなる。
【００４５】
故障個所判定部４０７は、バックラッシュ時間演算部４０５が算出したバックラッシュ時間Ｔｂｌと、トルク差分演算部４０６が算出したトルク差分τｉｏと、プロファイル記憶部４０９が保存している故障個所判定プロファイル３３２（図７）とを比較する。これにより故障診断が行われる。
【００４６】
図７は、横軸にバックラッシュ時間、縦軸にトルク差分を取り、故障個所判定プロファイル３３２の論理的な構造の一例を示している。図７の故障個所判定プロファイル３３２は、ロボットアーム１０１の伝達系１６のモータ軸側プーリ３、ベルト５、減速機側プーリ６、減速機１２のいずれが故障しているかを示すプロファイルデータである。このような故障プロファイルを含むプロファイルデータは、例えば複数次元の数値を格納したテーブルメモリなどの形式でＲＯＭ２０２などの記憶領域に作成しておく。
【００４７】
例えば、トルク差分演算部４０６が算出したトルク差分τｉｏと故障個所判定プロファイル３３２を比較することにより、次のような故障診断が可能となる。例えば、トルク差分演算部４０６が算出したトルク差分τｉｏが、０≦τｉｏ＜τａのときモータ軸側プーリ３が故障であることが示される。また、τａ≦τｉｏ＜τｂのときベルト５が故障であることが示される。また、τｂ≦τｉｏ＜τｃのとき減速機側プーリ６が故障であることが示される。さらに、τｃ≦τｉｏで、かつバックラッシュ時間演算部４０５が算出したバックラッシュ時間ＴｂｌがＴｂｌ≧Ｔａのときは、減速機１２が故障であることが示される。
【００４８】
図８（ａ）は、モータ軸側プーリ３廻りの正常動作時の状態、およびその時の駆動トルクτｉと出力トルクτｏを示している。図８（ｂ）は、故障時の状態、およびその時の駆動トルクτｉと出力トルクτｏを示している。
【００４９】
図８（ａ）に示すように、正常時では、止めねじ４は十分な締め付け状態にある。この状態では、このときモータ軸２がモータ軸側プーリ３に対し相対的に回転しないように止めねじ４で固定されており、モータ軸２とモータ軸側プーリ３は一体で動き、サーボモータ１の動力を伝達する。このとき駆動トルクτｉと出力トルクτｏは、例えば、図８（ａ）下部のグラフのようになる。
【００５０】
一方、図８（ｂ）に示すように、故障時は、止めねじ４の締め付けが緩み、モータ軸２とモータ軸側プーリ３の間にガタ（間隙）が生じる。サーボモータ１を駆動すると、ガタ（間隙）が解消されるまでの間、モータ軸２はモータ軸側プーリ３に対し相対的に動いてしまう。このとき駆動トルクτｉと出力トルクτｏは図８（ｂ）下部のグラフのようになる。即ち、モータ軸２がモータ軸側プーリ３に対し相対的に動いている間、サーボモータ１にかかる負荷トルクが小さくなり、駆動トルクτｉは小さくなる。その結果、トルク差分τｉｏは、０≦τｉｏ＜τａとなり、故障個所判定プロファイル３３２を参照することにより、モータ軸側プーリ３の故障、と判定できる。
【００５１】
本実施形態では、上記のように、実際の駆動トルクτｉと出力トルクτｏのトルク差分の値と、故障個所判定プロファイル３３２に格納されているトルク差分の値とを比較することで故障判定を行っている。しかしながら、故障個所判定プロファイル３３２には、他の形式のプロファイルデータを格納しておくことも考えられる。
【００５２】
例えば、図８に示したように、伝達装置の故障時、実際の駆動トルクτｉと出力トルクτｏの差分の変化に、特有の形状を有する波形が生じることがある。そこで、故障個所判定プロファイル３３２に、駆動系に含まれる伝達装置の故障を特定可能な、例えばトルク差分の変化の波形を表現したプロファイルデータを格納しておくことが考えられる。これにより、実際の駆動トルクτｉと出力トルクτｏの差分の変化の波形と、故障個所判定プロファイル３３２に格納されているプロファイルデータを比較することにより、駆動系の特定の伝達装置の故障を検出することができる。プロファイルデータとして格納するデータ形式としては、トルク差分の変化の波形を表現したトルク差分の２次微分、変曲点のタイミング（時刻）など特有のトルク差分の変化特性を識別できるものであれば任意の形式を用いてよい。
【００５３】
ロボットアーム１０１の伝達系１６が故障したと判断した場合、故障個所判定部４０７は、モニタ３１１に故障の発生、ないし故障個所を識別可能な情報、例えば警告情報を出力する。故障個所判定部４０７の情報出力の形式は、モニタ３１１などへの表示出力、プリンタへの出力、ブザー音や合成音声などを用いた音声出力など、任意の形式であってよい。例えば表示出力形式であれば、「関節ｘｘ（の減速機／ｘｘプーリ）で故障が発生しています」などの文字情報の他、警告の際、駆動トルクτｉと出力トルクτｏおよびトルク差分τｉｏとバックラッシュ時間Ｔｂｌのような制御情報を同時に表示してもよい。また、文字情報に換えて、任意のアイコンやシンボルによって、上記の表示例の一部を置換することにしてもよい。さらに、故障個所判定部４０７は、当該の関節を非常停止させるべく、サーボ制御装置３１３にサーボモータ１の停止信号を送信してもよい。
【００５４】
次に、図７に示された故障個所判定プロファイル３３２を構成するプロファイルデータの設計方法について説明する。ロボットシステム５００が使用される生産装置における組立・搬送動作は所定の動作の繰り返しであり、同じ動作におけるロボットアーム１０１の関節１１２にかかるトルクは毎回ほぼ同じである。そこで、所定の組立・搬送動作において、故障診断タイミングを定めておく。この故障診断タイミングの定義情報は、関節１１２の反転動作を必ず含むよう設定される。あるいは、反転故障診断タイミングの定義情報を、自動作成することも考えられる。例えば、ＣＰＵ２０１がロボットアーム１０１を制御する教示情報を解析すれば、特定の関節の特定動作、例えばその関節の回転が反転するようなタイミング、あるいはそのタイミングを含む区間を決定することができる。
【００５５】
故障個所判定プロファイル３３２は、故障診断タイミングにおける関節１１２にかかるトルクから設計される。例えば、故障診断タイミングにおいて、図８（ｂ）のように止めねじ４の締め付けが緩み、モータ軸２とモータ軸側プーリ３の間にガタが生じる。その場合、ガタが解消されるまでの間はサーボモータ１にかかる負荷トルクはほぼゼロであるので、サーボモータ１に流れる電流は無負荷電流である。無負荷電流にトルク定数Ｋｔと減速比Ｎを乗算することで駆動トルクが求められ、同値が故障個所判定プロファイル３３２におけるτａとなる。
【００５６】
また、ベルト５の歯が摩耗し、減速機側プーリ６との間で滑る場合、サーボモータ１にかかるトルクは、起動トルクとモータ軸側プーリ３のイナーシャを回すのに必要なトルクとベルト５と減速機側プーリ６の間の摩擦力によって発生するトルクの和である。すなわち同値が故障個所判定プロファイル３３２におけるτｂとなる。
【００５７】
さらに、減速機入力軸７と減速機側プーリ６を固定する不図示の止めねじが緩んで減速機入力軸７と減速機側プーリ６が相対的に動く。その場合、サーボモータ１にかかるトルクは、起動トルクとモータ軸側プーリ３、ベルト５、減速機側プーリ６を動かすためのトルクの和であり、同値が故障個所判定プロファイル３３２におけるτｃとなる。
【００５８】
また、減速機１２における駆動歯車１３と従動歯車１４との間の正常なバックラッシュ量は減速機の仕様書等で予め規定されている。バックラッシュ量をエンコーダ１１のパルス値に直し、同パルス値と故障診断タイミングにおける関節１１２の回転速度からバックラッシュ発生時間がわかり、同値が故障個所判定プロファイル３３２におけるＴａとなる。なお、回転速度はロボットアーム１０１が生産装置で稼動する際の関節１１２の回転速度と同じとする。
【００５９】
以上の方法によって設計された故障個所判定プロファイル３３２は、プロファイル記憶部４０９に例えば閾値のデータリストのような形式で保存してもよいし、ルックアップテーブルとして保存してもよい。また、τａ、τｂ、τｃ、Ｔａを予め実験的に求めておく構成であってもよい。
【００６０】
次に、ロボットアーム１０１の駆動トルク演算と出力トルク取得について、図９を参照しながら説明する。図９は、ロボットアーム１０１の駆動トルク演算と出力トルク取得の処理動作の流れを示している。図９に示す各ステップ（制御工程）は、ＣＰＵ２０１がＨＤＤ２０４に記憶されたトルク取得プログラム３３０を読み出して実行される。
【００６１】
図９において、制御周期（例えば１００μ秒）毎にモータ電流取得部４０２はサーボモータ１の三相電流を取得する（ステップＳ１）。ステップＳ２で駆動トルク演算部４０３は三相電流をｑ軸電流ｉｑへと変換し、さらに同電流から駆動トルクτｉを求めトルク記憶部４０８に保存する。この時のトルク記憶部４０８へのデータ格納フォーマットは任意である。このように、本実施形態では、駆動トルク取得工程は、サーボモータ１の駆動電流を介して取得される。
【００６２】
同様に、制御周期（例えば１００μ秒）毎に出力トルク取得部４０４はトルクセンサ１５から出力トルクτｏを取得しトルク記憶部４０８へ保存する（ステップＳ３）。
【００６３】
ステップＳ４で、関節反転動作判定部４０１は、エンコーダ１１から取得したパルス信号から回転角度を求め、回転角度が反転したらステップＳ５にてＨＤＤ２０４に記憶された故障個所判定プログラム３３１を読み出し、実行する。その後図９のトルク取得プログラム３３０は終了する。なお、回転角度が反転しなかった場合は、ステップＳ５を実行せずにただちにトルク取得プログラム３３０は終了する。
【００６４】
次に、ロボットアーム１０１の伝達系１６の故障個所判定処理について、図１０を参照しながら説明する。図１０は、ロボットアーム１０１の伝達系１６の故障個所判定の処理の流れを示している。図１０に示す各ステップは、ＣＰＵ２０１がＨＤＤ２０４に記憶された故障個所判定プログラム３３１を読み出して実行される。
【００６５】
故障個所判定プログラム３３１が読み出されたタイミングから所定時間（例えば４秒）経過したタイミングで、バックラッシュ時間演算部４０５とトルク差分演算部４０６に、トルク記憶部４０８に保存されたデータの取得を実行させる（ステップＳ１１）。
【００６６】
ステップＳ１２において、バックラッシュ時間演算部４０５は、バックラッシュ時間Ｔｂｌを求める。さらに、ステップＳ１３において、トルク差分演算部４０６は、トルク差分τｉｏを算出する。
【００６７】
ステップＳ１４において、算出したトルク差分τｉｏが０≦τｉｏ＜τａという条件を満たす場合は、ステップＳ１５においてモータ軸側プーリ３を故障個所と判定し、その旨をモニタ３１１に表示する。同条件を満たさない場合は、ステップＳ１６を実行する。
【００６８】
ステップＳ１６において、トルク差分τｉｏがτａ≦τｉｏ＜τｂという条件を満たす場合は、ステップＳ１７においてベルト５を故障個所と判定し、その旨をモニタ３１１に表示する。同条件を満たさない場合は、ステップＳ１８を実行する。
【００６９】
ステップＳ１８において、トルク差分τｉｏがτｂ≦τｉｏ＜τｃという条件を満たす場合は、ステップＳ１９において減速機側プーリ６を故障個所と判定し、その旨をモニタ３１１に表示する。同条件を満たさない場合は、ステップＳ２０を実行する。
【００７０】
ステップＳ２０において、バックラッシュ時間ＴｂｌがＴｂｌ≧Ｔａという条件を満たす場合は、ステップＳ２１において減速機１２を故障個所と判定し、その旨をモニタ３１１に表示する。同条件を満たさない場合は、伝達系１６に故障はなく正常であり故障個所判定プログラム３３１を終了する。
【００７１】
いずれかの個所の故障と判定した場合は、モニタ３１１に故障個所を特定可能な、上述の任意形式の識別情報を表示した後、ステップＳ２２で、サーボ制御装置３１３に停止信号を送信する。これにより、関節の特定部位に故障を生じたロボット装置を非常（緊急）停止させることができる。その後、故障個所判定プログラム３３１を終了する。
【００７２】
以上説明したように、本実施形態１のロボットシステム５００によれば、ロボットアーム１０１の伝達系１６（駆動系）の故障を検出することができる。また、プーリや減速機のように伝達方式の異なる複数の部位が伝達系１６に含まれている場合でも、故障部位を特定することができる。故障個所判定プログラム３３１による故障診断は、駆動系のモータの駆動トルクと、駆動系の出力トルクと、予め作成したプロファイルデータを比較することにより、例えばロボットアーム１０１を分解することなく実施できる。
【００７３】
＜実施形態２＞
図１１に、本実施形態２に係るロボットシステム５００の機能構成を示す。図１１は、実施形態１の図５と同等の様式により、故障診断を行う制御装置の構成を機能ブロック図として示している。本実施形態では、ロボットシステム５００の基本構成は実施形態１と同様であるものとし、以下では重複した説明は省略する。また、上述の実施形態１と同一ないし同様の構成部材については、以下でも同一の参照符号を用い、その詳細な説明は省略する。
【００７４】
実施形態１では、故障診断タイミングにおける回転速度は、故障個所判定プロファイル３３２を設計した際の回転速度と同じであるものとして取り扱っていた。しかしながら、ロボットシステム５００が使用される生産装置のタクトタイムの関係で、故障個所判定プロファイル３３２を取得したときの回転速度から変化する場合が考えられる。その場合、バックラッシュ時間Ｔｂｌを回転速度に応じて補正する必要がある。この補正手段について述べる。
【００７５】
以下では、主に実施形態１と異なるバックラッシュ時間Ｔｂｌを回転速度に応じて補正する構成ないしその制御につき説明する。まず、ＣＰＵ２０１およびＨＤＤ２０４が制御プログラムを実行することにより実施形態２に係る回転速度に応じたバックラッシュ時間Ｔｂｌの補正処理を実行する際に実現される機能ブロックを図１１を参照して説明する。図１１は、実施形態２に係るロボットシステム５００の制御系を示す機能ブロック図である。
【００７６】
図１１のバックラッシュ時間補正部４１０は、エンコーダ１１から受けたパルス信号をカウントして回転角度を求め、回転角度の変動量から回転速度を求める。さらに、例えば下式（３）を用いて補正バックラッシュ時間Ｔｂｌ’を求める。なお、下式（３）において、Ｔｂｌは、バックラッシュ時間演算部４０５が求めたバックラッシュ時間、ω０は故障個所判定プロファイル３３２を設計したときの回転速度であり、ω１は、故障診断時の回転速度である。
【００７７】
【数３】
2020110877.tif 000005
【００７８】
補正バックラッシュ時間Ｔｂｌ’は、回転速度をω０に換算したときの時間となり、故障個所判定プロファイル３３２を故障個所判定のために使用することができる。以上のような処理により、本実施形態２によれば関節の回転速度が故障個所判定プロファイル３３２を設計したときから変化した場合でも、バックラッシュ時間を回転速度で補正することによって、適切な故障診断を実施することができる。
【００７９】
図１２に本実施形態２に係る故障個所判定プログラム３３１の処理動作を示すフローチャートを示す。図１２に示す各ステップは、ＣＰＵ２０１がＨＤＤ２０４に記憶された故障個所判定プログラム３３１を読み出して実行される。
【００８０】
図１２は、実施形態１の図１０に対応するフローチャートであり、図１２では図１０と同一ないし同等のステップには同一のステップ番号を付してある。以下では、図１２の故障個所判定プログラム３３１につき図１０に示した実施形態１の処理と異なる部分のみ説明する。図１２において、図１０に示した実施形態１の処理と異なるのは、図１０のステップＳ１２の補正バックラッシュ時間取得処理に換えて、ステップＳ３２、Ｓ３３、Ｓ３４の補正バックラッシュ時間取得の処理が用いられている点である。
【００８１】
図１２のステップＳ１１は、図１０のステップＳ１１と同等であり、ステップＳ３２では、図１０のステップＳ１２と同様に、バックラッシュ時間Ｔｂｌを取得する。続いて、ステップＳ３３にて、バックラッシュ時間補正部４１０がエンコーダ１１から受けたパルス信号をカウントして回転角度を求め、さらに回転速度を算出する。ステップＳ３４では、バックラッシュ時間補正部４１０が、バックラッシュ時間ＴｂｌとステップＳ３３で求めた回転速度から上式（３）により補正バックラッシュ時間Ｔｂｌ’を求める。以後、ステップＳ３４で取得した補正バックラッシュ時間Ｔｂｌ’を用いて、実施形態１の図１０と同等の制御を行う。
【００８２】
以上説明したように、本実施形態によれば、バックラッシュ時間補正部４１０でバックラッシュ時間Ｔｂｌを補正することができる。これにより、本実施形態によれば、関節の回転速度が故障個所判定プロファイル３３２を設計した時の回転速度から変化している場合でも、適切にロボット装置の関節の駆動系の故障診断を行うことができる。
【００８３】
本発明は、上述の実施例の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８４】
１…サーボモータ（モータ）、３…モータ軸側プーリ、５…ベルト、６…減速機側プーリ、１１…エンコーダ、１２…減速機、１５…トルクセンサ、１００…ロボット装置、１０１…ロボットアーム、１１１〜１１６…関節、２００…ロボット制御装置、２０１…ＣＰＵ、２０４…ＨＤＤ、３００…ティーチングペンダント、５００…ロボットシステム、Ｗ…ワーク。
【図１】
2020110877.tif 000006
【図２】
2020110877.tif 000007
【図３】
2020110877.tif 000008
【図４】
2020110877.tif 000009
【図５】
2020110877.tif 000010
【図６】
2020110877.tif 000011
【図７】
2020110877.tif 000012
【図８】
2020110877.tif 000013
【図９】
2020110877.tif 000014
【図１０】
2020110877.tif 000015
【図１１】
2020110877.tif 000016
【図１２】
2020110877.tif 000017