以下、本発明の一実施形態について図面を用いて説明する。図1は、本発明の一実施形態に係る3次元形状測定装置の全体概略図である。この3次元形状測定装置は、3次元カメラ100、データ処理装置200及びコントローラ300を備えている。3次元カメラ100は、測定対象物OBの表面の3次元形状を測定して、測定した3次元形状を表す3次元画像データを算出するためのデータを出力する。3次元カメラ100は、例えばスタンドSDに固定されていて、測定対象物OBに向けられている。データ処理装置200は、3次元カメラ100によって出力された3次元画像データを算出するためのデータを処理して、測定対象物OBの表面の3次元形状を表す3次元画像データを作成し、表示装置202に測定対象物OBの表面の3次元形状を表示させる。コントローラ300は、後述するプログラムの実行により3次元カメラ100及びデータ処理装置200を制御する。このコントローラ300には、キーボード、マウス等からなって作業者が操作するための入力装置302が接続されている。
3次元カメラ100は、図2に示すように、波長の異なるレーザ光を出射するレーザ光源10,20を備えている。レーザ光源10は、波長650nm近傍の赤色のレーザ光をコリメートレンズ12に向けて出射する。レーザ光源20は、波長550nm近傍の緑色のレーザ光をコリメートレンズ22に向けて出射する。コリメートレンズ12,22は、測定対象物OBの表面に小さな照射スポットを形成するために、レーザ光源10,20から出射されたレーザ光を小さな断面径の平行光に変換する。レーザ光源10,20から測定対象物OBまでのレーザ光の光路には、ダイクロイックミラー30及び走査光学系40が設けられている。ダイクロイックミラー30は、赤色のレーザ光を透過し、緑色のレーザ光を反射する。したがって、ダイクロイックミラー30は、レーザ光源10からコリメートレンズ12を介した赤色のレーザ光を透過して走査光学系40に導く。ダイクロイックミラー30は、レーザ光源20からコリメートレンズ22を介した緑色のレーザ光を反射して走査光学系40に導く。なお、これらの透過及び反射して走査光学系40に導かれる赤色及び緑色のレーザ光の光軸は同じになるように、レーザ光源10,20及びコリメートレンズ12,22が配置されている。また、レーザ光源10から測定対象物OBに形成される小さな照射スポットまでの距離と、レーザ光源20から測定対象物OBに形成される小さな照射スポットまでの距離とは等しい。
走査光学系40は、X方向モータ42及びY方向モータ44を有し、コントローラ300によって制御されて、レーザ光源10,20による照射スポットで測定対象物OBの表面をX軸方向及びY軸方向の2次元に走査させる。具体的には、走査光学系40は、レーザ光を反射する複数のミラーを有し、複数のミラーのうちのいずれかをX方向モータ42によってY軸周りに回動させ、レーザ光源10,20による照射スポットを測定対象物OBの表面にてX軸方向に移動させて、照射スポットからの反射光を受光するようにしている。また、走査光学系40は、レーザ光源10,20、コリメートレンズ12,22、ダイクロイックミラー30及び前記複数のミラーに加えて、反射光を受光するための後述する集光レンズ32、ダイクロイックミラー34、受光センサ14,24及びフォトディテクタ16,26などの光学部品を組み付けたケーシングを有し、前記ケーシングをY方向モータ42によってX軸周りに回動させ、レーザ光源10,20による照射スポットを測定対象物OBの表面にてY軸方向に移動させて、照射スポットからの反射光(散乱光の一部)を受光するようにしている。なお、走査光学系40は、レーザ光源10,20による照射スポットで測定対象物OBの表面をX軸方向及びY軸方向の2次元に走査できるとともに、照射スポットからの反射光を受光できれば、前記具体例に限定されるものではない。また、以降の説明においては、前記X軸方向及びY軸方向の走査のために、走査光学系40内にてX方向モータ42によって回転駆動される部材をX方向回転部材と言い、走査光学系40内にてY方向モータ44によって回転駆動される部材をY方向回転部材と言う。そして、これらのX方向回転部材及びY方向回転部材は、共に限界位置に挟まれた範囲内で回転する。
X方向モータ42内には、同モータ42の回転を検出して、その回転を表す回転信号を出力するエンコーダが組み込まれている。この回転信号は、X方向モータ42が所定の微少角度だけ回転するたびにハイレベルとローレベルとを交互に切替えるパルス列信号であって、回転方向を識別するために互いにπ/2だけ位相のずれたA相信号とB相信号とで構成される。回転信号は、X方向角度検出回路102及びX方向モータ駆動回路104に出力される。X方向角度検出回路102は、前記回転信号のパルス数をX方向モータ42の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値からX方向モータ42によるY軸周りすなわちX軸方向における測定対象物OBに対するレーザ光のX方向照射角度θxを検出し、X方向照射角度θxをデータ処理装置200及びコントローラ300に出力する。
X方向角度検出回路102におけるカウント値の初期設定は、電源投入時にコントローラ300の指示によって行われる。すなわち、コントローラ300は、電源投入時に、X方向モータ駆動回路104に走査光学系40のX方向回転部材の初期位置に対応したX方向限界位置への回動、及びX方向角度検出回路102に初期設定を指示する。この指示により、X方向モータ駆動回路104は、X方向モータ42を駆動してX方向回転部材を初期位置に対応したX方向限界位置まで回転させる。X方向角度検出回路102は、X方向回転部材の回動中、X方向モータ42内のエンコーダからの回転信号を入力し続けている。そして、X方向回転部材が前記X方向限界位置まで達してX方向モータ42の回転が停止すると、X方向角度検出回路102は前記エンコーダからの回転信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、X方向角度検出回路102は、X方向モータ駆動回路104に出力停止のための信号を出力し、これにより、X方向モータ駆動回路104はX方向モータ42への駆動信号の出力を停止する。その後に、X方向モータ42が駆動された際には、X方向角度検出回路102は、回転信号のパルス数をX方向モータ42の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値に基づいてレーザ光のX方向照射角度θxを計算し、X方向照射角度θxをデータ処理装置200及びコントローラ300に出力し続ける。
なお、前述したX方向角度検出回路102による前記エンコーダからの回転信号の入力停止の検出及びX方向モータ駆動回路104に対するX方向モータ42の作動停止は、初期設定時ばかりでなく、X方向回転部材を前記初期位置及び前記初期位置と反対側のX方向限界位置まで回転したときに発揮されるX方向角度検出回路102及びX方向モータ駆動回路104の機能である。また、X方向角度検出回路102による前記エンコーダからの回転信号の入力停止の検出を表わす信号(以下、X方向限界位置信号という)は、コントローラ300にも供給される。
X方向モータ駆動回路104は、コントローラ300の指示により、X方向モータ42の駆動及び停止を制御する。このX方向モータ42の駆動制御においては、X方向モータ駆動回路104は、X方向モータ42内のエンコーダの出力する回転信号からX方向回転部材のX方向の回転速度を計算して、計算された回転速度がコントローラ300によって指定されている回転速度と等しくなるようにX方向モータ42の回転を制御する。
同様に、Y方向モータ44内にも、同モータ44の回転を検出して、その回転を表す回転信号を出力するエンコーダが組み込まれている。この回転信号も、X方向モータ42内のエンコーダと同様に、Y方向モータ44が所定の微少角度だけ回転するたびにハイレベルとローレベルとを交互に切替えるパルス列信号であって、互いにπ/2だけ位相のずれたA相信号とB相信号とで構成される。この回転信号は、Y方向角度検出回路106及びY方向モータ駆動回路108に出力される。Y方向角度検出回路106は、Y方向モータ44内のエンコーダからの回転信号のパルス数をY方向モータ44の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値からY方向モータ44によるX軸周りすなわちY軸方向における測定対象物OBに対するレーザ光のY方向照射角度θyを検出し、Y方向照射角度θyをデータ処理装置200及びコントローラ300に出力する。
Y方向角度検出回路106におけるカウント値の初期設定は、X方向角度検出回路102の場合と同様に、電源投入時にコントローラ300の指示によって行われる。すなわち、コントローラ300からの初期設定が指示されると、Y方向モータ駆動回路108がY方向モータ44を駆動してY方向回転部材を初期値位置に対応したY方向限界位置まで回転させる。そして、Y方向角度検出回路106は、Y方向回転部材が前記Y方向限界位置まで達してY方向モータ44の回転が停止すると、Y方向角度検出回路106は前記エンコーダからの回転信号の入力停止を検出して、カウント値を「0」にリセットする。このとき、Y方向角度検出回路106は、Y方向モータ駆動回路108に出力停止信号を出力する。その後、Y方向角度検出回路106は、回転信号のパルス数をY方向モータ44の回転方向に応じてカウントアップ又はカウントダウンし、そのカウント値に基づいてレーザ光のY方向照射角度θyを計算し、Y方向照射角度θyをデータ処理装置200及びコントローラ300に出力し続ける。
なお、前述したY方向角度検出回路106による前記エンコーダからの回転信号の入力停止の検出及びY方向モータ駆動回路108に対するY方向モータ44の作動停止も、初期設定時ばかりでなく、Y方向回転部材を前記初期位置及び前記初期位置とは反対側のY方向限界位置まで回転したときに発揮されるY方向角度検出回路106及びY方向モータ駆動回路108の機能である。また、Y方向角度検出回路106による前記エンコーダからの回転信号の入力停止の検出を表わす信号(以下、Y方向限界位置信号という)は、コントローラ300にも供給される。
Y方向モータ駆動回路108は、コントローラ300の指示により、Y方向モータ44の駆動及び停止を制御する。このY方向モータ44の駆動制御においては、Y方向モータ駆動回路108は、Y方向モータ44内のエンコーダの出力する回転信号からY方向回転部材のY方向の回転速度を計算して、計算された回転速度がコントローラ300によって指定されている回転速度と等しくなるようにY方向モータ44の回転を制御する。
走査光学系40から出射される照射スポットからの反射光(散乱光の一部)は、集光レンズ32及びダイクロイックミラー34を介して、受光センサ14,24にて受光される。集光レンズ32は、レーザ光源10,20による赤色及び緑色のレーザ光の照射スポットからの両反射光を、ダイクロイックミラー34を介して受光センサ14,24上にそれぞれ集光する。ダイクロイックミラー34も、前記ダイクロイックミラー30と同様に赤色のレーザ光を透過し、緑色のレーザ光を反射する。したがって、レーザ光源10による赤色のレーザ光の照射スポットからの反射光は、ダイクロイックミラー34を透過して受光センサ14上に集光する。レーザ光源20による緑色のレーザ光の照射スポットからの反射光は、ダイクロイックミラーで反射して受光センサ24上に集光する。
受光センサ14,24は、複数の受光素子を一列に長尺状に配置したCCD又はCMOSからなるラインセンサであり、レーザ光源10,20から走査光学系40を介した測定対象物OBの照射スポットまでの距離を、複数の受光素子のうちで測定対象物OBからの反射光を受光した受光素子の位置により検出するものである。これらの受光センサ14,24は、各受光素子の受光光量に相当する大きさの信号を、それぞれ所定の周期で出力する。なお、本実施形態の場合には、受光センサ14,24は、同一の構成すなわち受光素子の数及び長さが同一である。これらの受光センサ14,24は、測定対象物OBからの反射光のうちの10パーセント程度を反射する。これらの反射光は、フォトディテクタ16,26によって受光される。フォトディテクタ16,26は、それぞれ受光センサ14,24からの反射光の受光光量に相当する大きさの信号をそれぞれ出力する。
ダイクロイックミラー34、受光センサ14,24及びフォトディテクタ16,26は、図3の概略斜視図に示されるように配置されている。図4(a)は図3の矢印A方向から見た正面図であり、図4(b)は図3の矢印B方向から見た側面図である。そして、これらのダイクロイックミラー34、受光センサ14,24及びフォトディテクタ16,26は、次のように配置されている。ダイクロイックミラー34の縦方向(図3,4の上下方向に対応)の中央から若干上方の位置から下部までに入射した赤色のレーザ光は、ダイクロイックミラー34を透過して受光センサ14に入射する。ダイクロイックミラー34の縦方向の中央から若干下方の位置から上部までに入射した緑色のレーザ光が、ダイクロイックミラー34で反射して受光センサ24に入射する。このように、測定対象物OBの表面から反射された一部の反射光は、受光センサ14,24の両方によって受光されるようになっている。具体的には、レーザ光源10,20から測定対象物OBの表面までの測定可能な距離のうちで、中央近傍の距離に対応した測定対象物OBの表面位置からの反射光は受光センサ14,24の両方によって受光される。
この点について、さらに説明する。ダイクロイックミラー34の縦方向に延びた中心線回りに受光センサ24を回転させて受光センサ14と並べて、受光センサ14に対する光軸方向から見ると、図5に示すように、受光センサ14の上部に位置する一部の受光素子と、受光センサ24の下部に位置する一部の受光素子とは図示縦方向において重なっている。これにより、レーザ光源10,20から測定対象物OBの表面までの測定可能な距離のうち、中央付近に位置する距離に位置する光スポットからの反射光は、両受光センサ10,20によって受光される。そして、両受光センサ10,20の重なった領域で受光され、これらの受光に基づいて計算される2つの距離は等しくなるように設定されている。また、本実施形態では、前記重なった部分を除き、レーザ光源10及び受光センサ14によって検出される距離は、レーザ光源20及び受光センサ24によって検出される距離よりも短い。したがって、以降、レーザ光源10及び受光センサ14を近距離用として表現し、レーザ光源20及び受光センサ24を遠距離用として表現することにする。
3次元カメラ100は、レーザ駆動回路112,114、増幅回路116,118、及びレーザ光量補正回路120,122も備えている。レーザ駆動回路112,114は、それぞれレーザ光源10,20に電力を供給してレーザ光源10,20を駆動する。増幅回路116,118は、それぞれフォトディテクタ16,26からの受光光量に相当する信号を所定の増幅率で増幅して出力する。レーザ光量補正回路120,122は、コントローラ300から供給される基準反射光量に相当する強度信号を記憶しておいて、増幅回路116,118から供給される信号を用いて、レーザ光源10,20から出射されるレーザ光の光量によって前記基準反射光量が得られるように、レーザ駆動回路112,114をフィードバック制御する。なお、フォトディテクタ16,26が反射光を受光しておらず、フォトディテクタ16,26及び増幅回路116,118から受光量を表す信号がレーザ光量補正回路120,122に供給されていない状態では、レーザ光量補正回路120,122は予め定められた制御値を用いてレーザ駆動回路112,114を固定的に制御する。
増幅回路116,118には、受光量判定回路124,126が接続されている。受光量判定回路124,126は、増幅回路116,118の出力信号と予め決められた所定値とを比較し、フォトディテクタ16,26による反射光の受光量が予め決められた閾値よりも小さくなると検出信号を出力する。なお、この閾値は、フォトディテクタ16,26による反射光の受光量がほとんどないことを表す値である。
また、受光センサ14,24には、それぞれセンサ信号取出し回路128,130が接続されている。センサ信号取出し回路128,130は、コントローラ300によって制御されて、受光センサ14,24から各画素の受光光量に相当する強度の信号を周期的に取出し、画素ごとに信号強度に相当する値のディジタルデータに変換して画素データとして出力する。前記各画素の取出し周期は、各画素の露光時間に相当するもので、入力装置302からコントローラ300を介してセンサ取出し回路128,130に供給されて設定される。このセンサ信号取出し回路128,130から出力される画素データは、データ処理装置200及び切替え点検出回路132,134に供給される。
切替え点検出回路132,134は、入力したディジタルデータから、それらの入力順に基づいて、受光センサ14,24の図5のL1,L2位置の受光素子によって検出された受光量に対応したディジタルデータを抽出する。そして、抽出したディジタルデータ値が予め決めた閾値よりも大きいか否かを判定して、大きければ切替え点検出信号をコントローラ300に出力する。なお、前記L1,L2位置は、受光センサ14,24の受光素子が重なっている部分における、各受光センサ14,24の予め決めた端部近傍の位置である。また、前記予め決めた閾値は、各受光素子が受光する比較的大きな受光量である。
レーザ駆動回路112,114、レーザ光量補正回路120,122、受光量判定回路124,126及び切替え点検出回路132,134は、コントローラ300に接続された切替え回路136によって制御されるようになっている。切替え回路136は、コントローラ300から「0」を表す指令を入力すると、レーザ駆動回路112,114、レーザ光量補正回路120,122、受光量判定回路124,126及び切替え点検出回路132,134の作動を停止させる。切替え回路136は、コントローラ300から「1」を表す指令を入力すると、レーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を開始させ、かつレーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を停止させる。切替え回路136は、コントローラ300から「2」を表す指令を入力すると、レーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を開始させ、かつレーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を停止させる。
データ処理装置200は、CPU,ROM,RAM、ハードディスクなどからなるコンピュータ装置によって構成され、図示しないプログラムの実行により、後述するデータ演算処理及び3次元画像生成処理を実行する。以下、これらのデータ演算処理及び3次元画像生成処理の各機能をデータ演算部210及び3次元画像生成部212が実行するものとして説明する。データ演算部210は、コントローラ300から入力の指示があると、センサ信号取出し回路128,130のいずれか一方から画素データをメモリ(RAM、ハードディスクなど)210aに記憶し、受光光量を受光センサの画素が並んだ方向に見たときの光量波形曲線を作成し、ピーク点を検出して、受光位置を求める。そして、データ演算部210は、3角測量法の原理に基づいて、前記受光位置をZ方向距離に換算した距離Lを順次出力する。なお、センサ信号取出し回路128,130のいずれかからの画素データを入力するかは、コントローラ300によって入力指示と同時に指示される。
3次元画像生成部212は、コントローラ300から入力の指示があると、X方向角度検出回路102及びY方向角度検出回路106によってそれぞれ出力されるX方向照射角度θx及びY方向照射角度θyを入力して、X方向角度データθx(n)及びY方向角度データθy(n)としてメモリ(RAM、ハードディスクなど)212aに記憶する。このコントローラ300からの入力指示は、前記コントローラ300からデータ演算部210への入力指示と同期している。そして、3次元画像生成部212は、データ演算部210によって出力されるZ方向距離Lも入力して、Z方向距離データL(n)としてメモリ212aに記憶する。その後、3次元画像生成部212は、3角測量法の原理に基づいて、X方向角度データθx(n)、Y方向角度データθy(n)及びZ方向距離データL(n)から座標データ(xn,yn,zn)を算出する。全てのX方向角度データθx(n)、Y方向角度データθy(n)及びZ方向距離データL(n)から座標データ(xn,yn,zn)が算出されると、この座標データ群から測定対象物OBの3次元形状を表示装置202に表示するための画像データを作成し、作成が完了すると測定対象物OBの3次元形状を表示装置202に表示する。
コントローラ300も、CPU,ROM,RAM、ハードディスクなどからなるコンピュータ装置によって構成され、図6A及び図6Bのプログラムの実行により、測定対象物OBの3次元形状の測定を制御する。
次に、上記のように構成した3次元形状測定装置を用いて測定対象物OBの表面の3次元形状を測定する動作について説明する。まず、作業者は、3次元カメラ100を測定対象物OBの表面に向け、図示しない電源を投入する。この電源の投入により、コントローラ300による初期設定処理によるX方向角度検出回路102、X方向モータ駆動回路104、Y方向角度検出回路106及びY方向モータ駆動回路108の作動により、X方向照射角度θx及びY方向照射角度θyがそれぞれ「0」に初期設定される。次に、作業者は、入力装置302を操作することにより、コントローラ300に測定開始を指示する。
コントローラ300は、図6AのステップS100にてプログラムの実行を開始し、ステップS102にて変数nを「0」に設定する。この変数nは、測定対象物OBの表面に形成した光スポットに関するX方向角度データθx(n)、Y方向角度データθy(n)及びZ方向距離データL(n)の取得数に対応した正の整数である。前記ステップS102の処理後、コントローラ300は、ステップS104にて、走査光学系40内のX方向回転部材及びY方向回転部材を初期位置(限界位置)まで回転させるために、X方向モータ42及びY方向モータ44の駆動開始をX方向モータ駆動回路104及びY方向モータ駆動回路108に指示する。X方向モータ駆動回路104及びY方向モータ駆動回路108は、走査光学系40内のX方向回転部材及びY方向回転部材が初期位置に向かって回転するように、X方向モータ42及びY方向モータ44をそれぞれ駆動制御する。これにより、X方向モータ42及びY方向モータ44が回転して、走査光学系40内のX方向回転部材及びY方向回転部材が初期位置に向かって回転し始める。
前記ステップS104の処理後、コントローラ300は、ステップS106にて、X方向角度検出回路102及びY方向角度検出回路106からのX方向限界位置信号及びY方向限界位置信号の入力をそれぞれ待つ。走査光学系40内のX方向回転部材及びY方向回転部材が初期位置に向かって回転している状態では、コントローラ300は、ステップS106にて「No」と判定し続ける。一方、走査光学系40内のX方向回転部材及びY方向回転部材が初期位置に達して、X方向角度検出回路102及びY方向角度検出回路106からコントローラ300にX方向限界位置信号及びY方向限界位置信号が入力されると、コントローラ300は、ステップS106にて「Yes」と判定してステップS108に進む。なお、走査光学系40内のX方向回転部材及びY方向回転部材が初期位置にそれぞれ達した状態では、前記X方向限界位置信号及びY方向限界位置信号はX方向角度検出回路102及びY方向角度検出回路106からX方向モータ駆動回路104及びY方向モータ駆動回路108にもそれぞれ供給され、X方向モータ駆動回路104及びY方向モータ駆動回路108はX方向モータ42及びY方向モータ44の作動を停止させている。また、初期設定処理などにより、走査光学系40内のX方向回転部材及びY方向回転部材が初期位置にそれぞれ達している場合には、前述したステップS104,S106の処理は実質的には行われない。
ステップS108においては、コントローラ300は、切替え回路136へ「1」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を開始させ、かつレーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を停止させる。その結果、レーザ光源10だけがレーザ駆動回路112によって駆動されて、赤色のレーザ光を出射する。レーザ光源20はレーザ駆動回路114によって駆動されず、緑色のレーザ光を出射しない。この場合、レーザ駆動回路112は、フォトディテクタ16、増幅回路116及びレーザ光量補正回路120との協働によって、レーザ光源10から出射される赤色のレーザ光の光量を基準反射光量にフィードバック制御する。
前記ステップS108の処理後、コントローラ300は、ステップS110にて、センサ信号取出し回路128,130に作動開始を指示する。これにより、センサ信号取出し回路128,130は、受光センサ14,24の各画素の受光光量を表す画素データを周期的に出力し始める。ただし、この場合、レーザ光源20が緑色のレーザ光を出射していないので、センサ信号取出し回路130からの画素データは利用されない。次に、コントローラ300は、ステップS112にて、フォトディテクタ16によるレーザ光の受光量が所定の閾値未満であるかを判定する。この判定は、前記受光量が閾値よりも小さくなったときに検出信号を出力する受光量判定回路124から、検出信号が入力されているかにより行われる。そして、フォトディテクタ16によるレーザ光の受光量が閾値未満でなく、受光量判定回路124から検出信号が入力されていなければ、コントローラ300は、ステップS112にて「No」と判定して、ステップS114にて入力レーザ光モード値Inを「1」に設定する。この入力レーザ光モード値Inは、「1」によって近距離用のレーザ光源10からの赤色のレーザ光が測定対象物OBに向けて出射され、「2」によって遠距離用のレーザ光源20からの緑色のレーザ光が測定対象物OBに向けて出射されていることを表す。前記ステップS114の処理後、ステップS132以降に進む。
一方、フォトディテクタ16によるレーザ光の受光量が所定の閾値未満であれば、コントローラ300は、ステップS112にて「Yes」と判定して、ステップS116にて切替え回路136へ「2」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を開始させ、かつレーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を停止させる。その結果、レーザ光源20だけがレーザ駆動回路114によって駆動されて、緑色のレーザ光を出射する。レーザ光源10は、レーザ駆動回路112によって駆動されず、赤色のレーザ光を出射しない。この場合、レーザ駆動回路114は、フォトディテクタ26、増幅回路118及びレーザ光量補正回路122との協働によって、レーザ光源20から出射される緑色のレーザ光の光量を基準反射光量にフィードバック制御する。
次に、コントローラ300は、ステップS118にて、フォトディテクタ26によるレーザ光の受光量が所定の閾値未満であるかを判定する。この判定は、前記受光量が閾値よりも小さくなったときに検出信号を出力する受光量判定回路126から、検出信号が入力されているかにより行われる。そして、フォトディテクタ26によるレーザ光の受光量が閾値未満でなく、受光量判定回路126から検出信号が入力されていなければ、コントローラ300は、ステップS118にて「No」と判定して、ステップS120にて入力レーザ光モード値Inを「2」に設定して、ステップS132に進む。
また、フォトディテクタ26によるレーザ光の受光量が所定の閾値未満であれば、コントローラ300は、ステップS118にて「Yes」と判定して、ステップS122に進む。この場合、フォトディテクタ16,26の両者とも、測定対象物OBの表面からの反射光を受光していないことを意味する。ステップS122においては、コントローラ300は、切替え回路136へ「0」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路112,114、レーザ光量補正回路120,122、受光量判定回路124,126及び切替え点検出回路132,134の作動を停止させる。そして、コントローラ300は、ステップS124にて表示装置202に「反射光受光なし、測定OK?」なる質問を表示して、ステップS126にて作業者による入力装置302を用いた入力を待つ。作業者は、レーザ光が測定対象物OB以外の遠方の箇所に照射されているために反射光の受光がなく、3次元カメラ100の配置に問題がないと判断すれば、「OK」を入力する。一方、作業者は、3次元カメラ100の配置に問題があり、3次元カメラ100の配置を変更する必要があると判断すれば、「No」を入力する。
そして、作業者が「OK」を入力した場合には、コントローラ300は、ステップS126にて「Yes」と判定し、ステップS128にて「Yes」と判定して、ステップS130に進む。ステップS130においては、コントローラ300は、ステップS116の場合と同様に、切替え回路136へ「2」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を開始させ、かつレーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を停止させる。その結果、レーザ光源20だけがレーザ駆動回路114によって駆動されて、緑色のレーザ光を出射する。また、この場合も、レーザ光源20から出射される緑色のレーザ光の光量を基準反射光量にフィードバック制御する。そして、前記ステップS130の処理後、コントローラ300は、前述したステップS120の処理により、入力レーザ光モード値Inを「2」に設定して、ステップS132に進む。これは、この状態では、レーザ光が測定対象物OB以外の遠方の箇所に照射されており、以降の距離の検出においては、遠距離用のレーザ光源20及び受光センサ24が利用されるためである。
また、作業者が「No」を入力した場合には、コントローラ300は、ステップS126にて「Yes」と判定し、ステップS128にて「No」と判定して、図6BのステップS174以降の終了処理に進む。これは、このプログラムの実行を一旦終了して、作業者が3次元カメラ100の配置を変更する必要があるからである。
前記ステップS114,S120の処理後、コントローラ300は、ステップS132にてデータ演算部210に作動の開始を指示し、ステップS134にて3次元画像生成部212に作動の開始を指示する。これにより、データ演算部210及び3次元画像生成部212は作動を開始する。次に、コントローラ300は、ステップS136にて、走査光学系40によるレーザ光による照射スポットのX方向及びY方向の走査を開始させる。具体的には、走査光学系40内のX方向回転部材及びY方向回転部材を初期位置から終了位置方向に回転させるために、コントローラ300は、X方向モータ42及びY方向モータ44の駆動開始をX方向モータ駆動回路104及びY方向モータ駆動回路108に指示する。また、この駆動開始の指示の際には、コントローラ300は、X方向モータ駆動回路104及びY方向モータ駆動回路108にX方向モータ42及びY方向モータ44の回転速度すなわちレーザ光のX方向及びY方向の走査速度も指示する。これにより、X方向モータ駆動回路104及びY方向モータ駆動回路108は、前記指定された回転速度で、走査光学系40内のX方向回転部材及びY方向回転部材が終了位置に向かって回転するように、X方向モータ42及びY方向モータ44をそれぞれ駆動制御する。これにより、X方向モータ42及びY方向モータ44が回転して、走査光学系40内のX方向回転部材及びY方向回転部材が終了位置に向かって回転し始める。なお、Y方向モータ44の回転速度はX方向モータ42の回転速度もよりもかなり遅い、すなわちレーザ光による照射スポットの走査速度はX方向よりもY方向がかなり遅い。
前記ステップS136の処理後、コントローラ300は、ステップS138にて内蔵のタイマを作動させて、時間計測を開始する。この時間計測の開始後、コントローラ300は、図6BのステップS140にて、X方向角度検出回路102からX方向照射角度θxを入力して、入力したX方向照射角度θxが下限値θaよりも小さいか又は上限値θbよりも大きいかを判定する。下限値θa及び上限値θbは、測定対象物OBの表面におけるレーザ光のX方向の走査範囲の下限及び上限をそれぞれ規定するものである。X方向照射角度θxが下限値θa以上かつ上限値θb以下であれば、コントローラ300はステップS140にて「No」と判定して、ステップS144に進む。ステップS144においては、コントローラ300は、前記ステップS138の処理により開始した計測時間値が所定の小さな時間値Δtに変数nを乗算した値n・Δt以上であるかを判定する。計測時間値が値n・Δtよりも小さければ、コントローラ300は、ステップS144にて「No」と判定して、ステップS140に戻る。
したがって、X方向照射角度θxが下限値θa以上かつ上限値θb以下であり、かつ計測時間値が値n・Δtよりも小さい限り、コントローラ300は、ステップS140,S144からなる循環処理を繰り返し実行する。この間に、走査光学系40内のX方向回転部材がY軸周りに回転して、レーザ光による照射スポットは測定対象物OBの表面をX方向に走査する。なお、最初の走査においては、照射スポットは初期位置から上限値θb側に移動する。また、実際には、走査光学系40内のY方向回転部材もX軸周りに回転して、レーザ光による照射スポットは測定対象物OBの表面をY方向にも走査するが、照射スポットのY方向への移動量はかなり小さい。このようなレーザ光による走査中、計測時間値が値n・Δt以上になるたびに、コントローラ300は、ステップS144にて「Yes」と判定して、ステップS146〜S172の処理を実行して、ステップS140に戻る。このステップS146〜S172の処理については、詳しく後述する。また、変数nは、前記ステップS146〜S172の処理ごとに、ステップS172の処理により「1」ずつ増加する。
前述したステップS140,S144の循環処理及びステップS140,S144〜S172の循環処理中、X方向照射角度θxが下限値θaよりも小さく又は上限値θbよりも大きくなると、コントローラ300は、ステップS140にて「Yes」と判定してステップS142の処理を実行する。ステップS142においては、コントローラ300は、X方向モータ駆動回路104にX方向モータ42の反転を指示する。X方向モータ駆動回路104は、この指示に応答して、X方向モータ42を反転すなわちX方向モータ42を今までの回転方向とは反対方向に回転させ始める。なお、X方向モータ42の回転速度は反転前と同じである。このステップS140,S142の処理により、レーザ光による照射スポットは測定対象物OBの表面上をX方向に所定速度で往復して走査するとともに、Y方向にも僅かに移動する。そして、変数nはステップS144〜S172の処理ごとに「1」ずつ増加するので、このような照射スポットによるX方向の往復操作中、所定の短時間Δtごとに、ステップS146〜S172の処理が実行されることになる。
ステップS146〜S172の処理においては、コントローラ300は、ステップS146にて、入力レーザ光モード値Inが「1」であるか否かを判定する。入力レーザ光モード値Inが「1」であれば、すなわち近距離用のレーザ光源10が作動中であれば、コントローラ300は、ステップS146にて「Yes」と判定して、ステップS148にて、データ演算部210に近距離用のセンサ信号取出し回路128からの画素データの入力を指示する。データ演算部210は、そのメモリ210aに、センサ信号取出し回路128から取込んだ画素データを変数nと共に記憶する。一方、入力レーザ光モード値Inが「1」でなくて「2」であれば、すなわち遠距離用のレーザ光源20が作動中であれば、コントローラ300は、ステップS146にて「No」と判定して、ステップS150にて、データ演算部210に遠距離用のセンサ信号取出し回路130からの画素データの入力を指示する。データ演算部210は、そのメモリ210aに、センサ信号取出し回路130から取込んだ画素データを変数nと共に記憶する。
次に、コントローラ300は、ステップS152にて、3次元画像生成部212に、X方向角度検出回路102によって検出されたレーザ光のX方向照射角度θx及びY方向角度検出回路106によって検出されたレーザ光のY方向照射角度θyの入力を指示する。この指示に応答して、3次元画像生成部212には、X方向角度検出回路102及びY方向角度検出回路106からX方向照射角度θx及びY方向照射角度θyをそれぞれ入力して、そのメモリ212aに変数nと共に記憶する。
前記ステップS152の処理後、コントローラ300は、ステップS154にてY方向角度検出回路106からY方向照射角度θyを入力し、ステップS156にてY方向照射角度θが上限値θc以上であるかを判定する。なお、上限値θcは、レーザ光のY方向の走査範囲の上限を規定する角度を示している。Y方向照射角度θが上限値θcよりも小さければ、コントローラ300は、ステップS156にて「No」と判定して、後述するステップS158〜S170の処理を実行して、ステップS172にて変数nに「1」を加算した後にステップS140に戻り、前述したステップS140〜S172の処理を実行し続ける。一方、Y方向照射角度θが上限値θc以上になると、コントローラ300は、ステップS156にて「Yes」と判定して、ステップS174以降の終了処理を実行する。したがって、レーザ光による照射スポットが測定対象物OBの表面をX方向に下限値θaから上限値θbまでの範囲内で往復しながら走査するとともに、Y方向の上限値θcに達するまで、所定の短時間Δtごとに、センサ信号取出し回路128,130からの画素データがデータ演算部210に順次記憶されていくとともに、X方向角度検出回路102及びY方向角度検出回路106からのX方向照射角度θx及びY方向照射角度θyが3次元画像生成部212に記憶されていく。
前述したステップS158〜S170の処理は、近距離用のレーザ光源10と遠距離用のレーザ光源20との作動を切替える処理である。ステップS158において、コントローラ300は、切替え点検出回路132,134から切替え点検出信号を入力したか否かを判定する。この場合、切替え点検出回路132,134は、それらのいずれか一方のみが切替え回路136の作用により近距離用及び遠距離用のレーザ光源10,20と連動して作動しているので、入力レーザ光モード値Inが「1」であって近距離用のレーザ光源10が作動している場合には、切替え点検出回路132からの切替え点検出信号の入力を判定する。また、入力レーザ光モード値Inが「2」であって遠距離用のレーザ光源20が作動している場合には、切替え点検出回路134からの切替え点検出信号の入力を判定する。
まず、入力レーザ光モード値Inが「1」であって近距離用のレーザ光源10が作動している場合について詳しく説明すると、切替え点検出回路132からの切替え点検出信号が入力されない場合、コントローラ300は、ステップS158にて「No」と判定して、ステップS160に進む。なお、この状態は、後述するように、段差に関する例外を除いて通常、図5に示す近距離用の受光センサ14のL1位置よりも下方において、反射光を受光している状態である。
一方、近距離用の受光センサ14における反射光の受光位置が上方に移動し、すなわち測定対象物OBの表面への距離が大きくなって、受光センサ14がL1位置で主に反射光を受光し、切替え点検出回路132から切替え点検出信号が出力されると、コントローラ300は、ステップS158にて「Yes」と判定して、ステップS162に進む。ステップS162においては、コントローラ300は、入力レーザ光モード値Inが「1」であるかを判定する。この場合、入力レーザ光モード値Inは「1」であるので、コントローラ300は、ステップS162にて「Yes」と判定し、ステップS164にて切替え回路136に「2」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を開始させ、かつレーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を停止させる。その結果、レーザ光源20だけがレーザ駆動回路114によって駆動されて、緑色のレーザ光を出射する。前記ステップS164の処理後、コントローラ300は、ステップS166にて入力レーザ光モード値Inを「2」に設定して、ステップS172に進む。これにより、遠距離用のレーザ光源20及び受光センサ24による距離の測定モードに切替えられる。
切替え点検出回路132からの切替え点検出信号が入力されず、前記ステップS158にて「No」と判定された場合、コントローラ300は、ステップS160にて、受光量判定回路124,126から、フォトディテクタ16,26による受光量が閾値未満であることを表す検出信号を入力したか否かを判定する。実際には、現在の入力レーザ光モード値Inは「1」であるので、近距離用のレーザ光源10に対応した受光量判定回路124からの検出信号を入力したかを判定する。フォトディテクタ16による受光量が閾値以上であり、受光量判定回路124からの検出信号が入力されない場合、コントローラ300は、ステップS160にて「No」と判定して、ステップS172に進む。
一方、フォトディテクタ16による受光量が閾値未満であり、受光量判定回路124からの検出信号が入力された場合、コントローラ300は、ステップS160にて「Yes」と判定して、前述したステップS162〜S166の処理を実行して、遠距離用のレーザ光源20及び受光センサ24による距離の測定モードに切替える。測定対象物OBの表面であって受光センサ14のL1位置(図5参照)によって検出される距離近辺の表面に段差がある場合、反射光が受光センサ14のL1位置に照射されずに、切替え点検出回路132からの切替え点検出信号が出力されない場合がある。この場合、フォトディテクタ16による受光量は非常に小さくなって閾値未満になるので、前記ステップS160の処理により、反射光の受光位置が受光センサ14のL1位置より先の位置(上方)に移動したことが検出される。
次に、入力レーザ光モード値Inが「2」であって遠距離用のレーザ光源20が作動している場合について詳しく説明すると、切替え点検出回路134からの切替え点検出信号が入力されない場合、コントローラ300は、ステップS158にて「No」と判定して、ステップS160に進む。なお、この状態は、後述するように、段差に関する例外を除いて通常、図5に示す近距離用の受光センサ14のL2位置よりも上方において、反射光を受光している場合である。
一方、遠距離用の受光センサ24における反射光の受光位置が下方に移動し、すなわち測定対象物OBの表面までの距離が小さくなって、受光センサ24がL2位置で主に反射光を受光し、切替え点検出回路134から切替え点検出信号が出力されると、コントローラ300は、ステップS158にて「Yes」と判定して、ステップS162に進む。この場合、入力レーザ光モード値Inは「2」であるので、コントローラ300は、ステップS162にて「No」と判定し、ステップS168にて切替え回路136に「1」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路112、レーザ光量補正回路120、受光量判定回路124及び切替え点検出回路132の作動を開始させ、かつレーザ駆動回路114、レーザ光量補正回路122、受光量判定回路126及び切替え点検出回路134の作動を停止させる。その結果、レーザ光源10だけがレーザ駆動回路112によって駆動されて、赤色のレーザ光を出射する。前記ステップS168の処理後、コントローラ300は、ステップS170にて入力レーザ光モード値Inを「1」に設定して、ステップS172に進む。これにより、近距離用のレーザ光源10及び受光センサ14による距離の測定モードに切替えられる。
切替え点検出回路134からの切替え点検出信号が入力されず、前記ステップS158にて「No」と判定された場合、コントローラ300は、ステップS160にて、受光量判定回路124,126から、フォトディテクタ16,26による受光量が閾値未満であることを表す検出信号を入力したか否かを判定する。この場合、現在の入力レーザ光モード値Inは「2」であるので、遠距離用のレーザ光源20に対応した受光量判定回路126からの検出信号を入力したかを判定する。フォトディテクタ26による受光量が閾値以上であり、受光量判定回路126からの検出信号が入力されない場合、コントローラ300は、ステップS160にて「No」と判定して、ステップS172に進む。一方、フォトディテクタ26による受光量が閾値未満であり、受光量判定回路126からの検出信号が入力された場合、コントローラ300は、ステップS160にて「Yes」と判定して、前述したステップS162,S168,S170の処理を実行して、近距離用のレーザ光源10及び受光センサ14による距離の測定モードに切替える。測定対象物OBの表面であって受光センサ24のL2位置(図5参照)によって検出される距離近辺の表面に段差がある場合、反射光が受光センサ24のL2位置に照射されずに、切替え点検出回路134からの切替え点検出信号が出力されない場合がある。この場合、フォトディテクタ26による受光量は非常に小さくなって閾値未満になるので、前記ステップS160の処理により、反射光の受光位置が受光センサ14のL2位置より先の位置(下方)に移動したことが検出される。
このようなステップS140〜S172の循環処理中、ステップS148,S150の処理によってデータ演算部210のメモリ210aに順次記憶された画素データは、順次処理される。すなわち、データ演算部210は、1組の画素データによって表された受光光量を受光センサ14,24の画素が並んだ方向に見たときの光量波形曲線を作成し、ピーク点を検出して受光位置を求め、3角測量法の原理に基づいて、前記受光位置をZ方向距離Lに換算する。換算された距離Lは順次3次元画像生成部212に変数nと共に出力されて、3次元画像生成部212のメモリ212aに変数nと共に順次記憶される。
また、前記ステップS140〜S172の循環処理中、ステップS152の処理によって3次元画像生成部212のメモリ212aに順次記憶されたX方向照射角度θx及びY方向照射角度θy、及びデータ演算部210から順次出力されてメモリ212aに記憶されたZ方向距離データLも、順次処理される。すなわち、3次元画像生成部212は、X方向角度データθx(n)及びY方向角度データθy(n)から座標原点からの方向を表すベクトルを算出し、このベクトルとZ方向距離データL(n)から直交座標系の座標データ(xn,yn,zn)を算出する。そして、後述するステップS174以降の処理に移ると、メモリ212aには新たなX方向角度データθx(n)、Y方向角度データθy(n)及びZ方向距離データL(n)が入力されなくなるので、座標データ(xn,yn,zn)の算出が終了し、算出した全ての座標データ(xn,yn,zn)を用いて測定対象物OBの3次元形状を表す画像データを生成する。そして、測定対象物OBの3次元形状を表示装置202に表示する。
次に、ステップS128にて「No」と判定され、又はステップS156にて「Yes」と判定された場合に実行されるステップS174以降の処理について説明する。ステップS174においては、コントローラ300は、切替え回路136へ「0」を表す指令を出力する。これにより、切替え回路136は、レーザ駆動回路112,114、レーザ光量補正回路120,122、受光量判定回路124,126及び切替え点検出回路132,134の作動を停止させる。これにより、レーザ光源10,20からのレーザ光の出射も停止する。次に、コントローラ300は、ステップS176にて、X方向モータ駆動回路104及びY方向モータ駆動回路108にX方向モータ42及びY方向モータ44の駆動停止を指示してX方向モータ42及びY方向モータ44の作動を停止、すなわち走査光学系40によるレーザ光による照射スポットのX方向及びY方向の走査を停止させる。さらに、コントローラ300は、ステップS178にてセンサ信号取り出し回路128,130の作動を停止させ、ステップS180にてデータ演算部210の作動を停止させて、ステップS182にてプログラムの実行を終了する。
このような処理により、3次元カメラ100で測定した測定対象物OBの表面の3次元形状が表示装置202に表示される。そして、新たな測定対象物OBの表面の3次元形状を測定する場合には、新たな測定対象物OBに3次元カメラ100を向けて、上述のように、3次元形状測定装置を作動させるようにする。
上記のように動作する実施形態においては、ダイクロイックミラー34により、集光レンズ32によって集光される照射スポットからの反射光を互いに異なる少なくとも第1方向及び第2方向に分離し、受光センサ14,24でそれぞれ受光するようにした。受光センサ14は、レーザ光源10(又はコリメートレンズ12、ダイクロイックミラー30)から第1所定範囲内の距離を有する測定対象物OBの表面からの反射光を受光する。受光センサ24は、レーザ光源20(又はコリメートレンズ22、ダイクロイックミラー30)から第2所定範囲内の距離を有する測定対象物OBの表面からの反射光を受光する。この場合、第2所定範囲は、第1所定範囲と一部重複するとともに、第1所定範囲よりも大きな距離の範囲である。そして、データ演算部210は、受光センサ14からの受光信号と受光センサ24からの受光信号を用いて距離を計算する。したがって、計算される距離に隙間ができることがなくなり、受光センサ14,24を大きくした1つの受光センサで受光した受光信号を用いて距離を計算した場合と同じになる。その結果、規格内の大きさの受光センサを用いても、3次元形状の測定範囲を大きくするか、又は分解能を高くすることができるようになる。
また、上記実施形態においては、ステップS158〜S170,S108,S112〜S120の処理により、レーザ光源10,20(又はコリメートレンズ12,22、ダイクロイックミラー30)から測定対象物OBの表面に形成された照射スポットまでの距離に応じて、レーザ光源10及びレーザ光源20の一方が作動され、かつ受光センサ14及び受光センサ24の一方からの受光信号がデータ演算部210に導かれる。その結果、測定対象物OBからの反射光をダイクロイックミラー34で2方向に分離しても、反射光の半分の光量が捨てられることはなく、レーザ光源14,24からそれぞれ出射されるレーザ光の光量をそれほど大きくする必要がなくなる。
また、上記実施形態においては、切替え点検出回路132,134が受光センサ14,24内におけるL1,L2位置の受光素子による反射光の受光量が所定の閾値以上であることを検出すると、ステップS158,S162〜S172の処理により、レーザ光源10の作動及び受光センサ14からの受光信号の採用と、レーザ光源20の作動及び受光センサ24からの受光信号の採用とが切替えられるようになる。その結果、前記切替えの判定を受光センサ14,24の全ての受光素子からの受光信号を処理して行う必要がなく、簡単に、測定対象物からの反射光の受光位置が受光センサ14,24の端部近傍になったときに前記切替えを瞬時に行うことができる。また、フォトディテクタ124,126が、受光センサ14,24による反射光の受光量が所定の受光量未満であることを検出すると、ステップS160,S162〜S172の処理によっても、レーザ光源10の作動及び受光センサ14からの受光信号の採用と、レーザ光源20の作動及び受光センサ24からの受光信号の採用とが切替えられるようになる。その結果、前記第1所定範囲と第2所定範囲の重複部分内に段差があって、測定対象物OBでの反射光の受光位置が瞬時に変化して、前記切替え点検出回路132,134の検出結果による切替えがなされなくても、測定対象物OBからの反射光の受光位置が受光センサ14,24から外れたときに前記切替えを瞬時に行うことができる。
以上、本発明の一実施形態について説明したが、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変形も可能である。
上記実施形態では、1組のダイクロイックミラー30,34で、2つの波長のレーザ光をそれぞれ別の方向に導くようにした。しかし、これに代えて、波長特性が異なる2組以上のダイクロイックミラーで3つ以上の波長のレーザ光をそれぞれ別の方向に導くようにしてもよい。この場合、レーザ光源、光量制御に使用するフォトディテクタとその周辺回路、及びセンサ信号取り出し回路の数、並びに切替え回路136が切替える数を適宜変更すればよい。これによれば、3次元形状の測定可能範囲をさらに大きくすることができるか、又は3次元形状の測定分解能をさらに高くすることができる。
また、上記実施形態では、反射光を2つの方向に導く光学素子としてダイクロイックミラー30,34を用いた。しかし、これに代えて、ハーフミラー等で反射光を分割して2つの方向に送るようにしてもよい。これによれば、反射光の半分の光量を使用しないことになるが、レーザ光源は1つでよく、出射するレーザ光を切替える手段を設ける必要もなくなる。
また、上記実施形態では、レーザ光源10,20、受光センサ14,24などの切替えに、受光センサ14,24の端部近傍の画素の信号強度と、フォトディテクタ16,26の受光量に相当する信号強度との2つ要素を用いた。しかし、表面に段差のない測定対象物OBの3次元形状を測定するならば、受光センサ14,24の端部近傍の画素の信号強度のみにより、レーザ光源10,20、受光センサ14,24などの切替えを行うようにしてもよい。
さらに、上記実施形態では、レーザ光による照射スポットの走査のために2方向に回転する走査光学系40を用いた。しかし、これに代えて、レーザ光による照射スポットで測定対象物OBの表面を走査できれば、どのような方法でもよい。走査光学系40の回転を1方向にして、3次元カメラ100を測定対象物OBと相対的に1方向に移動してもよいし、走査光学系40をなくして、3次元カメラ100を測定対象物OBと相対的に2方向に移動させてもよい。また、X方向及びY方向のレーザ光による照射スポットの走査においては、回転による走査でなくても、レーザ光の光軸をX方向及びY方向に直線的に移動させてレーザ光による照射スポットを走査させるようにしてもよい。