(57)【要約】【課題】  撮像装置及び照明源を備えるロボットアームに対する照明源の走査経路の教示工数を低減させる。【解決手段】  走査経路生成装置は、鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する形状データ取得部と、被検査体を撮像するための仮想的な撮像点と、被検査体の鏡面で正反射した反射光の光路上に撮像点が存在するような仮想的な照明点群との、被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する光学配置データ取得部と、被検査体に写り込ませる発光面であって、被検査体に対して走査する発光面の走査経路を示す走査経路データを、形状データおよび光学配置データを用いて、発光面の光の反射光が撮像点を通るように生成する生成部と、を備える。【選択図】図９
2020134221.tif 000002
【特許請求の範囲】
【請求項１】
走査経路生成装置であって、
鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する形状データ取得部と、
前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する光学配置データ取得部と、
前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する生成部と、
を備える、走査経路生成装置。
【請求項２】
請求項１に記載の走査経路生成装置であって、
前記生成部は、
前記形状データを用いて、前記撮像点からの撮像方向を示す複数の撮像線と前記被検査体との交点である交点群の位置座標を生成し、
前記交点群の位置座標と、前記照明点群の位置座標と、を用いて前記走査経路データを生成する、
走査経路生成装置。
【請求項３】
請求項２に記載の走査経路生成装置であって、
前記生成部は、
前記交点群の位置座標と、前記照明点群の位置座標と、を用いて、前記発光面の初期配置位置を生成し、
前記交点群の位置座標と、前記照明点群の位置座標との少なくともいずれか一方を用いて前記発光面の走査方向を生成し、
前記初期位置および前記走査方向を用いて、前記発光面の走査距離を生成し、
前記初期位置と、前記走査方向と、前記走査距離を用いて、前記走査経路データを生成する、
走査経路生成装置。
【請求項４】
請求項３に記載の走査経路生成装置であって、
前記生成部は、
前記発光面を形成する点光源の位置座標の平均位置が、前記照明点群の位置座標の平均位置と略一致させると共に、前記点光源の光路が、前記照明点群の位置座標の平均位置と、前記交点群の位置座標の平均位置とを結ぶ線分に沿うように、前記発光面の初期配置位置を設定する、
走査経路生成装置。
【請求項５】
請求項３および請求項４のいずれか一項に記載の走査経路生成装置であって、
前記生成部は、
前記撮像点に対して、前記被検査体で正反射した前記複数の撮像線と前記発光面とが交差可能な走査距離の最大距離を、前記走査距離として決定する、
走査経路生成装置。
【請求項６】
請求項１から請求項５のいずれか一項に記載の走査経路生成装置であって、
前記光学配置データ取得部は、
前記被検査体に対して、前記被検査体を撮像する撮像装置の視野幅に応じて設定された複数の撮像エリアのそれぞれに対して、前記撮像点および前記照明点群が配置された前記光学配置データを取得し、
前記生成部は、
前記複数の撮像エリアのそれぞれに対して、対応する前記光学配置データを用いて、前記撮像エリア内における前記走査経路データを生成する、
走査経路生成装置。
【請求項７】
走査経路生成プログラムであって、情報処理装置に、
鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得するステップと、
前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得するステップと、
前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成するステップと、
を実行させる、
走査経路生成プログラム。
【請求項８】
走査経路生成方法であって、情報処理装置を用いて、
鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する工程と、
前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する工程と、
前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する工程と、
を実行する、走査経路生成方法。
【請求項９】
外観検査システムであって、
鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する形状データ取得部と、前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する光学配置データ取得部と、前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する生成部と、を備える、走査経路生成装置と、
前記被検査体に前記発光面を写り込ませる照明源と、
前記被検査体を撮像する撮像装置と、
前記照明源を３次元方向に移動可能に駆動する駆動部と、
前記走査経路データを用いて、前記駆動部の駆動を制御する駆動制御部と、
を備える、外観検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表面が鏡面であり立体形状の被検査体の表面状態を検査する技術に関する。
【背景技術】
【０００２】
従来、検査対象物の欠陥の有無の検査を行う検査装置が知られている。例えば、特許文献１には、画像取得部と照明を備え、欠陥の有無を検出するためのスキャンを実行可能な計測ヘッドを有する検査装置が開示されている。この検査装置において、検査対象物の形状計測データから検査対象面の法線ベクトルを算出し、法線ベクトル方向に計測ヘッド部のワークディスタンス分の距離を離した位置を教示点として計測軌道経路を生成する技術が開示されている。
【０００３】
また、特許文献２には、被検査体表面が鏡面光沢を有していても、被検査体表面の凹凸の検出精度をより高めることができる表面検査技術が開示されている。特許文献３には、光の強度による縞パターンを写り込ませた対象物を、時間相関カメラにより撮像した時間相関画像を解析して被検査体の異常を検出する技術が開示されている。特許文献４には、鏡面を有する検査対象の外観検査システムにおいて、照明源と検査対象の配置が予め決められた状況でカメラ配置を決定することが開示されている。
【０００４】
一般に、目視検査の自働化を目的とした外観検査システムは、照明源とカメラからなる検査装置を用いて、被検査体に生じたきずが写った画像を生成する第１段階、その画像に処理を施してきずを検出する第２段階、検出したきずのサイズや種類を認識する第３段階に分けて考えることができる。上述の特許文献４には、上記の第１段階において、スリット状に発光する発光面を被検査体に写り込ませるように照明源を移動する間に被検査体に写り込んだスリットパターンをカメラで連続的に撮像する方法、および撮像した複数枚の画像からきずの検査用画像を生成する方法が開示されている。このような外観検査システムでは、例えば、ロボットアームにカメラと照明源を把持させて、被検査体の形状に応じたカメラの配置と照明源の経路走査を行うことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−５４４３０号公報
【特許文献２】特許第５１８２８３３号
【特許文献３】特許第６３１６０６８号
【特許文献４】特開２０１８−５９８８３号公報
【非特許文献】
【０００６】
【非特許文献１】O. Lobachev, M. Schmidt and M. Guthe, "Optimizing Multiple Camera Positions for the Deflectometric Measurement of Multiple Varying Targets", Journal of WSCG, Vol. 21, 145-152 (2013)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したロボットアームによる経路走査では、まず、ロボットアームに対して、被検査体の形状に応じたカメラの配置と照明源の走査経路を教示することが必要である。この点、カメラの配置と照明源の走査経路の教示を手動で行う場合、膨大な教示工数が必要とされる。この教示工数を低減するために、従来から、被検査体の形状データからカメラの配置と照明源の走査経路を事前に生成し、生成されたカメラの配置と照明源の走査経路に基づいてロボットアームに連携させて教示する、という自働教示技術が求められていた。
【０００８】
しかしながら、特許文献１に記載の計測軌道経路生成技術では、適切な検査用画像を生成できない場合がある。また、特許文献２〜４には、照明源の走査経路を生成する技術が開示されていない。
【０００９】
本発明は、上述した課題の少なくとも一部を解決するためになされたものであり、照明源を備えるロボットアームに対する照明源の走査経路の教示工数を低減させることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
（１）本発明の一形態によれば、走査経路生成装置が提供される。この走査経路生成装置は、鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する形状データ取得部と、前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する光学配置データ取得部と、前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する生成部と、を備える。
【００１１】
この構成によれば、鏡面を有する被検査体の形状に応じた発光面の走査経路を容易に生成することができる。これにより、例えば、撮像装置及び照明源を備えるロボットアームに対する、照明源の発光面の走査経路の教示に要する工数を、走査経路の教示を手動で行う場合と比較して、低減させることができる。
【００１２】
（２）上記形態の走査経路生成装置において、前記生成部は、前記形状データを用いて、前記撮像点からの撮像方向を示す複数の撮像線と前記被検査体との交点である交点群の位置座標を生成し、前記交点群の位置座標と、前記照明点群の位置座標と、を用いて前記走査経路データを生成してもよい。この構成によれば、交点群の位置座標と、照明点群の位置座標と、を用いることにより、発光面の走査経路を容易に生成することができる。これにより、撮像装置及び照明源を備えるロボットアームに対する撮像装置及び照明源の配置の教示工数を低減させることができる。
【００１３】
（３）上記形態の走査経路生成装置において、前記生成部は、前記交点群の位置座標と、前記照明点群の位置座標と、を用いて、前記発光面の初期配置位置を生成し、前記交点群の位置座標と、前記照明点群の位置座標との少なくともいずれか一方を用いて前記発光面の走査方向を生成し、前記初期位置および前記走査方向を用いて、前記発光面の走査距離を生成し、前記初期位置と、前記走査方向と、前記走査距離を用いて、前記走査経路データを生成してもよい。この構成によれば、前記初期位置と、前記走査方向と、前記走査距離を用いて、適切な走査経路データを生成することができる。
【００１４】
（４）上記形態の走査経路生成装置において、前記生成部は、前記発光面を形成する点光源の位置座標の平均位置が、前記照明点群の位置座標の平均位置と略一致させると共に、前記点光源の光路が、前記照明点群の位置座標の平均位置と、前記交点群の位置座標の平均位置とを結ぶ線分に沿うように、前記発光面の初期配置位置を設定してもよい。この構成によれば、適切な初期配置位置を、容易に決定することができる。
【００１５】
（５）上記形態の走査経路生成装置において、前記生成部は、前記撮像点に対して、前記被検査体で正反射した前記複数の撮像線と前記発光面とが交差可能な走査距離の最大距離を、前記走査距離として決定してもよい。この構成によれば、適切な走査距離を容易に決定することができる。
【００１６】
（６）上記形態の走査経路生成装置において、前記光学配置データ取得部は、前記被検査体に対して、前記被検査体を撮像する撮像装置の視野幅に応じて設定された複数の撮像エリアのそれぞれに対して、前記撮像点および前記照明点群が配置された前記光学配置データを取得し、前記生成部は、前記複数の撮像エリアのそれぞれに対して、対応する前記光学配置データを用いて、前記撮像エリア内における前記走査経路データを生成してもよい。この構成によれば、被検査体を撮像する撮像装置の視野幅に応じて複数の撮像エリアが設定されるため、撮像装置の視野に対して大きな被検査体に対して、適切な走査経路を生成することができる。
【００１７】
（７）本発明の他の形態によれば、走査経路生成プログラムが提供される。この走査経路生成プログラムは、情報処理装置に、鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得するステップと、前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得するステップと、前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成するステップと、を実行させる。
【００１８】
（８）本発明の他の形態によれば、走査経路生成方法が提供される。この走査経路生成方法は、情報処理装置を用いて、鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する工程と、前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する工程と、前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する工程と、を実行する。
【００１９】
（９）本発明の一形態によれば、外観検査システムが提供される。この外観検査システムは、鏡面を有する被検査体の形状を示す点群の位置座標を含む形状データを取得する形状データ取得部と、前記被検査体を撮像するための仮想的な撮像点と、前記被検査体の前記鏡面で正反射した反射光の光路上に前記撮像点が存在するような仮想的な照明点群との、前記被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する光学配置データ取得部と、前記被検査体に写り込ませる発光面であって、前記被検査体に対して走査する発光面の走査経路を示す走査経路データを、前記形状データおよび前記光学配置データを用いて、前記発光面の光の前記反射光が前記撮像点を通るように生成する生成部と、を備える、走査経路生成装置と、前記被検査体に前記発光面を写り込ませる照明源と、前記被検査体を撮像する撮像装置と、前記照明源を３次元方向に移動可能に駆動する駆動部と、前記走査経路データを用いて、前記駆動部の駆動を制御する駆動制御部と、を備える。
【００２０】
なお、本発明は、種々の態様で実現することが可能であり、例えば、走査経路生成装置及び走査経路生成方法、走査経路生成装置を含むシステム、これら装置、方法、システムにおいて実行されるコンピュータプログラム、そのコンピュータプログラムを配布するためのサーバ装置、そのコンピュータプログラムを記憶した一時的でない記憶媒体等の形態で実現することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態における外観検査システムの概要を説明する図である。
【図２】本実施形態における外観検査システムの概略構成を示す図である。
【図３】本実施形態における鏡面を有する被検査体の形状データの一例を示す図である。
【図４】被検査体の断面の一例と、撮像エリアの一例を示す図である。
【図５】被検査体の形状データに対応する撮像エリアの一例を示す図である。
【図６】光学配置データが示す撮像点と照明点の配置パターンの一例を示す図である。
【図７】カメラモデルと照明源の発光面モデルとの配置を概念的に示す説明図である。
【図８】被検査体に対するカメラと照明源の配置パターンを示す図である。
【図９】発光面の走査経路生成処理の流れを示すフローチャートである。
【図１０】カメラモデル、撮像エリア、および照明点の座標系と、世界座標系を、概念的に示す図である。
【図１１】発光面座標系を概念的に示す図である。
【図１２】発光面モデルの走査経路データのパラメータを概念的に示す図である。
【図１３】発光面モデルの初期配置位置の生成方法を概念的に示す図である。
【図１４】発光面モデルの走査距離の生成方法を概念的に示す図である。
【図１５】走査距離生成処理の流れを示すフローチャートである。
【図１６】被検査体モデルに対するカメラモデルと発光面モデルの配置の一例を示す。
【図１７】１つの撮像エリアにおける発光面モデルの走査の一例を示す説明図である。
【図１８】１つの撮像エリアにおける発光面モデルの走査の一例を示す説明図である。
【発明を実施するための形態】
【００２２】
図１は、本発明の一実施形態における外観検査システムの概要を説明する図である。外観検査システム１は、鏡面を有する被検査体５を検査対象とし、被検査体５の外観を検査するシステムである。図１に示す外観検査システム１では、被検査体５に写り込んだ照明源３の発光面３ａをカメラ２で撮像する。カメラ２と照明源３とは、ロボットアームに把持され（又は設けられ）、それぞれｘ方向、ｙ方向、ｚ方向の３次元方向に移動可能なように構成されている。ここで、ｘ方向及びｙ方向はｚ方向に対して垂直な方向であってかつｘ方向とｙ方向が垂直の関係になる方向を表す。また、照明源３の前面には、発光面３ａとして所定パターンの開口を有するスリットが設けられていてもよい。
【００２３】
外観検査システム１では、被検査体５に生じたきずを、コンピュータに接続されたディスプレイ等で視認できる画像（以下、「検査用画像」と称す）を生成する。外観検査システム１では、照明源３の発光面３ａを検査対象に写り込ませるように照明源３を走査する間に、被検査体５に写り込んだ発光面３ａをカメラ２で連続撮像し、得られた複数枚の撮像画像からきずの検査用画像を生成する。外観検査システム１では、被検査体５の形状に応じて、ロボットアームに取り付けられたカメラ２の配置と照明源３の走査を行っている。
【００２４】
カメラ２は、カメラ原点ｏと、画像平面２ｂを備える。カメラ原点ｏは、カメラレンズの焦点位置に対応している。画像平面２ｂは、カメラ２のイメージセンサに対応し、画像を形成するピクセル２ｃから構成される。撮像線６は、カメラ原点ｏとピクセル２ｃを通る直線であり、ピクセルの数だけ存在する。この撮像線６はピクセル２ｃで受光する光の経路を表している。カメラ２で撮像される画像を構成するピクセル２ｃの輝度は、撮像線６に沿ってカメラ原点ｏに向かって伝播する光の強度に比例する。ここで、符号７は、光の伝播方向を示す。
【００２５】
被検査体５は、その表面が鏡面を有する立体形状の物体である。被検査体５は、例えばＬ字形状やＳ字形状等の様々な形状に屈曲または湾曲した形状を有していてもよく、このため表面が凹凸状に湾曲して、さらに、表面がめっき処理されて鏡面である部品であってもよい。
【００２６】
鏡面を有する被検査体５をカメラ２で撮像する場合、画像平面２ｂに到達する光の強度分布は、被検査体５で反射した撮像線６と交差する発光面３ａの光強度の分布で決まる。つまり、被検査体５で反射した撮像線６と発光面３ａの交差における光強度が高い場合、撮像線６に対応するピクセル２ｃの輝度が高くなる。反対に、撮像線６と発光面３ａの交差における光強度がゼロに近い場合、対応するピクセル２ｃの輝度は、被検査体５が存在しない場合と同程度の輝度となる。
【００２７】
図２は、本実施形態における外観検査システム１の概略構成を示す図である。外観検査システム１は、表面が鏡面である立体形状の被検査体５(図１)の外観表面を検査する表面検査装置である。外観検査システム１は、カメラ２、照明源３、ロボットアーム４、アーム駆動部１０、駆動制御部１１、演算部１２、検査部１３、走査経路生成装置１４を含む。照明源３は、被検査体５に光を写り込ませるものであり、例えば照明装置である。カメラ２は、照明源３の発光面３ａからの光が写り込んだ被検査体５の鏡面を撮像する撮像装置である。ロボットアーム４には、カメラ２及び照明源３が把持され（又は設けられ）ている。アーム駆動部１０は、駆動制御部１１からの指示に基づいてロボットアーム４を、ｘ方向、ｙ方向、ｚ方向の３次元方向に移動させる。なお、ロボットアームは、１つでもよいし、または複数でもよい。また、カメラ２及び照明源３は、１つのロボットアームに設けられていてもよいし、異なるロボットアームにそれぞれ設けられていてもよい。
【００２８】
走査経路生成装置１４は、検査用画像取得のために走査する照明源３の走査経路を示す走査経路データを生成する。詳しくは、走査経路データは、照明源３の発光面３ａの走査経路を示す。走査経路生成装置１４は、例えばコンピュータ等の情報処理装置であって、制御部１５、記憶部１６、通信部１７、入力部１８、出力部１９、バス２０を含む。バス２０は、制御部１５、記憶部１６、通信インターフェース（以下、インターフェースを「Ｉ／Ｆ」と称する。）１７、入力Ｉ／Ｆ１８、出力Ｉ／Ｆ１９を電気的に接続する信号線である。
【００２９】
制御部１５は、走査経路生成装置１４全体の動作を制御する電子装置であり、例えば中央演算装置（ＣＰＵ）であってもよい。制御部１５は、後述する経路生成プログラムを実行することにより、取得部１５ａ、生成部１５ｂとして機能する。
【００３０】
取得部１５ａは、鏡面を有する被検査体５の形状を形成する点群の位置座標と、点群（形状の表面）に対する法線ベクトルと、を含む形状データを取得する。より具体的には、取得部１５ａは、通信Ｉ／Ｆ１７、入力Ｉ／Ｆ１８を介して入力された、または予め記憶部１６に記憶された形状データを取得する。また、取得部１５ａは、被検査体５を撮像するための撮像点と、被検査体５の鏡面で反射した反射光の光路上に撮像点が存在するような照明点との、被検査体に対するそれぞれの配置パターンを示す光学配置データを取得する。より具体的には、取得部１５ａは、通信Ｉ／Ｆ１７、入力Ｉ／Ｆ１８を介して入力された、または予め記憶部１６に記憶された光学配置データを取得する。なお、生成部１５ｂが形状データを用いて、光学配置データを生成し、記憶部１６に出力する構成にしてもよい。本実施形態における取得部１５ａを、形状データ取得部、光学配置データ取得部とも呼ぶ。生成部１５ｂが形状データを用いて、光学配置データを生成する場合には、生成部１５ｂを光学配置データ取得部とも呼ぶ。すなわち、取得は生成を含む概念である。
【００３１】
生成部１５ｂは、形状データおよび光学配置データを用いて、検査用画像を生成するために走査する照明源３の発光面３ａの走査経路を示す走査経路データを生成し、出力する。走査経路データの出力先は、記憶部１６であってもよいし、通信Ｉ／Ｆ１７を介して駆動制御部１１や他の装置であってもよいし、ユニバーサルシリアルバス（ＵＳＢ）メモリ装置等の記録媒体等であってもよいし、プリンタやディスプレイ等の出力装置であってもよい。
【００３２】
記憶部１６は、情報を記憶するメモリ装置の総称であり、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステートドライブ（ＳＳＤ）、ハードディスク、フラッシュメモリカードなど様々な形式の記憶装置を使用することができる。記憶部１６には、オペレーティングシステム（ＯＳ）や本実施形態に係るプログラムが格納されている。
【００３３】
通信Ｉ／Ｆ１７は、無線または有線により駆動制御部１１やその他の装置と通信を可能にする通信インターフェースである。入力Ｉ／Ｆ１８は、キーボード等の入力装置（不図示）や、ＵＳＢメモリ装置やフラッシュメモリ等の記録装置等から入力された指令やデータを、制御部１５や記憶部１６へ伝達するインターフェースである。出力Ｉ／Ｆ１９は、表示装置やプリンタ等の出力装置（不図示）や、ＵＳＢメモリ装置及びフラッシュメモリ等の記録装置等に文字や画像等を出力するインターフェースである。
【００３４】
本実施形態で説明する処理を実現するプログラムは、プログラム提供者側から通信ネットネットワーク及び通信Ｉ／Ｆ１７を介して、例えば記憶部１６に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は外付け又は内蔵の読取装置にセットされて、制御部１５によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読取装置によって読み取られる。
【００３５】
駆動制御部１１は、走査経路生成装置１４によって生成された走査経路データ、および取得部１５ａによって取得された光学配置データを用いて、カメラ２、照明源３、及びアーム駆動部１０の動作を制御する。演算部１２は、カメラ２により撮像された複数の画像をそれぞれ微分処理して、これら微分処理後の複数の画像を加算する。検査部１３は、演算部１２による加算後の画像に基づいて、被検査体５の鏡面表面のきずを検査する。なお、駆動制御部１１、演算部１２、検査部１３及び走査経路生成装置１４は、１つの情報処理装置に含まれていてもよいし、異なる情報処理装置に含まれていてもよい。
【００３６】
本実施形態における走査経路生成装置１４による走査経路生成処理の流れの説明に先立って、上記の形状データ、および光学配置データについて説明する。
【００３７】
図３は、本実施形態における鏡面を有する被検査体５の形状データの一例を示す図である。被検査体５は、その表面が鏡面状になっている物体である。鏡面状は、例えばステンレスやめっき加工、研磨等により光が反射して物が写る鏡状になっていることを意味する。被検査体５の形状データは、立体的形状の表面を表す点群の座標値、表面に対する法線ベクトルｎ、及び各点の繋がりを表すメッシュデータを含む。例えば、被検査体５の形状データは数万個の点の座標値と、各点を接続して構成される十数万枚の面の情報を有する。図３は、形状データの各点の座標値を３次元の直交座標系にプロットし、各面を灰色で表示し、ｚ軸方向から見た図である。すなわち、図３では、被検査体５の形状をｘｙ軸を用いて表している。本実施形態で例示する被検査体５のサイズはカメラ２の１つの撮像エリア（後述する）のサイズに比べて大きく、その形状は細身であり、かつ湾曲している。以下の説明において、計算機上で模擬された被検査体５を被検査体モデル５ｍとも呼ぶ。
【００３８】
本実施形態の外観検査システム１では、カメラ２の視野に応じて、被検査体５の形状データを複数の撮像エリアに分割して、各撮像エリア内に１台のカメラ２を配置して、検査用画像を生成している。カメラ２の視野は、カメラ２における、イメージセンサのピクセルサイズ、カメラレンズの焦点距離、検査用画像の撮像分解能から、決定されている。
【００３９】
図４は、被検査体５の断面の一例と、撮像エリアの一例を示す図である。図４に示すように、被検査体５は、図３に示すｘｙ軸と互いに直交するz軸（不図示)方向に突出した屋根型に形成されている。本実施形態では、図４に示すように、屋根の稜線に沿って撮像エリアを撮像エリアＡ１と撮像エリアＡ２に２分割している。これを図３の形状データに対して行ったものが図５（後述する）である。
【００４０】
図５は、被検査体５の形状データ（被検査体モデル５ｍ）に対応する撮像エリアの一例を示す図である。図５において、撮像エリアを枠で囲み、その枠の横に撮像エリア番号を示す。撮像エリア１〜１９は、稜線を境に被検査体５の外側の撮像エリアである。撮像エリア２０〜３８は、稜線を境に被検査体５の内側の撮像エリアである。
【００４１】
図６は、光学配置データが示す撮像点Ｏ２と照明点ＰＩの配置パターンの一例を示す説明図である。撮像点Ｏ２、照明点ＰＩは、仮想的な点である。駆動制御部１１は、撮像点ｏとカメラ２のカメラ原点ｏとが一致するように、カメラ２を配置する。また、後述するように、生成部１５ｂは、照明点ＰＩを用いて、カメラ２の配置に対応する照明源３の発光面３ａの走査経路を生成する。以下の説明において、被検査体５の形状を形成する点群の各点を「ワーク点ＰＷ」とも呼ぶ。複数のワーク点ＰＷを区別する場合には、符号ＰＷの後に数字を付して区別する。同様に、点群（形状の表面）に対する法線ベクトルｎを区別する場合には、符号ｎの後に数字を付して区別する。図３において、被検査体５の形状を形成する点群のうち、２つのワーク点ＰＷ１、ＰＷ２と、ワーク点ＰＷに対応する法線ベクトルｎ１、ｎ２を図示する。
【００４２】
光学配置データが示す配置パターンは、撮像点Ｏ２と、照明点ＰＩの被検査体５の形状データ（被検査体モデル５ｍ）に対する配置を示す。配置パターンは、被検査体５の鏡面で正反射した反射光の光路上に撮像点Ｏ２が存在するように、照明点ＰＩと撮像点Ｏ２の位置を定めている。この配置パターンは、図５に示す撮像エリアごとに生成されている。例えば、図５に示すように、３８個の撮像エリアが設定されている場合、光学配置データは、３８個の配置パターンを有する。
【００４３】
図７は、光学配置データに基づいて配置されたカメラモデル２ａと照明源３の発光面モデル３ｍとを概念的に示す説明図である。カメラモデル２ａおよび発光面モデル３ｍは、それぞれ、カメラ２および発光面３ａを計算機上で模擬したものである。カメラモデル２ａのカメラ原点ｏは図６の撮像点Ｏ２と一致するように、また撮像線は図６の光路６に対応するように配置される。さらに、発光面モデル３ｍは、その曲面の中心位置が複数の照明点ＰＩの位置座標の平均である平均座標ＰＩａｖｇに一致するように配置する。発光面モデル３ｍは点光源が曲面上に密に存在するものとする。ここで、発光面３ａの曲面の形状は、予め定められている。発光面３ａの形状は、本実施形態に限定されず、種々の形状を適宜設定することができる。例えば、平面形状であってもよいし、複数の平面が所定の角度で接続された形状であってもよい。
【００４４】
図８は、光学配置データに基づいて作成された被検査体５に対するカメラ２と照明源３の配置パターンを示す図である。図８では、被検査体５の形状データが示す被検査体モデル５ｍに対して配置したカメラモデル２ａと発光面モデル３ｍの一例を示す。本実施形態では、上述の通り、被検査体５の形状データを複数の撮像エリアに分割して、各撮像エリア内に１台のカメラ２を配置している。被検査体モデル５ａの周囲において、曲面状に曲がっている帯が発光面モデル３ｍの配置を示す。また、四角錐形状のものがカメラモデル２ａの配置を示す。図示するように、被検査体モデル５ｍを取り巻くように、カメラモデル２ａと発光面モデル３ｍが配置されている。
【００４５】
次に、図９〜１５を用いて、走査経路生成装置１４における発光面３ａの走査経路生成処理について説明する。
【００４６】
図９は、走査経路生成装置１４における発光面３ａの走査経路生成処理の流れを示すフローチャートである。本実施形態の走査経路生成装置１４における走査経路生成処理の概要は以下の通りである。制御部１５は、鏡面を有する被検査体５の形状データを読み込み（ステップＳ２）、カメラ２の配置と照明源３の配置に関する光学配置データを読み込む（ステップ４）。読み込んだ被検査体５の形状データ、および光学配置データを用いて、カメラモデル２ａ、撮像エリア、発光面モデル３ｍの座標系を生成する（ステップＳ６）。生成した座標系を用いて、発光面モデル３ｍの走査経路データを生成し、出力する（ステップＳ８）。
【００４７】
詳しくは、ステップＳ２において、制御部１５(図２)は、被検査体５の形状データを取得する。例えば、制御部１５は、予め記憶部１６に記憶された形状データを取得する。本実施形態では、一例として、図３に表す形状データを用いる。
【００４８】
ステップＳ４において、制御部１５は、上述の撮像エリア(図５)における照明点ＰＩとカメラモデル２ａの配置を示す光学配置データを取得する。例えば、制御部１５は、予め記憶部１６に記憶された光学配置データを取得する。
【００４９】
ステップＳ６の座標系の生成処理では、発光面モデル３ｍの走査経路の生成のために、カメラモデル２ａや撮像エリアなどに付随する各種の座標系を生成する。ここで、カメラモデル２ａは、カメラ原点ｏが撮像点Ｏ２と一致するように配置される。撮像エリアは、配置されたカメラモデル２ａの撮像線と被検査体の交点の分布である。照明点群は、被検査体で反射した撮像線の分布から成る。制御部１５は、各種の座標系の生成に先立ち、世界座標系を生成する（ステップＳ６１）。
【００５０】
図１０は、カメラモデル２ａ、撮像エリア、および照明点ＰＩの座標系と、世界座標系ＷＣＡを、概念的に示す図である。世界座標系ＷＣＡは、各座標系の基準となる座標系であって、被検査体５の形状データの頂点であるワーク点ＰＷの位置座標を用いて生成する。また、世界座標系ＷＣＡにおける各種の座標系の配置位置は、対象とする座標系の基底をなす複数の単位ベクトルからなる回転行列Ｒと、座標系の原点の位置座標からなる平行移動行列Ｔにより表わされる。ここで、位置座標ならびにベクトルは列ベクトルを基本とする。また、回転行列Ｒは３×３の行列、平行移動行列Ｔは３×１の行列である。例えば、世界座標系における座標系Ａの配置位置を示す回転行列ＲAおよび平行移動行列ＴAは、世界座標系における座標系Ｊの基底をなす３つの単位ベクトルをｘJ、ｙJ、ｚJ、座標系Ｊの原点の位置座標ｏJとする場合、ＲJ＝[ｘJ  ｙJ  ｚJ]およびＴJ＝ｏJと表わされる。
【００５１】
世界座標系ＷＣＡの生成では、ワーク点ＰＷの位置座標の平均を原点ｏWとする。また、形状データを構成するワーク点ＰＷの位置座標に対する主成分分析により得られる、分散が最大、最小となる方向の単位ベクトルをそれぞれｘW、ｚWとする。さらに、ｚWとｘWの外積により得られる単位ベクトルをｙWとし、各単位ベクトルを世界座標系の基底とする。ここで、主成分分析は、対象とするデータが３次元の場合、データの分散が最も大きくなる方向の単位ベクトルｅ1、ｅ1と直交する方向の中で分散が最も大きくなる方向の単位ベクトルｅ2、および分散が最小となる方向の単位ベクトルｅ3、ならびに各単位ベクトルに沿った方向のデータの分散λ1〜3を算出する。
【００５２】
次に、制御部１５は、カメラモデル２ａの座標系（以下、「カメラ座標系」とも称する）を生成する（ステップＳ６２）。カメラ座標系ＣＣＡの生成では、世界座標系ＷＣＡにおける撮像点Ｏ２に配置したカメラ原点ｏを原点ｏCとする。また、カメラモデルの画像平面に平行で、かつ画像平面の長手方向ＣＬＤを示す単位ベクトルを、カメラ座標系のｘ軸方向を示す単位ベクトルｘCとする。同様に、画像平面の短手方向ＣＳＤを示す単位ベクトルをカメラ座標系ＣＣＡのｙ軸方向を示す単位ベクトルｙCとする。また、カメラ原点から画像平面に下した垂線の単位ベクトルを、カメラ座標系ＣＣＡのｚ軸方向を示す単位ベクトルｚCとする。それらの単位ベクトルをカメラ座標系ＣＣＡの基底とする。これにより、上述の通り、世界座標系におけるカメラ座標系の配置位置は、回転行列ＲC＝［ｘC  ｙC  ｚC］および平行移動行列ＴC＝ｏCと表わされる。
【００５３】
続いて、制御部１５は、撮像エリア座標系ＡＣＡを生成する（ステップＳ６３）。撮像エリア座標系ＡＣＡは、世界座標系ＷＣＡにおけるカメラモデルの撮像線６と被検査体５の形状データとの交点の位置座標の平均を原点ｏAとする。また、撮像線６と被検査体５の形状データの交点の位置座標に対する主成分分析により得られる、分散が最大、最小となる方向の単位ベクトルをそれぞれ、撮像エリア座標系ＡＣＡのｘ軸方向を示す単位ベクトルｘA、ｚ軸方向を示す単位ベクトルｚAとする。さらに単位ベクトルｚAと単位ベクトルｘAの外積により得られる単位ベクトルを、撮像エリア座標系ＡＣＡのｙ軸方向を示す単位ベクトルｙAとする。それらの単位ベクトルを撮像エリア座標系ＡＣＡの基底とする。これにより、世界座標系ＷＣＡにおける撮像エリア座標系ＡＣＡの配置位置は、回転行列ＲA＝［ｘA  ｙA  ｚA］および平行移動行列ＴA＝ｏAと表わされる。図１０では、撮像線６と被検査体５の形状データの交点と、ワーク点ＰＷとが一致する例を示しているが、一致しなくてもよい。
【００５４】
続いて、制御部１５は、照明点ＰＩの座標系（以下、「照明点座標系」とも称する）を生成する（ステップＳ６４）。照明点座標系ＩＣＡは、世界座標系ＷＣＡにおける照明点ＰＩの位置座標の平均を原点ｏRとする。また、照明点ＰＩの位置座標に対する主成分分析により得られる、分散が最大、最小となる方向の単位ベクトルをそれぞれ、照明点座標系ＩＣＡのｘ軸方向を示す単位ベクトルｘR、ｚ軸方向を示す単位ベクトルｚRとする。さらに、単位ベクトルｚRと単位ベクトルｘRの外積により得られる単位ベクトルをｙRとする。それらの単位ベクトルを照明点座標系ＩＣＡの基底とする。これにより、照明点座標系ＩＣＡの配置位置は、回転行列ＲR＝［ｘR  ｙR  ｚR］および平行移動行列ＴR＝ｏRと表わされる。
【００５５】
図１１は、発光面座標系ＬＣＡを概念的に示す図である。座標系生成処理（ステップＳ６）における最後の処理として、制御部１５は、発光面モデル３ｍの座標系（以下、「発光面座標系」とも称する）を生成する（ステップＳ６５）。発光面座標系ＬＣＡは、世界座標系ＷＣＡではない直交座標系に対して生成する。例えば、ここで用いる直交座標系は、位置座標ｏ＝［０，  ０，  ０］Tを原点とし、単位ベクトルｘ＝［１，  ０，  ０］T、  ｙ＝［０，  １，  ０］T、  ｚ＝［０，  ０，  １］Tを基底とする直交座標系を用いる。なお行列ＭTは行列Ｍの転置を表す。上述の通り、発光面モデル３ｍは点光源が曲面上に密に存在するものとする。そこで発光面座標系ＬＣＡは、発光面モデル３ｍを形成する点光源の位置座標の平均から最も近い曲面上の点光源の位置座標を原点ｏLとする。また、発光面モデル３ｍの曲面の短手方向ｍＳＤと長手方向ｍＬＤの単位ベクトルをそれぞれ、発光面座標系ＬＣＡのｘ軸方向を示す単位ベクトルｘL、ｙ軸方向を示す単位ベクトルｙLとする。さらに、単位ベクトルｘLと単位ベクトルｙLの外積により得られる単位ベクトルを単位ベクトルｚLとし、それらの単位ベクトルを発光面座標系ＬＣＡの基底とする。
【００５６】
図１２は、発光面モデル３ｍの走査経路データのパラメータを概念的に示す図である。ステップＳ８において、制御部１５は、発光面モデル３ｍの走査経路データを生成する。走査経路データは、走査経路の方向を示す単位ベクトルｓと、走査距離ＬPおよび走査距離ＬMを示すデータを含む。走査経路データの生成は、発光面座標系ＬＣＡの初期配置位置を生成する段階（ステップＳ８１）、走査経路の方向を示す単位ベクトルｓを生成する段階（ステップＳ８２）、走査距離ＬPおよび走査距離ＬMを生成する段階（ステップＳ８４）に分けられる。本実施形態において、発光面モデル３ｍを、初期配置位置から正の方向に走査した場合の距離をＬP、負の方向に対して走査した場合の距離をＬMとする（後に詳述する）。
【００５７】
図１３は、発光面モデル３ｍの初期配置位置の生成方法を概念的に示す図である。制御部１５は、照明点座標系ＩＣＡおよび撮像エリア座標系ＡＣＡを用いて、発光面モデル３ｍの初期配置位置を生成する（ステップＳ８１）。具体的には、発光面モデル３ｍの初期配置位置は、初期配置位置に関する回転行列ＲLおよび平行移動行列ＴLを用いて表される。
【００５８】
初期配置位置に関する回転行列ＲLおよび平行移動行列ＴLを求める手順を以下に示す。
〔１〕  照明点座標系ＩＣＡの原点ｏRを、平行移動行列ＴLとする。
〔２〕  照明点座標系ＩＣＡの原点ｏRと撮像エリアの座標系ＡＣＡの原点ｏAを接続した線分の単位ベクトルをｗとし、回転行列ＲLの３列目の列ベクトル（発光面座標系ＬＣＡのｚ軸の方向を示す）とする。
〔３〕  照明点座標系ＩＣＡにおけるｙRと、〔２〕で生成したｗから、式（１）に示すグラム・シュミット直交化法によりベクトルを求め、その単位ベクトルｖを回転行列ＲLの２列目の列ベクトル（ｙ軸の方向を示す）とする。
ｖ＝ｙR−｛（ｖT ｙR）／（ｖT ｖ）｝ｖ        （１）
〔４〕  〔３〕で求めたｖと〔２〕で求めたｗの外積により単位ベクトルｕを求めて、回転行列ＲLの１列目の列ベクトル（ｘ軸の方向を示す）とする。
上記の方法により、発光面モデルの初期配置位置は、回転行列ＲL＝［ｕ  ｖ  ｗ］および、平行移動行列ＴL＝ｏRと表わされる。
【００５９】
すなわち、発光面座標系ＬＣＡの原点ｏLが照明点座標系ＩＣＡの原点ｏRに一致するように平行移動させると共に、単位ベクトルｘLが単位ベクトルｕの方向、単位ベクトルｙLが単位ベクトルｖの方向、単位ベクトルｚLが単位ベクトルｗの方向にそれぞれ一致するように、発光面座標系ＬＣＡを回転させることにより、発光面モデル３ｍの初期配置位置が決定される。これにより、被検査体５を撮像するための撮像点Ｏ２と、被検査体５の鏡面で正反射した反射光の光路上に撮像点Ｏ２が存在するような照明点ＰＩに対応する位置に、発光面モデル３ｍが配置される。
【００６０】
次に、制御部１５は、発光面モデル３ｍの走査方向を生成する（ステップＳ８２）。本実施形態では、照明点座標系ＩＣＡにおけるｘRを、発光面モデル３ｍの走査方向を示す単位ベクトルｓ(図１２)とする。他の実施形態では、撮像エリア座標系ＡＣＡにおけるｘA(図１３)を、発光面モデル３ｍの走査方向を示す単位ベクトルｓとしてもよい。
【００６１】
図１４は、発光面モデル３ｍの走査距離の生成方法を概念的に示す図である。図１５は、走査距離生成処理の流れを示すフローチャートである。ステップＳ８において、制御部１５は、ステップＳ８１で生成された初期配置位置と、ステップＳ８２で生成された走査方向を用いて、発光面モデル３ｍの走査距離を生成する（ステップＳ８３）。
【００６２】
走査距離は、発光面モデル３ｍを初期配置位置から走査方向に一定の距離だけ走査させる演算と、走査後の発光面モデル３ｍと被検査体５で反射した撮像線６が交差するか否かを光線追跡法により評価する演算とを交互に繰り返すことにより生成する。図１４において、初期配置位置に配置された発光面モデル３ｍに、符号３ｍＩを付している。
【００６３】
図１５に示すように、制御部１５は、まず、発光面モデル３ｍを初期配置位置に生成する（ステップＳ８３１）。このとき、発光面モデル３ｍの初期配置位置は、発光面モデル３ｍの曲面を形成する点群の位置座標に対して、ステップＳ８１で生成した回転行列ＲLおよび平行移動行列ＴLを作用させることにより生成する。
【００６４】
制御部１５は、走査距離の上限値ＬMAXを決定する（ステップＳ８３２）。例えば、ＬMAX＝１５０ｍｍに決定する。上限値ＬMAXは、任意に決定することができる。
【００６５】
制御部１５は、発光面モデル３ｍを、初期配置位置から、ステップＳ８２で生成した単位ベクトルｓの方向に一定の距離ｄだけ走査させる（ステップＳ８３３）。例えば、ｄ＝１０ｍｍに設定することができる。このとき、発光面モデル３ｍの走査後の配置位置は、発光面モデル３ｍの曲面を形成する点群の位置座標に対して、回転行列ＲL、およびＴLにｄ・ｓを加算した平行移動行列を作用させることにより生成する。
【００６６】
制御部１５は、被検査体５で反射した各撮像線と発光面モデル３ｍが、交差するか否かを光線追跡法により評価する（ステップＳ８３４）。被検査体５で反射した各撮像線６と発光面モデル３ｍが交差すれば、発光面３ａからの光が被検査体５で正反射した光路上に撮像点Ｏ２が存在するといえる。すなわち、撮像点Ｏ２にカメラ原点ｏが一致するように配置されたカメラ２によって、被検査体５に写り込んだ発光面３ａを撮像可能な位置に、発光面３ａを配置することができる。
【００６７】
発光面モデル３ｍと交差する撮像線６が存在する場合（ステップＳ８３４においてＹＥＳ）、制御部１５は、ステップＳ８３５に進む。一方、発光面モデル３ｍと交差する撮像線が無い場合（ステップＳ８３４においてＮＯ）、制御部１５は、その位置に走査される直前の位置を、発光面モデルの走査が終了する位置と決定し（ステップＳ８３７）、計算を終了する。
【００６８】
発光面モデル３ｍと被検査体モデル５ｍが干渉する場合（ステップＳ８３５においてＹＥＳ）、制御部１５は、その位置に走査される直前の位置を、発光面モデルの走査が終了する位置と決定し（ステップＳ８３７）、計算を終了する。一方、発光面モデル３ｍと被検査体モデル５ｍが干渉しない場合（ステップＳ８３５においてＮＯ）、制御部１５は、ステップＳ８３６に進む。
【００６９】
発光面モデル３ｍの走査距離がＬMAXとなった場合（ステップＳ８３６においてＹＥＳ）、制御部１５は、その位置（現位置とも称する）を発光面モデルの走査が終了する位置と決定し（ステップＳ８３８）、計算を終了する。一方、発光面モデル３ｍの走査距離がＬMAXに満たないときは、ステップＳ８３３に戻る。
【００７０】
上記処理により、発光面モデル３ｍを正の方向に走査する場合の走査距離ＬP（図１４）を得る。図１４において、発光面モデル３ｍを正の方向に走査する場合の走査が終了する位置にある発光面モデル３ｍに、符号３ｍＥを付している。また、上記の処理において、発光面モデル３ｍを負の方向（例えば、ｄ＝−１０ｍｍごと）に走査する処理を行うことにより、走査距離ＬM(図１４)を得る。図１４において、発光面モデル３ｍを負の方向に走査する場合の走査が終了する位置にある発光面モデル３ｍに、符号３ｍＳを付している。そして、制御部１５は、走査距離ＬPと走査距離ＬMとを含む、発光面モデル３ｍの走査距離を生成する。すなわち、制御部１５は、一つの撮像点Ｏ２に対して、被検査体５で正反射した複数の撮像線と発光面とが交差可能な走査距離の最大距離を、走査距離として決定する。
【００７１】
図９に示すように、制御部１５は、１つの撮像エリア内の走査経路を生成し、全ての撮像エリアについて走査経路が生成されていない場合は（ステップＳ１０においてＮＯ）、ステップＳ６に戻る。制御部１５は、全ての撮像エリアについて、発光面モデル３ｍの走査経路データを生成し、全ての撮像エリアに対応する走査経路データを生成し、処理を終了する。以上の処理によって、被検査体５の形状データ（被検査体モデル５ｍ）全体に対する発光面モデル３ｍの走査経路データを生成する。
【００７２】
図１６は、被検査体モデル５ｍに対するカメラモデル２ａと発光面モデル３ｍの配置の一例を示す。図１７は、１つの撮像エリアにおける発光面モデル３ｍの走査の一例を示す説明図である。図１７では、被検査体モデル５ｍ（形状データ）、カメラモデル２ａ、および発光面モデル３ｍを時間軸に対して表示している。また、図１７では、カメラの撮像エリアＩＭＲを図示している。図１７に示す例では、発光面モデル３ｍは、直線的に一方向に走査する。ステップＳ８２で生成した走査方向をｓ、ステップＳ８３で生成した正の方向の走査距離の絶対値をＬP、負の方向の走査距離の絶対値をＬMとし、発光面モデル３ｍの初期配置位置から−ｓ・ＬMだけシフトした位置から開始され、ｓ・ＬPだけシフトした位置で終了するものとしている。図１７に示すように、時間の経過とともに、発光面モデル３ｍが被検査体モデル５ｍの表面に沿うように走査されている。ここで、発光面モデルの走査経路データは、例えば、数値計算ソフトウェアＭＡＴＬＡＢ（ＭＡＴＬＡＢは登録商標)を用いて、生成することができる。
【００７３】
図１８は、１つの撮像エリアにおける発光面モデル３ｍの走査の一例を示す説明図である。図１８は、図１７に示す撮像エリアと異なる撮像エリアについて示している。図１８でも、図１７と同様に、被検査体モデル５ｍ（形状データ）、カメラモデル２ａ、および発光面モデル３ｍを時間軸に対して表示している。図１８に示す例では、発光面モデル３ｍは、紙面左から右に向かって走査している。
【００７４】
このようにして、走査経路生成装置１４は、被検査体５の形状データ、および光学配置データを用いて、被検査体５に対する照明源３の発光面３ａの走査経路を示す走査経路データを生成することができる。走査経路生成装置１４によって生成された走査経路データは、駆動制御部１１(図２)によって読み込まれる。駆動制御部１１は、光学配置データに基づいて、アーム駆動部１０を制御してロボットアーム４を動作させ、カメラ２を配置すると共に、走査経路データに基づいて、アーム駆動部１０を制御してロボットアーム４を動作させ、照明源３を走査させる。外観検査システム１において、このように照明源３を走査する間に被検査体５に写り込んだ発光面３ａをカメラ２で連続撮像することにより、検査用画像を生成する。
【００７５】
以上説明したように、本実施形態の走査経路生成装置１４によれば、鏡面を有する被検査体５（検査対象）の形状に応じた照明源３の発光面３ａの走査経路を容易に生成することができる。これにより、カメラ２（撮像装置）及び照明源３を備えるロボットアーム４に対する、照明源３の発光面３ａの走査経路の教示に要する工数を、走査経路の教示を手動で行う場合と比較して、低減させることができる。
【００７６】
また、ロボットアーム４の各座標系を決定するキャリブレーションを事前に行うことにより、走査経路生成装置１４で生成された照明源３の発光面３ａの走査経路を、ロボットアーム４によって実現するための駆動制御部１１への入力座標値を得ることができる。
【００７７】
以上、実施形態に基づき本態様について説明してきたが、上記した態様の実施の形態は、本態様の理解を容易にするためのものであり、本態様を限定するものではない。本態様は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本態様にはその等価物が含まれる。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することができる。
【符号の説明】
【００７８】
１…外観検査システム
２…カメラ
３…照明源
４…ロボットアーム
５…被検査体
１０…アーム駆動部
１１…駆動制御部
１２…演算部
１３…検査部
１４…走査経路生成装置
１５…制御部
１５ａ…取得部
１５ｂ…生成部
１６…記憶部
１７…通信Ｉ／Ｆ
１８…入力Ｉ／Ｆ
１９…出力Ｉ／Ｆ
２０…バス
【図１】
2020134221.tif 000003
【図２】
2020134221.tif 000004
【図３】
2020134221.tif 000005
【図４】
2020134221.tif 000006
【図５】
2020134221.tif 000007
【図６】
2020134221.tif 000008
【図７】
2020134221.tif 000009
【図８】
2020134221.tif 000010
【図９】
2020134221.tif 000011
【図１０】
2020134221.tif 000012
【図１１】
2020134221.tif 000013
【図１２】
2020134221.tif 000014
【図１３】
2020134221.tif 000015
【図１４】
2020134221.tif 000016
【図１５】
2020134221.tif 000017
【図１６】
2020134221.tif 000018
【図１７】
2020134221.tif 000019
【図１８】
2020134221.tif 000020