しかしながら、特許文献1に示される制御装置にはいくつかの問題がある。第1の問題は、受光器から反射する反射光を受光するフォトディテクタを設けるためコストがアップする、また、装置をコンパクト化するときに障害となる、という問題である。第2の問題は、受光器へ入射する反射光の入射角度、入射位置は広範囲であるため、受光器からの反射光を受光するフォトディテクタが大きくなり、フォトディテクタへの反射光の入射位置が異なると反射光強度が等しくても出力する信号の強度に差が発生し、本来の反射光の強度が微小に変動して測定精度に影響する、という問題である。第3の問題は、測定対象物の反射率が大きく、2次反射が発生する場合は、レーザ光の照射点以外の箇所からの反射光(以下、迷光という)が入射することが多くあり、本来のレーザ光強度より低いレーザ強度が照射され、測定精度が悪くなる場合ある、という問題である。
本発明はこの問題を解消するためなされたもので、その目的は、レーザ光を測定対象物に照射して測定対象物表面からの反射光(散乱光の一部)を受光し、該反射光の強度が一定になるよう、照射するレーザ光の強度を制御するレーザ光強度制御装置及びレーザ光強度制御方法において、先行技術文献である特許文献1に示される制御装置が有する、反射光の損失がない、及び反射光強度を検出してからレーザ光強度を制御するまでの時間が短い、という利点をそのままにし、受光器から反射する反射光を受光するフォトディテクタが不要で、迷光があってもレーザ光強度の制御を精度よく行うことができるレーザ光強度制御装置及びレーザ光強度制御方法を提供することにある。
上記目的を達成するために、本発明の特徴は、対象物に向けてレーザ光を出射するレーザ光出射器と、対象物のレーザ光の照射点で発生する散乱光の一部である反射光を結像レンズを介して受光し、受光位置ごとの単位面積あたりの光量に相当する信号を出力する受光器と、受光器が受光する反射光の総光量が予め定められた設定値になるよう、レーザ光出射器が出射するレーザ光の強度を制御するレーザ光強度制御手段とを備えたレーザ光強度制御装置において、レーザ光強度制御手段は、受光器が出力する信号から作成される、受光位置に対する単位面積あたりの光量である受光強度曲線において、予め設定された強度のレベルにおける受光強度曲線の幅Wnを検出し、検出した受光強度曲線の幅Wnが、予め定められた受光強度曲線の幅Wtになるよう制御を行うようにしたことにある。
これによれば、対象物の反射光をすべて受光器で受光しているので反射光の損失がない。そして、受光器が出力する信号から作成される、受光位置に対する単位面積あたりの光量である受光強度曲線において、予め設定された強度のレベルにおける受光強度曲線の幅Wnを検出し、検出した幅Wnが定められた受光強度曲線の幅Wtになるよう、レーザ光出射器が出射するレーザ光の強度を制御するのみであるので制御が簡単であり、受光器が反射光を受光したタイミングの僅か後のタイミングでレーザ光強度は制御される。すなわち、先行技術文献である特許文献1に示される制御装置が有する利点はそのままである。そして、受光器から反射する反射光を受光するフォトディテクタは不要であり、迷光があっても受光強度曲線の幅Wnを検出するための強度レベルを適切に設定すれば、正規の反射光による箇所で幅Wnを検出できるので影響はなく、レーザ光強度の制御を精度よく行うことができる。なお、発明者は対象物の反射率によらず、受光強度曲線の幅を一定にすると受光器が受光する反射光の総光量は略一定になることを実験により確かめている。これは、受光器が受光する反射光の総光量が設定値付近の限られた範囲では、対象物の反射率によらず、受光強度曲線の形は略一定であるためである。
また、レーザ光強度制御手段は、具体的には、レーザ光出射器が出射しているレーザ光の強度Lnを検出するレーザ光強度検出手段と、受光器が出力する信号から受光強度曲線を作成し、受光強度曲線の幅Wnを検出する受光強度曲線幅検出手段と、予め定められた微小時間ごとに、レーザ光強度検出手段が検出したレーザ光の強度Lnと、受光強度曲線幅検出手段が検出した受光強度曲線の幅Wnと、予め定められた受光強度曲線の幅Wtとを用いて、レーザ光出射器が出射すべきレーザ光の強度LcをLc=(Wt/Wn)2・Lnなる式で計算して設定するレーザ光強度設定手段とを備えるようにするとよい。
これによれば、受光強度曲線の幅Wnが設定された幅Wtから差があっても、Lc=(Wt/Wn)2・Lnなる式で出射すべきレーザ光の強度Lcを計算して設定すれば、受光強度曲線の幅Wnはすぐに設定された幅Wtになるので、レーザ光の強度Lcの設定を微小時間ごとに実行すれば、レーザ光強度の制御を精度よく行うことができる。なお、Lc=(Wt/Wn)2・Lnなる式でレーザ光の強度Lcを設定すると、受光強度曲線の幅Wnが設定された幅Wtになるのは、受光強度曲線の幅Wnを検出するための強度のレベルを適切に定めると、受光器が受光する反射光の総光量Rと受光強度曲線の幅Wnとには、R=c・Wn2 なる関係(cは定数)があるためである。発明者は、受光器が受光する反射光の総光量Rと受光強度曲線の幅Wnとには、受光器が受光する反射光の総光量Rが設定値付近の限られた範囲では、上記式の関係があることを実験により確かめている。
また、レーザ光強度制御手段は、より具体的には、レーザ光出射器が出射しているレーザ光の所定の割合である一部のレーザ光を受光して、受光強度Imnを検出するレーザ光強度検出手段と、受光器が出力する信号から受光強度曲線を作成し、受光強度曲線の幅Wnを検出する受光強度曲線幅検出手段と、予め定められた微小時間ごとに、レーザ光強度検出手段が検出した受光強度Imnと、受光強度曲線幅検出手段が検出した受光強度曲線の幅Wnと、予め定められた受光強度曲線の幅Wtとを用いて、Imc=(Wt/Wn)2・Imnなる式で受光強度Imcを計算し、計算された受光強度Imcを、予め記憶されているレーザ光出射器に出力される駆動信号の強度とレーザ光強度検出手段が検出する受光強度との関係に当てはめて、レーザ光出射器に出力する駆動信号の強度を設定するレーザ光強度設定手段とを備えるようにするとよい。
これによれば、レーザ光の強度を設定する場合、通常設定するのはレーザ光出射器に出力される駆動信号の強度であるが、レーザ光出射器に出力される駆動信号の強度とレーザ光強度検出手段が検出する受光強度との関係を定期的に測定して記憶し直せば、長期間の間に駆動信号の強度とレーザ光の強度との関係が変化しても、その影響を除去することができ、レーザ光の強度制御をより精度よく行うことができる。
さらに、本発明は、レーザ光強度制御装置の発明に限定されるものではなく、対象物に向けてレーザ光を出射するレーザ光出射器と、対象物のレーザ光の照射点で発生する散乱光の一部である反射光を結像レンズを介して受光し、受光位置ごとの単位面積あたりの光量に相当する信号を出力する受光器とを備えた装置に用いられる、受光器が受光する反射光の総光量が予め定められた設定値になるよう、レーザ光出射器が出射するレーザ光の強度を制御するレーザ光強度制御方法の発明としても実施し得るものである。
以下、本発明の実施形態について説明する。図1は本実施形態に係るレーザ光強度制御装置が搭載された3次元形状測定装置の全体構成を示す図である。この3次元形状測定装置は、レーザ光を測定対象物OBに照射するとともにレーザ光を走査し、照射スポットで発生する散乱光の一部である反射光をラインセンサ28で受光し、受光位置から3角測量法により計算される照射スポットまでの距離と、レーザ光の走査方向とから測定対象物OBの3次元形状を計算する装置である。そして、この3次元形状測定装置には、ラインセンサ28で受光する反射光の強度(総光量)が一定になるよう、出射するレーザ光の強度を制御するレーザ光強度制御装置が搭載されている。以下、装置の構成について説明するが、レーザ光強度制御装置以外の部分は、公知技術である為、簡単に説明するにとどめる。
3次元形状測定装置は、3次元センサ10、データ処理装置50、コントローラ60、入力装置61及び表示装置62を備える。3次元センサ10とデータ処理装置50にはコントローラ60からの指令を入力するための信号線が接続され、コントローラ60は、作業者が入力装置61から入力した測定開始、測定条件及び3次元画像の表示方向等の指令を基に、3次元センサ10やデータ処理装置50に指令を出力する。レーザ光強度制御装置は3次元センサ10内にある一部の回路とコントローラ60が実行するプログラムから構成される。また、データ処理装置50により算出された3次元形状の画像データは表示装置62に入力され、この画像データにより表示装置62には3次元画像が表示される。
3次元センサ10は、レーザ光を直交する2方向に走査して測定対象物OBに照射するとともに、測定対象物OBからの反射光を画素を1列に並べたラインセンサ28で受光して、受光位置に対する単位面積当たりの受光量に相当する信号(画素ごとの光量データ)をデータ処理装置50に出力する。この3次元センサ10は、レーザ光源16、バックモニタ18、コリメーティングレンズ20、走査用光学系24、結像レンズ26及びラインセンサ28を備える。レーザ光源16は半導体レーザ等で構成されており、後述するレーザ駆動回路14から駆動信号が入力すると、レーザ光を出射する。出射されたレーザ光は大部分がコリメーティングレンズ20に入射し、平行なレーザ光となって出射する。ただし、レーザ光源16から出射したレーザ光の1部には前方に出射しないレーザ光があり、バックモニタ18は、この内の1部のレーザ光を受光し、受光強度に相当する強度の信号を出力する。レーザ光源16が出射するレーザ光の強度に対するバックモニタ18に入射するレーザ光の強度は一定割合であるので、バックモニタ18が出力する信号の強度はレーザ光源16が出射するレーザ光の強度に相当すると見なすことができる。
コリメーティングレンズ20を通過することで平行光になったレーザ光は、走査用光学系24に入射する。走査用光学系24は、ガルバノミラーまたはポリゴンミラーとこれを駆動させるモータ等で構成されており、モータが駆動することで入射したレーザ光の照射方向を2方向に変化させる。例えば、走査用光学系24に入射するレーザ光の入射方向をXYZ直交座標系におけるZ方向とすると、走査用光学系24は、入射したレーザ光を駆動するガルバノミラーまたはポリゴンミラーにて反射させ、出射方向をX方向に往復で変化させるとともにY方向に一定速度で変化させる。これにより走査用光学系24から出射するレーザ光は、測定対象物OBの表面を走査される。
結像レンズ26は、測定対象物OBに照射されたレーザ光の照射スポットで発生した反射光(散乱光の一部)を集光し、受光器であるラインセンサ28上に結像させる。ラインセンサ28は、CCDまたはCMOSなどの複数の受光素子(画素)を一列に配置した長尺状のものであり、図1に示されるように受光する反射光の光軸に対して傾斜して設置され、それぞれの受光素子の受光強度に相当する強度の信号を長尺方向に沿って順に出力する。
また、3次元センサ10は、走査用光学系駆動回路12、センサ信号取出回路40、角度計算回路42、レーザ駆動回路14、及びレーザ強度制御回路30といった各種回路を備えている。コントローラ60は、入力装置61から測定開始の指令が入力すると、走査用光学系駆動回路12に作動開始の指令を出力する。走査用光学系駆動回路12は、コントローラ60から作動開始指令が入力すると作動開始して、走査用光学系24のモータを初期位置まで回転駆動させ、初期位置を表す信号をコントローラ60に出力し、その後モータを設定された速度で定められた方向に回転駆動する。モータを設定された速度で回転させるのは、モータ内に配置されたエンコーダが出力するパルス信号の単位時間あたりのパルス数が、設定された速度に相当するパルス数になるよう駆動信号の強度を制御することにより行う。また、走査用光学系駆動回路12は、モータの回転駆動時にモータ内に配置されたエンコーダが出力するパルス信号を入力してパルス数をカウントし、カウント値からモータの回転位置を検出し、検出結果からモータの回転位置が最終位置に達したと判定すると、終了を表す信号をコントローラ60に出力して作動を終了する。
コントローラ60は、走査用光学系駆動回路12から初期位置を表す信号が入力すると、レーザ駆動回路14、レーザ強度制御回路30、センサ信号取出回路40、角度計算回路42、及びデータ演算回路52に作動開始の指令を出力する。レーザ駆動回路14は、コントローラ60から作動開始指令が入力すると作動開始して、最初は設定された強度で、その後は後述するレーザ強度制御回路30からデジタルデータで入力した強度で、駆動信号をレーザ光源16に出力する。レーザ強度制御回路30はコントローラ60から作動開始指令が入力すると作動開始して、ラインセンサ28で受光した反射光の強度が設定された強度になる駆動信号強度をレーザ駆動回路14に出力する。レーザ強度制御回路30については後程、詳細に説明する。
センサ信号取出回路40は、コントローラ60から作動開始指令が入力すると作動開始して、後述するレーザ強度制御回路30内にあるタイミング指令回路38から信号が入力するごとに、ラインセンサ28の長尺方向の先頭にある受光素子から順に、受光強度に相当する強度の信号を出力させて入力し、入力した信号を増幅したうえで信号強度のデジタルデータをデータ演算回路52とレーザ強度制御回路30に出力する。このとき信号強度のデータは受光素子の位置が分かるデータとともに出力される。又は、出力の順で信号強度のデータに対応する受光素子の位置が分かるようになっている。
角度計算回路42は、コントローラ60から作動開始指令が入力されると作動開始して、走査用光学系24のモータのエンコーダが出力するパルス信号を入力してパルス数をカウントし、このパルス数から、基準線(Z軸)に対する出射レーザ光のX方向への傾き角度θxとY方向への傾き角度θyを計算し、角度θx、θyのデジタルデータをデータ演算回路52へ出力する。
データ演算回路52は、コントローラ60から作動開始指令が入力されると作動開始して、受光素子の位置と対になった信号強度のデータと角度θx、θyのデータを同じタイミングで取り込むことを繰り返す。そして、データの取り込みを行うごとに、受光素子の位置と対になった信号強度のデータから3角測量法によりレーザ光の照射スポットまで距離を算出し、これと角度θx、θyから照射スポットにおける3次元座標(x,y,z)を算出し、3次元画像生成装置54へ出力する。これにより3次元画像生成装置54には測定対象物OBの表面の3次元座標(x,y,z)のデータ群が記憶されていく。
コントローラ60は走査用光学系駆動回路12から最終位置到達を意味する信号を入力すると、3次元画像生成装置54に計算開始の指令を出力し、上記のように作動開始の指令を出力したそれぞれの回路に作動停止の指令を出力する。3次元画像生成装置54は、コントローラ60から計算開始の指令が入力すると計算処理を開始して、3次元座標のデータ群から測定対象物OBの3次元形状の画像データを作成し、表示装置62に出力する。このようなコントローラ60及び3次元センサ10内のそれぞれの回路の作動により、入力装置61から測定開始の指令を入力すると、所定時間経過後、表示装置62に測定結果である測定対象物OBの3次元形状画像が表示される。
レーザ強度制御回路30は図2に示すように、増幅回路32、A/D変換器34、レーザ強度設定回路36及びタイミング指令回路38から構成される。増幅回路32はバックモニタ18が出力する信号を設定された増幅率で増幅して出力する。上述したように、バックモニタ18が出力する信号の強度は出射されるレーザ光の強度に相当するので、増幅回路32が出力する信号の強度も出射されるレーザ光の強度に相当する。A/D変換器34はコントローラ60から作動開始の指令が入力すると作動を開始して、後述するタイミング指令回路38から信号が入力するごとに、増幅回路32から入力した信号の強度のデジタルデータを、レーザ強度設定回路36に出力する。タイミング指令回路38は水晶振動子を備え、コントローラ60から作動開始の指令が入力すると、設定された時間間隔でパルス信号をA/D変換器34とセンサ信号取出回路40に出力する。よって、センサ信号取出回路40がそれぞれの受光素子の受光強度に相当する強度のデータを出力するのと同じタイミングで、A/D変換器34は増幅回路32が出力する信号の強度のデータを出力する。
レーザ強度設定回路36はセンサ信号取出回路40とA/D変換器34が出力するデータを入力し、内蔵するメモリに記憶する。これは、ラインセンサ28の長尺方向に沿った受光強度曲線と出射レーザ光の強度とを、同じタイミングで得ると見なすことができる。また、レーザ強度設定回路36はFPGAのようにプログラム処理が可能な回路であり、コントローラ60から作動開始の指令が入力すると、図3に示すフローのプログラム処理を開始し、レーザ駆動回路14に駆動信号の強度データを出力することを繰り返す。以下、図3に示すフローに沿って説明する。
レーザ強度設定回路36は、コントローラ60から作動開始の指令が入力すると、ステップS10で内蔵するプログラムをスタートさせ、ステップS12にて変数nを0にする。nはセンサ信号取出回路40から入力するデータに順につけられる番号であり、変数nは「1」から順に番号がつけられる。なお、上述したように、センサ信号取出回路40はラインセンサ28の長尺方向の先頭にある受光素子から順に受光強度に相当する強度のデータを出力するので、変数nは、ラインセンサ28の長尺方向の先頭にある受光素子から順につけられる番号と見なすことができる。
次にレーザ強度設定回路36は、ステップS14にて、センサ信号取出回路40から入力してメモリに記憶されたデータ(以下、受光強度データという)の数が、予め設定されている数以上になったか判定し、なっていなければ、ステップS16を経由してステップS14に戻ることを繰り返す。そして、メモリに記憶されたデータの数が、予め設定されている数以上になると、Yesと判定してステップS18へ行く。ステップS18以降の演算処理は、メモリに記憶されたデータを用いての演算処理であるが、この演算処理が行われている間も、メモリへのデータ入力は行われている。ステップS14におけるデータの設定数は、メモリに記憶されたデータを用いての演算処理が、センサ信号取出回路40からのデータの入力がすべて終わるまでに終わらない適切な数である。
次にレーザ強度設定回路36は、ステップS18にて変数nをインクリメントし、ステップS20にて変数nに対応する受光強度データD(n)が設定値Ds以上であるか判定し、設定値Ds未満であればNoと判定して、ステップS22とステップS23を経由してステップS18に戻ることを繰り返す。これにより受光強度データD(n)がn=1から順に設定値Ds以上であるか判定される。これは、ラインセンサ28の長尺方向の先頭の受光素子から長尺方向に沿って順に、受光強度が設定値Ds以上であるか判定することである。設定値Dsは受光強度データD(n)が飽和する値(受光強度データD(n)が取り得る最大値)の半分程度の値で設定されている。設定値Dsをこのようにする理由については後述する。ステップS18乃至ステップS23の処理を繰り返していると、測定対象物OBからの反射光が結像する箇所で設定値Dsを超える受光強度データD(n)があるので、ステップS20でYesと判定してステップS24へ行く。
ステップS24にてレーザ強度設定回路36は、受光強度データD(n)とD(n−1)および変数nにより受光強度曲線が設定値Dsのラインをクロスする点の位置aを計算する。計算は以下の数1の計算式で行われる。
(数1)
a = n−{D(n)−Ds}/{D(n)−D(n−1)}
ラインセンサ28の受光素子は等間隔で並んでいるので、ラインセンサ28の長尺方向の先頭にある受光素子から順につけられる番号でもある変数nは、受光位置と見なすことができる。よって、数1の計算は、視覚的に示すと図4に示すように、設定値Dsを挟んだD(n)とD(n−1)のデータからなるラインは直線であるとして補間法によりクロス点の位置を求めるものである。なお受光位置を変数nに対応する値P(n)で計算するときは、以下の数2の計算式により計算すればよい。
(数1)
a = P(n)−{P(n)−P(n−1)}・{D(n)−Ds}/{D(n)−D(n−1)}
次にレーザ強度設定回路36は、ステップS26にて変数nをインクリメントし、ステップS28にて変数nに対応する受光強度データD(n)が設定値Ds以下であるか判定し、設定値Dsより大きければNoと判定して、ステップS30とステップS31を経由してステップS26に戻ることを繰り返す。これにより設定値Ds以上となった受光強度データD(n)の後の受光強度データD(n)が順に設定値Ds以下であるか判定される。ステップS26乃至ステップS31の処理を繰り返していると、測定対象物OBからの反射光が結像する箇所を過ぎる箇所で設定値Ds以下となる受光強度データD(n)があるので、ステップS28でYesと判定してステップS32へ行く。
ステップS32にてレーザ強度設定回路36は、受光強度データD(n)とD(n−1)および変数nとn−1により受光強度曲線が設定値Dsのラインをクロスする点の位置bを計算する。計算は以下の数3の計算式で行われる。
(数3)
b = n−{Ds−D(n)}/{D(n−1)−D(n)}
数3の計算も、視覚的に示すと図4に示すように、設定値Dsを挟んだD(n)とD(n−1)のデータからなるラインは直線であるとして補間法によりクロス点の位置を求めるものである。なお受光位置を変数nに対応する値P(n)で計算するときは、以下の数4の計算式により計算すればよい。
(数4)
b = P(n)−{P(n)−P(n−1)}・{Ds−D(n)}/{D(n−1)−D(n)}
次にレーザ強度設定回路36は、ステップS34にて受光強度曲線の幅WnをWn=b−aなる計算式で計算する。これは視覚的に示すと図4に示すように、受光強度曲線が設定値Dsのラインでクロスする箇所の幅を求めるものである。次にレーザ強度設定回路36は、ステップS36にてバックモニタ設定値Imcを以下の数5の計算式で計算する。
(数5)
Imc=(Wt/Wn)2・Imn
ImnはA/D変換器34から入力した増幅回路32が出力する信号の強度のデータであり、バックモニタ18が出力する信号を増幅した信号の強度である。このデータはステップS14にてYesと判定された時点で、既に入力してメモリに記憶されている。上述したように、バックモニタ18が出力する信号を増幅した信号の強度は、出射されているレーザ光の強度に相当する。Wtはラインセンサ28が受光する反射光の強度が設定値であるときの受光強度曲線の幅であり、受光強度曲線の幅の設定値である。そして、計算するバックモニタ設定値Imcは、ラインセンサ28が受光する反射光強度が設定値であるときのバックモニタ18が出力する信号を増幅した信号の強度であり、ラインセンサ28が受光する反射光強度が設定値であるために出射すべきレーザ光の強度に相当する。
バックモニタ設定値Imc、すなわち出射すべきレーザ光の強度を数5で計算できるのは、ラインセンサ28が受光する反射光の強度をRとし、受光強度曲線の幅をWとすると、測定対象物OBの反射率が定数である場合、近似的にR=c・W2なる式(cは定数)が成り立つためである。すなわち、測定対象物OBの反射率を定数とすると、反射光強度Rはレーザ強度Lに比例するので、R=c・W2はL=d・W2(dは定数)となり、これからL/W2=dは定数であるため、出射すべきレーザ光の強度をLcとすると、Lc/Wt2=Ln/Wn2が成り立ち、これを整理するとLc=(Wt/Wn)2・Lnとなる。バックモニタ18が出力する信号の強度Imはレーザ光の強度に比例するため、Im=e・L(eは比例定数)であり、Lc=(Wt/Wn)2・Lnは、Imc=(Wt/Wn)2・Imnとすることができる。また、測定対象物OBの反射率によらず、R=f(W)なる関数は成り立つので、測定対象物OBの反射率ごとに受光強度曲線の幅Wを設定値Wtにすると、ラインセンサ28が受光する反射光の強度Rは設定値になる。
発明者は測定対象物OBの反射率を変化させ、また、測定対象物OBから3次元センサ10までの距離を変化させ、受光強度曲線の幅Wを設定値Wt付近の値にして受光強度曲線の形状を調べた結果、測定対象物OBの反射率や測定対象物OBからの距離によらず受光強度曲線の形状は略同一であることを確認した。よって、受光強度曲線の幅Wが設定値Wt付近の値であれば、R=f(W)なる関数は成り立ち、受光強度曲線の幅Wを設定値Wtになるよう制御すると、ラインセンサ28が受光する反射光の強度Rは一定にすることができる。
また、発明者は測定対象物OBの反射率が異なるものごとに、出射するレーザ光の強度を変化させ、バックモニタ18が出力する信号を増幅した信号の強度Imと、受光強度曲線の幅Wとを測定した結果、受光強度曲線の幅Wを検出する受光強度のラインDsを、受光強度データD(n)が飽和する値の半分程度で設定すると、受光強度曲線の幅Wが限られた範囲内では、近似的にIm=g・W2(gは定数)なる関係が成り立つことを確認した。信号の強度Imはレーザ強度Lに比例し、測定対象物OBの反射率が定数であればレーザ強度Lは反射強度Rに比例するので、これから受光強度曲線の幅Wが限られた範囲内では、近似的にR=c・W2なる関係が成り立つことがわかる。
以下の表1および表2は、測定対象物OBの反射率が大きいものと小さいものに対して、出射するレーザ光の強度を変化させ、バックモニタ18が出力する信号を増幅した信号の強度Imと、受光強度曲線の幅Wとを測定した結果である。表1及び表2が示すように、それぞれのIm/W2の、受光強度曲線の幅Wがある値のときのIm/W2に対する割合は、限られた範囲内では1付近の値である。よって、この測定結果から、受光強度曲線の幅Wが限られた範囲内では、近似的にIm=g・W2なる関係が成り立つことがわかる。
次にレーザ強度設定回路36は、ステップS38にてレーザ駆動回路14がレーザ光源16に出力する駆動信号の強度Iopを計算する。レーザ強度設定回路36のメモリには、レーザ駆動回路14が出力する駆動信号の強度Iopと、バックモニタ18が出力する信号を増幅した信号の強度Imとの関係が記憶されている。この関係は、グラフで示すと図5に示すような関係である。この関係に、ステップS36にて計算されたバックモニタ設定値Imcを当てはめることで、レーザ駆動回路14が出力する駆動信号の強度Iopcを計算することができる。次にレーザ強度設定回路36は、ステップS38にて計算された駆動信号の強度Iopcのデータをレーザ駆動回路14に出力する。これにより、レーザ駆動回路14が出力する駆動信号の強度Iopは、ステップS38にて計算された強度Iopcになり、バックモニタ18が出力する信号を増幅した信号の強度Imは、ステップS36にて計算された強度Imcになる。
次にレーザ強度設定回路36は、ステップS42にてセンサ信号取出回路40から入力してメモリに記憶された受光強度データD(n)の数が、上限値になったか、すなわち、ラインセンサ28のすべての受光素子に対応する受光強度データD(n)が入力したか判定し、受光強度データD(n)の数が上限値になっていなければ、Noと判定してステップS44を経由してステップS42に戻ることを繰り返す。これを繰り返していると、受光強度データD(n)の数が、上限値になるのでYesと判定してステップS46へ行き、ステップS46にてメモリに記憶された受光強度データD(n)とバックモニタ18が出力する信号を増幅した信号の強度データImnをすべてクリアする。そしてステップS12に戻り、上述した処理を再び行う。
このように、レーザ強度設定回路36は、内蔵するプログラムをスタートさせると、入力する受光強度データD(n)とバックモニタ18が出力する信号を増幅した信号の強度データImnとを用いて、ラインセンサ28が受光する反射光の強度が設定値になるための駆動信号の強度Iopcを計算し、レーザ駆動回路14へ出力することを繰り返す。これにより、レーザ光源16から出射するレーザ光の測定対象物OBにおける照射位置が変化し、測定対象物OBの表面の反射率が変化しても常にラインセンサ28が受光する反射光の強度は一定になる。
上述したように、コントローラ60は走査用光学系駆動回路12から最終位置到達を意味する信号を入力すると、レーザ強度制御回路30に停止指令を出力するが、より詳細にはレーザ強度制御回路30内のA/D変換器34、タイミング指令回路38、及びレーザ強度設定回路36に停止指令を出力する。レーザ強度設定回路36に停止指令が入力した時点では、レーザ強度設定回路36はステップS14、ステップS16の繰り返し処理、又はステップS18乃至ステップS23の繰り返し処理、又はステップS26乃至ステップS31の繰り返し処理、又はステップS42、ステップS44の繰り返し処理のいずれかを行っている。そして、いずれの場合もステップS16、ステップS22、ステップS30、ステップS44にてYesと判定してステップS48へ行き、ステップS48にてプログラムを終了する。
なお、ステップS23は、測定対象物OBからの反射光が発生しないか、反射光の強度が極度に小さく、入力したすべての受光強度データD(n)で設定値Dsを満たすものがなかった場合、ステップS46を経由してステップS12に戻るためのものである。ステップS23があるため、測定対象物OBに孔があって反射光が発生しないときは、ステップS12乃至ステップS23及びステップS46が繰り返し実行され、反射光が発生するまでそれまでの出射レーザ光の強度を保つことができる。また、ステップS31は、測定対象物OBまでの距離の関係で反射光がラインセンサ28の端の方に生じ、受光強度データD(n)が設定値Dsより大きくなった後、その後の受光強度データD(n)で設定値Dsより小さくなるものがなかった場合、ステップS46を経由してステップS12に戻るためのものである。
また、測定対象物OBの反射率が大きく迷光が発生する場合でも、受光強度曲線の幅Wnを検出する受光強度のラインDsを、受光強度データが飽和する値の半分程度で設定しているので、本来の反射光以外の反射光の受光箇所で、受光強度データD(n)が設定値Dsより大きくなることはなく、ステップS20にてYesと判定されたときは、本来の反射光の受光箇所での受光強度データD(n)によると見なしてよい。
上記説明からも理解できるように、上記実施形態においては、測定対象物OBに向けてレーザ光を出射するレーザ光源16と、測定対象物OBのレーザ光の照射点で発生する散乱光の一部である反射光を結像レンズ26を介して受光し、受光位置ごとの単位面積あたりの光量に相当する信号を出力するラインセンサ28と、ラインセンサ28が受光する反射光の総光量が予め定められた設定値になるよう、レーザ光源16が出射するレーザ光の強度を制御するレーザ強度制御回路30とを備えた3次元形状測定装置において、レーザ強度制御回路30は、ラインセンサ28が出力する信号から作成される、受光位置に対する単位面積あたりの光量である受光強度曲線において、予め設定された強度のレベルにおける受光強度曲線の幅Wnを検出し、検出した受光強度曲線の幅Wnが、予め定められた受光強度曲線の幅Wtになるよう制御を行うようにしている。
これによれば、測定対象物OBの反射光をすべてラインセンサ28で受光しているので反射光の損失がない。そして、ラインセンサ28が出力する信号から作成される、受光位置に対する単位面積あたりの光量である受光強度曲線において、予め設定された強度のレベルにおける受光強度曲線の幅Wnを検出し、検出した幅Wnが定められた受光強度曲線の幅Wtになるよう、レーザ光源16が出射するレーザ光の強度を制御するのみであるので制御が簡単であり、ラインセンサ28が反射光を受光したタイミングの僅か後のタイミングでレーザ光強度は制御される。すなわち、先行技術文献である特許文献1に示される制御装置が有する利点はそのままである。そして、ラインセンサ28から反射する反射光を受光するフォトディテクタは不要であり、迷光があっても受光強度曲線の幅Wnを検出するための強度レベルを適切に設定すれば、正規の反射光による箇所で幅Wnを検出できるので影響はなく、レーザ光強度の制御を精度よく行うことができる。
また、上記実施形態においては、レーザ強度制御回路30は、具体的には、レーザ光源16が出射しているレーザ光の強度Lnを検出するバックモニタ18、増幅回路32及びA/D変換器34からなるレーザ光強度検出機器と、ラインセンサ28が出力する信号から受光強度曲線を作成し、受光強度曲線の幅Wnを検出するレーザ強度設定回路36のプログラムの一部と、予め定められた微小時間ごとに、レーザ光強度検出機器が検出したレーザ光の強度Lnと、該プログラムの一部が検出した受光強度曲線の幅Wnと、予め定められた受光強度曲線の幅Wtとを用いて、レーザ光源16が出射すべきレーザ光の強度LcをLc=(Wt/Wn)2・Lnなる式で計算し、強度Lcのレーザ光を出射するための駆動信号強度を設定するレーザ強度設定回路36のプログラムの別の一部とを備えている。
これによれば、受光強度曲線の幅Wnが設定された幅Wtから差があっても、Lc=(Wt/Wn)2・Lnなる式で出射すべきレーザ光の強度Lcを計算して設定すれば、受光強度曲線の幅Wnはすぐに設定された幅Wtになるので、レーザ光の強度Lcの設定を微小時間ごとに実行すれば、レーザ光強度の制御を精度よく行うことができる。
また、レーザ強度制御回路30は、より具体的には、レーザ光源16が出射しているレーザ光の所定の割合である一部のレーザ光を受光して、受光強度Imnを検出するバックモニタ18、増幅回路32及びA/D変換器34からなるレーザ光強度検出機器と、ラインセンサ28が出力する信号から受光強度曲線を作成し、受光強度曲線の幅Wnを検出するレーザ強度設定回路36のプログラムの一部と、予め定められた微小時間ごとに、レーザ光強度検出機器が検出した受光強度Imnと、該プログラムの一部が検出した受光強度曲線の幅Wnと、予め定められた受光強度曲線の幅Wtとを用いて、Imc=(Wt/Wn)2・Imnなる式で受光強度Imcを計算し、計算された受光強度Imcを、予め記憶されているレーザ光源16に出力される駆動信号の強度とレーザ光強度検出機器が検出する受光強度との関係に当てはめて、レーザ光源16に出力する駆動信号の強度を設定するレーザ強度設定回路36のプログラムの別の一部とを備えている。
これによれば、レーザ光の強度を設定する場合、通常設定するのはレーザ光源16に出力される駆動信号の強度であるが、レーザ光源16に出力される駆動信号の強度とレーザ光強度検出機器が検出する受光強度との関係を定期的に測定して記憶し直せば、長期間の間に駆動信号の強度とレーザ光の強度との関係が変化しても、その影響を除去することができ、レーザ光の強度制御をより精度よく行うことができる。
なお、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記実施形態は、本発明をレーザ光を走査しながら照射する3次元形状測定装置に適用した形態であるが、本発明は、レーザ光を対象物に照射して対象物表面からの反射光を受光し、該反射光の強度が一定になるよう、照射するレーザ光の強度を制御することを行う装置であれば、どのような装置でも適用することができる。例えば、レーザ光を対象物に照射して反射光をラインセンサで受光し、受光位置から対象物までの距離を3角測量法により測定する距離測定装置にも本発明は適用することができる。また、レーザ光を対象物に照射して反射光をラインセンサで受光し、受光位置から対象物までの距離を3角測量法により求め、該距離の変化を測定する変位計にも本発明は適用することができる。また、レーザ光を測定対象物に照射して反射光をラインセンサで受光し、レーザ光の照射点を測定対象物と相対的に移動させて、レーザ光の照射点ごとに受光位置から測定対象物までの距離を3角測量法により求め、測定対象物表面の凹凸を測定する表面形状測定装置にも本発明は適用することができる。
また、上記実施形態では、レーザ光源16が出射しているレーザ光の一部を受光して受光強度を検出するのにバックモニタ18を設けたが、出射レーザ光の一部を受光して受光強度を検出できれば、どのような方法を用いてもよい。例えば、出射レーザ光をビームスプリッタ等で分岐させてフォトディテクタ等で受光するようにしてもよい。
また、上記実施形態では、レーザ光源16が出射しているレーザ光の一部を受光して受光強度を検出するバックモニタ18を設け、出射しているレーザ光の強度を該受光強度により検出した。そして、レーザ光の強度を設定する際は、出射すべき強度のレーザ光が出射したときの該受光強度を計算し、記憶している駆動信号強度と該受光強度との関係に当てはめて駆動信号強度を計算し、設定した。しかし、検出したレーザ光の強度Lnと、検出した受光強度曲線の幅Wnと、予め定められた受光強度曲線の幅Wtとを用いて、レーザ光源16が出射すべきレーザ光の強度LcをLc=(Wt/Wn)2・Lnなる式で計算して設定することができれば、別の方法を用いてもよい。例えば、駆動信号強度とレーザ光強度との関係を予め記憶しておき、駆動信号強度を検出して記憶されている該関係に当てはめて出射しているレーザ光の強度を求め、上記式で出射すべきレーザ光の強度Lcを計算し、記憶されている該関係に当てはめて駆動信号強度を計算して設定してもよい。
また、上記実施形態では、測定対象物OBからの反射光をラインセンサ28で受光するようにしたが、受光強度曲線のデジタルデータが得られれば、別のセンサを用いてもよい。例えば、ラインセンサ28の代わりにエリアセンサを設け、反射光を走査用光学系24を介することなく受光するようにしてもよい。この場合、受光強度データとして用いるデータは、エリアセンサにおいて反射光が結像されている箇所の1列の受光素子のデータである。
また、上記実施形態では、レーザ強度設定回路36にセンサ信号取出回路40及びA/D変換器34からデジタルデータを入力させ、レーザ強度設定回路36が内臓するプログラムを実行することで、レーザ駆動回路14が出力する駆動信号強度を計算するようにした。しかし、上記実施形態と同様の処理を行って該駆動信号強度を計算することができるならば、プログラム処理とは別の方法を用いてもよい。例えば、センサ信号取出回路40をラインセンサ28が出力する信号をローパスフィルタを通す等によりアナログ信号に変換するものにし、該アナログ信号を設定されたラインをクロスすると検出信号を発生する回路に入力させて、検出信号が発生する2つのタイミングから受光強度曲線の幅Wnを検出するようにしてもよい。そして、検出した受光強度曲線の幅Wnを上記実施形態で示した計算式による変換を行う回路、及び図5に示す関係による変換を行う回路に入力させ、レーザ駆動回路14に駆動信号強度のデータを出力させるようにしてもよい。
なお、上記実施形態におけるレーザ光は波長が均一でコヒーレンス性の高い平行光であるが、本発明においてレーザ光とするものはこれに限定されず、断面径が小さい平行光すべてを指すものとする。すなわち、SLD(スーパールミネッセントダイオード)の出射光を平行光にしたものや、LED光やランプ光等の拡散する光を長尺パイプ内を進行させる等で平行光にした光も、レーザ光に該当するものとする。