Vision 規格への最短の道のり

Vision 規格への最短の道のり

IDS Software Suite インベントリアプリケーションを容易に移植

IDS peak により、IDS USB3 および GigE Vision 産業用カメラでソフトウェアのフルサポートが受けられるようになりました。このため、IDS のお客様はビジョンの分野でも、新しいカメラプロジェクトを簡単に操作し、無数のメーカーからのサポートを利用するというメリットを受けられます。 しかし既存のお客様が新しい規格のビジョンカメラモデルで従来の IDS Software Suite アプリケーションを最新化する予定がある、または最新化する必要がある場合、新しいソフトウェアの基本を学習して実際に運用するまでに時間がかかり、確保していた時間やコストをすぐに超過してしまいます。そこで IDS は、誰もが簡単に切り替えられる補助パッケージを用意しました。IDS sherpa を使うと、IDS Software Suite インベントリアプリケーションをほんの数ステップでビジョン規格に準拠させることができ、すぐに使用を開始できます。

新しいソフトウェア開発キット IDS peak は、ビジョン規格 EMVA (GenICam) と AIA (GigE Vision、USB3 Vision) に基づいてきます。先進的なコンセプトを備えたこの新しいカメラソフトウェアには、基本構造以外にも多数のメリットがあります。プログラミング API も根本的に刷新され、現在のニーズに合わせて調整されました。要するに新しく生まれ変わり、従来の IDS Software Suite とは機能が異なるのです。

既存のアプリケーションをまったく異なるソフトウェアインターフェースの新しいカメラへと完全に変換するために時間とコストをかけても、このアプリケーションを使用して生産性を高めて、新しい機能の統合やカメラを増設するなど将来的に拡張できなければ、徒労に終わります。IDS sherpa の助けを借りれば、IDS peak を簡単に変換でき、時間も節約できます。ほんのわずかなステップで IDS Software Suite アプリケーションを USB3 および GigE Vision 準拠の産業用カメラで稼働でき、カメラインターフェースの全面的な変更は不要です。同時に、ソフトウェア開発者は、新しい GenICam 準拠のソフトウェア開発キット IDS peak で新しいプロジェクトを実装するためのトレーニングを受けます。

IDS sherpa とは

IDS sherpa は、IDS Software Suite のユーザー向けの「救急」パッケージで、既存のカメラアプリケーションを速やかに変換して、IDS peak や GenICam を知らなくても IDS ビジョンカメラで操作できるようにします。 このため、ヘルプパッケージの主要コンポーネントは既存の IDS Software Suite アプリケーションに統合できる C++ クラスで、IDS Software Suite と IDS peak の間の関数呼び出しのアダプターとして機能します。アダプターの API は IDS Software Suite と非常によく似た構文で、IDS peak を既存のアプリケーションに統合しやすくなります。 変換テーブルを使用すると、IDS Software Suite の既知の機能をアダプターの関数呼び出しに容易に置き換えられます。  段階的な手順に加えて、ソースコードのサンプルも用意され、切り替えを容易に進めながら、IDS peak の操作のトレーニングを行えます。

パッケージの内容

  • 手順ごとのガイド IDS sherpa 統合
  • 変換テーブル IDS Software Suite ↔ IDS sherpa
  • C++ アダプタークラス
  • ソースコードのサンプル: アダプタークラスの使用方法を、さまざまな使用例 (簡単な画像取得、画像メモリシーケンス、マルチカメラによる IDS Software Suite と IDS peak の混在操作) を通じて紹介します。

IDS sherpa にない特徴

  • ラッパーはない
    IDS sherpa は、新しい GenICam 準拠の IDS peak SDK または GenICam 自体に対する IDS Software Suite に 1:1 で対応する完全なラッパーではありません。
  • 新しいインターフェースはない
    アダプタークラスでは新しいソフトウェアインターフェースが作成されることはなく、今後も作成されません。
  • 厳格なポリシーはない
    アダプタークラスの実装は特別なルールに規定されません。その証拠に、ソースコードにはヒントや可能性が含まれています。
  • 必須条件なし
    IDS sheerpa の使用は必須ではなく、使用する場合はソースコードを変更することができます。
  • 目的地ではなく、道のり
    IDS sherpa はまったくのパイオニアです。IDS peak でビジョン規格カメラを使用することが目標です。IDS sherpa は IDS peak の操作方法と可能性を示し、ユーザーは USB3 Vision および GigE Vision 準拠の産業用カメラの操作方法を学習できます。

IDS peak の開発をもって、IDS は新しく先進的で、理解しやすく「とても簡単」なプログラミングインターフェースを実現しました。このインターフェースはハードウェアに依存せず、柔軟で、GenICam に完全に準拠します。GenICam 自体と比較して、IDS はシンプルな操作性と直感的なプログラミング手法に重点を置いています。

IDS Software Suite と IDS peak のコンセプトと操作方法は異なるため、この 2 つのインターフェースを完全に重ね合わせることはできず、将来的にも不可能です。機能を直接変換したことで、元のインターフェースの多くのメリットが失われています。IDS peak SDK の今後の機能強化でも、機能範囲が同一になるとは限りません。

