(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記計測部の計測結果に基づいて、前記半田の前記表面と前記基板との距離が前記部品に近づくに連れて大きくなる傾斜領域Gvを前記半田の前記表面から探索し、前記傾斜領域Gvを探索した結果に基づいて前記半田の状態の良否を判断する請求項4に記載の外観検査装置。
前記計測部は、前記半田の前記表面に光を照射する照射器および光検出器を有し、前記照射器から照射されて前記半田の表面で反射された光を前記光検出器で検出して光検出結果を取得する光検出動作を実行し、
前記制御部は、前記光検出結果に基づいて前記三次元形状を算出する請求項1ないし6のいずれか一項に記載の外観検査装置。
前記制御部は、前記三次元形状を算出するために、前記照り返し光が入射する照り返し箇所と前記基板との距離を算出するにあたっては、所定の光量より大きい照り返し光を照射する前記照射器を点灯させることで取得された前記光検出結果を除いて前記照り返し箇所の高さを算出する請求項9に記載の外観検査装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、半田の高さを基準にする方法では、半田の状態の良否を適切に判断できないおそれがあった。例えば、半田の濡れ性が悪いために部品が半田をはじいていると、部品の近傍では半田の量が少ない一方、部品から離れるにつれて半田が盛り上がるといった不良形状を半田が有し得る。かかる不良形状は、部品から離れた位置ではある程度の高さを有する。そのため、半田の高さを基準にする方法では、かかる不良形状を有する半田の状態を良いと誤って判断するおそれがあった。
【0005】
この発明は上記課題に鑑みなされたものであり、半田の状態の良否を適切に判断することを可能とする外観検査装置および外観検査方法の提供を目的とする。
【課題を解決するための手段】
【0006】
本発明にかかる外観検査装置は、上記目的を達成するために、部品を基板に接合する半田の表面の三次元形状を計測する計測部と、三次元形状の計測結果に基づいて、半田の表面に存在する傾斜を探索する制御部とを備え、制御部は、傾斜を探索した結果に基づいて半田の状態の良否を判断する。
【0007】
本発明にかかる外観検査方法は、上記目的を達成するために、部品を基板に接合する半田の表面の三次元形状を計測する工程と、三次元形状の計測結果に基づいて、半田の表面に存在する傾斜を探索する工程と、傾斜を探索した結果に基づいて半田の状態の良否を判断する工程とを備える。
【0008】
このように構成された本発明(外観検査装置、外観検査方法)では、半田の表面に存在する傾斜を探索し、その結果に基づいて半田の状態の良否を判断する。このように半田の高さではなく、半田の表面の傾斜に基づくことで、半田の状態の良否を適切に判断することが可能となっている。
【0009】
この際、制御部は、勾配の角度および向きが所定の探索条件を満たす傾斜を探索するように、外観検査装置を構成しても良い。
【0010】
また、制御部は、三次元形状の計測結果から傾斜の勾配の角度および向きを算出した結果に基づいて、傾斜を探索するように、外観検査装置を構成しても良い。
【0011】
また、制御部は、三次元形状の計測結果に基づいて、半田の表面と基板との距離が部品に近づくに連れて小さくなる凹傾斜領域を半田の表面から探索し、凹傾斜領域を探索した結果に基づいて半田の状態の良否を判断するように、外観検査装置を構成しても良い。
【0012】
このように凹傾斜領域を半田の表面から探索する構成では、部品の近傍では半田の量が少ない一方、部品から離れるにつれて半田が盛り上がるといった不良形状を半田が有する場合には、かかる不良形状に存在する凹傾斜領域を探知することができる。したがって、かかる不良形状を半田が有する場合であっても、凹傾斜領域を探索した結果に基づくことで、半田の状態の良否を適切に判断することができる。
【0013】
さらに、制御部は、所定の探索条件を満たす凹傾斜領域を探索するように、外観検査装置を構成しても良い。このように凹傾斜領域が満たす探索条件を課すことで、後に例示するように、半田の状態の良否をより適切に判断し得る。
【0014】
具体的には、制御部は、傾斜の方向が所定の傾斜角度範囲内にあるという探索条件を満たす凹傾斜領域を探索するように、外観検査装置を構成しても良い。あるいは、制御部は、勾配の角度が所定の勾配角度範囲内にあるという探索条件を満たす凹傾斜領域を探索するように、外観検査装置を構成しても良い。
【0015】
さらに、ユーザーから入力された内容に応じて探索条件を設定する設定部をさらに備えるように、外観検査装置を構成しても良い。このような構成では、ユーザーが半田の状態の良否を判断する基準を設定することができる。その結果、ユーザーが求める精度で、半田の状態の良否を判断することができる。
【0016】
ちなみに、凹傾斜領域を探索した結果に基づく半田の状態の良否判定の具体的態様としては種々考えられる。したがって、凹傾斜領域を探知した場合には、半田の状態が悪いと判断するように、外観検査装置を構成しても良い。ただし、探知された凹傾斜領域の面積が狭い場合等には、必ずしも半田の状態を悪いと即断することが適当とは限らない。そこで、制御部は、凹傾斜領域を探索した結果、所定の面積より広い凹傾斜領域を探知した場合には、半田の状態が悪いと判断するように、外観検査装置を構成しても良い。かかる構成では、凹傾斜領域の面積の広さに応じて、半田の状態が悪いことを適切に判断することができる。
【0017】
この際、状態の良い半田の表面に表れる傾向にある凸傾斜領域を探索した結果を併用して、半田の状態の良否を判断しても良い。すなわち、制御部は、計測部の計測結果に基づいて、半田の表面と基板との距離が部品に近づくに連れて大きくなる凸傾斜領域を半田の表面から探索し、凸傾斜領域を探索した結果に基づいて半田の状態の良否を判断するように、外観検査装置を構成しても良い。このように、凹傾斜領域を探索した結果および凸傾斜領域を探索した結果に基づくことで、半田の状態の良否をより適切に判断することができる。
【0018】
より具体的には、制御部は、凸傾斜領域を探索した結果、所定の面積より広い凸傾斜領域を探知しない場合には、半田の状態が悪いと判断するように、外観検査装置を構成しても良い。かかる構成では、半田の状態が悪いことを適切に判断することができる。
【0019】
ところで、半田の表面の三次元形状を計測する構成としては、種々の具体的態様が考えらえる。そこで、計測部は、半田の表面に光を照射する照射器および光検出器を有し、照射器から照射されて半田の表面で反射された光を光検出器で検出して光検出結果を取得する光検出動作を実行し、制御部は、光検出結果に基づいて三次元形状を算出するように、外観検査装置を構成しても良い。
【0020】
なお、照射器から光を照射する構成では、照射器から照射されて半田に直接入射する光の他に、照射器から照射されて例えば基板や部品で反射された後に半田に入射する照り返し光が存在し得る。かかる照り返し光は、半田の表面の三次元形状の算出精度を低下させるおそれがある。そこで、制御部は、照射器から射出されてから反射された後に半田に入射する照り返し光を探索した結果に基づいて、三次元形状を算出するように、外観検査装置を構成しても良い。かかる構成では、照り返し光の影響を抑制して、半田の表面の三次元形状を高精度に算出することができる。
【0021】
また、計測部は、複数の前記照射器を有し、各照射器を個別に点灯させて光検出動作を実行して各照射器について光検出結果を取得し、制御部は、照り返し光が探知された場合は、照り返し光を照射する照射器を特定した結果に基づいて、三次元形状を算出するように、外観検査装置を構成しても良い。かかる構成では、照り返し光の影響を抑制して、半田の表面の三次元形状を高精度に算出することができる。
【0022】
ここで、照り返し光を照射する照射器の特定結果に基づいて三次元形状を算出する具体的態様は、種々考えられる。一例を挙げると、制御部は、三次元形状を算出するために、照り返し光が入射する照り返し箇所と基板との距離を算出するにあたっては、所定の光量より大きい照り返し光を照射する照射器を点灯させることで取得された光検出結果を除いて照り返し箇所の高さを算出するように、外観検査装置を構成しても良い。かかる構成では、照り返し光の影響を抑制して、半田の表面の三次元形状を高精度に算出することができる。
【発明の効果】
【0023】
半田の表面に存在する傾斜を探索し、その結果に基づいて半田の状態の良否を判断する。このように半田の高さではなく、半田の表面の傾斜に基づくことで、半田の状態の良否を適切に判断することが可能となっている。
【発明を実施するための形態】
【0025】
図1は、本発明にかかる外観検査装置を模式的に例示するブロック図である。この外観検査装置1は、制御装置100によって搬送コンベア2、検査ヘッド3および駆動機構4を制御することで、基板10(プリント基板)に部品(電子部品)を接合する半田Bの状態の良否を検査する。
【0026】
搬送コンベア2は、基板10を所定の搬送経路に沿って搬送する。具体的には、搬送コンベア2は、検査前の基板10を外観検査装置1内の検査位置に搬入し、基板10を検査位置で水平に保持する。また、検査位置における基板10への検査が終了すると、搬送コンベア2は、検査後の基板10を外観検査装置1の外へ搬出する。
【0027】
検査ヘッド3は、撮像領域R31内を上方から撮像する撮像カメラ31を有しており、検査位置に搬入された基板10の半田B(検査対象部位)を撮像領域R31に収めて撮像カメラ31によって撮像する。かかる撮像カメラ31としては、例えばCCD(Charge Coupled Device)カメラを用いることができる。さらに、検査ヘッド3は、光強度分布が正弦波状に変化する縞状のパターンの光(パターン光)を撮像領域R31に投影する投影機32を有する。投影機32は、LED(Light Emitting Diode)等の光源と、光源からの光を撮像領域R31へ向けて反射するデジタル・マイクロミラー・デバイスとを有している。かかる投影機32は、デジタル・マイクロミラー・デバイスの各マイクロミラーの角度を調整することで、互いに位相の異なる複数種のパターン光を撮像領域R31に投影できる。つまり、検査ヘッド3は、投影機32から投影するパターン光の位相を変化させながら撮像カメラ31により撮像を行うことで、位相シフト法によって撮像領域R31内の半田Bの三次元形状を計測することができる。
【0028】
ちなみに、検査ヘッド3は、8個の投影機32を有している(
図1では、図示を簡便化するために2個の投影機32が代表して示されている)。8個の投影機32は、撮像カメラ31の周囲を囲むように配置されており、鉛直方向Zを中心として円周状に等ピッチで並ぶ。そして、各投影機32は、撮像カメラ31の撮像領域R31に対して斜め上方からパターン光を投影する。こうして、互いに異なる方向から、撮像領域R31にパターン光を投影することが可能となっている。
【0029】
駆動機構4は、検査ヘッド3を支持しつつ、モーターによって水平方向および鉛直方向へ検査ヘッド3を駆動させる。この駆動機構4の駆動によって、検査ヘッド3は半田Bの上方に移動して、半田Bを撮像領域R31内に捉えることができ、撮像領域R31内の半田Bの三次元形状を計測できる。
【0030】
制御装置100は、CPU(Central Processing Unit)およびメモリーで構成された主制御部110を有しており、主制御部110が装置各部の制御を統括することで、検査が実行される。また。制御装置100は、ディスプレイ、キーボードおよびマウス等の入出力機器で構成されたユーザーインターフェース200を有しており、ユーザーは、ユーザーインターフェース200を介して制御装置100に指令を入力したり、制御装置100による検査結果を確認したりすることができる。さらに、制御装置100は、投影機32を制御する投影制御部120、撮像カメラ31を制御する撮像制御部130および駆動機構4を制御する駆動制御部140を有する。搬送コンベア2が検査位置に基板10を搬入すると、主制御部110は、駆動制御部140により駆動機構4を制御して、基板10の半田Bの上方へ検査ヘッド3を移動させる。これによって、撮像カメラ31の撮像領域R31内に半田Bが収まる。
【0031】
続いて、主制御部110は、投影機32から半田Bを含む撮像領域R31へパターン光を投影しつつ撮像領域R31に投影されたパターン光を撮像カメラ31により撮像する(パターン撮像動作)。具体的には、主制御部110は、不揮発性メモリーで構成された記憶部150を有しており、記憶部150に記憶された投影パターンデータDp(S)を読み出す。そして、主制御部110は、記憶部150から読み出した投影パターンデータDp(S)に基づいて投影制御部120を制御することで、投影機32のデジタル・マイクロミラー・デバイスの各マイクロミラーの角度を投影パターンデータDp(S)に応じて調整する。こうして、撮像領域R31には、投影パターンデータDp(S)に応じたパターン光が投影される。さらに、主制御部110は、撮像制御部130を制御することで、撮像領域R31に投影されたパターン光を撮像する。この撮像結果は、主制御部110が有する画像処理部160において撮像データDs(S)に変換されて、記憶部150に記憶される。なお、記憶部150には、互いに位相の異なる4種類の投影パターンデータDp(S)が記憶されており(S=1,2,3,4)、パターン撮像動作は、投影パターンデータDp(S)を変えながら4回実行される。その結果、それぞれ位相の異なるパターン光を撮像した4種類の撮像データDs(S)が取得される。
【0032】
主制御部110は、こうして取得された4種類の撮像データDs(S)から、位相シフト法によって、撮像領域R31の高さを撮像カメラ31の画素毎に求める。これによって、半田Bの表面の高さh(
図2)が撮像カメラ31の画素毎に求められることとなる。なお、撮像領域R31の高さは、例えば対象画素に対応する撮像領域R31内の点と基板10との距離として求められる。また、半田Bの表面の高さhは、例えば基板10(あるいは基板10に平行な基準平面)と半田Bの表面との距離として求められ、基板10が水平に保持されている構成では鉛直方向Z(すなわち、基板10に垂直な方向)における基板10(あるいは基板10に平行な基準平面)と半田Bの表面との距離として求められる。こうして、半田Bの表面の高さhを画素毎に示すデータを含んだ三次元形状データDtが算出されて、記憶部150に記憶される。
【0033】
主制御部110は、こうして取得された三次元形状データDtに基づいて、半田Bの状態の良否を判断する。特に、主制御部110は、半田Bの表面と基板10との距離(高さh)が部品Aに近づくに連れて小さくなる凹傾斜領域(換言すれば、部品Aに近づくに連れて下る下り坂領域)を半田Bの表面から探索した結果に基づいて、半田Bの状態の良否を判断する。
【0034】
図2は、部品を基板に接合する半田の状態が悪い場合を模式的に例示する図である。
図3は、
図2において部品の右側に配置された半田の形状を模式的に例示する斜視図である。ここの例では、基板10の表面に部品配置領域10aと当該部品配置領域10aに隣接する半田配置領域10b(ランド)とが設けられている。そして、部品配置領域10aに配置された部品Aが半田配置領域10bに取り付けられた半田Bによって基板10表面に接合されている。なお、両図および以下の図面では、部品配置領域10aと半田配置領域10bとが並ぶ方向をX方向とするXYZ直交座標軸を適宜示す。例えば、このXYZ直交座標軸は検査対象となる半田B毎に設定することができ、X方向は半田Bから部品Aへ向かう方向を正にとることができる。
【0035】
ここの例では、半田Bの濡れ性が悪いために部品Aが半田Bをはじいている。そのため、部品Aの近傍では半田Bの量が少ない一方、部品AからX方向へ離れるにつれて半田Bが盛り上がるといった不良形状を半田Bが有する。かかる不良形状が生じると、部品Aと半田Bの境界近傍において半田Bの表面Bsに凹傾斜領域Gcが生じる。主制御部110は、このような不良形状に対応可能な適切な検査を行うため、半田Bの不良形状が有する凹傾斜領域Gcを探索した結果に基づいて半田Bの良否を判断する。
【0036】
ちなみに、凹傾斜領域Gcは、半田Bの状態が悪い場合に顕著に表れるものの、半田Bの状態が良い場合であっても表れ得る。そのため、凹傾斜領域Gcを探索した結果に基づいて半田Bの状態の良否を即断した場合、半田Bの状態が良いにも拘わらず、半田Bの状態が悪いと判断することも想定される。ただし、半田Bの状態が良い場合と悪い場合とでは、凹傾斜領域Gcの傾斜の方向あるいは勾配の角度等の傾向に差異がある。具体的には、半田の状態が悪い場合は、傾斜の方向がよりX方向へ向いた(換言すれば、X方向との間に成す角度が小さい)凹傾斜領域Gcが顕著に表れる傾向にあるとともに、勾配の角度が急な凹傾斜領域Gcが顕著に表れる傾向にある。
【0037】
かかる傾向を利用して、主制御部110は、傾斜の方向および勾配の角度が所定の条件を満たす凹傾斜領域Gcを探索する。この際、凹傾斜領域Gcの傾斜の方向や勾配の角度は一様ではなく、分布を有する。すなわち、
図3に示されるように、傾斜の方向や勾配の角度は、半田Bの表面Bsを構成する微小傾斜g(例えば、1画素に対応する領域の傾斜)によって異なる。なお、
図3では、微小傾斜gは、該当領域の傾斜の方向および勾配の角度を有する破線矢印で代表して示されている。
【0038】
図4は、微小傾斜が有する傾斜の方向および勾配の角度を説明するための模式図である。同図では、微小傾斜gについて、傾斜の方向θおよび勾配の角度φが示されている。傾斜の方向θは、微小傾斜gをXY平面に投影した影g(xy)とX方向が成す角度として求められ、微小傾斜gの方位角に相当する。勾配の角度φは、影g(xy)に平行な直線lと微小傾斜gとが成す角度として求められ、微小傾斜gの仰角に相当する。
【0039】
そこで、主制御部110は、傾斜の方向θが所定の傾斜角度範囲内にあるとともに勾配の角度φが所定の勾配角度範囲にある微小傾斜gで構成される凹傾斜領域Gcを探索する。この際、ユーザーは、ユーザーインターフェース200において、傾斜角度範囲および勾配角度範囲を設定することができる。
【0040】
図5は、ユーザーインターフェースの構成を模式的に例示する図である。ユーザーインターフェース200は、角度設定画面210、θ設定部220およびφ設定部230を有する。ユーザーは、θ設定部220を操作することで、傾斜角度範囲の最小値θmin(同図の例では−30度)および最大値θmax(同図の例では+30度)のそれぞれを変更することができる。同様に、ユーザーは、φ設定部230を操作することで勾配角度範囲の最小値φmin(同図の例では30度)および最大値φmax(同図の例では60度)のそれぞれを変更することができる。そして、角度設定画面210では、このように設定された角度θ、φを視覚的に確認するのに適した画像が表示される。同図の例の角度設定画面210では、円錐形を用いて、傾斜角度範囲Δθが表示されるとともに、勾配角度範囲の代表的な勾配の角度φ(例えば、中央値)が表示されている。さらに、ユーザーインターフェース200は、表示画面240を有している。この表示画面240には例えば、検査の結果凹傾斜領域Gcが探知された半田Bを、凹傾斜領域Gcをハイライトしつつ表示することができる。
【0041】
図6は、外観検査装置で実行される検査の内容を例示するフローチャートである。同フローチャートは、主制御部110が装置各部を制御することで実行される。ステップS101では、基板10が検査位置に搬入される。続いて、ステップS102において、撮像カメラ31の撮像位置(ビュー)を示す変数Vがゼロに設定された後、ステップS103において、変数Vがインクリメントされる。そして、ステップS104では、変数VがVmax以下か否かが判断される。つまり、基板10に対しては、複数個(Vmax)の撮像位置が設定されており、変数VがVmaxとなるまで変数Vをインクリメントすることで、複数の撮像位置に対して順番に撮像カメラ31を移動させながら、各撮像位置について以後のステップS105〜S118の動作を行う。すなわち、ステップS104で変数VがVmax以下である(すなわち「YES」と)判断されると、ステップS105に進んで、撮像カメラ31を変数Vが示す撮像位置へと移動させる。これによって、変数Vに対応する半田Bおよび半田Bの周囲(基板10、部品A)が照射領域R31内に収まる。
【0042】
続いてステップS106において、8個の投影機32を識別する変数Pがゼロに設定された後、ステップS107において、変数Pがインクリメントされる。そして、ステップS108では、変数PがPmax(=8)以下か否かが判断される。つまり、変数PがPmaxとなるまで変数Pをインクリメントすることで、パターン光を投影する投影機32を8個の投影機32の間で1個ずつ順番に切り換えながら、以後のステップS109〜S112の動作を実行する。
【0043】
ステップS109において、互いに位相の異なるパターン光を示す4個の投影パターンデータDp(S)を識別する変数Sがゼロに設定された後、ステップS110において、変数Sがインクリメントされる。そして、ステップS111では、変数SがSmax(=4)以下か否かが判断される。つまり、変数SがSmaxとなるまで変数Sをインクリメントすることで、投影するパターン光の位相を4パターンの間で切り換えながら、以後のステップS112の動作を実行する。
【0044】
具体的には、投影機32から撮像領域R31にパターン光を投影しつつ撮像領域R31に投影されたパターン光を撮像カメラ31により撮像するパターン撮像動作を、4種類のパターン光それぞれについて行い、4種類の撮像データDs(S)を取得する。そして、4種類の撮像データDs(S)を取得し終えると(ステップS111で「NO」と判断されると)、ステップS113に進んで、半田Bを含む撮像領域R31の三次元形状データDtを位相シフト法によって算出し、ステップS107へ戻る。こうして、変数Pをインクリメントしながら、ステップS108〜S113を繰り返すことで、互いに異なる投影機32からパターン光を投影した際の8通りの三次元形状データDtを得ることができる。ちなみに、こうして求められる三次元形状データDtは、半田Bの三次元形状を示すデータおよび半田Bの周囲(基板10、部品A等)の三次元形状を示すデータを含む。
【0045】
8個の投影機32の全てについて三次元形状データDtを取得し終えると(ステップS108で「NO」と判断されると)、ステップS114に進む。このステップS114では、8通りの三次元形状データDtから、半田Bを含む撮像領域R31の三次元形状を最終的に決定する。具体的には、8通りの三次元形状データDtの示す高さhを画素毎に平均することで撮像領域R31の三次元形状を決定しても良いし、8通りの三次元形状データDtの示す高さhのうち外れ値を除去した残りの高さhを画素毎に平均することで撮像領域R31の三次元形状を決定しても良い。
【0046】
ステップS114において半田Bを含む撮像領域R31の三次元形状を示す三次元形状データDtが最終的に決定されると、ステップS115において、角度θ、φが画素毎に算出される。例えば撮像領域R31の表面(半田Bの表面Bsを含む)を構成する微小領域(算出対象の画素に対応する領域)に対する接平面あるいはこれに近似する平面の傾斜の傾きθおよび勾配の角度φが求められる。算出方法の一例を説明すると次のとおりである。まず、算出対象の画素およびこれに四方から隣接する4画素それぞれが示す高さhに沿う平面を近似的に求める。平面近似の方法は、例えば最小二乗法等を用いることができる。そして、この平面の傾斜の方向θおよび勾配の角度φを、算出対象の画素の傾斜の方向θおよび勾配の角度φとして求めればよい。具体例を挙げれば、平面の式を
z=α×x+β×y+γ
としたとき、角度θ、φは次式で求めることができる。
【0048】
ステップS115において、撮像領域R31に対応する各画素(半田Bの表面Bsの各画素を含む)について角度θ、φが算出されると、ステップS116、S117が実行される。つまり、ユーザーによって設定された検索条件(θmin≦θ≦θmax、φmin≦φ≦φmax)の範囲内の角度θ、φを有する画素が探索され(ステップS116)、探索条件を満たす画素で構成される凹傾斜領域Gcが抽出される(ステップS117)。ステップS118では、こうして凹傾斜領域Gcを探索した結果に基づいて、半田Bの良否が判断される。具体的には、所定の面積(凹傾斜用閾面積)より広い凹傾斜領域Gcを探知した場合には、当該凹傾斜領域Gcを表面に有する半田Bの状態を不良と判断する。
【0049】
ステップS118での良否判断が完了すると、ステップS103に戻る。そして、変数VがVmaxとなるまで変数Vをインクリメントすることで、複数の撮像位置に対して順番に撮像カメラ31を移動させながら、各撮像位置について以後のステップS105〜S118の動作を行い、半田Bの良否判断を行う。変数VがVmaxとなり、全ての撮像位置において半田Bの良否判断が完了すると、基板10を搬出して(ステップS119)、
図6のフローチャートを終える。
【0050】
以上に説明したように、このように構成された本実施形態では、半田Bの表面Bsに存在する傾斜(凹傾斜領域Gc)を探索し、その結果に基づいて半田Bの状態の良否を判断する。このように半田Bの高さではなく、半田Bの表面Bsの傾斜(凹傾斜領域Gc)に基づくことで、半田Bの状態の良否を適切に判断することが可能となっている。
【0051】
また、本実施形態は、半田Bの表面Bsの三次元形状を計測した結果に基づいて、半田Bの表面Bsと基板10との距離(高さh)が部品Aに近づくに連れて小さくなる凹傾斜領域Gcを半田Bの表面Bsから探索する。かかる構成では、部品Aの近傍では半田Bの量が少ない一方、部品Aから離れるにつれて半田Bが盛り上がるといった不良形状を半田Bが有する場合には、かかる不良形状に存在する凹傾斜領域Gcを探知することができる。したがって、かかる不良形状を半田Bが有する場合であっても、凹傾斜領域Gcを探索した結果に基づくことで、半田Bの状態の良否を適切に判断することができる。
【0052】
ちなみに、上記のような凹傾斜領域Gcは、半田Bの状態が悪い場合に顕著に表れる。しかしながら、半田Bの状態が良い場合であっても、凹傾斜領域Gcは表れ得る。そのため、凹傾斜領域Gcを探索した結果に基づいて半田Bの状態の良否を判断した場合、半田Bの状態が良いにも拘わらず、半田Bの状態が悪いと判断することも想定される。ただし、半田Bの状態が良い場合と悪い場合とでは、上述のように凹傾斜領域Gcの傾斜の方向θあるいは勾配の角度φ等の傾向に差異がある。そこで、本実施形態では、制御装置100は、所定の探索条件(傾斜角度範囲、勾配角度範囲)を満たす凹傾斜領域Gcを探索する。このように凹傾斜領域Gcが満たす探索条件を課すことで、半田Bの状態が良いにも拘らず半田Bの状態が悪いと判断することを抑制することができる。
【0053】
また、本実施形態では、ユーザーから入力された内容に応じて探索条件を設定するユーザーインターフェース200が備えられている。このような構成では、ユーザーが半田Bの状態の良否を判断する基準を設定することができる。その結果、ユーザーが求める精度で、半田Bの状態の良否を判断することができる。
【0054】
ちなみに、凹傾斜領域Gcを探索した結果に基づく半田Bの状態の良否判定の具体的態様としては種々考えられる。したがって、凹傾斜領域Gcを探知した場合には、半田Bの状態が悪いと判断しても構わない。ただし、探知された凹傾斜領域Gcの面積が狭い場合等には、必ずしも半田Bの状態を悪いと即断することが適当とは限らない。そこで、本実施形態の制御装置100は、凹傾斜領域Gcを探索した結果、所定の面積(凹傾斜用閾面積)より広い凹傾斜領域Gcを探知した場合には、半田Bの状態が悪いと判断する。かかる構成では、凹傾斜領域Gcの面積の広さに応じて、半田Bの状態が悪いことを適切に判断することができる。
【0055】
この際、凹傾斜用閾面積の値は、ユーザーインターフェース200によってユーザーが設定できるようにしても良い。これによって、ユーザーが求める精度で、半田Bの状態の良否を判断することができる。
【0056】
このように本実施形態では、外観検査装置1が本発明の「外観検査装置」の一例に相当し、検査ヘッド3および制御装置100が協働して本発明の「計測部」の一例として機能し、制御装置100が本発明の「制御部」の一例に相当し、ユーザーインターフェース200が本発明の「設定部」の一例に相当し、凹傾斜領域Gcが本発明の「凹傾斜領域」の一例に相当する。
【0057】
なお、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したものに対して種々の変更を加えることが可能である。例えば、
図7に示すフローチャートを実行するよう制御装置100を構成しても良い。ここで、
図7は、外観検査装置で実行される検査の内容の変形例を示すフローチャートである。以下では、上記実施形態との差異点を中心に説明することとし、共通点については相当符号を付して説明を省略する。
【0058】
上述したとおり、外観検査装置1では、互いに異なる方向から半田Bの表面Bsにパターン光を照射する複数の投影機32(照射器)と撮像カメラ31(光検出器)が設けられていた。そして、投影機32から半田Bに投影されたパターン光を撮像カメラ31により撮像して、撮像データDs(S)を取得するパターン撮像動作(光検出動作)が、複数の投影機32を個別に点灯させて実行していた。
【0059】
かかる構成では、投影機32から照射されて半田Bに直接入射する光の他に、投影機32から照射されて例えば基板10や部品Aで反射された後に半田Bに入射する照り返し光が存在し得る。かかる照り返し光は、半田Bの表面Bsの三次元形状の算出精度を低下させるおそれがある。これに対して、
図7のフローチャートでは、照り返し光の影響を補正しつつ半田Bの表面Bsの三次元形状を算出する。
【0060】
具体的には、ステップS108で「NO」と判断されると、ステップS201において変数Tがゼロに設定される。かかる変数Tは、照り返し光の影響を補正するためのステップS114、S115、S202〜S205のループ演算を、変数TがTmaxとなるまで行うために設定される。続いて、上記実施形態と同様にステップS114で半田Bの表面Bsを含む撮像領域R31の三次元形状が決定されて、ステップS115で角度θ、φが求められる。次に、ステップS202において、変数Tがインクリメントされて、ステップS203において、変数TがTmax以下か否かが判断される。そして、ステップS203で変数TがTmax以下であると判断されると、ステップS204に進む。
【0061】
ステップS204では、照り返し光の探索が実行される。
図8は、照り返し光の探索方法の一例を説明するための図である。同図では、同じ投影機32から射出された光L1、L2が例示されている。光L1は半田Bに直接入射する一方、光L2は基板10で反射された後に半田Bに入射しており、照り返し光となっている。ちなみに、同図で例示するデータ(X1、Y1、Z1)、(X2、Y2、Z2)、(X3、Y3、Z3)は、いずれもステップS114で各位置(X、Y)での高さZを求めた結果である。
【0062】
照り返し光の探索においては、ステップS114で求めた撮像領域R31の三次元形状(X、Y、Z)や角度θ、φ等に基づいて、半田B、基板10および部品A上の各点で反射された光の軌跡を示す方程式を求める。例えば、
図8では、半田B上の点(X1、Y1、Z1)で反射された後の光L1の軌跡を示す方程式として、
Z=f1(X、Y) …方程式1
が求められ、基板10上の点(X2、Y2、Z2)で反射された後の光L2の軌跡を示す方程式として、
Z=f2(X、Y) …方程式2
が求められる。方程式1で表される光の軌跡は点(X1、Y1、Z1)以外では半田Bの表面に一致しないため、半田Bの表面Bsの三次元形状を示すデータのうち、方程式1を満たすデータは(X1、Y1、Z1)の1つだけである。一方、方程式2で表される光の軌跡は点(X2、Y2、Z2)以外の点(X3、Y3、Z3)でも半田Bの表面Bsに一致する。そのため、データ(X2、Y2、Z2)のみならず、データ(X3、Y3、Z3)も方程式2を満たすこととなる。このように、照り返しが生じている場合には、ステップS114で求められたデータのうち2個(あるいはそれ以上)のデータが反射光を示す方程式を満たす。換言すれば、各点における反射光の軌跡を示す方程式を求め、半田Bの表面Bsの三次元形状を示すデータのうちから同一の方程式を満たすデータが2個以上発見された場合は、当該方程式に対応する光は照り返し光であると判断できる。
【0063】
さらに、ステップS204では、照り返し光が探知されると、照り返し光を射出する投影機32が特定されるとともに、照り返し光が半田Bの表面Bsに入射する位置に対応するXY位置(換言すれば、画素の位置)が特定される。そして、こうして特定された投影機32と、照り返しが入射するXY位置とが関連付けられる。
【0064】
ステップS205では、各画素に対応する半田Bの表面Bsの位置へ入射する照り返し光の光量が推定される。この際、同一のXY位置に入射する照り返し光が複数ある場合には、各照り返し光について光量が求められる。そして、所定の光量(閾光量)より大きい照り返し光を照射する投影機32を点灯させることで取得された撮像データDs(S)を除外する処理が、各XY位置について行われる。
【0065】
続くステップS114では、こうして照り返し光の影響を受けたデータを除外した撮像データDs(S)に基づいて、半田Bの表面Bsの三次元形状が再度求められる。これによって、ステップS114では、所定の光量より大きい照り返し光を照射する投影機32を点灯させることで取得された撮像データDs(S)を除いた上で、三次元形状データDtが求められることとなる。
【0066】
ところで、最初にステップS114で求めた三次元形状は照り返し光の影響を受けたものであり、精度が必ずしも高くない可能性がある。そのため、かかる三次元形状に基づいて探索された照り返し光も誤差を含み得る。かかる照り返し光の探索結果の誤差は、実際には照り返し光が入射しているのにそうでないと判断されるといった誤判断につながり得る。ただし、上記のループ演算は、かかる誤判断があった場合でも、三次元形状の算出精度を向上させることができるものである。すなわち、実際には照り返し光が入射しているのにそうでないと判断された箇所では、結果は改善されないが悪化もしない。一方、実際に照り返し光が入射している箇所を正しく判断できた場合は、結果が改善される。したがって、上記のループ演算を行った場合、基本的には三次元形状の精度が改善することとなる。
【0067】
また、三次元形状データDtの精度は、基本的にはループ演算の回数(すなわちTmax)が多いほど向上できる。そこで、ユーザーインターフェース200において、ユーザーがTmaxを設定できるように構成すれば、ユーザーが求める精度で三次元形状データDtを求めることができる。こうして、所定回数Tmaxのループ演算が終了すると、上記実施形態と同様に、ステップS116以後の動作が実行される。
【0068】
以上に説明したように、
図7の変形例では、制御装置100は、投影機32から射出されてから反射された後に半田Bに入射する照り返し光を探索した結果に基づいて、半田Bの表面Bsの三次元形状を算出する。かかる構成では、照り返し光の影響を抑制して、半田Bの表面Bsの三次元形状を高精度に算出することができる。
【0069】
また、制御装置100は、照り返し光が探知された場合は、照り返し光を照射する投影機32を特定した結果に基づいて、三次元形状を算出する。かかる構成では、照り返し光の影響を抑制して、半田Bの表面Bsの三次元形状を高精度に算出することができる。
【0070】
具体的には、制御装置100は、三次元形状を算出するために、照り返し光が入射する照り返し箇所と基板10との距離(高さ)を算出するにあたっては、所定の光量より大きい照り返し光を照射する投影機32を点灯させることで取得された撮像データDs(S)(光検出結果)を除いて照り返し箇所の高さを算出する。かかる構成では、照り返し光の影響を抑制して、半田Bの表面Bsの三次元形状を高精度に算出することができる。
【0071】
なお、照り返し光を照射する照射器の特定結果に基づいて三次元形状を算出する具体的態様は、上記のように所定の光量より大きい照り返し光を照射する投影機32に対応する撮像データDs(S)を除外する態様に限られない。つまり、照り返し光が最小の投影機32に対応する撮像データDs(S)を用いて三次元形状を算出しても良いし、照り返し光の小さい方から所定数(例えば2個)の投影機32に対応する撮像データDs(S)の平均値を用いて三次元形状を算出しても良いし、照り返し光の大きい方から所定数(例えば2個)の投影機32に対応する撮像データDs(S)を除いた残りの撮像データDs(S)のメディアン値を用いて三次元形状を算出しても良い。
【0072】
ところで、上記実施形態では、状態の悪い半田Bに生じる凹傾斜領域Gcを探索した結果に基づいて、半田Bの良否を判断していた。しかしながら、状態の良い半田Bに生じる凸傾斜領域を探索した結果に基づいて、半田Bの良否を判断しても良い。
図9は、部品を基板に接合する半田の状態が良い場合を模式的に例示する図である。ここの例では、半田Bの濡れ性が良いために半田Bが部品Aになじんでいる。そのため、部品Aの端からX方向へ部品Aから離れるにつれて半田Bの量が減少するといった形状を、半田Bが有する。かかる半田Bの表面Bsは、半田Bの表面Bsと基板10との距離(高さh)が部品Aに近づくに連れて大きくなる凸傾斜領域Gv(換言すれば、部品に近づくに連れて上る上り坂領域)を有する。
【0073】
そこで、状態の良い半田Bの表面Bsに表れる傾向にある凸傾斜領域Gvを探索した結果を併用して、半田Bの状態の良否を判断するように、
図6あるいは
図7で示す実施形態を変形しても良い。具体的には、ステップS117、S118の間に、三次元形状データDtに基づいて凸傾斜領域Gvを半田Bの表面Bsから探索するステップを追加する。この際、凹傾斜領域Gcの探索の場合と同様に角度θ、φが所定の探索条件を満たす凸傾斜領域Gvを探索するように構成することができる。さらに、凸傾斜領域Gvの探索条件を示す角度θ、φをユーザーインターフェース200においてユーザーが設定できるように構成することもできる。そして、追加したステップで所定の面積(凸傾斜用閾面積)よりも広い凸傾斜領域Gvを探知できない場合は、ステップS118の良否判断において半田Bの状態が悪いと判断する。
【0074】
かかる構成では、凹傾斜領域Gcを探索した結果および凸傾斜領域Gvを探索した結果に基づくことで、半田Bの状態の良否をより適切に判断することができる。特に、凸傾斜領域Gvを探索した結果、所定の面積より広い凸傾斜領域Gvを探知しない場合には、半田Bの状態が悪いと判断する。したがって、状態の良い半田Bの表面Bsに存在すべき凸傾斜領域Gvが十分な広さで存在しないことをもって、半田Bの状態が悪いことを適切に判断することができる。
【0075】
この際、凸傾斜用閾面積の値は、ユーザーインターフェース200によってユーザーが設定できるようにしても良い。これによって、ユーザーが求める精度で、半田Bの状態の良否を判断することができる。
【0076】
さらに、凹傾斜領域Gcを探索せずに、凸傾斜領域Gvのみを探索した結果に基づいて、半田Bの状態の良否を判断するように構成しても良い。かかる構成においても、半田Bの表面Bsに存在する傾斜(凸傾斜領域Gv)を探索し、その結果に基づいて半田Bの状態の良否を判断する。このように半田Bの高さではなく、半田Bの表面Bsの傾斜(凸傾斜領域Gv)に基づくことで、半田Bの状態の良否を適切に判断することが可能となっている。
【0077】
また、半田Bの三次元形状を求める具体的手法は、上記の位相シフト法に限られず、ステレオカメラを用いた手法などのその他の種々の手法であっても良い。
【0078】
また、凹傾斜領域Gcあるいは凸傾斜領域Gvを探索する際の探索条件も上記の内容に限られず、適宜変更することができる。
【0079】
また、座標軸の取り方や、角度θ、φの取り方も上記の例に限られず、適宜変更が可能である。