以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
<実施形態1>
本実施形態(下記の実施形態でも同様)では、校正対象構造物として3次元視覚測定装置を考える。この3次元視覚測定装置は、ロボット装置ないしその作業環境の所定部位(所定位置)に配置される。校正対象構造物としての3次元視覚測定装置は、以下の実施形態ではステレオカメラ(104)であり、ロボット装置ないしその作業環境の所定部位(所定位置)に装着するための位置決め部を有する機能部品である。
本発明の校正方法では、3次元視覚測定装置(ステレオカメラ104)の3次元測定値が表現される第1の座標系(C)と、3次元視覚測定装置(を備えた機能部品の)基準部位から定まる第2の座標系(M)と、の間で座標変換を行う校正データを取得する。即ち、本実施形態1~実施形態6の校正システムでは、3次元視覚測定装置の計測に用いられる座標系と、校正対象構造物としての3次元視覚測定装置の位置決め(マウント)部を基準とした座標系の関係(相対位置姿勢)を校正する。
特に、本実施形態1~実施形態5では、接触式の測定プローブ102を備えた3次元測定機101を利用する構成を前提とする。そして、後述の実施形態6でも説明するが、このステレオカメラ104(3次元視覚測定装置)で撮影する測定プローブ102は、校正用の「マーク」として考えることができる。即ち、この測定プローブ102は、本実施形態1~実施形態5では、後述の実施形態6におけるマーク(7021:図17)と読み換えても構わない。
本実施形態1~実施形態5では、3次元測定機の測定プローブを上記の「マーク」として用いて以下のような制御過程を実行する。
・測定プローブ102により、機能部品の形状、または、機能部品と機械的に結合可能な治具の形状を3次元測定し、その3次元測定結果に基づき第2の座標系を定義する(プローブ測定工程)。
・ステレオカメラ104(3次元視覚測定装置)により撮影可能な範囲内の、同カメラ(104)との位置関係が予め既知である計測位置に、同カメラ(104)により座標値を計測可能なマークとして測定プローブ102を位置決めする(マーク設置工程)。
・ステレオカメラ104(3次元視覚測定装置)により、第1の座標系におけるマークの座標値を計測する(3次元視覚測定工程)。
・ステレオカメラ104(3次元視覚測定装置)を備えた機能部品の基準部位から定まる、プローブ測定工程で定義された第2の座標系におけるマークの座標値を算出する(マーク座標値算出工程)。
・第1の座標系、および第2の座標系におけるマークのそれぞれの座標値を用い、次のような補正データ(校正データ)を算出する(校正データ算出工程)。この補正データ(校正データ)には、第1および第2の座標系の間で座標変換を行うための校正データと、ステレオカメラ104(3次元視覚測定装置)で計測される3次元計測座標値のスケールを補正する要素を含む補正行列と、が含まれる。
図1は3次元視覚測定装置の校正システムの全体構成の一例を示してある。図1において、校正システムは定盤103上に、接触式の測定プローブ102を用いる3次元測定機101を備える。
3次元測定機101は、内部に配置されたXYZスライダ(不図示)を用いて、接触式の測定プローブ102を3軸(XYZ)に沿った方向に移動することができる。3次元測定機101は、例えばレーザ光などを用いた位置センサ(不図示)によりXYZスライダの移動量を高精度に計測することができ、これにより測定プローブ102の位置を高精度に計測することが可能である。測定プローブ102(ないしそのXYZスライダ)の各軸の真直誤差(縦、横)、回転誤差(ロール、ピッチ、ヨー)、指示誤差と直角誤差などを含む計21個の幾何学誤差は、予めレーザ干渉計やゲージなどを用いて算出し補正係数を求めておくことができる。これにより高精度に測定プローブ102の位置を計測可能である。なお、図1では、測定プローブ102(ないしそれを支持するXYZスライダ)の保持部が門型に構成された3次元測定機101を図示しているが、3次元測定機101の機械的な構成はこのような門型に限定されるものではない。3次元測定機101には、測定プローブ102の位置を高精度に計測可能な装置であれば、例えば多関節アーム型など、他の機械的構造を利用することができる。
図2は、測定プローブ102の構成を示している。測定プローブ102はスタイラス201および先端球202から構成することができる。測定対象に接触させる先端球202は、スタイラス201の先端に取り付けられている。例えば、スタイラス201は3次元測定機101に対して着脱可能な構成とすることができる。このような着脱、交換可能な構成によって、例えば3次元視覚センサ(ステレオカメラ104)の光学性能や位置決め基準部の形状に適したスタイラス201(ないし先端球202)を用いることができる。
先端球202には、非透過で光沢が少なく、照明条件が安定しやすい、例えばジルコニアなどの材質が好ましい。ただし、先端球202には、上記のような3次元視覚センサによる計測に適した特性を有するものであれば、ルビー、窒化珪素、セラミック、その他の超硬材、といった材質を用いることができる。先端球202は、例えば球体形状とし、その真円度や寸法は製造時に予め特定の精度範囲にコントロールされているものが好ましい。本実施形態では、先端球202が球体の場合についてのみ説明するが、半球や円盤形状等の他の形状でも、後述の校正制御は実施可能である。
本実施形態の3次元測定機101において、測定プローブ102の装着部位には、圧力センサ203が内蔵されている。この圧力センサ203を介して、例えば、先端球202が対象物に接触したタイミングを検知することができる。この接触タイミング信号をトリガ信号として用いることにより、対象物に先端球202が接触した瞬間における先端球202の基準位置(例えば中心位置)を計測することができる。
本校正システムでは、3次元測定機101の定盤103上には位置決め治具105とリング照明106を設置し、位置決め治具105上には、3次元視覚測定装置としてステレオカメラ104を設置する。3次元測定機101は、3次元視覚測定装置(ステレオカメラ104)の校正専用であってもよく、また、3次元視覚測定装置(ステレオカメラ104)を校正する以外の他の用途に利用可能な製品として構成されていてもよい。
図3は、3次元視覚測定装置(3次元視覚センサ)としてのステレオカメラ104および位置決め治具105の構成を示している。図3に示すように、ステレオカメラ104は、例えばそれぞれの撮像光軸を所定の基線長だけ離間して配置された単眼カメラ301、302を備える。なお、本実施形態では、3次元視覚センサとしてパッシブ式のステレオカメラ104を用いることを考えるが、アクティブ式の光レーザ法、アクティブステレオ法などの測定方式による3次元視覚センサを用いてもよい。
ステレオカメラ104の所定部位、例えば、その筺体の裏側には、校正対象構造物(本実施形態では3次元視覚センサ、即ちステレオカメラ104)の位置決め基準部となる位置決めピン303、303を複数、例えば少なくとも2個、配置する。この位置決めピンの数は、3個以上配置してもよい。その場合、下記の位置決め治具105の位置決め穴304、304…の位置や数は、ステレオカメラ104の位置決めピンの位置や数に対応して定められる。
一方、定盤103上に配置される位置決め治具105には、ステレオカメラ104の位置決めピン303にそれぞれ対応する位置に位置決め穴304、304を穿孔してある。このような位置決めピン303と位置決め穴304の嵌合構造によって、ステレオカメラ104と治具105は機械的に結合可能であり、ステレオカメラ104のXY方向の位置出しを高精度に行うことができる。また、ステレオカメラ104の筺体下面と、位置決め治具105の上面を接触させることにより、Z方向の位置決めが行われる。このため、ステレオカメラ104の筺体下面と位置決め治具105の上面は、平面度が高精度に出ていることが好ましい。
ステレオカメラ104は、ロボット装置または、その作業環境の所定部位に配置することができるが、その場合、ロボット装置またはその作業環境の所定部位(所定位置)に装着するための位置決め部を有することが好ましい。例えば、ステレオカメラ104をロボット装置のビジョン系として用いる場合は、図3に示した位置決め治具105と同じ位置決め穴304、304を備えたカメラマウント1104をロボット装置R(ロボットアーム)の一部に配置する。ロボット装置Rは図3に破線で示してある。図3にロボット装置Rとして示した部分は、例えば手先側のリンクなどの躯体や、ハンドなどのエンドエフェクタに相当し、その一部に位置決め穴304、304を備えたカメラマウント1104が配置される。
本実施形態では、校正対象構造物の形状から定まる座標系が、位置決め基準部から定まる位置決め座標系Mであるものとする。図3に示すように、位置決め座標系MのXY平面はステレオカメラ104筐体の下面に一致するものとする。また、位置決め座標系Mの原点は図3において左側の位置決めピン303の中心軸と、ステレオカメラ104筐体の下面の交点とする。また、X軸は左側の位置決めピン303から右側の位置決めピン303への方向とする。Y軸はそのX軸と位置決め座標系Mの原点において直交し、同図紙面の手前から奥に向かう方向とする。なお、位置決め座標系M(第2の座標系)の原点は、機能部品たるステレオカメラ104の基準部位(位置決めピン303)の形状、寸法から一義的に定まる位置に配置すればよい。例えば、位置決め座標系M(第2の座標系)の原点は、2つの位置決めピン303の中心間の距離を2等分した位置のカメラ底面などに配置してもよい。
なお、本実施形態では、ステレオカメラ104の筺体(の下面)に直接、位置決め基準部が配置されているが、筺体とは別体構成であってもよい。また、本実施形態では、位置決め基準部として位置決めピン303、303を用いたが、ステレオカメラ104の筐体の側面を基準面として、適当な位置決め用の壁面などに押し当てて位置決めする構成などを用いてもよい。この場合、ステレオカメラ104の筐体の側面を直接測定プローブ102で接触して計測可能なため、位置決め治具105を用いずに済む可能性がある。
また、図示はしていないが、ステレオカメラ104が校正中に動かないようにするため、位置決め治具105にはステレオカメラ104をねじやクランプで固定できる機構を設けておくと好適である。その際、例えば、ばね等で一方向に力を印加しながら固定するような構造を採用することにより、ピン嵌合誤差を軽減でき、より高精度な校正を行えるようになる。
リング照明106は、ステレオカメラ104でスタイラス201の先端球202を撮影する際に使用する。リング照明106を用いることにより、先端球202を対称に照らすことが可能なため、ステレオカメラ104の計測精度を向上させることができる。特に、先端球202の外周部を均一に照明できるローアングルのリング照明が好ましい。
図1の校正システムの制御系の構成の一例を同図の右側に示してある。便宜上、本実施形態では、校正システムの制御系は、3次元測定機コントローラ107、ビジョンコントローラ113、計測コントローラ700から成る構成としている。計測コントローラ700は、本校正システムの主にユーザーインターフェースを構成するもので、少なくとも校正処理の操作に必要な表示部122、操作部123を含む。
ただし、校正システムの制御系の形態は必ずしも図1のような構成でなくても構わない。例えば、本実施形態の構成は、3次元測定機の部分を校正以外の目的でも利用できるような形態を考慮し、計測コントローラ700、3次元測定機コントローラ107、およびビジョンコントローラ113を独立した構成にしてある。しかしながら、校正専用のシステムとする場合には、本校正システムの制御系は、下記のような機能を有する計測コントローラ700、3次元測定機コントローラ107、およびビジョンコントローラ113が一体化された制御装置として構成されていてもよい。
3次元測定機コントローラ107、ビジョンコントローラ113および計測コントローラ700は、例えば下記のような機能ブロックから構成される。これらのコントローラのより具体的な構成については、後で図13を参照して説明する。
3次元測定機コントローラ107は、3次元測定機101および、測定プローブ102を制御するコントローラである。3次元測定機コントローラ107は、プローブ制御部108、不揮発性メモリ109、スライダ駆動部110、プローブ位置計測部111、圧力計測部124、温度計測部120、通信部112から成っている。3次元測定機コントローラ107はコンピュータであり、3次元測定機コントローラ107内の各部はハードウェアや回路で構成されてもよいし、ソフトウェアで構成されてもよい。
プローブ制御部108は、不揮発性メモリ109内に格納されている制御プログラムや、スライダ操作部121からの指令に沿って、3次元測定機コントローラ107内の各部の制御を司る機能を有する。例えば、測定プローブ102の位置を制御したり、先端球202中心の現在位置を読み込んだり、現在位置をビジョンコントローラ113に送信したりする手続きを制御する。
不揮発性メモリ109は、スタイラスの校正結果や、3次元測定機101の幾何学公差の補正関数、後述する校正制御のための制御プログラムを格納する。当然ながら、校正処理を行うに先立って、制御プログラムは不揮発性メモリ109に予め格納させておく。
スライダ駆動部110は3次元測定機101内のX、Y、Z方向のスライダを、プローブ制御部108から指令された量だけ移動させ、測定プローブ102を任意の位置に移動させる機能を有する。
プローブ位置計測部111は、スタイラス201の先端球202中心の現在位置を計測する機能を有する。3次元測定機101内のX、Y、Zスライダ位置の計測結果と、3次元測定機101の幾何学公差の補正関数、スタイラス校正結果を用いて、先端球202の中心位置を算出する。また、各スライダには温度センサが搭載されており、温度計測部120を介して各スライダの温度を計測することが可能である。プローブ位置計測部111は温度計測部120を介して、各スライダ近傍の温度を計測し、この温度情報を用いて、先端球202の中心位置を補正する温度補償補正を行う。この温度補償補正によって、より高精度に先端球202の中心位置を計測することができる。
圧力計測部124は、測定プローブ102内の圧力センサ203の計測値を読み取る機能を有する。計測値が事前に設定したしきい値を超えた場合、プローブ位置計測部111にトリガ信号を送信する。これにより、測定プローブ102が接触した瞬間の先端球202中心の現在位置を計測することができる。
通信部112はビジョンコントローラ113内の通信部117とデータを送受信する機能を有する。3次元測定機コントローラ107からビジョンコントローラ113へは、測定プローブ102の先端球202中心の現在位置を送信する。
スライダ操作部121は、測定プローブ102を任意の位置に移動させるためのコントローラである。XYZ方向のスライダを別々に操作させることが可能である。
ビジョンコントローラ113はステレオカメラ104とリング照明106を制御し、校正演算を実施するコントローラである。ビジョンコントローラ113はコンピュータであり、ビジョンコントローラ113内の各部はハードウェアや回路で構成されてもよいし、ソフトウェアで構成されてもよい。
ビジョンコントローラ113内のビジョン制御部115は、不揮発性メモリ116内に格納されている制御フローや、操作部123からの指令に沿って、ビジョンコントローラ113内の各部の制御を司る機能を有する。具体的には、ステレオカメラ104の撮影タイミングを制御したり、撮影画像を画像処理部118に渡し画像処理したり、先端球202中心の現在位置を揮発性メモリ114に送信したりする手続きを制御する。また、本実施形態では、ビジョンコントローラ113は、後述のようにカメラ座標系Cと位置決め座標系M間の相対位置・姿勢を演算する機能を有する。ビジョンコントローラ113は、この演算結果は、カメラ座標系Cと位置決め座標系M間の座標変換を行うための校正情報(本実施形態の校正データ(MTC)および補正行列(A))は、例えば不揮発性メモリ116に格納することができる。不揮発性メモリ116はカメラ座標系Cと位置決め座標系M間の校正結果や、ビジョン周りの制御を行う後述のビジョン制御手順を格納するために用いられる。
揮発性メモリ114は、例えばDRAMやSRAMなどの記憶デバイスから成り、先端球202の中心位置の計測結果を一時的に格納する機能を有する。不揮発性メモリ116および揮発性メモリ114は本発明の記憶装置に含まれるものである。例えば、本実施形態では、揮発性メモリ114にデータを一時的に格納するが、同じデータは不揮発性メモリ116にデータを格納してもよい。
撮影部119はステレオカメラ104とリング照明106にトリガ指令を送信し、ステレオカメラ104から撮影画像を取得する機能を有する。
画像処理部118はステレオカメラ104から伝送された画像データについて画像処理を行う機能を有する。具体的には先端球202の中心位置計測である。本実施形態では、先端球202は例えば白色の球体(白球)とする。
白球の中心位置の計測処理の概略は、次の通りである。まず、画像処理部118において、ステレオカメラ104内部の単眼カメラ301と302の撮影画像データに対してエッジ抽出処理を行う。そして、各エッジの長さと真円度から、先端球202のエッジを抽出する。抽出したエッジに対して楕円近似を行い、楕円中心の画像座標を求める。各画像の楕円中心から求まる視差と、ステレオカメラ104の校正結果を用いて、ステレオ計測を実施し、先端球202中心のカメラ座標系Cにおける位置を求める。
通信部117は3次元測定機コントローラ107と通信を行う機能を有する。ビジョンコントローラ113から3次元測定機コントローラ107へは、測定プローブ102の移動指令を送信する。計測コントローラ700は、撮影画像・校正結果の表示を行なう表示部122と、情報の入力を行なう操作部123と、を有する。表示部122は、LCDなどの表示デバイスを用いたディスプレイ装置、操作部123は、マウス、キーボードなどのUI(ユーザーインターフェース)装置から構成される。
ここで、図16に、図1の3次元測定機コントローラ107、ビジョンコントローラ113、あるいは計測コントローラ700を実現するためのより具体的な構成の一例を示す。
図16の構成は、主制御部として機能するCPU601を中心にROM602、RAM603、HDD604、各種のインターフェース605~607を配置したものである。
CPU601には、ROM602、RAM603、HDD604、および各種のインターフェース605~607が接続される。ROM602には、BIOS等の基本プログラムが格納される。3次元測定機コントローラ107の場合、ROM602には、図1の不揮発性メモリ109を構成する例えばE(E)PROMのようなデバイスを含めることができる。
RAM603は、CPU601の演算処理結果を一時的に記憶する記憶装置である。図1のビジョンコントローラ113の揮発性メモリ114の記憶領域は、例えば、このRAM603によって実装することができる。
HDD604は、外部記憶装置として配置することができる。HDD604は、必ずしも必須ではないが、CPU601の演算処理結果である各種のデータ等を記憶する記憶部を構成する。また、HDD604は、上記の3次元測定機コントローラ107が用いる不揮発性メモリ109として利用することもできる。また、HDD604には、CPU601に各種演算処理を実行させるためのプログラムを記録したファイルを格納することができる。CPU601は、ROM602ないしHDD604に記録(格納)されたプログラムを実行することにより、後述の制御手順を実行する。
後述の制御手順を実行させるプログラムをROM602ないしHDD604に記録(格納)する場合、これらの記録媒体は本発明を実施するための制御手順を格納したコンピュータ読み取り可能な記録媒体を構成することになる。なお、後述の制御手順を実行させるプログラムは、ROM602ないしHDD604のような固定的な記録媒体に格納する他、各種フラッシュメモリや光(磁気)ディスクのような着脱可能なコンピュータ読み取り可能な記録媒体に格納してもよい。このような格納形態は、本発明を実施する制御手順を実行させるプログラムをインストールしたり更新したりする場合に利用できる。また、制御手順を実行させるプログラムをインストールしたり更新したりする場合、上記のような着脱可能な記録媒体を用いる他、ネットワーク(不図示)を介してプログラムをダウンロードする方式を利用できる。
CPU601は、インターフェース605を介して、ネットワーク通信を行うことができる。インターフェース605は、例えば有線接続(IEEE 802.3など)、無線接続(IEEE802.xxなど)などの各種のネットワーク通信方式によって構成することができる。インターフェース605によって、例えば図1の3次元測定機コントローラ107、あるいはビジョンコントローラ113の通信部112、117を実装することができる。
また、CPU601は、インターフェース605を介して接続された、例えばTCP/IPのようなプロトコルを用いて通信を行うネットワーク(不図示)上の他の資源と通信することができる。このようなネットワーク上の他の装置(不図示)としては、本校正システムの全体の動作を制御するための上位サーバなどが考えられる。この場合、CPU601はインターフェース605~ネットワーク(不図示)を介して、上位サーバに対して、例えば校正処理に関するログ情報などの稼働情報をリアルタイムで送信することができる。あるいはサーバから後述の生産制御に係る制御プログラムをダウンロードしてROM602やHDD604にインストールしたり、あるいは既にインストールされているプログラムを新版に更新したりすることもできる。
インターフェース606、607は、例えば各種のシリアルないしパラレルインターフェース規格に基づき構成できる。インターフェース606、607は、図1の3次元測定機コントローラ107においては、スライダ駆動部110のような駆動源を含む被制御部と通信するのに用いることができる。また、インターフェース606、607は、図1の3次元測定機コントローラ107において、111、120、124などの符号で示した計測(センサ)部から測定情報を読み込むのに用いることができる。
また、図1のビジョンコントローラ113においては、インターフェース606、607は、撮影部119に含まれる撮像センサなどから測定(画像)情報を読み込むのに用いることができる。
また、本校正システムで、主にユーザーインターフェースを構成する図1の計測コントローラ700の場合は、インターフェース606、607は、表示部122や操作部123に対する表示情報や操作情報の入出力に用いることができる。
以下、図4のフローチャートを参照し、ステレオカメラ104(3次元視覚測定装置)の校正方法について説明する。図4の校正手順では、まずステレオカメラ104の内部パラメータ、外部パラメータを求める校正作業を実施する(S401)。内部・外部パラメータはビジョンコントローラ113内の不揮発性メモリ116に保存される。
図5は、本実施形態のステレオカメラ104(3次元視覚測定装置)と、校正処理に関係する各座標系を示している。図5において、ステレオカメラ104(3次元視覚測定装置)は、撮像手段としてそれぞれイメージセンサ501、502を備えた2つの単眼カメラ301、302から構成される。カメラ座標系Cl、Crの原点は、例えば、単眼カメラ301、302の撮像光学系の主点位置などに取られる。ステレオカメラ104を構成する単眼カメラ301、302の内部パラメータによって、イメージセンサ501と502上に定まるセンサ座標系Sl、Srと、カメラ座標系Cl、Crとの相対位置・姿勢が定まる。単眼カメラ301、302の内部パラメータには、各々の焦点距離、画像中心、レンズ歪み等の、撮影特性に関するジオメトリ情報が含まれる。
一方、この種のステレオ撮像系において、外部パラメータは、それら単眼カメラ301と302間の相対位置・姿勢を規定するパラメータである。これにより、単眼カメラ301と302の各カメラ座標系ClとCrとの相対位置・姿勢が求まる。
ステレオカメラ104の内部・外部パラメータの校正は、例えば上記の特許文献1に記載されるような一般的な手法による場合、校正用被写体の撮影を介して行う。例えば、ステレオカメラ104によって、既知のサイズ、形状の画像パターンを付与した校正用被写体を、対象の位置姿勢を変えながら複数枚撮影する。そして、単眼カメラ301と302の撮影画像に対して画像処理を行い、画像上における校正用被写体のパターン上の特徴点の位置を求める。この時、理論上、各単眼カメラの撮影画像上で、同じ特徴点は、同一平面上(エピポーラ平面)に存在するという条件(エピポーラ拘束)が成り立つ。このエピポーラ拘束が成り立つように、例えば最適化計算などを介して、当該のステレオカメラ104の内部・外部パラメータを算出することができる。校正用被写体としては、一定の精度を有するよう作成された、チェスボードないし市松模様の画像パターンを付与した校正プレートなどが用いられる。
ただし、次のような要因により、内部・外部パラメータには誤差が生じる可能性がある。まず、画像処理によりパターンの特徴点位置を計測する場合、量子化誤差に起因する読み取り誤差が発生する。また、現実世界では複数枚のレンズを用いた複合レンズを用いており、レンズ歪みを多項式モデル等の単純なモデルのみで表現するのは極めて困難である。特に広角レンズ等の歪みが大きいレンズの場合、モデル化誤差の影響が大きくなる可能性がある。
ステレオカメラ104の内部・外部パラメータを用いると、三角測量の原理により、撮影画像上で求まるセンサ座標系Sl、Sr基準の位置を、例えば左カメラ座標系Clを基準とした3次元位置に変換する、といったステレオ計測が可能となる。このように、ステレオカメラ104のカメラ座標系Cと、左カメラ座標系Clは、便宜上、等価であるものとして扱うことがある。例えば、単眼カメラ301と302の撮像光軸が平行に配置されており、図6に示すような平行ステレオを構成する場合、計測点PのZ座標のステレオ計測結果は下式のように表現できる。
ここで、fは焦点距離、Bは単眼カメラ301、302のレンズ主点間の距離である基線長、dは単眼カメラ301、302の撮影画像上における特徴点位置の差である視差を意味する。fは内部パラメータから、Bは外部パラメータから決定される。上式(1)から、内部・外部パラメータの校正精度がステレオ(3次元)計測精度に大きく影響を与えることがわかる。
次に、図4のステップS402において、3次元測定機101のスタイラス201の校正を行う。ここでは、スタイラス長や先端球202の球径等を算出する。スタイラス校正結果と、3次元測定機101の各スライダの移動量を用いることにより、先端球202中心の現在位置を精密に計測することができる。
ステップS402のスタイラス校正は、例えば次のようにして行う。例えば、所期の真球度が出ている基準球を、定盤103上に固定しておき、この基準球の表面の複数個所に対して、測定プローブ102によって接触計測を行う。この計測結果と、基準球の設計値を比較し、スタイラス校正データを取得する。
次に、図4のステップS403において、ステレオカメラ104の位置決め座標系M(第2の座標系)を定義するための測定プローブ102による測定点を決定する(プローブ測定工程)。
図3に示すように、本実施形態のステレオカメラ104は位置決め基準部として位置決めピン303を有し、この位置決めピン303によって、例えばロボットアーム(R)などに固定される。例えば、位置決め座標系M(第2の座標系)の原点は、図示のように左側の位置決めピン303の中心軸とステレオカメラ104の筐体の下面の交点とする。
この場合、ステレオカメラ104の筐体前面などをスタイラス201で測定し、上記の基準部位(位置決めピン303の1つ)に配置された位置決め座標系M(第2の座標系)の原点を特定するものとしてもよい。その場合、ステレオカメラ104の筐体および位置決めピン303の工作精度が充分保たれている必要がある。
本実施形態では、ステレオカメラ104の筐体前面などをスタイラス201で測定する時は、図1のようにステレオカメラ104を、位置決め治具105を介して3次元測定機101の定盤103上の所定位置に配置する。この位置決め治具105は、実際に特定のステレオカメラ104の装着に用いるものと同じものか、あるいは工作精度が充分保たれた上で作成された基準部材とする。
本実施形態では、例えば、図7(A)~(C)に示すように、位置決め治具105の位置決め穴304を測定プローブ102で測定する方式を取る。この場合、位置決めピン303と位置決め治具105の位置決め穴304の工作精度が充分保たれていることが条件となる。
位置決め座標系MのXY平面を決定するため、作業者は、スライダ操作部121を用いて図7(A)のように位置決め治具105の上面に、測定プローブ102の先端球202を3点以上(201a、201b、201c…)、接触させる。この時、3次元測定機コントローラ107内のプローブ制御部108は、接触した瞬間のプローブ位置を記憶する(プローブ測定工程)。
次に、図7(B)、(C)に示すように、測定プローブ102の先端球202を2つの位置決め穴304、304の内側にそれぞれ、3点以上接触させ、接触した瞬間のプローブ位置を記憶しておく。接触時の計測値を先ほど求めた位置決め座標系MのXY平面に投影した点を求め、これらの投影点に対して円近似を行い、位置決め穴304の中心位置を計測する。以上のようにして、位置決め座標系M(図5)の原点とX、Y軸の向きを取得することができる。
なお、本実施形態では、ステップS403では、測定プローブ102による測定点の教示のみ行い、実際の測定プローブ102の測定に基づく位置決め座標系Mの定義は、後述のステップS901(図9)で行うものとする。しかしながら、ステップS403では、測定プローブによる測定点の教示のみならず、実際の3次元形状測定を行い、位置決め座標系Mの定義まで実行してもよい。
次に、図4のステップS404において、ステレオカメラ104でスタイラス201の先端球202を撮影する際の、スタイラス201の位置を決定する。ここで、図8を用いてスタイラス201の移動領域について説明する。スタイラス201の移動領域は、ステレオカメラ104の単眼カメラ301、302の共通視野領域OVをカバーすることが好ましい。この共通視野領域OVとは、単眼カメラ301と302が共に焦点が合った状態で対象を撮影できる領域である。
例えば、単眼カメラ301、302のいわゆる被写界深度が重なり合う角錐台形状の空間範囲に相当し、この共通視野領域OV内はステレオ計測を精度よく実施可能な領域である。このように、単眼カメラ301と302に共通する視野領域全体の撮影情報を用いたほうが、各計測位置に対する誤差情報の欠落が少なくなるため、より高精度な校正を実現できる。
なお、測定プローブ102のスタイラス201の移動領域はステレオカメラ104の光学特性や校正結果から、自動的に決定してもよい。具体的には、ステレオカメラ104内の各単眼カメラ301と302のセンササイズ、焦点距離とワークディスタンスと、単眼カメラ301と302間の相対位置・姿勢である外部パラメータからカメラ座標系Cを基準とした共通視野領域を求める。また、カメラ座標系Cと位置決め座標系M間の相対位置・姿勢の設計値を用いて、位置決め座標系M基準での共通視野領域を求める。ステップS404において、上記のようにして決定した共通視野領域内で、プローブ制御部108により測定プローブ102のスタイラス201を複数、好ましくは3点以上の移動位置を自動的に移動させる。そして、それぞれの位置でスタイラス201の先端球202を撮影する。即ち、ステレオカメラ104で良好に撮影可能な範囲内の3点以上の測定点にスタイラス201を移動させ、それぞれの位置で先端球202を撮影させる。
ここまでの処理が、本実施形態の事前準備に相当する。そして、図4のステップS405(ステレオカメラ104によるスタイラス201の先端球202の位置計測)、S406(校正データ、および補正行列の演算:校正データ取得工程)が本校正システムにおける狭義の校正処理に相当する。
ここで、カメラ座標系Cと位置決め座標系Mにおける先端球202の中心位置の計測(S405)と、ステレオ計測結果の補正関数算出(S406)で実施する処理の詳細フローを図9に示す。図9では、ステップS901~S907が図4のステップS405に、ステップS908が図4のステップS406にそれぞれ相当する。
図9の処理は、例えば操作部123における作業者の校正開始ボタンの押下などを契機として自動的に実施する。まず、図9のステップS901では、3次元測定機コントローラ107が上記のステップS403で教示した測定点をスタイラス201の先端球202で自動的に走査し、位置決め治具105を接触測定する(プローブ測定工程)。本測定結果を用いて、ステレオカメラ104の位置決め座標系M(第2の座標系)が定義される。位置決めピン303と位置決め穴304の双方の精度が充分あれば、位置決め穴304の中心位置は、位置決めピン303の中心位置として取り扱うことができる。このようにして、3次元測定機コントローラ107のプローブ制御部108は位置決め座標系M(図3:第2の座標系)の原点の位置とX軸(Y軸)の向きを定義することができる。これにより、3次元測定機コントローラ107は、例えば位置決め座標系Mを基準として、スタイラス201の先端球202の中心位置を計測することが可能となる。
次に、ステップS902において、作業者はステレオカメラ104を位置決め治具105上に、定盤103上にリング照明106を設置する。
ステップS903~S907のループでは、図4のステップS404でステレオカメラ104の共通視野領域OV内に配置した3点以上の測定点のそれぞれにスタイラス201を移動させる。そして、それぞれの各測定点において、ステレオカメラ104により、測定プローブ102の先端球202を3次元視覚測定する。
まず、ステップS903では、ビジョン制御部115は3次元測定機コントローラ107にプローブ移動指令を送信する。指令を受信したプローブ制御部108は、スタイラスの移動位置の決定処理(図4のS404)で事前に設定した測定点にスタイラス201の先端球202を移動させる。続いて、ステップS904において、スタイラス201の移動が完了すると、プローブ位置計測部111を介して、位置決め座標系M基準の先端球202中心の現在位置を計測する。計測値をビジョンコントローラ113に送信する。これに応じて、ビジョンコントローラ113内のビジョン制御部115は、受信した先端球202の中心位置を揮発性メモリ114に格納する。
次に、ステップS905では、ビジョンコントローラ113のビジョン制御部115は、撮影部119を介してステレオカメラ104とリング照明106に撮影指令を送信し、先端球202を撮影させる。これにより単眼カメラ301、302で撮影されたステレオ撮影画像は画像処理部118に送信される。ステップS906では、ビジョン制御部115が3次元計測処理を行い、カメラ座標系Cにおける撮影された当該の先端球202の中心位置の座標値を取得する。この先端球202の中心位置の座標値は揮発性メモリ114に格納する(S906)。
次に、ステップS907において、スタイラス201の移動位置の決定処理(S404)で決定した、全測定点への移動が完了したか否かを判定する。全測定点への移動とステレオカメラ104による撮影が完了していない場合、ステップS903に戻り、次の移動位置にスタイラス201を移動させ、ステップS903~S906の処理を再度実施する。ステップS907で全測定点への移動と撮影が完了している場合には、ステップS908のステレオ計測結果の補正関数算出処理に移行する。
ステップS908の補正関数算出処理では、ステップS904で求めた位置決め座標系Mにおける先端球202の中心位置と、ステップS906で求めたカメラ座標系Cにおける先端球202の中心位置のデータを使用する。理想的には、これらのデータには次式(2)の関係が成立する。
ここでTは左上の添え字の座標系から、右下の添え字の座標系への同次座標変換行列とする。同次座標変換行列は回転行列(3自由度)と、平行移動行列(3自由度)を用いて次式(3)のように表す。
しかしながら、現実には、位置決め座標系Mとカメラ座標系Cとの関係を式(2)のような関係式だけで表すことは困難である。なぜなら、位置決め座標系Mとカメラ座標系CのZ座標のスケールが異なる場合があるためである。
ここで、図6のような平行ステレオの場合を例に説明する。一般に、ステレオカメラの内部・外部パラメータは、エピポーラ拘束が成り立つように算出された値であり、光学的に定まる実際の焦点距離や基線長とは異なる。ここで、真の焦点距離をf、基線長をBとし、内部・外部パラメータから求まる焦点距離をf’(≠f)、基線長をB’(≠B)とする。
ステレオカメラ104の撮影画像は、レンズを通して光学的に画像センサに投影されたものであるから、撮影画像は真の焦点距離(f)と、基線長(B)に依存した画像となる。この撮影画像に対して画像処理を実施し、計測点P(x,y,z)の視差を算出した場合、理想的には視差dは次式(4)のように表せる。
上式で求めた視差を用いてステレオ計測を行う場合、焦点距離と基線長は内部・外部パラメータから求めた値を用いる。従って、ステレオ計測で求まる計測点PのZ座標z’は次式(5)のように表される。
上式(4)、(5)より、計測点Pの物理的な真のZ座標zと、ステレオ計測で求まるZ座標z’には次式(6)のような関係がある。
上式(6)に示すように、物理的な真のZ座標zとステレオ計測結果のZ座標z’のスケールが異なることがわかる。ここで、位置決め座標系Mのスケールは、3次元測定機101を用いて高精度に測定できるから、物理的なスケールと同等と考えられる。一方、カメラ座標系Cとステレオ計測から定まる座標系は同じ座標系である。以上のように、位置決め座標系Mとカメラ座標系CのZ座標のスケールは異なるということがわかる。
また、式(2)のような関係式だけで表すことは困難である理由としては、レンズ歪みを精密にモデル化することが困難であるという点もある。一般的に、レンズ歪みは多項式モデルで近似されるが、複数枚のレンズで組み立てられた複合レンズを用いた現実世界では、歪み曲線を単調なモデルで表すのは困難である。歪みモデル化誤差の影響が、計測位置によって変化するため、一概に式(2)のような関係式だけでは表すことが困難である。特に、レンズ歪みが大きいレンズでは、このモデル化誤差が大きく、ステレオ計測精度に与える影響も増大する。
以上のような事情から、位置決め座標系Mにおける先端球202の中心位置と、カメラ座標系Cにおける先端球202の中心位置のデータの関係式を次式のように修正する。
この補正行列(A)が、本実施形態におけるステレオ計測結果を補正する行列で、この補正行列(A)は3次元計測座標値のスケールを補正する要素を含む。ここで、上式(7)は、変形すると下式(8)のように表すことができる。
ここで、位置決め座標系Mのける先端球202の中心位置と、カメラ座標系Cにおける先端球202の中心位置は、図9のステップS904、S906で計測しているため既知である。
次に、図10を参照して、ステレオ計測結果の補正行列Aの算出フローを説明する。本実施形態では、ステレオ計測結果のスケール補正のみを実施する場合について説明する。図10のステップS1001では、補正行列Aをスケール変換行列としてモデル化する。Z座標のスケール関数をmzとすると、補正行列Aは次式(9)のように表すことができる。
なお、上式(9)ではZ座標のスケール関数のみを考慮したが、X、Y座標のスケール関数も組み込んでもよい。ステレオ計測のX、Y方向の計測精度はZ方向の計測精度に依存するため、Z方向のみならず、X、Y方向のスケールも異なるからである。X、Y座標のスケール関数を関数mx、myとすると、補正行列Aは下式(10)のように表すことができる。この補正行列Aにより、X、Y、Z座標のすべてのスケールが補正されるため、さらに高精度に校正を行うことが可能となる。
上記のmx、my、mzは定数でもよいし、撮影光軸中心からの距離や、ステレオ計測結果に依存した変数を用いてもよい。定数の場合、補正が単純なため、ステレオ計測結果の補正時間を短縮できる可能がある。
このように補正行列Aのモデルを定義した後、図10のステップS1002において、下式(11)に示すように、式(8)のノルムの二乗和が0に近づくよう、同次座標変換行列MTCと補正行列Aに対して、非線形最適化計算を解く。これにより、補正行列Aを高精度に算出すことが可能である。ここで、Nは測定プローブ102の全移動回数(測定プローブ102を移動させて行った撮影の回数)である。
このようにして算出したステレオ計測結果の補正行列Aおよび、同次座標変換行列MTCを、ビジョンコントローラ113内の不揮発性メモリ116に保存する(S1003)。実際にロボット等にステレオカメラ104を設置して用いる場合、ステレオカメラ104で計測した3次元測定結果に対して、本実施形態の補正行列Aによるスケール補正を行うことにより、高精度な3次元測定が可能となる。
なお、本実施形態では、接触式の測定プローブ102を有する3次元測定機101を用いた校正システムについて説明したが、高精度に加工した治具システムを用いてもよい。具体的には、ステレオカメラで高精度な位置計測可能なマークのような対象物(チェッカボードなど)が位置決め基準部に対して、例えば異なるZ方向の位置に高精度に位置決めされるよう、加工または調整されていればよい。
ただし、本実施形態のように3次元測定機101を用いると、3次元視覚測定装置を備えた機能部品または、その位置決め治具の位置決め部の位置を直接、計測できるため、機能部品または、位置決め治具をラフにセッティングしても構わない、という利点がある。また、3次元測定機101を用いる場合には、3次元視覚測定装置を含む機能部品の形状が変わっても、同様にラフなセッティングで校正を行える利点がある。即ち、本実施形態のように3次元測定機101を用いることにより、機能部品と測定プローブ間の位置調整の工数を削減でき、大幅に校正時間を短縮し、高精度に校正データを取得できるという効果がある。
以上では、3次元測定機101の測定プローブ102の先端球202の計測位置データを用いて、1つのステレオ計測結果の補正行列Aを算出する方法について説明した。しかしながら、ステレオカメラ104の計測範囲が広大な場合、レンズ歪みモデル化誤差や画像量子化誤差等の様々な誤差要因による影響が大きくなり、高精度な補正が困難となる。
そこで、図11に示すようにステレオカメラ104を構成する単眼カメラ301、302の共通視野領域OVを複数の局所領域1101、1102に区切ることが考えられる。そして、各局所領域1101、1102における先端球202の位置情報を用いて、局所領域ごとにステレオ計測結果するための補正行列Aをそれぞれ算出する。このような局所補正データ算出工程によって、局所領域1101、1102ごとに最適化された補正行列Aを取得でき、より高精度に補正された3次元測定結果(3次元測定値)を得ることができる。なお、図11の例では、共通視野領域OVを2つの局所領域1101、1102に分けているが、本実施形態では2つに区切ったがそれ以上の数に共通視野領域OVを分割してそれぞれの撮影範囲ごとに補正行列Aを求めて使い分けても構わない。その場合、例えば、ステレオ計測精度を検証しながら、局所領域1101、1102の分割を繰り返すような実験を行い、局所領域1101、1102の分割数や、分割位置を決定してもよい。このような手続により、局所領域の分割を繰り返し、当該のステレオカメラ104のハードウェアにおいて、許容できるステレオ計測精度が得られるような局所領域の分割態様を決定することができる。
また、同次座標変換行列MTCを単位行列とすることにより、スケールが正しく補正されたカメラ座標系Cにおける3次元計測が可能となる。その場合、ステレオカメラ104から位置決め基準部(303、303)を外して用いても、高精度な3次元計測を行うことができる。
<実施形態2>
本実施形態2では、ステレオカメラの補正行列算出処理(図9のステップS908)において、カメラ座標系のスケールを補正するスケール関数として撮影光軸中心からの距離に依存する関数を用いる例を示す。
本実施形態2では、ハードウェア構成および、制御手順の大部分の構成については、上述の実施形態1と同様であるものとする。本実施形態では、ステレオカメラの補正行列算出処理(図9のステップS908)のみが異なり、以下ではこの補正行列算出処理についてのみ説明する。
一般に、レンズ歪み量は撮影光軸中心からの距離に応じて変化する。撮影光軸中心付近では歪みはほぼ発生せず、距離が遠くなれば歪み量は増大する傾向にある。例えば、カメラ校正(図4のステップS401)においてレンズ歪み補正パラメータを算出することができるが、上記のようにレンズ歪みを精密に補正することは極めて困難である。以上のように、視差算出時の画像処理でレンズ歪みの影響が補正し切れずに残る場合がある。そして、例えばレンズ歪みに起因する視差の計測誤差は、レンズの光軸中心からの距離に応じて変化する傾向を有する、と考えられる。例えば、光軸中心付近ではレンズ歪みの影響をほとんど受けないため、高精度に視差を計測可能であるが、撮影画像の周辺視野、特にその端部付近ではレンズ歪み補正誤差の影響を受け、視差計測時により大きな誤差が生じる。
上記のように、視差の計測誤差Δdは、単眼カメラ301と302における、撮影画像上での光軸中心から計測点までの距離r1、r2に依存する、と考えられる。そこで、この距離r1、r2に依存する視差の計測誤差Δdは、下式(12)や式(13)のように、線形や2次関数的にモデル化することができる。ここで、α、β、γ、α1、α2、β1、β2、γ1は補正係数である。
ここで、レンズの光軸中心の位置はカメラ校正で求まる、内部パラメータの値を用いてもよいし、カメラの設計値を用いてもよい。本実施形態では、線形および、2次関数的にモデル化したが、さらに高次のモデル化を行ってもよい。ただし、より高次の関数によるモデル化を行う場合、後に行う最適化計算に時間を要したり、局所解に陥ったりするリスクが増える可能性がある。
次に、上記のような視差の計測誤差Δdが存在する場合、ステレオ計測で求まる計測点PのZ座標z’’は下式(14)のように書ける。
式(4)と式(14)を用いる場合、計測点Pの物理的な真のZ座標と、ステレオ計測で求まる計測点PのZ座標z’’には下式(15)のような関係がある。
このように、視差の計測誤差Δdに依存して、計測点Pの物理的な真のZ座標zと、ステレオ計測で求まる計測点PのZ座標z’’のスケールが変化することが判る。そこで、Z座標のスケール関数mzを以下の2つの式に示すようにモデル化すれば、視差の計測誤差Δdの影響を軽減することができる。
上式(16)、(17)の右辺分母のa、a1は補正係数である。以上が、補正行列Aのスケール関数mzのモデル設定である。この補正行列Aのスケール関数mzのモデルを用いて、実施形態1に示した式(11)の最適化計算を実施し、座標変換行列MTCおよび補正行列Aの各変数を算出することができる。
なお、本実施形態2では、一例として式(16)や(17)のようにスケール関数mzを定義した。しかし、スケール関数mzとして、単純に、各単眼カメラの撮影画像におけるそれぞれの光軸中心から計測点までの距離r1、r2の1次関数や2次関数などの多項式を採用してもよい。これにより、スケール関数mzの数式が単純になり、式(11)の最適化計算の時間短縮や、局所解に陥ったりするリスクを軽減できる可能性がある。以上のように、本実施形態では、レンズ歪みなどに起因するスケール誤差を補正するため、スケール関数mzのモデルを用いること、そしてこのスケール関数mzが光軸中心からの距離に依存する関数である点に特徴がある。
また、以上では、Z軸方向に関するスケール関数mzを考慮したが、mxやmyも同様に距離r1、r2の1次関数や2次関数等の多項式によって表現することができる。このように、Z軸方向に関するスケール関数mzのみならず、mxやmyにも光軸中心からの距離r1、r2に依存した関数モデルを用いることによって、より高精度に補正された3次元計測結果を得ることができる。
<実施形態3>
本実施形態3では、ステレオカメラの補正行列算出処理(図9のステップS908)において、カメラ座標系のスケールを補正するスケール関数としてステレオ計測で求まる3次元計測座標値に依存する関数を用いる例を示す。
本実施形態3では、ハードウェア構成および、制御系の構成については上述の実施形態1、2と同様であるものとする。本実施形態3では、ステレオカメラの補正行列算出処理(図9のステップS908)のみが異なり、以下ではこの補正行列算出処理についてのみ説明する。
実施形態2で述べたように、視差算出時の画像処理においてレンズ歪みを補正しきれない可能性があり、レンズの光軸中心からの距離に応じて視差の計測誤差は変化する傾向にある。また、撮影画像上でレンズの光軸中心からの距離が異なるということは、計測した点の3次元座標値が本来の値と異なる計測誤差を有する、ということを意味する。このことは、計測点の3次元座標値に依存して視差の計測誤差が変化する、といってもよい。
このように、視差の計測誤差Δdが計測点の3次元座標値(x、y、z)に依存する、と考えると、上記の下式(18)、(19)のように、計測誤差Δdは線形、あるいは2次関数的にモデル化することができる。ここで、k、l、m、n、k1、k2、l1、l2、m1、m2、n1は補正係数である。
本実施形態では、線形および、2次関数的にモデル化したが、さらに高次のモデル化を行ってもよい。ただし、より高次の関数によるモデル化を行う場合、後に行う最適化計算に時間を要したり、局所解に陥ったりするリスクが増える可能性がある。
また、実施形態2で示した式(15)のように、視差の計測誤差Δdが存在する場合、計測点Pの物理的な真のZ座標と、ステレオ計測で求まる計測点PのZ座標z’’のスケールが変化する。そこで、Z座標のスケール関数mzを以下のようにモデル化すれば、視差の計測誤差Δdの影響を軽減させることが可能である。
ここでb、b1は補正係数である。以上が、補正行列Aのスケール関数mzのモデル設定である。この補正行列Aのスケール関数mzのモデルを用いて、実施形態1に示した式(11)の最適化計算を実施し、座標変換行列MTCおよび補正行列Aをそれぞれを算出することができる。
なお、本実施形態では、一例として式(20)、(21)のようにmzを定義した。しかし、スケール関数mzとして、単純に計測点の3次元座標値(x、y、z)の1次関数や2次関数等の多項式を採用してもよい。これにより、スケール関数mzの数式が単純になり、式(11)の最適化計算の時間短縮や、局所解に陥ったりするリスクを軽減できる可能性がある。以上のように、本実施形態では、レンズ歪みなどに起因するスケール誤差を補正するため、スケール関数mzのモデルを用いること、そしてこのスケール関数mzが計測点の3次元座標値に依存する関数である点に特徴がある。
また、以上では、Z軸方向に関するスケール関数mzを考慮したが、mxやmyも同様に計測点の3次元座標値(x、y、z)の1次関数や2次関数等の多項式によって表現することができる。このように、Z軸方向に関するスケール関数mzのみならず、mxやmyにも計測点の3次元座標値(x、y、z)の依存した関数モデルを用いることによって、より高精度に補正された3次元計測結果を得ることができる。
<実施形態4>
本実施形態4では、ステレオカメラの補正行列算出処理(図9のステップS908)において、3次元の補正マップを生成する処理について説明する。
本実施形態4では、ハードウェア構成および、制御系の構成については上述の実施形態1、2と同様であるものとする。本実施形態4では、ステレオカメラの補正行列算出処理(図9のステップS908)のみが異なり、以下ではこの補正行列算出処理についてのみ説明する。
以下、図12を用いて、ステレオ計測結果の補正行列の算出フローを説明する。本実施形態の校正処理は、同次座標変換行列MTCおよび補正行列Aを求めてから、3次元補正マップに相当する補正行列Biを後で算出する処理(局所補正行列算出工程)を含む。
以下では、iは、計測範囲をN個の局所領域に分割した際の、i番目の局所領域を意味し、1≦i≦Nであるものとする。まず、補正行列Aをモデル化する(ステップS1201)。この補正行列Aをモデル化では、実施形態1の式(9)や(10)に示したように、スケール関数を組み込んだモデルを用いてもよいし、スケールを変換しない単位行列としてもよい。本実施形態では、補正行列Aは単位行列であるとして説明する。
次に、同次座標変換行列MTCおよび、補正行列Aの各変数を算出する(ステップS1202)。同次座標変換行列MTCおよび、補正行列Aの各変数の算出方法は実施形態1と同様に式(11)に対して最適化計算を解けばよい。
続いて、ステップS1203において、各計測位置でのステレオ計測結果の誤差を算出する。ここでは、同次座標変換行列MTCとステップS906(図9)で算出したカメラ座標系Cにおける先端球202の中心位置と、ステップS904(同)で算出した位置決め座標系Mにおける先端球202の中心位置と、を用いる。この補正行列Biは次式(22)のように書くことができる。
この補正行列Biがステレオ計測結果の誤差である。この補正行列Biをiが1からNまでの局所領域ごとに算出する。算出した補正行列Biは、ビジョンコントローラ113内の不揮発性メモリ116に保存する(S1204)。
ステレオ計測結果の補正行列の算出は次のように行う。校正後のステレオカメラ104の計測位置が決まっている場合には、計測位置近傍にて先端球202の中心位置を計測して、ステレオ計測結果の誤差を算出する。そして、この誤差をそのままステレオ計測結果の補正行列として使用すればよい。一方、計測位置が定まっていなかったり、計測範囲が広大で全範囲で誤差を算出したりするのが困難な場合には、次のような処理を行う。
ここで、ステレオ計測結果の誤差を算出する際の先端球202の中心位置を誤差算出点という。まず、計測点pの近傍の誤差算出点qiをN点、抽出する。この誤差算出点qiの数は2点以上であればよい。そして、計測点pと各誤差算出点間の距離が短いほど、重みが重くなるように重みwiの重み付けを行う。そして、下式(23)に示すように、誤差算出点の補正行列B(qi)に対し重み付き平均を算出して、補正行列B(p)を求める。
以上のようにして、ステレオ計測結果の補正行列B(p)を算出する。このような補間手法によると、誤差算出点が計測範囲の広い範囲を網羅していた方が高精度な補正が可能となる。なお、本実施形態では重み付き平均を用いて補間する手法を説明したが、その他の手法たとえば、単純な平均や、スプライン補間などの手法を用いてもよい。
<実施形態5>
例えば、上記の実施形態1では、ステレオカメラ104の筐体が3次元視覚測定装置(部)を備えた機能部品を構成しているものと考えることができる。しかし、ロボット装置(R)などに3次元視覚測定装置としてのステレオカメラ104を組合せる場合、例えばステレオカメラ104がロボット装置(R)のエンドエフェクタなどに組み込まれこれらが一体の機能部品のアセンブリを構成している場合もある。その場合、ステレオカメラ104が組み付け済みのロボット装置(R)のエンドエフェクタの部分が3次元視覚測定装置(ステレオカメラ104)を備えた機能部品を構成している、と考えることができる。
本実施形態5では、ステレオカメラ104が組み付け済みのエンドエフェクタの部分が3次元視覚測定装置(ステレオカメラ104)を備えた機能部品を構成し、第2の座標系(本実施形態ではF)がエンドエフェクタの特定の基準部位に配置される例を示す。
本実施形態5では、図13(A)に示すように、ロボット装置のエンドエフェクタを構成するハンド1101aの側面などに配置されたカメラマウント1104にステレオカメラ104が装着済みとなっているものとする。カメラマウント1104とステレオカメラ104の間の位置決め固定方式は任意であり、両者は容易に着脱可能であってもよく、また、ネジ止めや接着などによって固着されていてもよい。
要するに、本実施形態5では、エンドエフェクタとしてのハンド1101aのアセンブリが、一体として3次元視覚測定装置(ステレオカメラ104)を備えた機能部品を構成している状態であるものとする。
ハンド1101aは、例えば2本(あるいはそれ以上の数)のフィンガ1102、1102(…)をハンド1101aの掌部1103上に備える。フィンガ1102、1102(…)はハンド1101aの内部に配置された不図示の駆動源(モータ、ソレノイド、その他のアクチュエータ)により開閉駆動され、これによりワークを把持して操作することができる。
本実施形態5では、ハンド1101aのフィンガ1102(の1つ)から定まるフィンガ座標系F(本実施形態の第2の座標系)と、ステレオカメラ104のカメラ座標系C(第1の座標系)との間で座標変換を行うための校正データを取得する。図13(B)はハンド1101aを上方から示しており、フィンガ座標系F(本実施形態の第2の座標系)の原点は、例えばフィンガ1102の1つ(この例では図中左側)の角部に配置されている。
本実施形態5では、エンドエフェクタとしてのハンド1101aのアセンブリが、一体として3次元視覚測定装置(ステレオカメラ104)を備えた機能部品を構成している。この場合、ハンド1101aのフィンガ1102、1102(…)でワークを把持するような操作を行う場合、例えばステレオカメラ104の3次元視覚測定によって、フィンガ1102に対する部品の相対位置姿勢を求めることになる。
そして、本実施形態5では、フィンガ座標系F(第2の座標系)およびカメラ座標系C(第1の座標系)の間で座標変換を行える校正データを取得する。本実施形態5によれば、この校正データは、3次元視覚測定装置(ステレオカメラ104)を備えた機能部品に相当するハンド1101aないしフィンガの部位を3次元測定機101(図1)で接触計測することによって精度よく求めることができる。
フィンガ座標系F(第2の座標系)とカメラ座標系Cの間で座標変換を行う校正データを用いることにより、ステレオカメラ104で3次元視覚測定したカメラ座標系C(第1の座標系)における位置姿勢データをフィンガ座標系F基準に容易に変換できる。これにより、ステレオカメラ104の3次元視覚測定結果を利用して、ロボットアームで小物部品を把持するなどの高精度な操作が実現できる。
本実施形態5においても、校正システムのハードウェアや制御系は実施形態1と同様であるものとし、実施形態1と異なる部分に関してのみ説明する。図14は本実施形態5の3次元視覚センサの校正手順の全体を示している。図14は実施形態1の図4に相当する図で、図4と異なるのは、フィンガ部の位置教示(S1203)と、カメラとフィンガ部間の校正処理(S1205)の部分である。それ以外のステップS401、S402、S404の処理については図4で説明したのと同様であるから、ここでは詳細な説明は省略する。
図15(A)~(C)は、図14のステップS1203(あるいは図9のステップS901の位置決め基準部の接触計測)におけるフィンガ座標系Fの定義の様子を示している。本実施形態5では、フィンガ座標系FのXY平面はハンド1101aの掌部1103(図13(A)、(B))である。また、図13(A)、(B)に示すようにフィンガ座標系Fの原点は左側のフィンガ1102の根本部であり、X軸は左側のフィンガ1102から右側のフィンガ1102への方向とする。
まず、図15(A)に示すように、3次元測定機101の定盤103上に、ステレオカメラ104を備えたハンド1101aを載置する。この例では、ステレオカメラ104それ自体は実施形態1の例えば図3で説明したものと同様の構造を有するものとし、カメラマウント1104を介してハンド1101aの側方部位に装着されている。なお、ステレオカメラ104の単眼カメラ(実施形態1における301、302)は、本実施形態では簡略化のため詳細な図示を省略する。
次に、図15(A)に示すように、フィンガ座標系FのXY平面を決定するため、ハンド1101aの掌部1103に測定プローブ(の先端球202)を3点以上接触させる(201g~201i)。3次元測定機コントローラ107内のプローブ制御部108は、プローブ位置計測部111から接触した瞬間のプローブ位置を受信し、例えば不揮発性メモリ109に記録させる。次に、図15(B)に示すように、測定プローブ(の先端球202)を左右のフィンガ1102の内側の側面にそれぞれ3点以上接触させる(201j、201k)。この時、3次元測定機コントローラ107内のプローブ制御部108は、接触した瞬間のプローブ位置を不揮発性メモリ109に記録させる。続いて、図15(C)に示すように、測定プローブ(の先端球202)を左右のフィンガの図中手前側面にそれぞれ3点以上、接触させる(201l、201m)。この時、3次元測定機コントローラ107内のプローブ制御部108は、接触した瞬間のプローブ位置を不揮発性メモリ109に記録させる。
以上の計測結果から、3次元測定機コントローラ107内のプローブ制御部108は、フィンガ1102の各面の平面を画成する座標値を取得する。次に、3次元測定機コントローラ107内のプローブ制御部108は、左右のフィンガ1102、1102の内側側面と、手前側面と掌部1103のXY平面の交点をそれぞれ求める。そして、図13(B)に示すように、左側のフィンガの交点をフィンガ座標系Fの原点とし、左側から右側のフィンガの交点への方向をX方向と定義する。以上のようにしてフィンガ座標系Fの定義が終了する(ステップS1203)。なお、以上の説明で右、左などの修飾は、図面の表示との関係を示すものであって、一例に過ぎない。
図14のステップS1205におけるフィンガ座標系F(第2の座標系)と、カメラ座標系C(第1の座標系)の相対位置・姿勢に相当する演算処理は、実施形態1(式(1)~(4))で説明したものと同様に実行することができる。
以上のように、本実施形態では、ステレオカメラ104(3次元視覚測定装置)を備えた機能部品として、ロボットのエンドエフェクタとして(ハンド1101a)を考えた。ただし、溶接トーチ、塗装ガンなどの他のロボット用のエンドエフェクタの場合でも同様の構成処理が可能であるのはいうまでもない。その場合、接触式の測定プローブ102の測定によって定義する第1の座標系の原点位置は、各エンドエフェクタの特定の基準部位に適宜配置すればよい。
そして、本実施形態によれば、ステレオカメラ104(3次元視覚測定装置)を備えた機能部品の基準部位から定まるフィンガ座標系F(第2の座標系)と、カメラ座標系C(第1の座標系)の間で座標変換を行う校正データを取得することができる。校正データ(座標変換行列MTCおよび補正行列A)の格納先としては、上記実施形態と同様に、ビジョンコントローラ113内の不揮発性メモリ116や、ステレオカメラ104の筐体内の不揮発性メモリなどが考えられる。あるいはさらに、本実施形態の場合は、ハンド1101a(エンドエフェクタ)の躯体内部に校正データ(座標変換行列MTCおよび補正行列A)を格納した不揮発性メモリを配置する構成も考えられる。
ロボット装置のアームにステレオカメラ104(3次元視覚測定装置)を備えた機能部品を装着した場合の校正データの利用方法は、実施形態1で説明したものと同様である。ロボット装置の制御部(あるいはビジョンコントローラ113)が、ステレオカメラ104がワークなどの対象物をステレオ撮影した画像を利用して、撮影されている対象物の特定部位の座標値を求めると、上記の第1の座標系(C)の座標値が取得される。ロボット装置の制御部(あるいはビジョンコントローラ113)は、上記の校正データ(座標変換行列MTCおよび補正行列A)を利用することにより、直ちに対象物の特定部位を第2の座標系(M)の座標値に変換することができる。
ロボット装置Rの制御部(不図示)には、ロボットアームに対して装着されたハンド1101a(エンドエフェクタ)の相対位置・姿勢は既知である。このため、ステレオカメラ104で3次元視覚測定した対象物の特定部位の位置・姿勢は、例えばロボットアームに対する相対位置・姿勢に容易に変換することができる。しかも、本実施形態によれば、上記校正データ(座標変換行列MTCおよび補正行列A)は3次元測定機101を用いて極めて高精度に取得(校正)することができる。従って、ステレオカメラ104の3次元視覚測定に基づき、ロボット装置(R)は対象物(ワーク)を精度よく操作することができる。
<実施形態6>
本発明の校正方法では、3次元視覚測定装置(ステレオカメラ104)の3次元測定値が表現される第1の座標系(C)と、3次元視覚測定装置(を備えた機能部品の)基準部位から定まる第2の座標系(M)と、の間で座標変換を行う校正データを取得する。
そして、上記各実施形態では、接触式の測定プローブ102を備えた3次元測定機101を利用する構成を例示した。ここで、この上記各実施形態の構成を考察すると、ステレオカメラ104(3次元視覚測定装置)で撮影する測定プローブ102は、校正用の「マーク」として考えることができる。
上記各実施形態の測定プローブ102を校正用の「マーク」と考えると、上記各実施形態における校正制御は、以下のような工程を備えるもの、と考えることができる。
・3次元視覚測定装置(ステレオカメラ104)により撮影可能な範囲内の、3次元視覚測定装置との位置関係が予め既知である計測位置に、3次元視覚測定装置により座標値を計測可能なマークを位置決めするマーク設置工程。
・3次元視覚測定装置(ステレオカメラ104)により、第1の座標系(カメラ座標系C)におけるマークの座標値を計測する3次元視覚測定工程。
・3次元視覚測定装置(ステレオカメラ104)の基準部位から定まる第2の座標系(位置決め座標系M)におけるマークの座標値を算出するマーク座標値算出工程。
・上記の視覚測定された第1の座標系におけるマークの座標値と、計測された第2の座標系におけるマークの座標値を用いて校正データを算出する校正データ算出工程。この校正データ算出工程で算出される校正データは、第1の座標系および第2の座標系の間で座標変換を行うための校正データと、3次元視覚測定装置により計測される3次元計測座標値のスケールを補正する要素を含む補正行列と、を含む。
その場合、上記各実施形態の3次元測定機101は、ステレオカメラ104(3次元視覚測定装置)により撮影可能な範囲内の、ステレオカメラ104によって座標値を計測可能なマークを位置決めするマーク設置装置と考えることができる。
そして、上記各実施形態では、3次元測定機101の測定プローブ102によって、ステレオカメラ104(3次元視覚測定装置)の位置決め穴304、304を実測している。しかしながら、ステレオカメラ104(3次元視覚測定装置)との位置関係が予め既知である計測位置に、測定プローブ102と同様の校正用の「マーク」を位置決めできるマーク設置装置があれば、この装置は3次元測定機101の代りに利用できる。
このようなマーク設置装置7000は、例えば図17のように構成することができる。図17において、ステレオカメラ104(3次元視覚測定装置)は、位置決め治具105に対して装着されている。位置決め治具105に対する装着は、上述同様の位置決めピン303、303と、位置決め穴304、304の係合構造を利用する。そして、ステレオカメラ104は、位置決め治具105を介してマーク設置装置7000の基台705上に固定される。
マーク設置装置7000の基台705上には、ステレオカメラ104により撮影可能な範囲の撮影距離(L)にマーカ板702を配置することができる。また、マーク設置装置7000は、マーカ板702を、例えばその中心とステレオカメラ104の2光軸の中心がほぼ一致するような姿勢を保ったまま、図の左右方向に移動する駆動部1072を備える。この駆動部1072は、上記各実施形態の3次元測定機コントローラ107(図1)に相当するマーク設置制御装置1071によって制御される。マーク設置制御装置1071のCPUレベルの構成は図16のものと同様でよい。
上記各実施形態では、3次元測定機コントローラ107(図1)が、ステレオカメラ104で測定プローブ102を撮影させる時の測定プローブ102の位置決めを行った。これに対して、本実施形態では、マーク設置制御装置1071は、ステレオカメラ104でマーカ板702のマーク7021を撮影させる時に、マーカ板702ないしマーク7021の撮影距離を決定するよう位置決めを行えばよい。
マーク設置制御装置1071は、上記各実施形態のように、位置決め穴304、304を実測する機能は有していない。しかしながら、位置決め治具105~基台705の寸法精度、および、駆動部1072によるマーカ板702ないしマーク7021の撮影距離を制御する精度が予め充分保たれているものとする。即ち、マーク設置制御装置1071に対して、位置決め穴304、304の位置は、予め所定の精度を持って既知である。これにより、マーク設置制御装置1071によって、上記実施形態におけるようなプローブ実測を行わなくても、ステレオカメラ104の位置決め座標系M(第2の座標系)を定義することができる。そして、ステレオカメラ104(を備えた機能部品)の基準部位(303)から定まる位置決め座標系M(第2の座標系)におけるマークの座標値を算出する(マーク座標値算出工程)ことができる。
マーカ板702には、図17の右側に示すように、例えば、互いに等間隔、などの円形のマーク7021、7021…を多数、配置しておく。マーク7021と背景は、例えば、黒地に白、あるいは白地に黒、など、ステレオカメラ104の撮影結果からマーク7021の位置を画像処理によって計測するのが容易な配色関係とする。
本実施形態の構成は、ステレオカメラ104(3次元視覚測定装置)の3次元測定値が表現される第1の座標系(座標系C)と、3次元視覚測定装置(を備えた機能部品)の基準部位に原点を有する第2の座標系(座標系M)と、を有する校正装置に相当する。そして、この校正装置は、第1の座標系(座標系C)と、第2の座標系(座標系M)と、の間で座標変換を行うための校正データを取得するものである。
上記のように、本実施形態の構成は、ステレオカメラ104(3次元視覚測定装置)により撮影可能な範囲内にステレオカメラ104によって座標値を計測可能なマーク7021を位置決めするマーク設置装置7000を備える。
マーク設置制御装置1071は、マーク設置装置7000の駆動部1072を介して、マーク7021を予め所定の精度をもって既知である計測位置、例えば、所定の撮影距離Lに設置させることができる(マーク設置工程)。
マーク設置制御装置1071は、ステレオカメラ104(3次元視覚測定装置)によって、カメラ座標系C(第1の座標系)におけるマークの座標値を計測させる(3次元視覚測定工程)。
そして、マーク設置制御装置1071は、ステレオカメラ104(を備えた機能部品)の基準部位(303ないし304)から定まるカメラ座標系M(第2の座標系)におけるマーク7021の座標値を算出することができる(マーク座標値算出工程)。ここで、位置決め治具105~基台705の寸法精度、および、駆動部1072によるマーカ板702(マーク7021)の撮影距離の制御精度が充分保たれている。
このため、マーク設置制御装置1071は、マーカ板702の撮影距離Lを決定すれば、例えばその際の駆動部1072の制御量など基づき、カメラ座標系M(第2の座標系)におけるマーク7021の座標値を算出できる。このカメラ座標系M(第2の座標系)は、上記のようにマーク設置装置7000の機械的な精度仕様に基づき、所定の精度で予め定義されているものと考えてよい。従って、図17の構成によれば、例えば位置決め穴304、304を測定プローブ102で実測するような過程を必要とせず、マーク設置制御装置1071は、第2の座標系(位置決め座標系M)におけるマークの座標値を算出することができる(マーク座標値算出工程)。
本実施形態の校正処理では、マーク設置装置7000により、マーク7021を特定の計測位置(撮影距離L)に設置させる(マーク設置工程)。そして、3次元視覚測定装置(ステレオカメラ104)により、第1の座標系(カメラ座標系C)におけるマーク7021の座標値を計測する(3次元視覚測定工程)。一方、マーク設置制御装置1071は、計測位置(撮影距離L)における駆動部1072の制御量など基づき、カメラ座標系M(第2の座標系)におけるマーク7021の座標値を算出できる。
そして、視覚測定された第1の座標系におけるマークの座標値と、計測された第2の座標系におけるマークの座標値と、を用いて校正データを算出することができる(校正データ算出工程)。この校正データは、第1の座標系および第2の座標系の間で座標変換を行うための校正データと、3次元視覚測定装置により計測される3次元計測座標値のスケールを補正する要素を含む補正行列と、を含む。
上記の第1の座標系、および第2の座標系におけるマークの座標値と、を用いて第1および第2の座標系の間の座標変換を行う校正データと、3次元計測座標値のスケールを補正する要素を含む補正行列と、を算出する演算過程は上記実施形態1と同様である。また、例えば、校正データ取得工程に関して上記実施形態2~5で示した校正制御の細部の構成は本実施形態においても同様に実施することができる。
また、図8(実施形態1)では、3次元視覚測定工程で、測定プローブ102(本実施形態のマーク7021)をステレオカメラ104を構成する単眼カメラ301、302の共通視野領域OVに位置決めしてステレオカメラ104で撮影する制御を示した。また、図11では、共通視野領域OVを局所領域1101、1102に分割して、それぞれについて別に補正行列(A)を算出する制御を示した。このような校正制御は、図17の構成においても可能である。
例えば、図17の撮影距離Lの右側の部分には、図8、図11の共通視野領域OVに相当する撮影距離の範囲を示してある。また、この共通視野領域OVは、図11の局所領域1101、1102に相当する撮影距離の範囲に分割して考えることができる。従って、例えば、共通視野領域OVの局所領域1101、1102の各境界の縦線の位置に、マーカ板702を移動してステレオカメラ104でマーク7021を撮影することにより、図8、図11で説明したのと同様の3次元視覚測定の態様を実現できる。
また、その場合、単眼カメラ301、302の被写界深度が重なり合う角錐台形状の共通視野領域OVの空間範囲にあるマーク7021を3次元視覚測定すればよい。このためには、例えば、マーカ板702の撮影距離に応じて、3次元視覚測定に用いるマーク7021は、マーカ板702の中央、その外側、さらに外側などの各領域7021a、7021b、7021cに配置したものを選択すればよい。このようにして、図8、図11で説明したのと同様の3次元視覚測定の態様を実現できる。例えば、局所領域1101、1102に分割して、それぞれについて別に補正行列(A)を算出する構成では、補正行列(A)によって、撮影距離に適したスケール補正を行うことができる。