(57)【特許請求の範囲】
【請求項１】
位置検出対象に設けられたマーカを撮像する撮像手段と、この撮像手段の画像データに基づいて、前記マーカの中心位置を算出する算出手段とを備える位置検出装置であって、
前記マーカは、半径の異なる２以上の同心円を同一の平面上に表示して構成され、
前記算出手段は、前記各同心円画像の重心位置を夫々算出し、それら複数の重心位置から前記マーカの中心位置を求めることを特徴とする位置検出装置。
【請求項２】
前記算出手段は、半径ｒ1 の外円及び半径ｍｒ1 （０＜ｍ＜１）の内円の２つの同心円について夫々重心位置φ1 及びφ2 を算出し、さらに、次式により中心位置φを算出することを特徴とする請求項１記載の位置検出装置。
【数１】
0003754340.tif 000019
【請求項３】
前記算出手段は、前記撮像手段の光軸に垂直な面に対する前記マーカの表示面の傾斜角度を併せて算出するように構成されていることを特徴とする請求項１又は２記載の位置検出装置。
【請求項４】
前記位置検出対象はロボットであり、前記算出手段により算出された前記マーカの中心位置が、該ロボットの位置補正に用いられることを特徴とする請求項１ないし３のいずれかに記載の位置検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばロボット等の位置検出対象に設けられたマーカを、傾斜した方向から撮像した場合でも、その中心位置を正確に検出することを可能とした位置検出装置に関する。
【０００２】
【発明が解決しようとする課題】
産業用ロボット例えば組立用の多関節（６軸）型ロボットを用いたシステムにおいては、ロボットアームの位置が、重力等の影響を受けることによって、理論上（計算機環境上）の位置から若干の位置ずれを生ずる場合がある。そこで、その位置ずれの補正のため、ロボットアームに例えば円形のマーカを設けると共に、固定設備側に、そのマーカ部分を撮像してマーカ位置を検出する視覚認識装置を設けることが考えられている。この場合、前記視覚認識装置は、ＣＣＤカメラによりマーカ部分を撮像し、その画像データを画像処理装置により処理して、前記マーカ画像の重心位置を算出することにより、マーカの中心位置を検出するようになっている。
【０００３】
ところで、上記のように視覚認識によりマーカ位置を検出する場合、ＣＣＤカメラとマーカとが正対して位置する（マーカ表示面がＣＣＤカメラの光軸に垂直となっている）ときには、マーカ画像の重心位置によりマーカの中心位置を高精度で検出することができるが、実際には、マーカ表示面がＣＣＤカメラに対して傾斜していることも多く、この場合斜めに投影された画像を撮像してしまうことになる。このため、撮影したマーカ画像が真円ではなく歪みを有した状態となり、その重心を求めても、マーカの真の中心位置に一致しない不都合が生ずる。
【０００４】
本発明は上記事情に鑑みてなされたもので、その目的は、撮像手段によりマーカを撮像することに基づいて位置検出を行うにものにあって、マーカを傾斜した方向から撮像した場合でも、その中心位置を正確に検出することを可能とした位置検出装置を提供するにある。
【０００５】
【課題を解決するための手段】
本発明者らは、円形のマーカを傾斜方向から撮像した場合におけるマーカ画像の重心位置の真の中心位置からのずれ量は、その傾斜角度と、撮像視点から投影面までの距離と、マーカの半径とによってほぼ決まることに着目し、マーカを、半径の異なる少なくとも２つの同心円を有したものとし、それら同心円の半径が異なることに起因して各円の画像の重心が異なってくることを利用して、マーカの真の中心位置を求めることが可能であることを確認し、本発明を成し遂げたのである。
【０００６】
即ち、本発明の請求項１の位置検出装置によれば、位置検出対象に設けられるマーカを、半径の異なる２以上の同心円を同一の平面上に表示して構成し、撮像手段のマーカを撮像した画像データに基づいてマーカの中心位置を算出する算出手段を、各同心円画像の重心位置を夫々算出し、それら複数の重心位置からマーカの中心位置を求めるように構成したので、マーカを傾斜した方向から撮像した場合でも、そのマーカの中心位置を正確に算出することが可能となる。
【０００７】
より具体的には、本発明者らの研究によれば、半径ｒ1 の外円及び半径ｍｒ1 （０＜ｍ＜１）の内円の２つの同心円について夫々重心位置φ1 及びφ2 を算出することにより、マーカの真の中心位置φを、
【数２】
0003754340.tif 000002
の式で簡単に算出することができる（請求項２の発明）。尚、マーカの中心位置φの算出方法としては、これ以外にも、複数の同心円の各円の重心と面積とから最小自乗法により求めるなど、様々な方法がある。
【０００８】
また、このとき、算出手段を、撮像手段の光軸に垂直な面に対するマーカの表示面の傾斜角度を併せて算出するように構成することができ（請求項３の発明）、これにより、マーカの位置だけでなくマーカ表示面つまり位置検出対象の撮像手段に対する傾斜角度をも検出することが可能となる。さらには、本発明の位置検出装置は、ロボットの位置検出に適用し、算出手段により算出されたマーカの中心位置に基づいてロボットの位置補正を行うことができ（請求項４の発明）、これにより、比較的簡単で安価な構成で、ロボットの位置補正を正確に行うことができるようになる。
【０００９】
【発明の実施の形態】
以下、本発明を例えば組立用の垂直多関節（６軸）型ロボットの位置補正に適用した一実施例について、図面を参照しながら説明する。図１は、本実施例に係る位置検出装置の位置検出対象となるロボット本体１が、組立作業設備の設置面（作業台）２上に設置されている様子（外観）を概略的に示しており、まず、このロボット本体１の全体構成について簡単に述べる。
【００１０】
このロボット本体１は、前記設置面２上に固定設置されたベース３上に、第１アーム４が垂直軸を中心に回動（旋回）可能に設けられ、その第１アーム４の先端に、第２アーム５が水平軸を中心に回動可能に設けられ、その第２アーム５の先端に、第３アーム６が水平軸を中心に回動可能に設けられている。さらに、その第３アーム６の先端面部に、第４アーム７が同軸回転可能に設けられ、第４アーム７の先端には、第５アーム８が回転可能に設けられ、第５アーム８の先端面に第６アーム９が同軸回転可能に設けられて構成されている。そして、前記第６アーム９の先端面は、図示しないハンド等のエンドエフェクタが着脱（交換）自在に取付けられるエンドエフェクタ取付面１０とされている。
【００１１】
また、上記したロボット本体１の各アーム４〜９は、エンコーダ付きのサーボモータ（図示せず）によりそれぞれ駆動されるようになっており、それら各サーボモータは、ロボット制御装置（コントローラ）１１（図２にのみ図示）によりフィードバック制御されるようになっている。このロボット制御装置１１は、マイコンを主体として構成され、図２に示すように、前記ロボット本体１を制御する制御部１２や、作業プログラムや作業位置データ等が記憶される記憶部１３を備えて構成されている。これにて、ロボット制御装置１１は、記憶部１３に記憶された作業プログラムに従い、作業位置データに基づいてロボット本体１を制御し、以て部品の組立作業等を自動的に実行させるようになっている。
【００１２】
さて、上記ロボット本体１の位置（この場合、エンドエフェクタ取付面１０の位置及び姿勢）を検出するための、本実施例に係る位置検出装置１４の構成について、以下述べる。ここで、まず図１に示すように、前記エンドエフェクタ取付面１０の中心部には、ターゲットとなるマーカＭが設けられるようになっている。本実施例では、このマーカＭは、エンドエフェクタ取付面１０の中心を中心とした半径の異なる２つの同心円、即ち外円Ｃ1 及び内円Ｃ2 を平面Ｓ（図３，図４参照）上に表示して構成されている。位置検出装置１４は、例えばロボット本体１が作業開始前（あるいは教示前）において原点位置に位置している状態で、エンドエフェクタ取付面１０に設けられたマーカＭ（同心円Ｃ1 ，Ｃ2 ）の３次元の中心位置φ及び前記平面Ｓの傾斜角度θを検出するようになっている。
【００１３】
前記位置検出装置１４は、図２に示すように、前記マーカＭ部分を撮像する撮像手段たるＣＣＤカメラ１５や、マイコンを主体してなり前記ＣＣＤカメラ１５からの画像データを処理する視覚認識装置１６等から構成される。前記ＣＣＤカメラ１５は、図１に示すように、設備の設置面２上に、前記ロボット本体１に対向して前記エンドエフェクタ取付面１０のマーカＭを撮像可能な位置（且つ作業の邪魔にならない位置）に設けられる。
【００１４】
このとき、本実施例では、このＣＣＤカメラ１５は、ロボット本体１に向って左右に２個が設けられており、詳しい説明は省略するが、これら２台のＣＣＤカメラ１５を用いることにより、ＣＣＤカメラ１５からマーカＭ（投影面）までの距離Ｌをも高精度に検出できるようになっている。さらに、各ＣＣＤカメラ１５は、垂直軸を中心に回動（旋回）可能に設けられると共に、水平軸を中心に上下方向に回動（角度変更）可能に設けられており、カメラ駆動装置１７によって、前記マーカＭを視野のほぼ中央部にて撮像できる向き（理論的に正対する位置）となるように移動されるようになっている。
【００１５】
前記視覚認識装置１６は、図２に示すように、前記ＣＣＤカメラ１５により撮像されたマーカＭ部分の画像データを記憶する画像記憶部１８や、その画像データを処理する演算処理部１９等を備えて構成される。また、前記演算処理部１９は、前記カメラ駆動装置１７の駆動制御をも行うようになっており、この際、各ＣＣＤカメラ１５の位置（三次元的な撮影角度）を自ら認識できることは勿論である。
【００１６】
そして、詳しくは後の作用説明にて述べるように、この視覚認識装置１６（演算処理部１９）は、そのソフトウエア構成（処理プログラムの実行）により、前記ＣＣＤカメラ１５によりマーカＭ部分を撮像し、その画像データを処理して、同心円Ｃ1 ，Ｃ2 の画像上の重心位置φ1 ，φ2 を夫々算出し、それら重心位置φ1 ，φ2 から前記マーカＭの中心位置φを求めるようになっている。従って、演算処理部１９が算出手段として機能するようになっている。
【００１７】
このとき、より具体的には、演算処理部１９には、前記マーカＭの外円Ｃ1 の半径ｒ1 や、内円Ｃ2 の半径ｒ2 等の予め必要なデータが入力されており、内円Ｃ2 の半径ｒ2 をｒ2 ＝ｍｒ1 （０＜ｍ＜１）とすると、算出された重心位置φ1 及びφ2 から、マーカＭの真の中心位置φを、
【数３】
0003754340.tif 000003
の式で算出するようになっている。
【００１８】
さらに、本実施例では、演算処理部１９は、中心位置φと例えば外円Ｃ1 の重心位置φ1 との間のずれ量Δφ、並びに、ＣＣＤカメラ１５からマーカＭの投影面間での距離Ｌ、及び外円Ｃ1 の半径ｒ1 から、前記ＣＣＤカメラ１５の光軸に垂直な面に対する前記マーカＭの表示面Ｓの傾斜角度θを併せて算出するように構成されている。そして、検出されたマーカＭの中心位置φ及びマーカＭの表示面Ｓの傾斜角度θは、ロボット制御装置１１に送られ、ロボット本体１の位置補正（記憶部１３に記憶されている作業位置データの補正）に用いられるようになっている。
【００１９】
次に、上記構成の作用について、図３及び図４も参照して述べる。上述のように、ロボット本体１にあっては、アーム４〜９の位置が、重力等の影響を受けることによって、理論上（計算機環境上）の位置から若干の位置ずれを生ずる場合がある。そこで、その位置ずれの補正のため、組立作業を行う前（あるいは教示作業前）に、位置検出装置１４により、アーム先端のエンドエフェクタ取付面１０のマーカＭの位置を検出し、位置ずれ補正を行う。
【００２０】
ここで、円形のマーカの位置を検出する場合、ＣＣＤカメラ１５とマーカＭとが正対して位置する（マーカＭの表示面ＳがＣＣＤカメラ１５の光軸に垂直となっている）ときには、マーカ画像の重心位置の検出によりマーカＭの中心位置を求めることができる。ところが、実際には、マーカＭの表示面ＳがＣＣＤカメラ１５に対して傾斜していることも多く、この場合、斜めに投影された画像を撮像してしまい、マーカＭの画像が真円ではなく歪みを有した状態となり、その重心を求めても、マーカＭの真の中心位置φに一致しない不都合が生ずる。
【００２１】
今、図３に示すように、半径ｒの円Ｃが表示面Ｓに表示され、これを撮像するＣＣＤカメラ１５の光軸ｌに垂直な面に対してその表示面Ｓが角度θ傾斜している場合、円Ｃの真の中心位置に対する画像の重心位置の誤差の角度成分Δφは、以下ようにして求めることができる。但し、ここでは、ＣＣＤカメラ１５の視点Ｖを原点とし、視点Ｖと円Ｃの中心とを結ぶ線（光軸ｌ）をｚ軸に一致させ、表示面Ｓがｘ軸方向に対して角度θ傾いているものとし、視点Ｖ（原点）から投影面までの距離をＬとしている。
【００２２】
即ち、円Ｃを含む球の方程式は、
【数４】
0003754340.tif 000004
で表され、面Ｓの方程式は、
ｘｓｉｎθ＋（ｚ−Ｌ）ｃｏｓθ＝０
ｚ−Ｌ＝−ｘｔａｎθ                    …（２）
（２）式を（１）式に代入すると、
【数５】
0003754340.tif 000005
となる。
【００２３】
これにて、円Ｃの円周の座標は、
【数６】
0003754340.tif 000006
となり、これから、光軸ｌに垂直な平面（ｚ＝Ｌ）に投影された座標は、
【数７】
0003754340.tif 000007
となる。ここで、ａ（Ｌ−ｘｔａｎθ）＝Ｌより、ａ＝Ｌ／（Ｌ−ｘｔａｎθ）であるから、上記座標は、
【数８】
0003754340.tif 000008
となる。
【００２４】
Ｘ＝Ｌｘ／（Ｌ−ｘｔａｎθ）とおくと、ｘ＝ＬＸ／（Ｌ＋Ｘｔａｎθ）より、上記座標は、
【数９】
0003754340.tif 000009
で表される。この式から、重心を求めるときの積分範囲は、
【数１０】
0003754340.tif 000010
となる。
【００２５】
さらに、距離Ｌで規格化するために、ｔ＝Ｘ／Ｌ、α＝ｒ／Ｌとおくと、Ｘ＝Ｌｔより、
【数１１】
0003754340.tif 000011
この式より、重心を求めるときの積分範囲は、
【数１２】
0003754340.tif 000012
となる。
【００２６】
数値計算の結果、重心位置の誤差（傾きθに起因した真の中心からのずれ）の角度成分Δφは、次式で近似される。
【００２７】
【数１３】
0003754340.tif 000013
【００２８】
さて、本実施例においては、図４に示すように、マーカＭが、半径ｒ1 の外円Ｃ1 と、半径ｒ2 の内円Ｃ2 （但しｒ2 ＝ｍｒ1 （０＜ｍ＜１））とからなる同心円から構成される、そして、位置検出装置１４は、前記マーカＭ部分をＣＣＤカメラ１５により撮像し、視覚認識装置１６（演算処理部１９）により、その画像データに基づいて、各円Ｃ1 ，Ｃ2 の重心位置φ1 ，φ2 を夫々算出し、それらから次のようにしてマーカＭの真の中心位置φを算出することができる。
【００２９】
即ち、上記（３）式で示されるように、半径ｒの円Ｃに関しては，傾きθに起因した重心位置の誤差の角度成分Δφは、
【数１４】
0003754340.tif 000014
で表すことができ、Δφが十分に小さいときには、
【数１５】
0003754340.tif 000015
で近似できる。但し、α＝ｒ／Ｌ、ｋ（θ）＝０．５３９ｓｉｎ２θである。
【００３０】
マーカＭ（円Ｃ1 ，Ｃ2 ）の真の中心位置をφとし、外円Ｃ1 の重心位置φ1 の誤差をΔφ1 、内円Ｃ2 の重心位置φ2 の誤差をΔφ2 とすると、
φ＝φ1 −Δφ1
φ＝φ2 −Δφ2
であるから、α1 ＝ｒ1 ／Ｌ、α2 ＝ｒ2 ／Ｌとすると、上記（４）式から、
【数１６】
0003754340.tif 000016
が成立つ。
【００３１】
上記（５）式にα2 の二乗を乗算したものから、（６）式にα1 の二乗を乗算したものを減算すると、
【数１７】
0003754340.tif 000017
となる。これに、α1 ＝ｒ1 ／Ｌ、α2 ＝ｍｒ1 ／Ｌを代入すると、
【数１８】
0003754340.tif 000018
が得られる。
【００３２】
従って、この（７）式に、算出されたφ1 ，φ2 、及び、既知のｍを代入することにより、真の中心位置φを容易に算出することができるのである。尚、表示面Ｓに傾斜がない、つまりθ＝０の場合には、各円Ｃ1 ，Ｃ2 の重心位置φ1 ，φ2 が一致し、且つ誤差成分Δφが０となるので、それら重心位置φ1 ，φ2 が中心位置φに一致することは勿論であり、この場合にも上記（７）式が成立つ。つまり、表示面Ｓの傾斜の有無に関係なく、上記（７）式を用いて中心位置φを算出できるのである。
【００３３】
また、詳しい説明は省略するが、距離Ｌが高精度で検出できるので、例えば上記（３）式等から明らかなように、このＬの値や半径ｒ、誤差成分Δφを用いて、表示面Ｓの傾斜角度θを容易に算出することが可能である。そして、算出されたマーカＭの正しい中心位置φ及び表示面Ｓの傾斜角度θに基づいて、ロボット本体１の高精度の位置ずれ補正を行うことができ、ひいては、ロボット本体１による高精度の組立作業を実行することができるのである。
【００３４】
このように本実施例によれば、ＣＣＤカメラ１５によりマーカＭを撮像することに基づいて位置検出を行うにものにあって、マーカＭを同心円Ｃ1 ，Ｃ2 から構成し、それら各円Ｃ1 ，Ｃ2 の重心を算出することに基づいて、上記（７）式を用いて簡単に正しい中心位置φを算出することができる。従って、マーカＭを傾斜した方向から撮像した場合でも、その中心位置φを正確に検出することができるという優れた効果を得ることができる。また、本実施例では、マーカＭの中心位置φに加えて、マーカＭの表示面Ｓの傾斜角度θをも併せて算出するようにしたので、比較的簡単で安価な構成で、ロボット本体１の位置補正を正確に行うことができ、ひいては高精度の作業を行うことができるようになる。
【００３５】
尚、上記した実施例では、マーカＭに半径の異なる２つの同心円Ｃ1 ，Ｃ2 を設けて上記（７）式により中心位置φを算出する構成としたが、マーカの中心位置φの算出方法としては、先に計算した上記（４）式を利用した下記のような方法も考えられる。これらの場合、マーカに３個以上の同心円を設けても良いことは勿論である。
【００３６】
▲１▼複数の同心円の各円の重心と面積とを算出し、それらから最小二乗法により求める。
▲２▼円の半径を等比級数で決めた複数の同心円からマーカを構成し、その比率と、算出された各円の重心と面積とから、最小二乗法により求める。
▲３▼円の大きさにより重心を算出する際の量子化ばらつきが異なるので、それを考慮し重み付け最小二乗法により求める。このとき、円の半径に比例した重み付けを行うことができる。
【００３７】
その他、上記実施例では、撮像手段（ＣＣＤカメラ１５）を移動（向き変更）可能に設けるようにしたが、撮像手段を固定して設けても良く、また、撮像手段は１個のみでも実施可能である。マーカＭを設ける位置としても、エンドエフェクタ取付面１０に限らず、ロボット本体１の位置検出したいところに設ければ良く、この場合、マーカＭを複数箇所に設けることも可能である。上記のようにロボットに適用する際に、ロボット側に撮像手段を設け、固定設備側にマーカを設けるようにしても、同様に実施することができる。自走ロボットにも適用することができる。さらには、ロボットの位置決め以外にも、本発明は、視覚により三次元の位置検出を行うもの全般に適用することができるなど、要旨を逸脱しない範囲内で適宜変更して実施し得るものである。
【図面の簡単な説明】
【図１】本発明の一実施例を示すもので、ロボット本体及びＣＣＤカメラの設置状態を示す斜視図
【図２】システムの電気的構成を概略的に示すブロック図
【図３】表示面の傾きに起因した重心位置の誤差の算出方法を説明するための図
【図４】同心円を用いた中心位置の算出方法を説明するための図
【符号の説明】
図面中、１はロボット本体、１０はエンドエフェクタ取付面、１１はロボット制御装置、１４は位置検出装置、１５はＣＣＤカメラ（撮像手段）、１６は視覚認識装置、１７はカメラ駆動装置、１８は画像記憶部、１９は演算処理部（算出手段）、Ｍはマーカ、Ｃ1 は外円、Ｃ2 は内円、Ｓは表示面を示す。
【図１】
0003754340.tif 000020
【図２】
0003754340.tif 000021
【図３】
0003754340.tif 000022
【図４】
0003754340.tif 000023