(57)【要約】【課題】座標変換の校正値を求める際に、人手による教示作業を不要にし、校正精度を向上するロボットシステムを提供する。【解決手段】ロボット本体２、カメラ３、制御装置を備え、制御装置は、基準計測位置姿勢７ａ及び第１のオフセット範囲内の位置姿勢を含む第１の位置姿勢グループ７の各位置姿勢でカメラ３により校正プレート１０を計測させ、計測値から第１の校正値を算出し、基準計測位置姿勢７ａとは異なる基準作業位置姿勢８ａと、第１のオフセット範囲とは離隔する又は一部が第１のオフセット範囲に重なり別の一部が第１のオフセット範囲に重ならない第２のオフセット範囲内にある位置姿勢と、を含む第２の位置姿勢グループ８の各位置姿勢でカメラ３により校正プレート１０を計測させ、計測値から第２の校正値を算出し、カメラ３によりワークを計測させ、第１及び第２の校正値を利用して、ロボット本体２を動作させる。【選択図】図３
2014151427.tif 000002
【特許請求の範囲】
【請求項１】
多関節アームと、前記多関節アームに支持されたエンドエフェクタと、を有するロボット本体と、
前記ロボット本体に設けられた視覚センサと、
前記ロボット本体の位置姿勢を制御し、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備え、
前記制御装置は、
前記ロボット本体の第１の基準位置姿勢と、前記第１の基準位置姿勢を囲む第１のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第１の位置姿勢グループの各位置姿勢で、前記視覚センサにより基準部材を計測させ、
前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第１の校正値を算出し、
前記第１の基準位置姿勢とは異なる前記ロボット本体の第２の基準位置姿勢と、前記第２の基準位置姿勢を囲むと共に、前記第１のオフセット範囲とは離隔する又は一部が前記第１のオフセット範囲に重なり別の一部が前記第１のオフセット範囲に重ならない第２のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第２の位置姿勢グループの各位置姿勢で、前記視覚センサにより前記基準部材を計測させ、
前記第２の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第２の校正値を算出し、
前記視覚センサにより前記ワークを計測させ、前記第１の校正値及び前記第２の校正値を利用して、前記ロボット本体を動作させる、
ことを特徴とするロボットシステム。
【請求項２】
前記第１の基準位置姿勢は、前記第２の基準位置姿勢よりも前記視覚センサが前記ワークに正対する位置姿勢である、
ことを特徴とする請求項１記載のロボットシステム。
【請求項３】
前記第２の基準位置姿勢は、前記第１の基準位置姿勢よりも前記エンドエフェクタが前記ワークに正対する位置姿勢である、
ことを特徴とする請求項１又は２に記載のロボットシステム。
【請求項４】
前記制御装置は、
前記第１の位置姿勢グループ及び前記第２の位置姿勢グループの全位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して基本校正値を算出し、
前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して前記基本校正値に対する第１の補正値を算出し、
前記第１の補正値及び前記基本校正値から前記第１の校正値を算出し、
前記第２の位置姿勢グループの全位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して前記基本校正値に対する第２の補正値を算出し、
前記第２の補正値及び前記基本校正値から前記第２の校正値を算出する、
ことを特徴とする請求項１乃至３のいずれか１項に記載のロボットシステム。
【請求項５】
前記ワークに組み付け可能な組付け用ワークが前記エンドエフェクタに把持されると共に、前記多関節アームを支持する基台に前記ワークが支持され、
前記制御装置は、
前記組付け用ワークを前記視覚センサに計測させ、
前記組付け用ワークの計測値及び前記ワークの計測値を、前記第１の校正値及び前記第２の校正値を利用して、前記視覚センサの座標系から前記ロボット本体の座標系に座標変換し、
座標変換した前記組付け用ワークの計測値及び前記ワークの計測値を利用して、前記組付け用ワークを前記ワークに対して組み付けるように前記ロボット本体を移動させる指令値を算出する、
ことを特徴とする請求項１乃至４のいずれか１項に記載のロボットシステム。
【請求項６】
多関節アームと、前記多関節アームに支持されたエンドエフェクタと、を有するロボット本体と、
前記ロボット本体に設けられた視覚センサと、
前記ロボット本体の位置姿勢を制御し、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備えたロボットシステムの制御方法において、
前記制御装置が、前記ロボット本体の第１の基準位置姿勢と、前記第１の基準位置姿勢を囲む第１のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第１の位置姿勢グループの各位置姿勢で、前記視覚センサにより基準部材を計測させる第１の計測工程と、
前記制御装置が、前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第１の校正値を算出する第１の校正値算出工程と、
前記制御装置が、前記第１の基準位置姿勢とは異なる前記ロボット本体の第２の基準位置姿勢と、前記第２の基準位置姿勢を囲むと共に、前記第１のオフセット範囲とは離隔する又は一部が前記第１のオフセット範囲に重なり別の一部が前記第１のオフセット範囲に重ならない第２のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第２の位置姿勢グループの各位置姿勢で、前記視覚センサにより前記基準部材を計測させる第２の計測工程と、
前記制御装置が、前記第２の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第２の校正値を算出する第２の校正値算出工程と、
前記制御装置が、前記視覚センサにより前記ワークを計測させるワーク計測工程と、
前記制御装置が、前記第１の校正値及び前記第２の校正値を利用して、前記ロボット本体を動作させる動作工程と、を備える、
ことを特徴とするロボットシステムの制御方法。
【請求項７】
前記第１の基準位置姿勢は、前記第２の基準位置姿勢よりも前記視覚センサが前記ワークに正対する位置姿勢である、
ことを特徴とする請求項６記載のロボットシステムの制御方法。
【請求項８】
前記第２の基準位置姿勢は、前記第１の基準位置姿勢よりも前記エンドエフェクタが前記ワークに正対する位置姿勢である、
ことを特徴とする請求項６又は７に記載のロボットシステムの制御方法。
【請求項９】
前記制御装置が、前記第１の位置姿勢グループ及び前記第２の位置姿勢グループの全位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して基本校正値を算出する基本校正値算出工程を備え、
前記第１の校正値算出工程は、
前記制御装置が、前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して前記基本校正値に対する第１の補正値を算出する第１の補正値算出工程と、
前記制御装置が、前記第１の補正値及び前記基本校正値から前記第１の校正値を算出する第１の演算工程と、を備え、
前記第２の校正値算出工程は、
前記制御装置が、前記第２の位置姿勢グループの全位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して前記基本校正値に対する第２の補正値を算出する第２の補正値算出工程と、
前記制御装置が、前記第２の補正値及び前記基本校正値から前記第２の校正値を算出する第２の演算工程と、を備える、
ことを特徴とする請求項６乃至８のいずれか１項に記載のロボットシステムの制御方法。
【請求項１０】
前記ワークに組み付け可能な組付け用ワークが前記エンドエフェクタに把持されると共に、前記多関節アームを支持する基台に前記ワークが支持され、
前記制御装置が、前記組付け用ワークを前記視覚センサに計測させる組付け用ワーク計測工程と、
前記制御装置が、前記組付け用ワークの計測値及び前記ワークの計測値を、前記第１の校正値及び前記第２の校正値を利用して、前記視覚センサの座標系から前記ロボット本体の座標系に座標変換する組付け座標変換工程と、
前記制御装置が、座標変換した前記組付け用ワークの計測値及び前記ワークの計測値を利用して、前記組付け用ワークを前記ワークに対して組み付けるように前記ロボット本体を移動させる指令値を算出する組付け指令値算出工程と、を備える、
ことを特徴とする請求項６乃至９のいずれか１項に記載のロボットシステムの制御方法。
【請求項１１】
請求項６乃至１０のいずれか１項に記載のロボットシステムの制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のロボットシステムの制御方法の各工程をコンピュータに実行させるためのプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の関節が制御されることにより駆動する多関節アーム及び視覚センサを利用するロボットシステム及びロボットシステムの制御方法に関する。
【背景技術】
【０００２】
従来、垂直多関節アーム及びエンドエフェクタ（以下、ロボット本体という）と、これらを制御する制御装置とを備え、アームの先端部に視覚センサ（以下、カメラともいう）を取り付けたロボット装置が普及している。このロボット装置では、カメラによりワーク等の対象物を計測し、計測結果から制御装置が対象物の位置姿勢を演算し、演算して得られた対象物の位置姿勢に基づいてロボット本体の位置姿勢を制御するようになっている。
【０００３】
一般に、カメラが基準とする計測座標系と、ロボット本体が基準とする動作座標系とは異なっているので、カメラの計測値からロボット本体の動作目標値（指令値）を得るためには、カメラの計測値を計測座標系から動作座標系に座標変換する必要がある。この座標変換を行うためには、事前に計測座標系と動作座標系との校正作業を行い、校正値（座標変換式）を求めておく必要がある。
【０００４】
この校正作業の例としては、例えば、ロボット本体に複数の位置姿勢を順次取らせながら、各々の位置姿勢においてカメラにより校正用基準部材を計測する所謂ハンドアイキャリブレーション方法が知られている（特許文献１及び非特許文献１参照）。この方法では、ロボット本体の各位置姿勢におけるロボット本体の先端部への指令値と、カメラからの校正用基準部材の計測値との関係から、残差が最小となるように動作座標系と計測座標系との関係を求め、校正値を得ている。
【０００５】
また、校正作業の他の例として、例えば、カメラが基準ワークを計測し、この基準ワークに対して作業者がティーチングペンダント等を用いてロボット本体をアプローチさせる方法が知られている（特許文献２参照）。この方法では、カメラによる基準ワークの計測後、ロボット本体を基準ワークにアプローチさせ、カメラで得られた計測値とロボット本体への指令値との関係を求め、計測座標系と動作座標系との校正値を得ている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−０６３３１７号公報
【特許文献２】特開平６−２０６１８６号公報
【非特許文献】
【０００７】
【非特許文献１】Hand-Eye Calibration  (Radu Horaud and FadiDornaika, 1995)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された座標校正方法はロボット本体の動作誤差を考慮したものではなかったが、実際にはアームでの機械誤差や撓み等に起因して動作誤差が発生する。一方で、実際の使用時にはワークを計測する際の計測精度を重視したロボット本体の計測位置姿勢と、ロボット本体の実際の作業時の作業位置姿勢とが、大きく異なっている場合がある。前述したロボット本体の動作誤差はロボット本体の位置姿勢に大きく依存するため、このような場合は、特に座標校正を行っても精度を十分に向上することは困難であった。
【０００９】
このようなロボット本体の位置姿勢誤差は、特許文献２に記載された座標校正方法のように、作業者がロボット本体に実際の作業位置姿勢を教示する方法によれば、ある程度は抑制することができる。しかしながら、特許文献２に記載された座標校正方法では、作業者による教示作業を要するため、自動化された作業に比べ座標合わせのための作業時間が長く必要であり、また校正値の精度が作業者の熟練度合いに依存してばらつく虞があった。
【００１０】
本発明は、視覚センサを有するロボットにおいて座標変換の校正値を求める際に、人手による教示作業を不要にし、かつ座標校正の精度を向上できるロボットシステム及びロボットシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のロボットシステムは、多関節アームと、前記多関節アームに支持されたエンドエフェクタと、を有するロボット本体と、前記ロボット本体に設けられた視覚センサと、前記ロボット本体の位置姿勢を制御し、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備え、前記制御装置は、前記ロボット本体の第１の基準位置姿勢と、前記第１の基準位置姿勢を囲む第１のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第１の位置姿勢グループの各位置姿勢で、前記視覚センサにより基準部材を計測させ、前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第１の校正値を算出し、前記第１の基準位置姿勢とは異なる前記ロボット本体の第２の基準位置姿勢と、前記第２の基準位置姿勢を囲むと共に、前記第１のオフセット範囲とは離隔する又は一部が前記第１のオフセット範囲に重なり別の一部が前記第１のオフセット範囲に重ならない第２のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第２の位置姿勢グループの各位置姿勢で、前記視覚センサにより前記基準部材を計測させ、前記第２の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第２の校正値を算出し、前記視覚センサにより前記ワークを計測させ、前記第１の校正値及び前記第２の校正値を利用して、前記ロボット本体を動作させることを特徴とする。
【００１２】
また、本発明は、多関節アームと、前記多関節アームに支持されたエンドエフェクタと、を有するロボット本体と、前記ロボット本体に設けられた視覚センサと、前記ロボット本体の位置姿勢を制御し、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備えたロボットシステムの制御方法において、前記制御装置が、前記ロボット本体の第１の基準位置姿勢と、前記第１の基準位置姿勢を囲む第１のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第１の位置姿勢グループの各位置姿勢で、前記視覚センサにより基準部材を計測させる第１の計測工程と、前記制御装置が、前記第１の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第１の校正値を算出する第１の校正値算出工程と、前記制御装置が、前記第１の基準位置姿勢とは異なる前記ロボット本体の第２の基準位置姿勢と、前記第２の基準位置姿勢を囲むと共に、前記第１のオフセット範囲とは離隔する又は一部が前記第１のオフセット範囲に重なり別の一部が前記第１のオフセット範囲に重ならない第２のオフセット範囲内にある前記ロボット本体の位置姿勢と、を含む第２の位置姿勢グループの各位置姿勢で、前記視覚センサにより前記基準部材を計測させる第２の計測工程と、前記制御装置が、前記第２の位置姿勢グループの各位置姿勢における前記視覚センサによる前記基準部材の計測値を利用して第２の校正値を算出する第２の校正値算出工程と、前記制御装置が、前記視覚センサにより前記ワークを計測させるワーク計測工程と、前記制御装置が、前記第１の校正値及び前記第２の校正値を利用して、前記ロボット本体を動作させる動作工程と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、少なくとも２つの位置姿勢グループの各位置姿勢からそれぞれ校正値を算出し、これら少なくとも２つの校正値を利用してロボット本体を動作させるようにしている。複数の位置姿勢グループから算出される複数の校正値を用いることができるので、ワークの計測位置姿勢を中心に算出される１つの校正値を用いる場合に比べ、座標校正の精度を向上することができ、ロボット本体の動作における位置姿勢の制御の精度を向上できる。また、人手による教示作業は不要であるので、校正作業の長時間化や作業者の熟練度による精度のばらつきを抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係るロボットシステムの概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るロボットシステムで座標校正を行う際の処理手順を示すフローチャートである。
【図３】本発明の第１実施形態に係るロボットシステムの計測位置姿勢グループと作業位置姿勢グループとの各位置姿勢を示す説明図である。
【図４】本発明の第１実施形態に係るロボットシステムの説明図であり、（ａ）は基準計測位置姿勢、（ｂ）は基準作業位置姿勢を示す。
【図５】各位置姿勢グループでの位置姿勢オフセットの例を示す表である。
【図６】本発明の第１実施形態に係るロボットシステムにより基本校正値を算出する際のロボット本体の位置姿勢を示す説明図である。
【図７】本発明の第１実施形態に係るロボットシステムにより基本校正値の残差を算出する際のロボット本体の位置姿勢を示す説明図である。
【図８】本発明の第１実施形態に係るロボットシステムによりワークを把持する際のロボット本体の位置姿勢を示す説明図であり、（ａ）はカメラによる計測時、（ｂ）は補正無でのロボット本体の移動時、（ｃ）は補正有りでのロボット本体の移動時である。
【図９】本発明の第２実施形態に係るロボットシステムに用いられる組付け用ワーク及びワークを示す説明図である。
【図１０】本発明の第２実施形態に係るロボットシステムで座標校正を行う際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１６】
［第１実施形態］
本実施形態のロボットシステム１の説明に先立って、本明細書中での数式表現の定義について説明する。本明細書中では、ロボットシステム１を構成する多関節アーム２０、ハンド２１、カメラ３、ワーク６等について、６自由度の位置姿勢を３次元の座標系により表すと共に、任意の２つの座標系の相対位置姿勢を座標変換行列（同次変換行列）によって表現する。
【００１７】
まず、任意の座標系Ａから任意の座標系Ｂに向かう相対位置姿勢を表す座標変換行列をＡＨＢと記述し、その座標変換行列が示す相対位置姿勢を相対位置姿勢ＡＨＢとも記述する。例えば、本実施形態では、図１に示すように、後述するロボット座標系Ｒを基準とする手先座標系Ｔの相対位置姿勢をＲＨＴで示し、また後述するカメラ座標系Ｖを基準とするワーク座標系Ｗの相対位置姿勢をＶＨＷで示す。
【００１８】
相対位置姿勢ＡＨＢは、回転行列Ｒｏｔ及び並進ベクトルｔを用いて、数式１のように定義される。
【００１９】
【数１】
2014151427.tif 000003
【００２０】
数式１において、回転行列Ｒｏｔは３次元の回転を表す３×３の行列であり、並進ベクトルｔは３×１の３次元ベクトルである。並進の移動量のＸ，Ｙ，Ｚ成分をそれぞれｔｘ,ｔｙ,ｔｚと表し、ＸＹＺ各軸回りの回転成分をθｘ, θｙ, θｚで表すと、回転行列Ｒｏｔは数式２のように定義されると共に、並進ベクトルｔは数式３のように定義される。
【００２１】
【数２】
2014151427.tif 000004
【００２２】
【数３】
2014151427.tif 000005
【００２３】
なお、数式２では、ＸＹＺ各軸回りの回転成分を表す回転行列を、それぞれＲｏｔｘ，Ｒｏｔｙ，Ｒｏｔｚとしている。
【００２４】
次に、座標変換行列の性質として、任意の座標系Ａ，Ｂ，Ｃに対して、数式４が成立する。
【００２５】
【数４】
2014151427.tif 000006
【００２６】
即ち、座標系Ａに対する座標系Ｂの相対位置姿勢ＡＨＢと座標系Ｂに対する座標系Ｃの相対位置姿勢ＢＨＣとを乗算することにより、座標系Ａに対する座標系Ｃの相対位置姿勢ＡＨＣを求めることができる。
【００２７】
また、座標系Ｂに対する座標系Ａの相対位置姿勢ＢＨＡを求めるためには、数式５のように逆行列を算出する。
【００２８】
【数５】
2014151427.tif 000007
【００２９】
また、並進の移動量及び各軸回りの回転成分からなるベクトル（ｔｘ，ｔｙ，ｔｚ，θｘ，θｙ，θｚ）から座標変換行列ＡＨＢを求めるには、本来は数式１〜数式３を用いて表示する必要がある。これに対し、本明細書中では、簡易にＨ（ｔｘ，ｔｙ，ｔｚ，θｘ，θｙ，θｚ）を用いて数式６に表すようにする。
【００３０】
【数６】
2014151427.tif 000008
【００３１】
同様に、座標変換行列ＡＨＢから並進の移動量及び各軸回りの回転成分からなるベクトル（ｔｘ，ｔｙ，ｔｚ，θｘ，θｙ，θｚ）を求める逆変換式についても、数式１〜数式３を用いた表示にせずに、ｐｏｓｅ（ＡＨＢ）として数式７に表すようにする。
【００３２】
【数７】
2014151427.tif 000009
（但し、−１８０［ｄｅｇ］＜θｘ，θｙ，θｚ＜１８０［ｄｅｇ］）
【００３３】
ｐｏｓｅ（ＡＨＢ）の変換において、θｙ＝±９０［ｄｅｇ］の場合は解が一意に求まらないが、その場合には複数存在する解のうち１つが算出されるものとする。尚、本実施形態では、座標変換行列の対象範囲はロボット本体２の動作誤差程度の小さい角度範囲であるので、θｙ＝±９０［ｄｅｇ］になる場合は稀であり、上述した解が一意に求まらない場合の影響は極めて小さい。
【００３４】
次に、本実施形態に係るロボットシステム１について説明する。
【００３５】
図１に示すように、ロボットシステム１は、多関節アーム２０及びハンド（エンドエフェクタ）２１を有するロボット本体２と、該ロボット本体２に設けられた単眼のカメラ（視覚センサ）３と、ロボット本体２の位置姿勢を制御する制御装置４と、を備えている。
【００３６】
多関節アーム２０（以下、アームという）は、基台５に固定されており、基台５には該基台５を基準にしてアーム２０の位置姿勢を表すロボット座標系Ｒが設定されている。また、基台５には、ワーク６が載置されるようになっており、ワーク６には該ワーク６を基準にしてワーク座標系Ｗが設定されている。
【００３７】
アーム２０としては、７つのリンクと、各リンクを揺動又は回動可能に連結する６つの関節とを備える６軸の垂直多関節アーム２０を適用している。本実施形態では６軸の垂直多関節アーム２０を適用しているが、これに限らず、軸数は用途や目的に応じて適宜変更してもよい。
【００３８】
各関節には、各関節を各々駆動するモータあるいは必要に応じて直動アクチュエータが、出力機器として設けられている。各関節には、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節のトルクを検知するトルクセンサとが、入力機器として設けられている。
【００３９】
アーム２０は、制御装置４のロボット制御部４４から出力される指令値により各関節を駆動して、ハンド２１の位置姿勢を調整するようになっている。ロボット制御部４４は、ロボット座標系Ｒを基準とする後述する手先座標系Ｔの相対位置姿勢ＲＨＴの目標値に対して、アーム２０の各関節の取るべき角度を計算し、各関節に対して指令値を出力するようになっている。また、ロボット制御部４４は、エンコーダから各関節の現在角度情報を取得し、後述する現在の手先座標系Ｔの相対位置姿勢ＲＨＴを算出可能になっている。
【００４０】
アーム２０の先端部にはハンド２１が支持されており、該ハンド２１は、アーム２０の動作により位置姿勢が調整されると共に、ワーク６を把持可能な例えば３本の指を備えている。ハンド２１には、該ハンド２１を基準にして手先座標系Ｔが設定されている。本実施形態では、エンドエフェクタとしてワーク６を把持可能なハンド２１が適用されている。しかしながら、これには限らず、例えば把持以外の手段でワーク６を保持する機構や、ワーク６に加工を施す工具等、ワーク６に対して作業可能なエンドエフェクタの全般を含めることができる。
【００４１】
また、アーム２０の先端部あるいはハンド２１にはカメラ３が支持されており、該カメラ３は制御装置４のカメラ制御部４５からの指令を受けて撮像し、画像データをカメラ制御部４５に送信するようになっている。カメラ３には、光軸方向及び撮像視野の縦横方向を基準にしてカメラ座標系（視覚センサの座標系）Ｖが設定されている。本実施形態では、カメラ３は、光軸がハンド２１の長軸方向に対して約４５度を形成してハンド２１の先端を向くように設けられている。
【００４２】
ロボット本体２に接続された制御装置４は、コンピュータにより構成され、ロボット本体２を制御するようになっている。制御装置４を構成するコンピュータは、例えばＣＰＵ４０と、各部を制御するためのプログラムを記憶するＲＯＭ４１と、データを一時的に記憶するＲＡＭ４２と、ロボット本体２に通信可能にする入出力インターフェース回路（Ｉ／Ｆ）４３とを備えている。
【００４３】
ＣＰＵ４０は、上述のロボット制御部４４と、カメラ制御部４５と、ワーク位置姿勢計算部４６と、校正値算出部４７とを備えている。
【００４４】
カメラ制御部４５は、カメラ３が取得した画像データを制御装置４のワーク位置姿勢計算部４６に送信し、該ワーク位置姿勢計算部４６は、受信した画像データに基づき画像処理を行ってワーク６の位置姿勢を算出するようになっている。ここで算出される出力値は、カメラ座標系Ｖを基準とするワーク座標系Ｗの位置姿勢ＶＨＷに相当するデータである。
【００４５】
ワーク位置姿勢計算部４６は、処理結果を校正値算出部４７に送信する。校正値算出部４７は、ロボット制御部４０から取得した手先座標系Ｔにおけるハンド２１の位置姿勢ＲＨＴと、ワーク位置姿勢計算部４６から取得したワーク座標系Ｗにおけるワーク６の位置姿勢ＶＨＷとに基づき、校正値を算出するようになっている。
【００４６】
上述したロボットシステム１により校正値を算出し、該校正値に基づき座標変換を行ってロボット本体２への指令値を算出し、ロボット本体２に指令値を出力してハンド２１をワーク６に移動させ把持させる手順を、図２に示すフローチャートに沿って説明する。
【００４７】
実際のワーク６により作業を行う前に校正値を得るために、ロボット本体２に複数の位置姿勢を取らせるよう、複数の位置姿勢グループの各位置姿勢（指令値）を、制御装置４に設定する（ステップＳ１〜Ｓ３）。ここでの各位置姿勢グループは、ロボット本体２の手先座標系Ｔの複数の位置姿勢を表す指令値ＲＨＴの集合であり、ｉ番目に設定する位置姿勢をＲＨＴ[i]と表すようにする。本実施形態では、複数の位置姿勢グループは、図３に示すように、計測位置姿勢グループ７及び作業位置姿勢グループ８と、その他１つの位置姿勢グループとしている。尚、ステップＳ６以降の処理において各校正値を得るために、ステップＳ１〜Ｓ３では位置姿勢グループの数によらず合計で少なくとも３つの位置姿勢が設定されることが必要である。
【００４８】
まず、使用者は、ｉ＝１〜Ｎ（Ｎは１以上）のＮ個のロボット本体２の位置姿勢を、計測位置姿勢グループ（第１の位置姿勢グループ）７として任意に設定する（ステップＳ１）。計測位置姿勢グループ７は、基準計測位置姿勢（第１の基準位置姿勢）７ａと、該基準計測位置姿勢７ａを囲む所定の第１のオフセット範囲内にある周囲計測位置姿勢７ｂと、の各位置姿勢の集合とされている。
【００４９】
基準計測位置姿勢７ａは、後述する基準作業位置姿勢８ａよりもカメラ３がワーク６に正対する位置姿勢であり、カメラ３によりワーク６を計測する際の計測位置姿勢に近い任意の位置姿勢とする。具体的には、例えば、ロボット本体２を使用する制御プログラム等において設定された計測位置姿勢や、ワーク６の計測を行うように実際にロボット本体２を教示した計測位置姿勢を利用することができる。
【００５０】
カメラ３によりワーク６を計測する際の計測位置姿勢は、例えば、カメラ３がワーク６に正対して、ワーク６の特徴的な形状やマークに対して小さい誤差で計測可能な位置姿勢である。例えば、図４（ａ）に示すように、ワーク６が、矩形状の本体部６ａと円筒状の突起部６ｂとを有するとする。この場合は、計測位置姿勢は、例えば、突起部６ｂの突出方向とカメラ３の光軸とを一致させることにより、本体部６ａの回転方向の向きと突起部６ｂの位置とを同時に計測可能にする位置姿勢であることが好ましい。
【００５１】
周囲計測位置姿勢７ｂの基準計測位置姿勢７ａに対する第１のオフセット範囲は、基準計測位置姿勢７ａに対してロボット本体２を微調整し得る幅等を考慮して設定することが望ましい。例えば、図５に示す表のように、基準計測位置姿勢７ａの位置姿勢に対し、６自由度のそれぞれについてオフセット値を定め、周囲計測位置姿勢７ｂとして設定する。そして、各オフセット値を、制御装置４のＲＡＭ４２等に制御プログラム等として記述することにより、制御装置４に計測位置姿勢グループ７の各位置姿勢を設定するようにし、その範囲が第１のオフセット範囲となる。
【００５２】
この場合、例えば、実際にカメラ３からワーク６を計測しやすいように、ロボット本体２を動かして教示した基準計測位置姿勢７ａをＲＨＴＭPoseとする。ここで、基準計測位置姿勢７ａであるＲＨＴＭPoseからロボット本体２の位置姿勢を調整し得る調整幅が±２［ｍｍ］、±５［ｄｅｇ］程度であるとする。この場合は、所定の第１のオフセット範囲として、ＲＨＴＭPoseに±２［ｍｍ］、±５［ｄｅｇ］の範囲でオフセットを加えた複数の位置姿勢を、周囲計測位置姿勢７ｂとして設定する。
【００５３】
基準計測位置姿勢７ａであるＲＨＴＭPoseに対してオフセット値（dｘ[i]，dｙ[i]，dｚ[i]，dθｘ[i]，dθｙ[i]，dθｚ[i]）を加えた場合のｉ番目の位置姿勢ＲＨＴ[i]は、数式８のように示される。
【００５４】
【数８】
2014151427.tif 000010
（ｉ＝１，２，…，Ｎ）
【００５５】
尚、上述のように予め設定した第１のオフセット範囲を制御装置４に制御プログラム等として記憶させることには限らず、例えば、ティーチングペンダント等により実際にロボット本体２を動かして各位置姿勢をロボット制御部４０に教示するようにしてもよい。
【００５６】
次に、使用者は、ｉ＝Ｎ＋１〜ＭのＭ−Ｎ（Ｍ−Ｎは２以上）個のロボット本体２の位置姿勢を、作業位置姿勢グループ（第２の位置姿勢グループ）８として任意に設定する（ステップＳ２）。図３に示すように、作業位置姿勢グループ８は、基準作業位置姿勢（第２の基準位置姿勢）８ａと、該基準作業位置姿勢８ａを囲む所定の第２のオフセット範囲内にある周囲作業位置姿勢８ｂと、の各位置姿勢の集合とされている。
【００５７】
基準作業位置姿勢８ａは、基準計測位置姿勢７ａとは異なる位置姿勢であり、ここでは、基準計測位置姿勢７ａよりもハンド２１がワーク６に正対する位置姿勢で、ワーク６に作業を施す際の作業位置姿勢に近い任意の位置姿勢とする。具体的には、例えば、ロボット本体２を使用する制御プログラム等において設定されたロボット本体２の作業位置姿勢や、ワーク６に作業を施すよう実際にロボット本体２を教示した作業位置姿勢を利用することができる。
【００５８】
カメラ３によりワーク６に作業を施す際の作業位置姿勢は、例えば、ハンド２１がワーク６を把持する部位に正対して、ワーク６を把持可能になる位置姿勢である。例えば、図４（ｂ）に示すように、ワーク６が本体部６ａ及び突起部６ｂを有する場合は、作業位置姿勢は、ハンド２１が突起部６ｂを把持する位置姿勢とする。ここで、ハンド２１がワーク６の突起部６ｂを把持した際に、ハンド２１の手先座標系Ｔとワーク６のワーク座標系Ｗとが一致するように、手先座標系Ｔ及びワーク座標系Ｗを設定するようにする。
【００５９】
周囲作業位置姿勢８ｂの基準作業位置姿勢８ａに対する第２のオフセット範囲は、第１のオフセット範囲とは離隔する範囲、又は一部が第１のオフセット範囲に重なり別の一部が第１のオフセット範囲に重ならない範囲である。換言すると、第１のオフセット範囲と第２のオフセット範囲とは、重ならなくてもよく、あるいは一部重なっていてもよいが、お互い全て一致する関係ではなく、また一方が他方に全て含まれる関係でもない。
【００６０】
第２のオフセット範囲は、基台５に載置されたワーク６の取り得る位置姿勢誤差の範囲等を考慮して設定することが望ましい。例えば、図５に示す表のように、基準作業位置姿勢８ａの位置姿勢に対し、６自由度のそれぞれについてオフセット値を定め、周囲作業位置姿勢８ｂとして設定する。そして、各オフセット値を、制御装置４のＲＡＭ４２等に制御プログラム等として記述することにより、制御装置４に作業位置姿勢グループ８の各位置姿勢を設定するようにし、その範囲が第２のオフセット範囲となる。
【００６１】
この場合、例えば、設計上の理想位置にワーク６があるときのロボット本体２の基準作業位置姿勢８ａをＲＨＴＷPoseとする。ここで、基準作業位置姿勢８ａの周囲でのワーク６の位置姿勢誤差に応じてロボット本体２の動きを補正した際の手先座標系Ｔの変動幅が±５［ｍｍ］、±１０［ｄｅｇ］程度であるとする。この場合は、所定の第２のオフセット範囲として、ＲＨＴＷPoseに±５［ｍｍ］、±１０［ｄｅｇ］の範囲でオフセットを加えた複数の位置姿勢を、作業位置姿勢グループ８として設定する。
【００６２】
このように、第１のオフセット範囲及び第２のオフセット範囲は、例えば数［ｍｍ］及び数［ｄｅｇ］程度である。このため、各オフセット範囲は、計測位置姿勢グループ７及び作業位置姿勢グループ８同士の位置姿勢の差（数［ｃｍ］〜数十［ｃｍ］、数［ｄｅｇ］〜数十［ｄｅｇ］）に比べ、小さい変動範囲としている。
【００６３】
上述のように、第１のオフセット範囲及び第２のオフセット範囲は、基準計測位置姿勢７ａ及び基準作業位置姿勢８ａの位置姿勢の差に比べて狭く設定されている。即ち、高いに大きく離れた計測位置姿勢グループ７及び作業位置姿勢グループ８において、それぞれ狭い範囲で動作することで各々の補正値を演算している。これにより、例えば、計測位置姿勢グループ７の位置姿勢のみを利用して座標校正を行う場合に比べて、座標校正の精度を向上することができる。
【００６４】
基準作業位置姿勢８ａであるＲＨＴＷPoseに対してオフセット値（dｘ[i]，dｙ[i]，dｚ[i]，dθｘ[i]，dθｙ[i]，dθｚ[i]）を加えた場合のｉ番目の位置姿勢ＲＨＴ[i]は、数式９のように示される。
【００６５】
【数９】
2014151427.tif 000011
（ｉ＝Ｎ＋１，Ｎ＋２，…，Ｍ）
【００６６】
次に、使用者は、ｉ＝Ｍ＋１〜ＬのＬ−Ｍ（Ｌ−Ｍは１以上）個のロボット本体２の位置姿勢を、他の位置姿勢グループとして任意に設定する（ステップＳ３）。位置姿勢グループとして上述した計測位置姿勢グループ７及び作業位置姿勢グループ８の他にも位置姿勢グループを設定することにより、後述する基本校正値をより高精度に算出できるようになる。但し、計測位置姿勢グループ７及び作業位置姿勢グループ８の他にも位置姿勢グループを設定することには限らず、少なくとも２つの位置姿勢グループがあればよい。そのため、計測位置姿勢グループ７及び作業位置姿勢グループ８のみを設定してもよく、あるいは４つ以上の位置姿勢グループを設定してもよく、更には計測位置姿勢グループ７及び作業位置姿勢グループ８以外の２グループであってもよい。
【００６７】
次に、図３に示すように、各位置姿勢グループで設定した複数の位置姿勢をロボット本体２に取らせた際に、カメラ３から共通して計測できる共通の視野内に、校正プレート（基準部材）１０を設置する（ステップＳ４）。校正プレート１０は、例えば平板状で、表面に所定の寸法の円形パターン１０ａ，１０ｂが複数（３個以上）配置されて表示されており、カメラ３により６自由度の位置姿勢を計測できるようになっている。
【００６８】
校正プレート１０の複数の円形パターンのうち角部の１つだけは中空円形パターン１０ａであり、他は塗りつぶされた中実円形パターン１０ｂとしている。中空円形パターン１０ａの存在により全体として非点対称の配置になっており、校正プレート１０の６自由度の位置姿勢を一意に特定できるようになっている。また、校正プレート１０には、該校正プレート１０を基準にして校正プレート座標系Ｐが設定されている。
【００６９】
校正プレート１０の有するパターンとしては、円形パターンには限らず、例えば直線的な格子パターン等を用いてもよい。また、例えばステレオカメラ等、カメラ３により３次元の計測を行うことができる場合は、平板状の校正プレート１０に限らず、立体形状を有する物体を校正用の基準部材としてもよい。更には、例えば作業の対象とする実際のワーク６を基準部材として用いることもできる。
【００７０】
次に、各位置姿勢グループに設定した合計Ｌ個の位置姿勢について、ロボット制御部４４から指令値としてロボット本体２に出力し、図６に示すようにロボット本体２を順次位置決めする。そして、各位置姿勢においてカメラ３により校正プレート１０を計測し、その計測値をＲＡＭ４２に保存することを繰り返す（ステップＳ５、第１の計測工程、第２の計測工程）。この作業により得られる計測値は、ロボット本体２をｉ番目の位置姿勢に位置決めした際のカメラ座標系Ｖを基準とした校正プレート座標系Ｐの位置姿勢情報であり、その計測値をＶＨＰ[i]と表す。
【００７１】
位置姿勢ＲＨＴ[i]及び計測値ＶＨＰ[i]に基づいて、基本校正値として、カメラ座標系Ｖ及び手先座標系Ｔの関係ＶＨＴと、ロボット座標系Ｒ及び校正プレート座標系Ｐの関係ＲＨＰとを算出する（ステップＳ６、基本校正値算出工程）。カメラ３及びハンド２１の相対位置と、ロボット本体２及び校正プレート１０の相対位置とは各々固定されているため、上記ＶＨＴ及びＲＨＰは、ロボット本体２の位置姿勢によらず一定である。このため、カメラ３の計測誤差とロボット本体２の動作誤差とが無い場合、各位置姿勢について数式１０が成り立つ。
【００７２】
【数１０】
2014151427.tif 000012
（ｉ＝１，２，…，Ｌ）
【００７３】
全Ｌ個の位置姿勢についてデータを取得すると、数式１０をＬ本連立することができる。実際に得られるデータには計測誤差及び動作誤差があるため、誤差最小化計算によりＬ組のデータに対する誤差（残差）が最小となるＶＨＴ及びＲＨＰの値を算出し、これを基本校正値として得ることができる。ここで算出した基本校正値をＶＨＴcal及びＲＨＰcalと示す。尚、基本校正値ＶＨＴcal及びＲＨＰcalの算出方法については、公知のハンドアイキャリブレーション方法（例えば、非特許文献１参照）と同様であるため、詳細な説明は省略する。
【００７４】
ステップＳ６で求めた基本校正値ＶＨＴcal，ＲＨＰcalは、Ｌ個の位置姿勢の全体に対する誤差評価値が最小になるように求めているが、一般的にロボット本体２の動作には少なくとも１自由度の誤差が加わっているため、位置姿勢誤差は０にはならない。そこで、計測位置姿勢グループ７及び作業位置姿勢グループ８に属するＭ個の位置姿勢について、基本校正値に残存する誤差である残差を算出する（ステップＳ７）。
【００７５】
図７に示す誤差を考慮した各座標系の配置を参照しつつ、残差の算出手順を説明する。空間（基台５）に対して固定された校正プレート座標系Ｐを基準にすると、ロボット本体２に指令値ＲＨＴ[i]を与えた際、基本校正値ＲＨＰcalから予測される校正プレート座標系Ｐ及び手先座標系Ｔの関係ＰＨＴpredict[i]は数式１１で示される。
【００７６】
【数１１】
2014151427.tif 000013
（ｉ＝１，２，…，Ｍ）
【００７７】
また、カメラ３により計測される校正プレート座標系Ｐ及び手先座標系Ｔの関係ＰＨＴmeasure[i]は数式１２により示される。
【００７８】
【数１２】
2014151427.tif 000014
（ｉ＝１，２，…，Ｍ）
【００７９】
ロボット本体２の動作には少なくとも１自由度の誤差が存在するため、ＰＨＴpredict[i]及びＰＨＴmeasure[i]は厳密には一致しない。予測に対して誤差を持って移動した手先座標系をＴ’と記述すると、基本校正値の残差は手先誤差ＴＨＴ’err[i]として数式１３のように算出される。
【００８０】
【数１３】
2014151427.tif 000015
（ｉ＝１，２，…，Ｍ）
【００８１】
手先誤差ＴＨＴ’err[i]はロボット本体２の位置姿勢に対して連続的に変化するので、ロボット本体２の位置姿勢が近ければ、比較的近い手先誤差ＴＨＴ’err[i]になると考えられる。そこで、各位置姿勢グループ７，８における代表的な手先誤差ＴＨＴ’err[i]を求めるようにする。
【００８２】
まず、計測位置姿勢グループ７における代表的な手先誤差ＴＨＴ’ＭPoseを、基本校正値に対する計測補正値（第１の補正値）として算出する（ステップＳ８、第１の補正値算出工程）。計測補正値ＴＨＴ’ＭPoseの算出方法としては、手先誤差ＴＨＴ’err[i]及び計測補正値ＴＨＴ’ＭPoseの差が大きくなるほど大きくなる残差評価値Ｆを設定し、その残差評価値Ｆが最小となるように計測補正値ＴＨＴ’ＭPoseを定める。残差評価値Ｆの定義方法は限定されない。具体的には、例えば残差評価値Ｆとして、数式１４の定義を用いることができる。
【００８３】
【数１４】
2014151427.tif 000016
【００８４】
また、数式１４に限らず、例えば数式１５の定義を用いてもよい。
【００８５】
【数１５】
2014151427.tif 000017
【００８６】
数式１５の場合、ｐｏｓｅ（ＴＨＴ’ＭPose）の各成分がｐｏｓｅ（ＴＨＴ’err[i]）の各成分の平均値となるように計測補正値ＴＨＴ’ＭPoseを決定することになるため、残差評価値Ｆの算出は容易である。
【００８７】
数式１４及び数式１５のいずれの場合も、数式１６のように、残差評価値Ｆが最小となる時の計測補正値ＴＨＴ’ＭPoseを、計測位置姿勢グループ７の代表的な計測補正値（誤差値）として用いるようにする。
【００８８】
【数１６】
2014151427.tif 000018
【００８９】
次に、作業位置姿勢グループ８における代表的な誤差値ＴＨＴ’ＷPoseを、基本校正値に対する作業補正値（第２の補正値）として算出する（ステップＳ９、第２の補正値算出工程）。作業補正値ＴＨＴ’ＷPoseの算出方法としては、手先誤差ＴＨＴ’err[i]及び作業補正値ＴＨＴ’ＷPoseの差が大きくなるほど大きくなる残差評価値Ｇを設定し、残差評価値Ｇが最小となるように作業補正値ＴＨＴ’ＷPoseを定める。残差評価値Ｇの定義方法は限定されない。具体的には、例えば残差評価値Ｇとして、数式１７の定義を用いることができる。
【００９０】
【数１７】
2014151427.tif 000019
【００９１】
この場合、ｐｏｓｅ（ＴＨＴ’ＷPose）の各成分がｐｏｓｅ（ＴＨＴ’err[i]）の各成分の平均値となるように作業補正値ＴＨＴ’ＷPoseを決定することとなるため、残差評価値Ｇの算出は容易である。そして、数式１８のように、残差評価値Ｇが最小となる時の作業補正値ＴＨＴ’ＷPoseを、作業位置姿勢グループ８の代表的な作業補正値（誤差値）として用いるようにする。
【００９２】
【数１８】
2014151427.tif 000020
【００９３】
制御装置４は、校正パラメータとして基本校正値と、計測補正値と、作業補正値とを上述のように取得した後、実際のワーク６を計測する。図８に示すように、ロボット本体２を計測位置姿勢ＲＨＴＭPoseに位置させてワーク６をカメラ３により計測し、ロボット本体２の移動によりワーク座標系Ｗに手先座標系Ｔを一致させてハンド２１にワーク６を把持させる場合について説明する。
【００９４】
まず、図８（ａ）に示すように、ロボット制御部４４がロボット本体２を計測位置姿勢ＲＨＴＭPoseに移動させる。そして、カメラ制御部４５がカメラ３にワーク６を計測させ、ワーク位置姿勢計算部４６が計測値ＶＨＷmeasureを得る（ステップＳ１０、ワーク計測工程）。
【００９５】
そして、ロボット制御部４０は、基本校正値と、計測補正値と、作業補正値とを利用して、計測値ＶＨＷmeasureをカメラ座標系Ｖからロボット座標系Ｒに座標変換すると共に、指令値を算出する（ステップＳ１１）。ここでは、以下の手順により実行する。
【００９６】
まず、ロボット本体２に誤差が無ければ、ロボット座標系Ｒにおけるワーク６の位置姿勢は、ＲＨＴＭPose・（ＶＨＴcal）−１・ＶＨＷmeasureとなる。しかしながら、ロボット本体２の実際の位置姿勢には、計測位置姿勢グループ７の計測補正値ＴＨＴ’ＭPoseが誤差として乗っているので、ロボット座標系Ｒにおけるワーク６の位置姿勢ＲＨＷmeasureは、数式１９で示すようになる。
【００９７】
【数１９】
2014151427.tif 000021
【００９８】
次に、ロボット座標系Ｒにおけるワーク６の位置姿勢ＲＨＷmeasureに基づいて、ハンド２１をワーク６に接近させるようにする。図８（ｂ）に示すように、ＲＨＷmeasureをそのまま指令値としてロボット本体２を制御した場合、ロボット本体２には作業位置姿勢グループ８の作業補正値ＴＨＴ’ＷPoseが誤差として乗っている。このため、ロボット本体２は作業補正値ＴＨＴ’ＷPoseが誤差として乗った位置（図中、実線で示す）に移動する。そこで、ロボット制御部４０は、手先座標系Ｔをワーク座標系Ｗに高精度に一致させるために、ワーク６の位置姿勢ＲＨＷmeasureに作業補正値ＴＨＴ’ＷPoseの逆変換を乗算する。そして、ロボット制御部４０は、ロボット本体２に送信するべき指令値ＲＨＴＷCorrectを数式２０のように求める。
【００９９】
【数２０】
2014151427.tif 000022
【０１００】
数式２０に数式１９を代入することで、数式２１に示すように各校正パラメータを含んだ最終的な指令値ＲＨＴＷCorrectを得ることができる。尚、本実施形態では、座標変換工程と、指令値算出工程と、計測校正値を算出する第１の演算工程と、作業校正値を算出する第２の演算工程とを数式２１の演算により実行するようにしている。
【０１０１】
【数２１】
2014151427.tif 000023
【０１０２】
尚、数式２１では、基本校正値と、計測補正値と、作業補正値とをそのまま利用して指令値を算出している。ここで、基本校正値及び計測補正値から計測校正値（第１の校正値）を算出すると共に、基本校正値及び作業補正値から作業校正値（第２の校正値）を算出するように置き換えることもできる。即ち、数式２１は、計測校正値及び作業校正値の２つの校正値を利用して指令値を算出するものと置き換えることができる。
【０１０３】
そして、ワーク６に対して作業を行う際には、計測値ＶＨＷmeasureと各校正パラメータとに基づいて、ロボット制御部４４がロボット本体２に新たな指令値を算出し、ロボット本体２を作動させる。図８（ｃ）に示すように、ロボット制御部４０は、数式２１により演算を行って指令値ＲＨＴＷCorrectを算出し、該指令値ＲＨＴＷCorrectをロボット本体２に出力しワーク６へのアプローチを実行させる（ステップＳ１２、動作工程）。これにより、各位置姿勢グループにおける誤差を打ち消して、ハンド２１にワーク６へのアプローチを高精度に行わせ、手先座標系Ｔとワーク座標系Ｗとを高精度に一致させ、ハンド２１によるワーク６の把持を高精度に実現することができる。
【０１０４】
上述したように本実施形態のロボットシステム１によれば、３つの位置姿勢グループの全位置姿勢から基本校正値を算出し、そのうち計測位置姿勢グループ７及び作業位置姿勢グループ８からそれぞれ補正値を算出する。そして、基本校正値、計測補正値、作業補正値を利用して、座標校正を行って指令値を算出しているので、計測位置姿勢グループ７の位置姿勢のみを利用して座標校正を行う場合に比べて、座標校正の精度を向上することができる。これにより、ロボット本体２の動作における位置姿勢の制御の精度を向上できる。
【０１０５】
また、計測校正値及び作業校正値の２つの校正値を利用して指令値を算出するよう置き換えた場合でも、複数の校正値を用いて校正できるので、例えば計測位置姿勢を中心に算出される１つの校正値を用いる場合に比べて、座標校正の精度を向上することができる。
【０１０６】
また、本実施形態のロボットシステム１によれば、図５に示す表のように予めオフセット値を定めて制御装置４に設定しておき、その全位置姿勢についてカメラ３により校正プレート１０を撮影している。このため、校正プレート１０の撮影から校正値の算出までの作業を自動化することができるので、ロボット本体２を計測位置姿勢から作業位置姿勢まで作業者が教示させる場合に比べて、作業時間を短縮でき、得られる校正値の精度のばらつきを抑制できる。
【０１０７】
尚、上述した数式２１では、基本校正値と、計測補正値と、作業補正値とをそのまま利用して指令値を算出している。但し、これに限らず、基本校正値及び計測補正値から計測校正値（第１の校正値）を算出すると共に、基本校正値及び作業補正値から作業校正値（第２の校正値）を算出し、これら計測校正値及び作業校正値の２つの校正値を利用して指令値を算出することもできる。
【０１０８】
この場合、基本校正値を算出するステップＳ６と、残差計算を行うステップＳ７と、計測補正値を算出するステップＳ８と、計測校正値を算出するステップＳ１１とが、第１の校正値算出工程となる。また、基本校正値を算出するステップＳ６と、残差計算を行うステップＳ７と、作業補正値を算出するステップＳ９と、作業校正値を算出するステップＳ１１とが、第２の校正値算出工程となる。２つの位置姿勢グループ７，８から算出される複数の校正値を用いて校正することができるので、例えば計測位置姿勢を中心に算出される１つの校正値を用いる場合に比べて、座標校正の精度を向上することができる。
【０１０９】
［第２実施形態］
次に、本発明の第２実施形態に係るロボットシステム１について説明する。このロボットシステム１のハード構成については第１実施形態と同様であるので、第１実施形態と同一符号を付して説明を省略する。
【０１１０】
本実施形態では、図９に示すように、第１実施形態で使用したワーク６に対して組み付けられる組付け用ワーク１６を使用する。組付け用ワーク１６には、該組付け用ワーク１６を基準にして把持物座標系Ｓが設定されている。
【０１１１】
上述した第２実施形態のロボットシステム１で、組付け用ワーク１６をワーク６に嵌合するようロボット本体２を移動させるため、把持物座標系Ｓをワーク座標系Ｗに一致させる手順を、図１０に示すフローチャートに沿って説明する。尚、基本校正値と、計測補正値と、作業補正値とは、第１実施形態と同様の手順により取得しているものとする。
【０１１２】
まず、ハンド２１に組付け用ワーク１６を把持させ、カメラ制御部４５がカメラ３により組付け用ワーク１６を計測する（ステップＳ２１、組付け用ワーク計測工程）。ハンド２１による組付け用ワーク１６の把持状態が一定であれば、手先座標系Ｔと把持物座標系Ｓは一体に移動するため、カメラ３による組付け用ワーク１６の計測はロボット本体２の任意の位置姿勢で行うことができる。
【０１１３】
この計測により、ワーク位置姿勢計算部４６がカメラ座標系Ｖにおける組付け用ワーク１６の位置姿勢ＶＨＳmeasureを求め、基本校正値ＶＨＴcalを用いて手先座標系Ｔと把持物座標系Ｓとの相対姿勢ＴＨＳmeasureを数式２２により求める。
【０１１４】
【数２２】
2014151427.tif 000024
【０１１５】
次に、ロボット本体２を計測位置姿勢まで移動してカメラ３によりワーク６を計測し（ステップＳ２２、ワーク計測工程）、ロボット座標系Ｒにおけるワーク６の位置姿勢ＲＨＷmeasureを求める。ここでの計測は第１実施形態のステップＳ１０と同様であり、また位置姿勢ＲＨＷmeasureは、数式１９と同様に計測補正値ＴＨＴ’ＭPoseを考慮して、数式２３により算出される。
【０１１６】
【数２３】
2014151427.tif 000025
【０１１７】
そして、ロボット制御部４０は、基本校正値と、計測補正値と、作業補正値とを利用して、計測値ＶＨＳmeasure及び計測値ＶＨＷmeasureをカメラ座標系Ｖからロボット座標系Ｒに座標変換すると共に、指令値を算出する（ステップＳ２３）。ここでは、以下の手順により実行する。
【０１１８】
まず、手先座標系Ｔと把持物座標系Ｓとの関係を考慮して、把持物座標系Ｓをワーク座標系Ｗに重ねるために、手先座標系Ｔを移動させるべき目標位置姿勢ＲＨＴtargetを数式２４により求める。
【０１１９】
【数２４】
2014151427.tif 000026
【０１２０】
数式２４に数式２２及び数式２３を代入することで、数式２５に示すように目標位置姿勢ＲＨＴtargetを得ることができる。
【０１２１】
【数２５】
2014151427.tif 000027
【０１２２】
ただし、実際に手先座標系Ｔを持っていくべき目標位置姿勢ＲＨＴtargetを指令値にすると、作業補正値ＴＨＴ’ＷPoseが誤差として乗る。このため、ロボット本体２の手先座標系ＴをＲＨＴtargetに移動させるために、ロボット本体２に送信すべき指令値ＲＨＴＷCorrect２は、誤差である作業補正値ＴＨＴ’ＷPoseを打ち消すよう数式２６で示されるようになる。
【０１２３】
【数２６】
2014151427.tif 000028
【０１２４】
数式２６に数式２５を代入することで、数式２７に示すように校正値を含んだ最終的な指令値ＲＨＴtargetを得ることができる。尚、本実施形態では、組付け座標変換工程と、組付け指令値算出工程と、第１の演算工程と、第２の演算工程とを数式２７の演算により実行するようにしている。
【０１２５】
【数２７】
2014151427.tif 000029
【０１２６】
尚、数式２７では、基本校正値と、計測補正値と、作業補正値とをそのまま利用して指令値を算出している。ここで、第１実施形態と同様に、基本校正値及び計測補正値から計測校正値を算出すると共に、基本校正値及び作業補正値から作業校正値を算出するように置き換えることもできる。即ち、数式２７は、計測校正値及び作業校正値の２つの校正値を利用して指令値を算出するものと置き換えることができる。
【０１２７】
そして、組付け用ワーク１６をワーク６に組み付ける際には、計測値ＴＨＳmeasure及び計測値ＶＨＷmeasureと各校正パラメータとに基づいて、ロボット制御部４４がロボット本体２に新たな指令値を算出し、ロボット本体２を作動させる。ロボット制御部４０は、数式２７により演算を行って指令値ＲＨＴＷCorrect２を算出し、該指令値ＲＨＴＷCorrect２をロボット本体２に出力し組付け用ワーク１６をワーク６に移動させる（ステップＳ２４、動作工程）。これにより、各位置姿勢グループにおける誤差を打ち消して、組付け用ワーク１６にワーク６へのアプローチを高精度に行わせ、把持物座標系Ｓとワーク座標系Ｗとを高精度に一致させ、組付け用ワーク１６のワーク６への組付作業を高精度に実現することができる。
【０１２８】
上述したように本実施形態のロボットシステム１によれば、組付け用ワーク１６及びワーク６の両方に対して計測を行っている。そのため、組付け用ワーク１６及びワーク６の両方の位置姿勢が高頻度にばらつく場合であっても、人手による調整を行わずに高精度な組付けを行うことができる。
【０１２９】
ここで、本実施形態のロボットシステム１では、ハンド２１に把持させた組付け用ワーク１６をワーク６にアプローチさせる場合について説明した。しかしながら、これに限らず、エンドエフェクタとしてアーム２０の先端に取り付けられたドリル等の工具をワーク６にアプローチさせるようにしてもよい。
【０１３０】
また、第１実施形態及び第２実施形態のロボットシステム１では、視覚センサとして単眼のカメラ３を使用した場合について説明した。しかしながら、これには限らず、例えば、ステレオカメラを利用したり、あるいはレーザスキャナを利用してもよい。レーザスキャナを使用した場合は、例えば、レーザスキャナによりワーク６を計測し、計測結果をカメラ制御部４５にて３次元の計測点群データとして取得する。そして、ワーク位置姿勢計算部４６において、３次元の計測点群データと３次元ＣＡＤモデルとのマッチングを行い、ワーク６の位置姿勢を算出するような構成にする。
【０１３１】
尚、以上述べた第１実施形態及び第２実施形態の各処理動作は具体的には制御装置４により実行されるものである。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を制御装置４に供給し、制御装置４のＣＰＵ４０が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３２】
また、各実施の形態では、コンピュータ読み取り可能な記録媒体がＲＯＭ４１であり、ＲＯＭ４１にプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１３３】
１…ロボットシステム、２…ロボット本体、３…視覚センサ（カメラ）、４…制御装置、５…基台、６…ワーク、７…第１の位置姿勢グループ（計測位置姿勢グループ）、７ａ…第１の基準位置姿勢（基準計測位置姿勢）、８…第２の位置姿勢グループ（作業位置姿勢グループ）、８ａ…第２の基準位置姿勢（基準作業位置姿勢）、１０…基準部材（校正プレート）、１６…組付け用ワーク、２０…多関節アーム（アーム）、２１…エンドエフェクタ（ハンド）、４１…ＲＯＭ（記憶媒体）、Ｒ…ロボット本体の座標系（ロボット座標系）、Ｖ…視覚センサの座標系（カメラ座標系）
【図１】
2014151427.tif 000030
【図２】
2014151427.tif 000031
【図３】
2014151427.tif 000032
【図４】
2014151427.tif 000033
【図５】
2014151427.tif 000034
【図６】
2014151427.tif 000035
【図７】
2014151427.tif 000036
【図８】
2014151427.tif 000037
【図９】
2014151427.tif 000038
【図１０】
2014151427.tif 000039