以下、本発明に係る3次元形状測定装置の一実施形態について図面を参照しながら説明する。図1は、測定対象物であるワークWK1とワークWK2との間の隙間、およびワークWK1の上面とワークWK2の上面との段差を測定する3次元形状測定装置の基本構成を示す概略図である。ここで、ワークWK1およびワークWK2は、それぞれ平板状に形成されており、互いに隣り合った状態で配置されている。ワークWK1およびワークWK2における互いに対向する側面である端部T1,T2は、それぞれ円弧状に形成されている。なお、図1は、ワークWK1とワークWK2との間の隙間を中心としたワークWK1,WK2の一部を示している。この3次元形状測定装置は、ワークWK1,WK2の3次元形状を測定する3次元形状撮像装置10を備えている。
3次元形状撮像装置10は、箱型に形成されており、ワークWK1,WK2に向けてレーザ光を出射するとともに同ワークWK1,WK2からの反射光を受光して、ワークWK1,WK2の3次元立体表面形状を測定して同測定結果を表す測定情報を出力する。この3次元形状撮像装置10としては、ワークWK1,WK2の3次元表面形状を測定するとともに同測定した3次元表面形状を表す信号を出力するものであれば、いかなる3次元形状測定装置をも利用できる。本実施形態においては、レーザ光を用いて3角測量法に従って物体の3次元表面形状を測定するものを簡単に紹介しておく。
この3次元形状撮像装置においては、レーザ光源から物体に向けて出射されるレーザ光の進行方向にほぼ垂直な仮想平面を想定するとともに、同仮想平面上にて互いに直交するX軸方向およびY軸方向に沿って分割した多数の微小エリアを想定する。そして、3次元形状撮像装置は、前記多数の微小エリアにレーザ光を順次照射し、物体からの反射光によって前記微小エリアが規定する物体表面までの距離をZ軸方向距離として順次検出して、物体の表面を微小エリアずつに分割した各分割エリア位置を表すX,Y,Z座標に関する情報を得て、同3次元形状撮像装置に面した物体表面の形状を測定するものである。
したがって、この3次元形状撮像装置は、出射レーザ光の向きをX軸方向に変化させるX軸方向走査器と、出射レーザ光の向きをY軸方向に変化させるY軸方向走査器と、物体表面にて反射された反射レーザ光を受光して物体表面までの距離を検出する距離検出器とを備えている。X軸方向走査器およびY軸方向走査器としては、レーザ光源からの出射レーザ光の光路をX軸方向およびY軸方向に独立に変化させ得る機構であればよく、例えば、レーザ光源自体をX軸方向およびY軸方向の軸線回りに電動モータによって回転させたり、出射レーザ光の光路に設けられてその方向を変更するガルバノミラーをX軸方向およびY軸方向の軸線回りに電動モータによって回転させる機構を利用できる。距離検出器としては、前記出射レーザ光の光路に追従して回転し、物体表面にて反射された反射レーザ光を集光する結像レンズおよび同集光したレーザ光を受光するCCDなどの複数の受光素子を一列に配置させたラインセンサからなり、ラインセンサによる反射レーザ光の受光位置によって物体表面までの距離を検出する機構を利用できる。
したがって、このような3次元形状撮像装置は、物体の表面を微小エリアずつに分割した各分割エリア位置を表すX,Y,Z座標に関する情報として、X軸方向走査器による出射レーザ光の基準方向に対するX軸方向への傾きθx、Y軸方向走査器による出射レーザ光の基準方向に対するY軸方向への傾きθy、および距離検出器による物体表面までの距離Lzとが、前記仮想したX軸方向およびY軸方向に沿って分割した多数の微小エリアごとに出力される。より具体的には、X軸およびY軸方向への傾きθx,θyは、電動モータの基準位置からの回転角である。また、物体表面までの距離Lzは、ラインセンサにおける反射レーザ光の受光位置である。
この3次元形状撮像装置10は、支持具20によって支持されている。支持具20は、平板上のベース21上に垂直方向に設けられた支柱22を備えている。支柱22には、その上部にレーザ光をベース21側に向けて出射する向きで3次元形状撮像装置10が固定されているとともに、その下部にジョイント23を介して棒状の第1アーム24が水平方向に設けられている。ジョイント23は、支柱22上における3次元形状撮像装置10とベース21との間の任意の位置で、同支柱22の軸線回りにおける任意の向きに第1アーム24を固定できるようになっている。ジョイント23には、ハンドル23aが設けられており、このハンドル23aを回転操作することにより第1アーム24を支柱22に対して固定状態および変位可能状態とすることができる。
第1アーム24の両端部には、ジョイント25,26を介して同第1アーム24に直交した状態で棒状の第2アーム27,28がそれぞれ設けられている。ジョイント25,26は、第1アーム24の各端部とジョイント23との各間の任意の位置で、同第1アーム24の軸線回りにおける任意の向きに第2アーム27,28をそれぞれ固定できるようになっている。また、これらのジョイント25,26は、第2アーム27,28の各軸線回りにおける任意の角度で同第2アーム27,28をそれぞれ固定できるようになっている。ジョイント25,26には、ハンドル25a,26aがそれぞれ設けられており、これらのハンドル25a,26aを回転操作することにより第2アーム27,28を第1アーム24に対してそれぞれ固定状態および変位可能状態にすることができる。また、ハンドル25a,26aを回転操作することにより第2アーム27,28を同第2アーム27,28の各軸線回りに固定状態および変位可能状態にすることができる。第2アーム27,28の各中央部は、それぞれ四角柱状に形成されており、これらの四角柱状に形成された部分の1つの側面に平板状の反射ミラー31,32がそれぞれ固定されている。
反射ミラー31,32は、方形の平板状に形成されており、3次元形状撮像装置10から出射されたレーザ光を反射してワークWK1,WK2に導くとともに、同ワークWK1,WK2からの反射光を反射して3次元形状撮像装置10に導くためのミラーである。これらの反射ミラー31,32は、第1アーム24および第2アーム27,28の各位置および各軸線回りの角度を調整することにより3次元形状撮像装置10の測定対象空間内に位置するように配置される。
この3次元形状撮像装置10には、コントローラ41および3次元画像処理装置42が接続されている。コントローラ41は、キーボードからなる入力装置43からの指示に従って、3次元形状撮像装置10の作動を制御する。また、コントローラ41は、入力装置43からの指示に従って3次元画像処理装置42の作動を制御するとともに、同入力装置43にて入力されたデータを3次元画像処理装置42に供給する。
3次元画像処理装置42は、コンピュータ装置によって構成され図3に示すプログラムを実行することにより形状データ合成関数FSを計算するとともに、図7および図9に示す各プログラムを実行することにより、測定対象空間内に位置する物体の3次元画像を表示するための3次元形状データを生成して、同測定対象空間内に位置するワークWK1とワークWK2との間の隙間、およびワークWK1の上面とワークWK2の上面との段差を計算する。この3次元画像処理装置42には、表示装置44が接続されている。表示装置44は、液晶ディスプレイまたはCRTなどで構成され、3次元画像処理装置42から出力されるワークWK1とワークWK2との間の隙間の値、およびワークWK1の上面とワークWK2の上面との段差の値や、同3次元画像処理装置42から出力される3次元形状データに基づいて測定対象空間内に位置する物体の3次元画像を表示する。
次に、このように構成した3次元形状測定装置の作動について説明する。まず、作業者は、反射ミラー31,32の位置および向きを調整する。作業者は、図1に示すように、互いが隣り合って配置されたワークWK1とワークWK2との間の隙間上に3次元形状測定装置を配置して、第1アーム24および第2アーム27,28の位置および各軸線回りの角度を変位させることにより、反射ミラー31,32の位置および向きを調整する。具体的には、3次元形状撮像装置10から出射され反射ミラー31によって反射されるレーザ光の光軸が、ワークWK2の端部T2の表面に垂直になるように反射ミラー31の位置および向きを調整する。すなわち、レーザ光がワークWK2の端部T2の表面に対して垂直方向から照射されるように反射ミラー31の位置および向きを調整する。また、3次元形状撮像装置10から出射され反射ミラー32によって反射されるレーザ光の光軸が、ワークWK1の端部T1の表面に垂直になるように反射ミラー32の位置および向きを調整する。すなわち、レーザ光がワークWK1の端部T1の表面に対して垂直方向から照射されるように反射ミラー32の位置および向きを調整する。なお、このワークWK1,WK2における各端部T1,T2が本発明に係る特定部位である。
次に、作業者は、図2に示すように、平板状に形成された平板治具JG1上に3次元形状測定装置を載置し、入力装置43を操作して3次元画像処理装置42に形状データ合成関数FSの計算を指示する。形状データ合成関数FSは、反射ミラー31,32を介して3次元形状撮像装置10に導かれる反射光に基づいて生成される3次元形状データ(以下、「間接3次元形状データ」という)によって表されるワークWK1,WK2の3次元形状を、ワークWK1,WK2から直接3次元形状撮像装置10に導かれる反射光に基づいて生成される3次元形状データ(以下、「直接3次元形状データ」という)によって表されるワークWK1,WK2の3次元形状に合成するための関数である。この場合、直接3次元形状データは3次元形状撮像装置10に関する座標系であるカメラ座標系Cによって表された3次元形状データである。ここで、カメラ座標系Cは、互いに直交する3つの座標軸(X軸,Y軸,Z軸)からなり、3次元形状撮像装置10の特定点を原点とする3次元座標系である。
そして、間接3次元形状データも計算上は、カメラ座標系Cによる3次元形状データとして計算されるが、この計算には反射ミラー31,32によってレーザ光および反射光の進行方向が変更されていることが考慮されていない。すなわち、間接3次元形状データは、3次元形状撮像装置から出射されたレーザ光が反射ミラー31,32を介さずそのまま直進してワークWK1,WK2に達した後、同ワークWK1,WK2で反射して反射ミラー31,32を介さずにそのまま直進して3次元形状撮像装置10に導かれたものとして計算されたデータである。換言すれば、間接3次元形状データは反射ミラー31,32ごとに存在するカメラ座標系Cとは別の座標系C’,C’’(以下、カメラ座標系C’,C’’という)によって表された3次元形状データであるといえる。したがって、直接3次元形状データによって表されるワークWK1,WK2の3次元形状と間接3次元形状データによって表されるワークWK1,WK2の3次元形状とを合成するためには、両方の3次元形状データを同一の座標系による3次元形状データにする必要がある。形状データ合成関数FSは、間接3次元形状データの座標値をカメラ座標系C’,C’’による座標値から直接3次元形状データの座標系であるカメラ座標系Cによる座標値に座標変換するための関数である。
3次元画像処理装置42は、前記形状データ合成関数FSの計算の指示に応答して、図3に示す、形状データ合成関数FS計算プログラムの実行をステップS100にて開始して、ステップS102にて、平板治具JG1の測定情報の入力を待つ。この場合、作業者は、ステップS102による平板治具JG1の測定情報の入力に先立って、反射ミラー31,32の反射面を、光を殆ど反射しない(反射率が極めて低い)シート33,34で覆う。3次元形状撮像装置10は、コントローラ41からの指示に応答して平板治具JG1の上面の測定を開始する。具体的には、3次元形状撮像装置10は、3次元形状測定装置10に関する座標系であるカメラ座標系CにおけるX−Y座標原点(反射ミラー31側であって支持具20側)からX軸方向(反射ミラー32側)にレーザ光の走査を開始して、X軸方向にレーザ光を走査するラインを順次Y軸方向(支持具20対して反射ミラー31,32側)にずらしながら平板治具JG1の上面を測定する。
この場合、図4(A)に示すように、3次元形状撮像装置10から反射ミラー31,32に向けて出射されたレーザ光の大部分は前記シート33,34によって吸収されるため、平板治具JG1には極めて少量のレーザ光が導かれる。そして、平板治具JG1から反射ミラー31,32に向けて反射された反射光も、その大部分がシート33,34によって吸収されるため、3次元形状撮像装置10に導かれる反射光(以下、「間接反射光」という)は殆どない。すなわち、図4(B)示すように、3次元形状撮像装置10に導かれる平板治具JG1からの反射光の大部分は、3次元形状撮像装置10から直接平板治具JG1に出射されたレーザ光による反射光(以下、「直接反射光」という)である。
3次元形状撮像装置10は、受光した反射光に基づく平板治具JG1の上面の3次元形状を表す情報を3次元画像処理装置42に出力する。すなわち、平板治具JG1の上面を微小エリアずつに分割した各分割エリア位置を表すX−Y−Z座標に関する情報(具体的には、傾きθx,θyおよび距離Lz)を3次元画像処理装置42にそれぞれ出力する。この場合、直接反射光に基づくX−Y−Z座標に関する情報は、傾きθx,θyおよび距離Lzが揃っているが、間接反射光に基づくX−Y−Z座標に関する情報は反射ミラー31,32からの反射光が極めて少ないため、距離Lzが測定不能として欠落しており、傾きθx,θyのみである。
次に、3次元画像処理装置42は、ステップS104にて、反射ミラー31,32の位置の特定を行う。具体的には、入力したX−Y−Z座標に関する情報のうち、距離Lzが欠落しているX−Y−Z座標に関する情報(すなわち、傾きθx,θyデータ)を抽出する。この場合、抽出した傾きθx,θyは反射ミラー31,32の位置にそれぞれ対応している。そして、反射ミラー31と反射ミラー32との間の直接反射光が検出されている領域では傾きθxデータは存在しないため、同傾きθxは2つの群に分類することができる。3次元画像処理装置42は、傾きθxデータを2つの群に分類し、値の大きい側を反射ミラー31、値の小さい側を反射ミラー32に対応するものとして抽出した傾きθx,θyデータを記憶する。
次に、3次元画像処理装置42は、ステップS106にて、平板治具JG2の測定情報の入力を待つ。平板治具JG2は、図5に示すように、平板状に形成されており、その上面に所定の深さの溝部Mが形成されている。溝部Mの互いに対向する2つの側面T3,T4は、平板治具JG2の上面に対してそれぞれ直交している。すなわち、溝部Mは、平板治具JG2の上面に対して直交する方向に所定の深さを有する溝である。作業者は、ステップS106による平板治具JG2の測定情報の入力に際して、前記シート33,34を反射ミラー31,32から外すとともに、平板治具JG2の上面に形成された溝部M上に3次元形状測定装置を配置して、より具体的には、3次元形状撮像装置10から出射され反射ミラー31,32を介して導かれるレーザ光が溝部Mの側面T3,T4に導かれる位置に3次元形状測定装置を配置して、平板治具JG2の測定を入力装置43を介して3次元画像処理装置42に指示する。
この指示に応答して、3次元形状撮像装置10は、前記と同様にして平板治具JG2の上面の測定を開始して、平板治具JG2の上面の3次元形状を表す情報を3次元画像処理装置42に出力する。すなわち、前記ステップS102と同様に、平板治具JG2の上面を微小エリアずつに分割した各分割エリア位置を表すX−Y−Z座標に関する情報(具体的には、傾きθx,θyおよび距離Lz)を3次元画像処理装置42にそれぞれ出力する。この場合、3次元形状撮像装置10から反射ミラー31,32に向けて出射されたレーザ光は、反射ミラー31,32を介して平板治具JG2に導かれるとともに、同平板治具JG2からの反射光が反射ミラー31,32を介して3次元形状撮像装置10に導かれる。また、3次元形状撮像装置10から平板治具JG2に向けて出射されたレーザ光は、直接平板治具JG2に導かれるとともに、同平板治具JGによって反射されて直接3次元形状撮像装置10に導かれる。そして、3次元画像処理装置42は、同ステップS106にて、3次元形状撮像装置10から出力されたX−Y−Z座標に関する情報に基づいて、平板治具JG2の上面の3次元形状を表す立体形状データ群からなる3次元形状データを生成する。この場合、前記と同様に、直接3次元形状データはカメラ座標系Cによってあらわされており、間接3次元形状データはカメラ座標系C’,C’’によって表されている。
次に、3次元画像処理装置42は、ステップS108にて、直接3次元形状データおよび2つの間接3次元形状データごとに、平板治具JG2の上面を表す平面PD,PI1,PI2をそれぞれ定義する。これらの平面PD,PI1,PI2をそれぞれ定義する処理は、それぞれ同様の処理によって行われるため、平面PDの定義処理について説明する。この場合、3次元画像処理装置42は、前記生成された3次元形状データを、前記ステップS104にて特定した反射ミラー31に対応する傾きθx,θyデータおよび反射ミラー32に対応する傾きθx,θyデータを用いて、直接反射光に基づく3次元形状データである直接3次元形状データと、2つの間接反射光に基づく各3次元形状データである間接3次元形状データとにそれぞれ分類した後、平面PD,PI1,PI2の各定義処理を実行する。この平面PDの定義処理は、次のサブステップ1〜3の処理からなる。
サブステップ1:3次元画像処理装置42は、直接3次元形状データの中から、Z座標値が最も小さい3次元形状データ、すなわち3次元形状撮像装置10(カメラ座標系Cの原点)に最も近い3次元形状データを抽出する。これにより、平板治具JG2の上面におけるいずれか1つの3次元形状データが抽出される。
サブステップ2:3次元画像処理装置42は、直接3次元形状データの中から、前記抽出した3次元形状データのZ座標値に対して所定の範囲内に属する3次元形状データを少なくとも2つ抽出する。そして、これら3つ以上の3次元形状データを下記式1に示す平面の式にそれぞれ代入し、最小二乗法により未知数a,b,cを計算して仮平面P’を定義する。
サブステップ3:3次元画像処理装置42は、前記直接3次元形状データの中から、前記定義した仮平面P’に対して所定の範囲内に属する3次元形状データをすべて抽出し、同抽出した3次元形状データの数が所定数以上であれば、抽出した3次元形状データが平板治具JG2の上面を表す3次元形状データであるとして、同抽出した3次元形状データを前記式1に示す平面の式に再度代入して、最小二乗法によりa,b,cを計算して平面を定義する。そして、この定義した平面(a,b,cの値)を平板治具JG2の上面を表す平面PDとして記憶する。一方、前記抽出した3次元形状データの数が所定数未満である場合には、最初に抽出した3次元形状データは平板治具JG2の上面を表す3次元形状データでないとして、最初に抽出した3次元形状データとは別の3次元形状データを前記式1に示す平面の式に再度代入して、最小二乗法により平面を定義する。そして、この定義した平面を新たな仮平面P’として、平面PDが定義されるまでこのサブステップ3の処理を繰り返し実行する。
なお、3次元画像処理装置42は、前記したように平面PI1,PI2についても、2つの間接3次元形状データ用いて、前記と同様にしてそれぞれ定義する。これにより、直接3次元形状データおよび2つの間接3次元形状データごとに平板治具JG2の上面を表す平面PD,PI1,PI2がそれぞれ定義される。次に、3次元画像処理装置42は、ステップS110にて、前記それぞれ定義した平面PD,PI1,PI2ごとに3つのベクトル(AD,BD,CD),(AI1,BI1,CI1),(AI2,BI2,CI2)をそれぞれ定義する。これら各3つのベクトルの定義処理は、次のサブステップ1〜4の処理からなる。
サブステップ1:3次元画像処理装置42は、ベクトルAD,AI1,AI2を定義する。具体的には、3次元画像処理装置42は、前記各平面PD,PI1,PI2を表す前記式1における各a,b,cを(a2+b2+c2)の平方根で除した値をベクトル成分とするベクトル、すなわち、各平面PD,PI1,PI2における各法線ベクトルの単位ベクトルをそれぞれベクトルAD,AI1,AI2とする。この場合、ベクトルAD,AI1,AI2は、それぞれ平面PD,PI1,PI2から3次元形状撮像装置10に向かうベクトルである。なお、ベクトルAD,AI1,AI2は、3次元形状撮像装置10から平面PD,PI1,PI2に向かうベクトルであってもよい。
サブステップ2:3次元画像処理装置42は、ベクトルB
Dを定義する。具体的には、3次元画像処理装置42は、直接3次元形状データの中から互いに隣り合う3次元形状データにおける各Z座標値の変化量が所定の範囲を超えて大きく変化する直前の3次元形状データを抽出する。これにより、平板治具JG2の上面における同上面と側面T3,T4とが直交する各縁部分を表す3次元形状データが溝部Mに沿って抽出される。3次元画像処理装置42は、同抽出した前記各縁部分を表す3次元形状データを下記式2に示す直線の式にそれぞれ代入して、最小二乗法により未知数a,b,cを計算する。そして、計算したa,b、cをベクトル成分とするベクトル(溝部Mの縁に平行なベクトル)の単位ベクトルをベクトルB
Dとする。
サブステップ3:3次元画像処理装置42は、ベクトルBI1,BI2を定義する。具体的には、3次元画像処理装置42は、間接3次元形状データの中から、平面PI1,PI2から所定の範囲内に属し、かつ平板治具JG2の上面(平面PI1,PI2)以外の部分を定義する3次元形状データをそれぞれ抽出する。これにより、平板治具JG2の上面に直交する側面T3,T4の一部を表す3次元形状データがそれぞれ抽出される。3次元画像処理装置42は、同抽出した前記側面T3,T4を表す各3次元形状データを前記式1に示す平面の式にそれぞれ代入して、最小二乗法により未知数a,b,cを計算することにより側面T3,T4を表す平面PT3,PT4をそれぞれ定義する。そして、3次元画像処理装置42は、平面PI1,PI2と平面PT3,PT4とが直交する各縁部分の直線を表す前記式2を計算して、同計算した各a,b、cをベクトル成分とするベクトル(前記各縁部分に平行なベクトル)の単位ベクトルをベクトルBI1,BI2とする。この場合、これらのベクトルBD,BI1,BI2は、3次元形状撮像装置10から出射されるレーザ光のY座標方向の走査方向における正側に向かうベクトルである。なお、ベクトルBD,BI1,BI2は、3次元形状撮像装置10から出射されるレーザ光のY座標方向の走査方向における負側に向かうベクトルであってもよい。
サブステップ4:3次元形状測定装置42は、ベクトルCD,CI1,CI2を定義する。具体的には、3次元画像処理装置42は、前記ベクトルADとベクトルBDとの外積により計算されるベクトルをベクトルCDとする。また、前記ベクトルAI1とベクトルBI1との外積により計算されるベクトルをベクトルCI1とするとともに、前記ベクトルAI2とベクトルBI2との外積により計算されるベクトルをベクトルCI2とする。
次に、3次元画像処理装置42は、ステップS112にて、形状データ合成関数F
Sにおける回転成分M
FSを計算する。回転成分M
FSは、X,Y,Z座標からなる第1の座標系と、同第1の座標系をX軸、Y軸およびZ軸回りにそれぞれθx,θy,θzだけ回転させた第2の座標系を想定した場合における両座標系間の座標軸の向きの関係、すなわちθx,θy,θzを特定するための関数である。この第1の座標系における1つのベクトルを(αa,βa,γa)とし、第2の座標系における前記1つのベクトルを(αb,βb,γb)とすると、両ベクトル間には下記数3に示す関係が成立する。下記数3においてMは、前記回転成分M
FSに相当し下記数4によって表される行列値である。なお、この場合、ベクトル(αa,βa,γa)とベクトル(αb,βb,γb)は、その大きさが同じとする。
このステップS112の形状データ合成関数F
Sにおける座標軸の回転成分M
FSの計算は、前記式3中の行列値M(M=g
11,g
12,g
13,g
21,g
22,g
23,g
31,g
32,g
33)を計算することを意味する。すなわち、両座標系間において互いに同一方向にない3つのベクトルA,B,Cを想定し、これら3つのベクトルのA,B,Cの前記第1の座標系における各成分A
1,B
1,C
1を(α1,β1,γ1),(α2,β2,γ2),(α3,β3,γ3)とし、この3つのベクトルのA,B,Cの前記第2の座標系における各成分A
2,B
2,C
2を(α’1,β’1,γ’1),(α’2,β’2,γ’2),(α’3,β’3,γ’3)とすれば、下記式5〜7の関係が成立する。
この前記式5〜7の9つの連立方程式を解くことにより、行列値Mを計算することができる。本実施形態においては、前記ベクトルAD,BD,CDの各ベクトル成分を(α’1,β’1,γ’1),(α’2,β’2,γ’2),(α’3,β’3,γ’3)とし、前記ベクトルAI1,BI1,CI1および前記ベクトルAI2,BI2,CI2をそれぞれ(α1,β1,γ1),(α2,β2,γ2),(α3,β3,γ3)とすれば、反射ミラー31,32に基づく各間接3次元形状データを直接3次元形状データに合成するための形状データ合成関数FSにおける回転成分MFSをそれぞれ計算することができる。すなわち、平面P上に定義された3つのベクトルのカメラ座標系CにおけるベクトルAD,BD,CDを前記第2の座標系におけるベクトルとし、同平面P上に定義された3つのベクトルのカメラ座標系C’,C’’におけるベクトルAI1,BI1,CI1およびAI2,BI2,CI2を前記第1の座標系におけるベクトルとすれば、カメラ座標系C’,C’’における座標値をカメラ座標系Cにおける座標値に座標変換するための座標変換関数における回転成分を回転成分MFSとして計算することができる。
次に、3次元画像処理装置42は、ステップS114にて、定点設定治具JG3の測定情報の入力を待つ。定点設定治具JG3は、図6に示すように、真球体に形成されており、3次元画像撮像装置10の測定対象空間内において定点を定めるために用いられる。作業者は、ステップS114による定点設定治具JG3の測定情報の入力に際して、3次元画像撮像装置10の測定対象空間内における平板治具JG2の溝部M上に定点設定治具JG3を配置して、定点設定治具JG3の測定を入力装置43を介して3次元画像処理装置42に指示する。
この指示に応答して、3次元形状撮像装置10は、定点設定治具JG3の測定を開始して、定点設定治具JG3の3次元形状を表す情報を3次元画像処理装置42に出力する。すなわち、前記ステップS102,S106と同様に、定点設定治具JG3の上面を微小エリアずつに分割した各分割エリア位置を表すX−Y−Z座標に関する情報(具体的には、傾きθx,θyおよび距離Lz)を3次元画像処理装置42にそれぞれ出力する。この場合、3次元形状撮像装置10は、前記と同様に、直接反射光および2つの間接反射光に基づくX−Y−Z座標に関する情報を3次元画像処理装置42にそれぞれ出力する。そして、3次元画像処理装置42は、同ステップS114にて、3次元形状撮像装置10から出力されたX−Y−Z座標に関する情報に基づいて、定点設定治具JG3の3次元形状を表す立体形状データ群からなる3次元形状データを生成する。この場合、前記と同様に、直接3次元形状データはカメラ座標系Cによって表されており、間接3次元形状データはカメラ座標系C’,C’’によって表されている。なお、この3次元形状データ中には、定点設定治具JG3のほかに同定点設定治具JG3の周辺に存在する他の物体(例えば、平板治具JG2の上面)の形状を表す3次元形状データも含まれている。
次に、3次元画像処理装置42は、ステップS116にて、前記直接3次元形状データおよび2つの間接3次元形状データの中から、定点設定治具JG3の3次元形状を表す3次元形状データをそれぞれ抽出する。この場合、直接3次元形状データおよび2つの間接3次元形状データは、前記と同様に、前記ステップS104にて特定した反射ミラー31,32に対応する傾きθx,θyデータを用いてそれぞれ分類される。この定点設定治具JG3の3次元形状を表す3次元形状データの抽出処理は、図示しない定点設定治具抽出サブプログラムを実行することによって行われる。定点設定治具抽出サブプログラムの処理内容を簡単に説明する。
3次元画像処理装置42は、定点設定治具JG3が球体であるデータと、同球体の直径を表すデータを用いて、単位ブロックおよび探索ブロックを設定する。単位ブロックは、定点設定治具JG3の存在位置を特定するために探索ブロックを移動させる最小のブロックであり、探索ブロックは、定点設定治具JG3をその内部に包含する位置を特定するために利用される単位ブロックの集まりである。3次元画像処理装置42は、3次元形状撮像装置10の測定対象空間内を単位ブロックの大きさで立体的に分割するとともに、探索ブロックを測定対象空間内で順次移動させて探索ブロック内に包含される単位ブロックのうち3次元形状データを含む単位ブロックの数をカウントする。このカウントした単位ブロックの数に応じて、探索ブロック内に含まれる3次元形状データがそれぞれ定点設定治具JG3全体を含む3次元形状データであるか否かを判定し、定点設定治具JG3全体を含む3次元形状データであると判定されたとき、探索ブロック内の3次元形状データを抽出する。なお、この技術は、既によく知られた技術であり、例えば特開2004−333371号公報に記載されている。
また、前記説明した定点設定治具JG3の抽出方法のほかに、定点設定治具JG3からの反射光の光量を用いて定点設定治具JG3の3次元形状を表す3次元形状データを抽出することもできる。この場合、定点設定治具JG3からの反射光の光量を予め検出するとともに、同反射光の光量を3次元画像処理装置42に設定しておく。そして、3次元形状撮像装置10は、X−Y−Z座標に関する情報(具体的には、傾きθx,θyおよび距離Lz)に加えて定点設定治具JG3からの反射光の光量も検出して、前記設定した光量と一致する3次元形状データを抽出するようにすればよい。
次に、3次元画像処理装置42は、ステップS118にて、定点設定治具JG3を表す前記抽出した各3次元形状データを用いて、各3次元形状データごとに定点設定治具JG3の中心座標を定点T
D,T
I1,T
I2の座標としてそれぞれ計算する。具体的には、前記抽出した各3次元形状データを下記式8の左辺にそれぞれ代入し、最小2乗法を用いて未知数a、b、cを定点T
D,T
I1,T
I2の座標としてそれぞれ計算する。この場合、a,b、cは、3次元形状データによって表された球体、すなわち定点設定治具JG3の各中心座標を表す。なお、前記式8においてdは、定点設定治具JG3の半径を表すが、このステップS118の処理においては計算する必要はない。
次に、3次元画像処理装置42は、ステップS120にて、形状データ合成関数F
Sにおける原点ずれ成分G
FSを計算する。原点ずれ成分G
FSは、前記第1の座標系の原点から前記第2の座標系の原点に向かうベクトルの成分(a、b、c)を前記第2の座標系により表したものである。換言すれば、前記回転成分M
FSによる座標変換により、前記第1の座標系の座標軸の向きを前記第2の座標系の座標軸の向きに合わせた後、前記第1の座標系の原点を前記第2の座標系の原点に一致させるために前記第1の座標系の原点をX軸方向、Y軸方向およびZ軸方向にそれぞれ移動させる量a,b,cである。この第1の座標系における1つの座標値を(x,y,z)とし、第2の座標系における前記1つの座標値に対応する座標値を(x’,y’,z’)とすれば、両座標値間には下記数9に示す関係が成立する。下記数9においてMは、前記回転成分M
FSに相当する行列値である。
このステップS120の形状データ合成関数FSにおける原点ずれ成分GFSの計算は、前記式9中のa,b,cを計算することを意味する。すなわち、前記直接3次元形状データに基づいて計算した定点のカメラ座標系Cによる座標値TDを前記第1の座標系における座標値(x,y,z)とし、前記間接3次元形状データに基づいて計算した定点のカメラ座標系C’,C’’による座標値TI1,TI2を前記第2の座標系における座標値を(x’,y’,z’)とすれば、前記式9にこれらの座標値を代入し連立方程式を解けば反射ミラー31,32に基づく各間接3次元形状データを直接3次元形状データに合成するための形状データ合成関数FSにおける原点ずれ成分GFSである(a,b,c)をそれぞれ求めることができる。これにより、反射ミラー31に基づく間接3次元形状データを直接3次元形状データに合成するための形状データ合成関数FS1と、反射ミラー32に基づく間接3次元形状データを直接3次元形状データに合成するための形状データ合成関数FS2とが形状データ合成関数FSとして計算されたことになる。
次に、3次元画像処理装置42は、ステップS122にて、前記計算された形状データ合成関数FS1および形状データ合成関数FS2からなる形状データ合成関数FSを記憶する。そして、3次元画像処理装置42は、ステップS124にて、この形状データ合成関数FS計算プログラムの実行を終了する。
この形状データ合成関数FS計算プログラムの実行後、作業者は、測定対象物であるワークWK1,WK2の測定、より具体的には、ワークWK1の端部T1とワークWK2の端部T2との間の隙間、およびワークWK1の上面とワークWK2の上面との段差の測定を行う。作業者は、図1に示すように、3次元形状測定装置をワークWK1とワークWK2との間の隙間上に配置して、入力装置43を操作してワークWK1,WK2の測定を指示する。この場合、作業者は、ワークWK1の端部T1とワークWK2の端部T2との間の隙間の長手方向に対して3次元形状撮像装置10から出射されるレーザ光のX軸方向の走査方向が略直交するように3次元形状測定装置を配置する。
3次元画像処理装置42は、前記ワークWK1,WK2の測定を指示に応答して、図7に示す、ワーク測定プログラムの実行をステップS200にて開始して、ステップS202にて、ワークWK1,WK2の測定情報の入力を待つ。3次元形状撮像装置10は、前記と同様にしてワークWK1,WK2の測定を開始する。具体的には、3次元形状撮像装置10は、3次元形状測定装置10に関する座標系であるカメラ座標系CにおけるX−Y座標原点(反射ミラー31側であって支持具20側)からX軸方向(反射ミラー32側)にレーザ光の走査を開始して、X軸方向にレーザ光を走査するラインを順次Y軸方向(支持具20対して反射ミラー31,32側)にずらしながらワークWK1,WK2の各上面を測定する。
3次元形状撮像装置10から反射ミラー31に向けて出射されたレーザ光は、図8(A)に示すように、反射ミラー31を介してワークWK1,WK2に導かれる。この場合、反射ミラー31によってワークWK1,WK2に導かれるレーザ光はワークWK2の端部T2に対して略垂直に入射するため、同ワークWK2の端部T2からの反射光は反射ミラー31を介して3次元形状撮像装置10に導かれる。すなわち、3次元形状撮像装置10は、反射ミラー31からの間接反射光によりワークWK2の端部T2の形状を測定することができる。また、3次元形状撮像装置10から反射ミラー32に向けて出射されたレーザ光は、図8(B)に示すように、反射ミラー32を介してワークWK1,WK2に導かれる。この場合、反射ミラー32によってワークWK1,WK2に導かれるレーザ光はワークWK1の端部T1に対して略垂直に入射するため、同ワークWK1の端部T1からの反射光は反射ミラー32を介して3次元形状撮像装置10に導かれる。すなわち、3次元形状撮像装置10は、反射ミラー31からの間接反射光によりワークWK1の端部T1の形状を測定することができる。なお、3次元形状撮像装置10から直接ワークWK1,WK2に向けて出射されたレーザ光は、図8(C)に示すように、ワークWK1,WK2の各上面からの反射光を受光する。この場合、ワークWK1,WK2の各端部T1,T2に照射されたレーザ光は、その大部分が入射方向とは異なる方向に反射するため、3次元形状撮像装置10に受光される同反射光の光量は少ない。
そして、3次元形状撮像装置10は、ワークWK1,WK2の上面(各端部T1,T2を含む)の3次元形状を表す情報を3次元画像処理装置42に出力する。すなわち、前記ステップS102,S106と同様に、ワークWK1,WK2の上面を微小エリアずつに分割した各分割エリア位置を表すX−Y−Z座標に関する情報(具体的には、傾きθx,θyおよび距離Lz)を3次元画像処理装置42にそれぞれ出力する。この場合、3次元形状撮像装置10は、前記と同様に、直接反射光および2つの間接反射光に基づくX−Y−Z座標に関する情報を3次元画像処理装置42にそれぞれ出力する。そして、3次元画像処理装置42は、同ステップS202にて、3次元形状撮像装置10から出力されたX−Y−Z座標に関する情報に基づいて、ワークWK1,WK2の3次元形状を表す立体形状データ群からなる3次元形状データを生成する。この場合、前記と同様に、直接3次元形状データはカメラ座標系Cによって表されており、間接3次元形状データはカメラ座標系C’,C’’によって表されている。
次に、3次元画像処理装置42は、ステップS204にて、前記ステップS202にて生成した2つの間接3次元形状データによって表されたワークWK1,WK2の3次元形状を直接3次元形状データによって表されたワークWK1,WK2の3次元形状に合成する。具体的には、3次元画像処理装置42は、前記生成された3次元形状データを、前記ステップS104にて特定した反射ミラー31に対応する傾きθx,θyデータおよび反射ミラー32に対応する傾きθx,θyデータを用いて、直接反射光に基づく3次元形状データである直接3次元形状データと、2つの間接反射光に基づく各3次元形状データである間接3次元形状データとにそれぞれ分類した後、前記形状データ合成関数FS計算プログラムの実行により計算した形状データ合成関数FSを用いて前記2つの間接3次元形状データを直接3次元形状データの座標系であるカメラ座標系Cによる3次元形状データに座標変換する。これにより、3次元形状撮像装置10から出射され直接ワークWK1,WK2に照射されるレーザ光では測定されないワークWK1,WK2の端部T1,T2の表面形状を表す3次元形状データが、前記2つの間接3次元形状データによって補われるとともに、ワークWK1,WK2における同一部分を表す直接3次元形状データと間接3次元形状データとの平均化処理が行われて一組の3次元形状データ群が生成される。
次に、3次元画像処理装置42は、ステップS206にて、形状データ補正関数FRを計算する。形状データ補正関数FRは、カメラ座標系Cによる3次元形状データをZ座標軸がワークWK1,WK2の上面に垂直な座標系による3次元形状データに変換するための関数である。この形状データ補正関数FRの計算は、図9に示す形状データ補正関数FR計算サブプログラムを実行することにより行われる。
3次元画像処理装置42は、形状データ補正関数FR計算サブプログラムの実行をステップS300にて開始して、ステップS302にて、ワークWK1,WK2の上面を表す平面Pを定義する。この場合、ワークWK1の上面とワークWK2の上面との間には段差があり同一平面上にないため、正確には、ワークWK1の上面またはワークWK2の上面を表す平面Pを定義する。本実施形態においては、ワークWK1の上面を表す平面Pを定義する。この平面Pの定義処理は、次のサブステップ1〜3の処理からなる。
サブステップ1:3次元画像処理装置42は、カメラ座標系Cにおいて3次元形状データ群が存在するX−Y座標平面における所定の範囲内から少なくとも3つの3次元形状データを抽出する。この場合、X−Y座標平面における所定の範囲は、ワークWK1,WK2を測定した際、カメラ座標系CにおいてワークWK1の上面が位置する範囲を予め3次元画像処理装置42に指定したものである。
サブステップ2:3次元画像処理装置42は、前記抽出した少なくとも3つの3次元形状データを前記式1に示す平面の式にそれぞれ代入して、最小二乗法により未知数a,b,cを計算して仮平面P’を定義する。
サブステップ3:3次元画像処理装置42は、前記3次元形状データ群の中から、前記定義した仮平面P’に対して所定の範囲内に属する3次元形状データをすべて抽出し、同抽出した3次元形状データの数が所定数以上であれば、抽出した3次元形状データがワークWK1の上面を表す3次元形状データであるとして、同抽出した3次元形状データを前記式1に示す平面の式に再度代入して、最小二乗法によりa,b,cを計算して平面を定義する。そして、この定義した平面(a,b,cの値)をワークWK1の上面を表す平面Pとして記憶する。一方、前記抽出した3次元形状データの数が所定数未満である場合には、最初に抽出した3次元形状データはワークWK1の上面を表す3次元形状データでないとして、最初に抽出した3次元形状データとは別の3次元形状データを前記式1に示す平面の式に再度代入して、最小二乗法により平面を定義する。そして、この定義した平面を新たな仮平面P’として、平面Pが定義されるまでこのサブステップ3の処理を繰り返し実行する。
次に、3次元画像処理装置42は、ステップS304にて、前記定義した平面P上に3つのベクトルA,B,Cを定義し、これらのベクトルのカメラ座標系Cによる成分AC,BC,CCを計算する。具体的には、3次元画像処理装置42は、平面Pを表す前記式1におけるa,b,cをベクトル成分とするベクトル、すなわち、平面Pの法線ベクトルで向きがカメラ座標系Cの原点から平面Pに向かうベクトルの単位ベクトルをベクトルCCとして計算する。また、3次元形状データ群における各3次元形状データをカメラ座標系Cの同一(所定の範囲を含む)のY座標値ごとに分類し、同分類した3次元形状データを前記式2に示す直線の式に代入して、最小二乗法により未知数a’,b’,c’を計算するとともに、同計算したa’,b’,c’の各平均値をベクトル成分とするベクトルの単位ベクトルをベクトルACとして計算する。すなわち、ベクトルAは、カメラ座標系CのX軸と平行、換言すれば、3次元形状撮像装置10から出射されるレーザ光のX軸方向の走査方向と平行なベクトルである。そして、3次元画像処理装置42は、ベクトルACとベクトルCCとの外積によるベクトルをベクトルBCとして計算する。
次に、3次元画像処理装置42は、ステップS306にて、形状データ補正関数F
Rを計算する。この形状データ補正関数F
Rは、前記ステップS304にてそれぞれ定義し計算された3つのベクトルA,B,Cのカメラ座標系CによるベクトルA
C,B
C,C
Cと、同3つのベクトルA,B,CのZ座標軸がワークWK1,WK2の上面に垂直な座標系でのベクトル成分A
P,B
P,C
Pを用いて計算される。この場合、ベクトル成分A
P,B
P,C
Pは(1,0,0),(0,1,0),(0,0,1)であり、ベクトル成分A
C,B
C,C
Cは下記式10に示す値となる。
3次元画像処理装置42は、前記ベクトル成分AC,BC,CCを前記式5〜7における(α1,β1,γ1),(α2,β2,γ2),(α3,β3,γ3)とし、前記ベクトル成分AP,BP,CPを同式5〜7における(α’1,β’1,γ’1),(α’2,β’2,γ’2),(α’3,β’3,γ’3)として、カメラ座標系Cによる3次元形状データをZ座標軸がワークWK1,WK2の上面に垂直な座標系による3次元形状データに変換するための形状データ補正関数FRを計算する。次に、3次元画像処理装置42は、ステップS308にて、前記計算した形状データ補正関数FRを記憶する。そして、ステップS310にて、この形状データ補正関数FR計算サブプログラムの実行を終了して、ワーク測定プログラムにおけるステップS208に戻る。
次に、3次元画像処理装置42は、ステップS208にて、前記形状データ補正関数FR計算サブプログラムの実行により計算された形状データ補正関数FRを用いて、カメラ座標系Cによる3次元形状データをZ座標軸がワークWK1,WK2の上面に垂直な座標系による3次元形状データに座標変換する。なお、カメラ座標系CのZ軸がワークWK1,WK2の上面に対して直交するように3次元形状撮像装置10をワークWK1,WK2上に配置すれば、前記ステップS206およびこのステップS208に示す処理は不要である。
次に、3次元画像処理装置42は、ステップS210にて、ワークWK1の端部T1とワークWK2の端部T2との間の隙間Cを計算する。この隙間Cの計算処理は、次のサブステップ1〜3の処理からなる。
サブステップ1:3次元形状データ群における各3次元形状データを同一(所定の範囲を含む)のY座標値ごとに分類し、同分類した各3次元形状データの中からZ座標値が最も大きい3次元形状データを所定の数だけ抽出する。ここで、Z座標値が最も大きい3次元形状データを抽出するのは、ワークWK1,WK2の端部T1,T2を表す3次元形状データにおけるZ座標値がワークWK1,WK2の上面を表す3次元形状データにおけるZ座標値よりも大きい、換言すれば同端部T1,T2を表す3次元形状データにおけるZ座標値がワークWK1,WK2の上面に対しZ軸を垂直にした座標系の座標原点から最も遠い位置に存在するからである。これにより、図10(A)に示すように、同一(所定の範囲を含む)のY座標値ごとに、ワークWK1,WK2の端部T1,T2(図中破線で示した円A,B内の部分)を表す3次元形状データが抽出される。図10(A)は、Y座標値(所定の範囲を含む)が共通する複数の3次元形状データによって表されたワークWK1,WK2の断面を表している。
サブステップ2:3次元画像処理装置42は、前記サブステップ1にて抽出した3次元形状データの中からX座標値が最も大きな3次元形状データ(図中、XMAX)を抽出し、同抽出した3次元形状データのX座標値と、前記サブステップ1にて抽出した3次元形状データのX座標値との差をそれぞれ計算する。そして、計算した差に応じて前記サブステップ1にて抽出した3次元形状データを2組に分類する。具体的には、前記計算した差の値が所定の範囲内である組と、同差の値が所定の範囲を超える組に分類する。これにより、前記サブステップ1にて抽出した3次元形状データを、ワークWK1の端部T1を表す3次元形状データ(図中破線で示した円A内に含まれる3次元形状データ)と、ワークWK2の端部T2を表す3次元形状データ(図中破線で示した円B内に含まれる3次元形状データ)とに分類することができる。
サブステップ3:前記分類したワークWK1の端部T1を表す3次元形状データにおいてX座標値が最も大きい3次元形状データ(図中、a)のX座標値と、同分類したワークWK2の端部T2を表す3次元形状データにおいてX座標値が最も小さい3次元形状データ(図中、b)のX座標値との差の絶対値(|a−b|)を、ワークWK1の端部T1とワークWK2の端部T2との間の隙間Cとして計算する。この計算は、同一(所定の範囲を含む)のY座標値ごとに実行されるため、複数の隙間Cが求められる。よってこれら複数の隙間Cの平均値を計算して、隙間Caveとする。
次に、3次元画像処理装置42は、ステップS212にて、ワークWK1の上面とワークWK2の上面との段差Lを計算する。この段差Lの計算処理は、次のサブステップ1〜5の処理からなる。
サブステップ1:前記ステップS210におけるサブステップ1と同様にして、3次元形状データ群における3次元形状データを同一(所定の範囲を含む)のY座標値ごとに分類し、同分類した3次元形状データの中からZ座標値が最も大きい3次元形状データを所定の数だけ抽出する。これにより、図10(B)に示すように、同一(所定の範囲を含む)のY座標値ごとに、ワークWK1,WK2の端部T1,T2(図中破線で示した円A,B内の部分)を表す3次元形状データが抽出される。図10(B)は、Y座標値(所定の範囲を含む)が共通する複数の3次元形状データによって表されたワークWK1,WK2の断面を表している。
サブステップ2:前記ステップS210におけるサブステップ2と同様にして、3次元画像処理装置42は、前記サブステップ1にて抽出した3次元形状データの中からX座標値が最も大きな3次元形状データ(図中、XMAX)を抽出し、同抽出した3次元形状データのX座標値と、前記サブステップ1にて抽出した3次元形状データのX座標値との差をそれぞれ計算する。そして、計算した差に応じて前記サブステップ1にて抽出した3次元形状データを2組に分類する。これにより、前記サブステップ1にて抽出した3次元形状データを、ワークWK1の端部T1を表す3次元形状データ(図中破線で示した円A内に含まれる3次元形状データ)と、ワークWK2の端部T2を表す3次元形状データ(図中破線で示した円B内に含まれる3次元形状データ)と分類することができる。
サブステップ3:前記分類したワークWK1の端部T1を表す3次元形状データにおいて、X座標値が最も大きい3次元形状データ(図中、a)のX座標値より所定の範囲内で小さいX座標値を有する3次元形状データ(図中破線で示した円C内に含まれる3次元形状データ)を抽出するとともに、同分類したワークWK2の端部T2を表す3次元形状データにおいてX座標値が最も小さい3次元形状データ(図中、b)のX座標値より所定の範囲内で大きいX座標値を有する3次元形状データ(図中破線で示した円D内に含まれる3次元形状データ)を抽出する。これにより、ワークWK1,WK2の各端部T1,T2から所定の範囲のワークWK1,WK2の表面(各端部T1,T2および各上面)を表す3次元形状データが抽出される。
サブステップ4:前記サブステップ3にて抽出した2組の3次元形状データ群において、それぞれZ座標値の度数分布を計算し、同計算した度数分布における最大度数のZ座標値の3次元形状データ、および同最大度数のZ座標値に対して所定の範囲内に属するZ座標値の3次元形状データをそれぞれ抽出する。これにより、図10(B)に示すように、ワークWK1,WK2の各端部T1,T2付近の各上面を表す3次元形状データ(図中破線で示した円c、d内に含まれる3次元形状データ)が抽出される。
サブステップ5:前記抽出したワークWK1の上面を表す3次元形状データ(図中破線で示した円c内に含まれる3次元形状データ)のZ座標値の平均値Z1AVと、前記抽出したワークWK2の上面を表す3次元形状データ(図中破線で示した円d内に含まれる3次元形状データ)のZ座標値の平均値Z2AVとの差の絶対値(|Z1AV−Z2AV|)を、ワークWK1の上面とワークWK2の上面との段差Lとして計算する。この計算は、同一(所定の範囲を含む)のY座標値ごとに実施されるため、複数の段差Lが求められる。よって、これら複数の段差Lの平均値を計算して段差Laveとする。
次に、3次元画像処理42は、ステップS214にて、前記ステップS204にて合成された3次元形状データ群を用いてワークWK1,WK2の3次元形状を表示装置44に表示させた後、ステップS216にて、前記計算したワークWK1の端部T1とワークWK2の端部T2との間の隙間Cave、およびワークWK1の上面とワークWK2の上面との段差Laveを表示装置44にそれぞれ表示させる。そして、3次元画像処理装置42は、ステップS218にて、ワーク測定プログラムの実行を終了する。このワークWK1,WK2の3次元形状の表示においては、作業者は入力装置43を操作することによりワークWKの表示方向を指示することができ、コントローラ41および3次元画像処理装置42は表示装置44にて表示されるワークWK1,WK2の表示方向を変更する。これにより、任意の方向から見たワークWK1,WK2の各端部T1,T2の立体形状を表示させることができる。
また、新たなワークWK1,WK2上に3次元形状測定装置を配置して、前述のようにワークWK1,WK2の測定を指示して3次元形状撮像装置10による測定を行えば、前記ワーク測定プログラムの実行によりワークWK1の端部T1とワークWK2の端部T2との間の隙間Cave、およびワークWK1の上面とワークWK2の上面との段差Laveを計算させることができる。すなわち、ワークWK1,WK2の測定に先立って形状データ合成関数FSを一度だけ計算しておけば、ワークWK1,WK2を次々に換えてワークWK1の端部T1とワークWK2の端部T2との間の隙間Cave、およびワークWK1の上面とワークWK2の上面との段差Laveを計算させることができる。
上記作動説明からも理解できるように、上記実施形態によれば、3次元形状撮像装置10から出射されたレーザ光を反射ミラー31,32によって反射させることにより、3次元形状撮像装置10から出射され直接ワークWK1,WK2を照射するレーザ光とは異なる方向からワークWK1,WK2にレーザ光を照射している。そして、同異なる方向から照射されたレーザ光によるワークWK1,WK2からの間接反射光を再び反射ミラー31,32によって反射させることにより3次元形状撮像装置10に導いている。すなわち、ワークWK1,WK2に対して互いに異なる方向からレーザ光を照射してワークWK1,WK2の測定を行っている。これにより、3次元形状撮像装置10から直接ワークWK1,WK2を照射するレーザ光の光軸が同ワークWK1,WK2の照射面に対して平行に近い場合であっても、同レーザ光とは異なる方向から導かれるレーザ光によってワークWK1,WK2からの間接反射光を3次元形状撮像装置10に導くことができる。この結果、3次元形状撮像装置10から出射されワークWK1,WK2に照射されるレーザ光の光軸に対して平行に近いワークWK1,WK2の表面、具体的には端部T1,T2の3次元形状も精度良く測定することができる。
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記実施形態においては、3次元形状撮像装置10の測定対象空間内におけるX−Y座標平面のすべての範囲をレーザ光で走査することによりワークWK1,WK2の3次元形状を測定して、ワークWK1の端部T1とワークWK2の端部T2との間の隙間Cave、およびワークWK1の上面とワークWK2の上面との段差Laveを計算するように構成した。しかし、3次元形状撮像装置10の測定対象空間内におけるX−Y座標平面の1つのX軸方向にだけレーザ光を走査、すなわちレーザ光をX軸方向に1回だけ走査することにより前記隙間Cおよび段差Lを計算することもできる。この場合、3次元形状撮像装置10から反射ミラー31,32に向けて出射されるレーザ光と、反射ミラー31,32によって反射されワークWK1,WK2に導かれるレーザ光とが同一平面内に含まれるように反射ミラー31,32の向きを調整、具体的には、3次元形状撮像装置10から出射されるレーザ光が含まれる平面が反射ミラー31,32の反射面に直交するように反射ミラー31,32の向きを調整しておく必要がある。これは、3次元形状撮像装置10から出射されたレーザ光が直接ワークWK1,WK2に照射される位置と、同レーザ光が反射ミラー31,32を介してワークWK1,WK2に照射される位置とを一致させるためである。
この反射ミラー31,32の向きを調整する方法の一例を説明しておく。平板治具JG2の上面に1つの三角形を形成しておく。この三角形の内側と同三角形の外側とは、互いに異なる反射率に形成する。そして、3次元形状撮像装置10は、前記三角形を横断するように平板治具JG2の上面を1回だけ走査する。3次元画像処理装置42は、直接3次元形状データおよび間接3次元形状データにおいて、Z座標値が大きく変化する3次元形状データ(反射光量が大きく変化する位置)を用いて、前記三角形におけるレーザ光が横断した部分の幅をそれぞれ計算する。この直接3次元形状データによって計算される三角形の幅と、間接3次元形状データによって計算される三角形の幅とが等しくなるように反射ミラー31,32の向きを調整すれば、3次元形状撮像装置10から反射ミラー31,32に向けて出射されるレーザ光と、反射ミラー31,32によって反射されワークWK1,WK2に導かれるレーザ光とが同一平面内に含まれるようになる。
なお、このようにレーザ光をX軸方向に1回だけ走査する場合においては、カメラ座標系CにおけるY座標を考慮する必要がないため、ワークWK1,WK2はX座標値およびZ座標値からなる2次元形状データによって表される。したがって、上記実施形態における形状データ合成関数FSおよび形状データ補正関数FRも2次元座標系に対応した関数となる。また、この場合、形状データ合成関数FSを計算する際、平板治具JG2の上面と溝部Mの端部T3または端部T4との交線と3次元形状撮像装置10から出射されるレーザ光が含まれる平面との交点を前記定点TD,TI1,TI2とすることができるため、定点設定治具JG3を用いなくても、すなわち、平板治具JG2のみを用いて形状データ合成関数FSを計算することができる。これによっても、本実施形態と同様の効果が期待できる。
また、上記実施形態においては、形状データ合成関数FSを計算するために、平板治具JG2および定点設定治具JG3を用いたが、3次元形状撮像装置10の測定対象空間内において3つのベクトルと1つの定点とが定義できれば、これに限定されるものでない。例えば、平板治具JG1の上面に互いに判別可能(例えば、直径や反射率を異ならせる)な2つの円を形成する。これらの各円の内側と同各円の外側とは、互いに異なる反射率に形成する。そして、上記実施形態と同様にして、平板治具JG1の上面(平面P)の法線ベクトルの単位ベクトルを前記ベクトルAD,AI1,AI2とする。また、前記2つの円の各中心座標を通るベクトルの単位ベクトルを前記ベクトルBD,BI1,BI2とするとともに、前記ベクトルAD,AI1,AI2とベクトルBD,BI1,BI2の各外積によるベクトルをベクトルCD,CI1,CI2とすれば、前記と同様にして形状データ合成関数FSの回転成分MFSを計算することができる。また、前記2つの円のどちらか一方の円の中心座標を前記定点TD,TI1,TI2とすれば、前記と同様にして形状データ合成関数FSの原点ずれ成分GFSを計算することができる。また、別の方法として、3次元形状撮像装置10の測定対象空間内に少なくとも3つの定点を定義できる物体(例えば球体)を配置して、同物体により定義される少なくとも3つの定点を用いて3つのベクトルと1つの定点とを定義して形状データ合成関数FSを計算することもできる。これによっても、本実施形態と同様の効果が期待できる。
なお、形状データ合成関数FSは、前記したようにカメラ座標系Cにおける反射ミラー31,32の位置および向きに応じて計算される関数であるため、カメラ座標系Cにおける反射ミラー31,32の位置および向きが特定できれば、必ずしも上記したような各種物体を用いる必要はない。例えば、カメラ座標系Cにおける反射ミラー31,32の位置および向きを検出するためのセンサを反射ミラー31,32にそれぞれ備え、同センサによって検出された反射ミラー31,32の位置および向きを用いて形状データ合成関数FSを計算することもできる。これによっても、本実施形態と同様の効果が期待できる。
また、上記実施形態においては、ワークWK1の端部T1とワークWK2の端部T2との間の隙間C、およびワークWK1の上面とワークWK2の上面との段差Lとともに、ワークWK1,WK2の端部T1,T2の3次元形状を表示するように構成した。しかし、本実施形態においては、前記隙間Cおよび段差Lを表示すれば、必ずしもワークWK1,WK2の端部T1,T2の3次元形状を表示する必要はない。
また、上記実施形態においては、ワークWK1の端部T1とワークWK2の端部T2との間の隙間C、およびワークWK1の上面とワークWK2の上面との段差Lを測定するようにしたが、当然どちらか一方の測定であってもよい。また、これらの隙間Cおよび段差Lに代えて測定対象物体上に設けられた孔部の直径を測定するものであってもよい。この場合、孔部の測定対象物の表面における開口部に3次元形状撮像装置10から出射されたレーザ光を漏れなく照射するように反射ミラーを適宜配置する。また、ワークWK1の上面とワークWK2の上面との段差Lのみを測定する場合には、ワークWK1とワークWK2との間の段部にレーザ光が照射されるように反射ミラーを1つ設ければ、段差Lを測定することができる。すなわち、反射ミラーは、測定する対象にレーザ光を導くように配置する位置および配置する数を適宜設定して用いればよい。これによっても、本実施形態と同様の効果が期待できる。
また、上記実施形態においては、反射ミラー31,32によってワークWK1,WK2の導かれるレーザ光の光軸が、ワークWK1,WK2の端部T1,T2に略直交するように反射ミラー31,32の位置および向きを調整した。しかし、3次元形状撮像装置10によって同端部T1,T2の3次元形状を測定できれば必ずしも同レーザ光の光軸が端部T1,T2に略直交するように反射ミラー31,32の位置および向きを調整する必要はない。すなわち、端部T1,T2に略直交するようにレーザ光を照射したのは、3次元形状撮像装置10により多くの間接反射光を入射させるためである。したがって、3次元形状撮像装置10が間接反射光を受光できる範囲で、反射ミラー31,32の位置および向きを調整すればよい。
また、上記実施形態においては、反射ミラー31,32を支持する支持具20にジョイント23,25,26を設けて、3次元形状撮像装置10に対する反射ミラー31,32の位置および向きを調整可能に構成した。しかし、測定対象物における測定位置が特定の位置に決まっている場合など、反射ミラー31,32の位置および向きを変化させる必要がない場合には、ジョイント23,25,26による反射ミラー31,32の位置および向きを調整する機構は不要である。これによっても、本実施形態と同様の効果が期待できる。
また、上記実施形態においては、ワークWK1の端部T1とワークWK2の端部T2との間の隙間C、およびワークWK1の上面とワークWK2の上面との段差Lを測定する3次元形状測定装置(例えば、自動車の板金精度を検査するプロファイルスキャナ)に本発明を適用したが、これに限定されるものではない。例えば、ワークWK1の端部T1とワークWK2の端部T2の3次元形状を測定して、同端部T1,T2の3次元形状を表示させる3次元形状測定装置すべてに本発明を適用することができる。なお、この場合、3次元形状撮像装置10から出射されワークWK1,Wk2に照射されるレーザ光のワークWK1,WK2上における走査範囲と、3次元形状撮像装置10から出射され反射ミラー31,32を介してワークWK1,WK2に照射されるレーザ光のワークWK1,WK2上における走査範囲とが重なるように反射ミラー31,32を設ける。これにより、3次元形状撮像装置10の測定対象空間内に配置されたワークWK1,WK2の3次元形状を漏れなく表示装置44に表示させることができる。
WK1,WK2…ワーク、T1,T2…端部、JG1,JG2…平板治具、JG3…定点設定治具、10…3次元形状撮像装置、20…支持具、21…ベース、22…支柱、23,25,26…ジョイント、24…第1アーム、27,28…第2アーム、31,32…反射ミラー、33,34…シート