(57)【要約】      （修正有）【課題】異常損傷の程度が小さく補正運転が可能な時は生産ラインの稼働を止めることなく、新たなロボットアームの準備が整うまでロボットアームの作業工程を続行できるロボット装置を提供する。【解決手段】モータと、モータの回転出力を減速して関節を動作する減速機と、モータの回転軸の回転角度である入力側回転角度を検出する第１のエンコーダと、減速機の出力軸側の回転角度である出力側回転角度を検出する第２のエンコーダと、を有するロボットと制御部を備えるロボット装置である。制御部が減速機に生じる関節誤差の許容誤差を記憶する記憶部を有し、入力側回転角度と出力側回転角度との角度差から関節誤差を演算する。さらに、制御部が演算された関節誤差が許容誤差より大きいときに、ロボットに第１の動作をさせ関節誤差を小さくする補正量を求める。そして、補正量に基づいてロボットに第２の動作をさせる。【選択図】図４
2020104177.tif 000002
【特許請求の範囲】
【請求項１】
モータと、前記モータの回転出力を減速して関節を動作する減速機と、前記モータの回転軸の回転角度である入力側回転角度を検出する第１のエンコーダと、前記減速機の出力軸側の回転角度である出力側回転角度を検出する第２のエンコーダと、を有するロボットと、
前記減速機に生じる関節誤差の許容誤差を記憶する記憶部を有し、前記第１エンコーダにより検出された入力側回転角度と前記第２エンコーダにより検出された出力側回転角度との角度差から関節誤差を演算し、前記演算された関節誤差が前記許容誤差より大きいときに、前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求め、前記補正量に基づいて前記ロボットに第２の動作をさせる制御部と、
を備えたことを特徴とするロボット装置。
【請求項２】
前記制御部が、前記ロボットに第１の動作をさせた際に推定関数を演算し、
前記制御部が、前記推定関数と、前記関節誤差を表わす誤差関数と、を比較して前記補正量を求めることを特徴とするロボット装置。
【請求項３】
モータと、前記モータの回転出力を減速して関節を動作する減速機と、前記モータの回転軸の回転角度である入力側回転角度を検出する第１のエンコーダと、前記減速機の出力軸側の回転角度である出力側回転角度を検出する第２のエンコーダと、を有するロボットの制御方法であって、
前記第１エンコーダにより検出された入力側回転角度と前記第２エンコーダにより検出された出力側回転角度との角度差から関節誤差を演算する工程と、
前記演算された関節誤差が前記許容誤差より大きいときに、前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求める工程と、
前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求める工程と、
前記補正量に基づいて前記ロボットに第２の動作をさせる工程と、
を備えたことを特徴とするロボットの制御方法。
【請求項４】
請求項３に記載のロボット制御方法をコンピュータに実行させるためのプログラム。
【請求項５】
請求項４に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項６】
モータと、前記モータの回転出力を減速して関節を動作する減速機と、前記モータの回転軸の回転角度である入力側回転角度を検出する第１のエンコーダと、前記減速機の出力軸側の回転角度である出力側回転角度を検出する第２のエンコーダと、を有するロボットを用いて、組立作業を行い、物品を製造する物品の製造方法であって、
前記第１エンコーダにより検出された入力側回転角度と前記第２エンコーダにより検出された出力側回転角度との角度差から関節誤差を演算する工程と、
前記演算された関節誤差が前記許容誤差より大きいときに、前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求める工程と、
前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求める工程と、
前記補正量に基づいて前記ロボットに第２の動作をさせる工程と、
を備えたことを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの関節に設けられる減速機の状態を診断し、その状態に応じて運転が可能か否かを判定するロボット装置に関する。
【背景技術】
【０００２】
従来、工場等の生産ラインにおいて、様々なロボット装置が使用されており、昨今においては、より複雑な動作を行わせるために多軸多関節のロボットアームを備えたロボット装置が広く普及している。この種のロボットアームは、関節毎にモータおよび減速機を備え、関節毎に動作を制御することが可能である。
【０００３】
このような複雑な動作を行うロボット装置においては、ロボットアームの動作の自由度が高くなる分、作業中に、ロボットアームが周囲の構造物、ワークや工具等の他の物体と接触し、ロボットアームが損傷するおそれがある。例えば、ロボットアームが周囲の物体等と衝突して関節に設けられた減速機に衝撃が加わると、減速機が歯飛び等の損傷を引き起こすおそれがある。減速機が損傷すると、各関節の角度伝達精度が低下し、ロボットアームの動作精度を低下させることになる。そのため、近年、ロボットアームの衝突に対する様々な技術が提案されている。
【０００４】
例えば、特許文献１にはモータの回転軸の回転角度と、減速機の出力側の回転角度との角度差が所定の値を超えるとモータを停止させるロボット装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら特許文献１に開示されたロボット装置は、モータの回転軸の回転角度と、減速機の出力側の回転角度との角度差が所定の値を超えるとモータを停止させることしかできなかった。そのため、ロボットに損傷等の異常が生じた際には、生産ラインの稼働を止めて、ロボットの状態を確認する必要があった。そのため、生産ラインの稼働再開までに多大な時間を要していた。
【課題を解決するための手段】
【０００７】
上記課題を解決するためのロボット装置は、モータと、前記モータの回転出力を減速して関節を動作する減速機と、前記モータの回転軸の回転角度である入力側回転角度を検出する第１のエンコーダと、前記減速機の出力軸側の回転角度である出力側回転角度を検出する第２のエンコーダと、を有するロボットと、前記減速機に生じる関節誤差の許容誤差を記憶する記憶部を有し、前記第１エンコーダにより検出された入力側回転角度と前記第２エンコーダにより検出された出力側回転角度との角度差から関節誤差を演算し、前記演算された関節誤差が前記許容誤差より大きいときに、前記ロボットに第１の動作をさせ前記関節誤差を小さくする補正量を求め、前記補正量に基づいて前記ロボットに第２の動作をさせる制御部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ロボットに損傷等の異常が生じても、その異常の程度を定量し、判定することができる。また、その異常の程度により、補正運転が可能か否かを判定することができる。そのため、異常損傷の程度が小さく補正運転が可能な時は生産ラインの稼働を止めることなく、新たなロボットアームの準備が整うまでロボットアームの作業工程を続行でき、生産ラインの生産性が向上する。
【図面の簡単な説明】
【０００９】
【図１】本発明のロボット装置を模式的に示す斜視図である。
【図２】本発明のロボット装置のロボットアームの１つの関節を示す部分断面図である。
【図３】本発明のロボット装置の制御装置の構成を示すブロック図である。
【図４】本発明のロボット装置の制御系を示す機能ブロック図である。
【図５】偏心とエンコーダの検出誤差の関係を示す模式図である。
【図６】偏心のあるエンコーダにおけるエンコーダ出力値とエンコーダ検出誤差の関係を示す模式図である。
【図７】推定関数Ｃを説明する模式図である。
【図８】第１実施形態に係るロボット装置を用いた異常発生時における補正運転が可能かどうかを判定するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１１】
＜第１実施形態＞
図１は、本発明の第１実施形態に係るロボット装置である。
【００１２】
ロボット装置５００は、把持した第１部品Ｗ１を第２部品Ｗ２に組付けた組付け物品を製造するロボット１００と、ロボット１００を制御する制御手段としての制御装置２００と、制御装置２００に接続されたティーチングペンダント３００と、を備えている。
【００１３】
ロボット１００は、多関節のロボットであり、垂直多関節型のロボットアーム１０１と、ロボットアーム１０１の先端に接続されたエンドエフェクタであるロボットハンド１０２と、を備えている。
【００１４】
ロボット１００の先端（ロボットハンド１０２又はロボットアーム１０１の先端）には、ツールセンターポイント（ＴＣＰ）が設定されており、教示点がタスク空間で指定される場合、その教示点は、ＴＣＰの位置及び姿勢を示すパラメータで表現される。教示点がコンフィグレーション空間（関節空間）で指定される場合、その教示点は、ロボット１００の各関節の関節角度を示すパラメータで表現される。なお、コンフィグレーション空間で指定された教示点は、順運動学計算により、タスク空間に変換することができ、タスク空間で指定された教示点は、逆運動学計算により、コンフィグレーション空間に変換することができる。
【００１５】
ロボットアーム１０１は、作業台に固定されるベース部（基端リンク）１０３と、変位や力を伝達する複数のリンク１２１〜１２６と、を有している。ベース部１０３及び複数のリンク１２１〜１２６は、複数の関節１１１〜１１６で旋回又は回転可能に互いに連結されている。なお、本実施形態においては、複数の関節１１１〜１１６は構成が同じであるため、リンク１２１とリンク１２２との間に設けられた関節１１２を説明することで他の関節１１１，１１３〜１１６の説明は省略する。また、関節１１２と同じ構成の関節は、ロボットアーム１０１の複数の関節１１１〜１１６のうちの少なくとも１カ所に備えていればよい。
【００１６】
ロボットハンド１０２は、部品Ｗ１を把持する複数の把持爪（フィンガ）１０４と、複数の把持爪１０４を駆動する不図示の駆動部と、駆動部の回転角度を検出する不図示のエンコーダと、回転を把持動作に変換する不図示の機構とを有している。この不図示の機構は、カム機構やリンク機構などで必要な把持動作に合わせて設計される。なお、ロボットハンド１０２に用いる駆動部に必要なトルクは、ロボットアーム１０１の関節と異なるが、基本構成は同じである。また、ロボットハンド１０２は、把持爪１０４等に作用する応力（反力）を検出可能な不図示の力覚センサを有している。
【００１７】
ティーチングペンダント３００は、制御装置２００に接続可能に構成され、制御装置２００に接続された際に、ロボットアーム１０１やロボットハンド１０２を駆動制御する指令を制御装置２００に送信可能に構成されている。
【００１８】
図２は、ロボットアームの関節１１２を示す部分断面図である。
【００１９】
図２に示すように、関節１１２は、モータ１と、モータ１の回転軸２の回転角度（入力側回転角度）を検出する入力側エンコーダ（第１のエンコーダ）１０と、モータ１の回転軸２の回転出力を減速して関節を動作する減速機１１と、を備えている。また、関節１１２は、減速機１１の出力軸側の回転角度（出力側回転角度）を検出する出力側エンコーダ（第２のエンコーダ）１６を備えている。
【００２０】
モータ１は、例えばブラシレスＤＣサーボモータやＡＣサーボモータである。モータ１は、回転軸２とロータマグネット３とで構成された回転部４と、モータハウジング５と、回転軸２を回転自在に支持する軸受６，７と、回転部４を回転させるステータコイル８と、を備えている。軸受６，７はモータハウジング５に設けられ、ステータコイル８はモータハウジング５に取り付けられている。また、モータ１はモータカバー９で囲われている。
【００２１】
入力側エンコーダ１０は、モータ１の回転軸２の一端側に設けられ、モータ１の回転軸２の回転に伴って入力側パルス信号を生成し、生成した入力側パルス信号を制御装置２００に出力する。なお、入力側エンコーダ１０は、回転軸２に取り付けられているが、減速機１１の入力軸に取り付けてもよい。また、モータ１と入力側エンコーダ１０との間には、必要に応じて、電源ＯＦＦ時にロボットアーム１０１の姿勢を保持するブレーキユニットを設けてもよい。
【００２２】
減速機１１は、ウェブジェネレータ１２と、サーキュラスプライン１３と、リンク１２１に固定されたフレクスプライン１４と、を備えている。フレクスプライン１４は、ウェブジェネレータ１２の回転に対して減速比Ｎで減速され、サーキュラスプライン１３に対して相対的に回転する。従って、モータ１の回転軸２の回転数が減速機１１で１／Ｎに減速され、フレクスプライン１４が固定されたリンク１２１に対してサーキュラスプライン１３が固定されたリンク１２２を相対的に回転運動させ、関節１１２を屈曲（回転）させる。このときの減速機１１の出力側回転角度が、実出力角度、即ち関節１１２の角度（関節角度）となる。
【００２３】
出力側エンコーダ１６は、減速機１１の出力軸側に設けられており、リンク１２１とリンク１２２との相対角度を検出する。リンク１２１にスケール部１６ａが、リンク１２２に検出部１６ｂがそれぞれ設けられている。出力側エンコーダ１６は、関節１１２の駆動（リンク１２１とリンク１２２との相対移動）に伴って出力側パルス信号を生成し、生成した出力側パルス信号を制御装置２００に出力する。なお、入力側エンコーダ１０及び出力側エンコーダ１６は、一般的なロータリエンコーダと同様に、光学式或いは磁気式ロータリエンコーダとして構成する。また、リンク１２１とリンク１２２との間には、クロスローラベアリング１５が設けられており、リンク１２１とリンク１２２とは、クロスローラベアリング１５を介して回転自在に連結されている。
【００２４】
図３はロボット装置５００の制御装置２００の構成を示すブロック図である。制御装置２００は、制御部（演算部）としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１を備えている。また、制御装置２００は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０４を備えている。また、制御装置２００は記録ディスクドライブ２０５と、各種のインタフェース２１１〜２１５と、を備えている。また、制御装置２００は、インタフェース２１５に接続されたサーボ制御装置３１３を備えている。
【００２５】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１５が、バス２１６を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００２６】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ２０１に、後述する各種演算処理を実行させるためのプログラム２４０を記録するものである。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラム２４０に基づいてロボット制御方法の各工程を実行する。
【００２７】
記録ディスクドライブ２０５は、記録ディスク２４１に記録された各種データやプログラム等を読み出すことができる。
【００２８】
インタフェース２１１には、ユーザが操作可能なティーチングペンダント３００が接続されている。ティーチングペンダント３００は、入力された教示点のデータ（コンフィグレーション空間で指定された場合は各関節１１１〜１１６の目標角度）をインタフェース２１１及びバス２１６を介してＣＰＵ２０１に出力する。ＣＰＵ２０１は、ティーチングペンダント３００から入力を受けた教示点のデータをＨＤＤ２０４等の記憶部に設定する。
【００２９】
インタフェース２１２ａ，２１２ｂには、入力側エンコーダ１０及び出力側エンコーダ１６がそれぞれ接続されている。入力側エンコーダ１０及び出力側エンコーダ１６は、前述したパルス信号をインタフェース２１２ａ，２１２ｂ及びバス２１６を介してＣＰＵ２０１に出力する。
【００３０】
インタフェース２１３，２１４には、各種画像が表示されるモニタ３１１や書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３１２が接続されている。
【００３１】
インタフェース２１５には、サーボ制御装置３１３が接続されている。ＣＰＵ２０１は、教示点間を繋ぐ軌道を生成して、モータ１の回転軸２の回転角度の制御量を示す駆動指令のデータを所定の時間間隔でバス２１６及びインタフェース２１５を介してサーボ制御装置３１３に出力する。サーボ制御装置３１３は、ＣＰＵ２０１から入力を受けた駆動指令に基づき、モータ１への電流の出力量を演算し、モータ１へ電流を供給して、ロボットアーム１０１の関節１１１〜１１６の関節角度制御を行う。即ち、ＣＰＵ２０１は、サーボ制御装置３１３を介して、関節１１１〜１１６の角度が目標関節角度となるように、モータ１による関節１１１〜１１６の駆動を制御する。
【００３２】
図４は、第１実施形態に係るロボット装置５００の制御系を示す機能ブロック図である。
【００３３】
図４に示すように、ＣＰＵ２０１は、理論出力角演算部４０１と、実出力角演算部４０２と、誤差演算部４０４と、誤差比較部４０６と、推定関数演算部４０７と、補正量演算部４０８と、を有している。ＨＤＤ２０４は、誤差関数記憶部４０３と、許容誤差記憶部４０５と、補正量記憶部４０９と、を有している。
【００３４】
理論出力角演算部４０１は、入力側エンコーダ１０から受けた入力側パルス信号をカウントして入力側回転角度θｍを求め、減速比Ｎから出力側の角度換算した理論出力角θ１を演算する。つまり、θ１＝θｍ÷Ｎを演算する。実出力角演算部４０２は、出力側エンコーダ１６から受けた出力側パルス信号をカウントして実出力角（出力側回転角度）θ２を演算する。
【００３５】
誤差関数記憶部４０３は、誤差演算部４０４で演算する誤差関数Ａを記憶する手段である。なお、誤差関数Ａは誤差演算部４０４で演算せず、予め記憶させておいてもよい。
【００３６】
誤差演算部４０４は、まず、理論出力角演算部４０１の演算結果と、実出力角演算部４０２の演算結果と、から関節１１２の入出力の関節誤差Δθを求める。即ち、Δθ＝θ２−θ１となる。関節誤差が生じる理由としては、減速機１１の弾性ねじれ変形（角度差）が支配的である。そのため、関節１１２の関節誤差Δθは減速機１１のねじれ量と等価として扱うことができる。誤差演算部４０４は、次に、誤差関数Ａを求める。誤差関数Ａとは、入力側エンコーダ１０と出力側エンコーダ１６との偏心や、各エンコーダのスケール部と、スケール部に対向する検出部との偏心によって生じる誤差を関数として表わしたものである。誤差関数Ａの具体的な演算方法は後述する。
【００３７】
許容誤差記憶部４０５は、減速機１１の許容関節誤差θｌｉｍを記憶するものである。許容関節誤差θｌｉｍは、減速機１１の使用範囲を示す関節誤差である。ロボットアーム１０１の動作は、通常、許容関節誤差θｌｉｍ以下となるように運転される。許容関節誤差θｌｉｍは、予めカタログ等で定められている許容トルクから計算したものであってもよいし、別途実験で求めた値であってもよい。
【００３８】
誤差比較部４０６は、誤差演算部４０４で求めた関節誤差Δθと、許容誤差記憶部４０５に記憶されている減速機１１の許容関節誤差θｌｉｍを比較し、関節誤差Δθが許容関節誤差θｌｉｍを上回るか否かを判定する。関節誤差Δθが許容関節誤差θｌｉｍよりも大きい場合は、減速機１１に故障等の不具合が生じたと判定することができる。一方、関節誤差が許容関節誤差以下の場合は、通常運転が可能であると判定することができる。減速機１１に不具合が生じたと判定した場合、誤差比較部４０６は、モニタ３１１に関節誤差Δθが許容関節誤差θｌｉｍを上回ったことを示す警告を表示する。なお、警告の際に関節誤差Δθ、或いは、関節誤差Δθから換算した関節トルクを同時に表示してもよい。
【００３９】
推定関数演算部４０７は、後述する推定関数Ｃを演算する手段である。推定関数Ｃは、警告を発した後に、サーボ制御部３１３がロボットアーム１０１を微小区間動作（第１の動作）させ、その微小区間内における実出力角θ２と理論出力角θ１との関係から演算する。推定関数Ｃの具体的な演算方法は後述する。
【００４０】
補正量演算部４０８は、誤差関数Ａと、推定関数演算部４０７が演算して得た推定関数Ｃとを比較して補正量を演算する手段である。補正量はロボットアームの軸毎に演算される。また補正量は、各軸において、ワールド座標系Σにおける各ｘ，ｙ，ｚ軸方向についてそれぞれ演算することができる。
【００４１】
補正量記憶部４０９は、補正量演算部４０８で演算した補正量を記憶する手段である。サーボ制御部３１３は補正量記憶部４０９に記憶された補正量に基づいて、ロボットアーム１０１に組立作業等の動作（第２の動作）を行わせる。
【００４２】
次に、誤差演算部４０４による、誤差関数Ａの演算方法について、図５を参照して説明する。図５は偏心とエンコーダ検出誤差の関係を示す模式図である。ここでは、エンコーダのスケール部の中心点と、検出部の中心点との偏差を例として、偏心を説明する。図５において、実線の円はエンコーダ位置情報を示す点Ａを中心とした回転パターン４０１であり、二点破線の円は回転パターン４０１が点Ａに対して距離εだけ偏心した時（点Ａ´）の回転パターン４０２を示している。回転パターン４０１，４０２の半径はＲである。偏心距離εがゼロの場合、回転パターン４０２は回転パターン４０１と一致する。
【００４３】
偏心した方向の軸と偏心した方向と垂直に交わる軸、つまり、０度から１８０度の軸と９０度から２７０度の軸については、理想的なエンコーダ検出位置を示している。Ｂ点、Ｃ点、Ｄ点、Ｅ点はそれぞれ回転パターン４０１の位置情報０度、９０度、１８０度、２７０度をそれぞれ示しており、Ｂ´点、Ｃ´点、Ｄ´点、Ｅ´点は、偏心時のエンコーダ検出位置情報をそれぞれ示している。まず、偏心した方向の軸の検出誤差について、すなわち図５中のＡ点を起点としてＢ点とＢ´点、Ｄ点とＤ´点ではそれぞれ０度、１８０度の位置で検出されるため、偏心によるエンコーダ検出誤差は実質的には生じない。
【００４４】
それに対して、偏心した方向と垂直に交わる軸の検出誤差について、Ｃ点とＣ´点で比較すると、Ｃ´点はＣ点よりも進んだ位置として検出される。また、Ｅ点とＥ´点では、Ｅ´点はＥ点よりも遅れた位置で検出されるため、偏心によるエンコーダ検出誤差（関節誤差）が生じてしまう。ここで、エンコーダ検出誤差をΔθ［ｒａｄ］、偏心距離をε、回転ディスクパターン４０１の半径をＲとした場合、エンコーダ検出誤差θ［ｒａｄ］は、関係式（１）によって表現される。
【００４５】
【数１】
2020104177.tif 000003
【００４６】
つまり、この関係式（１）に基づいたエンコーダ検出誤差Δθ［ｒａｄ］が現れてしまうことで、理想的な位置に対して偏差が生じてしまう。
【００４７】
図６は偏心のあるエンコーダにおけるエンコーダ出力値とエンコーダ検出誤差の関係を示す模式図である。図６において、実線は偏心がない時のエンコーダ出力値であり、Ａ線は偏心がある時のエンコーダ出力値である。つまり、Ｚ線とＡ線のエンコーダ出力値の差分の量が偏心によるエンコーダ検出誤差である。エンコーダ偏心とエンコーダ検出誤差の関係は、ｓｉｎ関数で表わされていることより、エンコーダの軸が１回転（３６０度）すると正弦波状のエンコーダ検出誤差が１周期分生じる。以上のように、エンコーダ検出誤差は正弦波となる。
【００４８】
【数２】
2020104177.tif 000004
【００４９】
そして、回転ディスクが回転方向にずれたとき、すなわち、回転パターンが回転方向にずれたとき、（２）式のエンコーダ検出誤差の正弦波の位相が進む／遅れることになる。また、回転ディスクが径方向にずれたとき、（２）式のエンコーダ検出誤差の正弦波の振幅が変化することになる。
【００５０】
次に、推定関数演算部４０７による、推定関数Ｃの演算方法について説明する。図７（ａ）は実線が微小区間動作における実測値、破線が関節誤差が生じていないときの理論値、一点破線が推定関数Ｃである。推定関数Ｃは、警告を発した後に、サーボ制御部３１３がロボットアーム１０１を微小区間動作（第１の動作）させ、その微小区間内における実出力角θ２と理論出力角θ１との関係から演算される。具体的には、まず、微小区間動作における実出力角θ２と理論出力角θ１との関係を複数プロットし、補間する。補完する方法は特に限定されず、直線補間、円弧補間、ベジエ曲線補間、スプライン補間等の所定の補間方法を利用することができる。そして、複数のプロットを補間して得られた線分から、正弦波で表わされる推定関数Ｃを算出する。推定関数は以下の（３）式で与えられる。
【００５１】
【数３】
2020104177.tif 000005
【００５２】
なお推定関数Ｃの精度を上げるためには、線分は複数求めることが好ましい。図７（ａ）は線分を２つ求めた例である。
【００５３】
次に、補正量演算部４０８による、補正量の演算方法について説明する。
【００５４】
図７（ｂ）は推定関数Ｃと誤差関数Ａの一実施態様を示した図であり、一点破線が推定関数Ｃ、実線が誤差関数Ａをそれぞれ示している。図中で示しているΔωｉが補正量であり、このΔωｉの値によって、通常運転が可能かどうかを判定する。なお、補正量演算部４０８は各軸において、ワールド座標系Σにおける各ｘ，ｙ，ｚ軸方向についてそれぞれの補正量を演算する。
【００５５】
次に、ロボットアーム１０１が損傷等により異常が発生した場合に、通常運転が可能かどうかを判定するフローについて図８を参照しながら説明する。なお、図８に示す各ステップは、ＣＰＵ２０１がＨＤＤ２０４に記憶されたプログラムを読み出して実行されるものである。
【００５６】
図８に示すように、まず、ロボットアーム１０１は運転動作開始時に、サーボ制御装置３１３によりモータ１を駆動させ、実出力角演算部４０２により出力側エンコーダ１６から受けたパルスから実出力角θ２を演算する（ステップＳ１）。
【００５７】
続いて、理論出力角演算部４０１により、入力側エンコーダ１０から受けたパルスから入力側回転角度θｍを求め、減速比Ｎから出力側の角度換算した理論出力角θ１を演算する。誤差演算部４０４が各関節の誤差Δθを演算する。Δθを基に誤差関数Ａを演算する。また、その誤差関数Ａを誤差関数記憶部４０４に記憶させる（ステップＳ２）。
【００５８】
次に誤差比較部４０６が、誤差Δθが許容誤差記憶部４０５に記憶された許容誤差以下であるかどうかを判定する（ステップＳ３）。誤差Δθが許容誤差以下であれば、ロボットアーム１０１には異常が発生していないとして通常運転を続けることができる（ステップ８３）。一方、誤差Δθが許容誤差以下を超えている場合、誤差比較部４０５は、ロボットアーム１０１には異常が発生していると判定する。そしてモニタ３１１に異常アラームを表示し、ユーザに異常が生じたことを知らせる（ステップＳ４）。
【００５９】
誤差比較部４０６がロボットアーム１０１に異常が発生していると判定した場合、ロボットアーム１０１の状態を詳細に知るために、サーボ制御装置３１３は当該工程の経路である任意の微小区間を動くようロボットアーム１０１に指示する（ステップＳ５）。
【００６０】
続いて、その微小区間における実出力角θ２と理論出力角θ１とを推定関数演算部４０６に入力され、推定関数演算部が推定関数Ｃを演算する（ステップＳ６）。図７（ａ）は推定関数Ｃの一実施態様を示した図であり、一点破線が推定関数Ｃである。また、実線が微小区間におけるθ１に対するθ２の関係を示しており、この実施態様においては２箇所の微小区間を動作させている。なお、点線は理論直線である。
【００６１】
次に、推定関数演算部４０７は推定関数Ｃと誤差関数記憶部４０３に記憶された誤差関数Ａとを比較し、補正により通常運転が可能かどうかを判定する（ステップＳ７）。補正しても通常運転が可能であると判定した場合は、サーボ制御装置３１３はロボットアーム１０１の運転を停止させる（ステップＳ９２）。一方、補正することにより運転が可能であると判定した場合は、補正量演算部４０８が補正量を計算する（ステップＳ８）。補正量演算部４０８は各軸において、ワールド座標系Σにおける各ｘ，ｙ，ｚ軸方向についてそれぞれの補正量を演算する。
【００６２】
そして、演算された補正量は補正量記憶部４０９に記憶される。そして、サーボ制御部３１３は補正量記憶部４０９に記憶された補正量に基づいて、ロボットアーム１０１に対して補正運転を行う。
【００６３】
以上説明したように、第１実施形態に係るロボット装置５００によれば、ロボットアーム１０１の関節に損傷等の異常が発生した場合に、そこで発生した関節誤差を定量することができる。また、その定量した関節誤差に基づいて発生した異常のレベルを判定し、補正運転を行うか否かを判定することができる。補正運転を行うことができれば、交換するためのロボットアームの準備が整うまで生産ラインの稼働を止めることなく、ロボットアームの作業工程を進めることができる。さらに、ロボットアーム１０１の関節１１１〜１１６にこの方法を導入すれば、異常が発生した関節の特定が難しい場合や、複数の関節に異常が発生した場合にも、異常が発生した関節の特定が可能である。
【００６４】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００６５】
例えば、本実施形態においては、多関節ロボット１００が、垂直多関節ロボットである場合について説明したが、水平多関節ロボット（スカラロボット）、パラレルリンクロボットなどであってもよい。
【００６６】
また、本実施形態の各処理動作は具体的には制御装置２００の制御部としてのＣＰＵ２０１により実行されるものである。従って、上述した機能を実現するプログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００６７】
また、本実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム３３０が格納される場合について説明したが、これに限定するものではない。プログラム３３０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図３に示すＲＯＭ２０２、外部記憶装置３１２、記録ディスク３３１等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、本実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【００６８】
また、コンピュータが読み出したプログラムコードを実行することにより、本実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって本実施形態の機能が実現される場合も含まれる。
【符号の説明】
【００７０】
１  モータ
２  回転軸
１０  入力側エンコーダ
１１  減速機
１６  出力側エンコーダ
１００  ロボット
１１１〜１１６  関節
２００  制御装置
２０１  ＣＰＵ（演算部）
２０４  ＨＤＤ（記憶部）
３００  ティーチングペンダント
５００  ロボット装置
Ｗ  ワーク
【図１】
2020104177.tif 000006
【図２】
2020104177.tif 000007
【図３】
2020104177.tif 000008
【図４】
2020104177.tif 000009
【図５】
2020104177.tif 000010
【図６】
2020104177.tif 000011
【図７】
2020104177.tif 000012
【図８】
2020104177.tif 000013