(57)【特許請求の範囲】
【請求項１】
エンコーダを関節部分に有するロボットアームと、
前記エンコーダの検出結果に基づき前記ロボットアームの動作を制御する制御部と、を備え、
前記エンコーダは、パターンを有するスケールと、前記スケールに対して相対的に移動し、該移動した位置において前記パターンを読み取る検出ヘッドと、を有し、
前記制御部は、前記検出ヘッドによる読み取り結果に基づき読み取りエラーの有無を検出可能であり、
前記制御部は、前記読み取りエラーを検出した場合に前記ロボットアームの動作の継続を許容する許容領域を、前記パターンに対して設定することを特徴とするロボット装置。
【請求項２】
前記制御部は、前記読み取りエラーを検出しなかった場合、前記ロボットアームの動作を継続することを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記エンコーダは、減速機の出力側の位置を検出する出力エンコーダであり、
前記ロボットアームは、前記関節部分を駆動する駆動源と、前記駆動源の出力を減速する減速機と、前記減速機の入力側の位置を検出する入力エンコーダと、前記減速機の出力側の位置を検出する前記出力エンコーダと、を有し、
前記制御部は、前記入力エンコーダの検出結果に基づいて前記ロボットアームの動作を制御する入力制御モードと、前記出力エンコーダの検出結果に基づいて前記ロボットアームの動作を制御する出力制御モードと、を選択的に実行可能であることを特徴とする請求項１または２に記載のロボット装置。
【請求項４】
前記制御部は、前記許容領域以外の非許容領域を前記パターンに対して設定し、
前記制御部は、前記読み取りエラーを前記非許容領域で検出した場合に、前記ロボットアームの動作を停止することを特徴とする請求項１乃至３のいずれか１項に記載のロボット装置。
【請求項５】
前記制御部は、前記許容領域以外の非許容領域を前記パターンに対して設定し、
前記制御部は、前記読み取りエラーを前記非許容領域で検出した場合に、前記ロボットアームの動作を前記入力制御モードで制御することを特徴とする請求項３に記載のロボット装置。
【請求項６】
前記エンコーダがアブソリュートエンコーダであり、
前記制御部は、前記読み取りエラーを検出した位置を、前記読み取りエラーを検出していない２つの位置情報から特定することを特徴とする請求項１乃至５のいずれか１項に記載のロボット装置。
【請求項７】
前記出力エンコーダがインクリメンタルエンコーダであり、
前記制御部は、前記読み取りエラーを検出した位置を、前記入力エンコーダによる検出結果から求めることを特徴とする請求項３に記載のロボット装置。
【請求項８】
前記検出ヘッドは、前記スケールに光を照射する光源と、前記スケールからの反射光又は透過光を受光する受光部と、を有し、
前記制御部は、前記受光部による受光量に基づき前記読み取りエラーの有無を検出することを特徴とする請求項１乃至７のいずれか１項に記載のロボット装置。
【請求項９】
前記読み取りエラーを検出した旨を報知する報知部を更に備え、
前記制御部は、前記読み取りエラーを検出した場合、前記報知部に報知させることを特徴とする請求項１乃至８のいずれか１項に記載のロボット装置。
【請求項１０】
前記ロボットアームの位置合わせに用いる教示点データを記憶する記憶部を更に備え、
前記制御部は、前記非許容領域を前記教示点データに基づき設定することを特徴とする請求項４または５記載のロボット装置。
【請求項１１】
パターンを含むスケールと、前記スケールに対して相対的に移動し、該移動した位置において前記パターンを読み取る検出ヘッドと、を有するエンコーダを関節部分に備えるロボットアームの制御方法であって、
制御部が、前記エンコーダの検出結果に基づき、前記ロボットアームの動作を制御する工程と、
前記制御部が、前記検出ヘッドによる読み取り結果に基づき、読み取りエラーの有無を検出する工程と、
前記制御部が、前記パターンに対して設定された許容領域で前記読み取りエラーを検出した場合に、前記ロボットアームの動作を継続する工程と、を備えることを特徴とする制御方法。
【請求項１２】
前記制御部が、前記パターンに対して設定された、前記許容領域以外の非許容領域で前記読み取りエラーを検出した場合に、前記ロボットアームの動作を停止する工程と、を備えることを特徴とする請求項１１に記載の制御方法。
【請求項１３】
パターンを含むスケールと、前記スケールに対して相対的に移動し、該移動した位置において前記パターンを読み取る検出ヘッドと、を有するエンコーダを関節部分に備えるロボットアームを用いて部品を製造する製造方法であって、
制御部が、前記エンコーダの検出結果に基づき、前記ロボットアームの動作を制御する工程と、
前記制御部が、前記検出ヘッドによる読み取り結果に基づき、読み取りエラーの有無を検出する工程と、
前記制御部が、前記パターンに対して設定された許容領域で前記読み取りエラーを検出した場合に、前記ロボットアームの動作を継続する工程と、を備えることを特徴とする製造方法。
【請求項１４】
前記制御部が、前記パターンに対して設定された、前記許容領域以外の非許容領域で前記読み取りエラーを検出した場合に、前記ロボットアームの動作を停止する工程を備えることを特徴とする請求項１３に記載の製造方法。
【請求項１５】
請求項１１または１２に記載の制御方法の各工程を、前記ロボットアームと通信可能に接続されたコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムが記録された、前記コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダを有するロボットアームの技術に関する。
【背景技術】
【０００２】
製品（部品）を製造する生産ラインにおいて、多関節のロボットアームと、ロボットアームの先端に設けられたエンドエフェクタとを有するロボットが用いられている。ロボットアームの関節機構は、ＡＣサーボモータやＤＣブラシレスサーボモータ等のサーボモータと、高出力のトルクを得るためにサーボモータの出力側に設けられた減速機とを有し、リンク等の構造部材に接続されて構成されている。そして、減速機の入力側、即ちモータの回転軸に直結されたエンコーダ（以下、「入力エンコーダ」という）で角度を検出し、検出結果に基づいて、ロボットアームの先端（ロボットの手先）の位置制御を行っている。
【０００３】
入力エンコーダを用いた制御では、モータに接続した減速機のねじれやガタが検出されないため、ロボットアームの先端の位置誤差が発生する。また、駆動系には、モータと減速機との間にタイミングベルトが使用させることもあり、タイミングベルトに起因するねじれやガタにより、ロボットアームの先端の位置誤差が発生することもなる。また、ロボットアームの姿勢やワークの質量が変わることでも、ロボットアーム先端の位置誤差が発生する。
【０００４】
そこで、減速機の出力側にエンコーダ（以下、「出力エンコーダ」という）を設けた構成や、減速機の入力側と出力側の双方にエンコーダを設けた構成も提案されている（特許文献１参照）。出力エンコーダを用いてロボットアームの先端の位置制御を行うことにより、ロボットアームの先端の位置誤差を低減することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１１−１２３７１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、エンコーダは、アブソリュートエンコーダとインクリメンタルエンコーダとがあるがいずれも、パターンが形成されたスケールと、スケールに対して相対的に移動し、スケールのパターンから位置を読み取る検出ヘッドと、を有する。
【０００７】
エンコーダのスケールに傷等の欠陥が形成されたりごみが付着したりすると、検出ヘッドにより検出位置を正確に読み取ることができなくなる読み取りエラーが発生する可能性がある。
【０００８】
ロボットは、主に工場の生産ラインに導入される。したがって、読み取りエラーでロボットを停止させた場合、その間、部品の生産を止めることになる。ロボットを停止させた場合、部品の生産を再開するためには、ロボットアームを分解してエンコーダからごみを取り除くかエンコーダを交換する、或いはロボットアームを交換する復旧作業が必要である。
【０００９】
ロボットアームを分解した場合は、工場内のクリーン度により、新たなごみがエンコーダ内に侵入することがあった。また、ロボットアームを交換する場合は、ロボットアームの取り付け誤差やロボットアームの製造のばらつきがあるため、再教示（ロボットの動作位置の設定）が必要となり、復旧までに時間を要していた。いずれにしても、読み取りエラーが生じたらロボットを停止させていたので、生産ラインを頻繁に止めて復旧作業を行う必要があったため、生産効率の低下の要因となっていた。
【００１０】
そこで、本発明は、ロボットアームの動作の安定性を維持しながら、生産効率を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
本発明のロボット装置は、エンコーダを関節部分に有するロボットアームと、前記エンコーダの検出結果に基づき前記ロボットアームの動作を制御する制御部と、を備え、前記エンコーダは、パターンを有するスケールと、前記スケールに対して相対的に移動し、該移動した位置において前記パターンを読み取る検出ヘッドと、を有し、前記制御部は、前記検出ヘッドによる読み取り結果に基づき読み取りエラーの有無を検出可能であり、前記制御部は、前記読み取りエラーを検出した場合に前記ロボットアームの動作の継続を許容する許容領域を、前記パターンに対して設定することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、読み取りエラーがスケールの許容領域で生じたと判別した場合にロボットアームの動作を継続しても、ロボットアームの動作の精度にはほとんど影響しないので、ロボットアームの動作の安定性は維持される。そして、ロボットアームの動作を継続するので、生産効率を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係るロボット装置を示す斜視図である。
【図２】第１実施形態に係るロボット装置のロボットアームの関節を示す部分断面図である。
【図３】第１実施形態に係るロボット装置の出力エンコーダを示す説明図である。
【図４】第１実施形態における出力エンコーダのスケールを示す平面図である。
【図５】第１実施形態に係るロボット装置の制御装置の構成を示すブロック図である。
【図６】第１実施形態に係るロボット装置の要部構成を示した機能ブロック図である。
【図７】（ａ）はスケールにごみがない状態を示すスケールの模式図、（ｂ）はスケールにごみが付着した状態を示すスケールの模式図である。
【図８】出力エンコーダの角度とロボットハンドの移動距離とを説明するための図である。
【図９】第１実施形態に係るロボット制御方法を示すフローチャートである。
【図１０】第２実施形態に係るロボット装置の要部構成を示した機能ブロック図である。
【図１１】第２実施形態に係るロボット制御方法を示すフローチャートである。
【図１２】第３実施形態に係るロボット装置の出力エンコーダのスケールを示す平面図である。
【図１３】第３実施形態に係るロボット装置の要部構成を示した機能ブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１は、第１実施形態に係るロボット装置を示す斜視図である。ロボット装置１００は、ロボット２００と、ロボット２００の動作を制御する制御装置３００と、ユーザの操作によりロボット２００の動作を教示する教示部としてのティーチングペンダント４００と、を備えている。
【００１６】
ロボット２００は、垂直多関節のロボットアーム２０１と、ロボットアーム２０１の先端に取り付けられた、エンドエフェクタとしてのロボットハンド２０２と、を有している。
【００１７】
ロボットアーム２０１は、架台に固定されるベース部（基端リンク）２１０と、変位や力を伝達する複数のリンク２１１〜２１６とを有し、これらリンク２１０〜２１６が関節Ｊ１〜Ｊ６で揺動（旋回）可能又は回転可能に連結されて構成されている。第１実施形態では、ロボットアーム２０１は、揺動する３軸と回転する３軸の６軸の関節Ｊ１〜Ｊ６で構成されている。
【００１８】
ロボットハンド２０２は、複数のフィンガー２２０を有し、リンク（先端リンク）２１６に取り付けられている。複数のフィンガー２２０を閉動作させることにより、第１ワークであるワークＷ１を把持することができ、複数のフィンガー２２０を開動作させることにより、ワークＷ１を把持解放することができる。複数のフィンガー２２０を用いてワークＷ１を把持することにより、組付ワーク（第１ワーク）であるワークＷ１を被組付ワーク（第２ワーク）であるワークＷ２に組付けて部品Ｗ０を製造する作業を行うことができる。
【００１９】
ロボットアーム２０１は、各関節Ｊ１〜Ｊ６に対して設けられ、各関節Ｊ１〜Ｊ６をそれぞれ駆動するための複数（６つ）の関節駆動装置２３０を有している。なお、図１では、便宜上、関節駆動装置２３０を関節Ｊ２にのみ図示しており、他の関節Ｊ１，Ｊ３〜Ｊ６において図示を省略しているが、他の関節Ｊ１，Ｊ３〜Ｊ６にも同様の構成の関節駆動装置２３０が配置されている。
【００２０】
図２は、ロボットアーム２０１の関節Ｊ２を示す部分断面図である。以下、関節Ｊ２を例に代表して説明し、他の関節Ｊ１，Ｊ３〜Ｊ６については、同様の構成であるため、説明を省略する。
【００２１】
関節駆動装置２３０は、関節を駆動する駆動源である回転モータ（以下、「モータ」という）２３１と、モータ２３１の出力を減速する減速機２３３と、を有している。
【００２２】
モータ２３１は、サーボモータであり、例えばブラシレスＤＣサーボモータやＡＣサーボモータである。モータ２３１は、Ｕ相、Ｖ相、Ｗ相の各巻き線に後述するモータ駆動部３６５からのＰＷＭ信号が加えられることにより回転子が回転する。モータ２３１の回転が減速機２３３で減速されて関節（リンク）を駆動する。例えば、関節が回転関節の場合、減速機２３３の減速比が５０：１であれば、モータ２３１が５０回転で減速機２３３の出力側に配置されているリンク２１２が１回転する。
【００２３】
関節Ｊ２には、減速機２３３の入力側の位置、即ちモータ２３１の回転軸２３２の回転角度を検出するエンコーダ（入力エンコーダ）２３５が設けられている。また、関節Ｊ２には、減速機２３３の出力側の位置、即ちリンク２１１に対するリンク２１２の角度（関節Ｊ２の角度）を検出するエンコーダ（出力エンコーダ）２３６が設けられている。
【００２４】
エンコーダ２３５は、ロータリーエンコーダであり、アブソリュートエンコーダが望ましく、１回転の絶対角度エンコーダ、絶対角度エンコーダの回転総数のカウンタ、及びカウンタに電力を供給するバックアップ電池を有して構成される。ロボットアーム２０１への電源の供給がオフになっても、このバックアップ電池が有効であれば、ロボットアーム２０１への電源供給のオン／オフに関係なく、カウンタにおいて回転総数が保持される。したがって、ロボットアーム２０１の姿勢が制御可能となる。なお、エンコーダ２３５は、回転軸２３２に取り付けられているが、減速機２３３の入力軸に取り付けてもよい。
【００２５】
エンコーダ２３５はモータ２３１の回転角度を検出するので、例えば５０：１の減速機２３３の場合、リンク２１２が１回転するとき５０回転する必要がある。したがってエンコーダ２３５は５０回転以上の多回転角度を検出することができるアブソリュートエンコーダが用いられる。
【００２６】
エンコーダ２３６は、ロータリーエンコーダであり、アブソリュートエンコーダである。エンコーダ２３６は、隣り合う２つのリンク間の相対角度を検出する。関節Ｊ２においては、エンコーダ２３６は、リンク２１１とリンク２１２との間の相対角度を検出する。なお、エンコーダ２３６は、減速機２３３の出力軸に取り付けてもよい。
【００２７】
また、リンク２１１とリンク２１２とは、クロスローラベアリング２３７を介して回転自在に結合されている。
【００２８】
モータ２３１は、モータカバー２３８で覆われて保護されている。モータ２３１とエンコーダ２３５との間には、不図示のブレーキユニットが設けられている。ブレーキユニットの主な機能は、電源オフ時のロボットアーム２０１の姿勢の保持である。
【００２９】
減速機２３３は、第１実施形態では、小型軽量で減速比の大きい波動歯車減速機である。減速機２３３は、モータ２３１の回転軸２３２に結合された、入力軸であるウェブジェネレータ２４１と、リンク２１２に固定された、出力軸であるサーキュラスプライン２４２と、を備えている。なお、サーキュラスプライン２４２は、リンク２１２に直結されているが、リンク２１２に一体に形成されていてもよい。
【００３０】
また、減速機２３３は、ウェブジェネレータ２４１とサーキュラスプライン２４２との間に配置され、リンク２１１に固定されたフレクスプライン２４３を備えている。フレクスプライン２４３は、ウェブジェネレータ２４１の回転に対して減速比Ｎで減速され、サーキュラスプライン２４２に対して相対的に回転する。従って、モータ２３１の回転は、減速機２３３で１／Ｎの減速比で減速されて、フレクスプライン２４３が固定されたリンク２１１に対してサーキュラスプライン２４２が固定されたリンク２１２を相対的に回転運動させ、関節Ｊ２を揺動（旋回）させる。
【００３１】
なお、本実施形態では、モータ２３１の回転軸２３２が減速機２３３の入力軸であるウェブジェネレータ２４１に直結されているが、モータ２３１の回転軸２３２に、例えばタイミングベルトを有するベルト機構などの伝達機構が配置されていてもよい。この場合、伝達機構も含めて減速機が構成されていてもよい。
【００３２】
図３は、出力エンコーダの概略構成を示す説明図である。出力エンコーダであるエンコーダ２３６は、光学式のエンコーダである。エンコーダ２３６は、リンク２１１に設けられたスケール６１０と、リンク２１２に設けられた検出ヘッド６２０とを有して構成される。なお、スケール６１０と検出ヘッド６２０との配置は逆であってもよい。つまり、関節で接続された一対のリンクのうち、一方のリンクにスケール６１０が配置され、他方のリンクに検出ヘッド６２０が配置されている。
【００３３】
検出ヘッド６２０は、スケール６１０に光を照射する光源である発光素子６２１と、スケール６１０からの反射光を受光する受光部である受光素子６２２と、これら素子６２１，６２２が実装されたプリント配線板６２３と、を備えている。発光素子６２１は、発光ダイオードであり、受光素子６２２は、フォトダイオードアレイである。
【００３４】
スケール６１０は、円盤形のガラス基板上に反射膜からなるパターン形成されて構成されている。なお、スケール６１０の基板はガラスに限るものではなく、樹脂を用いても良い。
【００３５】
発光素子６２１は、定電流回路で駆動され、安定した光出力を得られるよう制御される。発光素子６２１からの光束は、スケール６１０へ向かい、スケール６１０の反射膜が形成されている位置では反射し、反射膜が形成されていない位置では反射しない。スケール６１０の反射膜が形成されている位置からの反射光は、受光素子６２２で受光される。
【００３６】
受光素子６２２の出力（パルス信号）は、増幅回路で増幅され、反射膜がある場合はハイレベル、反射膜が無い場合はローレベルの電圧となるデジタル信号（シリアル信号）に変換される。なお、シリアル伝送方式の代わりにパラレル伝送方式を採用してもよい。
【００３７】
図４は、第１実施形態における出力エンコーダのスケールを示す平面図である。出力エンコーダであるエンコーダ２３６は、アブソリュートエンコーダであり、図４に示すスケール６１０を有している。
【００３８】
スケール６１０は、円盤状のガラス基板の表面に半径方向に並んで形成された複数のトラック６１１〜６１４からなる、図４中一点鎖線で示す被読取領域Ｒ０を有している。被読取領域Ｒ０には、反射膜のある部分６１０１と反射膜のない部分６１０２とでパターンが形成されている。具体的には、各トラック６１１〜６１４には、反射膜のある部分６１０１と、反射膜のない部分６１０２とが周方向（角度方向）に交互に配置されたゼブラパターンが形成されている。
【００３９】
検出ヘッド６２０（図３）は、スケール６１０に対して相対的に角度方向に移動することで、角度方向の位置（角度）に応じた各トラック６１１〜６１４の半径方向のパターンを読み取る。これにより、検出ヘッド６２０は、スケール６１０の絶対位置（絶対角度）を検知することができる。そして、検出ヘッド６２０は、各トラック６１１〜６１４に対するビット列を示すパルス信号を出力する。具体的には、検出ヘッド６２０の受光素子６２２が反射光を受光した場合にはハイレベル、反射光を受光しなかった場合にはローレベルのパルス信号が出力される。例えば図４中、破線Ａの位置では、トラック６１１が０（ローレベル）、トラック６１２が１（ハイレベル）、トラック６１３が０（ローレベル）、トラック６１４が０（ハイレベル）のビット列となる信号を出力する。このように、３６０度の位置により違ったコード列になるようなビット列となっており、これらビット列から絶対位置情報が得られる。
【００４０】
なお、図４において、単純なバイナリコードのパターンの例を示しているが、この方式に限定するものではなく、グレイコードやＭコードなど他のコード列の方式であってもよい。
【００４１】
以上、エンコーダ２３６について説明したが、エンコーダ２３５もエンコーダ２３６と略同様の構成であるため、説明を省略する。
【００４２】
図５は、ロボット装置１００の制御装置３００の構成を示すブロック図である。制御装置３００は、メイン制御部３３０と、複数（関節の数に対応した数：第１実施形態では６つ）の関節制御部３４０と、を有する。
【００４３】
メイン制御部３３０は、コンピュータで構成されており、演算部（制御部）としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、メイン制御部３３０は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、メイン制御部３３０は、記録ディスクドライブ３０５及び各種のインタフェース３１１〜３１３を備えている。
【００４４】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５及び各種のインタフェース３１１〜３１３が、バスを介して接続されている。ＲＯＭ３０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００４５】
ＨＤＤ３０４は、ＣＰＵ３０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ３０１に、後述する処理を実行させるためのプログラム３２０を記録するものである。ＣＰＵ３０１は、ＨＤＤ３０４に記録（格納）されたプログラム３２０に基づいてロボット制御方法（部品の製造方法）の各工程を実行する。
【００４６】
記録ディスクドライブ３０５は、記録ディスク３２１に記録された各種データやプログラム等を読み出すことができる。なお、メイン制御部３３０には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の不図示の外部記憶装置が接続されていてもよい。
【００４７】
教示部であるティーチングペンダント４００は、インタフェース３１１に接続されている。ティーチングペンダント４００は、ユーザの入力操作により、ロボット２００を教示する教示点、即ち各関節Ｊ１〜Ｊ６の目標関節角度（各関節Ｊ１〜Ｊ６のモータ２３１の目標回転位置）を指定するものである。教示点データは、インタフェース３１１及びバスを通じてＨＤＤ３０４に出力される。
【００４８】
ＨＤＤ３０４には、ティーチングペンダント４００でユーザにより設定された関節角度データを含んだ教示点データが格納（記憶）される。ＣＰＵ３０１は、ＨＤＤ３０４に格納（記憶）された教示点データを読み出すことができる。そして、ＣＰＵ３０１は、ＨＤＤ３０４に記憶された教示点データからロボットアーム２０１の関節Ｊ１〜Ｊ６の軌道データを計算する。具体的には、教示点間を直線補間や円弧補間等、指定された補間方法で補間して軌道データを計算する。ＣＰＵ３０１は、この軌道データに従ってロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を制御する。
【００４９】
表示部である表示装置（モニタ）５００は、インタフェース３１２に接続されており、ＣＰＵ３０１の制御の下、画像を表示する。
【００５０】
インタフェース３１３には、関節制御部３４０が接続されている。なお、第１実施形態では、ロボットアーム２０１が６つの関節Ｊ１〜Ｊ６を有しているので、制御装置３００は、６つの関節制御部３４０を有するが、図５では、関節制御部３４０が１つだけ図示し、残りの５つは図示を省略している。各関節制御部３４０は、ロボットアーム２０１の内部に配置されているが、各関節制御部３４０の配置位置は、これに限定するものではなく、例えば制御装置３００の筐体内部に配置されていてもよい。
【００５１】
ＣＰＵ３０１は、教示点データに基づき、モータ２３１の回転軸２３２の回転角度の制御量を示す駆動指令のデータを所定時間間隔でバス及びインタフェース３１３を介して関節制御部３４０に出力する。
【００５２】
関節制御部３４０は、ＣＰＵ３５１、記憶部としてのＥＥＰＲＯＭ３５２及びＲＡＭ３５３、インタフェース３６１、エンコーダ制御部３６２，３６３並びにモータ駆動部３６５を備えており、これらがバスを介して接続されて構成されている。
【００５３】
ＣＰＵ３５１は、プログラム３７０に従って演算処理を実行する。ＥＥＰＲＯＭ３５２は、プログラム３７０を記憶する記憶装置である。ＲＡＭ３５３は、ＣＰＵ３５１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００５４】
メイン制御部３３０は、複数（６つ）のインタフェース３１３（図３では１つのみ図示）を有している。各インタフェース３１３と各関節制御部３４０のインタフェース３６１とがケーブル等で接続されており、メイン制御部３３０と各関節制御部３４０との間で信号の送受信を行うことができる。
【００５５】
エンコーダ２３５は、エンコーダ制御部３６２に接続され、エンコーダ２３６は、エンコーダ制御部３６３に接続されている。各エンコーダ２３５，２３６からは、検出した角度検出値を示すパルス信号が各エンコーダ制御部３６２，３６３に出力される。
【００５６】
各エンコーダ制御部３６２，３６３は、前述した検出ヘッド６２０の発光素子６２１を駆動する定電流回路と、エンコーダ２３５，２３６の出力を増幅してデジタル信号（パラレル信号）として出力する増幅回路とを有する。
【００５７】
モータ駆動部３６５は、例えば半導体スイッチング素子を有するモータドライバであり、入力した電流指令に応じて、パルス幅変調された３相交流のＰＷＭ波形の電圧をモータ２３１に出力することで、モータ２３１に電流を供給する。
【００５８】
各関節制御部３４０のＣＰＵ３５１は、メイン制御部３３０のＣＰＵ３０１にエンコーダ２３５，２３６の検出結果を出力する。ＣＰＵ３０１は、エンコーダ２３５，２３６の検出結果に基づきロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を制御すべく、駆動指令を各関節制御部３４０のＣＰＵ３５１に出力する。
【００５９】
各関節制御部３４０のＣＰＵ３５１は、メイン制御部３３０のＣＰＵ３０１から入力を受けた駆動指令に基づき、モータ２３１への電流の出力量（電流指令）を演算し、電流指令をモータ駆動部３６５に出力する。
【００６０】
モータ駆動部３６５は、入力を受けた電流指令に対応する電流をモータ２３１に供給する。そして、モータ２３１は、モータ駆動部２６５から電力供給を受けて駆動トルクを発生し、減速機２３３の入力軸であるウェブジェネレータ２４１にトルクを伝達する。減速機２３３において、出力軸であるサーキュラスプライン２４２は、ウェブジェネレータ２４１の回転に対して１／Ｎの回転数で回転する。これにより、リンク２１２がリンク２１１に対して相対的に揺動（回転）する。
【００６１】
このように、各関節制御部３４０は、関節角度がメイン制御部３３０から入力を受けた関節角度指令（駆動指令）に近づくようにモータ２３１に電流を供給して各関節Ｊ１〜Ｊ６の関節角度を制御する。
【００６２】
なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４，ＥＥＰＲＯＭ３５２であり、ＨＤＤ３０４，ＥＥＰＲＯＭ３５２にプログラム３２０，３７０が格納される場合について説明するが、これに限定するものではない。プログラム３２０，３７０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム３２０，３７０を供給するための記録媒体としては、図５に示す記録ディスク３２１、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、ＵＳＢメモリ等の不揮発性メモリ、ＲＯＭ等を用いることができる。
【００６３】
ここで、ＣＰＵ３０１は、ロボットアーム２０１の動作を制御する制御モードとして、入力制御モード（セミクローズドループ制御）と、出力制御モード（フルクローズドループ制御）とを選択的に実行する。詳述すると、ＣＰＵ３０１は、選択した制御モードでフィードバック制御するよう、各関節制御部３４０のＣＰＵ３５１に指令を送る。
【００６４】
入力制御モードは、各関節Ｊ１〜Ｊ６のエンコーダ２３５の検出結果に基づいてロボットアーム２０１の各関節Ｊ１〜Ｊ６の動作を制御する制御モードである。具体的には、各関節Ｊ１〜Ｊ６のエンコーダ２３５の検出角度を目標角度に近づけるフィードバック制御である。入力制御モードのときは、駆動指令である関節角度指令を減速機２３３の減速比Ｎで補正（具体的には、Ｎ倍）して、目標角度とする。
【００６５】
出力制御モードは、エンコーダ２３６の検出結果に基づいてロボットアーム２０１の関節の動作を制御する制御モードである。具体的には、各関節Ｊ１〜Ｊ６のエンコーダ２３６の検出角度を目標角度に近づけるフィードバック制御である。
【００６６】
各関節Ｊ１〜Ｊ６には、減速機２３３等の撓み部材が存在するため、入力制御モードよりも出力制御モードの方がロボットハンド２０２の位置精度が高いが、応答性は入力制御モードの方が高く、ロボットアーム２０１の高速動作が可能である。
【００６７】
図６は、第１実施形態に係るロボット装置の要部構成を示した機能ブロック図である。制御装置３００については、プログラム３２０に基づくＣＰＵ３０１の機能、及びプログラム３７０に基づくＣＰＵ３５１の機能をブロック化して図示している。図６では、１つの関節と当該１つの関節に対応する１つの関節制御部３４０のみ図示している。
【００６８】
メイン制御部３３０は、ごみ位置判定部３８１、エラー判定部３８２、ごみ位置記憶部３８３及び教示位置記憶部３８４からなる。
【００６９】
メイン制御部３３０のＣＰＵ３０１は、プログラム３２０によりごみ位置判定部３８１及びエラー判定部３８２として機能する。ごみ位置記憶部３８３及び教示位置記憶部３８４は、例えばＨＤＤ３０４である。
【００７０】
また、各関節制御部３４０のモータ制御部３８５は、プログラム３７０により動作するＣＰＵ３５１の機能である。モータ制御部３８５は、ＰＩＤ制御を行うフィードバック制御部で、マイコン（ＣＰＵ３５１）によりソフトウエア制御を行う。
【００７１】
本実施形態では、発光素子６２１からスケール６１０に光を当て、反射光を読み取る方式を用いている。光の反射を利用しているため、光路（具体的にはスケール６１０）に傷等の欠陥やごみがあると、反射光が遮られ、読み取りエラーが発生する。
【００７２】
ロボットアーム２０１の関節Ｊ１〜Ｊ６は、部品点数が多く、複雑な構造となっている。したがって、それぞれの部品に付着したごみが、組み立て時や動作時にスケール６１０に付着したり、動作によりごみ、オイルミストが発生し、それがスケール６１０に付着したりする可能性がある。
【００７３】
入力エンコーダであるエンコーダ２３５は、モータ２３１の制作時にクリーンルームでモータ２３１に組み上げられ、密閉される。よって、その後はエンコーダ２３５にごみが侵入する蓋然性は低い。したがって、初期状態で読み取りエラーが発生しなければ、その後、読み取りエラーが発生する蓋然性は低い。これに対し、出力エンコーダであるエンコーダ２３６は、ロボットアーム２０１の組み立て時に関節Ｊ１〜Ｊ６の一部として組み立てを行うことになる。
【００７４】
読み取りエラーについて具体的に説明する。図７（ａ）は、スケールにごみがない状態を示すスケールの模式図、図７（ｂ）は、スケールにごみが付着した状態を示すスケールの模式図である。受光素子６２２からの信号（エンコーダ制御部３６３の出力信号）について、ある上限の閾値以上の電圧レベルの場合は、ハイレベル（つまり、１）、ある下限の閾値以下の電圧レベルの場合は、ローレベル（つまり、０）と判断する。つまり、図７（ａ）に示すようにスケール６１０上にごみがなければ、スケール６１０のパターン（反射膜がある部分６１０１及び反射膜がない部分６１０２）を正確に読み取ることができる。
【００７５】
しかし、図７（ｂ）に示すように、ごみＤがスケール６１０上に存在すると、信号の電圧レベルが、上限の閾値よりも低く、下限の閾値よりも高い状態となる。つまり、反射膜上にごみがあれば、光の反射量（受光素子６２２が受光する光束、即ち受光量）が減少する。この光束の減少量はごみＤのサイズが小さければ少なく、大きければ多い。また、傷等の欠陥やごみの状況によって異なる。例えばごみの場合、液状のものとそれ以外のものでは影響が異なる。ごみＤの大きさが大きいほど、位置精度が落ち、電圧レベルが上限の閾値を下回った場合（ごみ、傷等の欠陥が大きい場合）、読み取りエラーと判定する。また、反射膜上ではないところにごみがあれば、ごみにより反射量が増加する。このように、受光素子６２２が受光する光束（出力電圧レベル）がハイレベルともローレベルとも判断できない状態（上限の閾値よりも低く、下限の閾値よりも高い状態）を、読み取りエラーと判定する。つまり、本実施形態では、受光素子６２２による受光量として電圧値を用いて読み取りエラーの判定を行う。
【００７６】
ここで、教示点はロボットアーム２０１の全ての動作について設定するが、ロボットアーム２０１が移動する場合と、ロボットハンド２０２でワークＷ１を把持する場合とでは、エンコーダ２３６のスケール６１０上のごみの影響が異なる。
【００７７】
例えばロボットアーム２０１の関節を速度６０［ｒｐｍ］相当で動作させた場合、５００［μｓ］周期でモータ制御すると、エンコーダ２３６からの角度データは１０度毎のデータ取得となる。仮にデータが取れない場合、補完することも可能であるため、通常の移動動作では傷等の欠陥やごみによる影響は低い。
【００７８】
一方、ロボットハンド２０２を数十［μｍ］ピッチで精密教示する場合、エンコーダ２３６のデータが取れないと精密な位置に調節できないため、傷等の欠陥やごみの影響が大きい。以下、ロボットアーム２０１を動作させるときの教示を「教示」、ロボットハンド２０２を数十［μｍ］の精度で位置決めするときのロボットアーム２０１の教示を「精密教示」と呼ぶ。
【００７９】
例えば、ごみのサイズとエンコーダ２３６の使用範囲はスケールピッチが１００［μｍ］の場合、１００［μｍ］以上のごみサイズで読み取りに影響が出てくる。１００［μｍ］以下の場合は精度が下がるが、位置検出は可能である。１００［μｍ］のごみが付着した場合、スケールサイズによるが、スケールトラックの数が２０００トラックとすると、０．２度の範囲が使えなくなる。スケールトラックが２０００トラックであってもスケールの読み取りデータを逓倍する技術があるため、実際にはエンコーダ２３６の分解能は更に数百倍から数千倍になる。
【００８０】
図８は、出力エンコーダの角度とロボットハンドの移動距離とを説明するための図である。ロボット２００の手先（ロボットハンド２０２）の角度θが０．２度の範囲は、ロボットアーム２０１の関節Ｊ５から手先までの距離Ｌを１００［ｍｍ］とした場合、手先で０．３［ｍｍ］の範囲が使用できなくなることになる。手先の位置に数十［μｍ］の精度を必要とする場合、読み取りエラーを許容することができない。したがって、精密教示を行う場合は、ごみや欠陥の影響は無視できなくなる。
【００８１】
また一方で実際に精密教示を行う角度範囲とごみの影響を受ける角度範囲とを比較すると、精密教示で使用する範囲は、ロボット２００の手先部分の数ミリの範囲である。例えば関節Ｊ５から手先までの距離を１００［ｍｍ］とする。ロボット２００の手先が仮に２［ｍｍ］の範囲で精密教示するとなると、使用する角度θは１度程度となる。０．２度の範囲でごみが付着したとしても、ごみの位置と精密教示の位置が同一となる可能性は１／３６０程度の確率となり、ごみや欠陥が必ずしも精密教示に影響することは無い。
【００８２】
この精密教示では、ロボットハンド２０２のＸ方向、Ｙ方向、Ｚ方向の位置及び姿勢を、ティーチングペンダント４００を用いてロボット２００を操作して教示する。本実施形態では、教示位置記憶部３８４は、指令する関節Ｊ１〜Ｊ６の角度情報を教示点データとして記憶している。エラー判定部３８２は、教示位置記憶部３８４の教示点データに基づき、図４に示すように、スケール６１０の被読取領域Ｒ０を、検出ヘッド６２０による読み取りエラーを許容する許容領域Ｒ１と、許容領域以外の非許容領域Ｒ２とに分けておく。非許容領域Ｒ２は、スケール６１０において教示点データに対応する位置を含むように設定される。なお、許容領域Ｒ１と非許容領域Ｒ２とを予めユーザが設定しておいてもよい。
【００８３】
第１実施形態では、エンコーダ２３６のスケール６１０上のごみ位置と教示点との位置関係により、傷等の欠陥やごみによる読み取りエラーについてロボットアーム２０１の動作への影響を判断し、その結果により、動作継続処理と動作停止処理とを切り替える。
【００８４】
第１実施形態では、部品Ｗ０を製造する製造過程において、精密教示により教示された教示点にロボットアーム２０１を位置合わせする。例えば、組付開始位置と組付完了位置とが教示された教示点にロボットアーム２０１を位置合わせする。この位置合わせの際、ロボットアーム２０１の動作を制御する制御モードは、出力制御モードとし、教示点間の移動は、入力制御モードとする。
【００８５】
図９は、第１実施形態に係るロボット制御方法（部品の製造方法）を示すフローチャートである。まず、ごみ位置判定部３８１は、検出ヘッド６２０（受光素子６２２）の読み取り結果を、エンコーダ制御部３６３から取得する（Ｓ１）。
【００８６】
ごみ位置判定部３８１は、検出ヘッド６２０による読み取り結果（つまり、受光素子６２２の受光量）に基づき、読み取りエラーの有無を判断する（Ｓ２：判断処理、判断工程）。
【００８７】
ごみ位置判定部３８１は、ステップＳ２にて読み取りエラーが有ると判断した場合（Ｓ２：Ｙｅｓ）、エンコーダ２３６のスケール６１０の傷等の欠陥やごみの位置を判定する（Ｓ３）。位置情報は、例えばごみや欠陥により読み取りエラーとなる直前で読み取りが可能であった位置の情報（角度θＡ）と、読み取りエラーとなった直後の読み取りが可能となった位置の情報（角度θＢ）から、ごみや欠陥の位置の情報を算出することが可能である。
【００８８】
このとき、ごみ、傷等の欠陥の位置情報は、以下の式で算出される。
【００８９】
（θＢ−θＡ）／２＋θＢ
【００９０】
エンコーダ２３６がアブソリュートエンコーダであるので、角度θＢは一旦ホームポジションに戻らなくても位置情報を取得できる。
【００９１】
例えば取得したｎ番目の角度情報として２５１．２７度、ｎ＋１番目の角度情報として２５１．２９度、その後、読み取りエラーとなった後、ｎ＋２番目の角度情報として２５１．３３度を取得したとする。この場合、スケール６１０におけるごみ、傷、欠陥の位置は、
（２５１．３３度−２５１．２９度）／２＋２５１．２９度
となり、位置情報として、２５１．３１度が得られる。
【００９２】
このようにごみ位置判定部３８１は、ステップＳ３において、読み取りエラーが生じた位置を、読み取りエラーが生じていない前後の位置から特定する。また、ごみ位置判定部３８１は、エンコーダ２３６のスケール６１０において読み取りエラーが生じた位置をごみ位置記憶部３８３に記憶させる。
【００９３】
次に、ごみ位置判定部３８１は、ステップＳ２にて読み取りエラーが有ると判断した場合（Ｓ２：Ｙｅｓ）、表示部であるモニタ５００に読み取りエラーが生じた旨を表示させる（Ｓ４）。このとき、ステップＳ３で求めた読み取りエラーが生じた位置情報も表示させてもよい。なお、本実施形態では、報知部がモニタ５００である場合について説明したがこれに限定するものではなく、ブザーや音声によって、読み取りエラーが生じた旨を報知するようにしてもよい。
【００９４】
次に、エラー判定部３８２は、ごみ位置判定部３８１がステップＳ２にて読み取りエラーが有ると判断した場合（Ｓ２：Ｙｅｓ）、読み取りエラーが許容領域Ｒ１及び非許容領域Ｒ２のいずれの領域で生じたかを判別する（Ｓ５：判別処理、判別工程）。例えば、エラー判定部３８２は、読み取りエラーが許容領域Ｒ１で生じたか否かを判別する。本実施形態では、ステップＳ３で特定した読み取りエラーの位置に基づいて、読み取りエラーが許容領域Ｒ１及び非許容領域Ｒ２のいずれの領域で生じたかを判別する。
【００９５】
エラー判定部３８２は、ステップＳ５において読み取りエラーが非許容領域Ｒ２で生じたと判別した場合（Ｓ５：Ｎｏ）には、ロボットアーム２０１の全ての関節Ｊ１〜Ｊ６の動作を停止する（Ｓ６：動作停止処理、動作停止工程）。
【００９６】
エラー判定部３８２は、ステップＳ５において読み取りエラーが許容領域Ｒ１で生じたと判別した場合（Ｓ５：Ｙｅｓ）には、ロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を継続し（Ｓ７：動作継続処理、動作継続工程）、ステップＳ１の処理に戻る。また、ごみ位置判定部３８１は、ステップＳ２にて読み取りエラーが有ると判断した場合（Ｓ２：Ｎｏ）には、ロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を継続し（Ｓ７：動作継続処理、動作継続工程）、ステップＳ１の処理に戻る。この動作継続時、モータ制御部３８５は、エンコーダ制御部３６３からの位置情報によりフィードバック制御し、モータ２３１の駆動を制御する。
【００９７】
スケール６１０において、ごみの位置と、エンコーダ２３６において精密教示にて使用する位置（非許容領域Ｒ２）とが重なる確率は低い。第１実施形態では、読み取りエラーが許容領域Ｒ１で生じたと判別した場合、直ちにロボットアーム２０１の動作を停止させずに、ロボットアーム２０１の動作を継続している。読み取りエラーがスケール６１０の許容領域Ｒ１で生じたと判別した場合にロボットアーム２０１の動作を継続しても、ロボットアーム２０１の動作の精度にはほとんど影響しないので、ロボットアーム２０１の動作の安定性は維持される。そして、ロボットアーム２０１の動作を継続するので、ロボットアーム２０１を停止させる頻度を減少させることができ、その結果、ロボット装置１００の駆動率が上がり、部品Ｗ０の生産効率が向上する。
【００９８】
また、読み取りエラーが許容領域Ｒ１にて生じた場合、ロボットアーム２０１の各関節の動作を継続し、ワーニング処理として、モニタ５００に読み取りエラーが生じた旨を表示するようにしたので、メンテナンス時に、ごみ等の対策をすることができる。
【００９９】
なお、第１実施形態では、エンコーダ２３６を判定対象にした場合について説明したが、エンコーダ２３５を対象にした場合、或いは両方のエンコーダ２３５、２３６を対象にした場合であってもよい。
【０１００】
また、第１実施形態では、ロボットアーム２０１がエンコーダ２３５，２３６を有する場合について説明したが、エンコーダ２３５，２３６のうちいずれか一方のエンコーダのみを有する場合であってもよい。特に、ごみの入りやすい構造のエンコーダ２３６のみを有する場合であってもよい。この場合、ロボットアーム２０１が有するエンコーダを判定対象とすればよい。
【０１０１】
［第２実施形態］
次に、第２実施形態のロボット装置によるロボット制御方法（部品の製造方法）について説明する。図１０は、第２実施形態に係るロボット装置の要部構成を示した機能ブロック図である。図１１は、第２実施形態に係るロボット制御方法（部品の製造方法）を示すフローチャートである。なお、第２実施形態のロボット装置の構成は、第１実施形態で説明したロボット装置１００と同様であり、制御装置３００（ＣＰＵ３０１）の機能、即ちプログラム３２０，３７０が異なる。第２実施形態において、第１実施形態と同様の構成及び機能については説明を省略する。
【０１０２】
第１実施形態では読み取りエラーが非許容領域Ｒ２で生じたと判別した場合にはロボットアーム２０１の動作を停止させていたが、第２実施形態では出力制御モードから入力制御モードに切り替えてロボットアーム２０１の動作を制御する場合について説明する。精密教示において、高い精度を必要としない場合は、入力エンコーダであるエンコーダ２３５を使用することができる。
【０１０３】
第２実施形態では、メイン制御部３３０は、ごみ位置判定部３８１、切替判定部３９１、ごみ位置記憶部３８３及び教示位置記憶部３８４からなる。メイン制御部３３０のＣＰＵ３０１は、プログラム３２０によりごみ位置判定部３８１及び切替判定部３９１として機能する。ごみ位置記憶部３８３及び教示位置記憶部３８４は、例えばＨＤＤ３０４である。また、各関節制御部３４０は、モータ制御部３８５及び切替部３９２からなる。各関節制御部３４０のＣＰＵ３５１は、プログラム３７０によりモータ制御部３８５及び切替部３９２として機能する。
【０１０４】
エンコーダ２３５，２３６は、アブソリュートエンコーダである。エンコーダ制御部３６２は、エンコーダ２３５の検出ヘッド６２０を制御してエンコーダ２３５の検出ヘッド６２０から信号を取得する。エンコーダ制御部３６３は、エンコーダ２３６の検出ヘッド６２０を制御してエンコーダ２３６の検出ヘッド６２０から信号を取得する。
【０１０５】
図１１において、ステップＳ１〜Ｓ５の処理は、第１実施形態で説明した通りである。ただし、ステップＳ５の判別処理は、切替判定部３９１が行う。
【０１０６】
切替判定部３９１は、ステップＳ５において読み取りエラーが非許容領域Ｒ２で生じたと判別した場合（Ｓ５：Ｎｏ）には、ロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を出力制御モードから入力制御モードに切り替えて制御する。具体的には、切替判定部３９１は、関節制御部３４０の切替部３９２に、入力制御モードで制御するよう指令を送る。これにより、モータ制御部３８５は、入力制御モードでフィードバック制御する。なお、入力制御モードで制御していた場合は入力制御モードのままとする。
【０１０７】
この場合、複数の関節Ｊ１〜Ｊ６の全てを入力制御モードに切り替えて制御してもよいが、第２実施形態では、読み取りエラーが非許容領域Ｒ２で生じたエンコーダ２３６を有する関節のみ、出力制御モードから入力制御モードに切り替えて制御する。他の関節では、出力制御モードのまま制御する。
【０１０８】
また、関節の制御を出力制御モードから入力制御モードに切り替えた場合、メンテナンス等を行うまで、出力制御モードへの切り替えを禁止する。そして、入力制御モードに切り替えた後は、エンコーダ２３６の値は制御に使用しないため、再び読み取りエラーを判定する必要はない。
【０１０９】
なお、エンコーダ２３５を用いることができるのは、エンコーダ２３６の使用時に要求される精度が、エンコーダ２３５を用いた時の精度と同等またはそれ以下の場合である。
【０１１０】
以上、第２実施形態によれば、非許容領域Ｒ２において読み取りエラーが生じた場合でも、ロボットアーム２０１の動作を直ちに停止させずに、入力制御モードにてロボットアーム２０１の関節の動作を継続する。したがって、第１実施形態よりも更に装置の稼働率が上がり、更に部品Ｗ０の生産効率を向上させることができる。
【０１１１】
［第３実施形態］
次に、第３実施形態のロボット装置によるロボット制御方法（部品の製造方法）について説明する。図１２は、第３実施形態に係るロボット装置の出力エンコーダのスケールを示す平面図である。図１３は、第３実施形態に係るロボット装置の要部構成を示した機能ブロック図である。第１、第２実施形態では、出力エンコーダであるエンコーダ２３６がアブソリュートエンコーダである場合について説明したが、第３実施形態では、出力エンコーダであるエンコーダ２３６Ａがインクリメンタルエンコーダである場合について説明する。
【０１１２】
エンコーダ２３６Ａは、スケール６１０Ａと、第１実施形態の図４に示すような検出ヘッド６２０と、を有する。スケール６１０Ａは、パターンが形成された被読取領域Ｒ１０を有する。被読取領域Ｒ１０は、許容領域Ｒ１１と非許容領域Ｒ１２とに区分けされる。このスケール６１０Ａにおいても、ごみＤが付着する可能性がある。
【０１１３】
第３実施形態の図１３において、出力エンコーダであるエンコーダ２３６Ａ、そのエンコーダ制御部３６３Ａ、ごみ位置判定部３８１Ａが、第１実施形態で説明した図６のブロック図と異なる。これら以外は、第１実施形態と同様である。
【０１１４】
即ち、エンコーダ２３６Ａがインクリメンタルエンコーダであるので、エンコーダ制御部３６３Ａは、エンコーダ２３６Ａからのパルス信号をデジタル信号（シリアル信号）に変換してごみ位置判定部３８１Ａに出力する。
【０１１５】
ごみ位置判定部３８１Ａは、エンコーダ制御部３６３Ａから取得した信号に対して閾値判定し、読み取りエラーの有無を判断する。そして、ごみ位置判定部３８１Ａは、読み取りエラーが有る場合、エンコーダ制御部３６２から取得したエンコーダ値を用いて、エンコーダ２３６Ａのスケール６１０Ａのどの位置に読み取りエラーが生じたのかを特定する。
【０１１６】
なお、第３実施形態のロボット制御方法（部品の製造方法）のフローについては、第１実施形態で説明した図９と同様であるが、ステップＳ３の計算方法が異なる。即ち、ごみ位置判定部３８１Ａは、ステップＳ３において、読み取りエラーが生じた位置を、エンコーダ２３５による検出結果から求める。
【０１１７】
具体的に説明すると、アブソリュートエンコーダであるエンコーダ２３６の場合は、読み取りエラーが生じた位置の前後の位置から読み取りエラーが生じた位置を特定することができる。しかし、インクリメンタルエンコーダであるエンコーダ２３６Ａの場合は、絶対位置が分からないため、エンコーダ２３６Ａの読み取り結果だけでは、読み取りエラーが生じた位置を特定するのは困難である。そこで、第３実施形態では、ごみ位置判定部３８１Ａは、読み取りエラーが生じた場合、読み取りエラーが生じたときのエンコーダ２３５のエンコーダ値を減速機２３３の減速比Ｎ（例えば５０）で割り算して、関節角度、即ちエンコーダ２３６Ａの値に換算する。このようにエンコーダ２３５のエンコーダ値を換算した値を、読み取りエラーが生じた位置とする。そして、読み取りエラーが非許容領域Ｒ１２にて生じた場合には、第１実施形態と同様、ロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を停止する。
【０１１８】
このように、出力エンコーダ２３６Ａがインクリメンタルエンコーダであっても、入力エンコーダ２３５のエンコーダ値に基づき、読み取りエラーが生じた位置を特定することができる。
【０１１９】
なお、第３実施形態では、入力エンコーダ２３５がアブソリュートエンコーダである場合について説明したが、インクリメンタルエンコーダであってもよい。
【０１２０】
また、第３実施形態では、第１実施形態と同様、読み取りエラーが非許容領域Ｒ１２にて生じた場合には、第１実施形態と同様、ロボットアーム２０１の関節Ｊ１〜Ｊ６の動作を停止するが、第２実施形態のように、入力制御モードに切り替えてもよい。
【０１２１】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【０１２２】
上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１２３】
また、上述の実施形態では、ロボットアーム２０１が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアーム２０１が、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【０１２４】
また、上述の実施形態では、関節が回転関節又は揺動関節であるため、エンコーダは、ロータリーエンコーダであったが、これに限定するものではなく、関節が直動関節の場合、エンコーダがリニアエンコーダであってもよい。
【０１２５】
また、上述の実施形態では、エンコーダが反射式の場合について説明したが、これに限定するものではなく、エンコーダが透過式の場合であってもよい。即ち、検出ヘッドの受光部が、スケールからの透過光を検出するものであってもよい。
【０１２６】
また、上述の実施形態では、メイン制御部３３０のＣＰＵ３０１が読み取りエラーの有無を判断する場合について説明したが、これに限定するものではなく、各関節制御部３４０のＣＰＵ３５１が読み取りエラーを判断してもよい。この場合、各ＣＰＵ３５１が判断結果をＣＰＵ３０１に送信すればよい。即ち、ごみ位置判定部やエラー判定部、切替判定部の一部又は全部の機能を、各関節制御部３４０のＣＰＵ３５１が有していてもよく、この場合、メイン制御部３３０のＣＰＵ３０１と、各関節制御部３４０のＣＰＵ３５１とで制御部が構成されることとなる。
【符号の説明】
【０１２７】
１００…ロボット装置、２０１…ロボットアーム、２３５…エンコーダ（入力エンコーダ）、２３６…エンコーダ（出力エンコーダ）、３０１…ＣＰＵ（制御部）、６１０…スケール、６２０…検出ヘッド、Ｒ０…被読取領域、Ｒ１…許容領域、Ｒ２…非許容領域
【図１】
0006708428.tif 000002
【図２】
0006708428.tif 000003
【図３】
0006708428.tif 000004
【図４】
0006708428.tif 000005
【図５】
0006708428.tif 000006
【図６】
0006708428.tif 000007
【図７】
0006708428.tif 000008
【図８】
0006708428.tif 000009
【図９】
0006708428.tif 000010
【図１０】
0006708428.tif 000011
【図１１】
0006708428.tif 000012
【図１２】
0006708428.tif 000013
【図１３】
0006708428.tif 000014