説明

マシンビジョンシステムのパートプログラム編集環境内で編集初期化ブロックを利用するシステム及び方法

【課題】マシンビジョンシステムのパートプログラム編集環境内で編集初期化ブロックを利用するシステム及び方法を提供する。
【解決手段】パートプログラムの編集初期化ブロックを定義及び利用する方法が提供される。パートプログラムは、一部を測定するための複数のステップを備え、編集インタフェースに表示される。編集インタフェースに、編集初期化ブロックに含めるステップを選択する選択肢が提供される。パートプログラムが保存された後に、編集のためにパートプログラムが呼び出されると、追加のステップがパートプログラムに追加される前に編集初期化ブロックが実行され得る。編集初期化ブロックにない初期パートプログラムステップによって取得されたデータの少なくともいくつかは、編集初期化ブロックを実行して決定されたデータに関連する推定データに基づいてもよい(例えば、基づいて変更されてもよい)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概してマシンビジョン検査システムに関し、より具体的には、そのようなシステム内でパートプログラムを作成し編集する方法に関する。
【背景技術】
【0002】
精密なマシンビジョン検査システム(又は略して「ビジョンシステム」)は、被検査物体の精密な寸法測定を取得し、様々な他の物体の要素を検査するために利用することができる。そのようなシステムは、コンピュータと、カメラ及び光学系と、複数の方向に移動可能であり、カメラが検査中のワークピースの要素をスキャンできるようにする精密ステージとを含み得る。市販されている例示的な1つの従来技術によるシステムは、Aurora,ILに所在のMitutoyo America Corporation (MAC)から入手可能なQUICK VISION(登録商標)シリーズのPCに基づくビジョンシステム及びQVPAK(登録商標)ソフトウェアである。QUICK VISION(登録商標)シリーズのビジョンシステム及びQVPAK(登録商標)ソフトウェアの機能及び動作は一般に、例えば、2003年1月に公開されたQVPAK 3D CNC Vision Measuring Machine User's Guide及び1996年9月に公開されたQVPAK 3D CNC Vision Measuring Machine Operation Guideに説明されており、これらのそれぞれを参照により本明細書に援用する。この製品は、例えば、QV-302 Proモデルで例示されるように、顕微鏡型光学系を使用して、ワークピースの画像を様々な倍率で提供し、必要に応じてステージを動かして、任意の単一のビデオ画像の限界を超えてワークピース表面を横断することが可能である。単一のビデオ画像は通常、そのようなシステムの所望の倍率、測定分解能、及び物理的サイズ制限を考えると、観測中又は検査中のワークピースの一部のみしか包含しない。
【0003】
マシンビジョン検査システムは一般に、自動ビデオ検査を利用する。米国特許第6,542,180号では、そのような自動ビデオ検査の様々な態様が教示されてており、この特許は参照により本明細書に援用される。180号特許において教示されるように、自動ビデオ検査装置は一般に、プログラミング機能を有し、プログラミング機能により、自動検査イベントシーケンスをユーザが特定の各ワークピース構成に関して定義することができる。これは、例えば、テキストに基づくプログラミングにより、グラフィカルユーザインタフェースを用いてユーザが実行する検査動作シーケンスに対応するマシン制御命令シーケンスを記憶することで、検査イベントシーケンスを徐々に「学習」する記録モードを通して、又は両方の組み合わせを通して実施することができる。そのような記録モードは多くの場合、「学習モード」又は「トレーニングモード」と呼ばれる。検査イベントシーケンスが「学習モード」で定義されると、そのようなシーケンスを使用して、「実行モード」中にワークピースの画像を自動的に取得する(且つさらに解析又は検査する)ことができる。
【0004】
ビデオツール(又は略して「ツール」)及び他のグラフィカルユーザインタフェース機能は、手動で使用して、手動での検査及び/又はマシン制御動作を達成し得る(「手動モード」で)。そのセットアップパラメータ及び動作も、学習モード中に記録して、自動検査プログラム又は「パートプログラム」を作成することができる。ビデオツールは、例えば、エッジ/境界検出ツール、オートフォーカスツール、形状又はパターン照合ツール、寸法測定ツール等を含み得る。他のグラフィカルユーザインタフェース機能は、データ解析に関連するダイアログボックス、ステップアンドリピートループプログラミング等を含み得る。例えば、そのようなツールは、上述したQUICK VISION(登録商標)シリーズのビジョンシステム及び関連付けられたQVPAK(登録商標)ソフトウェア等の市販の様々なマシンビジョン検査システムに日常的に使用されている。
【0005】
特定の検査イベントシーケンス(すなわち、各画像を取得する方法及び各取得画像を解析/検査する方法)を含むマシン制御命令は一般に、特定のワークピース構成に固有の「パートプログラム」又は「ワークピースプログラム」として記憶される。例えば、パートプログラムは、ワークピースに対してカメラを位置決めする方法、照明レベル、倍率レベル等の各画像を取得する方法を定義する。さらに、パートプログラムは、例えば、エッジ/境界検出ビデオツール等の1つ又は複数のビデオツールを使用することにより、取得画像を解析/検査する方法を定義する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
パートプログラムの編集は複雑な作業となり得る。例えば、ユーザが部分的に完成したパートプログラムを保存し、後に戻り、プログラミングを仕上げる場合、その間に変更が生じたとき(例えば、環境の変化、ステージ上で非意図的に動いた部分等)、任意の追加ステップを追加する前に、パートプログラム全体を再実行する必要があり得る。これら及び他の欠陥を解消して、精密マシンビジョン検査システムでパートプログラムのより効率的、直観的、且つ柔軟な編集が可能な編集動作及び機能が必要とされる。
【課題を解決するための手段】
【0007】
本概要は、詳細な説明においてさらに後述する選択された概念を簡易化された形態で紹介するために提供される。本概要は、特許請求される趣旨の主要な特徴を識別する意図はなく、特許請求される趣旨の範囲を判断する際の助けとして使用される意図もない。
【0008】
マシンビジョン検査システムでパートプログラムを編集する方法が提供される。マシンビジョン検査システムは、撮像部と、1つ又は複数の部分を撮像部の視野(FOV)内に保持するステージと、ステージに対して撮像部を移動させる移動制御部と、ユーザインタフェース(UI)を表示するディスプレイと、コントローラとを含む。
【0009】
本発明の一態様によれば、方法は、複数の初期パートプログラムステップを定義し、対応するパートプログラムステップ表現をユーザインタフェースの編集インタフェースに表示することで開始される。次に編集初期化部が提供され、複数の初期パートプログラムステップのうちの少なくともいくつかを、パートプログラムの編集初期化ステップとして定義するように動作する。次に、編集初期化部が動作し、それにより、パートプログラムが編集に呼び出された場合、パートプログラムが定義された編集初期化ステップを含むとき、編集初期化部が、(a)編集初期化ステップを実行し得ることを示すユーザインタフェース機能を用いてユーザを促すこと、及び(b)編集初期化ステップを実行してから、パートプログラムへのステップの追加を許可することのうちの少なくとも一方を実行する。
【0010】
本発明の別の態様によれば、編集初期化部は、編集初期化ステップを定義するようにユーザにより構成可能である。一実施形態では、編集初期化部はドロップダウンメニューを含み、ドロップダウンメニューは、編集インタフェースにおいて、編集初期化ステップの定義を選択するために提供される。一実施態様では、編集初期化ステップセットが、編集初期化ステップである最後の初期パートプログラムステップを示す、ユーザにより決定し得る編集初期化ブロックとして定義される。
【0011】
本発明の別の態様によれば、編集初期化部はインジケータを含み、インジケータは、カラーバー、区切りポインタ、又はテキスト強調表示部のうちの少なくとも1つである。ユーザは、そのようなインジケータを利用して、編集インタフェースにおいて、どの初期パートプログラムステップが編集初期化ステップであるかを定義し得る。一実施形態では、パートプログラムが編集に呼び出される場合、同様のインジケータがユーザインタフェースに表示されて、どのステップが編集初期化ステップであるかを示す。
【0012】
本発明の別の態様によれば、ポップアップブロックが、編集初期化ステップを実行すべきか否かをユーザに尋ねるユーザインタフェース機能として提供される。一実施形態では、そのようなユーザインタフェース機能は、パートプログラムが呼び出され、追加のパートプログラムステップを追加すべきであると表示される場合、ユーザに自動的に提供し得る。
【0013】
本発明の別の態様によれば、編集初期化ステップは、画像部をステージに対して移動させるパートプログラムステップを含む。一実施形態では、そのようなステップは、その部分の他の要素を測定するために、基準として使用される原点座標又はその部分の向きのうちの少なくとも一方を特定し得る。特定の一実施態様では、そのようなステップは、その部分の部分座標系を再確立して、最後のパートプログラムステップが実行されてから、ステージ上でのその部分の任意の非意図的な移動を補償し得る。一実施形態では、編集初期化ステップ以外の、ステージに対して撮像部を移動させるであろう初期パートプログラムステップは実行されない。
【0014】
本発明の別の態様によれば、パートプログラムが編集に呼び出され、編集初期化ステップが実行される場合、編集初期化ステップではない初期パートプログラムステップのうちの1つ又は複数により得られるであろうデータのうちの少なくともいくつかは、編集初期化ステップの実行から決定されるデータに関連する(例えば、そのデータに基づいて変更された)推定データに基づき得る。定義された編集初期化ステップがない場合、そのような「非初期化ステップ」を編集に許容可能な状況にするには、厄介で誤りを生じやすい時間のかかる様式で対話的に制御されるべき特定の時間がかかるプロセス(例えば、ステージの移動、エッジ検出動作、フォーカス動作、照明調整、パターンマッチング等のハードウェア対話)を必要とすることになる。
【0015】
単純で時間効率的でロバストな編集環境をマシンビジョンパートプログラムに提供することは、単純なコンピュータプログラムを編集する適切な編集環境の提供よりもはるかに困難であり、その理由は、プログラム編集プロセス中に、潜在的に危険な移動及び機械的な衝突を明らかにし、考慮しなければならないことであることを理解されたい。さらに、単純で時間効率的でロバストな編集環境をマシンビジョンパートプログラムの編集に提供することは、組み立てロボットプログラム等(例えば、ロボットの幾何学的動き及びアクチュエータ等を制御するプログラム)の編集に適切な編集環境を提供するよりもはるかに困難であり、その理由は、固有のワークピースの幾何学的形状及び表面仕上げにより、プログラム編集プロセス中に、予測不可能なわずかな照明及び撮像の影響を明らかにし、考慮し、それにカスタマイズする必要があることによるものである。さらに、マシンビジョン検査システムは、ワークピース上の異なる位置で測定され検査される要素と、異なる時点で測定され検査される要素との関係を、パートプログラム全体に分散し得る各動作により特定する動作を実行する必要がある。したがって、比較的未熟なユーザがプログラム内の任意のポイントで開始する既存のパートプログラムを編集することができるロバストな編集環境の提供は、困難な作業である。本明細書の開示に基づいて、本明細書に開示される編集初期化部及び方法が、汎用マシンビジョン検査システムのパートプログラムに時間効率的でロバストな編集環境を提供する独自の、上述した問題の組み合わせに対する解決への寄与に特に有用なものであることを理解されたい。
【0016】
本発明の上記態様及び付随する利点の多くは、添付図面と併せて解釈される場合、以下の詳細な説明を参照することによってよりよく理解されるため、より容易に理解されよう。
【図面の簡単な説明】
【0017】
【図1】汎用精密マシンビジョン検査システムの様々な典型的な構成要素を示す図である。
【図2】図1と同様であり、本発明による機能を含むマシンビジョン検査システムの制御システム部と、ビジョン構成要素部とのブロック図である。
【図3】複数の初期パートプログラムステップを有するパートプログラムの表現を含む編集インタフェースの図である。
【図4】図3のパートプログラムステップが実行されるワークピースを含むユーザインタフェースの図である。
【図5】図3のパートプログラムの表現を含み、編集初期化ブロックを定義するドロップダウンメニューをさらに含む編集インタフェースの図である。
【図6】図3のパートプログラムの表現を含み、パートプログラムが編集に呼び出された後に編集初期化ブロックを実行すべきか否かをユーザが選択できるポップアップブロックをさらに含む編集インタフェースの図である。
【図7】図3のパートプログラムの表現を含み、編集初期化ブロックが実行された後、ユーザによりパートプログラムに追加された追加のパートプログラムステップ表現をさらに含む編集インタフェースの図である。
【図8】編集初期化ブロックが実行され、図7の追加のパートプログラムステップが実行されたワークピースを含むユーザインタフェースの図である。
【図9】マシンビジョン検査システムでパートプログラムを編集する際に編集初期化ブロックを定義して利用するルーチンの一実施形態を示す流れ図である。
【発明を実施するための形態】
【0018】
図1は、本明細書に記載の方法により使用可能な例示的な1つのマシンビジョン検査システム10のブロック図である。マシンビジョン検査システム10はビジョン測定機12を含み、ビジョン測定機12は、データ及び制御信号を交換するように、制御コンピュータシステム14に動作可能に接続される。制御コンピュータシステム14は、データ及び制御信号を交換するように、モニタ又はディスプレイ16、プリンタ18、ジョイスティック22、キーボード24、及びマウス26とさらに動作可能に接続される。モニタ又はディスプレイ16は、マシンビジョン検査システム10の動作の制御及び/又はプログラミングに適したユーザインタフェースを表示し得る。
【0019】
ビジョン測定機12は、可動式ワークピースステージ32と、光学撮像システム34とを含み、光学撮像システム34はズームレンズ又は交換式レンズを含み得る。ズームレンズ又は交換式レンズは一般に、光学撮像システム34により提供される画像に様々な倍率を提供する。マシンビジョン検査システム10は一般に、上述したQUICK VISION(登録商標)シリーズのビジョンシステム及びQVPAK(登録商標)ソフトウェア並びに同様の先端技術の市販されている精密マシンビジョン検査システムに類似する。マシンビジョン検査システム10は、本願と同じ譲受人に譲渡された米国特許第7,454,053号及び同第7,324,682号並びに米国特許出願公開第2010/0158343号及び同第2011/0103679号にも記載されており、これらのそれぞれを参照により本明細書に援用する。
【0020】
図1に示されるようなマシンビジョンシステムでのパートプログラムの編集に関して、本明細書に開示される改良された編集インタフェース機能及び関連する方法は、特に初心者又は使用頻度が低いユーザに、より効率的、直観的、且つ柔軟な編集動作を提供することができる。
【0021】
図2は、図1のマシンビジョン検査システムと同様であり、本発明による機能を含むマシンビジョン検査システム100の制御システム部120と、ビジョン構成要素部200とのブロック図である。より詳細に後述するように、制御システム部120は、ビジョン構成要素部200の制御に利用される。ビジョン構成要素部200は、光学アセンブリ205と、光源220、230、及び240と、中央透明部212を有するワークピースステージ210とを含む。ワークピースステージ210は、ワークピース20を位置決めし得るステージ表面に略平行する平面内にあるX軸及びY軸に沿って制御可能に移動可能である。光学アセンブリ205は、カメラ系260と、交換式対物レンズ250とを含み、レンズ286及び288を有するタレットレンズアセンブリ280を含み得る。タレットレンズアセンブリに対する代替として、固定レンズ、又は手動で交換可能な倍率変更レンズ、又はズームレンズ構成等を含み得る。光学アセンブリ205は、さらに後述するように、制御可能なモータ294を使用することにより、X軸及びY軸に略直交するZ軸に沿って制御可能に移動可能である。
【0022】
マシンビジョン検査システム100を使用して撮像すべきワークピース20又は複数のワークピース20を保持したトレイ若しくは固定具は、ワークピースステージ210に配置される。ワークピースステージ210は、光学アセンブリ205と相対移動すべく制御し得、それにより、交換式対物レンズ250は、ワークピース20上の位置間及び/又は複数のワークピース20間で移動する。透過照明光220、落射照明光230、及び斜め照明光240のうちの1つ又は複数は、光源光222、232、又は242のそれぞれを発して、1つ又は複数のワークピース20を照明する。光源光はワークピース光255として反射又は透過し、交換式対物レンズ250及びタレットレンズアセンブリ280を通過し、カメラ系260に集められる。カメラ系260により捕捉されたワークピース20の画像は、信号線262上で制御システム部120に出力される。光源220、230、及び240は、信号線又はバス221、231、及び241のそれぞれを通して制御システム部120に接続し得る。画像の倍率を変更するには、制御システム部120は、信号線又はバス281を通して、軸284に沿ってタレットレンズアセンブリ280を回転させて、タレットレンズを選択し得る。
【0023】
様々な例示的な実施形態では、光学アセンブリ205は、制御可能なモータ294を使用してワークピースステージ210に対して垂直なZ軸方向に移動可能であり、制御可能なモータ294は、アクチュエータ、接続ケーブル等を駆動して、光学アセンブリ205をZ軸に沿って移動させ、カメラ系260により捕捉されるワークピース20の画像のフォーカスを変更する。本明細書で使用される場合、Z軸という用語は、光学アセンブリ205により得られた画像のフォーカスに使用されることを意図される軸を指す。制御可能なモータ294は、使用される場合、信号線296を介して入出インタフェース130に接続される。
【0024】
図2に示されるように、様々な例示的な実施形態では、制御システム部120は、コントローラ125と、入出インタフェース130と、メモリ140と、ワークピースプログラム生成・実行器170と、電源部190とを含む。これらの構成要素のそれぞれ並びに後述する追加の構成要素は、1つ又は複数のデータ/制御バス及び/又はアプリケーションプログラミングインタフェースにより、又は様々な要素間の直接接続により相互接続し得る。
【0025】
本発明による様々な実施形態では、ワークピースプログラム生成・実行器170は編集部172を含み、編集部172は、より詳細に後述するように、パートプログラムの編集に関連する様々な動作及びユーザインタフェース機能を提供又はアクティブ化する。「ワークピースプログラム」及び「パートプログラム」という用語を本明細書では同義で使用し得ることが理解されよう。一般に、編集部172は、編集機能の動作を制御する編集動作コントローラ174と、編集機能のユーザインタフェース機能を提供する編集インタフェース178とを含む。編集動作コントローラ174は編集初期化部176を含み、編集初期化部176は、より詳細に後述するように、編集機能に編集初期化機能を提供する。編集初期化部176は編集初期化インジケータ177を含み、編集初期化インジケータ177は、より詳細に後述するように、編集動作コントローラ174が利用する特定の編集初期化パラメータを定義する。編集初期化部176及び編集初期化インジケータ177は、編集インタフェース178にもリンクされ、インジケータは、各編集初期化パラメータ及び/又は他の関連するパラメータの編集インタフェース内に提供される。
【0026】
特定の実施形態では、編集初期化インジケータ177がビデオツールと同様の特定の機能及び動作を有し得ることが理解されよう。換言すれば、図5及び図6に関してより詳細に後述するように、ユーザがインジケータの1つを設定する場合、そうすることにより、編集動作コントローラ174により利用されるパラメータを定義し得るとともに(例えば、どのパートプログラムステップが編集初期化ブロック内にあるかを定義する)、同時に、編集インタフェース178内に、各パラメータを示す画面上のインジケータを提供し得る(例えば、最後のパートプログラムステップ及び/又はどのパートプログラムステップが編集初期化ブロック内にあるかを示す)。特定の実施態様では、特定の編集初期化インジケータ177は、ユーザ対話のパラメータを定義し、且つユーザ対話からパラメータを受信する(例えば、どのパートプログラムステップが編集初期化ブロック内にあるかを定義し、編集初期化ブロックを実行すべきか否かについての指示をユーザから受信する等)画面上の編集インタフェース178内のユーザインタフェース機能として提供し得る。
【0027】
図2に示されるように、入出力インタフェース130は、撮像制御インタフェース131と、移動制御インタフェース132と、照明制御インタフェース133と、レンズ制御インタフェース134とを含む。移動制御インタフェース132は、位置制御要素132aと、速度/加速度制御要素132bとを含み得るが、そのような要素は統合且つ/又は区別不可能であってもよい。照明制御インタフェース133は、例えば、マシンビジョン検査システム100の様々な対応する光源の選択、電力、オン/オフ切り替え、及び該当する場合にはストローブパルスタイミングを制御する。
【0028】
メモリ140は、画像ファイルメモリ部141と、1つ又は複数のパートプログラム等を含み得るワークピースプログラムメモリ部142と、ビデオツール部143とを含む。ビデオツール部143は、ビデオツール部143aと、他のビデオツール部(例えば、143m)とを含み、他のビデオツール部は、対応する各ビデオツールのGUI、画像処理動作等を決定する。多くの既知のビデオツールが、上述したQUICK VISION(登録商標)シリーズのビジョンシステム及び関連付けられたQVPAK(登録商標)ソフトウェア等の市販のマシンビジョン検査システムに含まれる。ビデオツール部143は関心領域(ROI)生成器143xも含み、関心領域生成器143xは、ビデオツール部143に含まれる様々なビデオツールで動作可能な様々なROIを画定する自動、半自動、及び/又は手動の動作をサポートする。
【0029】
一般に、メモリ部140は、ワークピース20の取得画像が所望の画像要素を有するように、ワークピース20の画像を捕捉又は取得するビジョンシステム構成要素部200の動作に使用可能なデータを記憶する。メモリ部140は、検査結果データも記憶し得、取得画像に対して様々な検査動作及び測定動作を手動又は自動で実行して(例えば、部分的にビデオツールとして実施される)、入出力インタフェース130を通して結果を出力するようにマシンビジョン検査システム100を動作させるために使用可能なデータをさらに記憶し得る。メモリ部140は、入出力インタフェース130を通して動作可能なユーザインタフェースを定義するデータを含むこともできる。
【0030】
透過照明光220、落射照明光230、及び斜め照明光240のそれぞれの信号線又はバス221、231、及び241はすべて、入出力インタフェース130に接続される。カメラ系260からの信号線262及び制御可能なモータ294からの信号線296は、入出力インタフェース130に接続される。画像データの搬送に加えて、信号線262は、画像取得を開始する信号をコントローラ125から搬送し得る。
【0031】
1つ又は複数のディスプレイ装置136(例えば、図1のディスプレイ16)及び1つ又は複数の入力装置138(例えば、図1のジョイスティック22、キーボード24、及びマウス26)も、入出力インタフェース130に接続することができる。ディスプレイ装置136及び入力装置138を使用して、ユーザインタフェースを表示することができ、ユーザインタフェースは、検査動作の実行並びに/又はパートプログラムの作成及び/若しくは変更に使用可能な様々なユーザインタフェース機能を含み、カメラ系260により捕捉された画像を表示し、且つ/又はビジョンシステム構成要素部200を直接制御し得る。特に、本発明の様々な例示的な実施形態によれば、ディスプレイ装置136及び入力装置138を使用して、マシンビジョン検査システム100でのパートプログラムの効率的、直観的、且つ柔軟な編集を可能にするために使用可能な様々なユーザインタフェース機能を提示する。
【0032】
様々な例示的な実施形態では、ユーザは、マシンビジョン検査システム100を利用して、ワークピース20のパートプログラムを作成する場合、ワークピースプログラミング言語を使用して明示的に命令を自動的、半自動的、又は手動でコーディングすることにより、且つ/又は学習モードでマシンビジョン検査システム100を動作させて、命令を生成することにより、パートプログラム命令を生成して、所望の画像取得トレーニングシーケンスを提供する。例えば、トレーニングシーケンスは、ワークピース要素を視野(FOV)内に位置決めすること、光レベルを設定すること、フォーカス又はオートフォーカスすること、画像を取得すること、及び画像に適用される検査トレーニングシーケンスを提供すること(例えば、ビデオツールを使用して)を含み得る。学習モードは、シーケンスを捕捉又は記録し、対応するパートプログラムステップ(すなわち、命令)に変換すべく動作する。これらのパートプログラムステップは、パートプログラムが実行される場合、マシンビジョン検査システムにトレーニングされた画像取得及び検査動作を再生させ、パートプログラム作成時に使用されたワークピースに一致する1つ又は複数のワークピースを自動的に検査させる。
【0033】
関連する編集機能及び動作も、「リアルタイムコンテキスト生成機能を含むマシンビジョンシステムプログラム編集環境」(代理人整理番号138167)、「同期ユーザインタフェース機能を含むマシンビジョンシステムプログラム編集環境」(代理人整理番号MEIP138244)、及び「画像取得動作の連続ストリームが実行モード中に実行されるパートプログラムのマシンビジョンシステム編集環境」(代理人整理番号MEIP137944)という名称の特許出願に記載されており、これらのそれぞれは本願と同時に出願され、参照により援用されている。
【0034】
図3は、複数の初期パートプログラムステップ351〜364を有するパートプログラム310の表現を含む編集インタフェース300の図である。編集インタフェース300は、選択バー320等の様々な測定及び/又は動作選択バーも含む。パートプログラム310の特定のステップの動作については図4に関してより詳細に後述する。
【0035】
図4は、ワークピース415を有する視野ウィンドウ410を含むユーザインタフェース400を示す図である。ユーザインタフェース400は、選択バー420及び440、リアルタイムX−Y−Z(位置)座標ウィンドウ430、光制御ウィンドウ450、並びにビデオツールパラメータボックス460等の様々な測定及び/又は動作選択バーも含む。より詳細に後述するように、ワークピース415の様々な要素は、点集合PTX、PTY、PT3、及びPT4、ラインXLINE、YLINE、L3、及びL4、原点XYORIGIN、並びに交点I2等の図3の関連するパートプログラムステップに従って特定される。
【0036】
以下の説明では、図3の初期パートプログラムステップ表現351〜364と、図4のワークピース415上の対応する要素との両方を参照する。パートプログラム310は、ステップ表現351及び352で開始され、ステップ表現351及び352は、ユーザが手動で、大まかな原点ROPとして動作するワークピース415上の位置を選択し、次に、原点を大まかな原点ROPに位置合わせすることを示す。より具体的には、サブステップ351A、351B、351C、及び351Dは、ユーザが手動ツールをセットアップして利用し、大まかな原点ROPを定義することを示し、ステップ表現352は、原点を大まかな原点ROPに位置合わせする。次に、ステップ表現353はラインXLINEを測定する。より具体的には、サブステップ353A及び353Bは、ユーザがボックスツールをセットアップして利用し、エッジ点PTXを特定することを示す。ボックスツール及び他のエッジ検出ビデオツールの機能及び動作は、当分野で既知であり、前に援用した参照においてより詳細に説明されている。次に、サブステップ353Cはボックスツールにより特定されたエッジ点PTXを利用して、ラインXLINEを定義する。同様に、ステップ表現354はラインYLINEを測定し、サブステップ354Aは、ユーザがボックスツールを利用してエッジ点PTYを特定することを示し、次に、サブステップ354Bがエッジ点PTYを利用して、ラインYILINEが定義される。
【0037】
次に、ステップ表現355は、ラインXLINEとYLINEとの交点に交点XYORIGINを構築する。次に、ステップ表現356は、マシンビジョンシステムに、原点を点XYORIGINに位置合わせするよう命令する。次に、ステップ表現357は、マシンビジョンシステムに、ワークピース415のX軸をラインXLINEに位置合わせするよう命令する。図5に関してより詳細に後述するように、且つコメントライン358に示されるように、ステップ表現351〜357の動作は、追加の測定を実行するために、ワークピース415の正確な位置及び向きを確立する。
【0038】
次に、ステップ表現361はラインL3を測定する。より具体的には、サブステップ361A及び361Bは、ユーザがボックスツールをセットアップして利用し、エッジ点PT3を特定することを示し、次に、サブステップ361Cがエッジ点PT3を利用して、ラインL3が定義される。同様に、ステップ表現362はラインL4を測定し、サブステップ362Aは、ユーザがボックスツールを利用してエッジ点PT4を特定することを示し、次に、サブステップ362Bはエッジ点PT4を利用してラインL4を定義する。ステップ表現363は、ユーザが選択された位置許容差を定義することを示し、ステップ表現364は、前に特定されたL3とL4とが交わる箇所に交点I2を構築する。これらの初期パートプログラムステップ351〜364がユーザによりプログラムされると、ユーザは、図5に関してより詳細に説明するように、編集初期化ブロックマーカの設定を選択し得る。
【0039】
図5は、図3のパートプログラム310の表現を含み、パートプログラムを用いて保存すべき編集初期化ブロックを定義するドロップダウンメニュー520をさらに含む編集インタフェース500の図である。図5に示されるように、ドロップダウンメニュー520は、編集初期化ブロックマーカを設定する選択肢530と、編集初期化ブロックマーカを消去する選択肢535とを含む。一実施形態では、ドロップダウンメニュー520は、ユーザが特定のステップ表現を選択した場合(例えば、図5の図では、ユーザは、マウスを使用してセレクタをステップ表現357上に移動させ、次に、ステップ表現357上で右クリックすることにより、ステップ表現357を選択した)に提供し得る。編集初期化ブロックマーカを用いて選択されたステップ表現(例えば、ステップ表現357)は、セレクタボックス(例えば、図5に示されるセレクタボックス540)、強調表示、又は他のインジケータ方法により示し得る。
【0040】
ユーザは、編集初期化ブロックマーカを用いてステップ表現357を指定すると、これは、ステップ表現357までの先行するすべてのステップ(すなわち、ステップ表現351〜357)が、編集初期化ブロック550を構成する編集初期化ステップであることを指定する。したがって、ステップ表現357は、編集初期化ステップである最後の初期パートプログラムステップであると決定される。一実施形態では、編集初期化インジケータを編集インタフェース500に提供し得、編集インタフェース500は、各ステップ表現351〜357が編集初期化ステップであることを示す。図5の特定の例としての図では、カラーバー555(クロスハッチで示される)が、ステップ表現351〜357の隣に提供されて、それらのステップ表現が編集初期化ブロック550内にあることを示す。代替の実施形態では、他の編集初期化インジケータを利用して、編集初期化ステップを示し得る(例えば、区切りポインタ、区切りマーカ、ステップの隣のバーではなく実際のステップの強調表示等)。一実施形態では、パートプログラム310が保存される場合、どのステップが編集初期化ステップ表現であるかの表示も保存される。
【0041】
いくつかの実施形態では、編集初期化ステップは、ステージに対して撮像部を移動させるパートプログラムステップを含む。例えば、図5に示されるように、ステップ表現351A、351B、及び353Aは、ステージに対して撮像部を移動させるステップを含み得る。
【0042】
セレクタボックス540により示される編集初期化ブロックマーカに続き、したがって、編集初期化ブロック550に含まれない残りの初期パートプログラムステップ表現361〜364が、より詳細に後述するように、編集初期化ブロック550の実行時と同じように実行されなくてもよいことが理解されよう。一実施形態では、ステップ表現361〜364は、残りのステップブロック560内にあるものとして指定される。
【0043】
より詳細に後述するように、一実施形態では、編集初期化ブロック550を利用して、パートプログラムの編集プロセス中に生じ得る状況の特定の変更に対処し得る。例えば、ユーザが、パートプログラムを保存した後、ワークステーションを去り、後に戻る場合、その間に、パートプログラムの編集に影響し得る特定の変更が生じ得る(例えば、一部分が非意図的にステージ上で動かされる等)。しかし、パートプログラムの前のすべてのステップ(特に、ハードウェア対話等の特定の時間のかかるプロセスを必要とするステップ)を再実行するために必要であり得る時間量により、ユーザは、続く編集に所望の状況を確立するために必要なステップのみの再実行を望み得る。本発明によれば、ユーザは、続く編集に望ましい状況を返すために必要であると決定されたステップを含む編集初期化ブロック550を指定し得る。編集初期化ブロック550の編集初期化ステップは、その部分の部分座標系を再確立して、最後のパートプログラムステップが実行されてからのステージ上の一部分の非意図的ないかなる移動も補償する初期パートプログラムステップを含む。
【0044】
図6は、図3のパートプログラム310の表現を含み、パートプログラムが編集に呼び出された後、ユーザが編集初期化ブロックを実行するか否かを選ぶことができるポップアップブロック620をさらに含む編集インタフェース600の図である。図6に示されるように、ポップアップブロック620は、編集初期化ステップを実行し得ることをユーザにプロンプト表示し、編集初期化ブロックを再び実行すべきか否かについてユーザに尋ね、はいボタン630Aと、いいえボタン630Bとを提供する。はいボタン630Aが選択される場合、図7及び図8に関してより詳細に後述するように、パートプログラムに追加ステップが追加される前に、編集初期化ブロック550が再び実行される。いいえボタン630Bが選択される場合、編集初期化ブロック550を再実行せずに、追加ステップをパートプログラムに追加し得る。特定の実施態様では、ユーザは、追加ステップをパートプログラムに追加する前に、パートプログラム310全体の再実行を選ぶこともできる。
【0045】
代替の実施形態では、パートプログラム310が編集に呼び出された場合、編集初期化ブロック550を自動的に実行するべく設定し得ることが理解されよう。一実施態様では、これは、デフォルト設定により行ってもよく、又はパートプログラムが保存される際、そのパートプログラムが編集に呼び出された場合、編集初期化ブロックを自動的に実行させるか否かの選択肢をユーザに提供してもよい。特定の実施態様では、編集初期化ブロックを自動的に実行させないことが望ましい場合がある(例えば、マシンビジョンシステムがいかなるプロンプト表示も警告もなく、ひとりでに先に進み始めた場合、ユーザは驚くだろう)。
【0046】
図7は、図3のパートプログラム310の表現を含み、編集初期化ブロック550が実行された後にパートプログラムに追加された追加のパートプログラムステップ表現771〜774を含む追加のステップブロック770をさらに含む編集インタフェース700の図である。編集初期化ブロック550及びステップ表現771〜774の実行の特定の動作については、図8に関してより詳細に説明する。
【0047】
図8は、編集初期化ブロック550が実行され、図7の追加のパートプログラムステップが実行されるワークピース415を含むユーザインタフェース800の図である。図8に示されるように、編集初期化ブロック550の実行は、ワークピース415上のラインXLINE及びYLINE並びに点XYORIGINの位置を再確立した。より具体的には、ステップ表現を実行し、ボックスツールを利用して、ワークピース415上のエッジ点PTX及びPTYの位置を再確立し、それから、ラインXLINE及びYLINE並びに点XYORIGINの位置が再特定された。初期パートプログラムステップ表現351〜357によれば、これらの要素の位置の正確な特定は、追加のパートプログラムステップを追加するために、ワークピース415の位置及び向きの正確性を保証する。換言すれば、ワークピースプログラム310が最後に保存されてから、ワークピース415が非意図的にステージ上で動かされた場合、編集初期化ブロック550の実行により、さらなるパートプログラムステップを追加するために、ワークピース415の正確な位置及び向きを再確立する。
【0048】
対照的に、一実施形態では、残りのステップブロック560内の初期パートプログラムステップ361〜364は、編集初期化ステップではなく、同じように実行されない。その代わり、図4に示されるように、パートプログラムステップ351〜364の初期実行から特定される点の相対位置に基づいて推定点集合PT3’及びPT4’を提供し得る。換言すれば、図4での点PT3及びPT4の相対位置は(例えば、点XYORIGINを参照して)、パートプログラム310が最初に実行され、保存されるときに保存される。その後、パートプログラム310が、編集のために呼び出され、編集初期化ブロック550が実行されて、図8に示されるように、点XYORIGINの位置を再確立した場合、点PT3及びPT4の位置も再確立するのではなく、点XYORIGINへの前に保存された相対位置を使用して、推定点PT3’及びPT4’の位置が特定される。
【0049】
換言すれば、推定点PT3’及びPT4’の位置は、すべてハードウェア対話及びエッジ検出を必要とし、実行に比較的長時間かかるサブステップ361A、361B、及び362Aの実行に基づかなくてもよい。一実施形態では、編集初期化ブロック内になく、一般に特定の指定の時間がかかる動作(例えば、ステージの移動、エッジの検出、フォーカス、照明変更、パターンマッチング等のハードウェア対話)を必要とする任意のサブステップは、実行されない。その代わり、提供されたであろう任意の結果データ(例えば、再特定されたエッジ点等)は、推定データ(例えば、点XYORIGINに対する推定点PT3’及びPT4’の位置)に基づく。上述したように、点XYORIGINの正確な位置は、編集初期化ブロック550の実行により再確立されている。
【0050】
特定の指定の時間がかかるサブステップを実行しないことにより、大きな時間節約を達成し得ることが理解されよう。これは、そのようなプロセスが、特に、マシンビジョンシステムのコントローラによる計算の実行のみを必要とするプロセスと比較して、実行に比較的長い時間をとり得ることによる。図7の例では、この種のわずか少数のみのそのようなサブステップ(例えば、サブステップ361A、361B、及び362A)が示されたが、より詳細なパートプログラムでは、この種のはるかに多数のサブステップを利用し得、それに対する時間節約が大きくなり得ることが理解されよう。
【0051】
一実施形態では、編集初期化ブロック550が実行される場合、サブステップ361C及び362B(比較的時間のかかる動作を必要とせず、マシンビジョンシステムのコントローラの比較的高速の処理のみを必要とし、推定点PT3’及びPT4’を利用して、推定ラインL3’及びL4’の位置を確立する)をなお実行し得る。同様に、追加のステップ表現364(コントローラの比較的高速の処理のみを必要とする)も実行して、推定ラインL3’とL4’との交点にある推定交点I2’を特定し得る。サブステップ361C、362B、及び364により実行される計算がすべて、長い時間又はユーザからの入力を必要とせずに、推定エッジ点PT3’及びPT4’に対して比較的高速で実行可能な種類のものであることが理解されよう。したがって、編集初期化ブロック550が実行される場合、残りのステップブロック560内の初期パートプログラムステップ361〜364の特定の部分を実行してもよい(例えば、追加のパートプログラムステップ測定に使用し得る特定の追加の部分機能を確立するために)。
【0052】
編集パートプログラム710を作成するために、パートプログラム310に追加された追加のパートプログラムステップ表現771〜774に関して、それらのステップ表現の特定の動作についても図8に関して説明する。図8に示されるように、ステップ表現771はラインL1を測定する。より具体的には、サブステップ771A及び771Bは、ユーザがボックスツールをセットアップして利用し、エッジ点PT1を特定することを示し、次に、サブステップ711Cがエッジ点PT1を利用して、ラインL1を定義する。同様に、ステップ表現772はラインL2を測定し、サブステップ772Aは、ユーザがボックスツールを利用してエッジ点PT2を特定することを示し、次に、サブステップ772Bがエッジ点PT2を利用して、ラインL2を定義する。
【0053】
ステップ表現773は、交点I1をラインL1とL2との交点において特定する。ステップ表現774は、交点I1とステップ表現364において特定された推定交点I2’との距離D1を特定する。したがって、ステップ表現774が、交点I1と推定交点I2’との距離の新しい測定がいかに、編集初期化ブロック550の実行後に提供される推定位置に頼り得るかを示すことが理解されよう。より具体的には、上述したように、比較的高速に特定可能であり、編集初期化ブロック550の実行に基づいて正確性の妥当な保証を有する推定交点I2’の位置を、交点I1までの新しい距離測定D1に利用することができる。
【0054】
図9は、マシンビジョン検査システムでパートプログラムを編集する場合、編集初期化ブロックを定義し利用するルーチン900の例示的な一実施形態を示す流れ図である。ブロック910において、複数の初期パートプログラムステップが定義され、対応するパートプログラムステップ表現が、ユーザインタフェースの編集インタフェースに表示される。ブロック920において、編集初期化部が提供される。ブロック930において、編集初期化部が動作して、複数の初期パートプログラムステップのうちの少なくともいくつかを、パートプログラムの編集初期化ステップとして定義する。ブロック940において、編集初期化部は、パートプログラムが編集に呼び出された場合、パートプログラムが定義された編集初期化ステップを含むとき、編集部が、(a)編集初期化ステップを実行し得ることを示す編集インタフェース内のユーザインタフェース機能を用いてユーザにプロンプト表示すること、及び(b)パートプログラムへのステップ追加を許可する前に、編集初期化ステップを実行することのうちの少なくとも一方を実行するように動作する。
【0055】
本発明の様々な好ましい例示的な実施形態を図示し説明したが、本発明の趣旨及び範囲から逸脱せずに、様々な変更を実施形態に行い得ることが理解されよう。
【符号の説明】
【0056】
10、100 マシンビジョン検査システム
12 ビジョン測定機
14 制御コンピュータシステム
16、136 ディスプレイ
18 プリンタ
22 ジョイスティック
24 キーボード
26 マウス
32、210 ステージ
34 光学撮像システム
125 コントローラ
176 編集初期化部
177 編集初期化インジケータ
178、300、500、600、700 編集インタフェース
310 パートプログラム
520 ドロップダウンメニュー
550 編集初期化ブロック

