(57)【特許請求の範囲】
【請求項１】
関節軸と、該関節軸を駆動するモータと、該モータの回転軸の物理的な位置を表す一回転内位置と多回転位置とを含む位置情報を出力するアブソリュートエンコーダと、を有するロボットを制御するロボット制御装置であって、
前記関節軸上の任意のキャリブレーション位置に前記関節軸が移動された場合において、前記アブソリュートエンコーダから位置情報を取得する第１位置情報取得部と、
前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記多回転位置のカウントを行う基準となる原点を含まない所定の許容範囲に含まれるか否かを判定する位置範囲判定部と、
前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれない場合に、該一回転内位置が前記許容範囲に含まれるまで、前記キャリブレーション位置の移動を要求する移動要求部と、
前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれる場合に、前記位置情報と前記関節軸の制御位置とに基づいて、前記関節軸の物理的な位置と制御位置とを補正する補正値を決定する補正値決定部と、
を備えるロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記許容範囲は、前記一回転内位置の全範囲から、前記原点を起点として３６０°を前記モータの回転軸のギア数で除した値だけ遅れた位置から該値まで進んだ位置までを除いた範囲である、ロボット制御装置。
【請求項３】
請求項１または請求項２に記載のロボット制御装置であって、更に、
前記補正値が決定された際における前記位置情報のうちの少なくとも前記一回転内位置と前記関節軸の制御位置とを記憶する制御装置側記憶部と、
前記補正値が決定された後に、前記関節軸が、再度、前記キャリブレーション位置に移動された場合において、前記アブソリュートエンコーダから位置情報を取得する第２位置情報取得部と、
前記第２位置情報取得部が取得した前記位置情報内の一回転内位置を、前記制御装置側記憶部に記憶されている一回転内位置に変更し、該変更後の位置情報と前記制御装置側記憶部に記憶されている前記関節軸の制御位置とに基づいて、前記補正値を更新する補正値更新部と、を備えるロボット制御装置。
【請求項４】
請求項３に記載のロボット制御装置であって、
前記アブソリュートエンコーダは、
前記位置情報のうちの多回転位置を保持する揮発性のエンコーダ側記憶部と、
前記エンコーダ側記憶部をバッテリバックアップするバッテリと、を備え、
前記第２位置情報取得部は、前記補正値決定部によって前記補正値が決定された後で、かつ、前記バッテリが交換されて前記エンコーダ側記憶部から前記多回転位置が失われた後に、前記位置情報の取得を行う、ロボット制御装置。
【請求項５】
関節軸と、該関節軸を駆動するモータと、該モータの回転軸の物理的な位置を表す一回転内位置と多回転位置とを含む位置情報を出力するアブソリュートエンコーダと、を有するロボットをロボット制御装置がキャリブレーションするキャリブレーション方法であって、
前記関節軸上の任意のキャリブレーション位置に前記関節軸が移動された場合において、前記アブソリュートエンコーダから位置情報を取得する第１位置情報取得工程と、
前記第１位置情報工程により取得した前記位置情報に含まれる一回転内位置が、前記多回転位置のカウントを行う基準となる原点を含まない所定の許容範囲に含まれるか否かを判定する位置範囲判定工程と、
前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれない場合に、該一回転内位置が前記許容範囲に含まれるまで、前記キャリブレーション位置の移動を要求する移動要求工程と、
前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれる場合に、前記位置情報と前記関節軸の制御位置とに基づいて、前記関節軸の物理的な位置と制御位置とを補正する補正値を決定する補正値決定工程と、
を含むキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットをキャリブレーションする技術に関する。
【背景技術】
【０００２】
ロボットをキャリブレーション（校正）する技術に関し、例えば、特許文献１に記載の技術では、目的点に対し対称な第一位置および第二位置からそれぞれ目的点に対してエンドエフェクタを移動させることで、正方向データおよび負方向データを取得し、これらのデータに基づいてキャリブレーションデータを作成している。この技術では、こうして作成したキャリブレーションデータによってエンドエフェクタの位置を補正することで、ロボットの各部に存在するヒステリシスの影響を抑制している。
【０００３】
しかし、ロボットが一旦設備内に組み込まれると、設備の小型化などの要因により、限られた空間の中でキャリブレーションを行う必要がある場合がある。このような場合には、例えば、前述の第一位置や第二位置が関節軸の動作限界位置（メカ端）に相当する位置であると、その位置までエンドエフェクタを移動させることができず、キャリブレーションを実質的に行うことができないという状況が生じるおそれがある。このような問題は、エンドエフェクタに限らず、ロボットの各関節軸をキャリブレーションする際に共通した問題である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４２９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の問題を考慮し、本発明が解決しようとする課題は、ロボットの関節軸をその動作限界位置でキャリブレーションできない場合においても、任意の位置で精度良くキャリブレーションすることが可能な技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］関節軸と、該関節軸を駆動するモータと、該モータの回転軸の物理的な位置を表す一回転内位置と多回転位置とを含む位置情報を出力するアブソリュートエンコーダと、を有するロボットを制御するロボット制御装置であって、前記関節軸上の任意のキャリブレーション位置に前記関節軸が移動された場合において、前記アブソリュートエンコーダから位置情報を取得する第１位置情報取得部と、前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記多回転位置のカウントを行う基準となる原点を含まない所定の許容範囲に含まれるか否かを判定する位置範囲判定部と、前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれない場合に、該一回転内位置が前記許容範囲に含まれるまで、前記キャリブレーション位置の移動を要求する移動要求部と、前記第１位置情報取得部が取得した前記位置情報に含まれる一回転内位置が、前記許容範囲に含まれる場合に、前記位置情報と前記関節軸の制御位置とに基づいて、前記関節軸の物理的な位置と制御位置とを補正する補正値を決定する補正値決定部と、を備えるロボット制御装置。
【０００８】
このような構成のロボット制御装置によれば、関節軸の物理的な位置と制御位置とを補正するための補正値を求める際に、アブソリュートエンコーダから出力される一回転内位置が、多回転位置のカウントを行う基準となる原点を含まない所定の許容範囲に含まれるか否かを判定し、一回転内位置が、許容範囲内に含まれない場合には、許容範囲に含まれるまで、キャリブレーション位置の移動を要求する。そのため、補正値を決定するための関節軸の位置（以下、「キャリブレーション位置」ともいう）が、アブソリュートエンコーダの原点に近い位置に設定されることが抑制される。この結果、２回目以降のキャリブレーション時の関節軸の位置合わせの際に、アブソリュートエンコーダから出力される多回転位置が不安定になってしまうことが抑制されるので、任意の位置で精度の高いキャリブレーションを行うことが可能になる。また、一旦設定されたキャリブレーション位置への位置合わせにおいて、ロボット各部のヒステリシスや、キャリブレーション位置への位置合わせの際の力加減、位置合わせ時の目分量によるズレが関節軸上に生じたとしても、多くの場合、その影響は、モータの回転軸の一回転内位置の範囲内のズレに収まる。そのため、上記構成のようにキャリブレーション位置を許容範囲内に設定すれば、２回目以降のキャリブレーション時のキャリブレーション位置への位置合わせにおいて前述の種々の要因による位置ズレが生じても、そのズレは一回転内位置の範囲に留まるとともに、多回転位置までがずれてしまうことが抑制される。よって、精度の高いキャリブレーションを実現することが可能になる。
【０００９】
［適用例２］適用例１に記載のロボット制御装置であって、前記許容範囲は、前記一回転内位置の全範囲から、前記原点を起点として３６０°（２πｒａｄ）を前記モータの回転軸のギア数で除した値だけ遅れた位置から該値まで進んだ位置までを除いた範囲である、ロボット制御装置。
【００１０】
キャリブレーション位置への関節軸の位置合わせは、モータの回転軸に設けられたギアの分解能に拘束される。そのため、上記構成のように、原点から１つのギア分だけ位置を前後させた範囲を除く範囲を許容範囲とすれば、キャリブレーション位置を設定可能な範囲を大きくすることができ、キャリブレーション位置の設定の自由度を高めることができる。
【００１１】
［適用例３］適用例１または適用例２に記載のロボット制御装置であって、更に、前記補正値が決定された際における前記位置情報のうちの少なくとも前記一回転内位置と前記関節軸の制御位置とを記憶する制御装置側記憶部と、前記補正値が決定された後に、前記関節軸が、再度、前記キャリブレーション位置に移動された場合において、前記アブソリュートエンコーダから位置情報を取得する第２位置情報取得部と、前記第２位置情報取得部が取得した前記位置情報内の一回転内位置を、前記制御装置側記憶部に記憶されている一回転内位置に変更し、該変更後の位置情報と前記制御装置側記憶部に記憶されている前記関節軸の制御位置とに基づいて、前記補正値を更新する補正値更新部と、を備えるロボット制御装置。
【００１２】
このような構成のロボット制御装置であれば、制御装置側記憶部に予め記憶しておいた一回転内位置を用いて２回目以降のキャリブレーション（補正値の更新）を行うことができる。そのため、２回目以降のキャリブレーションにおいて、ロボット各部のヒステリシスや、キャリブレーション位置への位置合わせの際の力加減、位置合わせ時の目分量によるズレなどの影響があったとしても、最初のキャリブレーション時において記憶しておいた一回転内位置を用いることで精度良く再キャリブレーションを行うことができる。予め記憶しておいた一回転内位置をそのまま用いることできるのは、上述のように、種々の要因によってキャリブレーション位置への位置合わせにズレが生じたとしても、そのズレは、一回転内位置の範囲内に収まるためである。
【００１３】
［適用例４］適用例３に記載のロボット制御装置であって、前記アブソリュートエンコーダは、前記位置情報のうちの多回転位置を保持する揮発性のエンコーダ側記憶部と、前記エンコーダ側記憶部をバッテリバックアップするバッテリと、を備え、前記第２位置情報取得部は、前記補正値決定部によって前記補正値が決定された後で、かつ、前記バッテリが交換されて前記エンコーダ側記憶部から前記多回転位置が失われた後に、前記位置情報の取得を行う、ロボット制御装置。
【００１４】
本構成においても、上記のように、キャリブレーション位置がアブソリュートエンコーダの原点付近に設定されることが抑制されているため、アブソリュートエンコーダからは正確に多回転位置が出力される。そのため、アブソリュートエンコーダのバッテリの電圧低下によって多回転位置が失われ、再度のキャリブレーションが必要になった場合でも、正確にキャリブレーションを行うことができる。この結果、バッテリ交換に伴って、再度ティーチングなどを行う必要がないため、ロボットを迅速に復帰させることが可能になる。
【００１５】
本発明は、上述したロボット制御装置としての構成のほか、ロボットのキャリブレーション方法や、ロボットのキャリブレーションを行うためのコンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。また、上述した各適用例の構成要素は、適宜、組み合わせたり、省略したりすることが可能である。
【図面の簡単な説明】
【００１６】
【図１】ロボット制御装置を含むロボットシステムの概略構成を示す説明図である。
【図２】ロボット本体およびロボット制御装置の内部構成を示すブロック図である。
【図３】初期キャリブレーション処理のフローチャートである。
【図４】一回転内位置の許容範囲を示す説明図である。
【図５】再キャリブレーション処理のフローチャートである。
【発明を実施するための形態】
【００１７】
Ａ．システム構成：
図１は、本発明の一実施例としてのロボット制御装置２００を含むロボットシステム１０の概略構成を示す説明図である。ロボットシステム１０は、多関節型の産業用ロボットとして構成されたロボット本体１００と、ロボット本体１００の動作を制御するロボット制御装置２００と、ロボット制御装置２００に接続され、ロボット本体１００の動作を教示するためのロボット教示装置３００とを有している。ロボット本体１００とロボット制御装置２００、および、ロボット制御装置２００とロボット教示装置３００は、所定の接続ケーブルを介してそれぞれ接続されている。
【００１８】
ロボット本体１００は、例えば、工場内の設備に固定されるベース部１０１と、水平方向に旋回可能な関節軸によってベース部１０１に支持されたショルダ部１０２と、鉛直方向に旋回可能な関節軸によってショルダ部１０２に下端が支持された下アーム１０３と、鉛直方向に旋回可能な関節軸によって下アーム１０３の先端に略中央部が支持された上アーム１０４と、鉛直方向に旋回可能な関節軸によって上アーム１０４の先端に支持された手首１０５とを備えている。手首１０５の先端には、手首１０５の円周方向に回転可能な軸を有するフランジ部１０６が備えられている。フランジ部１０６には、ワークを把持するエンドエフェクタ１０７が取り付けられている。
【００１９】
ロボット制御装置２００は、ＣＰＵやメモリを備えるコンピュータとして構成されている。ロボット制御装置２００は、ロボット教示装置３００によって教示された教示データに基づいて、ロボット本体１００の各関節軸に備えられたサーボモータを駆動し、ロボット本体１００の自動制御を行う。また、ロボット制御装置２００は、ロボット教示装置３００から手動による操作指令があった場合には、その指令に応じてロボット本体１００の各関節軸を駆動する。
【００２０】
図２は、ロボット本体１００およびロボット制御装置２００の内部構成を示すブロック図である。説明の簡単のため、図２には、図１に示した複数の関節軸のうち、１つの関節軸について示している。ロボット本体１００は、三相交流式のブラシレスＤＣモータとして構成されたサーボモータ１１０と、サーボモータ１１０の回転軸に接続されたアブソリュートエンコーダ１６０と、サーボモータ１１０の回転を減速させる減速機１７０と、減速機１７０を介してサーボモータ１１０によって駆動される関節軸１８０と、を備えている。
【００２１】
アブソリュートエンコーダ１６０は、サーボモータ１１０の回転軸の物理的な絶対位置を検出する検出器である。絶対位置は、一回転内位置情報と多回転位置情報とを含むエンコーダ位置情報によって表される。一回転内位置情報とは、アブソリュートエンコーダ１６０の原点から１回転内におけるサーボモータ１１０の回転軸の絶対位置（絶対角度）を示す情報であり、例えば、１６ビットの値で表される。また、多回転位置情報とは、その原点を基準としてカウントしたサーボモータ１１０の回転軸の累積回転数（累積角度）を示す情報であり、例えば、１６ビットの値で表される。
【００２２】
アブソリュートエンコーダ１６０は、前述したエンコーダ位置情報のうち、多回転位置情報を記憶するための多回転位置情報記憶部１６２を備えている。この多回転位置情報記憶部は揮発性のメモリであり、バッテリ１６４によってバックアップされている。そのため、バッテリ１６４の電圧が低下すると、多回転位置情報記憶部１６２に記憶された多回転位置情報は失われることになる。なお、一回転内位置情報は、バッテリ１６４の電圧が低下してもその情報が失われることはない。これは、アブソリュートエンコーダ１６０内に備えられた回転板によって一回転内の絶対位置はいつでも取得可能だからである。
【００２３】
ロボット制御装置２００は、ロボット本体１００のサーボモータ１１０に三相交流電力を供給するインバータ２１０と、インバータ２１０のスイッチング制御を行う駆動回路２２０と、ロボット教示装置３００が接続されるインタフェース２３０と、ＣＰＵ２４０と、記憶部２５０とを備えている。ＣＰＵ２４０は、記憶部２５０に記憶された所定の制御プログラム２５１を実行することで、駆動制御部２６０、第１キャリブレーション処理部２７０、第２キャリブレーション処理部２８０、として機能する。
【００２４】
第１キャリブレーション処理部２７０は、例えば、ロボット本体１００が工場内の設備等に設置されたタイミングで最初にキャリブレーションを行うための機能を有する。キャリブレーションとは、関節軸１８０の制御上の軸位置とアブソリュートエンコーダ１６０から出力される物理的位置とを一致させるための補正値を求めることをいう。以下では、この第１キャリブレーション処理部２７０によって実行されるキャリブレーションのことを、「初期キャリブレーション処理」という。図２に示すように、第１キャリブレーション処理部２７０は、第１位置情報取得部２７１と、位置範囲判定部２７２と、補正値決定部２７３と、位置記録部２７４と、移動要求部２７５と、を含んでいる。
【００２５】
第１位置情報取得部２７１は、初期キャリブレーション処理を行う際に、アブソリュートエンコーダ１６０からエンコーダ位置情報を取得する機能を有する。位置範囲判定部２７２は、第１位置情報取得部２７１によって取得されたエンコーダ位置情報のうちの一回転内位置情報が表す位置が、予め定められた許容範囲に含まれるか否かを判定する機能を有する。この許容範囲についての詳細は後述する。補正値決定部２７３は、第１位置情報取得部２７１によって取得されたエンコーダ位置情報等に基づいて上述した補正値を算出し、記憶部２５０に不揮発的に記憶させる。補正値の具体的な算出方法については後述する。位置記録部２７４は、補正値が決定された際の関節軸の制御上の軸位置を表す情報（以下、関節軸位置情報という）と第１位置情報取得部２７１によって取得されたエンコーダ位置情報と、を記憶部２５０に不揮発的に記憶させる。移動要求部２７５は、第１位置情報取得部２７１によって取得されたエンコーダ位置情報のうちの一回転内位置情報が表す位置が、前述の許容範囲に含まれない場合に、キャリブレーション位置の変更をユーザに要求する機能を有する。
【００２６】
第２キャリブレーション処理部２８０は、初期キャリブレーション処理後の任意のタイミングで、再度、キャリブレーションを行うための機能を有する。以下では、第２キャリブレーション処理部２８０によって行われるキャリブレーションのことを、「再キャリブレーション処理」という。再キャリブレーション処理は、例えば、アブソリュートエンコーダ１６０が備えるバッテリ１６４の電圧が低下して多回転位置情報が失われた際に、バッテリ１６４が新たなバッテリに交換された後にユーザの指示に応じて実行される。第２キャリブレーション処理部２８０は、第２位置情報取得部２８１と、補正値更新部２８２と、含んでいる。
【００２７】
第２位置情報取得部２８１は、アブソリュートエンコーダ１６０からエンコーダ位置情報を取得する機能を有する。補正値更新部２８２は、記憶部２５０に記憶されているエンコーダ位置情報と、関節軸位置情報と、第２位置情報取得部２８１によって取得されたエンコーダ位置情報と、に基づいて、補正値を再決定して記憶部２５０に記録する機能を有する。
【００２８】
駆動制御部２６０は、記憶部２５０に予め記憶された教示データ２５２に基づいて、サーボモータ１１０を駆動するための信号を駆動回路２２０に出力する。このとき、駆動制御部２６０は、ロボット本体１００のアブソリュートエンコーダ１６０からエンコーダ位置情報を取得し、このエンコーダ位置情報と記憶部２５０に記憶されている補正値とに基づいて、サーボモータ１１０の駆動をフィードバック制御する。
【００２９】
駆動制御部２６０は、関節軸の位置を以下の式（１）によって算出してフィードバック制御を行う。具体的には、アブソリュートエンコーダ１６０から出力された絶対位置に、第１キャリブレーション処理部２７０や第２キャリブレーション処理部２８０で決定された補正値を加算し、その合計値を減速機１７０のギア比で除した値が関節軸１８０の制御上の位置となる。なお、減速機１７０のギア比は、関節軸１８０の種類に応じて５０〜１２０程度の値をとり、例えば、８０とすることができる。
【００３０】
関節軸位置＝（エンコーダ出力位置＋補正値）／ギア比  ・・・（１）
【００３１】
第１キャリブレーション処理部２７０は、上記式（１）中の補正値を、下記式（２）に基づいて算出する。具体的には、キャリブレーションを行う際の関節軸の制御位置にギア比を積算し、その積算値からアブソリュートエンコーダ１６０が出力した絶対位置（一回転内位置＋多回転位置）を差し引くことで求めることができる。なお、第２キャリブレーション処理部２８０による補正値の再決定方法については後述する。
【００３２】
補正値＝関節軸位置＊ギア比−エンコーダ出力位置  ・・・（２）
【００３３】
Ｂ．初期キャリブレーション処理：
図３は、第１キャリブレーション処理部２７０によって実行される初期キャリブレーション処理のフローチャートである。この初期キャリブレーション処理は、例えば、ロボット本体１００が工場内の設備等に組み付けられた際に、ユーザからロボット教示装置３００を通じて初期キャリブレーションの実行を指令された場合に実行される。
【００３４】
初期キャリブレーション処理が実行されると、まず、ユーザによって、ロボット本体１００の関節軸１８０が任意の位置に移動され、キャリブレーション位置が指定される（ステップＳ１００）。ユーザは、ロボット教示装置３００を用いて関節軸１８０を移動させることができ、また、ロボット本体１００のアームを掴んで関節軸１８０を移動させることもできる。
【００３５】
キャリブレーション位置が指定されると、第１キャリブレーション処理部２７０は、第１位置情報取得部２７１により、アブソリュートエンコーダ１６０からエンコーダ位置情報を取得する（ステップＳ１０５）。第１位置情報取得部２７１は、更に、そのエンコーダ位置情報の中から、一回転内位置情報を取得する（ステップＳ１１０）。
【００３６】
一回転内位置情報が取得されると、位置範囲判定部２７２により、その一回転内位置情報によって表される一回転内位置が、アブソリュートエンコーダ１６０の原点を含まない所定の許容範囲内にあるか否かが判定される（ステップＳ１１５）。
【００３７】
図４は、本実施例における一回転内位置の許容範囲を示す説明図である。本実施例では、図４に示すように、位置範囲判定部２７２は、原点から±４５°の範囲を除いた範囲、すなわち、原点に対して＋４５°から＋３１５°までの範囲を許容範囲とし、一回転内位置が、この許容範囲内にあるか否かを判定する。この判定の結果、一回転内位置が許容範囲内になければ、移動要求部２７５が、ロボット教示装置３００を通じてユーザに関節軸１８０の微小な移動を要求し（ステップＳ１２０）、処理をステップＳ１００に戻す。関節軸１８０の移動が行われると、移動後の一回転内位置が、前述の許容範囲内となるまで、上記ステップＳ１００〜Ｓ１１５の処理が繰り返される。なお、上記ステップＳ１２０では、ロボット制御装置２００は、例えば、ユーザによる関節軸１８０の移動が許容範囲に収まるようになるまで、ロボット教示装置３００を通じて、ユーザに、警告表示を行わせることとしてもよい。
【００３８】
上記ステップＳ１１５において、一回転内位置が許容範囲内であると判定されると、上記式（２）に従い、補正値決定部２７３により補正値が算出される（ステップＳ１２５）。補正値決定部２７３により補正値が算出されると、算出された補正値は、記憶部２５０に保存される（ステップＳ１３０）。補正値が記憶部２５０に保存されると、位置記録部２７４により、上記ステップＳ１０５で最後に取得したエンコーダ位置情報と、そのエンコーダ位置情報が取得された時点における関節軸の制御位置を表す関節軸位置情報と、が記憶部２５０に保存される（ステップＳ１３５，Ｓ１４０）。なお、本実施例では、ステップＳ１３５において、記憶部２５０に、エンコーダ位置情報全体を保存することとするが、エンコーダ位置情報のうち、一回転内位置情報だけを保存することとしてもよい。
【００３９】
以上で説明した一連の処理により、初期キャリブレーション処理は終了する。初期キャリブレーション処理の終了後、ユーザは、関節軸１８０上の、上記ステップＳ１００で指定したキャリブレーション位置、あるいは、上記ステップＳ１２０で移動させたキャリブレーション位置に、マーキングを施すことが好ましい。こうすることで、後述する再キャリブレーション処理において、容易にキャリブレーション位置への関節軸１８０の位置合わせを行うことができる。
【００４０】
Ｃ．再キャリブレーション処理：
図５は、第２キャリブレーション処理部２８０によって実行される再キャリブレーション処理のフローチャートである。この再キャリブレーション処理は、アブソリュートエンコーダ１６０が備えるバッテリ１６４の交換が行われ、ユーザからロボット教示装置３００を通じて再キャリブレーション処理の実行を指令された場合に実行される。
【００４１】
再キャリブレーション処理が実行されると、まず、ユーザによって、ロボット本体１００の関節軸１８０が、初期キャリブレーション処理において指定されたキャリブレーション位置に移動される（ステップＳ２００）。初期キャリブレーション処理の際と同様に、ユーザは、ロボット教示装置３００を用いて関節軸１８０を移動させることができ、また、ロボット本体１００のアームを掴んで関節軸１８０を移動させることもできる。
【００４２】
キャリブレーション位置に関節軸１８０が移動されると、第２位置情報取得部２８１によって、アブソリュートエンコーダ１６０からエンコーダ位置情報が取得される（ステップＳ２０５）。エンコーダ位置情報の取得後、第２キャリブレーション処理部２８０は、初期キャリブレーション処理において保存されたエンコーダ位置情報を記憶部２５０から読み出す（ステップＳ２１０）。そして、アブソリュートエンコーダ１６０から取得したエンコーダ位置情報のうちの一回転内位置情報を、記憶部２５０から読み出したエンコーダ位置情報内の一回転内位置情報に置き換える（ステップＳ２１５）。
【００４３】
一回転内位置情報の置き換え後、補正値更新部２８２は、初期キャリブレーション処理において記憶部２５０に保存された関節軸位置情報を読み出し（ステップＳ２２０）、この関節軸位置情報と、ステップＳ２１５において一回転内位置情報が置き換えられたエンコーダ位置情報とを用いて、上記式（２）に基づき補正値を算出する（ステップＳ２２５）。そして、算出された補正値によって、記憶部２５０にすでに記憶されている補正値を更新する（ステップＳ２３０）。なお、初期キャリブレーション処理によって記憶部２５０に保存されたエンコーダ位置情報と関節軸位置情報とは、更新せずにそのまま保存しておく。
【００４４】
以上で説明した本実施例のロボット制御装置２００によれば、上述した初期キャリブレーション処理において、アブソリュートエンコーダ１６０の原点位置からある程度離れた一回転内位置において関節軸１８０のキャリブレーション位置が設定される。そのため、再キャリブレーション時において、関節軸１８０をキャリブレーション位置に位置合わせする際に、多回転位置が不安定になること（より詳しくは、多回転位置が±１回転の範囲で変動してしまうこと）を抑制することができる。そのため、ロボット本体１００が設備内に固定されてしまい関節軸１８０をメカ端のように位置合わせの容易な位置でキャリブレーションできないような状況においても、任意の位置に再現性の高いキャリブレーション位置を設定することが可能になる。
【００４５】
また、本実施例では、上記のようにキャリブレーション位置の設定がなされる結果、再キャリブレーション時においてアブソリュートエンコーダ１６０から正確に多回転位置情報が出力されることになる。そのため、アブソリュートエンコーダ１６０のバッテリ１６４の電圧低下によって多回転位置情報が失われ、再キャリブレーションが必要になった場合でも、正確にキャリブレーションを行うことができる。この結果、バッテリ交換に伴って、再度ティーチングを行う必要がないため、ロボットを迅速に復帰させることが可能になる。
【００４６】
更に、上述した再キャリブレーション処理によれば、初期キャリブレーション処理において保存しておいたエンコーダ位置情報内の一回転内位置を用いて補正値を算出する。そのため、再キャリブレーション処理時の位置合わせの際に、減速機１７０のヒステリシスや、位置合わせの際の力加減、あるいは、目分量による位置ズレなどの要因が存在しても、それらの影響を受けることなく、初期キャリブレーション時と同等の精度で正確にキャリブレーションを行うことができる。
【００４７】
ここで、初期キャリブレーション処理によって記憶部２５０に保存しておいたエンコーダ位置情報内の一回転内位置を用いて再キャリブレーション時に補正値を算出可能な理由について説明する。まず、ロボット本体１００のある関節軸１８０をメカ端に押しつけ、その押しつけ力を変化させた場合に関節軸１８０の位置ズレを測定した。すると、そのズレ量は、最大で約０．２６°であった、このズレは、例えば、アームの長さが８５４．８８ｍｍの場合には、アームの先端で、３．８７９ｍｍ（＝８５４．８８ｍｍ×ｓｉｎ０．２６°）のズレとなって表れる。しかし、この０．２６°という角度は、減速機１７０のギア比を８０とすると、サーボモータ１１０の回転軸レベルでは、２０．８°（＝０．２６°×８０）という角度に過ぎない。また、ギア比を１５０として計算しても、３９．０°程度である。つまり、上述したズレの要因による影響は、多く見積もっても、サーボモータ１１０の回転軸の１回転内のズレに収まると言える。そのため、本実施例の再キャリブレーション処理では、アブソリュートエンコーダ１６０から取得した多回転位置情報はそのままに、一回転内位置情報だけを記憶部２５０に保存しておいた値に入れ替えることで、初期キャリブレーション処理実行時と同様の精度の高いキャリブレーションが実行可能になる。また、再キャリブレーション処理の際には、多回転位置情報は、再キャリブレーションの際に得られた値をそのまま使用するが、本実施例では前述のように、キャリブレーション位置がアブソリュートエンコーダ１６０の原点付近に設定されることがないため、多回転位置の検出精度が高くなる。よって、本実施例によれば、精度の高い一回転内位置および多回転位置によって、きわめて高精度にキャリブレーションを行うことが可能になる。
【００４８】
Ｄ．変形例：
以上、本発明の一実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、以下のような変形が可能である。
【００４９】
・変形例１：
上記実施例では、サーボモータ１１０の回転軸の一回転内位置が、原点から＋４５°〜＋３１５°の範囲（許容範囲）に入るようキャリブレーション位置の設定を行ったが、この範囲は、多回転数の変動を抑制可能な値であればよく任意に設定可能である。例えば、＋３０°〜＋３３０°、＋６０°〜＋３００°、＋９０°〜＋２７０°などの範囲を許容範囲とすることができる。また、許容範囲は、原点から＋方向と−方向とで非対称となる範囲とすることもできる。
【００５０】
その他、例えば、前述の許容範囲は、下記式（３），（４）に示すように、一回転内位置の全範囲から、原点を起点として３６０°をサーボモータ１１０の回転軸のギア数で除した値Ａだけ遅れた位置からこの値Ａまで進んだ位置までを除いた範囲（換言すれば、一回転内位置の全範囲において、値Ａに対応する位置から、３６０°から値Ａを差し引いた値に対応する位置までの範囲）とすることができる。
【００５１】
値Ａ＝３６０°／ギア数    ・・・（３）
値Ａ≦許容範囲≦３６０°−値Ａ    ・・・（４）
【００５２】
キャリブレーション位置への関節軸の位置合わせは、モータの回転軸に設けられたギアの分解能に拘束される。そのため、上記のように、原点から１つのギア分だけ位置を前後させた範囲を除く範囲を許容範囲とすれば、より広い範囲にキャリブレーション位置を設定することが可能になる。なお、モータの回転軸のギア数は、例えば、５０〜６０程度であり、多くても１００程度である。
【００５３】
・変形例２：
上記実施例では、１つの関節軸１８０について初期キャリブレーションと再キャリブレーションとを行う例について説明したが、ロボット本体１００が備える全ての関節軸に対して、上述した初期キャリブレーションと再キャリブレーションとを適用することができる。
【００５４】
・変形例３：
上記実施例では、再キャリブレーション処理は、バッテリ１６４の交換後に行うこととしたが、バッテリ１６４の交換の有無にかかわらず、初期キャリブレーション処理が終了した後であれば、どのタイミングで実行してもよい。また、初期キャリブレーション処理および再キャリブレーション処理が実行される回数はそれぞれ特に制限されない。
【００５５】
・変形例４：
上記実施例では、初期キャリブレーション処理と再キャリブレーション処理とは、ロボット制御装置２００が実行することとしたが、ロボット教示装置３００が実行することとしてもよい。この場合、ロボット教示装置３００が、本願のロボット制御装置に相当する。また、処理内容が、ロボット制御装置２００とロボット教示装置３００とに分散する場合には、両者をまとめて、本願のロボット制御装置として捉えることも可能である。
【００５６】
・変形例５：
上記実施例では、任意の位置で初期キャリブレーションを行うこととしたが、メカ端や所定のマーキング位置など、位置合わせの再現性の高い位置で初期キャリブレーションを行うこととしてもよい。
【００５７】
・変形例６：
上述したロボット制御装置２００の構成において、ソフトウェアによって実現した機能はハードウェアによって実現してもよく、その逆もまた可能である
【符号の説明】
【００５８】
１０…ロボットシステム
１００…ロボット本体
１０１…ベース部
１０２…ショルダ部
１０３…下アーム
１０４…上アーム
１０５…手首
１０６…フランジ部
１０７…エンドエフェクタ
１１０…サーボモータ
１６０…アブソリュートエンコーダ
１６２…多回転位置情報記憶部
１６４…バッテリ
１７０…減速機
１８０…関節軸
２００…ロボット制御装置
２１０…インバータ
２２０…駆動回路
２２２…教示データ
２３０…インタフェース
２４０…ＣＰＵ
２５０…記憶部
２５１…制御プログラム
２５２…教示データ
２６０…駆動制御部
２７０…第１キャリブレーション処理部
２７１…第１位置情報取得部
２７２…位置範囲判定部
２７３…補正値決定部
２７４…位置記録部
２８０…第２キャリブレーション処理部
２８１…第２位置情報取得部
２８２…補正値更新部
３００…ロボット教示装置
【図１】
0005803173.tif 000002
【図２】
0005803173.tif 000003
【図３】
0005803173.tif 000004
【図４】
0005803173.tif 000005
【図５】
0005803173.tif 000006