説明

ビジュアルサーボによる位置姿勢制御方法

【課題】 ビジュアルサーボによる位置姿勢制御においてカメラの縦揺れ角および偏揺れ角(姿勢角)の検出精度向上を図る。
【解決手段】 ロボット本体11は、制御装置12により位置の移動と姿勢の駆動制御がなされる。CCDカメラ15は、ロボット本体11の上アーム20に固定され、ワークWを撮影する。あらかじめ参照画像として基準位置からワークWを撮影したデータを記憶させる。制御装置12は、カメラ15で撮影した画像と参照画像のデータとに基づいてビジュアルサーボにより位置姿勢の制御を行なう。収束した段階では、カメラ15を姿勢角を所定以上傾けて画像データを取得する。このとき各画像での姿勢角と参照画像のデータとの誤差値を演算し、誤差値が最も小さくなるときの姿勢角を推定し、補正量として求める。この補正量だけ位置姿勢を制御することで、精度の高い制御を行なうことができる。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、カメラにより撮影した画像データに基づいて位置姿勢の制御を行なうようにしたビジュアルサーボによる位置姿勢制御方法に関する。
【0002】
【発明が解決しようとする課題】ロボットなどによりワークを把持させる場合などで、ハンドに取り付けたカメラによりワークを撮影してハンドの位置姿勢を制御するようにしたビジュアルサーボの技術がある。これは、あらかじめ参照画像を登録してその参照画像と同じようにワークが見える位置姿勢となるように制御することで、迅速且つ正確にハンドの位置姿勢制御を行なうようにした方法である。この場合、参照画像は、ロボットのハンドを位置姿勢制御したい場所に配置してワークを把持するときの状態にし、ハンドに取り付けたカメラで撮影したものを用いる。
【0003】このようなビジュアルサーボの技術を採用することで、ロボットのハンドをカメラが捕らえる画像の分解能の範囲で正確に位置姿勢制御を行なうことができるが、研究レベルにおいては技術的な問題は生じていないように見えていたが、実用上においては次のような点で不具合が生じることが発明者の研究により明らかになりつつある。
【0004】例えば、ロボットのハンドにより対象物を把持したり部品を取り付けたりするなどの作業において、位置決め精度が要求される場合に生ずるもので、CCDカメラなどでワークを撮影する画像の性質上、画素数と分解能の関係で精度の向上に限界が生ずるものである。すなわち、カメラの光軸方向をz軸とし、撮影した画面をxy平面とすると、ビジュアルサーボでは、カメラで撮影した二次元画像データから得られるxy平面内の位置(x,y)およびz軸回りの回転(Rz)に対しては高精度の制御を行なうことができるが、x軸あるいはy軸回りの回転(Rx,Ry)や奥行き方向(z)の補正に対しては精度に限界がある。
【0005】例えば、図14(a),(b)に示すように、カメラ1により対象物P1およびP2を撮影する場合において、x軸回りRxの回転角度である縦揺れ角の微小な変化に対して、カメラ1a(Rx方向に微小角度だけ傾いた位置)の撮影画像におけるCCDの画素数の変化は図15(a)の位置から(b)あるいは(c)に変化した状態では、量子化誤差があるため画像上の変化として捕らえることができる範囲には限界がある。この場合、現状では例えば±2°程度の分解能である。
【0006】対象物P1とP2とでは、それぞれの高さ寸法h1,h2がh1>h2となっており、奥行き方向の寸法(z軸方向の寸法)が対象物P1の方が大きいので、Rxの変化に対して変化量Error1の方がError2よりも大きくなり、その変化角度を捉ええやすいが、奥行き方向の寸法が小さい対象物P2の場合には縦揺れ角の変化角度の補正精度が低くなる(図15(d)参照)。
【0007】これは、図16(a)に示すような対象物P1において、幅寸法がDの場合に、Rxの変化に対する撮影画像上での幅寸法dは、同図(b)に示すような関係として表される。すなわち、この関係は、d/D= cos(Rx)
と表されるから、Rxが小さい領域では、角度に対する変化量が小さくなり、図17に示すように、画素pixの数の違いとしてカウントできる範囲が広くなり、その分だけ分解能が低下するのである。つまり、ビジュアルサーボでは、姿勢角の要素である縦揺れ角(pitch )および偏揺れ角(yaw )の精度について、カメラ1の量子化精度に大きく依存することになるのである。
【0008】上述の不具合を回避して分解能を高めるためには、例えば、カメラ1以外に別途にセンサを設けて、ビジュアルサーボによる位置姿勢の制御が収束した状態では、センサの検出信号に基づいて位置姿勢の補正をすることで制御精度の向上を図ることが必要となる。
【0009】本発明は、上記事情に鑑みてなされたもので、その目的は、ビジュアルサーボによる位置姿勢制御のみを用いる場合においても、位置姿勢制御が収束した状態でさらに参照画像の基準位置に近い位置姿勢となるように高い精度で制御することができるようにしたビジュアルサーボによる位置姿勢制御方法を提供することにある。
【0010】
【課題を解決するための手段】請求項1の発明によれば、第1の過程で、異なる姿勢でカメラにより対象物を撮影した画像を記憶し、第2の過程で、記憶した複数の画像のデータから推定される少なくとも縦揺れ角および偏揺れ角を示す姿勢データと、画像のデータおよび参照画像のデータの間の誤差を示す誤差データとの相関から、誤差データが許容誤差量以下となる基準位置に相当する位置姿勢を推定し、第3の過程で、推定した基準位置に相当する位置姿勢への補正量を演算し、第4の過程で、ビジュアルサーボによる位置姿勢制御が収束した状態での位置姿勢に対して第3の過程で演算した補正量に基づいて制御体操装置の位置姿勢の補正を行なうようにしたので、カメラで撮影した画像からは位置姿勢を示す縦揺れ角および偏揺れ角の不感帯となる領域、つまりビジュアルサーボの位置姿勢制御では収束状態となって量子化誤差に含まれて画像データとして差異が現れない領域にある場合でも、さらに位置姿勢の補正を行なってより正確な位置姿勢に制御することができるようになる。これにより、別途にセンサなどを設ける構成としなくとも、位置姿勢の制御精度を高めることができるようになる。
【0011】請求項2の発明によれば、上記請求項1の発明において、第1の過程を、ビジュアルサーボによる位置姿勢制御が収束した状態で、カメラの位置姿勢を姿勢データが判定角度以上変化するようにしたときの画像を記憶することにより実行するようにしたので、ビジュアルサーボによる位置姿勢制御が収束している状態すなわち、最も対象物に近接して基準位置に近い位置を起点としてここから第1の過程以降の処理を実施することで、位置姿勢の補正量を正確且つ迅速に検出して位置姿勢を補正することができるようになる。
【0012】請求項3の発明によれば、請求項1の発明において、第1の過程を、ビジュアルサーボによる位置姿勢制御が収束する状態となるまでの期間中におけるカメラの画像を記憶することにより実行するようにしたので、ビジュアルサーボによる位置姿勢制御を実行しながら対象物に近接する過程でカメラが撮影した画像を第1の過程として取り込んでいくことができ、ビジュアルサーボの制御と処理を並行して補正量の算出を行なうことができ、迅速に位置姿勢の制御を行なうことができるようになる。
【0013】請求項4の発明によれば、上記請求項3の発明において、第1の過程を実施するに際して、ビジュアルサーボによる位置姿勢制御が収束する状態となるまでの期間中のカメラの位置姿勢の制御を行なうときの姿勢データの変化量が判定角度に達しない場合には、その姿勢データの変化量が判定角度以上となるように変化させるようにしたので、上述の場合において、対象物に近接するときに実際にカメラがあまり振れない場合つまり姿勢データの変化量が補正量を求めるための判定角度以上振れない場合には、位置姿勢の補正を正確に行なえるようにするために、画像取り込みのための姿勢をとるように制御するようにしたので、第1の過程を実行しながら近接する場合でも確実に補正量の値を算出することができるようになる。
【0014】請求項5の発明によれば、上記各発明において、参照画像として記憶する対象物の画像データは、基準点に対して複数の特徴点を設定し、その基準点との間を結ぶ複数のベクトルを含んだものとして設定し、第2の過程を実施する際には、少なくともベクトルの長さもしくはベクトル間の長さの比に基づいて算出した誤差データにより位置姿勢の推定を行なうようにしたので、例えば、カメラにより撮影した画像と参照画像との間に、カメラの姿勢データの縦揺れ角や偏揺れ角のずれが生じている場合などで、対象物の基準点に対して一方側の特徴点とを結んでできるベクトルが長くなると共に、他方側の特徴点とをむすんでできるベクトルが短くなるような場合に、対象物の全長をもとに判断する場合と異なり、双方の差を検出することにより、姿勢データに対する検出能力を高めて、精度の高い補正量算出を行なうことができるようになる。
【0015】請求項6の発明によれば、上記各発明において、参照画像として記憶する対象物の画像データは、基準点に対して複数の特徴点を設定し、それら特徴点間を結ぶ複数のベクトルを含んだものとして設定され、第2の過程を実施する際には、少なくともベクトルの長さもしくはベクトル間の長さの比に基づいて算出した誤差データにより位置姿勢の推定を行なうようにしたので、上述と同様にして姿勢データに対する検出能力を高めて、精度の高い補正量算出を行なうことができるようになる。
【0016】請求項7の発明によれば、請求項5および6の発明において、参照画像として記憶する対象物の画像データは、設定された複数のベクトルについて、ベクトル間の角度に基づいて算出した誤差データにより位置姿勢の推定を行なうようにしたので、2つのベクトルのなす角度も補正量算出のデータとして捕らえて参照画像のデータに対する比較をより厳密に行なって精度の高い補正量算出処理を行なうことができるようになる。
【0017】請求項8の発明によれば、請求項5ないし7の発明において、誤差データの算出を、ベクトルについての長さあるいは角度について撮影した画像と参照画像との間の差分の自乗和として求め、位置姿勢の推定を、上記方法により算出される誤差データの最小値を得るときの姿勢データとするようにしたので、変数としての姿勢データの値に対して参照画像との差分の絶対値の和に相当する値を関数値としてその最小値を求めることで、関数の最小値つまりもっとも参照画像に近接した位置姿勢の姿勢データを求めることができるようになる。この場合、上述した関数を変数に対応してプロットし、その最小値を求めるように演算を行なうようにしても良いし、簡易的に関数の値が許容誤差値以下となるような範囲の変数値の中間値を採用するということでも求めることができる。
【0018】この場合、請求項9の発明のように、位置姿勢の推定を、誤差データの値と姿勢データの縦揺れ角および偏揺れ角の値とから、姿勢データを変数とした誤差データ関数を求め、その誤差データ関数の最小値を演算による求めることで行なうようにすると良い。
【0019】請求項10の発明によれば、上記各発明において、ビジュアルサーボによる位置姿勢制御が収束した状態で、カメラの位置をその収束位置から近接した位置に移動させて第1ないし第4の過程を実施するので、収束位置では撮影された画像の範囲では精度が得られない場合でも、近接した位置で撮影することで拡大した状態の撮影画像を得ることができ、これによって姿勢データに関して精度を向上した画像データを得ることができるようになり、位置姿勢の補正をより高い精度で行なうことができるようになる。また、これによって、姿勢データのうちで対象物の形状に起因して精度を上げ難い姿勢データがある場合でも、位置姿勢の補正精度を高めることができるようになる。
【0020】請求項11の発明によれば、上記した請求項10の発明において、ビジュアルサーボによる位置姿勢制御が収束した状態で、姿勢データのうちの検出精度の向上が必要とされる姿勢データについてその収束位置から近接した位置に移動させて実施するので、必要な姿勢データについてのみ、近接した位置まで移動した状態で位置姿勢の補正のための対象物の撮影画像を得ることで、拡大した画像に基づいた精度の良い補正を行なうことができる。
【0021】請求項12の発明によれば、上記各発明において、対象物の形状がその参照画像のデータとして姿勢データのうちの検出精度の向上が望めない姿勢データについては位置姿勢の補正を行なう対象から除外する判定動作を実行し、ビジュアルサーボによる位置姿勢制御が収束した状態では、姿勢データのうちの除外されていないものについて位置姿勢の補正のための演算処理を実行するので、検出精度の向上が望めない姿勢データについて無駄な検出処理のための時間を費やすことなく迅速に位置姿勢の制御の処理を行なうことができるようになる。
【0022】
【発明の実施の形態】(第1の実施形態)以下、本発明を組立用の多関節ロボットに適用した場合の第1の実施形態について図1ないし図8を参照しながら説明する。図1は組立用ロボットのシステムを概略的に示している。このシステムは、制御対象装置としてのロボット本体11と、このロボット本体11を制御する制御装置12とを備えて構成され、制御装置12は、ロボットコントローラ13、視覚装置14およびCCDカメラ15とから構成されている。
【0023】ロボット本体11は、組立用の6軸の小型垂直多関節型ロボットとして構成されている。このロボット本体11において、ベース部16上にショルダ部17が垂直軸を中心として回動(旋回)可能に設けられ、そのショルダ部16の左右両端部に上方に延出される一対の下アーム18が水平軸を中心に回動可能に連結されている。この下アーム部18の上端部に両側から挟まれるようにして、中間アーム部19の前端部が水平軸を中心に回動可能に連結されている。
【0024】また、中間アーム部19の前端部には、前方に延びる上アーム部20の後端部が同軸回転可能に連結されており、その上アーム部20の前端側は、左右に二股をなすように延びており、そらの間に位置してリスト部21が水平軸を中心に回動可能に連結されている。さらに、リスト部10の前端部には、円形のフランジ部22が同軸回動可能に連結され、そのフランジ部22は、対象物としてワークWを把持するためのハンドが取り付け可能な状態に設けられている。なお、図示はしないが、このロボット本体11の内部には、各軸を駆動するためのサーボモータが組み込まれている。
【0025】前述したCCDカメラ15は、ワークWを撮影するもので、上アーム部20に取り付けられている。CCDカメラ15の画像信号を伝達する信号線はロボット本体11を制御するためのケーブル23と一体にして配設されている。ロボットコントローラ13は、CPUを主体として制御用プログラムを記憶するROM、RAMを備えると共に、制御指令を駆動信号としてロボット本体11に出力するサーボ制御部などから構成されている。
【0026】視覚装置14は、ビジュアルサーボを行なうためのCPUを主体として、位置姿勢制御用のプログラムを記憶したROM、RAMを備えると共に、CCDカメラ15からの画像信号を入力するインターフェース回路、画像処理部、画像メモリなどの各種回路を備えた構成である。
【0027】そして、制御装置12は、後述するように、視覚装置14により、CCDカメラ15の画像信号を取り込み、あらかじめ登録されている参照画像と見え方が一致するような位置姿勢となる状態の制御信号をロボットコントローラ13に出力すると、ロボットコントローラ13は、これに基づいてロボット本体11の移動すべき位置姿勢に駆動制御する。
【0028】図2は、対象物としてのワークWを基準位置からCCDカメラ15により撮影した参照画像として登録する場合の、登録データを示している。ここでは、ワークWの特徴を繰り入れた参照画像を設定する例として、図示のような部材を例にとって説明する。まず、このワークWについて、任意の基準点P0を例えば中心部の所定部位に定め、その周辺部の特徴的な点を特徴点P1〜P5として設定する。基準点P0と各特徴点P1〜P5のそれぞれを結んでできるベクトルV1〜V5のデータを設定する。また、各ベクトルV1〜V5の隣接する角度φ1〜φ5のデータを設定し、これを参照画像のデータとして登録する。
【0029】次に本実施形態の作用について図3ないし図8も参照して説明する。制御装置12は、図3に示すフローチャートにしたがってロボット本体11の位置姿勢の制御を実施する。制御装置12は、制御動作を開始すると、初期設定などの種々の設定を経て後述するビジュアルサーボ制御に移行する(ステップS1)。そして、ビジュアルサーボ制御を進めて行くことで制御サイクルが収束すると、その誤差が許容値以下になり(ステップS2で「YES」と判断)、次のRx,Ryの検出処理に移行する(ステップS3)。
【0030】ここでは、本発明でいうところの補正量の算出処理を行ない、その誤差値が許容値以下になると(ステップS4で「YES」と判断)、そのときに得られた補正値を記憶し、ロボット本体11の位置姿勢を目的位置すなわち補正値に従った状態となるように移動させるようになる(ステップS5)。この結果、従来のビジュアルサーボのみの位置姿勢制御では得られない正確な位置姿勢制御を行なうことができるようになる。
【0031】次に、上述のステップS1で実行したビジュアルサーボの位置姿勢制御について簡単に説明する。図4(a)は、ワークWを基準位置においてCCDカメラ15により撮影したときの画像を参照画像として登録するための登録データを示すものである。ここでいう基準位置は、ロボット本体11の制御を行なうことにより最終的に得た位置姿勢の状態を示すものである。なお、このビジュアルサーボの位置姿勢制御の段階では、図2に示した画像データを用いた制御を行なわないので、ワークWの形状を直方体のものとして簡略的に示している。
【0032】さて、ロボット本体11が任意の位置姿勢にあるときに、CCDカメラ15により撮影したワークWの画像W1,W2(図4(b),(c)参照)に基づいて、視覚装置14により、参照画像との比較を行なって制御すべき位置姿勢を示すデータをロボットコントローラ13に出力する。ロボットコントローラ13は、CCDカメラ15による撮影画像が参照画像と同じ見え方になるようにロボット本体11の位置姿勢の制御を行なう。
【0033】このようにしてロボット本体11の位置姿勢の制御を進めていき、CCDカメラ15によるビジュアルサーボの位置姿勢制御が収束する状態すなわち、参照画像と同じ撮影画像が得られる状態になると、その位置姿勢が確定されるようになる。しかし、この状態では、前述のようにCCDカメラ15の縦揺れ角と偏揺れ角の精度が低いことから、これらの姿勢データには±2°程度の範囲を上限として検出不能な誤差が含まれている場合がある。
【0034】次に、図3のフローチャートのステップS3において実施したRx,Ryの検出処理について説明する。この検出処理においては、まず、上述のようにビジュアルサーボによる位置姿勢制御が収束した状態で、図5に示すように、CCDカメラ15の姿勢を例えばx軸回りの回転角度Rxが所定以上変化するように移動させる(図中、収束した状態を15の位置として、15a,15bの位置)。この場合、Rxの変化量は、CCDカメラ15による撮影画像で見たときに、画素数の変化として現れる程度に大きく設定している。
【0035】これにより、画素数の変化に基づいてx軸回りRxあるいはy軸回りRyの回転角すなわち姿勢データとしての縦揺れ角あるいは偏揺れ角の値が求められる。そして、このとき変化させたRx,Ryの値に対する誤差値の関数f(Rx,Ry)を次のように定義する。この場合の誤差値の関数f(Rx,Ry)は、図2で説明したベクトルV1〜V5及びφ1〜φ5の値を用いて参照画像のデータとの比較を行なうものである。
【0036】
【数1】


