次に、実施形態に係る画像測定装置を、図面を参照して詳細に説明する。尚、以下の実施形態はあくまでも一例であり、本発明を限定する意図で示されるものではない。また、以下の図面は模式的なものであり、説明の都合上、一部の構成を省略することがある。
[第1実施形態]
[画像測定装置]
図1は、第1実施形態に係る画像測定装置の全体図である。図1に示す通り、本実施形態に係る画像測定装置は、画像測定機1と、この画像測定機1に接続されたコンピュータシステム2と、を備える。
画像測定機1は、ワーク10が載置される試料台11と、試料台11のY方向位置を調整するY軸駆動機構12と、試料台11に載置されたワーク10を撮像するカメラ13と、カメラ13の周辺に設けられたリングライト14と、カメラ13及びリングライト14のZ方向位置を調整するZ軸駆動機構15と、カメラ13、リングライト14及びZ軸駆動機構15のX方向位置を調整するX軸駆動機構16と、X軸駆動機構16を支持するアーム支持体17と、これらの構成を支持する除振台18と、を備える。試料台11の上面は、水平面(XY平面)と一致する。カメラ13は、例えば、CCDイメージセンサ、CMOSイメージセンサ等のイメージセンサを含む。Y軸駆動機構12、Z軸駆動機構15及びX軸駆動機構16は、例えば、駆動用のモータ、位置調整用のボールねじ、及び、位置検出用のリニアエンコーダ等を備える。カメラ13から出力された画像データは、カメラ画像データとしてコンピュータシステム2に送信される。また、Y軸駆動機構12、Z軸駆動機構15及びX軸駆動機構16に含まれるリニアエンコーダから出力された座標データは、試料台11に対するカメラ13の位置を示すカメラ位置データとしてコンピュータシステム2に送信される。尚、以下の説明において、カメラ13、リングライト14及びZ軸駆動機構15を含む構成を、「撮像ユニット」と呼ぶ場合がある。また、Y軸駆動機構12、Z軸駆動機構15及びX軸駆動機構16を含む構成を、「位置調整機構」と呼ぶ場合がある。
コンピュータシステム2は、表示装置21と、演算装置22と、入力装置23と、を備える。表示装置21は、例えば、ディスプレイやプロジェクタ等である。演算装置22は、内部にCPUやハードディスク等の記憶装置を備える。入力装置23は、ユーザの操作を入力する操作入力装置であり、例えばマウスやキーボード、ジョイスティック(J/S)、タッチパネル等である。
図2は、本実施形態に係る演算装置22の構成を示すブロック図である。
カメラ13から入力されるカメラ画像データは、インタフェース(以下、I/Fと呼ぶ)31を介して、画像メモリ32に格納される。表示制御部36は、例えば、画像メモリ32に格納されたカメラ画像データに基づいて表示装置21によって表示される表示画像データを生成し、表示装置21に送信する。
ワーク10及び画像測定機1のCADデータは、I/F33を介して、CPU35で画像データ(以下、「CAD画像データ」と呼ぶ。)に展開された後、画像メモリ32に格納される。表示制御部36は、例えば、画像メモリ32に格納されたCAD画像データに基づいて表示画像データを生成し、表示装置21に送信する。
キーボード、J/S、及びマウス等の入力装置23から入力される情報は、I/F34を介して、CPU35に入力される。CPU35は、例えば、マウスポインタの表示装置21に表示される画像における位置座標(以下、「ポインタ座標」と呼ぶ。)を、表示制御部36に送信する。表示制御部36は、例えば、入力されたポインタ座標に基づき、表示画像データを生成する。
ROM37は、例えば、パートプログラムを用いた自動測定処理のためのプログラム等を格納する。尚、パートプログラムは、画像測定機1による自動測定処理に用いるものであり、ワーク10の測定箇所に対応するカメラ位置データ(以下、「撮像位置データ」と呼ぶ。)等の情報を含む。記憶装置38は、例えば、測定結果の評価等に使用するCADデータ及びパートプログラム等を格納する。記憶装置38内のデータは、I/F39を介してCPU35に入力される。RAM40は、各種プログラムを格納する他、各種処理のワーク領域を提供する。
CPU35は、例えば、ROM37、記憶装置38、及び、RAM40、並びに、ROM37等に格納された種々のプログラムによりI/F41を介して画像測定機1を制御し、画像測定機1から上記カメラ画像データ及び上記カメラ位置データを取得し、種々の演算処理及び測定処理を実行する。
[パートプログラムを用いた自動測定処理]
次に、図1~図4を参照して、パートプログラムによる自動測定処理の一例について説明する。
まずユーザは、自動測定処理の準備として、図1に示す様に、ワーク10を試料台11に載置する。次に、試料台11に対するワーク10の位置及び角度(以下、「ワーク位置」及び「ワーク角度」と呼ぶ。)を調整する。これにより、試料台11を基準とする座標系(以下、「機械座標系」と呼ぶ。)と、ワーク10を基準とする座標系(以下、「ワーク座標系」と呼ぶ。)との位置関係が調整される。次にユーザは、機械座標系とワーク座標系との位置関係を取得し、画像測定装置に入力する。次にユーザは、画像測定装置を操作して、パートプログラムを用いた自動測定処理を開始させる。
図3は、自動測定プログラムの一例を示すフローチャートである。
ステップS101においては、カメラ位置を撮像位置まで調整する。例えば、パートプログラムにはワーク座標系における撮像位置データが含まれている。演算装置22は、例えば、上記機械座標系とワーク座標系との相対的な位置関係に基づき、パートプログラム中のワーク座標系における撮像位置データを、機械座標系における撮像位置データに変換し、画像測定機1に送信する。画像測定機1は、受信した撮像位置データに従い、Y軸駆動機構12、Z軸駆動機構15及びX軸駆動機構16を駆動して、カメラ位置を撮像位置まで調整する。
ステップS102においては、カメラ13により、ワーク10に含まれる測定箇所の撮像を行う。例えば、撮像を実行する旨の信号を画像測定機1に送信し、撮像によって取得されたカメラ画像データを受信する。取得されたカメラ画像データは、表示装置21に表示することも出来る。
ステップS103においては、取得したカメラ画像データに対し、エッジ検出ツールtを配置する。エッジ検出ツールtの配置は、パートプログラムに含まれる情報に従って実行される。例えば、パートプログラムは、エッジ検出ツールtの種類、並びに、カメラ画像における大きさ、位置及び角度等の情報を含む。エッジ検出ツールtの種類としては、例えば図4に示す様な矩形状のエッジ検出ツールt、円環状のエッジ検出ツール又は円弧状のエッジ検出ツール等が挙げられる。例えば図4に示す矩形状のエッジ検出ツールtは、測定箇所の輪郭線に沿って延伸するボックスbと、このボックスbに含まれる複数の線分lと、を備える。図示の例において、複数の線分lは、ボックスbの延伸方向に沿って複数配設され、延伸方向と垂直な方向に延伸する。例えば円環状のエッジ検出ツールにおいては、複数の線分lを放射状に配置することも出来る。
ステップS104においては、エッジ検出処理を実行する。例えば、ステップS103において設定されたエッジ検出ツールt(図4)に含まれる線分lに沿って画像データの各画素における濃度(照度)を抽出し、濃度(照度)の変化が最も大きい点等をエッジ点eとして検出する。ステップS104においては、エッジ検出ツールtに含まれる複数の線分lに対応して、複数のエッジ点eが検出される。この様な複数のエッジ点eに基づいて、測定箇所の輪郭線、幅、重心等を測定することが出来る。
ステップS105においては、パートプログラムを確認し、全ての撮像位置で撮像が実行されたか否か判断する。全ての撮像位置で測定が実行されていなかった場合には、ステップS101に進む。全ての撮像位置で測定が実行されていた場合には、自動測定処理を終了する。
[オフラインティーチング]
次に、上述の様なパートプログラムを生成するためのオフラインティーチングについて説明する。
図5は、オフラインティーチングに使用されるコンピュータシステム2´の図である。コンピュータシステム2´、並びに、コンピュータシステム2´に含まれる表示装置21´、演算装置22´、入力装置23´は、基本的には、コンピュータシステム2、並びに、コンピュータシステム2に含まれる表示装置21、演算装置22、入力装置23と同様に構成されている。ただし、コンピュータシステム2´は、画像測定機1には接続されていない。
図6は、オフラインティーチングに使用される演算装置22´の構成を示すブロック図である。
ワーク10及び画像測定機1のCADデータは、I/F33´を介して、CPU35´でCAD画像データに展開された後、画像メモリ32´に格納される。表示制御部36´は、例えば、画像メモリ32に格納されたCAD画像データに基づいて表示装置21´によって表示される表示画像データを生成し、表示装置21´に送信する。
キーボード、J/S、及びマウス等の入力装置23´から入力される情報は、I/F34´を介して、CPU35´に入力される。CPU35´は、例えば、マウスポインタのポインタ座標を、表示制御部36´に送信する。表示制御部36´は、例えば、入力されたポインタ座標に基づき、表示画像データを生成する。
ROM37´は、例えば、パートプログラムを生成するためのオフラインティーチングプログラム等を格納する。記憶装置38´は、例えば、オフラインティーチングに使用するCADデータや、パートプログラム等を格納する。記憶装置38´内のデータは、I/F39´を介してCPU35´に入力される。RAM40´は、各種プログラムを格納する他、各種処理のワーク領域を提供する。
CPU35´は、例えば、ROM37´、記憶装置38´、及び、RAM40´、並びに、ROM37´等に格納された種々のプログラムにより、種々の演算処理及び測定処理を実行する。
[オフラインティーチングプログラム]
次に、図7A~図10を参照して、オフラインティーチングプログラムを用いたパートプログラムの生成方法について説明する。
本実施形態に係るオフラインティーチングにおいては、演算装置22´(図5)が、例えば、ワーク10及び画像測定機1(図1)のCADデータを取り込み、このCADデータに基づいてワーク10及び画像測定機1の三次元モデルの画像を生成し、生成した画像をディスプレイ等の表示装置21´(図5)に表示させる。ユーザは、例えば、表示装置21´に表示された三次元モデルの画像を参照し、この画像に表示されたワーク10の測定箇所をクリック等の操作によって選択することにより、測定箇所のリストを作成する。演算装置22´は、例えば、この測定箇所のリストに基づいて、各測定箇所に応じた適切な撮像位置、及び、エッジ検出ツールtの種類、大きさ、位置及び角度等を演算し、パートプログラムとして出力する。出力されたパートプログラムは、図1等を参照して説明した画像測定装置に送信される。
図7Aは、オフラインティーチングプログラムのGUI(Graphical User Interface)画面の一例である。図7Bは、図7Aの一部の拡大図である。図8は、図7Bの一部の拡大図である。図9は、ワーク10の三次元モデル10Aの斜視図である。図10は、図7Bの一部の拡大図である。
図7Aに示す様に、本実施形態に係るオフラインティーチングプログラムのGUIは、例えば、仮想空間に配置された三次元モデルの画像(以下、「仮想空間画像I1」と呼ぶ。)を表示するウィンドウW1と、カメラ13から出力されるワーク10の画像に対応する三次元モデル10Aの画像(以下、「仮想カメラ画像I2」と呼ぶ。)を表示するウィンドウW2と、測定箇所のリストを表示するウィンドウW3と、を備える。また、このGUIは、測定箇所の選択に用いられるパレットP1と、照明コントロールに用いられるパレットP2と、パートプログラムの生成に用いられる測定実行ボタンB1と、仮想空間において測定のシミュレーションを実行するシミュレーションボタンB2と、を備える。尚、GUIに含まれる各構成(ウィンドウW1,W2,W3、パレットP1,P2、測定実行ボタンB1及びシミュレーションボタンB2)は、必要に応じて適宜非表示とすることも出来る。
ウィンドウW1には、例えば図7Bに示す様に、仮想空間画像I1と、仮想空間におけるワーク座標系の座標軸I11と、仮想空間における機械座標系の座標軸I12と、ワーク10の三次元モデル10Aの位置又は角度を調整する際に使用されるマニュピレータI13と、が表示される。
仮想空間画像I1は、例えば、仮想空間に配置されたワーク10の三次元モデル10Aと、画像測定機1の三次元モデル1Aと、の画像である。
画像測定機1の三次元モデル1Aは、例えば、試料台11の三次元モデル11Aと、Y軸駆動機構12の三次元モデル12Aと、カメラ13の三次元モデル13Aと、リングライト14の三次元モデル14Aと、Z軸駆動機構15の三次元モデル15Aと、X軸駆動機構16の三次元モデル16Aと、アーム支持体17の三次元モデル17Aと、除振台18の三次元モデル18Aと、を備える。これら複数の三次元モデル11A,12A,13A,14A,15A,16A,17A,18Aは、それぞれ、三次元モデルを構成する複数の幾何要素を含む。三次元モデル11Aの、三次元モデル18Aに対するY方向における位置は、三次元モデル11Aに対する三次元モデル13Aの位置(以下、「第1仮想カメラ位置」と呼ぶ。)のY座標の成分に応じて、適宜調整される。同様に、三次元モデル13A,14Aの三次元モデル18Aに対するZ方向における位置、及び、三次元モデル13A,14A,15Aの三次元モデル18Aに対するX方向における位置は、第1仮想カメラ位置のZ座標及びX座標の成分に応じて、適宜調整される。
また、画像測定機1の三次元モデル1Aは、例えば図8に示す様に、撮像ユニットに装着される対物レンズの合焦位置を示す三次元モデル19Aを備える。三次元モデル19Aは、例えば、円錐状の形状を備える。円錐の高さは対物レンズの表面から対物レンズの合焦位置までの距離(作動距離)に対応している。円錐の角度は対物レンズの集光角に対応している。円錐の頂点は対物レンズの合焦位置、及び、カメラ13によって取得される画像の中心位置に対応している。尚、本実施形態に係るオフラインティーチングプログラムにおいては、対物レンズの種類を設定することも出来る。三次元モデル19Aの形状は、対物レンズの合焦位置等に応じて調整される。また、三次元モデル19Aは、半透明の画像としても良い。例えば、第1仮想カメラ位置から見て、三次元モデル19Aと重なる位置に設けられた他の三次元モデルが視認出来る態様で、三次元モデル19Aを表示しても良い。これにより、対物レンズの合焦位置とワーク10との位置関係をより容易に視認出来る場合がある。
また、仮想空間画像I1は、撮像ユニットに装着される対物レンズの合焦位置が移動する軌跡を示す表示20Aを含む。軌跡を示す表示20Aは、例えば、パートプログラムによって測定を行った際に、上記円錐の頂点が移動する軌跡を表示する。軌跡を示す表示20Aは、例えば、点列、三次元自由曲線又はその他の手段で表現することが出来る。
ワーク10の三次元モデル10Aは、複数の幾何要素を含む。例えば図9の例では、下面を示す平面要素10aと、側面を示す複数の平面要素10bと、上面を示す平面要素10cと、これら平面要素10a,10b,10cの輪郭線を示す複数の直線要素10dと、を含む。また、三次元モデル10Aは、例えば図9の例では、円筒状の貫通孔を示す円筒要素10eと、この貫通孔と下面又は上面との境界線を示す2つの円要素10fと、四角柱状の貫通孔を示す複数の平面要素10gと、この貫通孔の輪郭線、及び、この貫通孔と下面又は上面との境界線を示す複数の直線要素10hと、切り欠きを示す2つの平面要素10i及び円筒要素10jと、この切り欠きと他の要素との境界線を示す複数の直線要素10k及び2つの円要素10lと、を含む。尚、仮想空間の機械座標系における三次元モデル10Aの位置は、適宜調整することが出来る。
座標軸I11(図7B)は、例えば、仮想空間におけるワーク座標系のX軸、Y軸及びZ軸に沿って延伸する矢印の画像を含む。座標軸I12は、例えば、仮想空間における機械座標系のX軸、Y軸及びZ軸に沿って延伸する矢印の画像を含む。
マニュピレータI13は、例えば図10に示す様に、仮想空間の機械座標系におけるX軸、Y軸又はZ軸に対応する3つの第1画像I13aと、仮想空間の機械座標系におけるYZ平面、ZX平面又はXY平面に対応する3つの第2画像I13bと、仮想空間の機械座標系におけるX軸、Y軸又はZ軸に対応する3つの第3画像I13cと、を含む。第1画像I13aは、例えば、仮想空間における機械座標系のX軸、Y軸又はZ軸に沿って延伸する矢印の画像として表現することが出来る。第2画像I13bは、例えば、仮想空間における機械座標系のX軸、Y軸又はZ軸に沿って延伸しお互いに垂直な2つの矢印の組み合わせの画像として表現することが出来る。第3画像I13cは、例えば、仮想空間における機械座標系のX軸、Y軸又はZ軸を中心とする曲線矢印の画像として表現することが出来る。尚、図示の例においては、第1画像I13a、第2画像I13b及び第3画像I13cが仮想空間の機械座標系に対応しているものの、これら画像の少なくとも一つを仮想空間のワーク座標に対応させることも出来る。
ウィンドウW2(図7A)には、仮想カメラ画像I2が表示される。例えば、指定された対物レンズの種類に応じてカメラ13の視野範囲を算出し、算出された視野範囲、第1仮想カメラ位置、並びに、仮想空間の機械座標系におけるワーク10の三次元モデル10Aの位置及び角度(以下、「仮想ワーク位置」及び「仮想ワーク角度」と呼ぶ。)等に応じて仮想カメラ画像I2を生成する。
尚、ウィンドウW2には、図4を参照して説明した様なエッジ検出ツールtを配置することも出来る。また、この様なエッジ検出ツールtの種類、位置、角度、大きさ等は、ウィンドウW2にて調整することも可能である。
ウィンドウW3には、ワーク10の測定箇所のリストが表示される。測定箇所のリストには、例えば、ワーク10の三次元モデル10Aに含まれる複数の幾何要素(上記平面要素10a,10b,10c,10g,10i、直線要素10d,10h,10k、円筒要素10e,10j、円要素10f,10l等)のうち、ワーク10の測定箇所に対応するものを示す名称等の情報が表示される。
パレットP1は、複数の幾何要素選択ボタンp1を備える。これら複数の幾何要素選択ボタンp1は、それぞれ、幾何要素の種類に対応している。例えば図示の例では、複数の幾何要素選択ボタンp1が、それぞれ、点要素、直線要素、円要素、平面要素、球要素、段付円筒要素、円筒要素、円錐要素等に対応している。
パレットP2(図7A)は、複数のコントロールバーp2を備える。これら複数のコントロールバーp2は、それぞれ、画像測定機1に設けられた複数の照明に対応している。また、これら複数のコントロールバーp2は、それぞれ、対応する各照明の照度の調整等に使用することが出来る。例えば図示の例では、複数のコントロールバーp2が、上方(カメラ13の撮像方向)から対物レンズを介してワーク10を照射する落射照明、下方から試料台11を介してワーク10を照射する透過照明、並びに、リングライト14に設けられた複数の照明のうち、Y方向の一方側からワーク10を照射するもの、Y方向の他方側からワーク10を照射するもの、X方向の一方側からワーク10を照射するもの、及び、X方向の他方からワーク10を照射するものに対応している。
測定実行ボタンB1は、パートプログラム自動生成プログラムの出力に用いられる。パートプログラム自動生成プログラムについては後述する。
シミュレーションボタンB2は、シミュレーション動画生成プログラムの実行に用いられる。シミュレーション動画生成プログラムについては後述する。
図11は、オフラインティーチングプログラムの機能ブロック図である。図11に示す各構成は、例えば、オフラインティーチングプログラム、並びに、図6を参照して説明したCPU35´、ROM37´、記憶装置38´、RAM40´等によって実現される。
本実施形態に係るオフラインティーチングプログラムは、三次元モデル生成部G1と、仮想カメラ位置保持部G2と、画像生成部G3と、照明条件調整部G4と、ポインタ座標保持部G5と、ポインタ座標変換部G6と、ワーク位置調整部G7と、測定箇所指定部G8と、測定箇所保持部G9と、パートプログラム生成部G10と、パートプログラム保持部G11と、シミュレーション実行部G12と、を備える。
三次元モデル生成部G1は、画像測定機1の三次元モデル1A、及び、ワーク10の三次元モデル10Aを生成する。三次元モデル生成部G1は、例えば、ワーク10及び画像測定機1のCADデータ、第1仮想カメラ位置、並びに、仮想ワーク位置及び仮想ワーク角度が格納された記憶装置38´、及び、このCADデータを保持するRAM40´の少なくとも一方を含む。
仮想カメラ位置保持部G2は、仮想空間に配置された仮想的なカメラの仮想空間における位置及び角度(以下、「第2仮想カメラ位置」及び「第2仮想カメラ角度」と呼ぶ。)を保持する。この仮想的なカメラは、画像測定機1に含まれるカメラ13と対応するものとは異なり、画像測定機1の三次元モデル1Aから離間して仮想空間に配置される。この仮想的なカメラから出力される画像は、図7AのウィンドウW1に表示される仮想空間画像I1に対応する。従って、例えばこの仮想的なカメラが三次元モデル10Aに近づけば、仮想空間画像I1において三次元モデル10Aの画像が拡大される。
画像生成部G3(図11)は、図7Aの仮想空間画像I1及び仮想カメラ画像I2を生成し、画像メモリ32´(図6)に出力する。
照明条件調整部G4(図11)は、上記パレットP2(図7A)の操作に応じて、ワーク10の三次元モデル10A、及び、試料台11の三次元モデル11Aの仮想空間画像I1、仮想カメラ画像I2における表示色(照度、濃度)を調整する。例えば、落射照明に対応するコントロールバーp2が操作された場合、ワーク10の上面を示す平面要素10c(図9)、及び、試料台11の三次元モデル11A(図7A)の上面に対応する平面要素の表示色が、仮想空間画像I1及び仮想カメラ画像I2において調整される。表示色の調整は、例えば、三次元モデル生成部G1又は画像生成部G3において、三次元モデル又は幾何要素の表示色に関する情報を調整することによって行われる。
ポインタ座標保持部G5は、ポインタ座標を保持する。ポインタ座標保持部G5に保持されたポインタ座標は、マウス等の入力装置23´から入力された情報に応じて適宜更新される。
ポインタ座標変換部G6は、例えば、ポインタ座標保持部G5に保持されたポインタ座標、並びに、仮想カメラ位置保持部G2に保持された第2仮想カメラ位置及び第2仮想カメラ角度に基づき、ポインタ座標を仮想空間における三次元座標(以下、「三次元ポインタ座標」と呼ぶ。)に変換する。この三次元ポインタ座標は、例えば、ポインタ座標に対応して仮想空間に設けられる直線と、ワーク10の三次元モデル10A又は画像測定機1の三次元モデル1Aを構成する幾何要素と、の交点とすることが出来る。また、ポインタ座標に対応して仮想空間に設けられる直線は、第2仮想カメラ位置及びポインタ座標によって特定される点を通り、第2仮想カメラ角度(例えば、上記仮想的なカメラの撮像方向)に延伸する直線とすることが出来る。
ワーク位置調整部G7は、上記三次元ポインタ座標等に基づき、仮想空間におけるワーク10の三次元モデル10Aの位置及び角度(「仮想ワーク位置」及び「仮想ワーク角度」)を調整する。
ワーク位置調整部G7は、例えば、上記マニュピレータI13(図10)のX軸、Y軸又はZ軸に対応する第1画像I13aがクリック等の操作によって選択された場合、ワーク10の三次元モデル10Aを仮想空間においてX方向、Y方向又はZ方向に移動可能な状態とする。同様に、ワーク位置調整部G7は、例えば、上記マニュピレータI13の第2画像I13bのいずれかがクリック等の操作によって選択された場合、三次元モデル10Aを仮想空間においてX方向及びY方向、Y方向及びZ方向、又は、Z方向及びX方向に移動可能な状態とする。同様に、ワーク位置調整部G7は、上記マニュピレータI13の第3画像I13cのいずれかがクリック等の操作によって選択された場合、三次元モデル10Aを仮想空間においてX軸、Y軸又はZ軸を回転軸として回転可能な状態とする。
尚、ワーク位置調整部G7(図11)は、例えば、ワーク10の三次元モデル10Aを構成する複数の幾何要素から、底面(試料台11の上面に対応する平面要素との接触面)を指定する機能を有することが出来る。この様な場合、例えば、三次元モデル10Aを構成する複数の平面要素10a,10b,10c(図9)の中から、一の平面要素を底面として選択することが出来る。また、この様な場合、例えば、試料台11の上面を示す平面要素と平行な方向への移動、及び、試料台11の上面を示す平面要素の法線方向に延伸する直線を軸とする回転のみを有効とし、その他の移動及び回転を無効とすることが出来る。例えば、マニュピレータI13(図10)を構成する複数の画像のうち、X軸及びY軸に対応する2つの第1画像I13a、XY平面に対応する1つの第2画像I13b及びZ軸に対応する1つの第3画像I13cに対応する機能を有効な状態とし、Z軸に対応する1つの第1画像I13a、YZ平面及びZX平面に対応する2つの第2画像I13b、及び、X軸及びY軸に対応する2つの第3画像I13cを無効な状態とすることが出来る。
測定箇所指定部G8(図11)は、例えば、ワーク10の三次元モデル10Aに含まれる複数の幾何要素から、測定箇所に対応する幾何要素を選択する。例えば、測定箇所指定部G8は、上記パレットP1(図7A)に含まれる複数の幾何要素選択ボタンp1の指定により、測定箇所に対応する幾何要素の種類を取得する。また、測定箇所指定部G8は、測定箇所に対応する種類の複数の幾何要素のうち、上記三次元ポインタ座標との距離が最も近いもの、又は、上記三次元ポインタ座標との距離が最も近く且つ上記三次元ポインタ座標との距離が所定の大きさ以下であるものを、ハイライト等によって強調表示する。強調表示は、例えば、三次元モデル生成部G1又は画像生成部G3(図11)において、三次元モデル又は幾何要素の表示色に関する情報を調整することによって行われる。ある幾何要素が強調表示されている状態でユーザがクリック等の操作を行うと、この幾何要素が測定箇所に対応する幾何要素として選択される。
測定箇所保持部G9は、測定箇所指定部G8によって選択された幾何要素のリストを保持する。このリストは、上記ウィンドウW3に表示される。
パートプログラム生成部G10は、上記測定実行ボタンB1のクリック等に応じて、パートプログラム自動生成プログラムを実行する。パートプログラム自動生成プログラムが実行されると、測定箇所保持部G9に保持されている幾何要素のリストに基づいて、パートプログラムが生成される。
パートプログラム保持部G11は、生成されたパートプログラムを保持する。
シミュレーション実行部G12は、上記シミュレーションボタンB2のクリック等に応じて、シミュレーション動画生成プログラムを実行する。シミュレーション動画生成プログラムが実行されると、パートプログラム保持部G11に保持されているパートプログラムに基づいて、仮想空間における測定のシミュレーションが実行される。また、このパートプログラムを実行した際の画像測定機1の動作を示す複数の仮想空間画像I1及び複数の仮想カメラ画像I2がシミュレーション動画として生成される。生成されたシミュレーション動画は、それぞれ、ウィンドウW1,W2において再生される。
[オフラインティーチングの手順]
次に、図12を参照して、ユーザによるオフラインティーチングの手順の一例について説明する。図12は、オフラインティーチングの手順の一例を示すフローチャートである。
まず、ステップS201において、ユーザは、画像測定機1の機種、対物レンズの種類等を選択する。演算装置22´は、選択された画像測定機1及び対物レンズに対応する画像測定機1の三次元モデル1Aを生成する。また、演算装置22´は、上記ウィンドウW1に、生成された三次元モデル1Aの画像を表示させる。
次に、ステップS202において、ユーザは、ワーク10のCADデータを選択する。演算装置22´は、選択されたCADデータに対応するワーク10の三次元モデル10Aを生成する。また、演算装置22´は、上記ウィンドウW1に、生成された三次元モデル10Aの画像を表示させる。
次に、ステップS203において、ユーザは、ワーク10の下面、側面又は上面のいずれかを、底面(試料台11の上面との接触面)として指定する。ワーク10の底面が指定されると、演算装置22´は、この底面に対応する平面要素10a,10b,10c(図9)のいずれかが試料台11の上面を示す平面要素と接する様に、仮想ワーク位置及び仮想ワーク角度を調整する。
次に、ステップS204において、ユーザは、仮想ワーク位置及び仮想ワーク角度を調整する。例えばユーザは、ワーク10の三次元モデル10Aの移動方向又は回転方向に応じて、マニュピレータI13に含まれる第1画像I13a、第2画像I13b又は第3画像I13cをクリック等の操作によって選択する。次にユーザは、仮想空間画像I1上において三次元モデル10Aに対してドラッグ等の操作を行い、これによって仮想ワーク位置及び仮想ワーク角度を調整する。
次に、ステップS205において、ユーザは、測定箇所の選択を行う。例えばユーザは、図7AのパレットP1に含まれる複数の幾何要素選択ボタンp1のうち、測定箇所に対応する1つの幾何要素選択ボタンp1をクリック等の操作によって選択する。次にユーザは、マウス等の入力装置23´を操作して、仮想空間画像I1上においてマウスポインタを測定箇所の近傍まで移動させる。これに伴い、仮想空間画像I1において、測定箇所に対応する幾何要素がハイライト等によって強調表示される。ユーザは、この状態でクリック等の操作を行うことにより、この幾何要素を測定箇所に対応する幾何要素として選択する。選択された幾何要素は、例えば、上述のウィンドウW3の測定箇所のリストに追加される。ユーザは、図7AのウィンドウW3を確認して、必要な測定箇所が全て選択されたか否かを確認し、同様の手段によって順次測定箇所の選択を行い、測定箇所に対応する幾何要素のリストを生成する。
次に、ステップS206において、ユーザは、照明等の測定条件を設定する。照明条件の設定に際しては、例えば、上述のパレットP2等が使用される。ユーザによって照明条件の設定が行われると、上記ウィンドウW1,W2に表示される仮想空間画像I1及び仮想カメラ画像I2において、ワーク10の三次元モデル10Aに含まれる複数の幾何要素の表示色が変化する。従って、ユーザは、仮想空間画像I1及び仮想カメラ画像I2を参照しつつ照明条件を調整することが出来る。
次に、ステップS207において、ユーザは、自動測定のシミュレーションを実行する。例えば、上記シミュレーションボタンB2のクリック等を行う。これに伴い、演算装置22´は、シミュレーション動画生成プログラムを実行する。
次に、ステップS208において、ユーザは、生成されたパートプログラムが適切か否か判断する。例えば、シミュレーション動画を参照して、十分な数の測定点(例えば、図4のエッジ点e)が取得出来るかどうか、測定箇所が適切かどうか、測定に際して十分な光量が得られるかどうか、及び、画像測定機1の三次元モデル1Aの一部(例えばリングライト14の三次元モデル14A)等がワーク10の三次元モデル10Aと干渉していないか、等を判断する。生成したパートプログラムが適切でない場合には、例えばステップS209に進む。生成したパートプログラムが適切であった場合には、ステップS210に進む。
次に、ステップS209において、ユーザは、生成されたパートプログラムの編集を行う。例えばユーザは、十分な数の測定点が取得出来ないと判断した場合、上記ウィンドウW2(図7A)上等において、エッジ検出ツールtの種類、位置、角度、大きさ等を調整することが出来る。また、例えばユーザは、測定箇所が適切でないと判断した場合、上記ウィンドウW1,W2(図7A)上等において、測定箇所を修正することが出来る。また、例えばユーザは、測定に際して十分な光量が得られないと判断した場合、上記パレットP2(図7A)等を利用して、照明条件を調整することが出来る。また、例えばユーザは、画像測定機1の三次元モデル1Aの一部等がワーク10の三次元モデル10Aと干渉していると判断した場合には、上記ウィンドウW1上等において、カメラ13等の移動経路を編集することが出来る。尚、移動経路の編集等には、例えば、対物レンズの合焦位置が移動する軌跡を示す表示20Aを利用することが出来る。
次に、ステップS210において、ユーザは、生成されたパートプログラムを出力する。例えば、上記測定実行ボタンB1のクリック等を行う。これに伴い、演算装置22´は、生成されたパートプログラムを出力する。出力されたパートプログラムは、例えば、図3を参照して説明した自動測定処理に使用することが出来る。
尚、図12のフローチャートは説明のための模式的なものであり、具体的な態様等は適宜調整することが出来る。例えば、ステップS208において生成したパートプログラムが適切でない場合には、画像測定機1に使用する対物レンズを交換することも出来る。
[パートプログラム自動生成プログラム]
次に、図13を参照して、パートプログラム自動生成プログラムの一例について説明する。図13は、パートプログラム自動生成プログラムの一例を示すフローチャートである。
ステップS301では、ウィンドウW3の測定箇所のリストから、一の幾何要素が選択される。
ステップS302では、選択された幾何要素の種類、位置及び大きさ等に基づいて、撮像位置、並びに、エッジ検出ツールの種類、大きさ、位置及び角度等が設定される。この工程においては、例えば、カメラ13によって取得される画像に複数の測定箇所が収まる様に、撮像位置を設定することも出来る。また、例えば、測定箇所がカメラ13によって取得される画像に収まりきらない大きさである場合には、この様な測定箇所に対応して撮像位置を複数設定することも出来る。撮像位置、並びに、エッジ検出ツールの種類、大きさ、位置及び角度等は、パートプログラムの一部として、パートプログラム保持部G11(図11)に保持される。
ステップS303では、ウィンドウW3に対応する測定箇所のリストに含まれる全ての幾何要素が選択されたか否かを判定する。この工程においては、例えば、ステップS301において選択されていない幾何要素であっても、ステップS302において設定された撮像範囲に含まれている幾何要素であれば、選択済の幾何要素として判断することが出来る。全ての幾何要素が選択されていなかった場合には、ステップS301に戻る。全ての幾何要素が選択されていた場合には、パートプログラム自動生成プログラムを終了する。
[シミュレーション動画生成プログラム]
次に、図14を参照して、シミュレーション動画生成プログラムの一例について説明する。図14は、シミュレーション動画生成プログラムの一例を示すフローチャートである。
ステップS401では、パートプログラム自動生成プログラムが実行され、パートプログラムが生成される。
ステップS402では、変数Kが1に設定される。
ステップS403では、パートプログラムに含まれる複数の撮像位置のうちのK番目の撮像位置及びK+1番目の撮像位置が取得される。
ステップS404では、変数Lが0に設定される。
ステップS405では、第1仮想カメラ位置がK番目の撮像位置に到達してから単位時間×L経過後の第1仮想カメラ位置が取得される。
ステップS406では、ステップS405において取得された第1仮想カメラ位置に対応する画像測定機1の三次元モデル1A及びワーク10の三次元モデル10Aが生成される。即ち、第1仮想カメラ位置のY座標の成分に応じて、ワーク10及び試料台11の三次元モデル10A,11Aの仮想空間におけるY座標の位置が調整される。また、第1仮想カメラ位置のZ座標の成分に応じて、カメラ13及びリングライト14の三次元モデル13A,14A、並びに、対物レンズの合焦位置を示す三次元モデル19Aの仮想空間におけるZ座標の位置が調整される。また、第1仮想カメラ位置のX座標の成分に応じて、カメラ13、リングライト14及びZ軸駆動機構15のX座標、並びに、対物レンズの合焦位置を示す三次元モデル19Aの仮想空間におけるX座標の位置が調整される。
ステップS407では、生成された三次元モデル1A,10Aに対応して、仮想空間画像I1及び仮想カメラ画像I2が生成される。仮想空間画像I1は、例えば、ステップS406において生成された三次元モデル、並びに、第2仮想カメラ位置及び第2仮想カメラ角度に基づいて生成される。また、仮想空間画像I1には、対物レンズの合焦位置が移動する軌跡を示す表示20Aが表示される。仮想カメラ画像I2は、例えば、ステップS406において生成された三次元モデルに基づいて生成される。尚、仮想カメラ画像I2には、自動測定に際して使用されるエッジ検出ツールを表示することが出来る。
ステップS408では、撮像位置がK+1番目の撮像位置に到達したか否かが判定される。撮像位置がK+1番目の撮像位置に到達していなかった場合には、ステップS409に進む。撮像位置がK+1番目の撮像位置に到達していた場合には、ステップS410に進む。
ステップS409では、変数Lに1が加算され、処理はステップS405に戻る。
ステップS410では、全ての撮像位置が選択されたか否かが判定される。全ての撮像位置が選択されていなかった場合にはステップS411に進む。全ての撮像位置が選択されていた場合にはステップS412に進む。
ステップS411では、変数Kに1が加算され、処理はステップS403に戻る。
ステップS412では、出力された複数の仮想空間画像I1及び仮想カメラ画像I2が、ウィンドウW1,W2において動画として再生される。
[効果]
従来のオフラインティーチングでは、例えば、ワークのCADデータに基づいて仮想空間にワークのCADモデルを配置し、このCADモデルの画像をディスプレイ等に表示させる場合がある。この様な場合、ユーザは、このCADモデルの画像に基づいて測定箇所を指定する場合がある。この様な方法によれば、測定箇所を容易に指定することが出来る。
しかしながら、この様なオフラインティーチングプログラムでは、生成されたパートプログラムの適否を十分に判断することが難しい場合があった。例えば、測定に際してカメラとワークとが干渉しないかどうか等を直感的に判断することが難しい場合があった。
そこで、本実施形態に係るオフラインティーチングプログラムでは、生成したパートプログラムに基づく自動測定のシミュレーションを実行する。また、自動測定のシミュレーションに際しては、上記ウィンドウW1において、画像測定機1の三次元モデル1A及びワーク10の三次元モデル10Aを示す仮想空間画像I1の動画を再生し、上記ウィンドウW2において、カメラ13によって撮像されるワーク10のカメラ画像に対応する仮想カメラ画像I2の動画を再生する。
この様な構成によれば、上記ウィンドウW1において再生される仮想空間画像I1の動画によって画像測定機1の各構成(例えばリングライト14等)及びワーク10の位置関係を把握することが出来、上記ウィンドウW2において再生される仮想カメラ画像I2の動画によってカメラ13から出力される画像データを把握することが出来る。従って、ユーザは、実際のワーク10及び画像測定機1を視認することが出来ない環境においても、生成されたパートプログラムの適否を好適に判断することが出来る。例えば、生成されたパートプログラムに基づいて自動測定を行った場合に、画像測定機1とワーク10との干渉を避けつつ、好適な測定が実行されるか否かを、直感的に判断することが出来る。
また、本実施形態に係るオフラインティーチングプログラムでは、画像測定機1の三次元モデル1Aが、対物レンズの合焦位置を示す円錐状の三次元モデル19Aを含んでいる。この様な構成によれば、ユーザは、ワーク10の三次元モデル10Aと円錐状の三次元モデル19Aとの関係をウィンドウW1等において視認することにより、適切な第1仮想カメラ位置を直感的に判断することが出来る。また、適切な対物レンズが選択されているか否かを、直感的に判断することが出来る。また、例えば深い穴の底面等を測定する場合に、十分な光量が得られるかどうかを直感的に判断することが出来る。
また、本実施形態に係るオフラインティーチングプログラムにおいては、上記シミュレーションの動画を構成する仮想空間画像I1が、対物レンズの合焦位置が移動する軌跡を示す表示20Aを含む。この様な構成によれば、ユーザは、ワーク10と画像測定機1の一部(例えば、カメラ13及びリングライト14等)との位置関係が自動測定に際してどの様に推移するかを一見して把握することが出来、画像測定機1の三次元モデル1Aの一部がワーク10の三次元モデル10Aと干渉しないか、等を容易に判断することが出来る。
また、従来のオフラインティーチングでは、仮想空間におけるワークのCADモデルの位置及び角度の調整に際して、ワークのCADモデルの座標データをキーボード等の入力手段によって直接入力しており、調整に手間がかかっていた。マウス等の入力手段によって調整を行うことも考えられるが、例えばワークのCADモデルを一方向にのみ動かしたい場合等に、その様な操作が難しい場合があった。
そこで、本実施形態に係るオフラインティーチングプログラムは、ワーク10の三次元モデル10A(図7A)の仮想空間における移動方向又は回転軸を指定し、入力装置23´(図5)による操作に基づいて、ワーク10の三次元モデル10Aの仮想空間における位置を指定された移動方向に沿って調整し、又は、ワーク10の三次元モデル10Aの仮想空間における角度を指定された回転軸に沿って調整するワーク位置調整部G7(図11)を備える。
この様な構成によれば、マウス等の入力装置によっても、三次元モデル10Aの仮想空間における位置及び角度を、容易且つ直感的に調整することが出来る。また、例えば、マウス等の二次元の入力操作によって三次元モデル10Aの三次元座標を調整する場合には、二次元の入力操作を仮想空間における三次元の入力操作に変換して、三次元モデル10Aの位置及び角度を容易に調整することが出来る。
また、例えば本実施形態の様に、ワーク10の三次元モデル10Aの位置及び角度を三次元の仮想空間において調整する場合、ワーク10の三次元モデル10Aの高さ位置や試料台11の三次元モデル11Aとの接触面の角度などを正確に設定しないと、測定精度に影響を及ぼしてしまう可能性がある。しかしながら、ユーザがこの様な調整を実行する場合、調整に時間がかかってしまう場合がある。
そこで、本実施形態に係るオフラインティーチングプログラムは、ワーク10の三次元モデル10A(図7A)の試料台11(図1)との接触部を示す部分(例えば、上記底面)を指定し、この指定された部分が画像測定機1の三次元モデル1A(図7A)の試料台11の上面を示す面要素と接触する様に、ワーク10の三次元モデル10Aの仮想空間における位置及び角度を調整するワーク位置調整部G7(図11)を備える。
この様な構成によれば、ユーザによる厳密な位置合わせの手間を省略して、ワーク10の三次元モデル10Aの位置及び角度を容易に調整することが出来る。
[その他の実施形態]
以上、第1実施形態に係るオフラインティーチングプログラム等について説明した。しかしながら、以上の説明はあくまでも例示に過ぎず、具体的な構成は適宜変更することが出来る。
[画像測定機1]
上述の例では、画像測定機1(図1)として、試料台11が撮像位置に応じてY方向に移動する様に構成されたものを例示した。しかしながら、上記オフラインティーチングプログラムでは、種々の画像測定装置を取り扱うことが出来る。例えば、試料台11のかわりに、カメラ13、リングライト14、Z軸駆動機構15、X軸駆動機構16及びアーム支持体17がY方向に移動する様に構成された画像想定装置を取り扱うことも出来る。また、ロボットアーム等を備える画像測定装置を取り扱うことも出来る。尚、ロボットアーム等を備える画像測定装置は、例えば、複数のアーム部と、これら複数のアーム部のうちの少なくとも2つを連結する複数の関節部と、複数のアーム部のうちの一つに接続されたカメラと、を備える。また、各関節部は、例えば、駆動用のモータ、及び、位置検出用のロータリエンコーダ等を備える。
[表示装置21及び入力装置23]
上述の例では、表示装置21としてディスプレイを例示し、入力装置23としてマウス等の二次元操作を行う装置を例示した。しかしながら、この様な構成は適宜変更することが出来る。例えば、表示装置21として三次元画像を表示可能なヘッドマウントディスプレイ等の構成を使用し、入力装置23として三次元操作を行う構成を使用することが出来る。
[対物レンズの合焦位置を示す三次元モデル19A]
上述の例では、対物レンズの合焦位置を示す三次元モデル19Aが、円錐状の形状を有していた。しかしながら、三次元モデル19Aの形状は適宜調整可能である。例えば三次元モデル19Aには、対物レンズの光軸を示す直線を含ませることも出来る。また、例えば三次元モデル19Aには、カメラ13の視野範囲に対応する矩形状の平面要素を含ませることも出来る。この様な平面要素は、例えば、円錐状の三次元モデル19Aの頂点と接する平面とすることも出来るし、円錐状の三次元モデル19Aの中心軸と垂直な平面とすることも出来る。また、三次元モデル19Aには、円錐要素に変えて、三角錐の幾何要素、四角錐の幾何要素又はその他多角錐の幾何要素を含ませることも出来る。
[ワーク10及び試料台11の関係]
上述の例では、ワーク10を直接試料台11上に載置していた。しかしながら、例えば、試料台11上に治具を載置し、この治具によってワーク10を支持し、治具によって保持されたワーク10を測定することも出来る。
この様な測定を想定してパートプログラムを生成するためには、例えば、治具の大きさ及び形状を考慮してワーク10の三次元モデル10Aを宙に浮かせた状態でパートプログラムを生成することも出来る。また、例えば、治具のCADデータを取り込んで治具の三次元モデルを生成し、この治具の三次元モデルを使用してワーク10の三次元モデル10Aの位置を調整し、この状態でパートプログラムを生成することも出来る。また、例えば、治具及びこの治具によって支持されたワークの三次元モデルを生成し、この三次元モデルをワークの三次元モデルとしてパートプログラムを生成することも出来る。
ワーク10の三次元モデル10Aを宙に浮かせた状態でパートプログラムを生成する場合、例えば、ワーク位置調整部G7の底面を指定する機能を無効とすることも出来る。この様な方法によれば、治具のCADデータ等を使用することなく、パートプログラムを生成することが出来る。
治具のCADデータを取り込んで治具の三次元モデルを生成する場合、例えば、ワーク位置調整部G7により、治具の三次元モデルを構成する複数の幾何要素から、底面、及び、ワーク10の三次元モデル10Aとの接触部を指定することが出来る。また、ワーク10の三次元モデル10Aを構成する複数の幾何要素から、治具の三次元モデルとの接触部を指定することも出来る。尚、治具の三次元モデルの位置調整は、上述のワーク10の三次元モデル10Aと同様の態様で、マニュピレータI13等を使用して行うことも出来る。
また、上述の例では、ワーク10又は治具が試料台11上に載置された際、ワーク10又は治具に含まれる平面が試料台11の上面に接する例について説明した。しかしながら、ワーク10又は治具の試料台11との接触部は、平面要素以外の部分とすることも出来る。例えば、ワーク10又は治具が、曲面状又は球面状の複数の脚部を備える場合、ワーク位置調整部G7は、例えば、ワーク10又は治具に含まれる複数の脚部と接する平面を仮定し、この平面を底面として指定することが出来る。
[パートプログラム自動生成プログラム]
上述の例では、図7AのウィンドウW3に表示された測定箇所のリストに表示された幾何要素が、ユーザによって選択された順に順次選択され、この順番で撮像位置が移動するように、パートプログラムが生成されていた。しかしながら、例えば上述のパートプログラム自動生成プログラムは、最も効率的な測定が可能となる様に、撮像位置の順番を入れ替えることも出来る。例えば、全ての撮像位置を通り且つ移動距離の合計が最小となる様な、又は、自動測定に要する時間が最小となるような撮像位置の順番を算出し、この順番に従って撮像位置の順番を入れ替えることも出来る。
[シミュレーション]
上述の例では、図14のステップS401~S411が全て終了した後で、ステップS412において動画の再生を行っていた。しかしながら、この様な方法は例示に過ぎず、具体的な方法は適宜調整することが出来る。例えば、ステップS401~S411の動作(仮想空間画像I1及び仮想カメラ画像I2の生成)とステップS412の動作(動画の再生)とは並行して実行することも出来る。
また、シミュレーション動画の生成に際しては、例えば、生成されたパートプログラムに基づいて自動測定を行う場合に必要な時間を算出することも出来る。また、シミュレーション動画の再生は、早送り、スローモーション、一時停止等の操作が可能な態様で実行することも出来る。また、シミュレーション動画を一時停止した場合には、この状態で第2仮想カメラ位置を調整出来るようにすることも出来る。また、第1仮想カメラ位置が撮像位置に到達する前後のタイミングで、シミュレーション動画をスローモーションにすることも出来る。また、第1仮想カメラ位置が撮像位置に到達したタイミングで、シミュレーション動画を一時停止することも出来る。これにより、ウィンドウW2においてエッジ検出ツールtをより容易に確認することが出来る。
[その他]
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。