(57)【特許請求の範囲】
【請求項１】
駆動モータの回転力を増大する減速機の出力により駆動される関節部を備えるロボットを制御するロボット制御装置であって、
減速機の入力軸の回転角を検出する第１の回転角検出器と、
減速機の出力軸の回転角を検出する第２の回転角検出器と、
ロボット制御装置が停止した状態において第１の回転角検出器に電気を供給する補助電源と、
回転角を記憶および更新する制御部とを備え、
前記制御部は、第１の回転角検出器により検出される第１の回転角を記憶する第１の回転角記憶部と、
第２の回転角検出器により検出される第２の回転角を記憶する第２の回転角記憶部と、
第１の回転角記憶部または第２の回転角記憶部に記憶されている回転角を更新する回転角更新部とを含み、
ロボット制御装置が停止した状態において、第２の回転角検出器への電気の供給は停止しており、
第２の回転角記憶部は、ロボット制御装置が停止した状態において、ロボット制御装置が停止する時の第２の回転角を記憶するように形成されており、
ロボット制御装置が停止した状態から起動した時に、回転角更新部は、ロボット制御装置を停止する時に第１の回転角記憶部に記憶された第１の回転角とロボット制御装置を起動したときに第１の回転角検出器にて検出される第１の回転角との差、およびロボット制御装置を停止する時に第２の回転角記憶部に記憶された第２の回転角とロボット制御装置を起動したときに第２の回転角検出器にて検出される第２の回転角との差に基づいて、第２の回転角に関する回転数の誤差を算出し、回転数の誤差に基づいて第２の回転角を更新することを特徴とする、ロボット制御装置。
【請求項２】
駆動モータの回転力を増大する減速機の出力により駆動される関節部を備えるロボットを制御するロボット制御装置であって、
減速機の入力軸の回転角を検出する第１の回転角検出器と、
減速機の出力軸の回転角を検出する第２の回転角検出器と、
ロボット制御装置が停止した状態において第１の回転角検出器に電気を供給する補助電源と、
回転角を記憶および更新する制御部とを備え、
前記制御部は、第１の回転角検出器により検出される第１の回転角を記憶する第１の回転角記憶部と、
第２の回転角検出器により検出される第２の回転角を記憶する第２の回転角記憶部と、
第１の回転角記憶部または第２の回転角記憶部に記憶されている回転角を更新する回転角更新部とを含み、
ロボット制御装置が停止した状態において、第２の回転角検出器への電気の供給は停止しており、
第２の回転角記憶部は、ロボット制御装置が停止した状態において、ロボット制御装置が停止する時の第２の回転角を記憶するように形成されており、
ロボット制御装置が停止した状態から起動した時に、回転角更新部は、ロボット制御装置を停止する時に第２の回転角記憶部に記憶された第２の回転角または起動後に第２の回転角検出器にて検出される第２の回転角と、起動後に第１の回転角検出器により検出される第１の回転角との差に基づいて、第１の回転角が第２の回転角に最も近接する第１の回転角に関する回転数を算出し、算出した回転数に基づいて第１の回転角を更新する、ロボット制御装置。
【請求項３】
前記制御部は、第２の回転角記憶部に記憶されている第２の回転角の更新が必要か否かを判別する更新判定部を含み、
更新判定部は、ロボットが駆動している期間中に第１の回転角と第２の回転角との差を検出し、第１の回転角と第２の回転角との差が予め定められた判定値を超えた場合に第２の回転角の更新を禁止する、請求項１に記載のロボット制御装置。
【請求項４】
前記制御部は、第１の回転角検出器の異常を検出する異常検出部と、
第２の回転角記憶部に記憶されている第２の回転角の更新が必要か否かを判別する更新判定部とを含み、
更新判定部は、第１の回転角検出器の異常を検出した場合に第２の回転角の更新を禁止し、第１の回転角検出器が異常から復旧した場合に第１の回転角の更新を実施すると判別する、請求項１または２に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するロボット制御装置に関する。
【背景技術】
【０００２】
ロボットの位置および姿勢は、所望の状態になるように正確に制御されることが好ましい。従来からロボットの位置および姿勢の精度を向上させるために、関節部等を駆動するアーム駆動装置には、駆動モータの回転軸の回転角を検出するエンコーダを配置することが知られている。エンコーダの出力に基づいて、アーム駆動装置の駆動モータを制御することが知られている。
【０００３】
回転軸の回転角を検出するエンコーダとしては、インクリメンタルエンコーダとアブソリュートエンコーダが知られている。アブソリュートエンコーダは、所定の基準位置に対する絶対的な回転角を検出することができる。ところが、アブソリュートエンコーダは、所定の回転角の範囲を超えた回転角を検出することができないという特性を有する。例えば、１°の位置から回転軸が一回転した場合に検出される回転角は３６１°ではなくて１°になる。このために、所定の回転角の範囲を超えた回転角を検出する場合には、回転軸の回転数を他の装置に記憶しておく必要がある。
【０００４】
特許文献１には、モータの出力軸に回転速比が僅かに異なる２個の回転角検出器を接続した絶対位置検出装置が開示されている。この絶対位置検出装置では、２個の回転角検出機の検出角の差により、回転角検出器の検出可能範囲を超える回転角を検出することが記載されている。
【０００５】
特許文献２には、スピンエンコーダを有する無限回転制御手段を備えるロボットにおける無限回転制御方法が記載されている。この公報には、駆動手段の出力軸の回転数Ｎと回転軸の回転数Ｍの回転比がＮ／Ｍに設定され、出力軸がＮ回転すれば、無限回転制御手段の計数値をＭ増加させることが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭５９−２２６８０６号公報
【特許文献２】特許第３４２９４１４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
アーム駆動装置には駆動モータの回転力を増幅するために減速機が取り付けられる。減速機における歯車同士のバックラッシュや減速機の入力軸または出力軸のねじれ等は、ロボットの位置および姿勢の精度を悪化させる要因になっている。このために、ロボット軸の高精度な回転角の検出方法として、駆動モータの回転軸に配置される第１のエンコーダに加えて、減速機の出力軸に第２のエンコーダを取り付けることができる。第２のエンコーダにて、減速機の出力軸の回転角を検出することができる。第２のエンコーダの出力に基づいて減速機のバックラッシュ等の影響量を検出し、駆動モータの制御を修正することができる。
【０００８】
ところで、ロボット制御装置が駆動している状態では、エンコーダにより回転角を検出し、回転角をロボット制御装置に記憶することができる。ロボット制御装置が停止している状態では、すなわち、電源が遮断されている状態では、回転軸の回転角を検出することができなくなり、更に、検出した回転角を記憶することができなくなる。また、ロボット制御装置を停止した後に惰走により回転軸が回転する場合や、ロボットの保守のためにロボット制御装置を停止した状態で減速機の出力軸の位置を変更する場合がある。このような場合には、ロボット制御装置を起動した後には正確な回転軸の回転角を検出できない場合がある。特に、ロボット制御装置を停止することにより、記憶していた回転数が消失すると、ロボット制御装置を起動した後には回転数が零回転と判定される場合がある。
【０００９】
ロボット制御装置を停止していても、エンコーダが所定の回転角の範囲を超えた回転角を検出するために、ロボット制御装置の停止期間中にエンコーダに電気を供給するバックアップ電源を用いることができる。バックアップ電源にてエンコーダおよび記憶装置に電気を供給することにより、ロボット制御装置の停止期間中にも、回転角の検出および回転角の記憶を継続することができる。
【００１０】
しかしながら、減速機の出力軸に第２のエンコーダを取りつけた場合には、第１のエンコーダのバックアップ電源に加えて、第２のエンコーダのバックアップ電源が必要になる。または、バックアップ電源は蓄電池を含み、蓄電池の蓄電量が零になった場合は回転角の情報が消失する虞がある。
【００１１】
上記の特許文献１の装置では、バックアップ電源を用いずに、所定の範囲を超えた回転角を検出することができる。しかしながら、この装置では、回転速比がロボットの機構に依存するために、回転速比が僅かに異なる構成に変更することができない。たとえば、入力軸が１００回転するのに対して出力軸が１回転程度である減速機はロボットに良く用いられるが、検出可能な回転角を広くすることができないという問題がある。すなわち、回転速比を自由に設定できない場合には検出可能な回転角が著しく制限されてしまうという問題がある。
【００１２】
上記の特許文献２に記載のスピンエンコーダ値は、モータエンコーダ値の加算により算出される仮想的なエンコーダである。最終的に出力されるスピンエンコーダ値には、減速機の出力軸の回転角の検出結果を含まない。このために、減速機のバックラッシュやねじれ等の影響量を検出することはできない。
【課題を解決するための手段】
【００１３】
本発明の第１のロボット制御装置は、駆動モータの回転力を増大する減速機の出力により駆動される関節部を備えるロボットを制御するロボット制御装置であって、減速機の入力軸の回転角を検出する第１の回転角検出器と、減速機の出力軸の回転角を検出する第２の回転角検出器と、ロボット制御装置が停止した状態において第１の回転角検出器に電気を供給する補助電源と、回転角を記憶および更新する制御部とを備える。制御部は、第１の回転角検出器により検出される第１の回転角を記憶する第１の回転角記憶部と、第２の回転角検出器により検出される第２の回転角を記憶する第２の回転角記憶部と、第１の回転角記憶部または第２の回転角記憶部に記憶されている回転角を更新する回転角更新部とを含む。ロボット制御装置が停止した状態において、第２の回転角検出器への電気の供給は停止している。第２の回転角記憶部は、ロボット制御装置が停止した状態において、ロボット制御装置が停止する時の第２の回転角を記憶するように形成されている。ロボット制御装置が停止した状態から起動した時に、回転角更新部は、ロボット制御装置を停止する時に第１の回転角記憶部に記憶された第１の回転角とロボット制御装置を起動したときに第１の回転角検出器にて検出される第１の回転角との差、およびロボット制御装置を停止する時に第２の回転角記憶部に記憶された第２の回転角とロボット制御装置を起動したときに第２の回転角検出器にて検出される第２の回転角との差に基づいて、第２の回転角に関する回転数の誤差を算出し、回転数の誤差に基づいて第２の回転角を更新する。
【００１５】
本発明の第２のロボット制御装置は、駆動モータの回転力を増大する減速機の出力により駆動される関節部を備えるロボットを制御するロボット制御装置であって、減速機の入力軸の回転角を検出する第１の回転角検出器と、減速機の出力軸の回転角を検出する第２の回転角検出器と、ロボット制御装置が停止した状態において第１の回転角検出器に電気を供給する補助電源と、回転角を記憶および更新する制御部とを備える。制御部は、第１の回転角検出器により検出される第１の回転角を記憶する第１の回転角記憶部と、第２の回転角検出器により検出される第２の回転角を記憶する第２の回転角記憶部と、第１の回転角記憶部または第２の回転角記憶部に記憶されている回転角を更新する回転角更新部とを含む。ロボット制御装置が停止した状態において、第２の回転角検出器への電気の供給は停止している。第２の回転角記憶部は、ロボット制御装置が停止した状態において、ロボット制御装置が停止する時の第２の回転角を記憶するように形成されている。ロボット制御装置が停止した状態から起動した時に、回転角更新部は、ロボット制御装置を停止する時に第２の回転角記憶部に記憶された第２の回転角または起動後に第２の回転角検出器にて検出される第２の回転角と、起動後に第１の回転角検出器により検出される第１の回転角との差に基づいて、第１の回転角が第２の回転角に最も近接する第１の回転角に関する回転数を算出し、算出した回転数に基づいて第１の回転角を更新する。
【００１６】
上記発明においては、制御部は、第２の回転角記憶部に記憶されている第２の回転角の更新が必要か否かを判別する更新判定部を含み、更新判定部は、ロボットが駆動している期間中に第１の回転角と第２の回転角との差を検出し、第１の回転角と第２の回転角との差が予め定められた判定値を超えた場合に第２の回転角の更新を禁止することができる。
【００１７】
上記発明においては、制御部は、第１の回転角検出器の異常を検出する異常検出部と、第２の回転角記憶部に記憶されている第２の回転角の更新が必要か否かを判別する更新判定部とを含み、更新判定部は、第１の回転角検出器の異常を検出した場合に第２の回転角の更新を禁止し、第１の回転角検出器が異常から復旧した場合に第１の回転角の更新を実施すると判別することができる。
【発明の効果】
【００１８】
本発明のロボット制御装置は、減速機の入力軸の回転角を検出する回転角検出器および減速機の出力軸の回転角を検出する回転角検出器を備えるロボット制御装置において、ロボット制御装置の起動後に少なくとも一方の回転角を更新することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態におけるロボットシステムの概略図である。
【図２】実施の形態におけるロボット制御装置およびアーム駆動装置の概略図である。
【図３】実施の形態における第２のエンコーダを説明する概略図である。
【図４】エンコーダが検出する回転角を説明する図である。
【図５】第２の回転角を更新するための第１の制御を説明するグラフである。
【図６】第２の回転角を更新するための第１の制御のフローチャートである。
【図７】第１の回転角を更新するための第２の制御を説明するグラフである。
【図８】第１の回転角を更新するための第２の制御のフローチャートである。
【発明を実施するための形態】
【００２０】
図１から図８を参照して、実施の形態におけるロボット制御装置について説明する。本実施の形態のロボット制御装置は、ロボットに指令を送出する制御部と、ロボットに取り付けられたセンサ等の検出器とを備える。
【００２１】
図１は、本実施の形態におけるロボットシステムの概略図である。ロボットシステムは、ワークＷを把持するハンド１７と、ハンド１７を移動するロボット１と、ロボット１に動作指令を送出する制御部本体２ａとを備える。本実施の形態のロボット１は、多関節ロボットである。ハンド１７は、ワークＷを把持したり解放したりする。アーム１２は、ハンド１７を支持しながらハンド１７を移動させる。アーム１２はベース部１１に支持されている。ベース部１１は、設置面２０に固定されている。
【００２２】
本実施の形態のアーム１２は、複数の関節部１３を含む。ロボット１は、それぞれの関節部１３を駆動するアーム駆動装置を含む。アーム駆動装置は、関節部１３の内部に配置されている駆動モータ１４を含む。駆動モータ１４が駆動することにより、アーム１２を関節部１３にて所望の角度に曲げることができる。また、本実施の形態のロボットは、アーム１２全体が鉛直方向を回転軸として回転可能に形成されている。アーム駆動装置は、アーム１２全体を回転させる駆動モータを備えている。
【００２３】
ロボット１は、ハンド１７を閉じたり開いたりするハンド駆動装置を備える。本実施の形態のハンド駆動装置は、空気圧によりハンド１７を駆動する。ハンド駆動装置は、ハンド１７に接続されたハンド駆動シリンダ１８と、ハンド駆動シリンダ１８に圧縮空気を供給するための空気ポンプおよび電磁弁を含む。
【００２４】
図２に、本実施の形態のロボット制御装置とアーム駆動装置の概略図を示す。制御部２は、制御部本体２ａを含む。制御部本体２ａは、バスを介して互いに接続されたＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、およびＲＯＭ（Read Only Memory）等を有するデジタルコンピュータを含む。アーム駆動装置およびハンド駆動装置は、制御部２により制御されている。駆動モータ１４の回転角およびハンド駆動シリンダ１８の空気圧は制御部２により制御されている。
【００２５】
制御部２には、例えばロボット１の動作を行うための動作プログラムが入力される。制御部２の主制御部５７は、動作プログラム等に基づいてロボット１を駆動するための動作指令を送出する。動作指令は、アーム駆動装置およびハンド駆動装置等に送出される。
【００２６】
図２には、１つの関節部１３を駆動するためのアーム駆動装置が記載されている。アーム駆動装置は、駆動モータ１４の回転力を増大する減速機４１を含む。本実施の形態では、関節部１３の内部に駆動モータ１４および減速機４１が配置されている。減速機４１は、入力軸４３と、複数の歯車４２ａ，４２ｂと、出力軸４４とを含む。入力軸４３は、駆動モータ１４の回転シャフト２１に連結されている。減速機４１の出力軸４４は、関節部１３を駆動する為の動力伝達部材としてのリンク部材４８に連結されている。
【００２７】
駆動モータ１４の回転シャフト２１が矢印９１に示すように回転すると、回転力は、減速機４１の入力軸４３および歯車４２ａ，４２ｂを介して出力軸４４に伝達される。そして、減速機４１の出力軸４４は、矢印９２に示すようにリンク部材４８を回転させる。
【００２８】
ロボット制御装置３は、複数の回転角検出器を備える。ロボット制御装置３は、減速機４１の入力軸４３の回転角を検出する第１の回転角検出器として第１のエンコーダ３１を含む。本実施の形態では、第１のエンコーダ３１により検出される回転角を第１の回転角と称する。第１のエンコーダ３１は、駆動モータ１４の回転シャフト２１に接続されている。また、ロボット制御装置３は、減速機４１の出力軸４４の回転角を検出する第２の回転角検出器としての第２のエンコーダ３２を含む。本実施の形態では、第２のエンコーダ３２により検出される回転角を第２の回転角と称する。
【００２９】
本実施の形態の第１のエンコーダ３１および第２のエンコーダ３２は、アブソリュートエンコーダである。アブソリュートエンコーダは、相対的な回転角を検出するのではなく、所定の基準位置に対する絶対的な回転角を検出する。アブソリュートエンコーダは、予め定められた範囲内の回転角を検出することができる。なお、第１の回転角検出器および第２の回転角検出器は、それぞれの回転軸の回転角を検出可能な任意の装置を採用することができる。
【００３０】
図３に、本実施の形態における第２のエンコーダおよびリンク部材の概略正面図を示す。リンク部材４８は円板状に形成されている。第２のエンコーダ３２は、リンク部材４８の周方向に延びる端面に配置されているスケール３２ｂと、スケール３２ｂの目盛りを読取る検出素子３２ａとを含む。スケール３２ｂの表面には、３６０°を第２のエンコーダ３２の分解能にて除算した角度ごとに目盛りが刻まれている。検出素子３２ａは、スケール３２ｂに対向するようにスケール３２ｂに近接して配置されている。第１のエンコーダ３１についても、第２のエンコーダ３２と同様の構造を有する。
【００３１】
図４に、本実施の形態のエンコーダにより検出される回転角を説明する概略図を示す。図４には、減速機４１の入力軸４３や出力軸４４に対応する回転軸６０が示されている。回転軸６０には基準位置となる基準点６５が設定されている。基準点６５は、例えば、回転角が０°に対応する。矢印９４に示すように回転軸６０が回転すると、基準点６５に対して移動点６４が移動する。そして基準点６５および回転中心を結ぶ線と、移動点６４および回転中心を結ぶ線とのなす角度が回転角Ｒになる。本発明では、回転軸６０の１回転の範囲内、すなわち０°以上３６０°未満の回転角を「１回転内の回転角」と称する。本実施の形態におけるエンコーダは、１回転内の回転角Ｒは、０°以上３６０°未満の範囲内で任意の角度を検出することができる。すなわち、第１のエンコーダ３１および第２のエンコーダ３２は、１回転内の測定範囲が０°以上３６０°未満である。
【００３２】
回転角が、３６０°以上になったり０°未満になったりする場合には、回転軸６０の回転数を記憶装置に記憶する。この制御により、回転角の上限や下限なしに回転角を検出することができる。たとえば、回転数が２回転（７２０°）であり１回転内の回転角が９０°の場合には、回転角は８１０°になる。
【００３３】
図２を参照して、本実施の形態の制御部２は、第１のエンコーダ３１が検出する第１の回転角に関する情報を記憶する第１の回転角記憶部５１を含む。第１の回転角記憶部５１は、入力軸４３の１回転内の回転角および回転数を記憶する。本実施の形態における第１の回転角記憶部５１は、第１のエンコーダ３１の本体に取り付けられている内蔵メモリである。また、制御部２は、第２のエンコーダ３２が検出する第２の回転角に関する情報を記憶する第２の回転角記憶部５２を含む。本実施の形態の第２の回転角記憶部５２は、出力軸４４の１回転内の回転角および回転数を記憶する。第２の回転角記憶部５２は、制御部本体２ａに配置されている。
【００３４】
図４を参照して、回転角が３６０°以上になる場合や０°未満になる場合には、エンコーダが０°の基準点６５を超えたことを検出する。そして、回転角が３６０°以上になった場合には回転数を１増加する。または回転角が０°未満になった場合には回転数を１減少する。そして、記憶部に記憶された回転数とエンコーダにより検出される１回転内の回転角に基づいて、任意の時刻における回転角を検出することができる。回転角の計算は、それぞれのエンコーダまたは制御部本体２ａにおいて実施することができる。
【００３５】
図２を参照して、主制御部５７は、第１の回転角と第２の回転角との差に基づいて、減速機４１のバックラッシュや減速機４１の入力軸４３または出力軸４４の捩じれ等により生じる回転角の誤差を算出することができる。そして、主制御部５７は、算出された誤差を打ち消す様に駆動モータ１４を制御することができる。第２のエンコーダ３２の出力を用いて駆動モータ１４の動作指令を修正する制御を行うことができる。この結果、ロボットの位置や姿勢の誤差を減少させることができる。例えば、ロボット１の先端点の位置を正確に制御することができる。
【００３６】
ロボット制御装置３は、停止すると外部からの連続的な電気の供給が停止される。本実施の形態のロボット制御装置３は、ロボット制御装置３が停止した状態、すなわちロボット制御装置の主電源が遮断された状態においても、第１のエンコーダ３１および第１の回転角記憶部５１に電気を供給するバックアップ電源５８を備える。バックアップ電源５８は、補助電源として機能する。ロボット制御装置３が停止した場合には、制御部本体２ａおよびエンコーダ等の検出器に供給される電気が遮断される。一方で、ロボット制御装置３が停止している期間中にも、第１のエンコーダ３１および第１の回転角記憶部５１にはバックアップ電源５８により電気が供給されるために、減速機４１の入力軸４３の第１の回転角の検出を継続することができる。
【００３７】
特に、本実施の形態の第１の回転角記憶部５１として機能する内蔵メモリは、電気の供給が停止すると、記憶していた情報を消失する揮発性メモリである。しかしながら第１の回転角記憶部５１に、バックアップ電源５８が接続されていることにより、ロボット制御装置３を停止している状態においても第１の回転角を記憶しておくことができる。
【００３８】
一方で、第２の回転角記憶部５２は、電気の供給が停止しても回転角を記憶している不揮発性メモリである。第２の回転角記憶部５２にバックアップ電源が接続されていないが、ロボット制御装置３を停止している状態でも第２の回転角を記憶しておくことができる。しかしながら、ロボット制御装置３が停止した場合には、第２のエンコーダ３２による第２の回転角の検出は停止する。
【００３９】
ところで、ロボット制御装置３の停止期間中に出力軸４４が回転する場合がある。たとえば、ロボット制御装置３の電源を遮断した時の惰走により出力軸４４が回転する場合がある。または、ロボット１の保守や点検のために出力軸４４を動かす場合がある。図４には、ロボット制御装置３を停止した時の移動点６１と起動した時の移動点６２とが記載されている。ロボット制御装置３の停止期間中に、回転軸６０が回転して、矢印９３に示す様に移動点が基準点６５を通過する場合がある。この場合には、回転数が１つ増大するが、第２のエンコーダ３２が停止しているために回転数は変更されない。ロボット制御装置３を起動したときには、停止時の回転数に基づいて第２の回転角が検出されてしまう。このために、ロボット制御装置３を起動したときに第２の回転角を誤って検出する場合がある。
【００４０】
本実施の形態のロボット制御装置３の第１の制御では、ロボット制御装置３の起動時に第２のエンコーダ３２により検出される第２の回転角を正確な値に更新する制御を実施する。
【００４１】
図２を参照して、制御部２は、第１の回転角記憶部５１に記憶されている第１の回転角および第２の回転角記憶部５２に記憶されている第２の回転角を更新する回転角更新部５３を備える。回転角更新部５３は、第１の回転角記憶部５１に記憶されている第１の回転角を読取る機能と、第１の回転角記憶部５１に記憶されている第１の回転角を新たな値に更新する機能とを有する。同様に、回転角更新部５３は、第２の回転角記憶部５２に記憶されている第２の回転角を読み取る機能と、第２の回転角記憶部５２に記憶されている第２の回転角を新たな値に更新する機能とを有する。
【００４２】
また、後述するように、制御部２は、第１の回転角および第２の回転角のうち少なくとも一方の更新が必要か否かを判別する更新判定部５４と、第１のエンコーダ３１または第２のエンコーダ３２の異常を検出する異常検出部５５とを含む。
【００４３】
図５に、第２の回転角を更新する第１の制御を説明するグラフを示す。横軸は、第１のエンコーダ３１にて出力される第１の回転角と第２のエンコーダ３２にて検出される第２の回転角とを示している。すなわち、横軸は、減速機４１の入力軸４３の第１の回転角および出力軸４４の第２の回転角を示している。縦軸は、それぞれの回転軸の１回転内の回転角を示している。縦軸は０°以上３６０°未満の範囲である。横軸の回転角は、無限に大きくしたり小さくしたりすることができる。
【００４４】
この例では、ロボット制御装置３を停止する時に、第１のエンコーダ３１により第１の回転角Ｒ１Ｓが検出され、第２のエンコーダ３２により第２の回転角Ｒ２Ｓが検出されている。第１の回転角Ｒ１Ｓと第２の回転角Ｒ２Ｓとは、互いに近接している。第１の回転角Ｒ１Ｓと第２の回転角Ｒ２Ｓとの僅かな差ΔＲは減速機４１のバックラッシュ等に起因する誤差に相当する。そして、ロボット制御装置３が停止した後にアーム駆動装置の惰走等により、回転角が増大する方向に減速機４１が駆動している。
【００４５】
減速機４１が駆動すると、第１の回転角Ｒ１Ｓから第１の回転角Ｒ１Ａに移行する。この時に、第１の回転角は、７２０°（３６０°×ｎ）の基準点を跨いでいる。ここでの例では、回転数が１回転から２回転に増大する。第１のエンコーダ３１は、ロボット制御装置３の停止期間中にも電気が供給されているために、ロボット制御装置３を起動したときに正確な第１の回転角Ｒ１Ａを検出することができる。
【００４６】
第１の回転角Ｒ１Ｓと第２の回転角Ｒ２Ｓとの差ΔＲは、減速機４１が駆動してもほぼ一定に維持される。第２のエンコーダ３２により検出されるべき正確な値は、第２の回転角Ｒ２ＡＲである。ところが、ロボット制御装置３の停止期間中には、第２の回転角記憶部５２に記憶されている回転数が変化せずに１回転に維持されている。このため、ロボット制御装置３を起動した時の第２のエンコーダ３２により検出される値は第２の回転角Ｒ２Ａになる。なお、７２０°から第２の回転角Ｒ２ＡＲまでの角度差ＲＸは、３６０°から第２の回転角Ｒ２Ａまでの角度差ＲＸとほぼ等しくなる。
【００４７】
図６に、第２の回転角を更新する第１の制御のフローチャートを示す。図５および図６を参照して、第１の制御は、ロボット制御装置３を停止状態から起動した時に行うことができる。また、第１の制御は、図２における回転角更新部５３にて実施することができる。この制御は、ロボット制御装置３を停止する時の第２の回転角と、ロボット制御装置３を起動した時の第２の回転角とに変化が有る場合に好適である。
【００４８】
ロボット制御装置３を停止したときの第１の回転角Ｒ１Ｓは第１の回転角記憶部５１に記憶されている。また、ロボット制御装置３を停止したときの第２の回転角Ｒ２Ｓについても、第２の回転角記憶部５２に記憶されている。
【００４９】
ステップ１０１においては、第２の回転角に関する停止時と起動後との差ＤＡを算出する。ここでは、ロボット制御装置３を起動した時に第２の回転角記憶部５２に記憶されている回転数に基づいて検出される第２の回転角Ｒ２Ａからロボット制御装置３を停止する時の回転角Ｒ２Ｓを減算した差ＤＡを算出する。
【００５０】
ＤＡ＝Ｒ２Ａ−Ｒ２Ｓ  …（１）
【００５１】
次に、ステップ１０２においては、第１の回転角に関する停止時と起動後との差ＤＢを算出する。ここでは、ロボット制御装置３を起動した時に第１のエンコーダ３１により検出される第１の回転角Ｒ１Ａからロボット制御装置３を停止する時の第１の回転角Ｒ１Ｓを減算した差ＤＢを算出する。
【００５２】
ＤＢ＝Ｒ１Ａ−Ｒ１Ｓ  …（２）
【００５３】
次に、ステップ１０３においては、図５における回転角の差ＤＣを算出する。回転角の差ＤＣは、本来、第２のエンコーダ３２が検出すべき正確な第２の回転角Ｒ２ＡＲと、起動時に実際に第２のエンコーダ３２により検出された第２の回転角Ｒ２Ａとの差に相当する。ここでは、差ＤＣは、前述の第２の回転角に関する差ＤＡと、第１の回転角に関する差ＤＢとの差に基づいて算出することができる。
【００５４】
ＤＣ＝ＡＢＳ（ＤＢ−ＤＡ）  …（３）
【００５５】
なお、前述のように第１の回転角と第２の回転角との差ΔＲは、ロボット制御装置を停止した後もほぼ一定に維持される。このために、差ＤＢの大きさと差ＤＡの大きさとを加算することにより、差ＤＣを精度よく算出することができる。差ＤＣは、回転数の相違に対応する。このために、差ＤＣは、理想的には３６０°の倍数になる。ところが、測定誤差等により、正確に３６０°の倍数にならない場合がある。このために、本実施の形態の制御では、回転数の誤差を推定する。
【００５６】
ステップ１０４においては第２の回転角に関する差ＤＣを３６０で除算したときの商Ｑ１および余りＲ１を算出する。ステップ１０５においては、余りＲ１が判定値よりも大きいか否かを判別する。本実施の形態では、判定値として３６０°の半分の１８０°を採用している。余りＲ１が１８０°よりも大きい場合には、ステップ１０６に移行する。この場合には、余りＲ１は、３６０°未満であり、更に３６０°の近傍の値である。ステップ１０６においては、商Ｑ１に１を加算し、ステップ１０７に移行する。
【００５７】
ステップ１０５において、余りＲ１が１８０°以下の場合には、ステップ１０７に移行する。この場合には、余りＲ１が零よりも大きな値であり、零の近傍の値である。ステップ１０５およびステップ１０６において定められた商Ｑ１が第２の回転角の回転数の誤差に相当する。すなわち、第２の回転角が第１の回転角に最も近接する第２の回転角に関する回転数の誤差を算出している。なお、判定値としては、１８０°よりも大きな値や小さな値であっても構わない。判定値としては、測定誤差等を考慮した値であれば構わない。
【００５８】
ステップ１０７においては、起動時の第１の回転角Ｒ１Ａが停止時の第１の回転角Ｒ１Ｓに比べて正方向に移動しているか否かを判別する。すなわち、停止期間中の減速機の回転方向を判別する。図５に示す例では、正方向に移動していると判別することができる。
【００５９】
ステップ１０７において、第１の回転角が正方向に移動している場合には、ステップ１０９に移行する。ステップ１０９においては、起動時に第２のエンコーダ３２により検出される第２の回転角Ｒ２Ａに（３６０°×Ｑ１）を加算する。つまり算出した回転数の誤差に相当する回転角を加算する。または、第２の回転角記憶部５２に回転数が記憶されている場合には、記憶されている回転数に算出した商Ｑ１を加算しても構わない。そして、ステップ１１０に移行する。
【００６０】
ステップ１０７において、第１の回転角が正方向に移動していない場合には、第１の回転角が負方向に移動している。この場合には、ステップ１０８において、起動時に第２のエンコーダにより検出される第２の回転角から（３６０°×Ｑ１）を減算する。すなわち、算出した回転数の誤差に相当する回転角を減算する。または、第２の回転角記憶部５２に回転数が記憶されている場合には、記憶されている回転数に算出した商Ｑ１を減算しても構わない。そして、ステップ１１０に移行する。
【００６１】
ステップ１１０においては、ステップ１０８およびステップ１０９において算出された第２の回転角Ｒ２ＡＲを第２の回転角記憶部５２に記憶する。起動時に検出される第２の回転角Ｒ２Ａを第２の回転角Ｒ２ＡＲに置き換える。このように、第２の回転角を更新することができる。
【００６２】
本実施の形態の回転角更新部５３は、ロボット制御装置３が停止した状態から起動した時に、第１の回転角記憶部５１に記憶されている第１の回転角および第２の回転角記憶部５２に記憶されている第２の回転角のうち少なくとも一方と、第１のエンコーダ３１により検出される第１の回転角および第２のエンコーダ３２により検出される第２の回転角のうち少なくとも一方とに基づいて、第１の回転角または第２の回転角を更新する。この制御により、第２のエンコーダ３２に接続されるバックアップ電源がなくても、ロボット制御装置の起動後に、第１の回転角および第２の回転角のうち少なくとも一方の回転角を更新することができる。特に回転角の回転数を更新することができる。
【００６３】
第１の制御において、回転角更新部５３は、ロボット制御装置３が停止する時に検出される第１の回転角および第２の回転角と、ロボット制御装置３が停止した状態から起動した時に検出される第１の回転角および第２の回転角とに基づいて、第２の回転角を更新している。
【００６４】
また、回転角更新部５３は、ロボット制御装置３を停止するときの第１の回転角とロボット制御装置３を起動した時に第１のエンコーダ３１にて検出される第１の回転角との差を算出する。回転角更新部５３は、ロボット制御装置３を停止するときの第２の回転角とロボット制御装置３を起動したときに第２のエンコーダ３２にて検出される第２の回転角との差を算出する。そして、回転角更新部５３は、これらの差に基づいて、第２の回転角に関する回転数の誤差を算出し、算出した回転数に基づいて第２の回転角記憶部に記憶されている第２の回転角を更新している。
【００６５】
本実施の形態の第１の制御を実施することにより、ロボット制御装置３を起動した時に、第２の回転角が第１の回転角に最も近接するように第２の回転角の回転数を更新することができる。第２のエンコーダにより検出される第２の回転角を正確な値に更新することができる。このために、ロボットの位置および姿勢の制御を精度よく実施することができる。または、誤操作等により第１のエンコーダ３１により検出される第１の回転角に対する第２のエンコーダ３２により検出される第２の回転角の相対関係が消失した場合にも、第２の回転角を正確に設定し直すことができる。
【００６６】
また、図２を参照して、第２のエンコーダ３２および第２の回転角記憶部５２にバックアップ電源を接続することにより、ロボット制御装置３の停止期間中にも第２の回転角を正確に検出することができる。すなわち、ロボット制御装置３の起動時においても第２の回転角を正確に検出することができる。しかしながら、本実施の形態の第１の制御を実施することにより、第２のエンコーダ３２および第２の回転角記憶部５２に電気を供給するバックアップ電源がなくても、ロボット制御装置３の起動時に第２の回転角の更新を行うことができる。
【００６７】
本実施の形態の制御部２は、第２の回転角記憶部５２に記憶されている第２の回転角の更新が必要か否かを判別する更新判定部５４を含む。更新判定部５４は、ロボット制御装置３が停止した状態から起動をしたことを検出した場合に、回転角更新部５３に第２の回転角を更新する指令を送出することができる。
【００６８】
ところで、図５を参照して、第１の回転角と第２の回転角との差ΔＲは、ロボットが駆動している期間中にもほぼ一定に維持される。ところが、アーム駆動装置やエンコーダの故障等により、差ΔＲが大きくなる場合がある。本実施の形態の更新判定部５４は、ロボット１が駆動している期間中に、第１の回転角と第２の回転角との差ΔＲを検出する。そして、更新判定部５４は、差ΔＲが予め定められた判定値を超えた場合に、第２の回転角の更新を禁止する制御を実施する。この判定値としては、例えば１°程度の小さな値を採用することができる。
【００６９】
例えば、アーム駆動装置等に異常が発生した場合には、差ΔＲが大きくなる場合がある。このような状態で、第２の回転角の更新を行っても、正確な更新を行うことができない。このために、更新判定部５４は、第２の回転角の更新を禁止する制御を実施する。この制御により、不必要な第２の回転角の更新を排除することができる。
【００７０】
次に、本実施の形態における第２の制御について説明する。図２を参照して、バックアップ電源５８に蓄電池を含む場合には、ロボット制御装置３の停止期間中に蓄電池の電気容量が零になる場合がある。この場合には、第１の回転角記憶部５１に記憶されている第１の回転角に関する情報が消失する。または、第１のエンコーダ３１を修理する場合等に、第１の回転角記憶部５１に記憶されている第１の回転角に関する情報が消失する場合がある。
【００７１】
本実施の形態の第２の制御では、第２の回転角記憶部５２に記憶されている第２の回転角に基づいて第１の回転角記憶部５１に記憶されている第１の回転角を更新する。第２の制御は、ロボット制御装置３の停止期間中に惰走等により減速機４１が駆動することがない場合に好適である。
【００７２】
図７に、本実施の形態の第２の制御を説明するグラフを示す。図７の例では、ロボット制御装置３を停止する時に、第２の回転角記憶部５２には、第２のエンコーダ３２により検出された第２の回転角Ｒ２Ａが記憶されている。また、第１の回転角記憶部５１には、第１のエンコーダ３１により検出された第１の回転角Ｒ１ＡＲが記憶されている。
【００７３】
図２および図７を参照して、ロボット制御装置３の停止期間中には、第１の回転角および第２の回転角は一定に維持されている。そして、停止期間中にバックアップ電源５８の蓄電池の電気容量が零になった場合には、第１の回転角記憶部５１に記憶されていた第１の回転角の情報が消失する。このような状態で、蓄電池を充電した後に、再びロボット制御装置３を起動した場合には、第１の回転角の情報のうち回転数に関する情報は消失している。すなわち、第１の回転角の回転数は零回転になる。第１のエンコーダ３１は、１回転内の回転角を検出し、第１の回転角Ｒ１Ａを検出する。ここで、０°と第１の回転角Ｒ１Ａとの角度差ＲＹは、７２０°と第１の回転角Ｒ１ＡＲとの角度差ＲＹに等しくなる。
【００７４】
一方で、第２の回転角Ｒ２Ａに関する情報は、第２の回転角記憶部５２に記憶されているために、消失せずに正しい回転数および１回転内の回転角が記憶されている。このために、ロボット制御装置３を起動したときに、第２のエンコーダ３２は、停止したときと同一の第２の回転角Ｒ２Ａを出力する。この状態において、第１の回転角を更新する第２の制御を実施する。
【００７５】
図８に、本実施の形態における第１の回転角を更新する第２の制御のフローチャートを示す。図８に示す制御は、例えば、ロボット制御装置３が停止している状態から起動した時に実施することができる。
【００７６】
図７および図８を参照して、ステップ２０１において回転角の差ＤＧを算出する。回転角の差ＤＧは、第２の回転角記憶部５２に記憶されていた第２の回転角Ｒ２Ａと、起動後に第１のエンコーダ３１により検出された回転数が零の第１の回転角Ｒ１Ａとの差である。ここでは、第２の回転角Ｒ２Ａから第１の回転角Ｒ１Ａを減算した差ＤＧを算出する。なお、第２の回転角記憶部５２に記憶されていた第２の回転角の代わりに、ロボット制御装置３の起動後に第２のエンコーダ３２により検出された第２の回転角を用いても構わない。
【００７７】
ＤＧ＝Ｒ２Ａ−Ｒ１Ａ…（４）
【００７８】
第１の回転角と第２の回転角との差ΔＲは、非常に小さいために、回転角の差ＤＧは、３６０の整数倍に近い値になっていると考えられる。ここでは、第１の回転角に関する回転数の情報が消失しているために、第１の回転角に関する回転数を設定する。次の回転数の誤差を算出する制御は、第１の制御と同様である。
【００７９】
ステップ２０２においては、回転角の差ＤＧを３６０で除算したときの商Ｑ２と余りＲ２を算出する。
【００８０】
次に、ステップ２０３においては、余りＲ２が判定値としての１８０°よりも大きいか否かを判別する。余りＲ２が１８０°よりも大きい場合には、余りＲは、３６０°未満であり、更に３６０°に近い値である。この場合には、ステップ２０４に移行して商Ｑ２に１を加算する。そして、ステップ２０５に移行する。
【００８１】
ステップ２０３において、余りＲ２が１８０°以下の場合には、商Ｑ２を変更せずに、ステップ２０５に移行する。この場合には、余りＲ２は、ほぼ零である。なお、ステップ２０３における判定値は、第１の制御と同様に１８０°を用いているが、この形態に限られず、１８０°よりも大きくても小さくても構わない。判定値としては、測定誤差等を考慮した値であれば構わない。
【００８２】
次に、ステップ２０５においては、第１のエンコーダ３１により検出された第１の回転角Ｒ１Ａに（３６０°×Ｑ２）を加算して、第１の回転角を算出する。そして、ステップ２０６において、算出された第１の回転角Ｒ１ＡＲを第１の回転角記憶部５１に記憶する。
【００８３】
第２の制御では、ロボット制御装置が停止した状態から起動した時に、回転角更新部５３は、第２の回転角記憶部５２に記憶されている第２の回転角または起動後に第２のエンコーダ３２により検出される第２の回転角と、起動後に第１のエンコーダ３１により検出される第１の回転角とに基づいて、第１の回転角記憶部５１に記憶されている第１の回転角を更新する。特に、第２の制御においては、第２の回転角記憶部に記憶されている第２の回転角と、第１の回転角検出器により検出される第１の回転角との差に基づいて、第１の回転角が第２の回転角に最も近接する第１の回転角に関する回転数を算出し、算出した回転数に基づいて第１の回転角を更新している。
【００８４】
第２の制御を行うことにより、バックアップ電源５８の不調等により第１の回転角記憶部５１に記憶されている第１の回転角に関する情報が消失しても、第１のエンコーダ３１に検出される第１の回転角を正しく設定しなおすことができる。特に、第１の回転角の回転数を正しく更新することができる。また、第１の回転角記憶部５１のマスタリングデータが消失した場合にも、第２の回転角記憶部５２に記憶されている第２の回転角に関する情報に基づいてマスタリングデータを復元することができる。
【００８５】
本実施の形態の第２の制御は、バックアップ電源５８を復旧した後に行う制御に限られず、任意の状態において第１の回転角に関する情報が消失した場合に、第２の回転角記憶部５２に記憶されている第２の回転角の情報に基づいて、第１の回転角の情報を更新することができる。例えば、第１のエンコーダ３１に異常が生じて復旧した時に、第１の回転角の情報を第２の回転角記憶部に記憶されている第２の回転角の情報から復元することができる。
【００８６】
本実施の形態の制御部２は、第１のエンコーダ３１および第２のエンコーダ３２の異常を検出する異常検出部５５を含む。更新判定部５４は、異常検出部５５が第１のエンコーダ３１の異常を検出した場合に第２の回転角の更新を禁止することができる。また、更新判定部５４は、異常検出部５５が第１の回転角検出器の異常からの復旧を検出した場合に、第１の回転角の更新を実施すると判別することができる。
【００８７】
例えば、異常検出部５５は、第１のエンコーダ３１に電気を供給するケーブルが断線したことを検出し、第１の制御を禁止する。更に、更新判定部５４は、ケーブルが修理されて正常に通電されていることを検出し、第１の回転角の更新が必要であると判別することができる。更新判定部５４は、第１の回転角の更新の指令を回転角更新部５３に送出する。この制御により、不必要な第２の回転角の更新を排除することができる。また、復旧後に第１の回転角を正確な値に更新することができる。
【００８８】
本実施の形態においては、多関節ロボットを例示して説明したが、この形態に限られず、任意のロボット制御装置に本発明を適用することができる。
【００８９】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【００９０】
１    ロボット
２    制御部
３    ロボット制御装置
１３    関節部
１４    駆動モータ
３１    第１のエンコーダ
３２    第２のエンコーダ
４１    減速機
４３    入力軸
４４    出力軸
５１    第１の回転角記憶部
５２    第２の回転角記憶部
５３    回転角更新部
５４    更新判定部
５５    異常検出部
５８    バックアップ電源
【図１】
0005980965.tif 000002
【図２】
0005980965.tif 000003
【図３】
0005980965.tif 000004
【図４】
0005980965.tif 000005
【図５】
0005980965.tif 000006
【図６】
0005980965.tif 000007
【図７】
0005980965.tif 000008
【図８】
0005980965.tif 000009