【0037】いま、例えば、上述の図5に示したCCDカメラ15の移動を角度を変えて8回分の画像データを取り込んだ場合について考える。一方の姿勢角RxあるいはRyを固定して他方の姿勢角RyあるいはRxについて変化させたときに、ワークWのベクトルV1〜V5のそれぞれの比の値Lλ(λ=1〜5)と、角度φ1〜φ5の比の値θλ(λ=1〜5)との値を、式(1)に従って関数値f(Rx,Ry)として求める。8回分の画像データに対応して8個の関数値f1〜f8が得られる。
【0038】ここで、得られた関数値f1〜f8をそれぞれ検出されている姿勢角RxあるいはRyに対してプロットすると、図6に示すように、誤差値を示す関数値f1〜f8を結んだ曲線として得られる。この関数曲線は、参照画像を撮影した位置つまり基準位置を通るときにゼロになる筈である。ただし、固定している姿勢角がずれている場合や、測定の誤差を考慮すると、図中破線で示すようにゼロを取らない場合があるので、判定基準は、誤差値の関数値をゼロで判断するのではなく、許容誤差値以下であることを条件とする。
【0039】さて、ビジュアルサーボによる位置姿勢制御では、関数値f4〜f6に対応するデータはすべて収束した状態としてこれらの間の違いをCCDカメラ15の画像の違いとして認識することができないとすると、この範囲では姿勢角の検出精度が低いことになる。ここで、ビジュアルサーボによる位置姿勢制御で、例えば、f5に対応した姿勢角を検出位置Rdとして得られている場合を考えると、関数値fがゼロになる基準位置Roに対してΔRだけずれていることになる。そして、このずれた量ΔRを補正値として取り込んでメモリに記憶する。
【0040】このような補正値を姿勢角Rx,Ryのそれぞれについて求めることで、得られた補正値の分だけ位置姿勢を修正することで、ビジュアルサーボによる位置姿勢の制御では得られなかった精度で、基準位置に略一致する位置姿勢とすることができるようになる。
【0041】図7及び図8は、ベクトルV1〜V5を定めて位置姿勢の検出を行なうことで、精度の向上を図ることができる根拠を示したものである。いま、CCDカメラ15の位置Pから、距離dだけ離れた位置にある長さ2Lの線分ABを撮影した場合について考える。CCDカメラ15の光軸zに対して線分ABが中点Mで直交する状態である場合には、CCDカメラ15のスクリーン(距離f)に右半分の長さAM及び左半分BMの長さは等しくIとして得ることができる(下記の式(2)参照)。この場合、中点Mは前述の基準点P0に相当し、両端部A,Bは特徴点に相当している。
【0042】また、この線分ABが角度θだけ傾いた状態つまり相対的にCCDカメラ15の姿勢角がθだけ傾いた状態を想定すると、そのときCCDカメラ15で撮影した線分A′B′のスクリーン上での画素数I′(pix) 、I″(pix) は下記の式(3)、(4)で示される。
【0043】
【数2】


