(57)【要約】  【課題】２台のカメラを有するロボットのキャリブレーション方法を提供する。  【解決手段】まず、ロボット座標のＸＹ平面上に設定した３つ以上の計測点において計測対象物を撮影し、この撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標を計測し、この計測対象物のモニタ座標および前記計測点に基づいて、モニタ座標からロボット座標へ変換するための変換式における変換係数を算出する。次いで、ロボット座標のＺ軸上に設定した２つ以上の計測点において計測対象物を撮影し、この撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標を計測し、この計測対象物のモニタ座標を前記変換係数が算出された変換式に代入することにより計測対象物のロボット座標を算出し、この計測対象物のロボット座標および前記Ｚ軸上に設定した計測点に基づいて、２台のカメラのロボット座標を算出する。  【選択図】図５
2005186193.tif 000002
【特許請求の範囲】
【請求項１】
ロボットのアーム先端に取り付けられた２台のカメラにより計測対象物の三次元位置を計測するようにされたロボットのキャリブレーション方法において、
ロボットを動作させることによりロボット座標のＸＹ平面上に設定した３つ以上の異なる計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）において計測対象物を撮影し、
該撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）を計測し、
該計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）および前記計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）に基づいて、モニタ座標からロボット座標へ変換するための変換式における変換係数を算出し、
ロボットを動作させることによりロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）において計測対象物を撮影し、
該撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を計測し、
該計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を前記変換係数が算出された変換式に代入することにより計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）を算出し、
該計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）および前記ロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）に基づいて、前記２台のカメラのロボット座標（ＷＬＣ、ＷＲＣ）を算出するようにしたことを特徴とするロボットのキャリブレーション方法。
【請求項２】
ロボットのアーム先端に取り付けられた２台のカメラにより計測対象物の三次元位置を計測するようにされたロボットの三次元位置計測方法において、
ロボットを動作させることによりロボット座標のＸＹ平面上に設定した３つ以上の異なる計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）において計測対象物を撮影し、
該撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）を計測し、
該計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）および前記計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）に基づいて、モニタ座標からロボット座標へ変換するための変換式における変換係数を算出し、
ロボットを動作させることによりロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）において計測対象物を撮影し、
該撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を計測し、
該計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を前記変換係数が算出された変換式に代入することにより計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）を算出し、
該計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）および前記ロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）に基づいて、前記２台のカメラのロボット座標（ＷＬＣ、ＷＲＣ）を算出し、
ロボットを動作させることにより前記ロボット座標（ＷＬＣ、ＷＲＣ）に前記２台のカメラを配置した後に計測対象物を撮影し、
該撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標を計測し、
該計測対象物のモニタ座標を前記変換係数が算出された変換式に代入することにより計測対象物のロボット座標（ＷＬＭ、ＷＲＭ）を算出し、
該計測対象物のロボット座標（ＷＬＭ、ＷＲＭ）および前記２台のカメラのロボット座標（ＷＬＣ、ＷＲＣ）に基づいて、計測対象物の三次元位置を計測するようにしたことを特徴とするロボットの三次元位置計測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオ法を用いたキャリブレーション方法および対象物の三次元位置計測方法に関し、特に、ロボット等の産業機械によってワークピースを取り出す所謂ビンピッキング作業に適用される技術に関する。
【背景技術】
【０００２】
ビンピッキングシステムは対象物の位置姿勢を画像計測装置で検出し、その情報を元にロボットアームにて対象物をハンドリングするシステムである。このシステムにおいて使用される画像計測装置では、例えば、入力画像から得られる対象物の輪郭、凹凸、模様等の特徴を直線、円弧等で近似したデータであるとともに三次元位置データを有する特徴データと、対象物のモデルの三次元位置データを有する特徴データとのマッチングをとることにより、対象物の三次元位置姿勢を得るようにしている。
【０００３】
三次元位置データを得るための三次元位置計測方法としては、従来からステレオ法が採用されている。ステレオ法は、２台のカメラを用いて、三角測量の原理を用いて対象物の三次元形状を求めるものである。このステレオ法を用いた三次元位置計測方法は、例えば特許文献１や特許文献２に開示されている。このうち特許文献１に係る方法は、撮像装置間のレンズ光軸のなす角度等におよび各撮像面における位置データに基づいて、基準面からの高さを求めるというものである。また、特許文献２に係る方法は、モニタ座標系における複数点で形成される各曲面の曲面多項式に基づいて、補間により計測点のワールド座標を求めるというものである。
【特許文献１】特開昭６２−１６２９１２号公報
【特許文献２】特開平１０−２２１０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前述した特許文献１に係る方法では、あらかじめ撮像装置間の位置関係を求めておく必要がある。また、この方法では、レンズ光軸のなす角度を正確に求めることは困難である。一方、前述した特許文献２に係る方法では、複数パターンが描かれたキャリブレーションプレートを用意しておく必要があるが、複数パターンは位置または距離及び方向が既知でなければならず、一般に対象物により視野（撮像範囲）は変わるので、曲面を高精度に近似するためには視野に応じたキャリブレーションプレートが多種必要となってくる。
【０００５】
本発明は係る従来技術の問題点を解決するためになされたものであり、その第１の目的は、レンズ光軸のなす角度を求めたりキャリブレーションプレートを使用したりすることのないロボットのキャリブレーション方法を提供することである。また、本発明の第２の目的は、係るロボットのキャリブレーション方法を適用したロボットの三次元位置計測方法を提供することである。
【課題を解決するための手段】
【０００６】
前述した第１の目的を達成するために、請求項１に係る発明では、ロボットのアーム先端に取り付けられた２台のカメラにより計測対象物の三次元位置を計測するようにされたロボットにおいて、以下の方法によるキャリブレーション方法を提供するようにした。
【０００７】
すなわち、まず、第１段階として、ロボットを動作させることによりロボット座標のＸＹ平面上に設定した３つ以上の異なる計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）において計測対象物を撮影し、この撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）を計測し、この計測対象物のモニタ座標（ＩＬ０、ＩＬ１、・・・、ＩＬｉ、ＩＲ０、ＩＲ１、・・・、ＩＲｉ）および前記計測点（Ｐ０、Ｐ１、・・・、Ｐｉ）に基づいて、モニタ座標からロボット座標へ変換するための変換式における変換係数を算出する。
【０００８】
次いで、第２段階として、ロボットを動作させることによりロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）において計測対象物を撮影し、この撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を計測し、この計測対象物のモニタ座標（ＩＺＬ０、ＩＺＬ１、・・・、ＩＺＬｉ、ＩＺＲ０、ＩＺＲ１、・・・、ＩＺＲｉ）を前記変換係数が算出された変換式に代入することにより計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）を算出し、この計測対象物のロボット座標（ＷＺＬ０、ＷＺＬ１、・・・、ＷＺＬｉ、ＷＺＲ０、ＷＺＲ１、・・・、ＷＺＲｉ）および前記ロボット座標のＺ軸上に設定した２つ以上の異なる計測点（Ｑ０、Ｑ１、・・・、Ｑｉ）に基づいて、２台のカメラのロボット座標（ＷＬＣ、ＷＲＣ）を算出するようにした。
【０００９】
また、前述した第２の目的を達成するために、請求項２に係る発明では、ロボットのアーム先端に取り付けられた２台のカメラにより計測対象物の三次元位置を計測するようにされたロボットにおいて、以下の方法による三次元位置計測方法を提供するようにした。
【００１０】
すなわち、この三次元位置計測方法においては、第１段階から第３段階まであるが、第１段階から第２段階までは前述した請求項１に係る手段における第１段階から第２段階までと同一である。第３段階としては、ロボットを動作させることにより第２段階において算出したロボット座標（ＷＬＣ、ＷＲＣ）に２台のカメラを配置した後、計測対象物を撮影し、この撮影画像を画像処理することにより仮想結像面についての計測対象物のモニタ座標を計測し、この計測対象物のモニタ座標を変換係数が算出された変換式に代入することにより計測対象物のロボット座標（ＷＬＭ、ＷＲＭ）を算出し、この計測対象物のロボット座標（ＷＬＭ、ＷＲＭ）および前記２台のカメラのロボット座標（ＷＬＣ、ＷＲＣ）に基づいて、計測対象物の三次元位置を計測するようにした。
【発明の効果】
【００１１】
本発明では、３つ以上の異なる計測点にロボットを移動させることによりキャリブレーションを行うので、従来技術のようにレンズ光軸のなす角度等の未知量の計算を行う必要がない。また、キャリブレーションの際には計測対象物自体を使用しているので、従来技術のように特別なキャリブレーションボードを準備する必要がない。したがって、カメラを搭載したロボットが通常有する機能を用いることにより、簡単にロボットに搭載されたカメラのキャリブレーションや計測対象物の三次元位置を計測することができるものとなった。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。図１は、本実施形態に係るロボットのキャリブレーション方法および三次元位置計測方法が適用されるビンピッキングシステムの一例を示す構成図である。図１において、１は垂直多関節構造を有するロボットである。２は、ロボット１のアーム先端のフランジ面に取り付けられた連結部材である。３は、計測対象物６を取り出すためのハンドであり、連結部材２に取り付けられている。４および５は、三次元位置計測などを行うために必要な画像を撮影する第１および第２のカメラであり、連結部材２に取り付けられている。これら第１カメラ４および第２カメラ５は、ステレオ法により２つの角度からの撮像を得るために、互いの光軸方向が異なるようにして設置されている。
【００１３】
図２は、本実施形態に係るロボットのキャリブレーション方法および三次元位置計測方法を実施するためのロボット制御装置の一例を示すブロック図である。ロボット制御装置は、ロボット１の各関節軸を動作させるサーボモータを駆動するサーボアンプ、サーボアンプのインターフェース１、各種の演算処理を行うＣＰＵ、動作プログラム、パラメータ、撮像データなどの各種データを格納するメモリ（ＲＡＭ−ＲＯＭや補助記憶装置）、カメラ４，５から取得した撮像データを処理する画像処理ボードなどにより構成される。さらに、ロボット制御装置は、インターフェースを介して、キーボード、ディスプレイ、マウスに接続されることにより、外部とのデータ交換を可能にしている。なお、前述した画像処理ボードは、カメラなどの撮像装置から入力したビデオ信号をディジタル化し、メモリ上に画像データを形成するものである。
【００１４】
図３は、第１カメラ４および第２カメラ５より撮影される計測対象物６の画像の一例を示したものである。図３に示す撮像画像の一例は、暗い背景にドーナッツ形状の計測対象物６を撮像した画像を示している。
【００１５】
次に、本実施形態に係るキャリブレーション方法の処理手順について説明する。図４は、本実施形態に係るロボットのキャリブレーション方法の処理手順における計測の状態について示す説明図である。また、図５は、本実施形態に係るロボットのキャリブレーション方法の処理手順について示したフローチャートである。なお、このフローチャートに示した「Ｓ＊」（＊は整数）の表記はステップ番号を示しており、以下の説明文中の「Ｓ＊」（＊は整数）の表記と対応するものである。本実施例においては第１カメラ４および第２カメラ５はロボットのアーム先端に固定されているので、第１カメラ４および第２カメラ５はロボットのアーム動作とともにロボット座標上をロボットと同じように移動することになる。
【００１６】
本実施例では、ロボット座標上の任意の位置を原点として、各カメラ４、５のロボット座標を求めることになる。
【００１７】
まず、図５に示すフローチャートの左側の処理すなわちＳ１〜Ｓ８により、仮想結像面上の位置すなわちモニタ座標からロボット座標への変換式（１）における変換係数を求める。
【００１８】
図５に示すフローチャートにおいて、「ｎ」はカメラ番号である。図５に示すフローチャートにおいては、まず第１カメラ４に関する処理を行い、しかる後に第２カメラ５に関する処理を行うようにしているので、まずカメラ番号ｎを１にする（Ｓ１）。さらに、座標点の番号ｉを０に初期化する（Ｓ２）。
【００１９】
第１カメラ４および第２カメラ５にて計測対象物６を撮影できる任意の位置を基準位置（原点）Ｐ０とし、この基準位置Ｐ０にロボット１を移動させる。そして、このロボット座標上の点Ｐ０において第１カメラ４により計測対象物６を撮影し、このときの仮想結像面についてのモニタ座標上の基準位置ＩＬ０を画像処理により計測する（Ｓ３）。
【００２０】
次いで、座標点の番号ｉを１加算する（Ｓ４）。よって、この時点でｉは１になる。
【００２１】
次に、ロボット１をＸＹ平面上で移動させる（Ｓ５）。例えば、ロボット１を図４に示すＸ軸上の点Ｐ１へ移動させる。そして、このロボット座標上の点Ｐ１において第１カメラ４により計測対象物６を撮影し、このときの仮想結像面についてのモニタ座標上の位置ＩＬ１を画像処理により計測する（Ｓ６）。
【００２２】
次に、座標点の番号ｉがＮと等しいか否かを判定する（Ｓ７）。ところで、変換式（１）における変換係数を求める場合は、ＸＹ平面上で最低でも３つの計測点が必要なので、本実施例では基準点Ｐ０を含めて３つの計測点を設定することとし、よってＳ７におけるＮは２としている。本実施例では、現時点では座標点の番号ｉは１であるから、処理はＳ４に戻ることになる。
【００２３】
すなわち、Ｓ４に戻って、座標点の番号ｉを１加算し、この時点でｉは２になる。
【００２４】
Ｓ５においては、前述と同様に、ロボット１をＸＹ平面上で移動させる。例えば、ロボット１を図４に示すＹ軸上の点Ｐ２へ移動させる。そして、このロボット座標上の点Ｐ２において第１カメラ４により計測対象物６を撮影し、このときの仮想結像面についてのモニタ座標上の位置ＩＬ２を画像処理により計測する（Ｓ６）。
【００２５】
次に、ｉがＮと等しいか否かを判定する（Ｓ７）。この時点ではｉは２でありＮと等しくなるから、処理はＳ８に進むことになる。
【００２６】
ところで、仮想結像面上の位置すなわちモニタ座標からロボット座標への変換式は式（１）で表わすことができる。
【００２７】
【数１】
2005186193.tif 000003
【００２８】
この式（１）において、Ｐはロボット座標、Ｉはモニタ座標、θは座標空間の回転角度、Ｋは座標空間のせん断、Ａはアスペクト比、Ｓは座標空間のスケーリング、Ｔはモニタ座標空間からロボット座標空間への移動ベクトルである。
【００２９】
そこで、Ｓ８においては、Ｓ７までの処理において求められた仮想結像面上の３つの位置ＩＬ０、ＩＬ１、ＩＬ２、およびこれら仮想結像面上の位置ＩＬ０、ＩＬ１、ＩＬ２、のそれぞれを計測した際の第１カメラ４のロボット座標Ｐ０、Ｐ１、Ｐ２に基づいて、式（１）における変換係数、すなわち座標空間の回転角度θ、座標空間のせん断Ｋ、アスペクト比Ａ、座標空間のスケーリングＳ、およびモニタ座標空間からロボット座標空間への移動ベクトルＴを計算する。
【００３０】
ここでは、図７を参照して、前述した変換係数の算出方法について説明する。図７は、前述したＳ１〜Ｓ７の処理結果を図示したものである。図７において、モニタ座標空間は０−Ｘｉ−Ｙｉで定義される。また、ロボット座標空間はＰ０−Ｘ−Ｙで定義される。座標空間Ｐ０−Ｘ′−Ｙ′は、モニタ座標をその原点０からロボット座標原点Ｐ０へ平行移動した座標空間である。また、座標空間Ｐ０−Ｘ−Ｙ″は、点Ｐ０を中心に座標空間Ｐ０−Ｘ′−Ｙ′を角度θだけ回転させた座標空間である。
【００３１】
ここで、各ロボット座標Ｐ０、Ｐ１、Ｐ２をそれぞれｐ０（ｘｗ０、ｙｗ０）、ｐ１（ｘｗ１、ｙｗ１）、ｐ２（ｘｗ２、ｙｗ２）とし、これら各ロボット座標Ｐ０、Ｐ１、Ｐ２において計測対象物６が計測されたモニタ座標をそれぞれｐ０（ｘｉ０、ｙｉ０）、ｐ１（ｘｉ１、ｙｉ１）、ｐ２（ｘｉ２、ｙｉ２）とすると、座標空間のスケーリングに関する関係式は式（２）および式（３）で表わすことができる。
【００３２】
【数２】
2005186193.tif 000004
【００３３】
これら式（２）および式（３）において、Ｓｘは座標空間のＸ軸スケーリング、Ｓｙは座標空間のＹ軸スケーリングである。これら式（２）および式（３）を解くことにより、座標空間のスケーリングＳ（＝Ｓｘ）およびアスペクト比Ａ（＝Ｓｙ／Ｓｘ）を求めることができる。
【００３４】
また、モニタ座標空間からロボット座標空間への移動ベクトルＴは、前述の式（２）および式（３）により算出された座標空間のスケーリングＳ、およびロボット座標Ｐ０において計測対象物６が計測されたモニタ座標ｐ０（ｘｉ０、ｙｉ０）に基づいて、式（４）により求めることができる。
【００３５】
【数３】
2005186193.tif 000005
【００３６】
また、座標空間の回転角度θは、前述の式（２）および式（３）により算出された座標空間のスケーリングＳ、およびロボット座標Ｐ０、Ｐ１において計測対象物６が計測されたモニタ座標ｐ０（ｘｉ０、ｙｉ０）、ｐ１（ｘｉ１、ｙｉ１）に基づいて、式（５）により求めることができる。
【００３７】
【数４】
2005186193.tif 000006
【００３８】
さらに、座標空間のせん断Ｋは、座標空間の回転角度θ、前述の式（２）および式（３）により算出された座標空間のスケーリングＳ、およびロボット座標Ｐ０、Ｐ１において計測対象物６が計測されたモニタ座標ｐ０（ｘｉ０、ｙｉ０）、ｐ１（ｘｉ１、ｙｉ１）に基づいて、式（６）により求めることができる。
【００３９】
【数５】
2005186193.tif 000007
【００４０】
以上により、仮想結像面上の位置すなわちモニタ座標からロボット座標への変換式（１）における変換係数がすべて求まる。
【００４１】
なお、ここでは、例として簡単な線形変換について説明したが、一般的に仮想結像面は非線形であるので、前記サンプル点を増やし、多項式変換を最小二乗近似により求めるようにしてもよい。式（７）は多項式の一般式である。
【００４２】
【数６】
2005186193.tif 000008
【００４３】
この式（７）において、Ｐｘ、Ｐｙはロボット座標、Ｉｘ、Ｉｙはモニタ座標、ｎは多項式の次数、ａｉｊ、ｂｉｊは多項式の係数である。
【００４４】
次に、図５に示すフローチャートの右側の処理すなわちＳ９〜Ｓ１８により、各カメラ４、５のロボット座標を求める。
【００４５】
まず、座標点の番号ｊを０に初期化する（Ｓ９）。
【００４６】
次に、ロボット１を前述したＸＹ平面上の基準座標Ｐ０に移動させる（Ｓ１０）。
【００４７】
次に、ロボット１をＺ軸上で移動させる（Ｓ１１）。具体的には、図４に示すように、ロボット１を基準座標Ｐ０からＺ軸上の点Ｑ１へ移動させる。
【００４８】
この点Ｑ１において、第１カメラ４により、仮想結像面についてのモニタ座標上の位置ＩＬＺ１を画像処理により計測する（Ｓ１２）。
【００４９】
そして、Ｓ８において変換係数が求められている前述の変換式（１）を用いることにより、Ｓ１２により求められたモニタ座標上の位置ＩＬＺ１をロボット座標ＷＬＺ１に変換する（Ｓ１３）。
【００５０】
次いで、座標点の番号ｊを１加算する（Ｓ１４）。よって、この時点でｊは１になる。
【００５１】
次に、座標点の番号ｊがＭと等しいか否かを判定する（Ｓ１５）。ところで、各カメラ４、５のロボット座標を求める場合は、最低でも２つの計測点が必要なので、本実施例では２つの計測点を設定することとし、よってＭは２としている。本実施例では、現時点では座標点の番号ｊは１であるから、処理はＳ１１に戻ることになる。
【００５２】
Ｓ１１〜Ｓ１３における処理は前述と同様である。すなわち、ロボット１を前述のＺ軸上の点Ｑ１からＺ軸上の点Ｑ２へＺ軸上を移動させ（Ｓ１１）、この点Ｑ２において、第１カメラ４により、仮想結像面についてのモニタ座標上の位置ＩＬＺ２を画像処理により計測し（Ｓ１２）、前述の変換式（１）を用いることにより、Ｓ１２により求められた仮想結像面についてのモニタ座標上の位置ＩＬＺ２をロボット座標ＷＬＺ２に変換する（Ｓ１３）。
【００５３】
次いで、座標点の番号ｊを１加算する（Ｓ１４）。よって、この時点でｊは２になる。
【００５４】
次に、ｊがＭと等しいか否かを判定する（Ｓ１５）。この時点ではｊは２でありＭと等しくなるから、処理はＳ１６に進むことになる。
【００５５】
Ｓ１６においては、前述のＳ１３において求められた、仮想結像面についての２つのロボット座標ＷＬＺ１、ＷＬＺ２に基づいて、第１カメラ４のロボット座標ＷＬＣを算出する。このロボット座標ＷＬＣの算出については、以下の手順で行うことができる。
【００５６】
すなわち、前述した実施例ではロボット１をＺ座標上で移動させることにより計測対象物６を計測するようにしたが、これは図６に示すようにロボット１を静止させた状態で計測対象物６がロボット１のＺ座標上を移動したことと同じであると考えることができる。このように考えると、算出すべき第１カメラ４のロボット座標ＷＬＣは、直線ＷＬＺ１Ｑ１とＷＬＺ２Ｑ２との交点として求まることになる。実際には直線ＷＬＺ１Ｑ１およびＷＬＺ２Ｑ２は同一平面上にない場合が多く、この場合は互いの位置関係はねじれとなるので、２つの直線が最接近する位置を求め、この位置を算出すべき第１カメラ４のロボット座標ＷＬＣとすることにする。そこで、これら２つの直線間の距離が最小となる条件を考えると、この条件は、ｐｑ⊥ｄａかつｐｑ⊥ｄｂとなる（「⊥」は互いに直交関係にあることを示す）。ここで、ｄａは直線ＷＬＺ１Ｑ１の方向ベクトル、ｄｂは直線ＷＬＺ２Ｑ２の方向ベクトル、ｐは直線ＷＬＺ１Ｑ１上の任意の点、ｑは直線ＷＬＺ２Ｑ２上の任意の点である。したがって、直線の方向ベクトルの内積を０とすれば、２つの直線が最接近する位置すなわち算出すべき第１カメラ４のロボット座標ＷＬＣは、連立方程式の解として求めることができる。
【００５７】
次に、カメラ番号ｎを１加算する（Ｓ１７）。よって、この時点でｎは２になる。
【００５８】
次に、ｎが３と等しいか否かを判定する（Ｓ１８）。本実施形態では、カメラは左右１台ずつ設置しているので、これら２台のカメラにおける処理が終了した場合、すなわちｎが３になった場合は、一連の処理を終了する（ＥＮＤ）。しかし、この時点では第１カメラ４の処理のみが終了し第２カメラ５の処理は終了しておらず、ｎは２であるから、処理はＳ２に戻ることになり、以降は前述した第１カメラ４の処理と同様に第２カメラ５の処理を行うことになる。なお、第２カメラ５の処理に関しては、前述した実施例の説明において「Ｌ」を「Ｒ」に置き換えればよい。
【００５９】
以上のようにして、ロボット座標上の任意の位置を原点としたときの各カメラ４、５のロボット座標、すなわち第１のカメラ４のロボット座標ＷＬＣおよび第２のカメラ５のロボット座標ＷＲＣが求めら、これにより各カメラ４、５のキャリブレーションが終了することになる。
【００６０】
次に、計測対象物６の３次元位置を計測する処理手順について説明する。計測対象物６の３次元位置を正確に求めるためには、計測に先立って２つのカメラ４、５のキャリブレーションを行う必要がある。すなわち、第１のカメラ４および第２のカメラ５を、それぞれ前述のカメラのロボット座標ＷＬＣおよびＷＲＣに設置するか、もしくは、前述の手順により、設置した第１のカメラ４および第２のカメラ５のそれぞれのロボット座標ＷＬＣおよびＷＲＣを予め求めておく。次いで、空間上の任意の位置にある計測対象物６を第１のカメラ４および第２のカメラ５で撮影し、撮影画像を画像処理することにより計測対象物６のモニタ座標を求め、このモニタ座標を前述した変換式（１）により変換することにより、計測対象物６のロボット座標すなわち計測点ロボット座標を得る。すなわち、第１のカメラ４にて計測点ロボット座標ＷＬＭを得、第２のカメラ５にて計測点ロボット座標ＷＲＭを得る。最後に、第１のカメラ４にて得られた計測点ロボット座標ＷＬＭと第１のカメラ４のロボット座標ＷＬＣとを結ぶ直線、および第２のカメラ５にて得られた計測点ロボット座標ＷＲＭと第２のカメラ５のロボット座標ＷＲＣとを結ぶ直線について、これら２つの直線の交点を前述した方法などにより求める。この２つの直線の交点を計測対象物６の３次元位置とする。
【００６１】
以上、本発明の一実施形態について説明した。なお、前述した実施形態においては変換係数を求める際の計測点の数Ｎを２としていたが、本発明はこれに限定されるものではない。すなわち、前述したようにＸＹ平面上で最低でも３つの計測点が必要であるわけであるから、計測点の数Ｎを３以上に設定してもよく、この数を多く設定すれば処理時間は長くなるが変換係数の算出精度は高くなる。
【００６２】
同様に、前述した実施形態においては仮想結像面についてのロボット座標変換を求める際の計測点の数Ｍを２としていたが、本発明はこれに限定されるものではない。すなわち、前述したようにカメラのロボット座標を求めるには最低でも２つの直線が必要となるので最低でも２つの計測点が必要となるわけであるが、計測点の数Ｍを３以上に設定してもよく、この数を多く設定すれば処理時間は長くなるがカメラのロボット座標の算出精度は高くなる。なお、計測点の数Ｍを３以上に設定した場合は、最小二乗近似により直線間の距離が最小となる位置すなわちカメラのロボット座標を求めるようにしてもよい。
【００６３】
また、前述した実施形態においては、互いの光軸が異なるようにして２台のカメラを配置していたが、本発明は係る形態に限定されるものではない。すなわち、本実施形態ではロボットの同一位置において２つの角度から計測対象物６を撮影できればよいので、例えば、連結部材２にはカメラを一台だけ取り付け、連結部材２が取り付けられたロボットの手首軸のみ動作させることにより、１台のカメラにより２つの角度からの撮像を得るようにしてもよい。
【００６４】
本実施形態では、３つ以上の異なる計測点にロボットを移動させることによりキャリブレーションを行うので、従来技術のようにレンズ光軸のなす角度等の未知量の計算を行う必要がない。また、キャリブレーションの際には計測対象物自体を使用しているので、従来技術のように特別なキャリブレーションボードを準備する必要がない。したがって、カメラを搭載したロボットが通常有する機能を用いることにより、簡単にロボットに搭載されたカメラのキャリブレーションや計測対象物の三次元位置を計測することができるものとなる。
【図面の簡単な説明】
【００６５】
【図１】本発明を実施するための最良の形態に係る、ロボットのキャリブレーション方法および三次元位置計測方法が適用されるビンピッキングシステムの一例を示す構成図である。
【図２】本発明を実施するための最良の形態に係る、ロボットのキャリブレーション方法および三次元位置計測方法を実施するためのロボット制御装置の一例を示すブロック図である。
【図３】第１カメラ４および第２カメラ５より撮影される計測対象物６の画像の一例を示したものである。
【図４】本実施形態に係るロボットのキャリブレーション方法の処理手順における計測の状態について示す説明図である。
【図５】本実施形態に係るロボットのキャリブレーション方法の処理手順について示したフローチャートである。
【図６】ロボット座標の算出理論について示す図である。
【図７】変換係数の算出方法について説明するための座標図である。
【符号の説明】
【００６６】
１  多関節型ロボット
２  連結部材
３  ハンド
４  カメラ１
５  カメラ２
６  計測対象物
【図１】
2005186193.tif 000009
【図２】
2005186193.tif 000010
【図３】
2005186193.tif 000011
【図４】
2005186193.tif 000012
【図５】
2005186193.tif 000013
【図６】
2005186193.tif 000014
【図７】
2005186193.tif 000015