(57)【要約】【課題】  より効率的にツール先端点の位置情報を補正するツール先端点情報補正プログラム、ツール先端点情報補正装置、及び、ツール先端点情報補正方法を提供することにある。【解決手段】  ツール先端点情報補正プログラムにおいて、ツール先端点情報補正処理は、ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、設定位置情報を中心として、回転軸周りに回転しながら、検知可能に表されるツール先端点を含む３つの画像データを撮像装置によって生成する画像データ生成工程と、３つの画像データにおけるツール先端点の画像位置によって構成される円の中心と、画像位置とのベクトル情報に基づいて、設定位置情報と実位置情報との補正ベクトルを算出する補正情報算出工程と、算出された補正ベクトルに基づいて、設定位置情報を補正する第１の補正工程と、を有する。【選択図】図１７
2015089607.tif 000002
【特許請求の範囲】
【請求項１】
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正処理を実行させるプロセッサ読み取り可能なツール先端点情報補正プログラムにおいて、
前記ツール先端点情報補正処理は、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、
前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成工程と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出工程と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正工程と、を有するツール先端点情報補正プログラム。
【請求項２】
請求項１において、さらに、
前記第１の軸調整工程、前記画像データ生成工程、及び、前記補正情報算出工程は、前記第１の座標系の３軸のうち別の１軸を回転軸として実行され、
前記第１の補正工程では、複数の回転軸におけるそれぞれの前記補正ベクトルに基づいて前記設定位置情報を補正するツール先端点情報補正プログラム。
【請求項３】
請求項１または２において、
前記第１の軸制御工程では、前記回転軸以外の２軸方向にそれぞれ、所定の距離分、前記ツールを移動して生成した前記撮像装置による２つの画像データにおける、それぞれの前記ツール先端点の移動ベクトルに基づいて算出される前記回転軸と前記撮像装置の光軸との角度が減じられるように、前記回転軸を制御するツール先端点情報補正プログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記ツール先端点情報補正処理は、さらに、
前記第１の軸制御工程の前に行われ、前記ロボット本体が有する第２の座標系と、前記ツールの第１の座標系との、設計傾き情報を実傾き情報に補正する傾き情報補正工程を有するツール先端点情報補正プログラム。
【請求項５】
請求項４において、
前記傾き情報補正工程は、
前記第２の座標系の３軸のうち１軸を回転軸とし、前記撮像装置の光軸と平行に制御する第２の軸制御工程と、
前記設計傾き値情報に基づいて、前記第１の座標系における同一の回転軸が前記撮像装置の光軸と平行になるように、前記第１の座標系を回転制御する制御工程と、
前記回転制御後の前記第１の座標系における前記回転軸と、前記撮像装置の光軸との角度に基づいて、前記実傾き情報への補正角度を算出する傾き補正情報算出工程と、
前記補正角度に基づいて、前記設計傾き情報を補正する第２の補正工程と、を有するツール先端点情報補正プログラム。
【請求項６】
請求項４または５において、
前記傾き情報補正工程は、さらに、前記第２の座標系の３軸のうち別の１軸を回転軸として実行されるツール先端点情報補正プログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記補正情報算出工程において算出される前記補正ベクトルに基づく補正量が基準補正量を超える間、前記第１の軸調整工程、前記画像データ生成工程、及び、前記補正情報算出工程が繰り返されるツール先端点情報補正プログラム。
【請求項８】
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正装置であって、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御手段と、
前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成手段と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出手段と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正手段と、を有するツール先端点情報補正装置。
【請求項９】
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正方法であって、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、
前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成工程と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出工程と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正工程と、を有するツール先端点情報補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ツール先端点情報補正プログラム、ツール先端点情報補正装置、及び、ツール先端点情報補正方法に関する。
【背景技術】
【０００２】
産業用ロボットでは、各種作業に適応させたハンドリングを実現可能にするために、ロボット・マニピュレータが使用される。ロボット・マニピュレータは、ロボットにおける腕や手に相当する部分を指す。また、ロボット・マニピュレータでは、各種作業に対応したハンドリングを実現するために、マニピュレータの先端手首部にハンドやツールが取り付けられる。
【０００３】
ロボットへの作業指令は、作業空間上でのハンドやツールの位置（および姿勢）に基づいて行われる。そこで、ハンドやツールにおける指令の基準点が予め設定される。基準点は、例えば、ツール先端点と呼ばれる。ツール先端点は、例えば、ハンドやツールの設計情報に基づいて予め算出され、ロボットに保持される。ただし、設計情報におけるツールと、実際に生成されるハンドやツールとは異なっていることがある。ロボットに保持されたツール先端点の位置の設定情報が、実際のツールにおけるツール先端点の位置と異なっている場合、ツール先端点の位置の設定情報は、実際のツール先端点の位置に基づいて補正される。
【０００４】
そこで、例えば、位置座標が既知であるタッチアップピンの先端に基づいた、ツール先端点の位置の算出方法が提案される。この方法では、例えば、タッチアップピンの先端に対して、ツール先端点が３通りの異なる姿勢で位置決めされ、マニピュレータ手首部の座標系における原点の位置と姿勢とが記録される。そして、当該位置及び姿勢に基づいて、ツール先端点の位置が取得される（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−８５０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の方法によると、作業者による目視による位置決めに基づく手法であることにより、取得されるツール先端点の位置情報の精度に限界がある。また、位置決めには高い操作技能が要求されると共に、ツール先端部がタッチアップピンの先端に衝突し、事故が発生する確率が高く、安全面に問題がある。さらに、マニピュレータ手首部の座標系における原点の位置及び姿勢の測定処理に誤差が生じ、取得されるツール先端点の位置情報の精度が低下することがある。
【０００７】
そこで、本発明では、より効率的にツール先端点の位置情報を補正するツール先端点情報補正プログラム、ツール先端点情報補正装置、及び、ツール先端点情報補正方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の側面は、ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正処理を実行させるプロセッサ読み取り可能なツール先端点情報補正プログラムにおいて、前記ツール先端点情報補正処理は、ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成工程と、前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出工程と、前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正工程と、を有する。
【発明の効果】
【０００９】
第１の側面によれば、ツール先端点の位置情報がより効率的に補正される。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態例におけるツール先端点情報補正システムの構成の例図である。
【図２】本実施の形態例におけるロボット制御装置の構成の一例を示す図である。
【図３】本実施の形態例におけるロボット制御装置のブロック図の一例を示す図である。
【図４】本実施の形態例におけるロボットの一例について説明する図である。
【図５】ＴＣＰの位置情報について説明する図である。
【図６】ＴＣＰ位置情報補正プログラムの処理の概要を示す図である。
【図７】ＴＣＰ位置設定値の傾き情報の補正処理を説明するフローチャート図である。
【図８】メカニカルインタフェース座標系の原点に合わせた撮像装置の配置の例図である。
【図９】メカニカルインタフェース座標系の回転軸と光軸とが平行になるように、ロボット本体を移動制御する処理を説明するフローチャート図である。
【図１０】メカニカルインタフェース座標系の回転軸と光軸とが平行になるようにロボット本体を制御する処理の具体例を説明する第１の図である。
【図１１】メカニカルインタフェース座標系の回転軸と光軸とが平行になるようにロボット本体を制御する処理の具体例を説明する第２の図である。
【図１２】ＴＣＰ位置を撮像可能にするロボットの配置の例図である。
【図１３】傾き情報に基づく、ツール座標系の回転軸の撮像装置の光軸に対する位置あわせ処理について説明する図である。
【図１４】傾き情報の補正値の算出処理を説明するフローチャート図である。
【図１５】傾き情報の補正値の算出処理の具体例を説明する第１の図である。
【図１６】傾き情報の補正値の算出処理の具体例を説明する第２の図である。
【図１７】ＴＣＰ位置設定値の座標情報の補正処理を説明するフローチャート図である。
【図１８】座標情報の補正処理の具体例を説明する第１の図である。
【図１９】座標情報の補正処理の具体例を説明する第２の図である。
【図２０】ＴＣＰ位置設定値の座標情報が補正された場合における、実際のＴＣＰ位置の測定情報を表す例図である。
【発明を実施するための形態】
【００１１】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
［ツール先端点情報補正システムの構成図］
図１は、本実施の形態例におけるツール先端点情報補正システムの構成の一例を示す図である。図１のツール先端点情報補正システムは、例えば、ロボット制御装置（ロボット・コントローラ）１０、教示盤５０、画像処理装置４０、ロボット２０、撮像装置３０を有する。
【００１３】
ロボット制御装置１０は、ロボット２０と接続されると共に、教示盤５０、画像処理装置４０と接続される。教示盤５０は、手動操作キーを備え、オペレータからの指示を受け付ける。オペレータは、教示盤５０を操作して、ロボット２０の制御指示や、ロボット２０制御時における各種パラメータの設定等を行う。
【００１４】
また、図１の撮像装置３０は、例えば、ＣＣＤカメラである。撮像装置３０は、ロボット２０の画像データを生成し、画像処理装置４０に出力する。画像処理装置４０は、撮像装置３０から入力された画像データに対して、所定の画像処理を行い、ロボット制御装置１０に出力する。ロボット制御装置１０は、入力された画像データに基づいて、ロボット制御装置１０に保持されるツール先端点の位置の設定情報の補正処理を行う。
【００１５】
［ロボット制御装置の構成図］
図２は、本実施の形態例におけるロボット制御装置１０の構成の一例を示す図である。ロボット制御装置１０は、例えば、プロセッサ１１０、ＲＡＭ（Random Access Memory）等のメモリ１１１、教示盤用通信インタフェース１１３、外部入出力インタフェース１１４、サーボ制御器１１２を有する。各部は、バス１１５を介して相互に接続される。教示盤用通信インタフェース１１３は、教示盤５０と接続され、教示盤５０との通信を制御する。また、外部入出力インタフェース１１４は、画像処理装置４０等の外部機器との入出力を制御する。サーボ制御器１１２は、プロセッサ１１０からの指令にしたがってロボット２０に内蔵されるサーボモータを駆動し、ロボット２０の姿勢を制御する。
【００１６】
メモリ１１１には、例えば、ロボット制御プログラム１２１、ツール先端点（ＴＣＰ：Tool Center Point）位置情報補正プログラム１２２、ＴＣＰ位置設定値Ｆｐ、計測情報１２４、ＴＣＰ位置補正値１２５が記憶される。ロボット制御プログラム１２１、及び、ＴＣＰ位置情報補正プログラム１２２は、プロセッサ１１０と協働して、ロボット２０の制御処理、ＴＣＰ位置設定値Ｆｐの補正処理をそれぞれ実現する。ＴＣＰ位置設定値Ｆｐは、ＴＣＰ位置の情報を示す。また、計測情報１２４は、例えば、撮像装置３０によって生成される画像データにおける実際のＴＣＰの計測位置を示し、ＴＣＰ位置情報補正プログラム１２２によって生成される。また、ＴＣＰ位置補正値１２５は、ＴＣＰ位置設定値Ｆｐの補正値を示す。
【００１７】
［ロボット制御装置のブロック図］
図３は、本実施の形態例におけるロボット制御装置１０のブロック図の一例を示す図である。ロボット制御装置１０は、例えば、ロボット制御部１３１、ＴＣＰ情報補正部１３２、画像処理部１３３を有する。
【００１８】
ロボット制御部１３１は、ロボット制御プログラム１２１にしたがって、教示盤用通信インタフェース１１３を介して入力された指示情報に基づいたロボット２０の制御を行う。画像処理部１３３は、例えば、ＴＣＰ位置計測部１２４を有する。ＴＣＰ位置計測部１２４は、画像処理装置４０から入力される、実際のＴＣＰ位置を含む画像データにおけるＴＣＰの位置情報を計測し、計測情報１２４を生成する。ＴＣＰ情報補正部１３２は、計測情報１２４とＴＣＰ位置設定値Ｆｐとに基づいてＴＣＰ位置補正値１２５を算出し、ＴＣＰ位置設定値Ｆｐの補正指示を行う。そして、ロボット制御部１３１は、補正指示に基づいてＴＣＰ位置設定値Ｆｐを補正する。
【００１９】
［ロボット］
図４は、本実施の形態例におけるロボット２０の一例について説明する図である。図４に示すように、本実施の形態例におけるロボット２０は、ロボット本体ＲＡとツールＴＬとによって構成される。図４のように、ロボット本体ＲＡの先端部分に、ツールＴＬが取り付けられる。そして、ツールＴＬの先端部分には、ＴＣＰ（ツール先端点）が設定される。ＴＣＰは、ツールＴＬの制御の基点となる位置を示す。ＴＣＰの位置情報は、ＴＣＰ位置設定値Ｆｐとして、予め、ツールＴＬの設計情報に基づいて算出され、ロボット制御装置１０におけるメモリ１１１に記憶される。
【００２０】
また、図４に示されるように、ロボット本体ＲＡは、直交座標系であるロボット座標系（Ｘａ，Ｙａ，Ｚａ）を有する。そして、ツールＴＬの取り付け面には、ロボット座標系（Ｘａ，Ｙａ，Ｚａ）とは別に、直交座標系であるメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）が設けられる。図４における点ｂ０は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の原点を示す。ロボット制御装置１０は、ロボット座標系（Ｘａ，Ｙａ，Ｚａ）上のメカニカルインタフェース座標系の原点ｂ０の位置情報、及び、ロボット座標系（Ｘａ，Ｙａ，Ｚａ）とメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）との各軸の傾き情報を有する。したがって、ロボット制御装置１０は、ロボット座標系（Ｘａ，Ｙａ，Ｚａ）上の座標情報と、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）上の座標情報を相互に変換可能である。
【００２１】
また、図４において、ツールＴＬは、直交座標系であるツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）を有する。ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）の原点は、ＴＣＰ位置に相当する。ロボット制御装置１０は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）上のツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）の原点位置（即ち、ＴＣＰ位置）、及び、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）とツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）との各軸の傾き情報を有する。したがって、ロボット制御装置１０は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）上の座標情報と、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）上の座標情報を相互に変換可能である。
【００２２】
［ＴＣＰ位置設定値］
図５は、ＴＣＰ位置設定値Ｆｐについて説明する図である。ＴＣＰ位置設定値Ｆｐは、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）、及び、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）のメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）からの各軸の傾き情報（α，β，γ）によって示される。具体的に、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）は、図５に示すとおり、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の原点ｂ０からの、各軸の距離情報である。
【００２３】
ＴＣＰ位置設定値Ｆｐは、例えば、ツールＴＬの設計データに基づいて設定される。このため、設計データにおけるツールＴＬと、設計データに基づいて生成された実際のツールＴＬとは異なる場合がある。つまり、設計データに基づくＴＣＰ位置設定値Ｆｐは、実際のツールＴＬにおけるＴＣＰｐｐの位置を示していない場合がある。または、ＴＣＰｐｐの位置は、ロボット本体ＲＡやツールＴＬ等の経年劣化等に伴って、変化することがある。そこで、ＴＣＰ位置設定値Ｆｐは、ＴＣＰ位置情報補正プログラム１２２によって、実際のＴＣＰ位置を示す情報に補正される。
【００２４】
［ＴＣＰ位置情報補正プログラムの処理の概要］
図６は、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２の処理の概要を示す図である。まず、ロボット制御装置１０のメモリに、ＴＣＰ位置設定値Ｆｐ（ｌｘｂ，ｌｙｂ，ｌｚｂ，α，β，γ）が設定される（Ｓ９０）。そして、ＴＣＰ位置情報補正プログラム１２２は、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）の補正処理を行う（Ｓ１００）。続いて、傾き情報（α，β，γ）が補正された後、ＴＣＰ位置情報補正プログラム１２２は、ＴＣＰ位置設定値Ｆｐにおける座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理を行う（Ｓ１１０）。各処理の詳細については、別のフローチャート図に基づいて後述する。
【００２５】
なお、傾き情報（α，β，γ）の誤差が僅少である場合、傾き情報（α，β，γ）が補正処理工程（Ｓ１００）が省略され、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理工程（Ｓ１１０）のみが行われてもよい。続いて、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）の補正処理（Ｓ１００）について、フローチャート図に基づいて説明する。
【００２６】
［フローチャート：傾き情報（α，β，γ）の補正処理（図６のＳ１００）］
図７は、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）の補正処理について説明するフローチャート図である。この処理は、図６のフローチャート図における工程Ｓ１００の処理に対応する。
【００２７】
図７のフローチャート図において、初めに、メカニカルインタフェース座標系における原点ｂ０を撮像可能な位置に、撮像装置３０が配置される（Ｓ１０１）。このとき、ロボット本体ＲＡにツールＴＬは装着されない。続いて、ＴＣＰ位置情報補正プログラム１２２は、メカニカルインタフェース座標系の３つの軸のうち、ひとつの軸を回転軸として選択する（Ｓ１０２）。そして、ＴＣＰ位置情報補正プログラム１２２は、選択した回転軸と、撮像装置３０の光軸とが平行になるように、ロボット本体ＲＡを制御する（Ｓ１０３）。処理の詳細については、別のフローチャート図において後述する。
【００２８】
ここで、ロボット本体ＲＡにツールＴＬが装着される（Ｓ１０４）。続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０から、ＴＣＰ位置が撮像可能になるように、ロボット２０を平行制御する（Ｓ１０５）。このとき、既に、メカニカルインタフェース座標系における回転軸と、撮像装置３０の光軸とが平行に制御されている。このため、ロボット２０の傾き、即ち、メカニカルインタフェース座標系の傾きが変更されないように、例えば、ロボット２０は平行に移動制御される。
【００２９】
次に、ＴＣＰ位置情報補正プログラム１２２は、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）に基づいて、ツール座標系における同一の座標軸を回転軸として、撮像装置３０の光軸に位置あわせする（Ｓ１０６）。傾き情報（α，β，γ）は、座標系インタフェースの、メカニカルインタフェース座標系からの傾き情報である。そこで、ＴＣＰ位置情報補正プログラム１２２は、光軸とメカニカルインタフェース座標系における回転軸とが平行に制御された状態で、傾き情報（α，β，γ）にしたがってロボット２０を回転制御させ、ツール座標系における同一の回転軸が光軸と平行になるように位置合わせする。したがって、傾き情報（α，β，γ）に誤差がなければ、位置合わせ後のツール座標系の回転軸と光軸とは平行になる。
【００３０】
続いて、ＴＣＰ位置情報補正プログラム１２２は、位置合わせ後の、ツール座標系の回転軸と光軸との傾きに基づいて、傾き情報（α，β，γ）の補正値を算出する（Ｓ１０７）。ＴＣＰ位置情報補正プログラム１２２は、ツール座標系の回転軸と撮像装置３０の光軸とが平行ではない場合に、当該回転軸と光軸との角度を補正値として算出する。処理の詳細については、別のフローチャート図において後述する。
【００３１】
そして、ＴＣＰ位置情報補正プログラム１２２は、メカニカルインタフェース座標系のうち、少なくとも２軸を回転軸として選択したか否かを判定する（Ｓ１０８）。１軸しか選択していない場合（Ｓ１０８のＮＯ）、続いて、ＴＣＰ位置情報補正プログラム１２２は、選択済みの軸とは異なる軸を回転軸として選択する（Ｓ１０２）。そして、ＴＣＰ位置情報補正プログラム１２２は、別の回転軸に基づいて、工程Ｓ１０３〜Ｓ１０７の処理を行う。一方、２軸を選択済みである場合（Ｓ１０８のＹＥＳ）、ＴＣＰ位置情報補正プログラム１２２は、算出された傾き情報（α，β，γ）の補正値に基づいて、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）を補正する（Ｓ１０９）。
【００３２】
このように、ＴＣＰ位置情報補正プログラム１２２は、実際のツールＴＬに基づいた、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）のメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）からの傾き情報（α，β，γ）を算出することができる。これにより、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）が補正される。少なくとも２軸について工程Ｓ１０３〜Ｓ１０７の処理を行うことによって、ＴＣＰ位置情報補正プログラム１２２は、傾き情報（α，β，γ）における全ての要素を補正することができる。
【００３３】
［具体例：撮像装置の配置（図７のＳ１０１）］
図８は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における原点ｂ０に合わせた撮像装置３０の配置例を表す図である。図８は、図７のフローチャート図における工程Ｓ１０１の処理に対応する。
【００３４】
図７のフローチャート図における工程Ｓ１０１において、撮像装置３０は、例えば、図８のように、ロボット本体ＲＡのメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における原点ｂ０が撮像可能な位置に配置される。メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における原点ｂ０は、例えば、マーカ等によって示される。このため、撮像装置３０によって生成される画像データにおいて、原点ｂ０の位置が識別可能になる。
【００３５】
図７のフローチャート図で説明したとおり、続いて、ＴＣＰ位置情報補正プログラム１２２は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の３つの軸のうち、ひとつの軸を回転軸として選択し（Ｓ１０２）、回転軸と撮像装置３０の光軸とが平行になるように、ロボット本体ＲＡを制御する（Ｓ１０３）。次に、工程Ｓ１０３の処理について、フローチャート図に基づいて説明する。
【００３６】
［フローチャート：回転軸と光軸との平行制御（図７のＳ１０３）］
図９は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の回転軸と撮像装置３０の光軸とが平行になるように、ロボット本体ＲＡを移動制御する処理について説明するフローチャート図である。初めに、ＴＣＰ位置情報補正プログラム１２２は、ロボット本体ＲＡの移動前の位置（基準位置）において、撮像装置３０にメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の原点ｂ０を撮像させ、生成される画像データにおける当該原点ｂ０の位置を計測する（Ｓ３０）。
【００３７】
次に、ＴＣＰ位置情報補正プログラム１２２は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における回転軸を除く第１軸方向に、一定距離、ロボット本体ＲＡを平行移動させる（Ｓ３１）。例えば、選択された回転軸がＺ軸である場合、ＴＣＰ位置情報補正プログラム１２２は、Ｘ軸方向に、１０ｍｍ程度、ロボット本体ＲＡの平行移動を指示する。続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の原点ｂ０を撮像させ、生成される画像データにおける当該原点ｂ０の位置を計測する（Ｓ３２）。生成された計測情報１２４は、例えば、ロボット制御装置１０のメモリ１１１に記憶される。
【００３８】
次に、ＴＣＰ位置情報補正プログラム１２２は、ロボット本体ＲＡを基準位置に戻した上で、回転軸を除く第２軸方向に、工程Ｓ３１と同距離、ロボット本体ＲＡを平行移動させる（Ｓ３３）。例えば、ＴＣＰ位置情報補正プログラム１２２は、Ｙ軸方向に、１０ｍｍ程度、ロボット本体ＲＡの平行移動を指示する。続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にメカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の原点ｂ０を撮像させ、生成される画像データにおける当該原点ｂ０の位置を計測する（Ｓ３４）。同様にして、生成された計測情報１２４は、例えば、ロボット制御装置１０のメモリ１１１に記憶される。
【００３９】
そして、ＴＣＰ位置情報補正プログラム１２２は、それぞれの画像データにおける原点ｂ０の測定位置に基づいて、ロボット本体ＲＡを基準位置から各軸方向に移動制御した場合における各移動ベクトルを算出する（Ｓ３５）。つまり、ＴＣＰ位置情報補正プログラム１２２は、ロボット本体ＲＡを基準位置からＸ軸方向に平行移動させた場合における原点ｂ０の測定位置の移動ベクトルと、ロボット本体ＲＡを基準位置からＹ軸方向に平行移動させた場合における原点ｂ０の測定位置の移動ベクトルとを算出する。
【００４０】
続いて、ＴＣＰ位置情報補正プログラム１２２は、算出した２つの移動ベクトルに基づいて、回転軸と撮像装置３０の光軸との傾き角度を算出する（Ｓ３６）。具体的に、ＴＣＰ位置情報補正プログラム１２２は、２つの移動ベクトルの長さの比、及び、移動ベクトルの成す角度に基づいて、回転軸と撮像装置３０の光軸との角度を算出する。２つの移動ベクトルの成す角度は、例えば、３次元座標変換の計算式に基づいて算出される。なお、回転軸と撮像装置３０の光軸とが平行である場合、２つの移動ベクトルの長さは同一であり、２つの移動ベクトルの成す角度は９０度である。
【００４１】
続いて、ＴＣＰ位置情報補正プログラム１２２は、算出された傾き角度に基づいて、回転軸が撮像装置３０の光軸と平行になるように、ロボット本体ＲＡを回転制御する（Ｓ３７）。
【００４２】
［具体例：回転軸と光軸との平行制御（図７のＳ１０３、図９）］
図１０は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の回転軸と撮像装置３０の光軸ＬＬとが平行になるようにロボット本体ＲＡを制御する処理（図９のフローチャート図）の具体例について説明する第１の図である。この例では、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）における回転軸として、Ｚ軸Ｚｂが選択される。
【００４３】
図１０の（Ａ）において、ロボット本体ＲＡの基準位置が例示される。まず、基準位置において撮像装置３０によって画像データが生成され、画像データにおける原点ｂ０の位置が測定される（Ｓ３０）。そして、ロボット本体ＲＡがＸ軸Ｘｂ方向（ｘｄ）に１０ｍｍ程度、平行移動制御され、撮像装置３０によって画像データが生成される（Ｓ３１）。そして、生成された画像データにおける原点ｂ０の位置が計測される（Ｓ３２）。同様にして、基準位置に戻されたロボット本体ＲＡがＹ軸Ｙｂ方向（ｙｄ）に１０ｍｍ程度、平行移動制御され、撮像装置３０によって画像データが生成され（Ｓ３３）、生成された画像データにおける原点ｂ０の位置が計測される（Ｓ３４）。
【００４４】
そして、基準位置における画像データ、及び、Ｘ軸、Ｙ軸方向への移動位置で生成された画像データにおける原点ｂ０の画像位置に基づいて、図１０の（Ｂ）に示す移動ベクトルＸ１、Ｙ１が検出される（Ｓ３５）。この例では、Ｚ軸Ｚｂと光軸ＬＬとが平行ではない。このため、ベクトルＸ１とベクトルＹ１との長さが同一ではなく、ベクトルＸ１とベクトルＹ１とのなす角θ１が９０度ではない。そこで、ベクトルＸ１とベクトルＹ１とのなす角θ１、及び、長さの比に基づいて、Ｚ軸Ｚｂと光軸ＬＬとの傾き角度が算出される（Ｓ３６）。そして、算出された傾き角度に基づいて、Ｚ軸Ｚｂと光軸ＬＬとが平行になるように、ロボット本体ＲＡが回転制御される（Ｓ３７）。
【００４５】
図１１は、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の回転軸と撮像装置３０の光軸ＬＬとが平行になるようにロボット本体ＲＡを制御する処理の具体例について説明する第２の図である。
【００４６】
図１１の（Ａ）では、図９のフローチャート図に基づいて、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）のＺ軸Ｚｂと、撮像装置３０の光軸ＬＬとが平行になるように、ロボット本体ＲＡが制御された図を示す。このため、図１０と同様にして、Ｘ軸、Ｙ軸方向（ｘｄ、ｙｄ）それぞれについて、同距離、ロボット本体ＲＡが移動制御された場合の移動ベクトルＸ２、Ｙ２のなす角度は９０度となる。また、各移動ベクトルＸ２、Ｙ２の距離は、同一である。このように、図９フローチャート図に基づいて、回転軸Ｚｂと光軸ＬＬとが平行になるように撮像装置３０が制御される。
【００４７】
続いて、図７のフローチャート図で説明したとおり、ロボット本体ＲＡにツールＴＬが装着され（Ｓ１０４）、ＴＣＰ位置が撮像可能なようにロボット２０が制御される（Ｓ１０５）。
【００４８】
［具体例：ロボット２０の配置制御（図７のＳ１０５）］
図１２は、ＴＣＰ位置ｐｐを撮像可能にするロボット２０の配置を表す例図である。図１２は、図７のフローチャート図における工程Ｓ１０５の処理に対応する。図１２の（Ａ）から図１２の（Ｂ）のように、例えば、撮像装置３０の位置及び傾きは変更されず、撮像装置３０からＴＣＰ位置ｐｐが撮像可能になるように、ロボット２０が配置制御される。このとき、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の傾きが変更されないように、ロボット２０は平行に移動制御される。
【００４９】
続いて、図７のフローチャート図において、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）に基づいて、ツール座標系の回転軸の、撮像装置３０の光軸ＬＬに対する位置あわせが行われる（Ｓ１０６）。
【００５０】
［具体例：傾き情報（α，β，γ）に基づく位置合わせ（図７のＳ１０６）］
図１３は、傾き情報（α，β，γ）に基づく、ツール座標系の回転軸の撮像装置３０の光軸ＬＬに対する位置あわせ処理について説明する図である。この例において、回転軸はＺ軸である。図１３の（Ａ）は、図７の工程Ｓ１０５にしたがって、ＴＣＰ位置ｐｐが撮像可能な位置にロボット２０が配置された状態を示す図である。
【００５１】
一方、図１３（Ｂ）は、図７の工程Ｓ１０６にしたがって、傾き情報（α，β，γ）に基づいてロボット２０が回転制御され、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）のＺ軸Ｚｃが光軸ＬＬと平行になるように位置あわせ処理が行われた状態を示す図である。ただし、この例において、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）は、誤差を有する。このため、図１３（Ｂ）の例において、位置合わせ後のツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）におけるＺ軸Ｚｃと、撮像装置３０の光軸ＬＬとは平行ではない。誤差がある場合、続いて、ＴＣＰ位置情報補正プログラム１２２は、位置合わせ後のツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）におけるＺ軸Ｚｃと、光軸ＬＬとの角度を、傾き情報（α，β，γ）の補正値として算出する（Ｓ１０７）。
【００５２】
［フローチャート：傾き情報（α，β，γ）の補正値の算出処理（図７のＳ１０７）］
図１４は、傾き情報（α，β，γ）の補正値の算出処理について説明するフローチャート図である。この処理は、図７のフローチャート図における工程Ｓ１０７の処理に対応する。処理の概要は、図９のフローチャート図と同様である。
【００５３】
初めに、ＴＣＰ位置情報補正プログラム１２２は、ロボット２０の移動前の位置（基準位置）において、撮像装置３０にＴＣＰ位置を撮像させ、生成される画像データにおけるＴＣＰ位置を計測する（Ｓ６１）。ＴＣＰ位置は、例えば、マーカ等によって識別可能に表される。次に、ＴＣＰ位置情報補正プログラム１２２は、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）における回転軸を除く第１軸方向に、一定距離、ロボット２０を平行移動させる（Ｓ６２）。例えば、回転軸がＺ軸である場合、ＴＣＰ位置情報補正プログラム１２２は、Ｘ軸方向に、１０ｍｍ程度、ロボット２０の平行移動を指示する。続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にＴＣＰ位置を撮像させ、生成される画像データにおけるＴＣＰ位置を計測する（Ｓ６３）。
【００５４】
次に、ＴＣＰ位置情報補正プログラム１２２は、ロボット２０を基準位置に戻した上で、回転軸を除く第２軸方向に、工程Ｓ６２と同距離、ロボット２０を平行移動させる（Ｓ６４）。例えば、ＴＣＰ位置情報補正プログラム１２２は、Ｙ軸方向に、１０ｍｍ程度、ロボット２０の平行移動を指示する。続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にＴＣＰ位置を撮像させ、生成される画像データにおけるＴＣＰ位置を計測する（Ｓ６５）。
【００５５】
そして、ＴＣＰ位置情報補正プログラム１２２は、それぞれの画像データにおけるＴＣＰ位置の測定位置に基づいて、ロボット２０を基準位置から各軸方向に移動制御した場合における各移動ベクトルを算出する（Ｓ６６）。続いて、ＴＣＰ位置情報補正プログラム１２２は、算出した２つの移動ベクトルに基づいて、回転軸と撮像装置３０の光軸との傾き角度を算出する（Ｓ６７）。具体的に、ＴＣＰ位置情報補正プログラム１２２は、２つの移動ベクトルの長さの比、及び、移動ベクトルの成す角度に基づいて、回転軸と撮像装置３０の光軸との角度を算出する。回転軸と撮像装置３０の光軸とが平行である場合、２つの移動ベクトルの長さは同じであり、２つの移動ベクトルのなす角度は９０度である。
【００５６】
これにより、ＴＣＰ位置情報補正プログラム１２２は、回転軸の、撮像装置３０の光軸からの傾き角度を算出することができる。続いて、ＴＣＰ位置情報補正プログラム１２２は、算出された傾き角度に基づいて、傾き情報（α，β，γ）の補正値を算出する（Ｓ６８）。
【００５７】
［具体例：傾き情報（α，β，γ）の補正値の算出処理（図１４）］
図１５は、傾き情報（α，β，γ）の補正値の算出処理（図１４）の具体例について説明する第１の図である。この例において、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）における回転軸として、Ｚ軸Ｚｃが選択される。
【００５８】
図１５の（Ａ）において、ロボット２０の基準位置が例示される。まず、基準位置において撮像装置３０によって画像データが生成され、画像データにおけるＴＣＰ位置が測定される（Ｓ６１）。そして、図１０の具体例と同様にして、ロボット２０がＸ軸Ｘｃ方向（ｘｄ）に１０ｍｍ程度、平行移動制御され、撮像装置３０によって画像データが生成される（Ｓ６２）。そして、生成された画像データにおけるＴＣＰ位置が計測される（Ｓ６３）。同様にして、基準位置に戻されたロボット２０がＹ軸Ｙｃ方向（ｙｄ）に１０ｍｍ程度、平行移動制御され、撮像装置３０によって画像データが生成され（Ｓ６４）、生成された画像データにおけるＴＣＰ位置が計測される（Ｓ６５）。
【００５９】
そして、基準位置における画像データ、及び、Ｘ軸、Ｙ軸方向への移動位置で生成された画像データにおけるＴＣＰ位置の画像位置に基づいて、図１５の（Ｂ）に示す移動ベクトルＸ３、Ｙ３が検出される（Ｓ６６）。この例では、Ｚ軸Ｚｃと光軸ＬＬとが平行ではないため、ベクトルＸ３とベクトルＹ３との長さが同一ではなく、ベクトルＸ３とベクトルＹ３とのなす角θ３が９０度ではない。そして、ベクトルＸ３とベクトルＹ３とのなす角θ３、及び、ベクトルＸ３とベクトルＹ３との比に基づいて、Ｚ軸Ｚｃと光軸ＬＬとの傾き角度が算出され（Ｓ６７）、当該傾き角度に基づいて傾き情報（α，β，γ）の補正値が算出される（Ｓ６８）。
【００６０】
図１６は、傾き情報（α，β，γ）の補正値の算出処理（図１４）の具体例について説明する第２の図である。図１６の（Ａ）は、算出された傾き情報（α，β，γ）の補正値に基づいて、ロボット２０が回転制御された図を示す。傾き情報（α，β，γ）が補正されたことにより、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）のＺ軸Ｚｃと撮像装置３０の光軸ＬＬとが平行となっている。このため、図１５と同様にして、Ｘ軸、Ｙ軸方向（ｘｄ、ｙｄ）それぞれについて、同距離、ロボット２０が移動制御された場合の移動ベクトルＸ４、Ｙ４のなす角度は９０度となる。また、各移動ベクトルＸ４、Ｙ４の距離は、同一である。
【００６１】
図７〜図１６において、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）、及び、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）における３つの軸のうち、Ｚ軸が選択された場合について説明した。このため、図７のフローチャート図に基づいて、Ｚ軸以外の別の軸が回転軸として選択された場合について（図７のＳ１０８のＮＯ）、同様にして、図７〜図１６の処理が行われる。２軸以上の軸が回転軸として選択されることによって、ＴＣＰ位置設定値Ｆｐにおける傾き情報（α，β，γ）における各要素について補正される。
【００６２】
続いて、ＴＣＰ位置情報補正プログラム１２２は、ＴＣＰの位置情報における座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理を行う（Ｓ１１０）。ここで、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理について（Ｓ１１０）、フローチャート図に基づいて説明する。
【００６３】
［フローチャート：座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理（図１６のＳ１１０）］
図１７は、ＴＣＰ位置設定値Ｆｐにおける座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理について説明するフローチャート図である。この処理は、図６のフローチャート図における工程Ｓ１１０の処理に対応する。
【００６４】
まず、ＴＣＰ位置情報補正プログラム１２２は、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）の３つの軸のうち、１つの軸を回転軸として選択する（Ｓ１１１）。続いて、ＴＣＰ位置情報補正プログラム１２２は、選択した回転軸と、撮像装置３０の光軸とが平行になるように、ロボット２０を制御する（Ｓ１１２）。処理の詳細は、前述した図９のフローチャート図と同様である。ただし、図９のフローチャート図と異なり、工程Ｓ１１２では、メカニカルインタフェース座標系（Ｘｂ，Ｙｂ，Ｚｂ）の回転軸ではなく、ツール座標系（Ｘｃ，Ｙｃ，Ｚｃ）の回転軸について、光軸とが平行になるようにロボット２０が制御される。なお、既に、ツール座標系の回転軸と、撮像装置３０の光軸とが平行になるように制御済みである場合、工程Ｓ１１２の処理は省略可能である。
【００６５】
続いて、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にＴＣＰ位置を撮像させ、生成される画像データにおけるＴＣＰの位置を計測する（Ｓ１１３）。次に、ＴＣＰ位置情報補正プログラム１２２は、回転軸を法線とする平面上でツールＴＬを一定角度、回転させる（Ｓ１１４）。例えば、ＴＣＰ位置情報補正プログラム１２２は、回転軸としてＺ軸が選択された場合、ＴＣＰ位置設定値Ｆｐを中心としてＺ軸周りにツールＴＬを１０度程度、回転させる指令を出力する。そして、回転が終了すると、ＴＣＰ位置情報補正プログラム１２２は、撮像装置３０にＴＣＰ位置を撮像させ、生成される画像データにおけるＴＣＰの位置を計測する（Ｓ１１５）。このとき、ロボット２０は初期の状態から、ＴＣＰ位置設定値Ｆｐを中心として、Ｚ軸周りに、１０度分、回転した姿勢に制御される。
【００６６】
ここで、ＴＣＰ位置情報補正プログラム１２２は、ツールＴＬを一定角度、回転させた回数がＮ回以内である場合（Ｓ１１６のＹＥＳ）、再び、工程Ｓ１１４、Ｓ１１５の処理を行う。一方、回転させた回数がＮ回を超える場合（Ｓ１１６のＮＯ）、ＴＣＰ位置情報補正プログラム１２２は、画像データにおけるＴＣＰ位置のＮ＋１個の計測位置に基づいて、回転の中心位置を算出する（Ｓ１１７）。具体的に、例えば、Ｎ＋１個の計測位置に基づいて、当該計測位置を孤とする円が検出され、円の中心が回転の中心位置として算出される。例えば、ＴＣＰ位置情報補正プログラム１２２は、最小二乗推定によって、Ｎ＋１個の計測位置を孤とする円を算出する。一般的に、任意の異なる３点が与えられることにより、３点を通る円の方程式が算出可能になる。このため、例えば、Ｎ＝２と設定される。ただし、この例に限定されるものではなく、Ｎは２以上のいずれの値に設定されてもよい。
【００６７】
ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）と、実際のＴＣＰ位置とが一致している場合、画像データにおけるＮ＋１個の計測位置は同一の位置を示す。一方、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）と、実際のＴＣＰ位置とが一致していない場合、画像データにおけるＮ＋１個のＴＣＰの計測位置は、円弧を描く。このとき、円の中心はＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）に対応し、円の半径はＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正量に相当する。
【００６８】
そこで、ＴＣＰ位置情報補正プログラム１２２は、円の中心位置と、ツールＴＬの回転前におけるＴＣＰ位置の計測位置（Ｓ１１３）との差分ベクトルを、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正ベクトルとして算出する（Ｓ１１８）。このとき、例えば、回転軸としてＺ軸が選択される場合、Ｘ軸、Ｙ軸の座標情報に係る補正値が算出される。続いて、ＴＣＰ位置情報補正プログラム１２２は、算出された補正値に基づいて、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）を補正する（Ｓ１１９）。
【００６９】
続いて、ＴＣＰ位置の補正量が一定の閾値を超える場合は（Ｓ１２０のＮＯ）、工程Ｓ１１４に戻り、再び、補正値の算出処理が行われる。つまり、ＴＣＰ位置の補正量を示す円の半径が閾値以下になるまで、補正量の算出処理が繰り返し行われる。これにより、ＴＣＰ位置設定値Ｆｐの補正精度が向上する。そして、補正量が閾値以下であって（Ｓ１２０のＹＥＳ）、回転軸を２軸を選択していない場合（Ｓ１２１のＮＯ）、ＴＣＰ位置情報補正プログラム１２２は、回転軸として選択済みの軸とは異なる軸を選択し（Ｓ１１１）、工程Ｓ１１２〜Ｓ１２０の処理を行う。一方、補正量が閾値以下であって（Ｓ１２０のＹＥＳ）、２軸を選択済みの場合（Ｓ１２１のＹＥＳ）、ＴＣＰ位置情報補正プログラム１２２は、ＴＣＰの位置情報における座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理を終了する。
【００７０】
［具体例：座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理］
図１８は、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理の具体例について説明する第１の図である。この例において、回転軸は、例えば、Ｚ軸である。ツールＴＬは、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）を中心として、Ｚ軸周りに、例えば、１０度、回転される。図１８の例において、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）は、実際のＴＣＰ位置ｐｐの座標情報と異なっている。したがって、図１８の例において、実際のＴＣＰ位置ｐｐは、ツールＴＬの回転に伴って円弧を描く。
【００７１】
図１９は、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理の具体例について説明する第２の図である。図１９は、座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正処理において生成される各画像データｇｇ１における実際のＴＣＰ位置ｐｐの計測位置を例示する。図１９において、方向ｘｘは画像データｇｇ１のＸ軸方向であって、方向ｙｙは、画像データｇｇ１のＹ軸方向を示す。
【００７２】
図１９の画像データｇｇ１の黒色の三角ｐｐ０〜ｐｐ２は、Ｚ軸周りにツールＴＬを回転させた場合における実際のＴＣＰ位置ｐｐの計測位置を示す。具体的に、計測位置ｐｐ０は、ツールＴＬの回転前における実際のＴＣＰ位置の計測位置であって、計測位置ｐｐ１は、ツールＴＬをＺ軸周りに１０度回転させた場合における実際のＴＣＰ位置の計測位置である。同様にして、計測位置ｐｐ２は、ツールＴＬをＺ軸周りに、さらに１０度回転させた場合における実際のＴＣＰ位置の計測位置である。
【００７３】
そして、図１９において、３つの計測位置ｐｐ０〜ｐｐ２に基づいて、円ｔｔが算出される。算出された円ｔｔの中心ｔ０は、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）に対応する。したがって、円ｔｔの中心ｔ０から計測位置ｐｐ０へのベクトルＶＶは、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の補正ベクトルに対応する。
【００７４】
図２０は、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）が補正された場合の各画像データにおける、実際のＴＣＰ位置ｐｐの測定位置ｐｐ０〜ｐｐ２を表す図である。この例において、ＴＣＰ位置設定値Ｆｐの座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）は、実際のＴＣＰ位置に補正されている。このため、ツールＴＬを、ＴＣＰ位置設定値Ｆｐを中心としてＺ軸周りに回転制御した場合であっても、実際のＴＣＰ位置ｐｐは移動しない。したがって、図２０において、実際のＴＣＰ位置ｐｐの測定位置ｐｐ０〜ｐｐ２は、同一の位置を示す。
【００７５】
以上のように、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２におけるツール先端点情報補正処理は、ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、設定位置情報を中心として、回転軸周りに回転しながら、検知可能に表されるツール先端点を含む３つの画像データを撮像装置によって生成する画像データ生成工程を有する。また、ツール先端点情報補正処理は、３つの画像データにおけるツール先端点の画像位置によって構成される円の中心と、画像位置とのベクトル情報に基づいて、設定位置情報と実位置情報との補正ベクトルを算出する補正情報算出工程と、算出された補正ベクトルに基づいて、設定位置情報を補正する第１の補正工程とを有する。
【００７６】
このように、ＴＣＰ位置情報補正プログラム１２２は、撮像装置によって生成される画像データに基づいて、ツール先端点の設定位置情報における座標情報を補正することができる。これにより、ＴＣＰ位置情報補正プログラム１２２は、人為的な技術に依存することなく、短時間で、座標情報を補正することができる。また、ＴＣＰ位置情報補正プログラム１２２は、実際のツール先端点の位置を、画像データに基づいて高精度に測定可能になることにより、座標情報を高精度に補正することができる。また、ＴＣＰ位置情報補正プログラム１２２は、撮像装置によって生成される画像データに基づくことにより、目視で確認し難い作業領域においても、座標情報の補正処理を行うことを可能にする。
【００７７】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２は、画像データにおけるツール先端点の画像位置によって構成される円の中心と、画像位置とのベクトル情報に基づいて、設定位置情報と実位置情報との補正ベクトルを算出する。このように、ＴＣＰ位置情報補正プログラム１２２は、設定位置情報を中心としてロボットを回転軸周りに回転させた場合におけるツール先端点の測定情報の軌跡情報に基づいて、ツール先端点の設定位置情報の補正ベクトルを簡易に算出することができる。
【００７８】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、第１の軸調整工程、画像データ生成工程、及び、補正情報算出工程は、第１の座標系の３軸のうち別の１軸を回転軸として実行され、第１の補正工程では、複数の回転軸におけるそれぞれの補正ベクトルに基づいて設定位置情報を補正する。これにより、ＴＣＰ位置情報補正プログラム１２２は、ツール先端点の設定位置情報における座標情報（ｌｘｂ，ｌｙｂ，ｌｚｂ）の全ての軸の要素について、補正することができる。
【００７９】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、第１の軸制御工程では、回転軸以外の２軸方向にそれぞれ、所定の距離分、ツールを移動して生成した撮像装置による２つの画像データにおける、それぞれのツール先端点の移動ベクトルに基づいて算出される回転軸と撮像装置の光軸との角度が減じられるように、回転軸を制御する。これにより、ＴＣＰ位置情報補正プログラム１２２は、人為的な技術に依存することなく、短時間で、高精度に、回転軸を撮像装置の光軸に平行に制御することができる。また、ＴＣＰ位置情報補正プログラム１２２は、画像データに基づくことにより回転軸の平行状態への制御を高精度に行うことができると共に、目視で確認し難い作業領域においても回転軸の平行状態への制御を可能にする。
【００８０】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、ツール先端点情報補正処理は、さらに、第１の軸制御工程の前に行われ、ロボット本体が有する第２の座標系と、ツールの第１の座標系との、設計傾き情報を実傾き情報に補正する傾き情報補正工程を有する。これにより、ＴＣＰ位置情報補正プログラム１２２は、ツール先端点の設定位置情報における座標情報に加えて、ツール先端点の設定位置情報における傾き情報を補正することができる。
【００８１】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、傾き情報補正工程は、第２の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第２の軸制御工程と、設計傾き値情報に基づいて、第１の座標系における同一の回転軸が撮像装置の光軸と平行になるように、第１の座標系を回転制御する制御工程とを有する。また、傾き情報補正工程は、回転制御後の第１の座標系における回転軸と、撮像装置の光軸との角度に基づいて、実傾き情報への補正角度を算出する傾き補正情報算出工程と、補正角度に基づいて、設計傾き情報を補正する第２の補正工程と、を有する。
【００８２】
このように、ＴＣＰ位置情報補正プログラム１２２は、撮像装置によって生成される画像データに基づいて、ツール先端点の設定位置情報における傾き情報を補正することができる。これにより、ＴＣＰ位置情報補正プログラム１２２は、人為的な技術に依存することなく、短時間で、傾き情報を補正することができる。また、ＴＣＰ位置情報補正プログラム１２２は、実際のツール先端点の位置を高精度に測定可能になることにより、傾き情報を高精度に補正することができる。また、ＴＣＰ位置情報補正プログラム１２２は、撮像装置によって生成される画像データに基づくことにより、目視で確認し難い作業領域においても、傾き情報の補正処理を行うことを可能にする。
【００８３】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、傾き情報補正工程は、さらに、第２の座標系の３軸のうち別の１軸を回転軸として実行される。これにより、ＴＣＰ位置情報補正プログラム１２２は、ツール先端点の設定位置情報における傾き情報（α，β，γ）の全ての要素について補正することができる。
【００８４】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、補正情報算出工程において算出される補正ベクトルに基づく補正量が基準補正量を超える間、第１の軸調整工程、画像データ生成工程、及び、補正情報算出工程が繰り返される。これにより、ＴＣＰ位置情報補正プログラム１２２は、ツール先端点の設定位置情報の補正精度を向上させることができる。
【００８５】
また、本実施の形態例におけるＴＣＰ位置情報補正プログラム１２２において、補正ベクトルは、回転軸以外の２軸上のベクトルである。これにより、ＴＣＰ位置情報補正プログラム１２２は、例えば、Ｚ軸を回転軸として選択した場合、ツール先端点の設定位置情報の座標情報におけるＸ軸、Ｙ軸の要素を補正することができる。他の軸が回転軸として選択された場合についても同様にして、回転軸以外の２軸の要素が補正される。
【００８６】
以上の実施の形態をまとめると、次の付記のとおりである。
【００８７】
（付記１）
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正処理を実行させるプロセッサ読み取り可能なツール先端点情報補正プログラムにおいて、
前記ツール先端点情報補正処理は、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、
前記設定位置情報を中心として、前記回転軸を回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成工程と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出工程と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正工程と、を有するツール先端点情報補正プログラム。
【００８８】
（付記２）
付記１において、さらに、
前記第１の軸調整工程、前記画像データ生成工程、及び、前記補正情報算出工程は、前記第１の座標系の３軸のうち別の１軸を回転軸として実行され、
前記第１の補正工程では、複数の回転軸におけるそれぞれの前記補正ベクトルに基づいて前記設定位置情報を補正するツール先端点情報補正プログラム。
【００８９】
（付記３）
付記１において、
前記第１の軸制御工程では、前記回転軸以外の２軸方向にそれぞれ、所定の距離分、前記ツールを移動して生成した前記撮像装置による２つの画像データにおける、それぞれの前記ツール先端点の移動ベクトルに基づいて算出される前記回転軸と前記撮像装置の光軸との角度が減じられるように、前記回転軸を制御するツール先端点情報補正プログラム。
【００９０】
（付記４）
付記１乃至３のいずれかにおいて、
前記ツール先端点情報補正処理は、さらに、
前記第１の軸制御工程の前に行われ、前記ロボット本体が有する第２の座標系と、前記ツールの第１の座標系との、設計傾き情報を実傾き情報に補正する傾き情報補正工程を有するツール先端点情報補正プログラム。
【００９１】
（付記５）
付記４において、
前記傾き情報補正工程は、
前記第２の座標系の３軸のうち１軸を回転軸とし、前記撮像装置の光軸と平行に制御する第２の軸制御工程と、
前記設計傾き値情報に基づいて、前記第１の座標系における同一の回転軸が前記撮像装置の光軸と平行になるように、前記第１の座標系を回転制御する制御工程と、
前記回転制御後の前記第１の座標系における前記回転軸と、前記撮像装置の光軸との角度に基づいて、前記実傾き情報への補正角度を算出する傾き補正情報算出工程と、
前記補正角度に基づいて、前記設計傾き情報を補正する第２の補正工程と、を有するツール先端点情報補正プログラム。
【００９２】
（付記６）
付記４または５において、
前記傾き情報補正工程は、さらに、前記第２の座標系の３軸のうち別の１軸を回転軸として実行されるツール先端点情報補正プログラム。
【００９３】
（付記７）
付記１乃至６のいずれかにおいて、
前記補正情報算出工程において算出される前記補正ベクトルに基づく補正量が基準補正量を超える間、前記第１の軸調整工程、前記画像データ生成工程、及び、前記補正情報算出工程が繰り返されるツール先端点情報補正プログラム。
【００９４】
（付記８）
付記１乃至７のいずれかにおいて、
前記補正ベクトルは、前記回転軸以外の２軸上のベクトルであるツール先端点情報補正プログラム。
【００９５】
（付記９）
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正装置であって、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御手段と、
前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成手段と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出手段と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正手段と、を有するツール先端点情報補正装置。
【００９６】
（付記１０）
ロボット本体に取り付けられるツールのツール先端点の設定位置情報を実位置情報に補正するツール先端点情報補正方法であって、
ツールが有する第１の座標系の３軸のうち１軸を回転軸とし、撮像装置の光軸と平行に制御する第１の軸制御工程と、
前記設定位置情報を中心として、前記回転軸周りに回転しながら、検知可能に表される前記ツール先端点を含む３つの画像データを前記撮像装置によって生成する画像データ生成工程と、
前記３つの画像データにおける前記ツール先端点の画像位置によって構成される円の中心と、前記画像位置とのベクトル情報に基づいて、前記設定位置情報と前記実位置情報との補正ベクトルを算出する補正情報算出工程と、
前記算出された補正ベクトルに基づいて、前記設定位置情報を補正する第１の補正工程と、を有するツール先端点情報補正方法。
【符号の説明】
【００９７】
１０：ロボット制御装置、５０：教示盤、４０：画像処理装置、ＲＡ：ロボット本体、ＴＬ：ツール、３０：撮像装置
【図１】
2015089607.tif 000003
【図２】
2015089607.tif 000004
【図３】
2015089607.tif 000005
【図４】
2015089607.tif 000006
【図５】
2015089607.tif 000007
【図６】
2015089607.tif 000008
【図７】
2015089607.tif 000009
【図８】
2015089607.tif 000010
【図９】
2015089607.tif 000011
【図１０】
2015089607.tif 000012
【図１１】
2015089607.tif 000013
【図１２】
2015089607.tif 000014
【図１３】
2015089607.tif 000015
【図１４】
2015089607.tif 000016
【図１５】
2015089607.tif 000017
【図１６】
2015089607.tif 000018
【図１７】
2015089607.tif 000019
【図１８】
2015089607.tif 000020
【図１９】
2015089607.tif 000021
【図２０】
2015089607.tif 000022