【0044】上式中、sの値はCCDカメラ15の画像面上での実寸を画素に換算する計数であり、例えば、図8の計算をするに際して用いた値では、CCDカメラ15の1画素サイズが0.0074mm(7.4μm)であるから、画像面上で0.074mmの長さがある場合には10画素分の長さとして観測される。したがって、I(pix) をmmから画素に換算する計数sの値は135(1/0.0074の近似値)となる。
【0045】上述の場合、線分A′B′が遠ざかった右半分A′Mの画素数I′(pix) は、少なく見えるようになり、近付いた左半分B′Mの画素数I″(pix) は一旦増加して見えるようになり角度θが大きくなるに従って減少するように変化していく。これらI′(pix) およびI″(pix) の値について、それぞれI(pix) の値との差を演算した結果ΔI′、ΔI″を、姿勢角θを横軸にとってプロットすると、図8に示すような曲線として得られる。また、図8には、線分の全体の画素数I′(pix) +I″(pix) について2I(pix) との差を演算した結果を、同様にしてプロットした結果も示している。
【0046】この図8のプロットから、線分を中点Mで分割したそれぞれについて画素数を比較すると、姿勢角θに対する変化量が全体の画素数について比較した値よりも大きい変化を示していることがわかる。つまり、図2に示したように、基準点を中心として特徴点との間を結んでできるベクトルV1〜V5のそれぞれについて比較をすることで検出能力を高めることができるのである。このことは、特徴点間を結んで得られるベクトルを定義して、これらについて同様の演算を行なうことでも同じ効果を得ることができる。
【0047】このような本実施形態によれば、CCDカメラ15の位置姿勢を示す縦揺れ角および偏揺れ角に対応した姿勢データを、ビジュアルサーボによる位置姿勢制御が収束した状態で、CCDカメラ15を所定角度以上傾けて得られる画像データから補正量を推定するようにしたので、センサなどを別途に設けることなくビジュアルサーボによる位置姿勢制御で精度を上げることが難しい姿勢角についての制御を精度良く行なうことができるようになる。
【0048】また、本実施形態によれば、ワークWの参照画像として、基準点と複数の特徴点との間を結んで得られるベクトルV1〜V5およびそれらの間の角度φ1〜φ5を定義して、これらを補正量の算出に際して誤差値の関数として設定するようにしたので、分解能を高めて精度の良い補正量算出を行なうことができるようになる。
【0049】(第2の実施形態)図9および図10は、本発明の第2の実施形態を示すもので、以下、第1の実施形態と異なる部分について説明する。この実施形態においては、CCDカメラ15による図3のステップS3で行なわれると同様のRx,Ry検出処理のための画像データの取り込みを、ビジュアルサーボによる位置姿勢制御が収束した後に行なうのではなく、図10に示すように、ビジュアルサーボによる位置姿勢制御が収束するまでの間、つまりワークWへのアプローチを行なっている期間中(ステップP1)に行なうようにしたところである。
【0050】図示のように、ビジュアルサーボによる位置姿勢制御を行なっている期間中(ステップP1)では、CCDカメラ15をビジュアルサーボによる位置姿勢制御のために、角度αだけ大きく変化させながらアプローチさせる(ステップP2)。このようにしてアプローチしながらそのときCCDカメラ15により撮影した画像データを取り込んで記憶させ(ステップP3)、誤差が許容値以下になったら(ステップP4で「YES」と判断)、ビジュアルサーボを終了する。ここで角度αは、Rx,Ryの検出処理に必要となる程度の縦揺れ角および偏揺れ角に相当する角度を示している。
【0051】次に、それまでに得られた画像データを元にして、Rx,Ryの検出処理を実施する(ステップP5)。この検出処理の内容は、第1の実施形態で述べたと同様である。これによって補正量が算出されると、補正量による位置姿勢の制御を行なって目的位置に移動させる(ステップP6)。
【0052】このような第2の実施形態によっても、第1の実施形態と同様の効果を得ることができると共に、ビジュアルサーボによる位置姿勢制御のアプローチの間にRx,Ry検出処理のための画像データを取得するので、アプローチ期間中の動作が若干遅くなるものの、収束位置に達した状態では、計算を行なうのみで迅速に位置姿勢の補正を行なうことができるようになる。
【0053】(第3の実施形態)図11は、本発明の第3の実施形態を示すもので、第2の実施形態と異なるところは、CCDカメラ15の傾き角度をチェックして本来のビジュアルサーボによるアプローチで傾き角度がαよりも大きい場合には(ステップP7で「YES」と判断)、上述したステップP2をジャンプするようにしたところである。
【0054】これにより、必要以上にCCDカメラ15を傾けたりすることなく、迅速且つ正確に補正量の演算を行なうことができ、このような第3の実施形態によっても同様の作用効果を得ることができるようになる。
【0055】(第4の実施形態)図12および図13は本発明の第4の実施形態を示すもので、上記各実施形態と異なるところは、図2に示したワークWに対してこれとは形状の異なるワークWaを対象とする場合の位置姿勢の補正を行なう場合を取り扱うようにしたところである。ここで、ワークWaは、図12に示すように、前述したワークWよりもX軸方向とY軸方向との長さの比が大きく、上述した方法でRx,Ryを検出しようとすると、短い側の検出精度を上げることが難しくなるような条件のものである。
【0056】すなわち、図12に示すワークWaは上述した条件を示す模式的な形状を示しており、4個の特徴点p1〜p4が菱形の頂点に対応した位置にある。この場合、Y軸方向の長さを示す特徴点p1とp3との間の距離L1とX軸方向の長さを示す特徴点p2とp4との間の距離L2との関係は、L1がL2よりも大きく、その比が所定以上となる形状である。
【0057】前述のように、距離L1はX軸回りの回転角Rxの検出精度に関係し、距離L2はY軸回りの回転角Ryの検出精度に関係するので、上記したようにL1,L2の長さの関係からすると、式(2)で示した関係を考慮すると距離L2の回転角Ryの変位に対する変化量は小さく、距離L1の場合に比べて検出精度が低いことがわかる。極端な場合、距離L2がゼロに近いワークの場合には、実効的にはY軸回りの回転角Ryの検出は不可能となる。
【0058】そこで、このような場合に対処するために、第1に、検出精度を向上させるための方法を提案すると共に、第2に、検出精度に限界があるような条件を認識するように設定して検出精度を高めることができない場合に処理時間を短縮することで、実用上の効果を得るようにした。
【0059】まず、上記した第1の方法について説明する。この場合には、図12に示しているように、特徴点p2とp4とを結ぶ線分の長さが短いので、そのままでは精度を上げることができない。そこで、このような場合には、あらかじめ設定した条件により、対象となるワークWaの特徴点間を結ぶ線分から得られるベクトルが所定寸法以下(カメラ15の撮像画像の範囲内における寸法で決める)のときに、検出精度の向上を図るために、カメラ15の位置をビジュアルサーボで得られる基準位置よりもワークWaに近付けて検出処理を行なう。
【0060】これにより、図13に示すように、短い方の線分L2がカメラ15の撮影画面内で長くとることができるようになり、検出精度の向上を図ることができるようになる。なお、この場合に、カメラ15をワークWaに近付けると、長い方の線分L1は撮影画面からはみ出してしまうので、先に前述同様の方法でX軸回りの回転角Rxについて検出処理を行ない、この後、カメラ15を近接させて図13に示すような撮影画像を得て、Y軸回りの回転角Ryの検出処理を行なうことでRx,Ryの両者について検出を行なう。
【0061】この結果、Rx,Ryの双方の値について検出精度を確保しつつ、適切な検出処理時間で行なうことができ、得られた結果に基づいて精度良く補正量を演算して求めることができる。
【0062】次に、第2の方法について説明する。これは、検出精度に限界がある場合に、第1の方法のようにして検出精度を上げることが難しい場合や、その回転角の姿勢データの精度が要求されないような場合に適用するものである。まず、このような条件が成立するか否かをあらかじめ設定した条件に基づいて判定し、検出精度を上げなくとも良いと判断された場合には、その回転軸に関する補正量の検出を行なわないようにする。
【0063】このことは、検出精度の向上が望めない状況で検出精度の向上のための検出処理を継続することが、いたずらに時間を要する結果とならぬように、あらかじめ判定した結果に基づいて検出処理を停止することで、処理速度の向上を図るようにしたものである。これにより、必要とされる精度のみの向上を図ることで、短時間で効率の良い検出動作を行なうことができるようになり、実用上で大きなメリットを得ることができるようになる。
【0064】(他の実施形態)本発明は、上記実施形態にのみ限定されるものではなく、次のように変形また拡張できる。第1の実施形態と第2の実施形態を複合的に行なうようにすることもできる。例えば、第2の実施形態のようにワークWにアプローチする過程で角度を振って画像データを記憶しながらビジュアルサーボを行ない、収束した時点で補正量を求める場合の精度を向上させるために、さらに第1の実施形態のように画像データを取り込むようにすることができる。これにより、両者の利点を柔軟に取り入れて、迅速且つ正確な位置姿勢制御を行なうことができるようになる。
【0065】対象物の参照画像の登録において、ベクトルを設定する方法は、必要に応じて選択的に実施することができる。ベクトルを設定しない方法を採用しても、従来技術のビジュアルサーボによる位置姿勢の制御に比べて、位置姿勢の精度を向上させることは可能である。
【0066】上記各実施形態においては、Rx,Ryの検出を行なうための誤差値を求める関係式として式(1)を用いているが、これに限らず、基準位置における位置姿勢との誤差をRx,Ryの関係において評価することができて、その誤差値を元にしてRx,Ryの検出を行なうことができる関係式であれば他の式を用いることもできる。
【0067】上記各実施形態において説明したロボット本体11は、対象物であるワークWとの相対的に移動していない場合を想定しているが、これに限らず、対象物が移動している場合や、ロボット本体が移動可能な場合あるいは、双方が移動している状態でも適用することができ、これらの場合のように相対的に移動する物体に対してその速度ベクトルを補間する処理を実施することで同様にして位置姿勢制御を精度良く行なうことができるものである。
【0068】さらに、制御対象装置としては、ロボットのみならず、位置姿勢を制御すべき車両や、対象物の形状や動作などを正確に認識する認識装置などについても適用することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態を示す全体の概略構成図
【図2】ワークの基準点、特徴点の設定とベクトルの設定状態の説明図
【図3】ビジュアルサーボと補正量の算出の処理過程を示すフローチャート
【図4】ビジュアルサーボによる位置姿勢制御の概略説明図
【図5】CCDカメラのアプローチと角度を振る場合の作用説明図
【図6】カメラの姿勢角に対する誤差値の関数の値を示した図
【図7】基準点と特徴点との間のベクトルの傾きに対する変化を説明するための図
【図8】傾き角度と画素の関係を示す図
【図9】本発明の第2の実施形態を示す図5相当図
【図10】図3相当図
【図11】本発明の第3の実施形態を示す図3相当図
【図12】本発明の第4の実施形態を示す基準位置からワークWaを撮影している状態を示す作用説明図
【図13】基準位置よりも近接した位置における図12相当図
【図14】従来例を示す対象物の説明図
【図15】対象物の傾きと誤差値の説明図
【図16】傾き角度に対する線分幅の変化を説明する図
【図17】画素データの説明図
【符号の説明】
11はロボット本体(制御対象装置)、12は制御装置、13はロボットコントローラ、14は視覚装置、15はCCDカメラ(カメラ)、Wはワーク(対象物)である。

