はじめに
マシンビジョンの概要
In-Sight ビジョンシステムは、通常、対象物の視覚的検査を実行するようにプログラムされたファクトリオートメーション環境に統合されます。ビジョンシステムのプログラミングには次の内容が含まれます。
- 画像内で際立っている「対象の特徴」(特徴とも呼ばれます に基づき、何を探すかをビジョンシステムに指示する
- いつ画像を取り込むか、どのように部品を最適に照らすかを指示する
- 解析結果の通信方法と、結果に基づく操作方法を指示する
In-Sight ビジョンシステムマシンビジョンソリューション
一般に、マシンビジョン問題に対する In-Sight ソリューションには、次のものがあります。
- In-Sight ビジョンシステム。画像を取り込むためのデジタルグレースケールまたはカラーカメラとそれらをデジタル化する CCD チップ、プログラムされた画像解析を実行する PC プロセッサ、および結果をレポートしたり、HMI、PLC、ロボットなどの他のデバイスとの間でメッセージを送受信したりする入出力ハードウェアと通信リンクが含まれます。
- In-Sight Explorer コンピュータソフトウェア。画像解析を実行し他のデバイスと通信するように In-Sight ビジョンシステムをプログラムするために使用されます。
- レンズ。視野 (FOV) 内の対象の特徴を最適化します。
- いくつかの形式の照明。画像内の特徴のコントラストを強化します。
オプションのコンポーネントには、次のものがあります。
- 対象物検出同期センサ (通常は光学式または磁気センサ)。ビジョンシステムの画像の取り込みと処理をトリガします。
- いくつかの形式のアクチュエータ。画像解析の結果に基づき部品を拒否またはソートします。
このシステムでは、同期センサが、部品または対象物が検査位置に着いたタイミングを示します。同期センサは、部品または対象物がビジョンシステムのそばを通るときに、その画像を取り込むように In-Sight ビジョンシステムをトリガします。この段階では、一般に、パルスが照明メカニズムに送られ照明もトリガされます。部品または対象物を照らすために使用される照明は、対象の特徴を強調し、影や反射などの対象外の特徴は不明瞭で目立たなくするように設計されます。
画像取り込みのプロセスでは、In-Sight ビジョンシステムのレンズが FOV (In-Sight ビジョンシステムが認識する物理領域) から光エネルギーを取り込み、それをデジタル形式に変換します。2D グリッドの値はピクセルと呼ばれ、個々のピクセルが位置 (X、Y 座標) とその位置の照明輝度を表すグレースケール値 (0 ~ 255、0 = 純黒、255 = 純白) に対応します。
その後、In-Sight ビジョンシステムは画像を処理し、画像解析 (画像内の対象物、寸法、または特徴のカウント、測定、識別など) を実行します。ビジョンシステムは、画像解析の結果に基づいて、部品の合格または不合格を判断し、アクチュエータへ信号を送信したり、ネットワーク接続されたデバイスと画像解析結果を通信したりします。
マシンビジョンアプリケーションの開発
In-Sight ビジョンシステムを使用したマシンビジョンアプリケーション開発には、次の 3 つの主要なコンポーネントがあります。
問題の解析
マシンビジョンアプリケーションでは、問題の解析は 4 つの段階に分かれます。
画像解析
画像解析の条件を検討する場合は、最初に検査を定義します。部品の考えられる合格/不合格条件、実行する検査の種類 (良/不良を判断する定性検査、または量や数量などの定量検査) を定義します。例えば、カウント、測定、存在/欠落の検出、識別のすべてまたはそのいずれかの実行や、速度対精度などの必要な妥協レベルを定義します。
また、次の点も考慮します。
- 部品は固定位置にあるか、移動するか (移動する場合は、どのようなタイプの移動であるか)。
- ビジョンシステムが部品の画像取り込みに要する時間はどのぐらいか。
- ビジョンシステムはどの程度迅速に結果を通信する必要があるか。
次に、部品を見て、何が対象の特徴であるかを識別します。一般にマシンビジョンでは、対象の特徴は、パターン、ブロブ、エッジ、コード/シンボル、またはテキストのいずれかです。それらの特徴の「良」または「不良」を判断する条件や、サイズ、形状、または数量を何によって測定するかを検討します。良い部品と不良部品を明確に区別できない場合、適切なビジョン検査を設計することはきわめて困難です。プロセスのこの部分を容易にするために、部品が合格するために満たす必要のある条件をすべて一覧にします。
画像の取り込み
マシンビジョンアプリケーションでは、良質の画像がなければ、アプリケーションがいかに綿密に設計されていても、正常に実行されません。部品の最適な画像を取り込む方法 (部品の対象の特徴を強調する必要がある) を検討する場合は、最初に、必要となる物理的な設定を計算します。In-Sight ビジョンシステムの適切な物理的設定を決定するには、画像内の部品の最適なサイズ、ビジョンシステムと部品との間のワークディスタンス、および最適な視野 (FOV) を計算します。
次は、問題の最も難しい側面である、対象の特徴を最適化して影を目立たなくする照明および光学的なソリューションを設計します。詳細については、照明と光学系のトピックを参照してください。
外部との相互通信
In-Sight ビジョンシステムは、通常、ファクトリオートメーション環境に統合されるため、ビジョンシステムは、ロボット、プログラマブルロジックコントローラ (PLC) などの他のデバイス、ヒューマンマシンインタフェース (HMI) を介したオペレータ、FTP ファイルサーバのすべてまたはそのいずれかと相互通信する必要があります。
このような環境では、ビジョンシステムが外部デバイスからのデータを受信すると見込まれるか、検査結果を通信すると見込まれるか、およびどの結果を送信するかを決定し、結果に基づいて実行する操作を決定します。
さらに、ビジョンシステムが、シリアル (ロボット)、ディスクリート (PLC)、Ethernet のすべてまたはどの通信プロトコルで通信するかを決定します。また、ディスクリートラインの追加を容易にするために Cognex 入力/出力 (I/O) モジュールが必要かどうか、ビジョンシステムの画像取り込み、部品の検査、および結果の通信をトリガするために使用する信号の種類は何かを考慮します。検査画像を FTP ファイルサーバに格納するかどうかも検討します。
ファクトリデバイス | プロトコル | プロトコルの種類 | |
---|---|---|---|
PLC |
三菱電機 |
産業用 Ethernet |
|
フィールドバス |
|||
PLC ファンクションブロック |
設定済みのデバイスのコマンドおよび属性 |
||
Rockwell |
産業用 Ethernet |
||
フィールドバス |
|||
設定済みのデバイスのコマンドおよび属性 |
|||
Siemens |
産業用 Ethernet |
||
フィールドバス |
|||
その他のプロトコル |
産業用 Ethernet |
||
Modbus |
シリアル |
||
シリアル |
|||
産業用 Ethernet |
|||
産業用 Ethernet |
|||
産業用 Ethernet |
|||
FTP サーバ |
FTP 画像転送 |
||
ロボット |
設定済みのドライバおよび ASCII 文字列コマンド |
シリアル/Ethernet |
|
Adept、Epson、IAI、Kawasaki、Nachi、Yamaha、およびその他のロボット |
シリアル/Ethernet |
オペレータの対話型操作
ファクトリオートメーション環境では、オペレータは環境内の機器を管理および保守する責任者です。大半のオペレータは、マシンビジョンアプリケーションの設計とプログラムの責任は担っていないため、ユーザアクセスの容易さを考慮する必要があります。
実装する起動オプションのタイプと、ユーザの管理方法 (ユーザ名とユーザリスト、それぞれのパスワードを作成する必要があります) について綿密に検討します。オペレータには、ビジョンシステムとやり取りするためのインタフェースも必要です。ここでは、ジョブが作成された開発環境に応じて、設定可能にする必要のあるパラメータ、オペレータが責任を担う対話レベル、およびインタフェースのレイアウトとプレゼンテーションについて検討します。
ジョブの作成
In-Sight の用語で「ジョブ」と呼ばれる、マシンビジョンアプリケーションの作成には 4 つのステップがあります。
ビジョンシステムへの接続と画像のロード
In-Sight Explorer EasyBuilder またはスプレッドシートのいずれかの開発環境を使用してジョブを作成できます。最初のステップで、In-Sight ビジョンシステムまたはエミュレータのどちらかに接続します。ジョブを実際のビジョンシステムまたはエミュレータ (PC 上のビジョンシステムをシミュレートしたバージョン) のどちらで作成するかを決定します。
ビジョンシステムまたはエミュレータに接続した後、必要なネットワーク設定値を設定し、その後、画像取り込みパラメータを設定します (ビジョンシステムに接続されている場合)。ここで、特徴を最適化するために焦点と照明を調整し、画像取り込みトリガと露光のタイミングを設定し、必要な場合は、画像をピクセルから実世界の単位にキャリブレーションします。
検査ツールの設定
In-Sight ビジョンツールと EasyBuilder の位置決めツールと検査ツールは次の用途に使用されます。
- 検査: 存在/欠落の検出、欠陥解析、パターンマッチング
- 識別: 色、データコード、製造ロット番号、シリアル番号、テキスト
- 測定: 計測、カウント、検出
画像解析に基づいて、検査に適したツールを選択します。
- ブロブツールは、しみのような特徴を検出する場合に使用されます。特徴のサイズと形状は部品ごとに異なる場合があります。ブロブは、検査と測定の両方のアプリケーションで使用できます。
- カラーツールは、色データに基づいて対象物を識別し照合するために使用されます。カラーツールには In-Sight カラービジョンシステムが必要であり、検査、識別、および測定の各アプリケーションで使用できます。
- エッジツールは、ピクセルグレースケール値が明らかに不連続な円エッジ、カーブエッジ、または直線エッジを検出するために使用されます。エッジツールは、一般に検査と測定のアプリケーションで使用されます。
- 傷検出ツールは、高度なパターンマッチング解析を実行して欠陥の有無を検証するために使用されます。傷検出ツールは一般に検査アプリケーションで使用されますが、一部の測定アプリケーションで使用されることもあります。
- ヒストグラムツールは、コントラストや平均グレースケール (またはカラー) 値などのピクセル値に関するデータを返します。
- ID ツールは、識別アプリケーションで 1D コード、2D コード、およびシンボルを識別するために使用されます。検出されたコード/シンボルは、他の種類の検査用の位置データも提供します。
- 画像ツールは、画像を他の関数でさらに解析または使用する目的で、画像内の特徴を強調したり目立たなくしたりするために使用されます。画像ツールは、検査アプリケーションと測定アプリケーションにそのまま使用することができます。また、他のビジョンツールの入力画像として使用することもできます。
- エッジ検査ツールは、詳細なエッジ解析 (エッジの位置、エッジペアの位置と間隔、エッジ幅の測定など) を行って、エッジに欠陥またはギャップが存在するかどうかを判定するために使用します。エッジツールは、検査アプリケーションと測定アプリケーションで使用されます。
- OCR/OCV ツールは、ABC/123 などの英数字の読み取りと照合の両方またはいずれかを実行するために使用されます。一般に OCR/OCV ツールは識別アプリケーションで使用され、ID ツールと同様に、検出されたテキストはほかの種類の検査用の位置情報を提供します。
- パターンマッチングは、領域とその他の幾何学的条件に基づきます。
一般に、カラー、傷検出、エッジ検査、およびパターンの各ツールは最も低速ですが最も正確です。エッジツールが最速で、ブロブ、ヒストグラム、ID、および OCV/OCR の各ツールは中程度です。
フィクスチャ
部品が画像内で移動する場合は、フィクスチャを作成する必要があります。フィクスチャは、部品の特徴を検出し、他のビジョンツールに、それぞれの検査を実行すべき場所を指示します。フィクスチャは、部品が示す移動のタイプに応じて、パターン、ブロブ、またはエッジ特徴に基づきます。部品が水平方向のみ、または垂直方向のみに移動する状況では、エッジを使用して他のツールを固定できます。角度方向が不要で、形状が各画像でほぼ同じ場合は、ブロブを使用できます。正確な座標が必要で、特徴が移動またはスケールやサイズの微小変化を示す場合は、パターンが非常に効果的です。
キャリブレーション
測定アプリケーションでは、特に、In-Sight ビジョンシステムから返されたピクセル座標をワールド座標に変換することが非常に重要です。EasyBuilder 開発環境では、[画像の設定] ステップで、[キャリブレーション (画像座標系をワールド座標系に変換)] グループボックスを使用して、ピクセル結果を実世界の測定単位として設定できます。スプレッドシートでは、キャリブレーションツールを使用します。
論理演算関数
結果、別のツール、またはツールセットのみに基づいて機能するようにツールを設定するなどのジョブのロジックを追加できます。追加には、EasyBuilder 開発環境では [部品の検査] ステップで Math & Logic ツールを使用し、スプレッドシート開発環境では、条件付き参照、セル状態、および数値演算関数を使用します。画像の強調および変更ツールを追加して、検査の前に画像をフィルタしてさらに処理することもできます。
検査ツールの結果の設定
検査ツールが実行され、結果が返されたら、結果をデバイス間で共有し、結果に基づいて操作を開始することで結果を活用する必要があります。ジョブ開発のこの部分では、ビジョンシステムと外部デバイス間の入力と出力を定義します。ディスクリート入力およびディスクリート出力の複雑さは、Cognex I/O モジュールを使用するかしないかに大きく依存します。In-Sight ビジョンシステム単独では、ビジョンシステムのオンボード I/O に制限されることが理由です (モデルによって異なります)。Cognex I/O モジュールは、ビジョンシステムへの電力に加え、追加のディスクリート I/O ラインへのアクセスも提供します。
この機能に関する詳細については、入出力関数および In-Sight 通信のトピックを参照してください。
最終的な実行時設定の構成
検査ツールが実行され、結果の通信が確立されたら、ジョブ開発の最終ステップに注目します。このプロセスでは、VisionView インタフェースパネルまたは別のサポートされている HMI 上で表示できる、カスタムビュー (スプレッドシート) または EasyView (EasyBuilder) を作成することで、オペレータに提示する必要のあるインタフェースの種類とパラメータについて検討します。フィルムストリップを使用して、後から確認するために合格/不合格条件に基づいて画像を記録するようにビジョンシステムを設定します。ジョブファイルをビジョンシステムに保存して、ジョブファイルを PC にバックアップします。最後に、ビジョンシステムをオンラインにして、導入する前にジョブをテストします。
ここで、ジョブの実行時間を決定できます。実行時間 = 遅延 + 画像取り込み時間 + ジョブ実行時間 + 表示時間
- 遅延: 内部的 (最大 250 マイクロ秒) または外部的 (数ミリ秒) のいずれかで、ビジョンシステムの画像取り込みをトリガするために必要な時間。遅延を減らすには、ビジョンシステムの内部トリガを使用します。
- 画像取り込み時間: 露光のための時間と、画像を画像処理プロセスに転送するための時間。画像取り込み時間を短縮するには、露光時間を短くして、部分的な画像取り込みを実行します。
- ジョブ実行時間: ジョブファイル内のすべての実行時間の合計。ジョブ実行時間を短縮するには、小さい対象領域を使用して、偏差を少なくします。
- 表示時間: 画像やグラフィカルオーバレイを表示するために使用される時間。表示時間を短縮するには、カスタムビューや EasyView などのオペレータインタフェース内の画像、グラフィックス、オーバレイの表示要素を無効にします。
テストと導入
導入前のジョブのテストには 4 つのステップがあります。
オンライン化
このステップでは、In-Sight ビジョンシステムをオンライン状態にして、ジョブの実行命令や外部相互通信に基づいてジョブを実行できるようにします。
ジョブのテスト
返された結果をモニタし、外部デバイスとの適切な通信を確保します。TestRun は、予測されたパラメータの範囲内でマシンビジョンアプリケーションが動作しているかを確認する組み込みの方法を提供します。TestRun は、In-Sight ビジョンシステムでテストを実行し、その結果を想定される値と比較します。
範囲と制限の微調整
この段階では、ビジョンシステムをオフラインにし、必要に応じて各種ツールのパラメータを調整します。ここでも TestRun は、予測されたパラメータの範囲内でマシンビジョンアプリケーションが動作しているかを確認する組み込みの方法を提供します。
導入
ビジョンシステムをオンラインにし、ファクトリオートメーション環境内で動作させます。
In-Sight Explorer開発環境
In-Sight Explorer には、In-Sight ビジョンシステムのプログラミングと管理のために EasyBuilder とスプレッドシートの 3 種類の開発環境が用意されています。
EasyBuilder
EasyBuilder には、「ジョブ」と呼ばれる In-Sight ビジョンシステム用マシンビジョンアプリケーションの構築作業をタスクに分解するために、ステップ単位のテンプレート (アプリケーションステップ) が用意されています。EasyBuilder は画像を中心としたインタフェースに基づいて開発されていて、画像上で位置決めツールや検査ツールの対話型グラフィックス (領域) を移動し、結果を即座にフィードバックすることができます。インタフェースの下枠にある [設定] ペインは選択したステップに基づいて更新されます。また、このペインにはツールの結果をモニタし、アプリケーションのトラブルシューティングを行うための結果テーブルも表示されます。アプリケーションの開発や設置中には、ヘルプや入出力の統合モニタからガイダンスや有益なフィードバックを得ることができます。
スプレッドシート
スプレッドシートは従来の In-Sight Explorer プログラミング環境です。この環境では、半透明のスプレッドシートオーバレイを使用して、ビジョンタスク用に In-Sight ビジョンシステムを構成することができます。スプレッドシートのパレットには非常に広範な画像処理関数および通信関数が用意されています。このパレットには、In-Sight の関数およびスニペットの展開可能なメニューがあります。これらはドラッグ & ドロップするだけで、簡単にスプレッドシートに挿入できます。メニューバーとツールバーは、画像取り込み機能や、セルへの関数の挿入機能のほか、ビジョンアプリケーションに関するあらゆる機能へのアクセスを提供します。
EasyBuilder とスプレッドシート
EasyBuilder では、スプレッドシート環境と直接対話しなくても、容易に In-Sight ビジョンシステムをプログラミングすることができます。EasyBuilder でジョブを作成すると、プログラムされたアプリケーションステップと対応する In-Sight 関数が自動的にスプレッドシートに入力されます。それでも、スプレッドシート環境の柔軟性や包括的なツールセットは利用可能なので、In-Sight Explorer では、EasyBuilder の [表示] メニューで [スプレッドシート]、またはスプレッドシートの [表示] メニューで EasyBuilder を選択することによって、EasyBuilder 環境、スプレッドシート環境のどちらでもジョブの表示やプログラミングができます。
スプレッドシートに挿入した関数やセルは編集可能なので、EasyBuilder インタフェースで表示するパラメータをカスタマイズできます。位置決めツールや検査ツールのパラメータは、追加、削除、名前変更が可能です。
EasyBuilder は、次のタイプのマシンビジョンアプリケーションに適しています。
- 有無判定ツールまたは計数検査ツールを利用したコンポーネントアセンブリの検証。
- ID コードの読み取り、パターン、またはカラー識別検査ツールを利用した製品の検証。
- 距離および角度測定検査ツールを利用し、さらに、[画像の設定] ステップでキャリブレーション機能を使用して結果を実世界の測定単位にキャリブレーションする機能を持つ計測アプリケーション。
- [通信] ステップで、PatMax パターン位置決めツールとベンダ固有の通信プロトコルを使用するビジョンガイド付きロボットアプリケーション。
- 文字認識検査ツールを利用し、さらに、外部デバイスからテキスト文字列を入力する機能を持つ高コントラスト OCV/OCR アプリケーション。
- ブロブ、輝度、コントラスト、ピクセル数の有無判定検査ツールを利用する簡単な欠陥検出アプリケーション。
次のタイプのアプリケーションでは、スプレッドシートの機能や関数へのアクセスが必要です。
- 高度な欠陥検出や難しい ID、OCV/OCR など、画像をフィルタする機能を必要とするアプリケーション。
- ID 検証アプリケーション。このようなアプリケーションでは、通常、大規模なカスタマイズが必要で、スプレッドシート機能に最適です。
- 複雑なロジックを使用してツール結果を組み合わせたり、ツール結果を分類したり、ツール結果に基づいて出力をカスタマイズしたりする、ロジックやカスタマイズされた結果が関係するアプリケーション。
- ランダムな方向を向いた複数の対象物が関係するアプリケーション。位置決めツールは複数の製品を検出できますが、結果をソートする能力は持ちません。
- 個数のわからない対象物が関連するアプリケーション。このようなアプリケーションでは、スプレッドシートで複雑な編集が必要になります。
In-Sight ビジョンシステムへの接続
In-Sight Explorer は、サブネット上のすべての In-Sight ビジョンシステムを自動的に検出し、表示します。 アイコンとともに表示されるビジョンシステムは、実在する In-Sight ビジョンシステム (In-Sight 5100 など) を表し、
アイコンは、ネットワーク接続された PC 上で動作する In-Sight エミュレータを表します。エミュレータの名前は、Microsoft Windows 環境での PC の名前です。
すべての In-Sight ビジョンシステムは出荷時に DHCP を使用するようにネットワーク設定されています。このため、DHCP サーバが用意されているネットワークでは、新しい In-Sight ビジョンシステムをアクティブなネットワークポートに接続するだけで、すぐ通信することができます。ネットワークで DHCP サーバを使用しない場合、またはビジョンシステムを PC に直接接続する場合は、[センサ/デバイスをネットワークに追加] ダイアログを使用して、ビジョンシステムとの接続を確立します。
実行モード動作時に In-Sight ビジョンシステムでプログラミングや表示を行うには、In-Sight ビジョンシステムに「ログオン」する必要があります。ビジョンシステムにログオンするには、有効なユーザ名とパスワードを使用する必要があります。新しいビジョンシステムは、admin、monitor、および operator という 3 つの標準アカウントを含むユーザリストを備えて出荷されます。これらのアカウントにはパスワードは設定されていません。
In-Sight Explorer を起動すると、デフォルトで admin ユーザとしてログオンされます。このスタートアップユーザ名は、[オプション] ダイアログで変更できます。現在のユーザ名やパスワードを変更するには、[システム] メニューの [ログオン/ログオフ] をクリックします。現在のユーザが変更されるたびに、In-Sight Explorer はユーザに関する情報を保存し、ほかの In-Sight ビジョンシステムへの接続時にこの情報を使用します。
In-Sight ビジョンシステムに接続 (通常、使用可能なビジョンシステムやエミュレータのリストから、目的のビジョンシステムまたはエミュレータをダブルクリック) すると、このビジョンシステムまたはエミュレータにユーザ名とパスワードが送信され、バッファされた画像、設定とジョブ、さらに取り込まれた画像から構成されるビュー、およびステータスバーが表示されます。