IDS peak リファレンス実装は不要
IDS sherpa アダプターによる IDS Software Suite 機能の復元を、IDS peak のリファレンス実装として理解してはいけません。IDS peak は、GenICam ベースで機能面で異なるコンセプトを持つため、多数の機能が異なる方法で実行され、呼び出されることになります。アプリケーションレベルでは、インターフェースを最適に交換するために十分なスペースがあります。これに対して機能レベルでは、復元作業は困難です。このような最小単位のレベルでの互換性は、「ラッパー」に似ている快適さだけです。ただし、IDS sherpa はオープンソースであるため、プログラマーはこの互換性による利便性を活用するか、IDS peak リファレンス実装に置き換えて将来性を持たせるか、自分で判断できます。

IDS sherpa のメリットを受ける対象者

IDS sherpa は、IDS Software Suite によるカメラアプリケーションをすでに利用しており、標準ビジョンカメラで使用するためにすぐに変換したい、または変換する必要がある、既存の IDS のお客様を特に念頭に置いています。付属のアダプタークラスを使用して、既存のお客様の開発者は、IDS peak または GenICam に完全に習熟し、統合するために必要な時間を短縮できます。以下の 2 つの使用例は、IDS sherpa の目的を示すものです。

使用例 1:IDS Software Suite で実装された既存のアプリケーションには、新しい Vision 規格に準拠した IDS カメラを装着する必要があります。
uEye カメラと IDS Software Suite に基づくプログラムコードを含むシステムについては、システムインテグレーターが担当します。システムのアップデートが必要で、解像度の高い IDS カメラを装着しなければなりません。しかし、必要なカメラモデルには IDS Vision Firmware を使わなければなりません。つまり、新しい統一され将来性のある USB または GigE-Vision 規格をすでに使用しており、既存アプリケーションと直接的な互換性はもうないのです。オペレーターはできるだけ短時間でシステムをモダナイズし、速やかに使用できるようにする必要があります。ソフトウェアと互換性のない、まったく新しいカメラ向けにアプリケーションを変換する作業を、最小限のコストと時間でこなさなければなりません。

IDS sherpa があれば、開発者が手間を掛けずに統合できるアダプタークラスを利用できます。これで、アプリケーションは IDS ビジョンカメラとほぼ 1:1 で実行されます。該当する開発者は、Vision または IDS peak を使用して新しいプロジェクトを直接開発する方法も学習します。IDS ビジョンカメラでは、このアプリケーションはカメラ画像の一貫した品質を維持できます。

使用例 2: UI カメラを使用する既存の IDS Software Suite アプリケーションでは、IDS ビジョンカメラを並行して操作する、または操作する必要があります。
IDS Software Suite でプログラミングされた既存のシステムは、Vision Firmware でのみ使用できる新しいカメラとも並行して機能する必要があります。この場合も、オペレーターはできるだけ短期間でシステムをモダナイズして、最小限のコストと時間で、速やかに使用できるようにする必要があります。IDS Software Suite に加えて異なるカメラソフトウェアでソフトウェアのプロセスをアップグレードするか、その場合はどのようにアップグレードするのか、またはすべての既存カメラを交換して 1 つの新しいカメラソフトウェアを利用するのか、判断を迫られています。

付属のソースコードサンプル「IdsSherpaMulti」は、IDS sherpa アダプタークラスで混在操作を実装できることを実証します。IDS sherpa により、この要件についてもすばやく低コストで対応できます。修正した後、既存のカメラは IDS Software Suite を介してアダプターによって対処され、ビジョンカメラは IDS peak で機能します。ただし IDS sherpa では、既存カメラと新しいビジョンカメラの両方が同じコードベースで動作するので、既存システムに対して同一の品質を提供し続けることができます。

IDS sherpa が役立つ仕組み

IDS sherpa は、既存アプリケーションを IDS ビジョンカメラに変換する作業を最小限に抑えます。付属の C++ アダプタークラス IdsSherpa は、IDS Software Suite の API 関数呼び出しを対応する IDS peak の関数にうまく変換します。クラスを IDS Software Suite アプリケーションに統合すると、開発者はカメラ機能の最も重要な実装を、ビジョンベースのカメラソフトウェア IDS peak で使用できるようになります。これにより、時間を大幅に節約でき、わずかな修正を施すだけで、IDS ビジョンカメラでアプリケーションを操作できるおうになります。さらに、該当する開発者は、Vision または IDS peak を使用して新しいプロジェクトを直接開発する方法も学習します。

IDS sherpa で既存アプリケーションをモダナイズする
IDS sherpa で既存アプリケーションをモダナイズする

この模範例を示すウォークスルーは、Windows 開発 PC (Windows 7/8/10) と、既存の MFC アプリケーションのソースコードとインストール済みの IDS Software Suite の使用を前提とします。このテクニカルティップスでは、uEye ソースコードサンプル "IdsSimpleLive" を使用します。このサンプルは IDS Software Suite のインストールディレクトリにあります。

移植要件

