(57)【要約】【課題】  視覚センサの検出位置座標系と多関節ロボットのツール位置座標系とのキャリブレーションを高精度に行なう。【解決手段】  ツール、例えばロボットハンドでワークをハンドリングして、ツール位置座標系で指定された第１〜第４のキャリブレーション位置Ｃ1〜Ｃ4に順次移動させる。視覚センサによってワークの指標を撮像して、各キャリブレーション位置での指標の検出位置座標を検出する。各キャリブレーション位置Ｃ1〜Ｃ4での指標の検出位置座標を所定の座標変換式を用いてツール位置座標に変換するときに、この座標変換式によって得られた第１〜第４座標変換位置Ｄ1〜Ｄ4と各キャリブレーション位置Ｃ1〜Ｃ4との誤差ベクトルＬ1〜Ｌ4が、対角の点同士で一致するように座標変換式のキャリブレーション係数を算出する。【選択図】        図１１
2006082170.tif 000002
【特許請求の範囲】
【請求項１】
ワークの位置座標を検出する視覚センサの検出位置座標系と、この視覚センサによって検出されたワークの位置座標までツールを移動させる多関節ロボットのツール位置座標系とを対応させるキャリブレーション方法において、
前記ツール位置座標系上に配置された少なくとも４点のキャリブレーション位置にツールを順次移動させ、前記視覚センサによって各キャリブレーション位置でのツールまたはツールに保持されたワークの検出位置座標を検出するステップと、
各キャリブレーション位置におけるツールまたはワークの検出位置座標を任意のパラメータを有する座標変換式を用いてツール位置座標に変換するときに、この座標変換により得られるツールまたはワークの各ツール位置座標と各キャリブレーション位置のツール位置座標との誤差ベクトルを対角の点同士で一致させる条件を置いて、当該座標変換式の当該パラメータを算出するステップとを備えたことを特徴とするキャリブレーション方法。
【請求項２】
前記パラメータは、各キャリブレーション位置の各ツール位置座標と、座標変換により得たツールまたはワークの各ツール位置座標との誤差ベクトルを隣り合う点同士で加算したときに、その和を０にすることを特徴とする請求項１記載のキャリブレーション方法。
【請求項３】
ワークの位置座標を検出する視覚センサの検出位置座標系と、この視覚センサによって検出されたワークの位置座標までツールを移動させる多関節ロボットのツール位置座標系とを対応させるキャリブレーション方法において、
前記ツール位置座標系上に配置された少なくとも４点のキャリブレーション位置にツールを順次移動させ、前記視覚センサによって各キャリブレーション位置でのツールまたはツールに保持されたワークの検出位置座標を検出するステップと、
各キャリブレーション位置におけるツールまたはワークの検出位置座標を任意のパラメータを有する座標変換式を用いてツール位置座標に変換するときに、この座標変換により得られるツールまたはワークの各ツール位置座標と各キャリブレーション位置のツール位置座標との誤差ベクトルを隣り合う点同士で加算した和が０となる該パラメータを算出するステップとを備えたことを特徴とするキャリブレーション方法。
【請求項４】
前記座標変換式は、ツール位置座標系が（Ｘ，Ｙ）、検出位置座標系が（ｘ，ｙ）、検出位置座標系（ｘ，ｙ）の基準位置のツール位置座標が（Ｘ0，Ｙ0 ）であるときに、下記式（１），（２）であり、前記パラメータは、α1，β1，α2，β2であることを特徴とする請求項１ないし３いずれか記載のキャリブレーション方法。
Ｘ＝α1ｘ＋β1ｙ＋Ｘ0・・・式（１）
Ｙ＝α2ｘ＋β2ｙ＋Ｙ0・・・式（２）
【請求項５】
前記少なくとも４点のキャリブレーション位置のツール位置座標が（Ｐ1，Ｑ1），（Ｐ2，Ｑ1），（Ｐ1，Ｑ2），（Ｐ2，Ｑ2）であり、前記視覚センサによって検出された各キャリブレーション位置でのツールまたはワークの検出位置座標が（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）であり、このツールまたはワークの検出位置座標を前記式（１），（２）を用いて座標変換したツール位置座標が（Ｘ1，Ｙ1），（Ｘ2，Ｙ2），（Ｘ3，Ｙ3），（Ｘ4，Ｙ4）であるときに、各座標が下記式（３）〜（６）の関係を有することを特徴とする請求項４記載のキャリブレーション方法。
Ｘ1−Ｘ3＝Ｘ4−Ｘ2・・・（式）（３）
（Ｘ1−Ｐ1）−（Ｘ2−Ｐ2）＝（Ｘ4−Ｐ2）−（Ｘ3−Ｐ1）・・・式（４）
Ｙ1−Ｙ2＝Ｙ4−Ｙ3・・・（式）（５）
（Ｙ1−Ｑ1）−（Ｙ3−Ｑ2）＝（Ｙ4−Ｑ2）−（Ｙ2−Ｑ1）・・・式（６）
【請求項６】
前記各キャリブレーション位置でツールまたはワークの検出位置座標を検出するステップは、
ツールまたはワークの姿勢を複数段階に変化させ、視覚センサによってツールまたはワークの各姿勢の検出位置座標を検出するステップと、
ツールまたはワークの複数の検出位置座標から平均値を算出し、そのキャリブレーション位置における検出位置座標とするステップとからなることを特徴とする請求項１ないし５いずれか記載のキャリブレーション方法。
【請求項７】
前記各キャリブレーション位置でツールまたはワークの検出位置座標を検出するステップは、
ツールまたはワークを３６０°／Ｎ，（Ｎ＞＝２）ずつ回転させ、各回転位置でのツールまたはワークの検出位置座標（ｋij，ｌij），（ｉ：キャリブレーション位置番号、ｊ：回転位置番号）を前記視覚センサで検出するステップと、
下記式（７）を用いてツールまたはワークの複数の検出位置座標の平均値を算出し、そのキャリブレーション位置における検出位置座標（ｘi，ｙi）とするステップとからなることを特徴とする請求項１ないし５いずれか記載のキャリブレーション方法。
【数７】
2006082170.tif 000005
【請求項８】
前記多関節ロボットは、多軸ロボットであることを特徴とする請求項１ないし７いずれか記載のキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの位置座標を検出する視覚センサの検出位置座標系と、ワークの位置座標までツールを移動させる多関節ロボットのツール位置座標系とを対応させるキャリブレーション方法に関する。
【背景技術】
【０００２】
ツールを交換して様々な作業に使用することのできる汎用性を備えた産業用ロボットとして、多関節ロボットが知られている。この多関節ロボットには、アームを主に水平方向で移動させる水平多関節ロボット（スカラーロボット）や、アームを主に垂直方向で移動させる垂直多関節ロボット（多軸ロボット）等がある。多軸ロボットは、ツールを任意の姿勢にすることができ、スカラーロボットに比べ、より高い汎用性を備えている。
【０００３】
多関節ロボットに所定の動作を行なわせるために、撮像カメラと画像認識装置とからなる視覚センサでワークの位置や姿勢を検出し、この検出位置にロボットハンド等のツールを移動させて、ワークをハンドリングする手法が一般に用いられている。視覚センサで検出した位置にツールを精度よく移動させるには、視覚センサの検出位置座標系と、多関節ロボットのツール位置座標系とを高精度に対応させなければならない。この二つの座標系を対応させる作業は、一般にキャリブレーションと呼ばれており、従来から種々のキャリブレーション方法が用いられている。
【０００４】
例えば、特許文献１に記載されているロボットと視覚センサとのキャリブレーション方法は、ツールとしてロボットハンドを使用し、四隅に円形の指標が描かれたキャリブレーションプレートをツール位置座標系と平行になるようにロボットハンドに持たせ、このキャリブレーションプレートの円形の指標を視覚センサで検出させ、各指標間の実際のピッチと画像認識処理によって得た指標間のピッチとから、視覚センサの検出位置座標系とロボットのツール位置座標系とのＸ座標及びＹ座標、及び回転方向の相関を求めている。
【特許文献１】特開平０８−０７１９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１記載のキャリブレーション方法は、キャリブレーションプレートの指標のピッチを視覚センサによって得た座標値の差で割ってキャリブレーション係数を求めているだけであるため、キャリブレーションプレートと各座標系との平行度の精度が低いと、視覚センサの検出位置座標系が歪んで直交座標系でなくなってしまい、大きな誤差が発生する。そのため、特許文献１記載のキャリブレーション方法によって検出位置座標系とツール位置座標系とを高精度に対応させるには、視覚センサの撮像面と、キャリブレーションプレートの指標形成面と、ロボットハンドの移動平面との平行度を高精度に調整しなければならない。しかし、この平行度の調整には大がかりで高価な装置が必要であり、時間もかかるという問題があった。
【０００６】
また、特許文献１記載のキャリブレーション方法では、キャリブレーションプレートの指標のピッチをツール位置座標系のピッチとして、視覚センサの検出位置座標系との相関を求めているため、キャリブレーションプレートの指標の誤差や、多関節ロボットの誤差がそのままキャリブレーションに反映されてしまうという問題もあった。
【０００７】
また、多軸ロボットは、各関節部分の誤差が集積されてツールの移動位置に表れるため、ツールの移動位置には絶対位置精度が無く、視覚センサで検出した位置にツールを移動させることが難しいという問題があった。更に、多軸ロボットでは、ツールを同じ位置に異なる方向から移動させると、関節の軸ぶれ等によってツールの移動位置に最大で数ｍｍ程度も誤差が生じてしまうという問題があった。
【０００８】
本発明は、上記各問題点を解決するためのもので、視覚センサの検出位置座標系と、多関節ロボットのツール位置座標系とのキャリブレーションを高精度に行なうことを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のキャリブレーション方法は、ツール位置座標系上に配置された少なくとも４点のキャリブレーション位置にツールを順次移動させ、視覚センサによって各キャリブレーション位置でのツールまたはツールに保持されたワークの検出位置座標を検出する。このツールまたはワークの検出位置座標を任意のパラメータを有する座標変換式を用いてツール位置座標系に変換するときに、この座標変換されたツール位置座標と、各キャリブレーション位置のツール位置座標との誤差量が小さくなるように、座標変換式のパラメータを算出するようにした。しかし、各点の誤差量を同時に無にするようなパラメータを求めることは、ほぼ確実に不可能である。そこで、本発明では、対角の点同士の誤差ベクトルを一致させることのできるパラメータを求めることによって、全体として誤差量が小さくなるようにした。
【００１０】
また、各キャリブレーション位置のツール位置座標と、座標変換されたツールまたはワークのツール位置座標との誤差ベクトルが、隣り合う点同士で加算したときに０なるようにパラメータを設定した。
【００１１】
座標変換式としては、ツール位置座標系を（Ｘ，Ｙ）、検出位置座標系を（ｘ，ｙ）、検出位置座標系のツール位置座標系上の基準位置を（Ｘ0，Ｙ0）、パラメータをα1，β1，α2，β2とし、下記式（１），（２）を用いた。そして、ツール位置座標系上に配置された少なくとも４点のキャリブレーション位置（Ｐ1，Ｑ1），（Ｐ2，Ｑ1），（Ｐ1，Ｑ2），（Ｐ2，Ｑ2）にツールを順次移動させ、視覚センサによって各キャリブレーション位置でのツールまたはワークの検出位置座標（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）を検出した。各キャリブレーション位置におけるツールまたはワークの検出位置座標は、式（１），（２）を用いてツール位置座標（Ｘ1，Ｙ1），（Ｘ2，Ｙ2），（Ｘ3，Ｙ3），（Ｘ4，Ｙ4）に変換し、この座標変換されたツール位置座標と各キャリブレーション位置のツール位置座標との誤差ベクトルが対角の点同士で一致するように、各パラメータα1，β1，α2，β2を算出するようにした。
Ｘ＝α1ｘ＋β1ｙ＋Ｘ0・・・式（１）
Ｙ＝α2ｘ＋β2ｙ＋Ｙ0・・・式（２）
【００１２】
各キャリブレーション位置におけるツールまたはワークのツール位置座標の誤差ベクトルが対角の点同士で同一であるときには、下記式（３）〜（６）が成り立つ。式（３）と（４）は、α１，β１の最適値条件であり、また、式（５），（６）は、α２，β２の最適値条件となるため、式（３）と式（４）、及び式（５）と式（６）とをそれぞれ連立させ、式（１），（２）を代入して展開することによって、下記式（８）〜（１５）を得ることができる。これにより、ツールまたはワークの検出位置座標とキャリブレーション位置のツール位置座標とから、パラメータα1，β1，α2，β2を算出することができる。
Ｘ1−Ｘ3＝Ｘ4−Ｘ2・・・式（３）
（Ｘ1−Ｐ1）−（Ｘ2−Ｐ2）＝（Ｘ4−Ｐ2）−（Ｘ3−Ｐ1）・・・式（４）
Ｙ1−Ｙ2＝Ｙ4−Ｙ3・・・式（５）
（Ｙ1−Ｑ1）−（Ｙ3−Ｑ2）＝（Ｙ4−Ｑ2）−（Ｙ2−Ｑ1）・・・式（６）
Ｓ1＝ｘ1−ｘ2＋ｘ3−ｘ4・・・式（８）
Ｓ2＝ｘ1＋ｘ2−ｘ3−ｘ4・・・式（９）
Ｔ1＝ｙ1−ｙ2＋ｙ3−ｙ4・・・式（１０）
Ｔ2＝ｙ1＋ｙ2−ｙ3−ｙ4・・・式（１１）
α1＝２Ｔ2（Ｐ1−Ｐ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１２）
β1＝−２Ｓ2（Ｐ1−Ｐ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１３）
α2＝−２Ｔ1（Ｑ1−Ｑ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１４）
β2＝２Ｓ1（Ｑ1−Ｑ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１５）
【００１３】
また、各キャリブレーション位置でツールまたはワークの検出位置座標を検出するステップでは、ツールまたはワークの姿勢を複数段階に変化させて、視覚センサによってツールまたはワークの各姿勢の検出位置座標を検出し、この複数の検出位置座標から平均値を算出して、そのキャリブレーション位置における検出位置座標とした。なお、ツールまたはワークの姿勢の変化は、視覚センサの光軸とほぼ平行で、ツールの先端近傍を通る軸を中心に３６０°／Ｎ（Ｎ＞＝２）ずつ回転させることによって行ない、各回転位置でのツールまたはワークの検出位置座標（ｋij，ｌij）（ｉ：キャリブレーション位置番号（１〜４）、ｊ：回転位置番号（１〜Ｎ））を視覚センサで検出するようにした。また、下記式（７）を用いてツールまたはワークの複数の検出位置座標の平均値を算出し、そのキャリブレーション位置における検出位置座標（ｘi ，ｙi）とした。
【数７】
2006082170.tif 000003
【発明の効果】
【００１４】
本発明の視覚センサと多関節ロボットとのキャリブレーション方法によれば、ツール位置座標系と、座標変換式によって検出位置座標系から変換されたツール位置座標との誤差量が全体的に小さくなるようなパラメータを算出するようにしたので、簡易な座標変換式を用いているにも関わらず、ツール位置座標系と検出位置座標系とを高精度に対応させることができる。
【００１５】
また、視覚センサの検出位置座標系から得られるツール位置座標を直接最適になるような条件を用いて算出するため、検出位置座標系及びツール位置座標系、もしくはこれらのどちらかが歪んでいる場合でも誤差量が最小となるパラメータを算出することができる。これにより、大がかりで高価な装置や、膨大な調整時間を使わずとも、簡易な調整でツール位置座標系と検出位置座標系とを高精度に対応させることができる。
【００１６】
更に、各キャリブレーション位置でツールを回転させて姿勢を変化させ、各姿勢の検出位置座標から得た平均値によってキャリブレーションを行なうようにしたので、回転時に軸ブレを起こす多関節ロボットでも、高精度なキャリブレーションを行なうことができる。
【００１７】
また、本発明では、キャリブレーション用のプレートではなく、ツールまたはツールに保持されたワークを使用してキャリブレーションを行なうので、多大な負荷であるキャリブレーションプレートとロボットの座標系との平行出し作業が不要であり、キャリブレーションプレートの脱着の必要がないため簡単にキャリブレーションを行なうことができ、キャリブレーションプレート脱着による誤差も発生しない。更に、使用するツールやワークの重量や姿勢の違いによってもツールまたはワークの座標位置の誤差ベクトルが変化するが、実際に使用するツール及びワークによってキャリブレーションを行なうため、各ツールもしくは各ワークの取出し姿勢に最適なキャリブレーションを行なうことができる。また、高精度なキャリブレーションプレートを必要としないため、キャリブレーションにかかるコストを削減することができる。
【発明を実施するための最良の形態】
【００１８】
図１（Ａ），（Ｂ）及び図２は、本発明のキャリブレーション方法が用いられる６軸ロボット２と、視覚センサ３が組み込まれた直進フィーダ４との構成を示す外観斜視図及び側面図である。視覚センサ３は、直進フィーダ４によって供給されたワーク５を撮像して、自身が備える検出位置座標系上でワーク５の検出位置座標及び姿勢を検出する。６軸ロボット２は、視覚センサ３によって検出されたワーク５の検出位置座標及び姿勢に基づいて、自身が備えるツール位置座標系上で先端に取り付けられたツール、例えばロボットハンド２１を移動させてワーク５をハンドリングする。
【００１９】
６軸ロボット２は、サーボモータによって回動される関節を６個備えたアームを有する多軸ロボットであり、先端のツールを取り替えることによって様々な作業に対応することができる汎用性を備えている。また、その関節数の多さと各関節の可動範囲の広さからツールの移動範囲が広く、かつ任意の姿勢をとらせることができる。
【００２０】
６軸ロボット２は、設置に使用される略円柱形状のベース１０と、このベース１０の上部に第１関節１１を介して回動自在に組み付けられた旋回ボディ１２と、この旋回ボディ１２に第２関節１３を介して回動自在に取り付けられた第１アーム１４と、この第１アーム１４に第３関節１５を介して回動自在に取り付けられ、第４関節１６によって先端が回動自在とされた第２アーム１７と、この第２アーム１７に第５関節１８を介して回動自在に取り付けられ、先端に取り付けられたツールを回動させる第６関節１９を備えた手首２０とから構成されている。
【００２１】
図３に示すように、６軸ロボット２の手首２０には、様々な種類のツールを取り付けることができるアーム側フランジ２０ａが設けられている。このアーム側フランジ２０ａには、フランジ面２０ｂの中央Ｏfを基準位置とし、フランジ面２０ｂに対して垂直なＺf軸と、このＺf軸に対して直交するＸf軸及びＹf軸とからなるロボットフランジ座標系が設けられている。
【００２２】
６軸ロボット２にツールとして取り付けられるロボットハンド２１は、ロボットハンド２１を保持する本体部２２と、この本体部２２に設けられ、手首２０のアーム側フランジ２０ａに取り付けられるツール側フランジ２３とを備えている。ロボットハンド２１は、先端が互いに近接する挟持位置と離反する開放位置との間で揺動自在とされた２本の指部２１ａと、これらの指部２１ａを揺動自在に支持する支持部２１ｂとからなり、直進フィーダ４上を搬送されてきたワーク５を２本の指部２１ａで挟み込んでハンドリングする。本体部２２内には、ロボットハンド２１の指部２１ａを揺動させる駆動機構が組み込まれている。このロボットハンド２１の指部２１ａの先端近傍には、ロボットフランジ座標系上で任意に設定されたハンド位置設定点Ｈが設けられている。
【００２３】
６軸ロボット２は、ツール位置座標系上に設定した任意の点にハンド位置設定点Ｈを一致させるように各関節を制御する。また、ハンド位置設定点Ｈを中心にヨー軸、ピッチ軸、ロー軸の三軸の回りでロボットハンド２１の姿勢を変化させることができる。そのため、ツール位置座標系上の任意の点に対して、異なる方向からロボットハンド２１をアクセスさせることができ、様々な姿勢のワーク５を、そのワーク５に対して特定の方向から、そのワーク５の組み立てに適した姿勢でハンドリングすることができる。
【００２４】
従来よりロボットハンドによるワークのハンドリングでは、ワークを特定の姿勢、例えば次工程での組み立てに適した姿勢を保ったままハンドリングしている。ワークを特定の姿勢に保つには、ロボットハンドによってグリップされるワークのグリップ位置や、ワークとロボットハンドとがなす角度であるグリップ角度を一定にするとよい。そのため、従来のワークハンドリングでは、パーツフィーダ等を用いてワークを予め整列させてグリップ位置を一定の方向に向け、このグリップ位置を特定のグリップ角度のロボットハンドでグリップしていた。
【００２５】
しかし、上記従来のワークハンドリングでは、パーツフィーダの使用によってコストの上昇や作業効率の低下という悪影響を生じていた。また、異なる種類のワークをハンドリングする際には、そのワークに対応した別のパーツフィーダを用意しなくてはならなかった。そこで本実施形態では、ロボットハンド２１の移動及び姿勢の自由度が高い６軸ロボット２を使用することにより、直進フィーダ４によって様々な姿勢で搬送されてきたワーク５のグリップ位置を特定のグリップ角度でグリップしてハンドリングするようにした。これにより、ワーク５の姿勢を揃えるパーツフィーダを省略することができる。
【００２６】
なお、ワーク５は、例えば図４（Ａ）に示すように矩形状をしており、先端５ａ側に貫通穴からなる円形の指標５ｂが設けられている。このワーク５のグリップ位置Ｇは、ワーク５の長手方向において指標５ｂから寸法Ｗの位置で、ワーク５の下面に配置されている。ワーク５をロボットハンド２１でハンドリングする際には、グリップ位置Ｇにハンド位置設定点Ｈが一致するようにロボットハンド２１を移動させ、ワーク５の姿勢、すなわち検出位置座標系のＹ軸に対するワーク５の回転角度θ1に合せてロボットハンド２１を回転させ、ワーク５の後端５ｃ側からワーク５の両側面をロボットハンド２１で挟み込む。また、同図（Ｂ）に示すように、実際のワークの取り出し及び組み立てに適したグリップ角度θ2となるようにワーク５がハンドリングされる。
【００２７】
６軸ロボット２は、例えば、ロボットコントローラ２４によって制御される。ロボットコントローラ２４は、６軸ロボット２を制御する制御プログラム等が記録されたメモリと、各プログラムにしたがって各種演算処理を行なうＣＰＵと、６軸ロボット２や制御コンピュータ２５との接続に用いられるＩ／Ｏポート等を備えている。このロボットコントローラ２４は、制御コンピュータ２５によって制御される。
【００２８】
直進フィーダ４は、略箱形状のベース２８と、このベース２８の上に組み付けられて振動してワーク５を搬送する略板形状のトラフ２９と、トラフ２９のワーク搬送面２９ａに形成された開口２９ｂに嵌め込まれ、６軸ロボット２によってワーク５をハンドリングする際の取出しステージ３０を形成する透明なガラス板３１と、ベース２８内に組み込まれトラフ２９の一端側から振動を与える振動ユニット３２と、トラフ２９の他端側を振動可能に支持する支持部材３３とから構成されている。ベース２８の上面でトラフ２９の開口２９ｂに対面する位置には、開口３６が形成されている。
【００２９】
図５に示すように、直進フィーダ４のベース２８内で開口３６に対面する位置には、取出しステージ３０上のワーク５の検出位置座標及び姿勢を下方から検出する視覚センサ３と、ワーク５を下方から照明する照明ランプ３５とが組み込まれている。視覚センサ３は、ＣＣＤやＣＭＯＳ等のイメージエリアセンサと撮像光学系とが組み込まれた撮像カメラ３９と、この撮像カメラ３９による撮像によって生成された画像データを画像処理によってベクトルデータ化して、ワーク５の検出座標位置と回転角度θ1とを特定する画像認識装置４０とから構成されている。撮像カメラ３９の撮像光軸ｖは、ツール位置座標系のＺ軸にほぼ平行に設定されている。この視覚センサ３も制御コンピュータ２５によって制御される。
【００３０】
照明ランプ３５は、制御コンピュータ２５によって制御されたランプドライバ４１によって点灯され、ガラス板３１越しにワーク５を照明する。ベース２８の開口３６とトラフ２９との間には、外光や塵芥等の進入を防止するために、例えば蛇腹状のカバー４２が取り付けられている。なお、ワーク５の照明は、取出しステージ３０の上方から行なってもよい。また、カバー４２を使用せずに、赤色光とシャープカットフィルタとを使用しても、外光の影響を効果的に防止することができる。
【００３１】
制御コンピュータ２５は、例えば、ＣＰＵ，ＨＤＤ，メモリ等を備えたパーソナルコンピュータ（ＰＣ）からなり、視覚センサ３，ロボットコントローラ２４，振動ユニット３２，ランプドライバ４１等を制御する。また、視覚センサ３の検出位置座標系（ピクセル）と、６軸ロボット２のツール位置座標系（ｍｍ）との間の座標変換を行なうプログラムや、検出位置座標系とツール位置座標系とを対応させるキャリブレーションプログラム等を格納している。
【００３２】
上記６軸ロボット２及び視覚センサ３と、直進フィーダ４は、例えば次のように動作する。直進フィーダ４上には、図示しないボウルフィーダ等によってワーク５が１個ずつ投入される。直進フィーダ４のトラフ２９上に投入されたワーク５は、その姿勢が整列されていないため様々な姿勢となる。直進フィーダ４は、振動ユニット３２によってトラフ２９を振動させて、ワーク５を取出しステージ３０上に向けて搬送する。
【００３３】
取出しステージ３０上に搬送されたワーク５は、ガラス板３１越しに下方から照明ランプ３５によって照明され、撮像カメラ３９によって撮像される。撮像カメラ３９によって生成された画像データは、画像認識装置４０の画像処理によりベクトルデータ化され、ワーク５の回転角度θ1と、指標５ｂの検出位置座標とが検出される。この検出結果は、制御コンピュータ２５に入力される。
【００３４】
図６は、ツール位置座標系（Ｘ，Ｙ）と検出位置座標系（ｘ，ｙ）との関係を示している。２点鎖線で示す四角形Ｆは、撮像カメラ３９による撮像範囲を示しており、直進フィーダ４の取出しステージ３０よりも僅かに大きな面積を有している。例えば、検出位置座標系（ｘ，ｙ）の基準位置Ｏsのツール位置座標が（Ｘ0，Ｙ0）であるときに、取出しステージ３０上の検出位置座標（ｘa，ｙa）にあるワーク５の指標５ｂは、ツール位置座標（Ｘa，Ｙa）に位置することになる。
【００３５】
制御コンピュータ２５は、下記の座標変換式（１），（２）を使用して、視覚センサ３によって検出された指標５ｂの検出位置座標（ｘa，ｙa）から、ツール位置座標（Ｘa，Ｙa）を算出し、これをロボットコントローラ２４に入力する。ロボットコントローラ２４は、指標５ｂのツール位置座標（Ｘa，Ｙa）とワーク５の回転角度θ1とから、ワーク５をハンドリングするのに適したグリップ位置Ｇのツール位置座標（Ｘa’，Ｙa’）を算出する。このグリップ位置Ｇのツール位置座標（Ｘa’，Ｙa’）は、図４（Ａ）に示すように、指標５ｂのツール位置座標（Ｘa，Ｙa）に対し、寸法Ｗとワーク５の回転角度θ1とから得られるオフセット量（ΔＸ，ΔＹ）を加算することで算出される。なお、座標変換式（１），（２）のキャリブレーション係数α1，β1，α2，β2及び検出位置座標系の基準位置Ｏsのツール位置座標（Ｘ0，Ｙ0）は、座標変換精度に直接影響するパラメータである。
Ｘ＝α1ｘ＋β1ｙ＋Ｘ0・・・式（１）
Ｙ＝α2ｘ＋β2ｙ＋Ｙ0・・・式（２）
【００３６】
ロボットコントローラ２４は、６軸ロボット２の各関節のサーボモータを動作させて、ロボットハンド２１のハンド位置設定点Ｈをワーク５のグリップ位置Ｇのツール位置座標（Ｘa’，Ｙa’）に移動させ、かつ回転角度θ1に合せてロボットハンド２１を回転させて、後端５ｃ側からワーク５の両側面を挟み込む。このときのワーク５とロボットハンド２１との間のグリップ角度θ2は、実際のワーク５の取り出し及び組み立てに適した角度となる。
【００３７】
上述したように、視覚センサ３によって検出したワーク５の指標５ｂの検出位置座標（Ｘa，Ｙa）に基づいて、グリップ位置Ｇのツール位置座標（Ｘa’，Ｙa’）にロボットハンド２１のハンド位置設定点Ｈを正確に移動させるには、６軸ロボット２のツール位置座標系（Ｘ，Ｙ）と視覚センサ３の検出位置座標系（ｘ，ｙ）とを精度よく対応させなくてはならない。以下では、図１２のフローチャートを参照して、ツール位置座標系と検出位置座標系とのキャリブレーションについて説明する。
【００３８】
まず、ロボットハンド２１によって、グリップ位置Ｇとハンド位置設定点Ｈとが合致するように、後端５ｃ側からグリップ角度θ2でワーク５を把持する。ワーク５をハンドリングしたロボットハンド２１を取出しステージ３０上で移動させ、図７に示すように、予め設定されているツール位置座標系（Ｘ，Ｙ）上の第１キャリブレーション位置Ｃ1のツール位置座標（Ｐ1，Ｑ1）に、ハンド位置設定点Ｈを合致させる。なお、ロボットハンド２１を取出しステージ３０上で移動させる際には、把持したワーク５が取出しステージ３０と干渉しないように、ワーク５と取出しステージ３０とが僅かな隙間をもつような高さにロボットハンド２１が移動される。
【００３９】
次に、視覚センサ３によって、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4における指標５ｂの検出位置座標（ｋi,j，ｌi,j）（ｉ：キャリブレーション位置番号（１〜４）、ｊ：回転位置番号（１〜Ｎ））が検出される。キャリブレーション位置番号ｉは、最初にｉ＝１にセットされ、各キャリブレーション位置での指標５ｂの検出位置座標の検出終了とともにカウントアップされる。回転位置番号ｊは、最初にｊ＝１にセットされ、ロボットハンド２１が回転されるごとにカウントアップされる。また、ロボットハンド２１が次のキャリブレーション位置に移動したときに、回転位置番号ｊはリセットされる。
【００４０】
図８に示すように、視覚センサ３によって第１キャリブレーション位置Ｃ1における指標５ｂの検出位置座標（ｋ1,1，ｌ1,1）を検出する。次に、ロボットハンド２１を、ハンド位置設定点Ｈを通り、撮像カメラ３９の撮像光軸とほぼ平行なツール位置座標系のＺ軸ｕを中心に反時計方向に３６０°／Ｎ（Ｎ＞＝２）、例えばＮ＝１８として２０°回転させ、視覚センサ３によって指標５ｂの検出位置座標（ｋ1,2，ｌ1,2）を検出する。同様に、ロボットハンド２１を３６０°／Ｎ（Ｎ＞＝２）ずつ回転させ、各回転時の指標５ｂの検出位置座標（ｋ1,3，ｌ1,3）〜（ｋ1,18，ｌ1,18）を検出する。
【００４１】
第１キャリブレーション位置Ｃ1で所定の回転回数Ｎの検出位置座標の検出を終えると、ロボットハンド２１はハンド位置設定点Ｈを第２キャリブレーション位置Ｃ2〜第４キャリブレーション位置Ｃ4へと順に移動し、同様の手順で各キャリブレーション位置における指標５ｂの検出位置座標（ｋi,j，ｌi,j）を検出する。
【００４２】
全キャリブレーション位置において指標５ｂの検出位置座標を検出し終えたところで、各キャリブレーション位置ごとに下記の式（７）を用いて検出位置座標の平均値（ｘi，ｙi）を求める。求めた検出位置座標の平均値（ｘi，ｙi）は、第１キャリブレーション位置Ｃ1のツール位置座標に対応したものとなる。
【数７】
2006082170.tif 000004
【００４３】
従来のキャリブレーションでは、ロボットハンドを１８０°（３６０°／Ｎ，Ｎ＝２）回転させ、（ｋi,1，ｌi,1），（ｋi,2，ｌi,2）の２個のデータの平均値を検出位置座標（ｘｉ，ｙｉ）としていたため、絶対精度のない６軸ロボットでは、予め設定したキャリブレーション位置のツール位置座標と検出位置座標を精度よく対応させることができなかった。しかし、本実施形態の手法では、キャリブレーション作業に多大な時間がかからない程度にロボットハンド２１の回転数Ｎを大きくして検出位置座標の平均値を算出することで、６軸ロボット２の絶対精度の影響を最小限に抑え、より正確なキャリブレーションを行なうことができる。
【００４４】
以上により求められた第１〜第４キャリブレーション位置Ｃ1〜Ｃ4における指標５ｂの検出位置座標（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）と、仮想した適当なキャリブレーション係数α1，β1，α2，β2とを用いて前述の式（１）、（２）の計算を行なうと、その変換された第１〜第４座標変換位置Ｄ1〜Ｄ4のツール位置座標（Ｘ1，Ｙ1），（Ｘ2，Ｙ2），（Ｘ3，Ｙ3），（Ｘ4，Ｙ4）のなす四角形は、図９に示すように、予め設定した第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のなす四角形とほぼ間違いなくかけ離れたものとなる。
【００４５】
また、キャリブレーション係数α1，α2，β1，β2及び検出位置座標系の基準位置（Ｘ0，Ｙ0）を変化させ、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のなす四角形に、第１〜第４座標変換位置Ｄ1〜Ｄ4のなす四角形を一致させようとしても、第１〜第４座標変換位置Ｄ1〜Ｄ4が測定値より求めた値であるので、完全に一致させることは不可能である。
【００４６】
上記第１〜第４キャリブレーション位置Ｃ1〜Ｃ4の四角形と、第１〜第４座標変換位置Ｄ1〜Ｄ4の四角形との不一致を解決するために、本出願人は、各キャリブレーション位置Ｃ1〜Ｃ4と各座標変換位置Ｄ1〜Ｄ4との間の各誤差量を小さくして誤差方向を合せること、特に、対角線上の点同士の誤差ベクトル（誤差量及び誤差方向）を等しくすることによって、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のなす四角形に近似した第１〜第４座標変換位置Ｄ1〜Ｄ4の四角形を形成できることに着目した。
【００４７】
本実施形態では、図１０に示すように、第１座標変換位置Ｄ1と第４座標変換位置Ｄ4との誤差ベクトルＬ1とＬ4、及び第２座標変換位置Ｄ2と第３座標変換位置Ｄ3との誤差ベクトルＬ2とＬ3がそれぞれ同一になるようなキャリブレーション係数α1，β1，α2，β2を算出することにより、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のなす四角形に最も近似した第１〜第４座標変換位置Ｄ1〜Ｄ4のなす四角形を作り出した。対角線上の点同士の誤差ベクトルが同一である場合には、以下の式（３）〜（６）が成り立つ。
Ｘ1−Ｘ3＝Ｘ4−Ｘ2・・・（式）（３）
（Ｘ1−Ｐ1）−（Ｘ2−Ｐ2）＝（Ｘ4−Ｐ2）−（Ｘ3−Ｐ1）・・・式（４）
Ｙ1−Ｙ2＝Ｙ4−Ｙ3・・・（式）（５）
（Ｙ1−Ｑ1）−（Ｙ3−Ｑ2）＝（Ｙ4−Ｑ2）−（Ｙ2−Ｑ1）・・・式（６）
【００４８】
上記式（３）と（４）は、α1，β1の最適値条件であり、また、式（５），（６）は、α2，β2の最適値条件となるため、式（３）と式（４）、及び式（５）と式（６）とをそれぞれ連立させ、式（１），（２）を代入して展開することにより、下記式（８）〜（１５）を得ることができる。これにより、検出位置座標（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）と、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のツール位置座標（Ｐ1，Ｑ1），（Ｐ2，Ｑ1），（Ｐ1，Ｑ2），（Ｐ2，Ｑ2）とからキャリブレーション係数α1，β1，α2，β2を直接算出することができる。
Ｓ1＝ｘ1−ｘ2＋ｘ3−ｘ4・・・式（８）
Ｓ2＝ｘ1＋ｘ2−ｘ3−ｘ4・・・式（９）
Ｔ1＝ｙ1−ｙ2＋ｙ3−ｙ4・・・式（１０）
Ｔ2＝ｙ1＋ｙ2−ｙ3−ｙ4・・・式（１１）
α1＝２Ｔ2（Ｐ1−Ｐ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１２）
β1＝−２Ｓ2（Ｐ1−Ｐ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１３）
α2＝−２Ｔ1（Ｑ1−Ｑ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１４）
β2＝２Ｓ1（Ｑ1−Ｑ2）／（Ｓ1Ｔ2−Ｓ2Ｔ1）・・・式（１５）
【００４９】
以上の式で算出されたキャリブレーション係数α1，β1，α2，β2を用いて、次に検出位置座標系の基準位置Ｏsのツール位置座標（Ｘ0，Ｙ0）を求める。まず、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のツール位置座標（Ｐ1，Ｑ1），（Ｐ2，Ｑ1），（Ｐ1，Ｑ2），（Ｐ2，Ｑ2）がなす四角形の重心位置Ｃg（Ｘg，Ｙg）と、指標５ｂの検出位置座標（ｘ1，ｙ1），（ｘ2，ｙ2），（ｘ3，ｙ3），（ｘ4，ｙ4）がなす四角形の重心位置Ｅg（ｘg，ｙg）を式（１６），（１７）より求める。
Ｃg＝（（Ｐ1＋Ｐ2）／２，（Ｑ1＋Ｑ2）／２）・・・式（１６）
Ｅg＝（（ｘ1＋ｘ2＋ｘ3＋ｘ4）／４，（ｙ1＋ｙ2＋ｙ3＋ｙ4）／４）・・・式（１７）
【００５０】
検出位置座標系において、重心位置Ｅg（ｘg，ｙg）から見た検出位置座標系の基準位置Ｏsのベクトルは、（−ｘg，−ｙg）であり、このベクトルをキャリブレーション係数α1，β1，α2，β2を用いてツール位置座標系に変換すると、（―α1・ｘg−β1・ｙg，−α2・ｘg−β2・ｙg）となる。ここで、各キャリブレーション位置からなる四角形の重心位置Ｃg（Ｘg，Ｙg）は、検出位置座標系における重心位置Ｅg（ｘg，ｙg）と対応していることから、（Ｘg，Ｙg）に（―α1・ｘg−β1・ｙg，−α2・ｘg−β2・ｙg）を加えることで式（１８）により、Ｏs（Ｘ0，Ｙ0）が求められる。
Ｏs＝（Ｘg−α1ｘg−β1ｙg，Ｙg−α2ｘg−β2ｙg）・・・式（１８）
【００５１】
以上より算出されたキャリブレーション係数α1，β1，α2，β2及び検出位置座標系の基準位置Ｏsのツール位置座標（Ｘ0，Ｙ0）を使用して、検出位置座標系とツール位置座標系との間で座標変換を行なうと、図１１に示すように、対角の誤差ベクトルＬ1とＬ4及びＬ2とＬ3はそれぞれ一致し、更にはＬ1とＬ4の二つのベクトルはＬ2とＬ3の二つのベクトルと１８０°反転した向きのベクトルであり、距離も全て同一で極めて小さいベクトルとなる。つまりは、第１〜第４キャリブレーション位置Ｃ1〜Ｃ4のなす四角形と第１〜第４座標変換位置Ｄ1〜Ｄ4のなす四角形とが最も近い状態となり、６軸ロボット２のロボットハンド２１のハンド位置設定点Ｈを、視覚センサ３によって検出されたワーク５のグリップ位置Ｇに正確に移動させることができる。
【００５２】
以上のキャリブレーションによって求められたキャリブレーション係数α1，β1，α2，β2及び検出位置座標系の基準位置Ｏsのツール位置座標（Ｘ0，Ｙ0）は、制御コンピュータ２５のＨＤＤ内に記憶され、視覚センサ３の検出位置座標系から６軸ロボット２のツール位置座標系への座標変換を行なう際に読み出されて、座標変換式の演算に使用される。
【００５３】
なお、キャリブレーションにおいて画像の歪みの影響を更に抑えたい場合には、キャリブレーションで求めた検出位置座標系の基準位置Ｏs（Ｘ0，Ｙ0）を次のキャリブレーション位置の重心とし、再びキャリブレーションをすることで精度の高いキャリブレーション係数α1，β1，α2，β2及び検出位置座標計の基準位置Ｏs（Ｘ0，Ｙ0）を算出することができる。
【００５４】
上記実施形態では、ツールとしてロボットハンドを用いたが、その他の種類のツールであっても同様にキャリブレーションを行なうことができる。また、ワークの指標を検出することによってキャリブレーションを行なったが、ロボットハンド等のツール自体の一部を検出してキャリブレーションを行なってもよい。
【００５５】
更に、ワークを４点のキャリブレーション位置で検出してキャリブレーションを行なったが、４点以上のキャリブレーション位置を使用してキャリブレーションを行なってもよい。更に、ロボットハンドを２０°ずつ回転させて検出位置座標の平均値を求めるようにしたが、２以上の回転位置の検出位置座標があれば平均値を算出することができるので、回転角度は２０°に限定されるものではない。もちろん、より高精度なキャリブレーション、位置補正を行ないたい場合には、ロボットハンドの回転回数を増やすとよい。
【００５６】
また、６軸ロボットを例に説明したが、異なる関節数を有するその他の多軸ロボットや、スカラーロボット等のキャリブレーションにも利用することができる。更に、２次元平面上でワークの位置を検出する視覚センサと６軸ロボットとのキャリブレーションについて説明したが、複数の撮像カメラを用いてワークの三次元位置を検出する三次元視覚センサと多関節ロボットとのキャリブレーションにも応用することができる。
【図面の簡単な説明】
【００５７】
【図１】６軸ロボットと直進フィーダとの外観斜視図である。
【図２】６軸ロボットと直進フィーダとの側面図及び要部断面図である。
【図３】６軸ロボットのアーム先端のロボットフランジ座標系を示す斜視図である。
【図４】ロボットハンドに保持されたワークの形状を示す平面図及び側面図である。
【図５】ロボットハンドに保持されたワークと取出しステージと撮像カメラとを示す斜視図である。
【図６】ツール位置座標系と検出位置座標系との関係を示すグラフである。
【図７】ツール位置座標系と検出位置座標系と各キャリブレーション位置との関係を示すグラフである。
【図８】各キャリブレーション位置で行なわれるワークの検出位置座標の検出方法の説明図である。
【図９】各キャリブレーション位置と適当なキャリブレーション係数で算出された座標変換位置との関係を示すグラフである。
【図１０】各キャリブレーション位置と本発明によって得たキャリブレーション係数で算出された座標変換位置との関係を示すグラフである。
【図１１】各キャリブレーション位置と、本発明によって得たキャリブレーション係数及び検出位置座標系の基準位置とを用いて算出された座標変換位置との関係を示すグラフである。
【図１２】本発明のキャリブレーション方法の手順を示すフローチャートである。
【符号の説明】
【００５８】
２    ロボットハンド
３    視覚センサ
４    直進フィーダ
５    ワーク
２１  ロボットハンド
２４  ロボットコントローラ
２５  制御コンピュータ
３０  取出しステージ
Ｃ1〜Ｃ4  第１〜第４キャリブレーション位置
Ｄ1〜Ｄ4  第１〜第４座標変換位置
Ｇ    グリップ位置
Ｈ    ハンド位置設定点
Ｌ1〜Ｌ4  誤差ベクトル
【図１】
2006082170.tif 000006
【図２】
2006082170.tif 000007
【図３】
2006082170.tif 000008
【図４】
2006082170.tif 000009
【図５】
2006082170.tif 000010
【図６】
2006082170.tif 000011
【図７】
2006082170.tif 000012
【図８】
2006082170.tif 000013
【図９】
2006082170.tif 000014
【図１０】
2006082170.tif 000015
【図１１】
2006082170.tif 000016
【図１２】
2006082170.tif 000017