(57)【要約】【課題】正確な設計データが明らかな特別な治具を必要とせず、かつ、ロボット座標系とビジョン座標系との校正の精度をより向上させる。【解決手段】制御装置は、カメラ３によるマーカ２１の計測を実行することで、ロボット座標系とビジョン座標系との校正を行う際に、校正範囲に設定された少なくとも３点の教示点のロボット座標系での位置とビジョン座標系での位置とから校正値を算出する。３点の教示点のうちの２点は、マーカ２１のカメラ３の光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面Ａの異なる位置に設定される。３点の教示点のうちの上述の２点以外の１点は、マーカ２１の光軸に対する傾きが上述の２点と異なるように設定される。カメラ３の計測誤差として光軸方向に大きい量子化誤差の影響を低減でき、ロボット座標系とビジョン座標系との校正の精度をより向上できる。【選択図】図３
2015042437.tif 000002
【特許請求の範囲】
【請求項１】
ワークに対して動作を行うロボット本体と、
視覚センサと、
前記ロボット本体の位置姿勢を制御すると共に、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備え、
前記制御装置は、前記視覚センサによるマーカの計測を実行することで、前記ロボット本体の位置姿勢を定義するロボット座標系と、前記視覚センサの位置姿勢を定義するビジョン座標系と、の校正を行う際に、校正範囲に設定された少なくとも３点の教示点の前記ロボット座標系での位置と前記ビジョン座標系での位置とから校正値を算出し、
前記３点の教示点のうちの２点は、前記マーカの前記視覚センサの光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定され、
前記３点の教示点のうちの前記２点以外の１点は、前記マーカの光軸に対する傾きが前記２点と異なるように設定される、
ことを特徴とするロボットシステム。
【請求項２】
前記制御装置は、前記ロボット本体により、前記マーカを前記３点の教示点に動作させ、
前記視覚センサは、固定位置から前記マーカの位置を計測する、
ことを特徴とする請求項１記載のロボットシステム。
【請求項３】
前記マーカは、前記ロボット本体とは別の位置に固定され、
前記視覚センサは、前記ロボット本体に設置され、
前記制御装置は、ロボット本体を、固定された前記マーカに対して前記３点の教示点を得られるように動作させる、
ことを特徴とする請求項１記載のロボットシステム。
【請求項４】
前記制御装置は、前記光軸と平行な軸を中心として前記マーカと前記視覚センサとを相対的に第１所定角度α回転させることで前記同一平面の異なる位置に前記２点の教示点を、前記軸に対して前記マーカと前記視覚センサとを相対的に第２所定角度β回転させることで前記２点以外の１点の教示点を、それぞれ得られるように前記ロボット本体を動作させる、
ことを特徴とする請求項１乃至３のいずれか１項に記載のロボットシステム。
【請求項５】
前記第１所定角度αは、０°＜α＜１８０°である、
ことを特徴とする請求項４記載のロボットシステム。
【請求項６】
前記第２所定角度βは、５°≦β≦１０°である、
ことを特徴とする請求項４又は５に記載のロボットシステム。
【請求項７】
ワークに対して動作を行うロボット本体と、視覚センサと、前記ロボット本体の位置姿勢を制御すると共に、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備えたロボットシステムによって、前記ロボット本体の位置姿勢を定義するロボット座標系と、前記視覚センサの位置姿勢を定義するビジョン座標系との校正を行うロボットシステムの校正方法であって、
前記制御装置は、校正範囲に設定された少なくとも３点の教示点を得られるように前記ロボット本体を動作させる動作工程と、
前記視覚センサによるマーカの計測を実行することで、少なくとも前記３点の教示点の前記ロボット座標系での前記ロボット本体の位置と前記ビジョン座標系での前記マーカの位置とから校正値を算出する校正工程と、を備え、
前記３点の教示点のうちの２点は、前記マーカの前記視覚センサの光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定され、
前記３点の教示点のうちの前記２点以外の１点は、前記マーカの光軸に対する傾きが前記２点と異なるように設定される、
ことを特徴とするロボットシステムの校正方法。
【請求項８】
前記動作工程は、前記光軸と平行な軸を中心として前記マーカと前記視覚センサとを相対的に第１所定角度α回転させることで前記同一平面の異なる位置に前記２点の教示点を、前記軸に対して前記マーカと前記視覚センサとを相対的に第２所定角度β回転させることで前記２点以外の１点の教示点を、それぞれ得られるように前記ロボット本体を動作させる、
ことを特徴とする請求項７記載のロボットシステムの校正方法。
【請求項９】
前記第１所定角度αは、０°＜α＜１８０°である、
ことを特徴とする請求項８記載のロボットシステムの校正方法。
【請求項１０】
前記第２所定角度βは、５°≦β≦１０°である、
ことを特徴とする請求項８又は９に記載のロボットシステムの校正方法。
【請求項１１】
校正で用いる前記３点の教示点のうち、少なくとも１点の教示点に対応する位置姿勢をロボット本体が取れない場合、該教示点を前記視覚センサの光軸に沿った方向に平行移動させた点に教示点を設定する、
ことを特徴とする請求項７乃至１０のいずれか１項に記載のロボットシステムの校正方法。
【請求項１２】
請求項７乃至１１のいずれか１項に記載のロボットシステムの校正方法の各工程を前記制御装置に実行させるためのプログラム。
【請求項１３】
請求項１２に記載のロボットシステムの校正方法をコンピュータに実行させるためのプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの位置をカメラなどの視覚センサにより計測して、ロボット本体の動作位置補正などを行うロボットシステム、及び、このようなロボットシステムの校正を行うロボットシステムの校正方法に関する。
【背景技術】
【０００２】
近年、工場の生産ラインにおいて、作業の自動化・省人化を図るために、ロボットによる自動組立が多くなってきた。そこでは、多関節アームなどのロボット本体とカメラなどの視覚センサを組合せたシステムが利用されている。特に最近では作業対象物となるワークを視覚センサで３次元計測する必要性が高くなっている。
【０００３】
視覚センサによりワークを位置計測し、それに基づいてロボット本体の動作を補正する場合、視覚センサが計測したワークの位置姿勢データをロボット本体の位置姿勢を定義する座標系上のデータに変換する必要がある。ゆえに、視覚センサの計測データに用いられる座標系（以下、ビジョン座標系）と、ロボット本体の位置姿勢を定義する座標系（以下、ロボット座標系）との間の関係を予め求めておかなければならない。これら座標系間の校正を、一般的には“ハンドアイキャリブレーション”と呼ぶ。また、ビジョン座標系とロボット座標系の相対位置姿勢の校正精度が、そのまま視覚センサを用いたロボット本体の動作位置補正精度に関わるため、ハンドアイキャリブレーションの精度を高くすることが望まれる。
【０００４】
従来、正確な設計データや特別な治具を用いないハンドアイキャリブレーションの方法として、エンドエフェクタ（多指ハンド）に設置した所謂オンハンドカメラを備えたロボットアームを利用する方法が知られていた。その方法では、まず一直線上に並ばない少なくとも３つの位置から、基準となる同一対象物に関する位置を表わすセンサ出力を得る。そして、それぞれの出力をロボット座標系上で表現するデータと前記センサ出力を表わすデータとに基づくソフトウェア処理を実行することで、ハンドアイキャリブレーションを行う方法が提案されている（特許文献１参照）。また、センサで計測可能なマーカと、ロボットがタッチアップするための点との両者の位置関係が既知となるような治具と、を用いての自動ハンドアイキャリブレーション方法が提案されている（特許文献２参照）。これらの方法により、ロボット座標系とビジョン座標系との相対的な位置関係を算出していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３６４４９９１号公報
【特許文献２】特許第２７００９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の特許文献１に記載の方法では、ハンドアイキャリブレーションで用いる教示点によっては、カメラの計測精度を十分生かすことができない可能性がある。即ち、一般的に、カメラの計測誤差は量子化誤差の影響により、撮像面内での計測よりも光軸方向での計測の方が大きくなる。詳しく述べると、有限の画素からなる撮像素子を備えるカメラで対象物の位置計測を行う場合、対象物の検出位置は離散的に存在し、量子化誤差が存在する。また、カメラ光軸方向の対象物位置は、例えば三角測量法により、対象物の既知の間隔を有する２点を撮影した撮像面における計測距離に基づいて算出される。このため、カメラ光軸方向の位置計測誤差は、撮像面における２点の位置計測誤差の影響を受けるため、一般的にカメラ光軸方向の位置計測誤差は撮像面内での位置計測誤差よりも大きくなる。そのため、実際の作業現場等で人手による試行錯誤により、基準としての対象物とカメラの相対位置姿勢、即ち、校正で用いる教示点を探索すると、キャリブレーションに適した教示点が選ばれないケースがあり、校正精度が十分でないという問題があった。
【０００７】
また、上述の特許文献２に記載の方法の場合、基準としてのマーカとカメラの相対位置姿勢は複数点は必要ないが、正確な設計データが明らかな特別な治具を要する。正確な設計データが明らかな特別な治具は、普通の治具に比べてコスト増であり、工数もかかる。
【０００８】
本発明は、このような事情に鑑み、正確な設計データが明らかな特別な治具を必要とせず、かつ、ロボット座標系とビジョン座標系との校正の精度をより向上させられるロボットシステム及びその校正方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ワークに対して動作を行うロボット本体と、視覚センサと、前記ロボット本体の位置姿勢を制御すると共に、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備え、前記制御装置は、前記視覚センサによるマーカの計測を実行することで、前記ロボット本体の位置姿勢を定義するロボット座標系と、前記視覚センサの位置姿勢を定義するビジョン座標系と、の校正を行う際に、校正範囲に設定された少なくとも３点の教示点の前記ロボット座標系での位置と前記ビジョン座標系での位置とから校正値を算出し、前記３点の教示点のうちの２点は、前記マーカの前記視覚センサの光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定され、前記３点の教示点のうちの前記２点以外の１点は、前記マーカの光軸に対する傾きが前記２点と異なるように設定される、ことを特徴とするロボットシステムにある。
【００１０】
また、本発明は、ワークに対して動作を行うロボット本体と、視覚センサと、前記ロボット本体の位置姿勢を制御すると共に、前記視覚センサによる計測値を利用してワークの位置姿勢を算出する制御装置と、を備えたロボットシステムによって、前記ロボット本体の位置姿勢を定義するロボット座標系と、前記視覚センサの位置姿勢を定義するビジョン座標系との校正を行うロボットシステムの校正方法であって、前記制御装置は、校正範囲に設定された少なくとも３点の教示点を得られるように前記ロボット本体を動作させる動作工程と、前記視覚センサによるマーカの計測を実行することで、少なくとも前記３点の教示点の前記ロボット座標系での前記ロボット本体の位置と前記ビジョン座標系での前記マーカの位置とから校正値を算出する校正工程と、を備え、前記３点の教示点のうちの２点は、前記マーカの前記視覚センサの光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定され、前記３点の教示点のうちの前記２点以外の１点は、前記マーカの光軸に対する傾きが前記２点と異なるように設定される、ことを特徴とするロボットシステムの校正方法にある。
【発明の効果】
【００１１】
本発明によれば、少なくとも３点の教示点のうちの２点が、マーカの光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定されるため、光軸方向に大きい量子化誤差の影響を低減できる。そして、ロボット座標系とビジョン座標系との校正の精度をより向上させられる。また、この校正の際には、正確な設計データが明らかな特別な治具を必要としないため、低コストで校正の精度をより向上させられる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るロボットシステムの概略構成図。
【図２】第１の実施形態で用いるマーカの平面図。
【図３】（ａ）本実施形態で用いる３点の教示点を示す模式図、（ｂ）カメラとマーカの教示点における相対位置姿勢を示す模式図。
【図４】２つのドットをカメラの撮像面に投影した場合の模式図。
【図５】実施例と比較例との校正の誤差を示す図。
【図６】本発明の第２の実施形態に係るロボットシステムの概略構成図。
【発明を実施するための形態】
【００１３】
＜第１の実施形態＞
本発明の第１の実施形態について、図１〜図５を用いて説明する。まず、図１を用いて、本実施形態のロボットシステムの概略構成について説明する。
【００１４】
［ロボットシステム］
本実施形態のロボットシステム１００は、制御装置２００、ロボット本体１０、視覚センサとしてのカメラ３を備える。制御装置２００は、ロボット本体１０の位置姿勢を制御すると共に、カメラ３による計測値を利用してワークの位置姿勢を算出するもので、ロボットコントローラ１とビジョンコントローラ２とを有している。ロボットコントローラ１にはロボット本体１０とビジョンコントローラ２が接続されている。ビジョンコントローラ２には、カメラ３が接続されている。ロボット本体１０のエンドエフェクタとしてのハンド１２には、校正治具２０が把持されている。以下、各部分について説明する。
【００１５】
ロボット本体１０は、多関節アーム１１（以下、アームという）及びハンド（エンドエフェクタ）１２を有し、ワークに対して動作を行う。アーム１１としては、７つのリンクと、各リンクを揺動又は回動可能に連結する６つの関節とを備える６軸の垂直多関節アームを適用している。本実施形態では、アーム１１として６軸の垂直多関節アームを適用しているが、これに限らず、軸数は用途や目的に応じて適宜変更しても良い。また、アーム１１は、基台１３に固定されており、基台１３には基台１３を基準にしてアーム１１の位置姿勢を表すロボット座標系４１が設定されている。言い換えれば、ロボット座標系４１は、ロボット本体１０の位置姿勢を定義する座標系であり、ロボット本体１０（基台１３）に固定された座標系となっている。
【００１６】
アーム１１の各関節には、各関節を各々駆動するモータあるいは必要に応じて直動アクチュエータが、出力機器として設けられている。各関節には、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節のトルクを検知するトルクセンサとが、入力機器として設けられている。
【００１７】
アーム１１は、制御装置２００のロボットコントローラ１から出力される指令値により各関節を駆動して、ハンド１２の位置姿勢を調整するようになっている。ロボットコントローラ１は、ロボット座標系４１を基準とするツール座標系４３の相対位置姿勢の目標値に対して、アーム１１の各関節の取るべき角度を計算し、各関節に対して指令値を出力するようになっている。また、ロボットコントローラ１は、エンコーダから各関節の現在角度情報を取得し、ツール座標系４３の相対位置姿勢を算出可能になっている。
【００１８】
アーム１１の先端部にはハンド１２が支持されており、ハンド１２は、アーム１１の動作により位置姿勢が調整されると共に、ワークや校正治具２０を把持可能な例えば３本の指を備えている。ハンド１２には、ハンド１２を基準にしてツール座標系４３が設定されている。本実施形態では、エンドエフェクタとしてワークなどを把持可能なハンド１２が適用されている。しかしながら、これには限らず、例えば把持以外の手段でワークなどを保持する機構や、ワークに加工を施す工具等、ワークに対して作業可能なエンドエフェクタの全般を含めることができる。
【００１９】
カメラ３は、固定位置からワークやマーカ２１の位置を計測する視覚センサであって、後述する校正を行うためのマーカ２１、実際に作業を行うワークなどの対象物を撮影し、ビジョンコントローラ２に画像信号を送信する。本実施形態では、視覚センサであるカメラ３として単眼カメラを用いているが、視覚センサは、複眼カメラ、レーザレンジファインダ、或いは、それらの組合せでも良い。カメラ３には、光軸方向及び撮像視野の縦横方向を基準にしてカメラ３の位置姿勢を定義するビジョン座標系４２が設定されている。即ち、ビジョン座標系４２は、カメラ３の位置姿勢を定義する座標系であり、カメラ３に固定された座標系となっている。
【００２０】
ロボットコントローラ１は、コンピュータとしてのＣＰＵ３１と、ＣＰＵ３１にバス接続されたＲＯＭ３２、ＲＡＭ３３、汎用信号インターフェイス３４などから構成される。ＲＯＭ３２には、ロボットシステム１００を制御するプログラムが格納される。また、ＲＡＭ３３には、ロボット本体１０の動作やビジョンコントローラ２への指令送信、ビジョンコントローラ２からの画像処理結果の受信等を制御するプログラム、関連設定値が格納される。更に、ＲＡＭ３３は、ＣＰＵ３１による演算実行時の一時記憶用のメモリや必要に応じて設定されるレジスタ領域としても使用される。汎用信号インターフェイス３４は、ビジョンコントローラ２やロボット本体１０の各軸を制御するサーボ回路、オフラインプログラミング装置、製造ラインの制御部等に対する入出力装置として機能する。
【００２１】
ビジョンコントローラ２は、カメラ３を介して取り込まれた画像信号を、濃淡グレイスケールによる明暗信号に変換した上でフレームメモリに格納する。また、フレームメモリに格納された画像を処理し、ワークやマーカ２１などの対象物の識別、位置姿勢を計測する。ここで計測される位置姿勢は、ビジョン座標系４２を基準とするマーカ座標系４４の位置姿勢に相当するデータである。更に、処理した対象物の識別結果、および位置姿勢をロボットコントローラ１に送信する。また、ビジョンコントローラ２には照明（不図示）が接続されていても良い。そのとき、ビジョンコントローラ２は照明の制御も行う。
【００２２】
校正治具２０は、ロボットシステム１００の校正を行う際に、マーカ２１を固定することができ、ハンド１２あるいはアーム１１に固定される。例えば、校正治具２０はハンド１２により把持されることで、ハンド１２に固定される。なお、校正治具２０に対して、マーカ２１がどこに固定されているかは既知でなくとも良い。
【００２３】
マーカ２１は、校正を行うためにカメラ３で計測するもので、図２に示すように、穴や印刷などの複数のドット２２がパターンとして付され、ドット２２間の位置は予めビジョンコントローラ２に設定値として格納されている。それにより、ビジョンコントローラ２はマーカ２１の位置姿勢を計測することができる。また、マーカに付された三角形２３によりマーカ２１の姿勢を一意に求めることができる。なお、マーカ２１はカメラ３から計測できればよく、平面上でなく立体的なものでも良い。
【００２４】
このように構成されるロボットシステム１００は、ロボットコントローラ１のメモリに格納された動作プログラムによって、ロボット本体１０を制御する。そして、ロボット本体１０を動作させることにより、校正治具２０をロボット本体１０の動作範囲内の任意の位置姿勢で位置決めすることができる。
【００２５】
ここで、本実施形態におけるロボットシステム１００の、ロボット座標系４１とビジョン座標系４２との校正方法について説明する。前提条件として、校正治具２０に対して、マーカ２１がどこに固定されているかは既知で無い場合を考える。また、各座標系自体の校正は終了しているものとする。その場合、一般的に、カメラ３とマーカ２１の相対位置姿勢において、少なくとも３点の異なる相対位置姿勢を取らせる。即ち、ユーザが、例えばティーチングペンダントなどの汎用信号インターフェイス３４により少なくとも３点の相対位置姿勢を教示する。制御装置２００は、ロボット座標系４１とビジョン座標系４２との校正を行う際に、校正範囲に設定された少なくとも３点の教示点のロボット座標系４１での位置とビジョン座標系４２での位置とから校正値を算出する。
【００２６】
このとき、それぞれの点でロボット座標系４１とツール座標系４３の相対位置姿勢と、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を得る必要がある。それにより、校正すべきロボット座標系４１とビジョン座標系４２の相対位置姿勢を求めることができる。
【００２７】
次に、校正で用いる少なくとも３点の教示点の設定方法について、図３を用いて説明する。図３（ａ）は教示点と校正範囲を示し、図３（ｂ）はカメラ３とマーカ２１の相対位置姿勢を示す。３点の教示点のうちの２点は、基準であるマーカ２１のカメラ３の光軸（ｚ軸）に対する傾きが同じで、且つ、光軸を法線とする同一平面Ａの異なる位置に設定される。ここで、図３に示す平面Ａは、カメラ３の画角の範囲内に設定されたカメラ３の光軸を法線とする平面であり、この平面Ａはロボット座標系４１とビジョン座標系４２との校正範囲を示している。また、ここで言うカメラ３の光軸は、ロボット座標系４１において設定される光軸（ｚ軸）であるが、上述のようにロボット座標系４１自体の校正は終了しているため、実際のカメラ３の光軸と一致しているものとする。なお、設計値上のカメラ３の光軸と一致するようにしても良い。また、３点の教示点のうちの上述の２点以外の残りの１点は、マーカ２１の光軸に対する傾きが上述の２点と異なるように設定される。なお、少なくとも３点の教示点がこのように設定されれば良く、教示点は３点以上あっても良く、教示点を設定する順番も問わない。また、取り得る教示点の位置姿勢は、マーカ２１が画角の範囲内に収まるようにし、かつ、校正で必要な回転角度の範囲内とする。さらに、後述する第２及び第３の実施形態でも、同様な位置姿勢を取っても良い。
【００２８】
制御装置２００は、上述のように設定される教示点を得られるように、次のようにロボット本体１０を動作させる。即ち、光軸と平行な軸を中心として、校正を行うためのマーカ２１とカメラ３とを相対的に第１所定角度α回転させることで同一平面Ａの異なる位置に２点の教示点を得る。本実施形態では、カメラ３は固定されているため、ロボット本体１０によりマーカ２１をｚ軸と平行な軸を中心として回転させることで２点の教示点を得る。このとき、マーカ２１のドット２２が形成されている平面が平面Ａとの平行を維持した状態で、マーカ２１を回転させることが好ましい。但し、マーカ２１のドット２２が形成されている面が平面Ａに対して傾斜していたとしても、２点の教示点で、マーカ２１の中心が平面Ａ上に位置し、且つ、マーカ２１の面のカメラ３の光軸（ｚ軸）に対する傾きが同じであれば良い。なお、上述の第１所定角度αは、０°＜α＜１８０°とする。また、本実施形態では、上述の光軸と平行な軸とは、厳密に平行な軸の他、光軸からの傾斜角度が例えば±２°以内である軸についても、計測精度を大きく低下させることはないので含めてもよい。
【００２９】
また、光軸と平行な軸に対してマーカ２１とカメラ３とを相対的に第２所定角度β回転させることで、マーカ２１の光軸に対する傾きが上述の２点と異なる１点の教示点を得る。本実施形態では、ロボット本体１０によりマーカ２１をｚ軸と平行な軸に対して傾ける。言い換えれば、マーカ２１を上述の２点の教示点を得る場合よりも平面Ａに対して傾ける。これにより、マーカ２１のドット２２が形成されている面が、同一平面Ａ上から外れる。なお、第２所定角度βは、５°≦β≦１０°とする。
【００３０】
ここで、第２所定角度βが５°未満の場合には、上述の２点の教示点との差が得にくい。言い換えれば、校正するためのデータとして、３点目の教示点が１点目及び２点目の教示点に対して確実にずれていた方が良いため、第２所定角度βを５°以上とする。一方、第２所定角度βを１０°よりも大きくした場合、上述の２点で計測するマーカ２１の複数のドット２２に対して、残りの１点で計測するマーカ２１の複数のドット２２を計測しにくくなる可能性がある。言い換えれば、３点の教示点のマーカ２１の複数のドット２２をカメラ３で正確に認識するためには、第２所定角度βを１０°以下とすることが好ましい。
【００３１】
具体的な教示点の設定方法を説明する。まず、１点目の教示点は、校正する位置姿勢を選ぶ。２点目の教示点は、１点目の教示点に対して、光軸（ｚ軸）回りにユーザが指定した相対角度（第１所定角度）αを取り、且つ、光軸に対して直角なｘｙ方向に並進させた位置姿勢を取る。つまり、１点目の教示点から２点目の教示点への回転移動の回転軸である光軸と平行な軸として、光軸そのものを選択する。また、ここでは、相対角度αを９０°とする。３点目の教示点は、光軸以外の２軸、即ち、ｘｙ軸まわりにユーザが指定した相対角度（第２所定角度）βを取り、且つ、１点目とも２点目とも異なる位置姿勢を取る。なお、上述の３点の教示点は、図３（ａ）に示すように、それぞれのマーカ２１の中心が光軸を法線とする同一平面Ａ上でそれぞれ異なる位置姿勢になるように配置し、かつ、校正する範囲最大になるように配置することが好ましい。
【００３２】
本実施形態のロボットシステム１００の校正方法では、制御装置２００のロボットコントローラ１が、少なくとも上述の３点の教示点にマーカ２１の中心が来るようにロボット本体１０を動作させる（動作工程）。そして、制御装置２００は、少なくとも３点の教示点のロボット座標系４１での位置とビジョン座標系４２での位置とから校正値を算出する（校正工程）。
【００３３】
即ち、校正工程では、それぞれの教示点においてロボット座標系４１とツール座標系４３の相対位置姿勢と、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を得る。ロボット座標系４１とツール座標系４３は、教示点の位置姿勢と同義なので、ロボットコントローラ１から得られる。また、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢は、マーカ２１をカメラ３で計測することにより得られるので、ビジョンコントローラ２から取得可能である。
【００３４】
ここで、相対位置姿勢を並進成分とオイラー角で表すと、（Ｘ、Ｙ、Ｚ、Ｒｘ、Ｒｙ、Ｒｚ）となる。それを同次変換行列Ｈの形で次式のように定義する。
【００３５】
【数１】
2015042437.tif 000003
但し、Ｒｏｔｘ、Ｒｏｔｙ、Ｒｏｔｚはそれぞれｘ、ｙ、ｚ軸まわりの回転を表す３×３の回転行列である。
【００３６】
ロボット座標系４１とビジョン座標系４２の相対位置姿勢を同次変換行列Ｈｒｖ、ツール座標系４３とマーカ座標系４４の相対位置姿勢を同次変換行列Ｈｔｐとする。また、３点それぞれの教示点におけるロボット座標系４１とツール座標系４３の相対位置姿勢を同次変換行列Ｈｒｔ１、Ｈｒｔ２、Ｈｒｔ３とする。また、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を同次変換行列Ｈｖｐ１、Ｈｖｐ２、Ｈｖｐ３とすると、次式で示す連立方程式が得られる。
【００３７】
【数２】
2015042437.tif 000004
【００３８】
式（２）をＨｒｖとＨｔｐについて最適化計算で解くことによって、校正すべきロボット座標系４１とビジョン座標系４２の相対位置姿勢の同次変換行列Ｈｒｖを求めることができる。Ｈｔｐは、ツール座標系４３とマーカ座標系４４の相対位置姿勢である。最適化計算においては、それに限らないが、最小二乗法などで解けることが知られている。
【００３９】
本実施形態の場合、上述のように、少なくとも３点の教示点のうちの２点が、マーカ２１の光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面Ａの異なる位置に設定される。特に本実施形態では、マーカ２１のドット２２が形成されている面が、２点の教示点で同一平面Ａ上に位置する。このため、カメラ３の計測誤差として光軸方向に大きい量子化誤差の影響を低減でき、ロボット座標系４１とビジョン座標系４２との校正の精度をより向上させられる。また、この校正の際には、正確な設計データが明らかな特別な治具を必要としないため、低コストで校正の精度をより向上させられる。
【００４０】
ここで、本実施形態の校正精度向上の原理を、図４を用いて簡単に示す。図４は、マーカ計測を例示した模式図であり、原理を説明するために簡略化した図である。まず、カメラ３の撮像面とマーカ２１のドット間の距離を精度よく求めることを考える。カメラ３の焦点とドット間の距離Ｌは次式で計算される。
【００４１】
【数３】
2015042437.tif 000005
【００４２】
ただし、ｆは焦点と撮像面との距離、ｄは２つのドット間距離、Ｘｌ、Ｘｒは、それぞれカメラ３の撮像面に投影された２つのドット中心の画素位置である。
【００４３】
Ｘｌ、Ｘｒは、カメラ３のセンサの画素位置であるため、量子化誤差がある。式（３）より、ｆは焦点と撮像面との距離であり定数なので、距離Ｌの分解能を大きく取るためには、２つのドット間距離ｄを大きく取る必要がある。従って、距離Ｌを精度良く計測するためには、２つのドット２２とカメラ３の撮像面が平行である必要がある。
【００４４】
本実施形態の場合、２点の教示点、即ち、マーカ２１の位置姿勢のうちの２点は、マーカ２１の光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面Ａの異なる位置に設定されている。このため、２点の教示点は、カメラ３の撮像面と平行になるように設定される。例えば、マーカ２１が光軸に対して傾いていても、言い換えれば、撮像面に対して傾いていても、マーカ２１の各ドット２２は、それぞれ撮像面に対して平行に移動することになる。従って、２点の教示点における各ドット２２のそれぞれの関係は、撮像面と平行となるように設定される。
【００４５】
この結果、本実施形態では、２点の教示点が撮像面に対して平行でない場合よりも、２点の教示点の距離を大きくできる。そして、カメラ３の計測精度に影響を与える光軸方向に大きい量子化誤差を低減でき、ロボット座標系４１とビジョン座標系４２との校正の精度をより向上させられる。特に本実施形態のように、マーカ２１のドット２２が形成されている面が、２点の教示点で同一平面Ａ上に位置すれば、カメラ３により各ドット２２の計測精度が向上して、校正の精度をより向上させられる。
【００４６】
また、上述のように、各教示点で得られたロボット座標系４１とツール座標系４３の相対位置姿勢と、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢から連立方程式を立てる。そして、それを最適化計算で解くことによって、ビジョン座標系４２とロボット座標系４１の相対位置姿勢を求める。その可解条件として、上述の２点に加え、これら２点以外の１点がこれら２点と異なる位置姿勢になければならない。従って、本実施形態では、上述の２点以外の１点は、マーカ２１の光軸に対する傾きが上述の２点と異なるように設定している。これにより、連立方程式をビジョン座標系４２とロボット座標系４１の相対位置姿勢について解くための前記可解条件を満たすことができる。
【００４７】
以上より、カメラ３及びマーカ２１を用いたロボット座標系４１とビジョン座標系４２との校正において、正確な設計データが明らかな特別な治具を必要とせず、かつ、その精度をより向上させることができる。
【００４８】
図５は、実施例と比較例とにおけるロボット座標系４１とビジョン座標系４２との校正誤差を示した図である。ここで、実施例とは、上述のように校正を行った場合である。一方、比較例とは、全ての教示点においてマーカ２１とカメラ３の撮像面とが傾きを持つ場合、言い換えれば、全ての教示点でマーカ２１の光軸に対する傾きが異なる場合である。図５から明らかなように、実施例では、比較例に対して校正誤差を半分程度小さくすることができた。
【００４９】
なお、校正で用いる教示点は、上記条件を満たす３点を含んでいれば３点に限定されるものでなく、３点以上設定してもよい。そのとき、それらの点で式（２）の関係を立て、その式を最小二乗法などの最適化計算により解くことで、校正すべきロボット座標系とビジョン座標系の相対位置姿勢を求めることができる。
【００５０】
＜第２の実施形態＞
本発明の第２の実施形態について、図６を用いて説明する。上述の第１の実施形態では、視覚センサとしてのカメラ３をロボット本体１０とは別の位置に固定した構成について説明した。これに対して本実施形態では、視覚センサとしてのカメラ４をロボット本体１０に設置している。また、校正を行うためのマーカ２１は、ロボット本体１０とは別の位置に固定されている。その他の構成については第１の実施形態と同様であるため、以下、第１の実施形態と異なる点を中心に説明する。
【００５１】
カメラ４は、アーム１１の先端に装着され、ロボット本体１０を動作させることにより、ロボット本体１０の動作範囲内の任意の位置姿勢で位置決めすることができる。ビジョンコントローラ２には、カメラ４が接続されている。
【００５２】
ビジョンコントローラ２は、カメラ４を介して取り込まれた画像信号を、濃淡グレイスケールによる明暗信号に変換した上でフレームメモリに格納する。また、フレームメモリに格納された画像を処理し、対象物の識別、位置姿勢を計測し、処理した対象物の識別結果、および位置姿勢をロボットコントローラ１に送信する機能は、第１の実施形態と同様である。
【００５３】
カメラ４は、マーカ２１等の対象物を撮影し、ビジョンコントローラ２に画像信号を送信する。カメラ４は、本実施形態でも単眼カメラを用いているが、３次元を計測できるセンサであれば良く、複眼カメラ、レーザレンジファインダ、或いは、それらの組合せでも良い。
【００５４】
校正治具２０は、マーカ２１を固定することができ、環境に固定される。例えば、基台１３上の実際の作業時にワークが固定される位置に校正治具２０を固定する。なお、校正治具２０に対して、マーカ２１がどこに固定されているかは既知でなくともよい。ここで用いるマーカ２１は、第１の実施形態と同じである。
【００５５】
次に、本実施形態のロボットシステム１００Ａの校正方法について説明する。まず、校正で用いる３点の教示点の設定方法を述べる。第１の実施形態ではマーカ２１の位置姿勢をロボット本体１０で動作させていたのに対し、本実施形態ではカメラ４の位置姿勢をロボット本体１０で動作させる。そのとき、カメラ４とマーカ２１の相対位置姿勢は、前述の図３で示すような位置関係になるように教示点を設定する。設定の仕方は、第１の実施形態と同様である。
【００５６】
制御装置２００は、上述の３点の教示点を得られるようにロボット本体１０を動作させ、それぞれの教示点においてロボット座標系４１とツール座標系４３の相対位置姿勢と、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を得る。
【００５７】
ここで、ツール座標系４３とビジョン座標系４２の相対位置姿勢を同次変換行列Ｈｔｖ、ロボット座標系４１とマーカ座標系４４の相対位置姿勢を同次変換行列Ｈｒｐとする。また、３点それぞれの教示点におけるロボット座標系４１とツール座標系４３の相対位置姿勢を、同次変換行列Ｈｒｔ１、Ｈｒｔ２、Ｈｒｔ３とする。また、ビジョン座標系４２とマーカ座標系４４の相対位置姿勢を同次変換行列Ｈｖｐ１、Ｈｖｐ２、Ｈｖｐ３とすると、次式で示す連立方程式が得られる。
【００５８】
【数４】
2015042437.tif 000006
【００５９】
そして、式（４）をＨｔｖとＨｒｐについて最適化計算で解くことによって、校正すべきツール座標系４３とビジョン座標系４２の相対位置姿勢の同次変換行列Ｈｔｖを求めることができる。Ｈｒｐは、ロボット座標系４１とマーカ座標系４４の相対位置姿勢である。最適化計算においては、それに限らないが、最小二乗法などで解けることが知られている。ロボット座標系４１とツール座標系４３は、教示点の位置姿勢と同義なので、ツール座標系４３とビジョン座標系４２の相対位置姿勢の同次変換行列Ｈｔｖを求めることで、ロボット座標系４１とビジョン座標系４２との校正を行える。
【００６０】
本実施形態の場合も、第１の実施形態と同様に、少なくとも３点の教示点のうちの２点が、マーカ２１の光軸に対する傾きが同じで、且つ、光軸を法線とする同一平面の異なる位置に設定される。このため、ロボット座標系４１（ツール座標系４３）とビジョン座標系４２との校正の精度をより向上させられる。即ち、カメラ４がロボット本体１０に固定される構成であっても、第１の実施形態と同様にロボットシステム１００Ａの校正精度を向上させられる。また、この校正の際には、正確な設計データが明らかな特別な治具を必要としないため、低コストで校正の精度をより向上させられる。
【００６１】
＜第３の実施形態＞
本発明の第３の実施形態について、図１〜図３を援用して説明する。上述の第１の実施形態では、校正で用いる３点の教示点の位置姿勢は、平面Ａ上でロボット本体１０が狙いの位置姿勢を取り得ることが前提であった。これに対して本実施形態では、校正する平面Ａの例えば下側に障害物（不図示）があり、校正で用いる３点の教示点のうち、少なくとも１点の教示点の位置姿勢を、平面Ａ上でロボット本体１０が取れないものとする。障害物の存在は、予め設定されたロボットシステム１００のレイアウト情報によって既知のものとして認識してもよいし、あるいはカメラ３による撮影により認識してもよい。校正で用いる３点の教示点の設定方法以外は、第１の実施形態と同様であるため、以下、第１の実施形態と異なる点を中心に説明する。
【００６２】
校正で用いる３点の教示点の設定方法は、３点の教示点のうちの２点は、第１の実施形態と同様に、マーカ２１のカメラ３の光軸（ｚ軸）に対する傾きが同じで、且つ、光軸を法線とする同一平面Ａの異なる位置に設定される。一方、第１の実施形態では、３点の教示点のうちの上述の２点以外の残りの１点は、マーカ２１の光軸に対する傾きが上述の２点と異なるように設定された。しかし、第３の実施形態では、平面Ａの下側に障害物があり、障害物と校正治具２０とが干渉するため、教示点を設定することができない。そこで、教示点をカメラ３の光軸に沿った方向に僅かに平行移動させ、平面Ａの上側で設定し、障害物と校正治具２０との干渉を避ける。ここでの平行移動距離は、例えば２ｍｍ以内であれば、計測精度を大きく低下させることはないので好ましい。
【００６３】
このように、本実施形態では、校正で用いる３点の教示点のうち、少なくとも１点の教示点に対応する位置姿勢をロボット本体１０が取れない場合、該教示点をカメラ３の光軸に沿った方向に平行移動させた点に教示点を設定するようになっている。そして、第１の実施形態の同様の校正工程を行うことにより、ロボット座標系４１とビジョン座標系４２との校正を行うことができる。
【００６４】
第３の実施形態によれば、校正で用いる教示点が障害物によって平面Ａ内では取れない場合においても、校正作業時に取り得る姿勢の自由度が上がることで、ロボット座標系４１とビジョン座標系４２との校正を行うことができる。
【００６５】
また、上述した第１及び第２の実施形態では、３点の教示点の全てが同一平面Ａの異なる位置に設定された場合について説明したが、これには限られない。例えば、本実施形態のように、３点の教示点のうちの２点の教示点が同一平面Ａの異なる位置に設定され、残る１点の教示点は同一平面Ａには存在しないようにしてもよい。この場合も、残る１点の教示点は、マーカ２１の光軸に対する傾きが他の２点の教示点と異なるように設定する。
【００６６】
なお、以上に述べた第１〜第３の実施形態の各処理動作は、具体的には制御装置２００により実行されるものである。従って、上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００のＣＰＵ３１が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００６７】
また、各実施の形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ３２或いはＲＡＭ３３であり、ＲＯＭ３２或いはＲＡＭ３３にプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【００６８】
１…ロボットコントローラ、２…ビジョンコントローラ、３，４…カメラ（視覚センサ）、１０…ロボット本体、２０…校正治具、２１…マーカ、２２…ドット、３１…ＣＰＵ（コンピュータ）、３２…ＲＯＭ（記録媒体）、３３…ＲＡＭ（記録媒体）、４１…ロボット座標系、４２…ビジョン座標系、４３…ツール座標系、４４…マーカ座標系、１００，１００Ａ…ロボットシステム、２００…制御装置
【図１】
2015042437.tif 000007
【図２】
2015042437.tif 000008
【図３】
2015042437.tif 000009
【図４】
2015042437.tif 000010
【図５】
2015042437.tif 000011
【図６】
2015042437.tif 000012