【特許請求の範囲】
【請求項1】 制御対象装置に取り付けられたカメラによりあらかじめ基準位置から対象物を参照画像として撮影してこれを登録し、前記カメラにより撮影した前記対象物の画像が前記参照画像と同じ状態になるように前記制御対象装置の位置姿勢を制御するようにしたビジュアルサーボによる位置姿勢制御方法において、異なる姿勢で前記カメラにより前記対象物を撮影した画像を記憶する第1の過程と、記憶された複数の画像のデータから推定される少なくとも縦揺れ角および偏揺れ角を示す姿勢データと、画像のデータおよび前記参照画像のデータの間の誤差を示す誤差データとの相関から、誤差データが許容誤差量以下となる前記基準位置に相当する位置姿勢を推定する第2の過程と、前記推定された基準位置に相当する位置姿勢への補正量を演算する第3の過程と、前記ビジュアルサーボによる位置姿勢制御が収束した状態での位置姿勢に対して前記第3の過程で演算された補正量に基づいて前記制御体操装置の位置姿勢の補正を行なう第4の過程とを実行することを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項2】 請求項1に記載のビジュアルサーボによる位置姿勢制御方法において、前記第1の過程は、前記ビジュアルサーボによる位置姿勢制御が収束した状態で、前記カメラの位置姿勢を前記姿勢データが判定角度以上変化するようにしたときの画像を記憶することにより実行されることを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項3】 請求項1に記載のビジュアルサーボによる位置姿勢制御方法において、前記第1の過程は、前記ビジュアルサーボによる位置姿勢制御が収束する状態となるまでの期間中における前記カメラの画像を記憶することにより実行されることを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項4】 請求項3に記載のビジュアルサーボによる位置姿勢制御方法において、前記第1の過程を実施するに際して、前記ビジュアルサーボによる位置姿勢制御が収束する状態となるまでの期間中の前記カメラの位置姿勢の制御を行なうときの前記姿勢データの変化量が判定角度に達しない場合には、その姿勢データの変化量が判定角度以上となるように変化させることを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項5】 請求項1ないし4に記載のビジュアルサーボによる位置姿勢制御方法において、前記参照画像として記憶する前記対象物の画像データは、基準点に対して複数の特徴点を設定し、その基準点との間を結ぶ複数のベクトルを含んだものとして設定され、前記第2の過程を実施する際には、少なくとも前記ベクトルの長さもしくはベクトル間の長さの比に基づいて算出した誤差データにより前記位置姿勢の推定を行なうことを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項6】 請求項1ないし5のいずれかに記載のビジュアルサーボによる位置姿勢制御方法において、前記参照画像として記憶する前記対象物の画像データは、基準点に対して複数の特徴点を設定し、それら特徴点間を結ぶ複数のベクトルを含んだものとして設定され、前記第2の過程を実施する際には、少なくとも前記ベクトルの長さもしくはベクトル間の長さの比に基づいて算出した誤差データにより前記位置姿勢の推定を行なうことを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項7】 請求項5または6に記載のビジュアルサーボによる位置姿勢制御方法において、前記参照画像として記憶する前記対象物の画像データは、設定された前記複数のベクトルについて、ベクトル間の角度に基づいて算出した誤差データにより前記位置姿勢の推定を行なうことを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項8】 請求項5ないし7のいずれかに記載のビジュアルサーボによる位置姿勢制御方法において、前記誤差データの算出は、前記ベクトルについての長さあるいは角度について撮影した画像と参照画像との間の差分の自乗和として求め、前記位置姿勢の推定は、上記方法により算出される誤差データの最小値を得るときの姿勢データとすることを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項9】 請求項8に記載のビジュアルサーボによる位置姿勢制御方法において、前記位置姿勢の推定は、前記誤差データの値と前記姿勢データの縦揺れ角および偏揺れ角の値とから、姿勢データを変数とした誤差データ関数を求め、その誤差データ関数の最小値を演算による求めることで行なうことを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項10】 請求項1ないし9のいずれかに記載のビジュアルサーボによる位置姿勢制御方法において、前記ビジュアルサーボによる位置姿勢制御が収束した状態で、前記カメラの位置をその収束位置から近接した位置に移動させて前記第1ないし第4の過程を実施することを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項11】 請求項10に記載のビジュアルサーボによる位置姿勢制御方法において、前記ビジュアルサーボによる位置姿勢制御が収束した状態で、前記姿勢データのうちの検出精度の向上が必要とされる姿勢データについてその収束位置から近接した位置に移動させて実施することを特徴とすることを特徴とするビジュアルサーボによる位置姿勢制御方法。
【請求項12】 請求項1ないし11のいずれかに記載のビジュアルサーボによる位置姿勢制御方法において、前記対象物の形状がその参照画像のデータとして前記姿勢データのうちの検出精度の向上が望めない姿勢データについては位置姿勢の補正を行なう対象から除外する判定動作を実行し、前記ビジュアルサーボによる位置姿勢制御が収束した状態では、前記姿勢データのうちの除外されていないものについて前記位置姿勢の補正のための演算処理を実行することを特徴とするビジュアルサーボによる位置姿勢制御方法。

【図1】
image rotate


【図2】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【図12】
image rotate


【図3】
image rotate


【図8】
image rotate


【図9】
image rotate


【図10】
image rotate


【図4】
image rotate


【図13】
image rotate


【図17】
image rotate


【図11】
image rotate


【図14】
image rotate


【図16】
image rotate


【図15】
image rotate


【公開番号】特開2003−117867(P2003−117867A)
【公開日】平成15年4月23日(2003.4.23)
【国際特許分類】
【出願番号】特願2001−306476(P2001−306476)
【出願日】平成13年10月2日(2001.10.2)
【出願人】(000004260)株式会社デンソー (27,639)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】