(57)【要約】【課題】簡単な制御によりロボット座標系とビジョン座標系の校正の精度をより向上できるロボットシステムおよびその校正方法を提供する。【解決手段】ロボット本体１０が校正用のマーカ２１またはカメラ３のうちいずれか一方を支持し、ロボット本体１０を所定の校正範囲に配置された校正点に動作させてカメラ３で視覚センサにマーカ２１を撮像し、撮像結果に基づきビジョン座標系との校正を行う。１の校正点においてロボット本体１０を複数の異なる姿勢に制御し、各々の姿勢で視覚センサによりマーカ２１をそれぞれ撮像するに際し、制御装置２００は、特定の教示点Ｐ０における特定の位置姿勢にロボット本体を制御し、教示点Ｐ０を起点として特定の位置姿勢にロボット本体１０を制御しマーカ２１を撮像した後、次の姿勢での計測を行うためにロボット本体１０を教示点Ｐ０における特定の位置姿勢に復帰させる。【選択図】図１
2015182144.tif 000002
【特許請求の範囲】
【請求項１】
ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、前記ロボット本体を所定の校正範囲に配置された校正点に動作させて前記視覚センサに前記マーカを撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行う制御装置を備えたロボットシステムにおいて、
前記所定の校正範囲に配置された１の校正点において前記ロボット本体を複数の異なる姿勢に制御し、各々の姿勢で前記視覚センサにより前記マーカをそれぞれ撮像し、得られた撮像画像に基づき前記ビジョン座標系における前記マーカの位置と、前記ロボット座標系における前記マーカの位置から校正データを取得するに際して、
前記制御装置は、前記１の校正点における前記複数の異なる各姿勢に前記ロボット本体を制御する場合、空間上の特定の１点における特定の位置姿勢に前記ロボット本体を制御し、しかる後に前記特定の１点における特定の位置姿勢を起点として前記複数の異なる姿勢のうち１の位置姿勢に前記ロボット本体を制御して前記視覚センサにより前記マーカを撮像した後、前記複数の異なる姿勢のうち次の姿勢での計測を行うために前記ロボット本体を前記空間上の特定の１点における特定の位置姿勢に復帰させることを特徴とするロボットシステム。
【請求項２】
前記空間上の特定の１点は、実工程において前記ロボット本体が通過する軌跡上またはその軌跡の近傍に設定されることを特徴とする請求項１記載のロボットシステム。
【請求項３】
前記空間上の特定の１点は、
前記校正範囲の中で前記ロボット座標系の原点に最も近い点と、
実工程で前記視覚センサによる計測値を用いて前記ロボット本体を所定の位置姿勢に動作させる前に用いられる教示点を含む前記校正範囲と平行な面が前記校正範囲を底面とする角柱と交差する点の中で前記ロボット座標系の原点に最も近い点と、
前記教示点を含む前記校正範囲と平行な面が前記校正範囲を底面とする角柱と交差する点の中で前記ロボット座標系の原点に最も遠い点、
とからなる三角形を前記ロボット座標系の原点を通る旋回軸の廻りに回転させた回転体と、前記校正範囲を底面とする前記角柱とが、重なる領域の内部に設定されることを特徴とする請求項１記載のロボットシステム。
【請求項４】
前記視覚センサは、前記ロボット本体に対して相対的に位置決めされたカメラであり、前記制御装置は、前記ロボット本体の先端部により支持された前記校正用のマーカを前記カメラにより撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行うことを特徴とする請求項１記載のロボットシステム。
【請求項５】
前記視覚センサは、前記ロボット本体の先端部に固定されたカメラであり、前記制御装置は、前記ロボット本体に対して相対的に位置決めされた前記校正用のマーカを前記カメラにより撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行うことを特徴とする請求項１記載のロボットシステム。
【請求項６】
ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、前記ロボット本体を所定の校正範囲に配置された校正点に動作させて前記視覚センサに前記マーカを撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行う制御装置を備えたロボットシステムの校正方法において、
前記所定の校正範囲に配置された１の校正点において前記ロボット本体を複数の異なる姿勢に制御し、各々の姿勢で前記視覚センサにより前記マーカをそれぞれ撮像し、得られた撮像画像に基づき前記ビジョン座標系における前記マーカの位置と、前記ロボット座標系における前記マーカの位置から校正データを取得するに際して、
前記制御装置は、
前記１の校正点における前記複数の異なる各姿勢に前記ロボット本体を制御する場合、空間上の特定の１点における特定の位置姿勢に前記ロボット本体を制御する位置姿勢制御工程と、
しかる後に前記特定の１点における特定の位置姿勢を起点として前記複数の異なる姿勢のうち１の位置姿勢に前記ロボット本体を制御して前記視覚センサにより前記マーカを撮像する撮像工程と、
前記複数の異なる姿勢のうち次の姿勢での計測を行うために前記ロボット本体を前記空間上の特定の１点における特定の位置姿勢に復帰させる復帰工程と、
を実行することを特徴とするロボットシステムの校正方法。
【請求項７】
前記空間上の特定の１点は、実工程において前記ロボット本体が通過する軌跡上またはその軌跡の近傍に設定されることを特徴とする請求項６記載のロボットシステムの校正方法。
【請求項８】
前記空間上の特定の１点は、
前記校正範囲の中で前記ロボット座標系の原点に最も近い点と、
実工程で前記視覚センサによる計測値を用いて前記ロボット本体を所定の位置姿勢に動作させる前に用いられる教示点を含む前記校正範囲と平行な面が前記校正範囲を底面とする角柱と交差する点の中で前記ロボット座標系の原点に最も近い点と、
前記教示点を含む前記校正範囲と平行な面が前記校正範囲を底面とする角柱と交差する点の中で前記ロボット座標系の原点に最も遠い点、
とからなる三角形を前記ロボット座標系の原点を通る旋回軸の廻りに回転させた回転体と、前記校正範囲を底面とする前記角柱とが、重なる領域の内部に設定されることを特徴とする請求項６記載のロボットシステムの校正方法。
【請求項９】
請求項６に記載のロボットシステムの校正方法の各工程を前記制御装置に実行させるためのプログラム。
【請求項１０】
請求項６に記載のロボットシステムの校正方法を前記制御装置に実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、前記ロボット本体を所定の校正範囲に配置された校正点に動作させて前記視覚センサに前記マーカを撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行う制御装置を備えたロボットシステムにおいて、
前記所定の校正範囲に配置された１の校正点において前記ロボット本体を複数の異なる姿勢に制御し、各々の姿勢で前記視覚センサにより前記マーカをそれぞれ撮像し、得られた撮像画像に基づき前記ビジョン座標系における前記マーカの位置と、前記ロボット座標系における前記マーカの位置から校正データを取得するに際して、
前記制御装置は、前記複数の校正点それぞれについて、前記ロボット本体を１の校正点に動作させる前に前記ロボット本体を空間上の特定の１点に移動し、しかる後に前記特定の１点から前記１の校正点へ前記ロボット本体を動作させ前記視覚センサにより前記マーカの位置を撮像した後、前記複数の校正点のうち次の校正点における計測を行うために前記ロボット本体を前記空間上の特定の１点に復帰させることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視覚センサにより撮像した情報に基づきロボット本体の位置姿勢を制御するロボットシステム、および前記ロボットシステムにおいて視覚センサの座標系とロボット座標系の校正を行うロボットシステムの校正方法に関する。
【背景技術】
【０００２】
近年、工場の生産ラインにおいて、作業の自動化・省人化を図るために、ロボットを用いた自動組立が多く利用されるようになってきた。この種の工業用途では、多関節アームなどのロボット本体とカメラなどの視覚センサを組合せたロボットシステムが用いられている。特に最近では、作業対象物となるワークは多種多様であり、そのワークの位置のみならず姿勢までも高精度に位置決めするため、視覚センサで３次元計測する必要性が高くなっている。
【０００３】
この種のロボットシステムでは、視覚センサにより撮像した撮像画像に基づきワークの位置および姿勢（以下「位置姿勢」とも表記する）を計測し、それに基づいてロボット本体の動作を補正する。このためには視覚センサを介して計測したワークの位置姿勢データをロボット本体の動作を制御するロボット座標系上のデータに変換する必要がある。そして、視覚センサの計測に用いられる座標系（以下、ビジョン座標系という）と、ロボット本体が動作する座標系（以下、ロボット座標系という）との間の関係を予め求めておかなければならない。
【０００４】
これらビジョン座標系〜ロボット座標系間の校正は一般的にはハンドアイキャリブレーションなどと呼ばれている。ビジョン座標系とロボット座標系の相対位置姿勢の校正精度はそのまま視覚センサを用いたロボット本体の動作位置補正精度に影響する。従って、当然ながら、この種の校正は簡単かつ低（演算）コストな処理により高精度に実行できることが望まれている。
【０００５】
従来より、この校正処理として、下記の特許文献１および非特許文献１に開示されているようにロボット本体に複数の位置姿勢を順次取らせながら、各々の位置姿勢においてカメラにより校正用基準物を計測する手法が知られている。これら文献の手法では、ロボット本体の各位置姿勢におけるロボット本体の先端部への指令値と、カメラからの校正用基準物の計測値との関係から、残差が最小となるように動作座標系と計測座標系との関係を求め、校正値を得ている。
【０００６】
ところで、ロボットの駆動系には減速機やリンク、場合によってはカムなどの機構が含まれるため、このような駆動系を介して制御されるロボット動作にヒステリシス特性が存在し、このヒステリシスによってロボットの位置決め精度が劣化する。従来より、このようなヒステリシスを含むロボットの駆動特性それ自体を同定し、ロボットの位置姿勢制御に反映させようとする技術思想が存在する。例えば、下記の特許文献２は、ロボットの各駆動軸の変位（入力変位）とロボットの先端位置（出力変位）との相関関係を定める関係式の中で用いられる機構パラメータを同定する技術を開示している。この文献では、ロボットの駆動軸の回転方向によって生じるバックラッシュ、リンクの弾性変形、減速機の弾性変形量などが機構パラメータの一部として認識されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−０６３３１７号公報
【特許文献２】特許第４２９８７５７号
【非特許文献】
【０００８】
【非特許文献１】Hand-Eye  Calibration  (Horaud  and  Dornaika,  Int  Journal  of  Robotics  Research,  Vol.14,  No.3,  pp.195-210,  1995)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載された座標校正方法はロボット本体の位置決め誤差を考慮したものではないが、実際には特許文献１記載の構成であってもロボットの駆動系のヒステリシスに起因して位置決め誤差が発生している。この誤差は、従来の座標校正方法では十分に抑制することができず、ロボット本体の位置姿勢の制御において精度向上の妨げとなっていた。
【００１０】
ハンドアイキャリブレーションはロボットの位置情報を用いる必要があるため、ハンドアイキャリブレーションを行ってもその精度がロボットそれ自体のヒステリシスによって劣化するという問題点があった。例えば、特許文献１では校正動作において複数の校正点への移動をどのように行うかについては具体的に開示がないが、例えば校正のタクトタイムを短くするために、ロボットを各校正点に順番に動作させるとヒステリシスの影響が大きくなる問題点がある。例えば、単に、定義した複数の校正点へロボットハンドを順次、移動させるような動作では各校正点への移動でロボットの関節の動作方向、特にその回動方向や角度がまちまちになる。このような校正制御では各校正点への移動でそれぞれ作用するヒステリシスの条件が異なったものとなってしまうため、校正結果に対するロボットのヒステリシスの影響を低減するのは難しい。
【００１１】
また、特許文献２に記載されるようなロボットの機構パラメータを精密に同定し補正しようとする技術思想によると、ヒステリシスをより明示的に同定すべき機構パラメータに加えようとすると、校正動作が複雑かつ困難なものになる可能性がある。例えば、ヒステリシスのパラメータを検出するために１校正点でハンドの姿勢をより多く取るなどの必要が生じ、校正制御が複雑になることが予想される。
【００１２】
また、実際の現場ではロボットにより操作されるワークの位置姿勢にばらつきが想定されるので、校正はこのばらつきを含むように点ではなく広い範囲で行うことが精度向上のために好ましい。しかしながら特許文献２に記載された手法は、タッチアップ方式であるため１点ずつしか校正できない、という問題がある。特許文献２に記載の手法を広い範囲で行なうハンドアイキャリブレーションに適用しようとすれば、校正範囲に含まれる各校正点で複雑な校正制御を行う必要があり、煩雑であり、工数がかかるという問題点があった。
【００１３】
本発明の課題は、上述の事情に鑑み、簡単な制御により、１点ではなく広い範囲で、ロボット座標系とビジョン座標系の校正の精度をより向上できるロボットシステムおよびその校正方法を提供することにある。
【課題を解決するための手段】
【００１４】
以上の課題を解決するため、本発明は、ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、前記ロボット本体を所定の校正範囲に配置された校正点に動作させて前記視覚センサに前記マーカを撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行う制御装置を備えたロボットシステムにおいて、前記所定の校正範囲に配置された１の校正点において前記ロボット本体を複数の異なる姿勢に制御し、各々の姿勢で前記視覚センサにより前記マーカをそれぞれ撮像し、得られた撮像画像に基づき前記ビジョン座標系における前記マーカの位置と、前記ロボット座標系における前記マーカの位置から校正データを取得するに際して、前記制御装置は、前記１の校正点における前記複数の異なる各姿勢に前記ロボット本体を制御する場合、空間上の特定の１点における特定の位置姿勢に前記ロボット本体を制御し、しかる後に前記特定の１点における特定の位置姿勢を起点として前記複数の異なる姿勢のうち１の位置姿勢に前記ロボット本体を制御して前記視覚センサにより前記マーカを撮像した後、前記複数の異なる姿勢のうち次の姿勢での計測を行うために前記ロボット本体を前記空間上の特定の１点における特定の位置姿勢に復帰させる構成を特徴とする。
【００１５】
あるいは、本発明は、ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、前記ロボット本体を所定の校正範囲に配置された校正点に動作させて前記視覚センサに前記マーカを撮像させ、撮像画像の処理結果に基づいて前記ロボットを基準としたロボット座標系と前記視覚センサを基準としたビジョン座標系との校正を行う制御装置を備えたロボットシステムの校正方法において、前記所定の校正範囲に配置された１の校正点において前記ロボット本体を複数の異なる姿勢に制御し、各々の姿勢で前記視覚センサにより前記マーカをそれぞれ撮像し、得られた撮像画像に基づき前記ビジョン座標系における前記マーカの位置と、前記ロボット座標系における前記マーカの位置から校正データを取得するに際して、前記制御装置は、前記１の校正点における前記複数の異なる各姿勢に前記ロボット本体を制御する場合、空間上の特定の１点における特定の位置姿勢に前記ロボット本体を制御する位置姿勢制御工程と、しかる後に前記特定の１点における特定の位置姿勢を起点として前記複数の異なる姿勢のうち１の位置姿勢に前記ロボット本体を制御して前記視覚センサにより前記マーカを撮像する撮像工程と、前記複数の異なる姿勢のうち次の姿勢での計測を行うために前記ロボット本体を前記空間上の特定の１点における特定の位置姿勢に復帰させる復帰工程と、を実行する構成を特徴とする。
【発明の効果】
【００１６】
本発明によれば、校正処理において、視覚センサの撮像のため１の校正点における１の位置姿勢にロボット本体を動作させる場合、必ず空間上の特定の１点から校正点へとロボット本体を動作させる。そして、視覚センサの撮影が終了したら次の撮像のため、前記の空間上の特定の１点に復帰するようロボット本体を動作させる。このような制御を行うことにより、各校正点に動作する前にロボットを構成する機構のヒステリシスがリセットされる。これにより、簡単かつ低コストな手法により、ビジョン座標系とロボット座標系のロボット座標系とビジョン座標系の校正に対するロボット機構のヒステリシスの影響を軽減することができ、校正の精度を大きく向上することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るロボットシステムの概略構成を示した説明図である。
【図２】本発明の第１の実施形態に係る校正用のマーカの構成を示した平面図である。
【図３】本発明の第１の実施形態に係るロボットシステムにおいてロボット座標系とビジョン座標系の校正処理手順を示したフローチャート図である。
【図４】本発明の第１実施形態に係るロボットシステムにおいて校正用データを取得する処理手順を示すフローチャート図である。
【図５】本発明の第１の実施形態に係る実工程で視覚センサによる計測値を利用したワークの位置姿勢に動作する前の教示点の近傍の領域を示した説明図である。
【図６】本発明の第１の実施形態に係る校正処理における校正用のマーカの位置姿勢制御の一例を示した説明図である。
【図７】本発明に係る校正処理と他の校正処理で得られる誤差を示した説明図である。
【図８】本発明の第２の実施形態に係るロボットシステムの概略構成を示した説明図である。
【図９】本発明の第１実施形態に係るロボットシステムにおいて、実工程でロボット本体を制御する処理手順を示すフローチャート図である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して本発明を実施するに好適な実施形態につき詳細に説明する。
【００１９】
＜第１の実施形態＞
本発明の第１の実施形態について、図１〜図７を用いて説明する。まず、図１を用いて、本実施形態のロボットシステムの概略構成について説明する。
【００２０】
［ロボットシステム］
図１は本実施形態のロボットシステム１００の概略構成を示している。本実施形態のロボットシステム１００は、概ね制御装置２００、ロボット本体１０、視覚センサとしてのカメラ３から成る基本構成を有する。
【００２１】
制御装置２００は、ロボット本体１０の位置姿勢を制御するとともに、カメラ３から得られた撮像画像に基づく計測値を利用してワークの位置姿勢を算出する。制御装置２００は、ロボットコントローラ１とビジョンコントローラ２とを有し、ロボットコントローラ１にはロボット本体１０とビジョンコントローラ２が接続され、ビジョンコントローラ２には、カメラ３とロボットコントローラ１が接続されている。
【００２２】
ロボット本体１０は、多関節のアーム１１を有し、アーム１１の先端にはエンドエフェクタ（ツール）としてハンド１２が装着され、このハンド１２を介してワークに対して動作を行う。また、本実施形態の校正制御では、後述のようにハンド１２に校正治具２０を把持させ、ロボット本体１０の各関節を制御することによりロボット本体１０の位置姿勢を制御し、所定の校正範囲内の校正点においてカメラ３による撮像を行う。
【００２３】
ワークや後述の校正用のマーカの位置姿勢をロボット本体１０が操作する場合、実際にはアーム１１の各関節を制御してハンド１２で把持した対象物の位置姿勢を制御する。以下の説明では、ワークや校正用のマーカの位置姿勢を制御する動作について、「ロボット本体１０の位置姿勢を制御する」といった簡略な表現を用いる。これは煩雑な繰り返し表現を避けるため動作に関与するアーム１１や関節、ハンド１２に対する言及を省略したものである。当然ながら、このようなロボット本体１０の「位置姿勢」の「制御」にはこれらの部材に対してしかるべき制御が行われるのはいうまでもない。
【００２４】
本実施形態において、ロボット本体１０のアーム１１は、７つのリンクと、各リンクを揺動又は回動可能に連結する６つの関節とを備える６軸の垂直多関節アームとして構成されている。なお、本実施形態ではアーム１１として６軸の垂直多関節アームを適用しているが、これにロボットアームの軸数は用途や目的に応じて適宜変更してもよい。また、アーム１１は、基台１３に固定されており、基台１３を基準にしてアーム１１の位置や姿勢を表現可能なロボット座標系４１が設定されている。このロボット座標系４１は、ロボット本体１０の動作を制御するために用いられる。
【００２５】
アーム１１の各関節には、各関節を各々駆動する駆動手段としてモータが設けられる。この駆動手段は必要に応じて直動アクチュエータなどに置換することができる。アーム１１の各関節を駆動するモータや直動アクチュエータなどの駆動手段は、本実施形態の校正システムにおいて出力手段（出力機器）として動作する。また、アーム１１の各関節には、モータの回転角度を検知するエンコーダ、各モータに供給する電流を検知する電流センサ、各関節のトルクを検知するトルクセンサが設けられる。これらの検出手段は、本実施形態の校正システムにおいて入力手段（入力機器）として動作する。
【００２６】
アーム１１は、制御装置２００のロボットコントローラ１から出力される指令値に応じて各関節を駆動し、ハンド１２の位置姿勢を調整する。ロボットコントローラ１は、ロボット座標系４１を基準とし、ハンド１２の座標系であるツール座標系４３の相対位置姿勢の目標値に対して、アーム１１の各関節の取るべき角度を計算し、各関節に対して指令値を出力する。また、ロボットコントローラ１は、アーム１１の各関節に設けられたエンコーダから各関節の現在角度情報を取得し、ツール座標系４３の相対位置姿勢を算出することができる。
【００２７】
アーム１１の先端部に支持されたハンド１２は、アーム１１の動作によりその位置姿勢が調整される。ハンド１２はワークや校正治具２０を把持可能な例えば３本の指を備えている。ハンド１２には、ハンド１２を基準にしてツール座標系４３が設定される。なお、エンドエフェクタとしては、ワークなどを把持可能なハンド１２以外にも、把持以外の手段でワークなどを保持する機構や、ワークに加工を施す工具等、ワークに対して作業可能なエンドエフェクタ（ツール）を用いることができる。本実施形態の校正処理は、校正点への移動の形態に特徴があり、エンドエフェクタの形態に制限されることなく実施することができる。
【００２８】
視覚センサとしてのカメラ３は、後述の校正処理を行うためのマーカ２１や、実際の作業（実工程）においてはワークなどの対象物を撮影し、ビジョンコントローラ２に画像信号を送信する。本実施形態では、カメラ３は、ロボット本体１０の設置環境中の固定位置に設置され、ロボット本体１０に対して相対的に位置決めされている。本実施形態では、視覚センサであるカメラ３として例えば単眼カメラを用いるものとするが、カメラ３に対応する視覚センサとしては、（例えばステレオ撮影のための）複眼カメラ、レーザレンジファインダ、あるいは、それらの組合せから構成してもよい。カメラ３には、その光軸方向および撮像視野の縦横方向を基準にしてカメラ３が計測するビジョン座標系４２が設定されている。
【００２９】
ロボットコントローラ１は、マイクロプロセッサなどから成るＣＰＵ３１と、このＣＰＵ３１にバス接続されたＲＯＭ３２、ＲＡＭ３３、汎用信号インターフェイス３４などから構成される。ＲＯＭ３２には、ロボットシステム１００を制御するプログラム（後述の校正制御を行なうためのプログラムを含む）が格納される。また、ＲＡＭ３３には、ロボット本体１０の動作や、ビジョンコントローラ２への指令送信、ビジョンコントローラ２からの画像処理結果の受信等を制御するプログラムと、制御上必要な関連設定値などが格納される。さらに、ＲＡＭ３３はＣＰＵ３１による演算実行時の一時記憶用のメモリや必要に応じて設定されるレジスタ領域としても使用される。汎用信号インターフェイス３４は、ビジョンコントローラ２やロボット本体１０の各軸を制御するサーボ回路、オフラインプログラミング装置、製造ラインの制御部などに対する入出力装置として機能する。
【００３０】
ビジョンコントローラ２は、カメラ３の撮像画像の画像信号を、濃淡グレイスケールによる明暗信号に変換した上でフレームメモリ（不図示）に格納する。また、ビジョンコントローラ２は、フレームメモリに格納された画像を処理し、ワークやマーカ２１などの対象物の識別、位置姿勢を計測する。ここで計測される位置姿勢は、ビジョン座標系４２を基準とするマーカ座標系４４の位置姿勢に相当するデータである。さらに、画像処理した対象物の識別結果、および位置姿勢をロボットコントローラ１に送信する。また、ビジョンコントローラ２には例えばカメラ３の撮影条件を制御する照明（不図示）が接続されていてもよく、その場合にはビジョンコントローラ２はこの照明の制御も行う。
【００３１】
校正治具２０は、ロボットシステム１００の校正を行う際にマーカ２１を固定するもので、マーカ２１はこの校正治具２０を介してハンド１２あるいはアーム１１に固定される。例えば、校正治具２０はハンド１２により把持されることでハンド１２に固定される。なお、校正治具２０に対してマーカ２１がどのような位置関係で固定されているかは既知でなくともよい。
【００３２】
校正用基準物としてのマーカ２１は、後述の校正処理を行うためにカメラ３で撮像され、その撮像画像に基づきマーカ２１の位置姿勢を計測できるよう構成される。すなわち、マーカ２１には、図２に示すように印刷や穿孔その他の手法により複数のドット２２や三角形２３のマークが付与される。マーカ２１のドット２２、三角形２３のマークマーカ２１上に予め定義されたマーカ座標系４４上の所定の位置（座標）に配置される。
【００３３】
マーカ２１に所定のパターンで付与された複数のドット２２の位置は、例えばマーカ座標系４４上の座標表現の設定値として予めビジョンコントローラ２のメモリ（不図示）などの記憶手段に格納しておく。これにより、ビジョンコントローラ２は、カメラ３の撮像画像を介してマーカ２１のドット２２の位置を求めることにより、ビジョン座標系におけるマーカ２１の位置姿勢を計測することができる。
【００３４】
また、マーカ２１の三角形２３のマークは、マーカ２１の特定の一の角部として特定できるよう、マーカ２１の特定の一の角部に配置される。ビジョンコントローラ２は、カメラ３の撮像画像を介してこの三角形２３の位置を求めることにより、マーカ２１の姿勢を一意に求めることができる。なお、図示したマーカ２１の構成はあくまでも一例であって、マーカ２１はカメラ３から計測できればよく、平面状ではなく立体的に構成されたものであってもよい。
【００３５】
ここで、本実施形態で行う実工程とは、例えばカメラ３による計測値を利用してロボット本体１０に指令値を出力してハンド１２をワークまで移動させ、そのワークを把持させる工程とする。つまり、生産ラインで順次供給されたワークに対して繰返し行う工程である。以下、このような実工程を成り立たせるためにロボット座標系とビジョン座標系の校正処理で必要な設定項目につき説明する。
【００３６】
図１（あるいは後述の図５）における校正範囲Ａは、例えば実工程においてロボット本体１０のハンド１２で操作されるワークが取り得る位置のばらつきの範囲であって、この校正範囲Ａが本実施形態の構成処理において校正点の取り得る範囲である。
【００３７】
校正範囲Ａには、例えば５つの校正点Ｐ１〜Ｐ５を配置し、それぞれの校正点にロボット本体１０を動作させることにより、カメラ３によりマーカ２１を撮像し、その撮像結果に基づきビジョン座標系におけるマーカ２１の位置姿勢を計測する。
【００３８】
また、本実施形態では、ロボット本体１０によりマーカ２１をある校正点に動作させて撮像する場合、一の校正点においてロボット本体１０によりマーカ２１を複数の姿勢に制御してマーカ２１を撮像する。ここで、校正点Ｐ１〜Ｐ５のうち、一の校正点において撮像の必要なマーカ２１の姿勢数は３以上であればよい。
【００３９】
ここで、校正点の数をＮ、一の校正点において撮像すべきマーカ２１の姿勢数をｎとすると、本実施形態のＮ、ｎはそれぞれＮ＝５、ｎ＝３である。校正点Ｐ１〜Ｐ５の各々についてマーカ２１を３姿勢に制御して、それぞれの姿勢でマーカ２１を撮像する場合、校正点Ｐ１〜Ｐ５でそれぞれ異なる姿勢を３つ取るので、マーカ２１に取らせる位置姿勢の数（Ｎ＊ｎ）はＮ＊ｎ=１５（５×３）となる。この校正処理における位置姿勢の数Ｎ、ｎは制御装置２００のＲＯＭ３２又はＲＡＭ３３に記憶させておく。
【００４０】
なお、マーカ２１には、一の校正点においてロボット本体１０が作業時に必要な動作範囲の中で、なるべく多様な姿勢を取らせることが好ましい。また、校正範囲Ａに設置するワークの位置姿勢に実際にはばらつきが想定されるので、このばらつきを含むようにロボット本体１０の可動範囲を広めに設定することが精度向上のために好ましい。また、校正点Ｐ１〜Ｐ５の各々においてマーカ２１に取らせるｎ個の位置姿勢は、ユーザが例えば汎用信号インターフェイス３４を介して接続されたティーチングペンダント（不図示）などから教示してもよい。
【００４１】
図１（または後述の図５）に示した教示点Ｐ０は、ロボット本体１０が配置される空間上の特定の１点であって、例えば実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点を用いることができる。例えば、教示点Ｐ０としては、実工程でカメラ３によって位置補正する教示点を通過する前の教示点の１つを選ぶことができる。言い換えれば、教示点Ｐ０は実工程においてロボット本体１０が通過する軌跡上またはその軌跡の近傍に設定される。
【００４２】
後述の校正処理においては、カメラ３によるの撮像のため１の校正点における１の位置姿勢にロボット本体を動作させる場合、必ず上記の教示点Ｐ０から校正点へとロボット本体を動作させる。また、視覚センサの撮影が終了したら次の校正点での撮像のため、教示点Ｐ０に復帰するようロボット本体１０を動作させる。
【００４３】
以上のように、本実施形態では実工程においてロボット本体１０が通過する軌跡上またはその軌跡の近傍に教示点Ｐ０を配置する。そして、校正データを得るため、マーカ２１を撮像する場合、教示点Ｐ０を起点として１つの校正点の位置姿勢にロボット本体１０を動作させ、また、撮像後、教示点Ｐ０に復帰させる。上記のように教示点Ｐ０を配置してロボット本体１０を制御することにより、ある校正点における特定の位置姿勢に向かってロボット本体１０が制御される軌跡が、実工程においてワークを操作させる時のロボット本体１０の軌跡と近くなる。
【００４４】
すなわち、本実施形態では、ロボット本体１０を校正点の位置姿勢に動作させる時に、実工程でワークを操作する位置姿勢に動作させる時とほぼ同じ（あるいは類似した）軌跡を取らせる制御を行なう。これによりヒステリシス特性に関しては実工程で作用するのと同等のヒステリシス特性を生じる位置姿勢制御でカメラ３によりマーカ２１を撮像し、校正データを取得することができる。また、本実施形態では、ある校正点においてある位置姿勢でマーカ２１を撮像し、校正データを取得した後、次の撮像を行う動作につき、上記の教示点Ｐ０にロボット本体１０を復帰させる制御を行う。この制御により、ロボット本体１０の駆動機構のヒステリシス特性により生じた誤差を毎回、リセットすることができる。
【００４５】
本実施形態によれば、上記のように教示点Ｐ０を用いた校正制御を行うことにより、簡単かつ低コストにロボット座標系とビジョン座標系の校正に対するロボット機構のヒステリシスの影響を軽減することができ、校正の精度を大きく向上することができる。
【００４６】
後述の校正処理においては、ロボット本体１０を教示点Ｐ０へ移動（ないし復帰）させる制御を行なうため、上記の教示点Ｐ０の座標（例えばロボット座標系における座標）は予め制御装置２００のＲＯＭ３２又はＲＡＭ３３に記憶させておく。また、教示点Ｐ０の代わりに、実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点の近傍点を別の教示点Ｐ０として用いてもよい。
【００４７】
例えば、教示点Ｐ０として採用可能な近傍点の取り得る範囲は、図５に斜線で示したＢの範囲とすることができる。図５においては、ロボット本体１０（同図中不図示）のアーム１１の原点を図５の点Ｏとする。ここで、校正範囲Ａ（Ｐ２Ｐ３Ｐ４Ｐ５）を底面とする角柱状の空間を考える。例えば、この角柱は、校正範囲Ａ（Ｐ２Ｐ３Ｐ４Ｐ５）と、校正範囲Ａと平行かつ合同な面（Ｐ２’Ｐ３’Ｐ４’Ｐ５’）で構成される角柱である。この場合、ロボット本体１０のアーム１１が制御されるロボット座標系の原点Ｏとの関係を考慮すると、アーム１１の動作方向が実工程と近くなるような空間の範囲Ｂは、例えば次のようなものとなる。
【００４８】
すなわち、教示点Ｐ０として採用可能な近傍点の取り得る範囲Ｂは、次のような三角形をロボット座標系の原点Ｏを通る旋回軸の廻りで回転させた回転体と、校正範囲Ａ（Ｐ２Ｐ３Ｐ４Ｐ５）を底面とする上記の角柱が重なる領域の内部（境界含む）である。図５の例では、この三角形とは次の３点を頂点とする三角形である：
（１）校正範囲Ａの中でアーム原点Ｏに最も近い点Ｐ２
（２）教示点Ｐ０を通る校正範囲Ａと平行な面（Ｐ２’Ｐ３’Ｐ４’Ｐ５’）中において、校正範囲Ａを底面とする角柱と交差する点の中でアーム原点Ｏに最も近い点Ｐ２’
（３）教示点Ｐ０を通る校正範囲Ａと平行な面（Ｐ２’Ｐ３’Ｐ４’Ｐ５’）中において、校正範囲Ａを底面とする角柱と交差する点の中でアーム原点Ｏに最も遠い点Ｐ４’
【００４９】
この三角形（Ｐ２、Ｐ２’、Ｐ４’）をロボット座標系の原点Ｏを通る旋回軸の廻りで回転させた回転体と、上記角柱（Ｐ２Ｐ３Ｐ４Ｐ５〜Ｐ２’Ｐ３’Ｐ４’Ｐ５’）が重なる空間がＢの範囲である。そして、このＢの空間の範囲では、ロボット本体１０のアーム１１が制御されるロボット座標系の原点Ｏとの関係を考慮すると、アームの動作方向が実工程と近くなるものと考えてよい。
【００５０】
このような範囲Ｂに後述の校正処理で用いる教示点Ｐ０を定義することにより、ビジョン座標系〜ロボット座標系の校正と実工程で発生するロボット本体１０の（例えば駆動機構に内在する）ヒステリシスの特性が類似したものとなるよう制御できる。これによって、ロボット本体１０の機構が持つヒステリシスが校正誤差に与える影響を低減することができる。なお、上述の範囲Ｂ内の近傍点を後述の校正処理で用いる教示点Ｐ０として用いる場合は、その座標値（例えばロボット座標系およびビジョン座標系における座標値）を予め制御装置２００のＲＯＭ３２又はＲＡＭ３３に記憶させておく。
【００５１】
以上のように構成されたロボットシステム１００は、ロボットコントローラ１のメモリに格納された動作プログラムによって、ロボット本体１０を制御することができる。例えば、ロボット本体１０によって、校正治具２０およびマーカ２１をロボット本体１０の動作範囲内の任意の位置姿勢で位置決めすることができる。
【００５２】
以下、本実施形態におけるロボットシステム１００の、ロボット座標系４１とビジョン座標系４２との校正方法について説明する。
【００５３】
ここで、前提条件として、校正治具２０に対して、マーカ２１がどこに固定されているか既知ではない場合を考える。制御装置２００は、ロボット座標系４１とビジョン座標系４２との校正を行う際に、校正範囲Ａに設定されたＮ個（本実施形態では、Ｎ＝５）の校正点のロボット座標系４１中の位置とビジョン座標系４２中の位置から校正値を算出することができる。
【００５４】
このとき、それぞれの点でロボット座標系４１とツール座標系４３の相対位置姿勢と、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を得る必要がある。この２種類の位置姿勢を校正用データと呼ぶ。これらの校正用データを用いて、校正すべきロボット座標系４１とビジョン座標系４２の相対位置姿勢を求めることができる。
【００５５】
上述したロボットシステム１００の制御装置２００により校正値を算出する手順を、図３に示すフローチャートにより説明する。
【００５６】
まず、制御装置２００は、ロボットコントローラ１によりロボット本体１０を複数の校正点における特定の位置姿勢に位置決めしながら、各々の位置姿勢においてビジョンコントローラ２によりカメラ３でマーカ（校正用基準物）２１を撮像する。ビジョンコントローラ２は、得られた撮像画像に基づき、ビジョン座標系におけるマーカの位置姿勢を計測結果として出力する。制御装置２００は、校正に必要な校正用データとして、上記のマーカの位置姿勢の計測値、およびその時の（ロボット座標系における）ロボット本体１０の位置姿勢を取得して記憶する（ステップＳ１）。
【００５７】
ここで、本実施形態の特徴であるステップＳ１の校正用データを取得する手順を、図４に示すフローチャートに沿って詳細に説明する。
【００５８】
まず、制御装置２００は、繰返し処理のカウンタｉ、ｊを初期化する（ステップＳ１１）。これらのカウンタｉ、ｊは、例えばロボットコントローラ１のＲＡＭ３３やＣＰＵ３１のレジスタなどを用いて構成される。本実施形態では、これらカウンタのうちカウンタｉは、５個（Ｎ＝５）の校正点Ｐ１〜Ｐ５をインデックスし、また、カウンタｊは各校正点においてロボット本体１０に取らせる３つの姿勢（ｎ＝３）をインデックスするものとする。
【００５９】
カウンタｉ、ｊを適当なパターンで制御することにより、上述のロボット本体１０にＮ＊ｎ個の位置姿勢を取らせることができる。例えば、後述の図６に示す例では、１つの校正点においてロボット本体１０に３姿勢を取らせ、３姿勢の撮像が終了したら次の校正点での撮像を行う制御を示している。このような制御は、例えばカウンタｊの値を１からインクリメントし、カウンタｊがｎになったらカウンタｉをインクリメントし、カウンタｊは１にリセットする、といったパターンでカウンタｉ、ｊの値を制御することにより可能となる。このようなパターンでカウンタｉ、ｊの値を制御し、ロボット本体１０をＮ＊ｎ（本実施形態の場合１５）個の位置姿勢に制御し、各位置姿勢においてカメラ３によりマーカ２１を撮影し、校正データを取得することができる。
【００６０】
なお、本実施形態の場合、後述のように、Ｎ＊ｎ（本実施形態の場合１５）個の各々の位置姿勢における撮像を行うごとにロボット本体１０を教示点Ｐ０に復帰させ制御を行なう。このため、必ずしも後述の図６のように１校正点における３姿勢の撮像が続けて行われる必要はない。例えば上記とは逆にカウンタｉの値を先に１からインクリメントし、カウンタｉがＮになったらカウンタｊをインクリメントし、カウンタｉは１にリセットする、といったパターンで制御を行ってもよい。この場合は、撮像校正点Ｐ１〜Ｐ５において、順次ある一の姿勢での撮像を行い、それが終了したら次の姿勢で撮像校正点Ｐ１〜Ｐ５の撮像を行う、といった制御になる。もちろん、他の条件で必要であれば、校正点（位置）を制御するカウンタｉ、撮像時の姿勢を制御するカウンタｊのそれぞれの値を上に例示したものとは異なるパターンで制御してもよい。
【００６１】
さて、ステップＳ１１に続き、ロボットコントローラ１によりロボット本体１０を実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点Ｐ０に位置決めする（ステップＳ１２）。
【００６２】
次に、ロボットコントローラ１によりハンド１２でマーカを把持したロボット本体１０をカウンタ［ｉ，ｊ］の値により示される位置姿勢に制御する（ステップＳ１３）。上記の通り、カウンタｉの値（１〜５）は例えば校正点Ｐ１〜Ｐ５を示し、カウンタｊの値（１〜３）は各校正点における撮像時のロボット本体１０の姿勢を示す。
【００６３】
ここで、相対位置姿勢を並進成分とオイラー角で表すものとすれば、（Ｘ、Ｙ、Ｚ、Ｒｘ、Ｒｙ、Ｒｚ）となり、それを同次変換行列Ｈの形で次式のように定義する。
【００６４】
【数１】
2015182144.tif 000003
但し、Ｒｏｔｘ、Ｒｏｔｙ、Ｒｏｔｚはそれぞれｘ、ｙ、ｚ軸まわりの回転を表す３×３の回転行列である。
【００６５】
そして、制御装置２００は、ビジョンコントローラ２によりカメラ３でマーカ２１を計測する（ステップＳ１４）。さらに、制御装置２００はビジョンコントローラ２によりカメラ３から取得したデータに基づいてマーカ２１の位置姿勢を計算する。すなわち、ビジョンコントローラ２は、ビジョン座標系４２を基準としたマーカ座標系４４の相対位置姿勢Ｈｖｐ［ｉ，ｊ］を算出する。
【００６６】
制御装置２００は、ロボット本体１０を位置決めした際のハンド１２の先端部の位置姿勢Ｈｒｔ［ｉ，ｊ］を取得して、ＲＡＭ３３に保存し（ステップＳ１５）、また、計測した相対位置姿勢Ｈｖｐ［ｉ，ｊ］をＲＡＭ３３に記憶する（ステップＳ１６）。このハンド１２の先端部の位置姿勢Ｈｒｔ［ｉ，ｊ］は、ロボット本体１０の位置姿勢を代表する値として取り扱うことができる。なお、ハンド１２の先端部の位置姿勢Ｈｒｔ［ｉ，ｊ］としては、ロボット本体１０の位置姿勢の決定後に各関節のエンコーダから現在値を算出して用いることができる。あるいは、これに限らず、例えばハンド１２の先端部の位置姿勢の指令値をハンド１２の先端部の位置姿勢として用いてもよい。なお、一般には制御の目標値に対して少量の偏差が残るため、現在値の方がより高い精度になりやすい。
【００６７】
そして、制御装置２００は、カウンタ［ｉ、ｊ］の値を予め定めた上述のパターンのいずれかによって決定し、次の撮像を行なうロボット本体１０の次の位置姿勢をインデックスするよう制御する（ステップＳ１７）。
【００６８】
そして、ステップＳ１８では、カウンタ［ｉ、ｊ］の値を判定し、Ｎ＊ｎ個（本実施形態では５ｘ３＝１５）の位置姿勢における撮像を行ったか否かを判定する（ステップＳ１８）。なお、ここでのカウンタ［ｉ、ｊ］の値の判定方式は、上述のカウンタｉ、ｊの値を制御するパターンによって適宜決めておけばよい。ここで制御装置２００がＮ＊ｎ個の位置姿勢における撮像をまだ終了していないと判定した場合はステップ１２に戻り、上述と同様の処理を実行する（ステップＳ１２〜Ｓ１７）。一方、制御装置２００がＮ＊ｎ個の位置姿勢における撮像を終了したと判定した場合は図４の校正用データの取得処理を終了する。
【００６９】
以上のようにして、校正用データの取得処理（図３のステップＳ１）が終了した時には、ロボット本体１０のＮ＊ｎ個の位置姿勢Ｈｒｔ［ｉ，ｊ］（ｉ＝１，２，…Ｎ、ｊ＝１，２，…ｎ）がＲＡＭ３３に記憶される。同様に、ビジョンコントローラ２がマーカ２１の撮像画像を解析することにより得られたマーカ２１のＮ＊ｎ個の位置姿勢の計測した相対位置姿勢Ｈｖｐ［ｉ，ｊ］（ｉ＝１，２，…Ｎ、ｊ＝１，２，…ｎ）がＲＡＭ３３に記憶されている。
【００７０】
ここで、図６を参照して、１つの校正点においてロボット本体１０に３姿勢を取らせ、３姿勢の撮像が終了したら次の校正点での撮像を行う場合の動作を詳細に説明する。
【００７１】
図６は校正点Ｐ１（カウンタｉ＝１）において、ロボット本体１０のハンド１２で把持したマーカ２１に順次異なる３つの姿勢（カウンタｊ＝１、２、３）を取らせ、撮像を行う様子を詳細に示している。
【００７２】
この校正点Ｐ１における制御では、まず図６（ａ）に示すように、ロボットコントローラ１によりロボット本体１０を実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点Ｐ０に位置決めする。すなわち、ハンド１２で把持したマーカ２１を教示点Ｐ０の位置姿勢に移動する（図４ステップＳ１２）。
【００７３】
次に、図６（ｂ）に示すように、ロボットコントローラ１によりロボット本体１０を校正点Ｐ１に位置決めする。ここでは、マーカ２１を教示点Ｐ０と同じ姿勢のまま校正点Ｐ１の位置に移動する（ステップＳ１３）。その後、図４のステップＳ１４〜１８を実行する。
【００７４】
続いて図６（ｃ）に示すように、ロボットコントローラ１によりロボット本体１０を教示点Ｐ０に位置決めすることにより、マーカ２１をＰ０の位置に移動する（ステップＳ１２）。すなわち、マーカ２１を教示点Ｐ０の位置姿勢に復帰させる。この位置姿勢は図６（ａ）のものと同じである。
【００７５】
次に、図６（ｄ）に示すように、ロボットコントローラ１でロボット本体１０の位置姿勢を制御し、マーカ２１を校正点Ｐ１において図６（ｂ）とは異なる位置姿勢に制御する。この例では、例えば校正点Ｐ１においてマーカ２１は、図６（ｂ）の姿勢から鉛直な軸まわりに９０°回転させた姿勢に制御される。このように図６（ｃ）から図６（ｄ）の状態に移行する場合、マーカ２１をロボット本体１０によって回転運動させながら下降させ、校正点Ｐ１の位置に移動する（ステップＳ１３、図６（ｄ））。その後、図６（ｂ）の場合と同様に、図４のステップＳ１４〜１８を実行する。
【００７６】
次に、図６（ｅ）に示すように、図６（ａ），（ｃ）と同様、ロボットコントローラ１によりロボット本体１０を教示点Ｐ０に位置決めする。すなわち、ロボット本体１０ないしマーカ２１を教示点Ｐ０の位置姿勢に復帰させる制御を行う（ステップＳ１２）。
【００７７】
さらに、図６（ｆ）に示すように、ロボットコントローラ１でロボット本体１０の位置姿勢を制御し、マーカ２１を校正点Ｐ１において図６（ｂ）、図６（ｄ）とはさらに異なる位置姿勢に制御する。この例では、校正点Ｐ１においてマーカ２１の鉛直な軸廻りの回転角度は図６（ｂ）と同じであるが、鉛直な軸に対して所定の傾き（例えば５°前後）を持つ位置姿勢にマーカ２１が制御される。このように図６（ｅ）から図６（ｆ）の状態に移行する場合、マーカ２１をロボット本体１０によって回転運動（傾斜）させながら下降させ、校正点Ｐ１の位置に移動する（ステップＳ１３）。その後、図６（ｂ）、図６（ｄ）の場合と同様に、図４のステップＳ１４〜１８を実行する。
【００７８】
図６のような順序で校正用データを取得する場合、本実施形態は、ある校正点（Ｐ１）においてマーカ２１が異なる位置姿勢（図６（ｂ）、（ｄ）、（ｆ））を取る度に、前もってロボット本体１０が教示点Ｐ０を通る点に特徴がある。すなわち、ロボット本体１０（本実施形態の場合マーカ２１）を異なる位置姿勢に制御し、その位置姿勢で校正用データ取得のためマーカ２１を撮像する場合、その位置姿勢に制御する前に必ず教示点Ｐ０における特定の位置姿勢にロボット本体１０を制御する。また、本実施形態の制御は、上記のロボット本体１０（本実施形態の場合マーカ２１）の制御において、ある位置姿勢から次の位置姿勢に移行する場合、必ず上記教示点Ｐ０における特定の位置姿勢に復帰させる制御である、と言ってもよい。
【００７９】
このように、本実施形態では、校正データを取得するため特定の位置姿勢にロボット本体１０を制御する場合、必ず教示点Ｐ０の特定の位置姿勢を起点とする、また、次の位置姿勢への制御のために必ず教示点Ｐ０の特定の位置姿勢に復帰させる制御を行う。このような制御を行なうことにより、ロボット本体１０の機構部に内在するヒステリシスがリセットされる。これにより、ロボット座標系とビジョン座標系の校正に対するロボット機構のヒステリシスの影響を軽減することができ、校正の精度を大きく向上することができる。
【００８０】
次に、制御装置２００は、ロボット座標系４１とビジョン座標系４２の相対位置姿勢Ｈｒｖと、ツール座標系４３とマーカ座標系４４の相対位置姿勢Ｈｔｐを演算により求める（図３のステップＳ２）。これらの相対位置姿勢Ｈｒｖ、相対位置姿勢Ｈｔｐは、複数の位置姿勢［ｉ，ｊ］において各々取得したロボット本体１０の位置姿勢Ｈｒｔ［ｉ，ｊ］、およびマーカ２１の撮像データから計測した相対位置姿勢Ｈｖｐ［ｉ，ｊ］に基づき演算することができる。
【００８１】
以下に、具体的な校正演算手順を示す。本実施形態では、ロボット本体１０およびカメラ３の間と、ハンド１２およびマーカ２１の間とは、それぞれ固定されているため、上記のＨｒｖおよびＨｔｐは、ロボット本体１０の位置姿勢によらず一定である。カメラ３の計測誤差とロボット本体１０の動作誤差が無い場合、各校正点について数式２が成り立つ。
【００８２】
【数２】
2015182144.tif 000004
【００８３】
そして、本実施形態ではマーカ２１を撮像する位置姿勢はＮ＊ｎ（＝１５）個あるので、それぞれについて各値を取得すると、数式２をＮ＊ｎ個、連立することができる。実際には、得られるデータには誤差があるため、例えば誤差最小化計算によりＮ＊ｎ組のデータに対する誤差（残差）が最小となるＨｒｖおよびＨｔｐの値を算出し、校正値とすることができる。なお、この校正値を求める演算には最小二乗法などを用いることもできる。
【００８４】
次に、上述したロボットシステム１００により、得られた校正値を利用して実工程でロボット本体１０に指令値を出力し、ワークを操作する場合の制御を図９のフローチャートを参照して説明する。ここでは、ロボット本体１０のハンド１２をワークに移動させ、把持させる動作を例に説明する。
【００８５】
まず、ロボットコントローラ１は、ロボット本体１０を計測用の位置姿勢に位置決めし、ビジョンコントローラ２によりワークをカメラ３で計測する（図９ステップＳ３、計測値取得工程）。ここで、カメラ３により計測したワークの位置姿勢の計測値をＨｖｗとする。
【００８６】
次に、ロボットコントローラ１は、計測したワークの位置姿勢の計測値Ｈｖｗに基づいて、手先指令値Ｈｒｔｒｅｆを演算して生成する（ステップＳ４、指令値生成工程）。ここでは、ロボットコントローラ１は、例えば公知の剛体の座標変換モデルを用い手先指令値Ｈｒｔｒｅｆを求める。例えば、手先指令値Ｈｒｔｒｅｆは、上記のようにして求めたロボット座標系４１とビジョン座標系４２の相対位置姿勢Ｈｒｖを校正値として用いて、次の数式３により演算することができる。
【００８７】
【数３】
2015182144.tif 000005
【００８８】
そして、ロボットコントローラ１は、上記の手先指令値Ｈｒｔｒｅｆに基づき、ロボット本体１０を位置決めして作業を行わせる（ステップＳ５、位置姿勢制御工程）。この実工程では、ロボット本体１０はカメラ３による計測値を利用したワークの位置姿勢に動作する前に、上述の教示点Ｐ０を通る軌道を取る。
【００８９】
そして、上述の校正データ取得処理では、マーカ２１を撮像する位置姿勢に移行する場合、実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点Ｐ０を起点とし、また次の撮像のために教示点Ｐ０に復帰する制御を行っている。このため、校正時と実工程で校正点に向かう、あるいはワークに向かう時のロボット本体１０の動作方向や軌道が同じか、または類似したものになり、校正処理と実工程で発生するヒステリシスには大きな差が生じない。従って、上述の校正処理の後、上記のようにして演算された手先指令値によって、実工程においてロボット本体１０のハンド１２にワークへのアプローチを高精度に実行させることができる。
【００９０】
以上のようにして、本実施形態によれば、ビジョン座標系とロボット座標系を簡単な制御により高精度に校正することができる。これにより、例えば実工程において、ツール座標系４３と、ワーク座標系とを高精度に一致させ、ハンド１２によるワークの操作を高精度に実施することができる。
【００９１】
図７は、実施例と比較例とにおける、ロボット座標系４１とビジョン座標系４２との校正誤差を示した図である。図７はロボット座標系４１とビジョン座標系４２との校正誤差（単位ｍｍ）を縦軸に取って示したものである。図７において、校正誤差Ｅ１とＥ２が比較例の校正誤差、校正誤差Ｅ３が上述の本実施形態における校正処理を行った場合に得られた校正誤差である。
【００９２】
図７の校正誤差Ｅ１は、図４の制御においてステップＳ１２の教示点Ｐ０への移動（ないし復帰）を行わずに校正処理を行った場合の校正誤差である。この校正誤差Ｅ１は、例えば、図３のステップ１において、実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点Ｐ０を通らずに校正点Ｐ１〜ＰＮを順繰りに移動して校正データを取得した場合のものである。
【００９３】
また、図７の校正誤差Ｅ２は、図４の制御においてステップＳ１２を実行するが、上記の教示点Ｐ０ではなく、例えば、実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点の近傍の範囲外の点Ｐ０’を用いた場合である。この点Ｐ０’は、例えば図５に斜線で示したワークの位置姿勢に動作する前の教示点の近傍の範囲Ｂから外れた位置のひとつで、図７の校正誤差Ｅ２は点Ｐ１と同じ点をステップＳ１２で教示点Ｐ０’として用いた場合のものである。すなわち、この校正誤差Ｅ２を得た校正では、ステップＳ１２の教示点Ｐ０’への移動（ないし復帰）を行っている。
【００９４】
図７から明らかなように、本実施形態の校正誤差Ｅ３は、マーカ撮像のための位置姿勢制御ごとに特定の教示点を起点とする、あるいは教示点への復帰を行わない場合の校正誤差Ｅ１に対して校正誤差を約４０％程度小さい。また、本実施形態の校正誤差Ｅ３は、ワークの位置姿勢に動作する前の教示点の近傍の範囲（斜線の内部）から外れた点Ｐ０’を起点とする、あるいは点Ｐ０’へ復帰する制御を行った場合の校正誤差Ｅ２に対して校正誤差に対して約１７％程度小さい。
【００９５】
なお、教示点Ｐ０として好適と考えられる図５の範囲Ｂの中でも、図５の教示点Ｐ０との距離のほぼ半分を半径とし、教示点Ｐ０を中心とする球の範囲内に教示点Ｐ０を取った場合に、校正誤差を小さくする効果が高いことが判った。
【００９６】
上記のような考察結果を考慮すると、校正用データ取得のために複数の位置姿勢にロボット本体１０を制御する場合、各位置姿勢への制御ごとに特定の教示点Ｐ０を起点とする（あるいは復帰させる）ことにより校正誤差を小さくできることが判る。そして、特に実工程においてワーク操作に向かって動作するロボット本体１０が取り得る空間の範囲内（例えば図５のＢ）に教示点Ｐ０を設定すると校正誤差を大きく低減することができる。このような教示点Ｐ０の配置によって、校正時と実工程で校正点に向かう、あるいはワークに向かう時のロボット本体１０の動作方向や軌道が同じか、または類似したものとなる。これによって、校正処理と実工程で発生するヒステリシス特性が近似のものとなり、校正誤差を低減できるものと考えられる。
【００９７】
以上説明したように、本実施形態のロボットシステム１００によれば、校正データを取得する際に、空間上の特定の１の教示点（Ｐ０）を起点とする（へ復帰する）動作を用いることにより、各校正点に動作する前にロボットのヒステリシスがリセットされる。これにより、ロボット座標系とビジョン座標系との校正の精度をより向上することができる。
【００９８】
特に、校正時と実工程で校正点に向かう、あるいはワークに向かう時のロボット本体１０の動作方向や軌道が同じか、または類似したものとなるよう、教示点（Ｐ０）を配置することにより、校正動作データに含まれるヒステリシスの影響を軽減できる。例えば、空間上の特定の教示点（Ｐ０）として、実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点の近傍点を用いることで、実工程で通る経路を校正動作で用いることができる。それにより、校正動作における位置姿勢の制御において、ロボット本体の関節の動作方向を実工程と同じ方向にできる。そのため、簡便に、校正と実工程で発生するヒステリシス特性を類似したものに制御することができ、ロボット座標系とビジョン座標系の校正の精度を大きく向上することができる。
【００９９】
また、本実施形態のロボットシステム１００によれば、マーカを複数の校正点で計測することにより、簡便に、１点ではなく広い範囲でロボット座標系とビジョン座標系との校正処理を実施することができる。
【０１００】
＜第２の実施形態＞
上述の第１の実施形態では、視覚センサとしてのカメラ３をロボット本体１０とは別の位置に固定した構成について説明した。しかしながら、本発明は、ロボット本体が校正用のマーカまたは視覚センサのうちいずれか一方を支持し、ロボット本体を所定の校正範囲に配置された校正点に動作させて視覚センサにマーカを撮像させる構成において実施できるものである。
【０１０１】
例えば、図８に示すように視覚センサとしてのカメラ４をロボット本体１０で支持し、校正範囲内の校正点にロボット本体１０の位置姿勢を制御して、環境に固定したマーカを撮像する校正動作を行う場合にも同様の制御が可能である。
【０１０２】
以下では、第２の実施形態として、図８に示すようなロボットシステム１００Ａにおける校正処理につき説明する。なお、以下では、第１の実施形態と同一ないし相当する構成については同一の参照符号を用い、それらの説明は省略ないし簡略化するものとし、第１の実施形態と異なる点を中心に説明する。
【０１０３】
本実施形態では、カメラ４はアーム１１の先端に装着され、ロボット本体１０を動作させることにより、ロボット本体１０の動作範囲内の任意の位置姿勢に位置決めすることができる。ビジョンコントローラ２には、ロボットコントローラ１とカメラ４が接続されている。
【０１０４】
ビジョンコントローラ２は、カメラ４を介して取り込まれた画像信号を、濃淡グレイスケールによる明暗信号に変換した上でフレームメモリ（不図示）に格納する。ビジョンコントローラ２の機能、すなわち、フレームメモリに格納された画像を処理し、対象物を識別し、位置姿勢を計測して得られた対象物の識別結果、および対象物の位置姿勢をロボットコントローラ１に送信する機能は、第１の実施形態と同様である。
【０１０５】
本実施形態のカメラ４は、マーカ２１（実工程においてはワーク）の対象物を撮像し、ビジョンコントローラ２に撮像画像の画像信号を送信する。カメラ４は本実施形態でも単眼カメラを用いているが、３次元を計測できるセンサであれば良く、複眼カメラ、レーザレンジファインダ、あるいは、それらの組合せによって構成してもよい。
【０１０６】
また、本実施形態の校正治具２０は、マーカ２１をロボット本体１０の設置環境中の固定位置に設置される。マーカ２１を固定する好適な位置としては、例えば、基台１３上の実際の作業時にワーク（不図示）が固定される位置が考えられる。なお、校正治具２０に対して、マーカ２１がどこに固定されているかは既知でなくともよい。本実施形態で用いるマーカ２１は第１の実施形態と同じものでよい。
【０１０７】
以上のように、本実施形態では、視覚センサとしてのカメラ４はロボット本体１０の先端部に固定されたカメラである。また、マーカ２１はロボット本体１０の環境中の固定位置に設置され、ロボット本体１０に対して相対的に位置決めされている。
【０１０８】
ここで、第１実施形態と同様に、本実施形態で想定する実工程とは、カメラ４による計測値を利用してロボット本体１０に指令値を出力してハンド１２をワークに移動させ把持させる工程とする。つまり、生産ラインで順次供給されたワークに対して繰返し行う工程である。以下に、その実工程を成り立たせるために、ビジョン座標系とロボット座標系の校正処理で必要な設定項目を述べる。
【０１０９】
図８において、校正範囲Ａは第１実施形態と同様、例えばワークの位置のばらつきの範囲であって、校正点の取り得る範囲である。
【０１１０】
校正点Ｐ１〜Ｐ５は校正範囲Ａに設定された点で、これら各校正点において特定の姿勢にロボット本体１０を制御し、各々の位置姿勢においてカメラ４によりマーカ２１を撮像する。
【０１１１】
校正点の数Ｎは本実施形態においてもＮ＝５であるものとし、また、各校正点において撮像のためにロボット本体１０を制御する姿勢の数ｎはｎ＝３であるものとする。第１の実施形態と同様、校正処理において各々撮像のためにロボット本体１０を制御する位置姿勢はＮ＊ｎ個、すなわちＮ＊ｎ＝１５（５ｘ３）である。この校正処理において各々撮像のためにロボット本体１０を制御すべき位置姿勢は制御装置２００のＲＯＭ３２又はＲＡＭ３３に記憶させておく。
【０１１２】
第１の実施形態と同様、校正点の位置姿勢の決め方としては、ロボット本体１０が作業時に必要とし得る動作範囲の中で、なるべく多様な姿勢を取らせることが好ましい。例えば、校正範囲Ａに設置するワークの位置姿勢に実際にはばらつきが想定されるので、ばらつきを含むようにロボット本体１０の可動範囲を広めに設定することが精度向上のために好ましい。また、Ｎ個の校正点は、ユーザが例えばティーチングペンダントなどの汎用信号インターフェイス３４により教示してもよい。
【０１１３】
なお、本実施形態では、マーカ２１側を固定し、カメラ４をロボット本体１０に支持させている。このため、各校正点においてロボット本体１０の位置姿勢を制御することにより、実際にはそれぞれマーカ２１を撮像する時にカメラ４がＮ＊ｎ個分の位置姿勢に制御されることになる。本実施形態では簡略化のため、第１の実施形態の図６のような図示を省略するが、１校正点においてカメラ４に取らせる３つの姿勢は、例えば次のようなものが考えられる：
（１）カメラ４の撮影光軸をマーカ２１に正対させた姿勢、
（２）（１）の姿勢からカメラ４の撮影光軸（あるいはハンド１２の中心軸）廻りにカメラ４を所定角度（例えば９０°）回転させた姿勢、
（３）（１）の姿勢からカメラ４の撮影光軸を数°（例えば５°）傾斜させた姿勢、
である。
【０１１４】
本実施形態において、教示点Ｐ０を実工程でカメラ４による計測値を利用したワークの位置姿勢に動作する前の教示点に取るのは第１実施形態と同様で、実工程でカメラ４によって位置補正する教示点を通過する前の教示点であるものとする。この教示点Ｐ０は、予め制御装置２００のＲＯＭ３２又はＲＡＭ３３に記憶させておく。
【０１１５】
また、教示点Ｐ０の代わりに、実工程でカメラ４による計測値を利用したワークの位置姿勢に動作する前の教示点の近傍点を別の教示点Ｐ０として用いてもよい。教示点Ｐ０として用いることができる近傍点の取り得る範囲は、上述の第１実施形態と同様、図５の範囲Ｂとすることができる。図５の範囲Ｂについては第１実施形態で詳細に説明したので、ここでは重複した説明は省略する。
【０１１６】
次に、本実施形態のロボットシステム１００Ａの校正方法について説明する。ロボットシステム１００Ａにより校正値を算出する手順を、図３に示すフローチャートにより説明する。本実施形態においても、構成処理全体の手順は図３の通り第１実施形態と同様である。ただし、各手順において第１実施形態と異なる部分があり、以下では、その異なる部分を中心に説明する。
【０１１７】
まず、制御装置２００は、ロボットコントローラ１によりロボット本体１０を複数の校正点における特定の位置姿勢に位置決めしながら、各々の位置姿勢においてビジョンコントローラ２によりカメラ３でマーカ（校正用基準物）２１を撮像する。ビジョンコントローラ２は、得られた撮像画像に基づき、ビジョン座標系におけるマーカの位置姿勢を計測結果として出力する。制御装置２００は、校正に必要な校正用データとして、上記のマーカの位置姿勢の計測値、およびその時の（ロボット座標系における）ロボット本体１０の位置姿勢を取得して記憶する（ステップＳ１）。
【０１１８】
ステップＳ１の校正用データの取得処理の詳細は図４のステップＳ１１〜Ｓ１８と同様である。本実施形態においても、ロボットコントローラ１によりロボット本体１０を実工程でカメラ３による計測値を利用したワークの位置姿勢に動作する前の教示点Ｐ０に位置決めする制御（ステップＳ１２）は同じである。また、制御装置２００は、ロボット本体１０が動作し得る範囲、かつマーカ２１がカメラ４の視野に収まる範囲でロボット本体１０を順次位置決めし、マーカ２１を計測する（ステップＳ１３〜１６）。そして、本実施形態においても、制御装置２００はＮ＊ｎ個の校正点の位置姿勢Ｈｒｔ［ｉ，ｊ］および計測したＮ＊ｎ個の相対位置姿勢Ｈｖｐ［ｉ，ｊ］をＲＡＭ３３に記憶する。
【０１１９】
次に、制御装置２００は、第１実施形態とは異なる校正値を演算して取得する。具体的には、制御装置２００は、ツール座標系４３とビジョン座標系４２との位置姿勢関係Ｈｔｖと、ロボット座標系４１とマーカ座標系４４との位置姿勢関係Ｈｒｐとを演算して取得する（ステップＳ２）。カメラ４の計測誤差とロボット本体１０の動作誤差が無い場合、各校正位置姿勢について数式４が成り立つ。
【０１２０】
【数４】
2015182144.tif 000006
【０１２１】
本実施形態においても、第１実施形態と同様に、校正点の位置姿勢はＮ＊ｎ（＝１５）個あるので、それぞれについて各値を取得すると、数式４をＮ＊ｎ個、連立することができる。実際には、得られるデータには誤差があるため、誤差最小化計算によりＮ＊ｎ組のデータに対する誤差（残差）が最小となるＨｔｖおよびＨｒｐの値を算出し、校正値とする。なお、この校正値を求める演算には最小二乗法などを用いることもできる。
【０１２２】
次に、図８のロボットシステム１００Ａにおいて、得られた校正値を利用して、実工程でロボット本体１０に指令値を出力してハンド１２をワークを操作する手順を、図９に示すフローチャートにより説明する。実工程における制御手順は、第１の実施形態で説明した図９の手順とほぼ同様である。ただし、各手順において第１実施形態と異なる部分があるので、以下では、その異なる部分を中心に説明する。
【０１２３】
図９の実工程制御において、まず、制御装置２００は、ロボット本体１０を計測用の位置姿勢に位置決めし、ビジョンコントローラ２がワークをカメラ４によって計測し、計測値Ｈｖｗを得る（ステップＳ３、計測値取得工程）。
【０１２４】
次に、制御装置２００は、計測したワークの位置姿勢の計測値Ｈｖｗに基づいて、手先指令値Ｈｒｔｒｅｆを演算して生成する（ステップＳ４、指令値生成工程）。本実施形態では、制御装置２００は手先指令値Ｈｒｔｒｅｆを次の数式５により算出する。
【０１２５】
【数５】
2015182144.tif 000007
ただし、Ｈｒｔ０はワーク計測時のツール座標系の位置姿勢である。
【０１２６】
そして、制御装置２００は、第１実施形態と同様に、指令値Ｈｒｔｒｅｆに基づき、ロボット本体１０を位置決めして作業を行わせる（ステップＳ５、位置姿勢制御工程）。この実工程では、ロボット本体１０はカメラ３による計測値を利用したワークの位置姿勢に動作する前に、上述の教示点Ｐ０を通る軌道を取る。
【０１２７】
本実施形態のロボットシステム１００Ａにおいても、校正データを取得する際に、空間上の特定の１の教示点（Ｐ０）を起点とする（へ復帰する）動作を校正動作で用いることにより、各校正点に動作する前にロボットのヒステリシスがリセットされる。これにより、ロボット座標系とビジョン座標系との校正の精度をより向上することができる。
【０１２８】
特に、上記の特定の教示点（Ｐ０）として、実工程でカメラ４による計測値を利用したワークの位置姿勢に動作する前の教示点の近傍点を用いることで、実工程で通る経路を校正動作で用いることができる。これにより、校正動作で行う関節の動作方向を実工程と同じ方向にできる。そのため、簡便に校正と実工程で発生するヒステリシス特性を類似したものに制御できるので、ロボット座標系４１（ツール座標系４３）とビジョン座標系４２との校正の精度をより向上することができる。
【０１２９】
以上の通り、本実施形態のようにカメラ４がロボット本体１０に固定され、マーカ２１がそれとは別に環境に固定される構成であっても、マーカ２１を撮像する特定の位置姿勢への制御毎に教示点Ｐ０を起点とする（あるいは教示点Ｐ０に復帰）動作を行わせる。これにより、前述した第１の実施形態と同様の理由で、ロボットシステム１００Ａの校正精度を向上させることができる。また、本実施形態でも、マーカの相対位置姿勢を複数の校正点で計測するようにしているため、簡便に、１点ではなく広い範囲で、ロボット座標系とビジョン座標系の校正を行うことができる。
【０１３０】
なお、各実施の形態で手先指令値Ｈｒｔｒｅｆを求めるために用いた校正値は、最小二乗法で導出したものを用いたが、他の演算方法を用いて算出するようにしてもよい。この校正値としては、最も近い校正点に最適化したものを校正値としてもよく、また校正範囲の複数点で多項式を用いて校正値を得るようにしても構わない。
【０１３１】
また、以上述べた第１の実施形態および第２の実施形態の校正処理における制御手順は具体的には制御装置２００により実行されるものである。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００のＣＰＵ３１が記録媒体に格納されたプログラムを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体およびそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３２】
また、各実施の形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ３２或いはＲＡＭ３３であり、ＲＯＭ３２或いはＲＡＭ３３にプログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。本発明を実施するためのプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１３３】
１…ロボットコントローラ；２…ビジョンコントローラ；３、４…カメラ（視覚センサ）；１０…ロボット本体；２０…校正治具；２１…マーカ（校正用基準物）；３１…ＣＰＵ（コンピュータ）；３２…ＲＯＭ（記録媒体）；３３…ＲＡＭ（記録媒体）；４１…ロボット座標系；４２…ビジョン座標系；４３…ツール座標系；４４…マーカ座標系；１００、１００Ａ…ロボットシステム；２００…制御装置
【図１】
2015182144.tif 000008
【図２】
2015182144.tif 000009
【図３】
2015182144.tif 000010
【図４】
2015182144.tif 000011
【図５】
2015182144.tif 000012
【図６】
2015182144.tif 000013
【図７】
2015182144.tif 000014
【図８】
2015182144.tif 000015
【図９】
2015182144.tif 000016