【特許請求の範囲】
【請求項1】
マシンビジョン検査システムでパートプログラムを編集する方法であって、前記マシンビジョン検査システムは、撮像部と、前記撮像部の視野(FOV)内に1つ又は複数の部分を保持するステージと、前記ステージに対して前記撮像部を移動させる移動制御部と、ユーザインタフェース(UI)を表示するディスプレイと、コントローラとを含み、前記方法は、
複数の初期パートプログラムステップを定義し、対応するパートプログラムステップ表現を前記ユーザインタフェースの編集インタフェースに表示することと、
編集初期化部を提供することと、
前記編集初期化部を動作させて、前記パートプログラムの編集初期化ステップとして、前記複数の初期パートプログラムステップのうちの少なくともいくつかを定義することと、
パートプログラムが編集に呼び出された場合、前記パートプログラムが定義された編集初期化ステップを含むとき、前記編集初期化部が、(a)前記編集初期化ステップを実行し得ることを示す前記編集インタフェース内のユーザインタフェース機能を用いてユーザにプロンプト表示すること、及び(b)前記パートプログラムへのステップ追加を許可する前に、前記編集初期化ステップを実行することのうちの少なくとも一方を実行するように、前記編集初期化部を動作させることと
を含む、方法。
【請求項2】
前記編集初期化部は、前記編集初期化ステップを定義するようにユーザにより構成可能である、請求項1に記載の方法。
【請求項3】
前記編集初期化部は、前記編集インタフェースに提供され、前記編集初期化ステップを定義する選択肢を有するドロップダウンメニューを含む、請求項2に記載の方法。
【請求項4】
前記ドロップダウンメニューは、(a)前記編集初期化ステップを再定義すること、及び(b)前記編集初期化ステップの前の定義を元に戻すことのうちの少なくとも一方を実行する選択肢をさらに含む、請求項3に記載の方法。
【請求項5】
前記編集初期化部は編集初期化インジケータを含み、前記編集初期化インジケータは、ユーザが、前記初期パートプログラムステップのどれが編集初期化ステップであるかをユーザが前記編集インタフェースで定義するために使用し得るカラーバー、区切りポインタ、又はテキスト強調表示部のうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項6】
前記編集初期化ステップのセットは、編集初期化ステップである最後の初期パートプログラムステップを示す、ユーザにより決定される編集初期化ブロックとして定義される、請求項2に記載の方法。
【請求項7】
前記編集初期化部が、前記編集インタフェース内に、どのステップが前記編集初期化ステップであるかを示す種類の編集初期化インジケータを含む場合、前記パートプログラムが編集に呼び出されるとき、同様の編集初期化インジケータが前記編集インタフェースに提供されて、前記編集初期化ステップを示す、請求項2に記載の方法。
【請求項8】
前記編集初期化ステップを実行し得ることを示す前記ユーザインタフェース機能は、前記編集初期化ステップを実行すべきか否かをユーザに尋ねるポップアップブロックを含む、請求項1に記載の方法。
【請求項9】
前記編集初期化ステップを実行し得ることを示す前記ユーザインタフェース機能は、前記パートプログラムが呼び出され、追加のパートプログラムステップを追加すべきという指示がなされたときに、ユーザに自動的に提供される、請求項1に記載の方法。
【請求項10】
前記編集初期化ステップは、前記ステージに対して前記撮像部を移動させるパートプログラムステップを含む、請求項1に記載の方法。
【請求項11】
前記編集初期化ステップは、前記部分上の他の要素を測定するための基準として使用される原点座標又は前記部分の向きのうちの少なくとも一方を特定するパートプログラムステップを含む、請求項10に記載の方法。
【請求項12】
編集初期化ステップではないことを除き、特定の指定されたプロセスを実行するであろう任意の初期パートプログラムステップの任意の部分が実行されない、請求項1に記載の方法。
【請求項13】
前記指定されたプロセスは、ハードウェア対話、前記ステージに対する前記撮像部の移動、エッジ検出動作、昭明調整動作、フォーカス動作、及びパターンマッチングのうちの1つ又は複数を含む、請求項12に記載の方法。
【請求項14】
前記編集初期化ステップが実行される場合、編集初期化ステップではなく、前記指定されたプロセスをいずれも実行しない任意の初期パートプログラムステップの任意の部分はなお実行され、前記編集初期化ステップの実行から決定されるデータに関連する推定データを利用し得る、請求項12に記載の方法。
【請求項15】
前記編集初期化ステップは、前記部分の部分座標系を再確立する初期パートプログラムステップを含み、最後のパートプログラムステップが実行されてから、前記ステージでの前記部分の非意図的なあらゆる移動を補償する、請求項1に記載の方法。
【請求項16】
パートプログラムが編集に呼び出され、前記編集初期化ステップが実行される場合、編集初期化ステップではなく、したがって、同じように実行されない前記初期パートプログラムステップのうちの1つ又は複数により得られたであろうデータのうちの少なくともいくつかは、代わりに、前記編集初期化ステップから得られるデータに基づく、請求項1に記載の方法。
【請求項17】
撮像部と、前記撮像部の視野(FOV)内に1つ又は複数の部分を保持するステージと、前記ステージに対して前記撮像部を移動させる移動制御部と、ユーザインタフェース(UI)を表示するディスプレイと、コントローラとを含むマシンビジョン検査システムであって、前記コントローラは、
複数の初期パートプログラムステップを定義し、対応するパートプログラムステップ表現を前記ユーザインタフェースの編集インタフェースに表示することと、
編集初期化部を提供することと、
前記編集初期化部を動作させて、前記パートプログラムのための編集初期化ステップとして、前記複数の初期パートプログラムステップのうちの少なくともいくつかを定義することと、
パートプログラムが編集に呼び出された場合、前記パートプログラムが定義された編集初期化ステップを含むとき、前記編集初期化部が、(a)前記編集初期化ステップを実行し得ることを示す前記編集インタフェース内のユーザインタフェース機能を用いてユーザにプロンプト表示すること、及び(b)前記パートプログラムへのステップ追加を許可する前に、前記編集初期化ステップを実行することのうちの少なくとも一方を実行するように、前記編集初期化部を動作させることと
を含むステップを実行するコンピュータ実行可能プログラムを含む、マシンビジョン検査システム。
【請求項18】
前記編集初期化部は編集初期化インジケータ部を含み、前記編集初期化インジケータ部は、ユーザが前記編集インタフェースにおいて使用して、前記初期パートプログラムステップのどれが編集初期化ステップであるかを定義し得るインジケータを提供する、請求項17に記載のマシンビジョン検査システム。
【請求項19】
前記編集初期化ステップは、前記ステージに対して前記撮像部を移動させるパートプログラムステップを含む、請求項17に記載のマシンビジョン検査システム。
【請求項20】
パートプログラムが編集に呼び出され、前記ステージに対して前記撮像部を移動させる前記編集初期化ステップが実行される場合、編集初期化ステップではないことを除き、前記ステージに対して前記撮像部を移動させるであろうが、前記編集初期化ステップではないため実行されない前記初期パートプログラムステップのうちの1つ又は複数により得られるであろうデータのうちの少なくともいくつかは、代わりに、前記ステージに対して前記撮像部を移動させる前記編集初期化ステップから得られるデータに基づく、請求項19に記載のマシンビジョン検査システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−105501(P2013−105501A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−250668(P2012−250668)
【出願日】平成24年11月14日(2012.11.14)
【出願人】(000137694)株式会社ミツトヨ (979)
【Fターム(参考)】