インベントリアプリケーションを模範的な方法で移植するには、以下のコンポーネントが必要です。

  • IDS Software Suite アプリケーションの既存カメラ
  • IDS Vision カメラと適切な機能セット
  • IDS peak SDK (v1.1 以降)
  • IDS sherpa ソフトウェアパッケージ
  • C++ バージョン 14 (Visual Studio 2015 以降など) のコンパイラーを含む開発環境

IDS peak は、すべての USB3 Vision および GigE Vision 準拠の産業用カメラ向けの、最新のソフトウェア開発キットです。IDS peak 開発ライブラリは先進的な C++ クラスとオブジェクトに基づいているので、使用される機能を認識してサポートする、やはり先進的なコンパイラーが必要です。

ステップ 2:新しいコンパイラーで既存アプリケーションを作成する

すべてのソースとライブラリを用意し、新しい IDE で機能させるには、まず修正前のアプリケーションを再構築します。IDS Software Suite でアプリケーションを作成するために必要なすべての変更を行い、インベントリカメラで実行します。

ステップ 3:IDS peak をインストールする

現行の IDS peak SDK を開発 PC にインストールします。SDK は IDS Web サイトからダウンロードできます。すべてが準備されたら、新しい IDS ビジョンカメラをテストします。このためには、パッケージに含まれる IDS Vision Cockpit を起動して、接続されたカメラを開きます。カメラにライブ画像が表示される場合は、アプリケーションの移植を続行できます。

ステップ 4: (オプション) IDS sherpa サンプルアプリケーションを作成してテストする

この時点では、付属のサンプルアプリケーションを使用して、IDS sherpa、IDS peak、新しい IDE、および必要なすべてのソースコードファイルの完全性をテストできます。必要な変更はすべて実施済みです。対応する Visual Studio サンプルプロジェクトを開き、アプリケーションを作成します。サンプルでは、IDS sherpa と IDS peak で異なる基本機能が実装されることがわかります。 サンプルを正しく作成して実行すると、すべての要件を満たし、IDS sherpa と IDS peak を PC で機能させることができます。これで、アプリケーションの移植を続行できます。

  • IDS sherpa - Freeze
    カメラから 1 つの画像を取得し、ダイアログボックスに表示します。
  • IDS sherpa - Live
    ウィンドウのメッセージを使用して、カメラの連続ライブ画像をダイアログに表示します。
  • IDS sherpa - Multi
    IDS sherpa をカメラベースクラスとして、IDS Software Suite と IDS peak を 1 つのアプリケーションで並行して操作します。
  • IDS sherpa - Sequence
    IDS peak または IDS Software Suite で画像バッファーシーケンスを使用します。

ティップス
すべてのソースコードサンプルプログラムで、プリプロセッサステートメント "USE_SHERPA" を使用して、IDS Software Suite のレガシーコードと IDS sherpa 実装を切り替えられます。アダプターを使用すると、カメラを IDS peak (IdsSherpa_peak.cpp) と IDS Software Suite (IdsSherpa_ueye.cpp) のどちらで処理するかは、カメラハンドルのみが判定します。

ティップス
複数のカメラを接続している場合、テストカメラのシリアル番号を使用してカメラを開きます。このためには、シリアル番号をパラメーター文字列として渡し、"InitCamera" 呼び出しを変更します。たとえば、"ret = m_hCam->InitCamera("4002890498");" とします。

ステップ 5:IDS sherpa を既存アプリケーションに統合する

IDS sherpa を使用してアプリケーション移植の主要作業をできるようになりました。アプリケーションのソースコードへの変更はほんのわずかで済みます。

  • IDS peak ライブラリとヘッダーをプロジェクトプロパティに統合し、コンパイラーのフラグを設定する
  • IDS sherpa アダプタークラスをインポートする
  • IDS Software Suite の関数呼び出しを IDS sherpa 関数に置き換える

この後、アプリケーションを再度コンパイルします。IDS sherpa アダプタークラスは、IDS Software Suite によるカメラ接続を IDS peak によるビジョン規格へと完全に変換させます。つまり、あらゆる GenICam 準拠の IDS カメラをアプリケーションで使用できるようになるのです。アプリケーションに機能を追加して拡張するには、IDS peak プログラミングインターフェースを使用して直接拡張できます。

推奨

IDS sherpa は、IDS Software Suite のレガシーアプリケーションを IDS ビジョンカメラですばやく稼働させ、開発者に IDS peak の使用方法を習得させる場合に、きわめて有用です。このテクニカルティップスで前述したように、IDS sherpa はスタンドアロンソフトウェアでも、新しいカメラプロジェクトで使用する新しいインターフェースでもありません。IDS Software Suite に関心を持つユーザーは、このテクニカルティップスを読み進めていくと、新しい GenICam ベースの IDS peak SDK にも習熟できます。わかりやすく「とても簡単」なプログラミングインターフェースにより、GenICam の処理がシンプルになります。 IDS peak をあらゆる新しいカメラアプリケーションのインターフェースとして使用すると、すべての新しい USB3 Vision および GigE Vision 準拠の IDS 産業用カメラで先進的なソフトウエア開発キットを使った直感的なプログラミング手法を活用できます。