簡単、無制限、標準準拠

本来の形のソフトウェア開発

標準化されたカメラインターフェースとして GenICam を搭載し、ビジョンプロトコルとして USB3 や GigE Vision に対応した、マシンビジョンアプリケーションを開発するための便利なコンポーネントが登場しました。

しかし、メーカーの開発ツールはもう不要だとお考えなら、IDS peak をぜひお試しください。

現在、マシンビジョンアプリケーションを開発するなら、EMVA (European Machine Vision Association) の汎用インターフェース規格 GenICam を避けて通ることはできません。現在では、さまざまなメーカーからのカメラを標準化して使用すると、多数の統合プロセスやビジョンアプリケーションの起動が簡単になり、カメラのハードウェアをユーザーが容易に交換できます。また、IDS Imaging Development Systems GmbH などの産業用カメラメーカーにとっても、カメラ市場で優位に立つには USB3 Vision および GigE Vision などのデータインターフェースが不可欠であることは明らかです。このため、ほとんどの GenICam 準拠のアプリケーションと自動的に連携するようになり、メーカー固有のドライバーソフトウェアのインストールは不要になります。MVTec の HALCON などの画像処理アプリケーションは、Vision 転送レイヤーに互換だからです。メーカーがパッケージを開発する余地やニーズはもうないのでしょうか?GenICam は、標準準拠のマシンビジョンアプリケーションを開発する最適なインターフェースとして確立されているのではないのでしょうか?

最適なカメラインターフェース

機能をカメラに移行することで、標準化は必要とされる根本的な革新をもたらしました。その結果、すべてのビジョンカメラとの通信に使用できる、非常に汎用性の高いソフトウェア基盤が生まれました。すべてのモジュールと機能はカメラから完全に独立し、汎用的に設計されています。どのような細かな部分やパラメーターでも個別に設定して調整できるので、その組み合わせは無数と言えます。このため、使用する標準言語の構文が非常に柔軟になり、簡単で使いやすくなります。シンプルなプログラムシーケンスであっても、正しく組み合わせるには多数のコード行とパラメーター設定が必要になり、プロセスが複雑でミスが発生しやすくなってしまいます。GenAPI によるカメラ機能の厳密な分離と個別の処理、転送レイヤーによる純粋な画像バッファーパスは、構造上はわかりやすいのですが、アプリケーション開発がシンプルで明確になるとは言えません。

製品のプログラミング API はユーザーインターフェースであり、処理がどの程度容易かで評価されるツールです。また、優れたユーザーの操作性だけが、製品の成否を決定します。インターフェースとして、カメラ自体を表現し、開発者の可能性をも決定します。ユーザーの操作性を高める重要な属性とは、簡便性、直感的、柔軟性、透過的、将来性、支援性です。GenICam 規格には多数の傑出した技術的ソリューションがありますが、カメラメーカーはユーザーに十分なサポートを提供できず、カメラの機能だけではユーサーエクスペリエンスを改善できません。

カメラメーカーがユーザーに完全なソフトウェアサポートを提供するには、多数の理由があります」と

— IDS のプロダクトマネージャー Maike Strecker は言います —

両方のタイプの長所を兼備

IDS は、カスタマーエクスペリエンスに基づいて GenICam と独自の IDS Software Suite の利点と欠点を把握し、いくつかの点で IDS peak をユーザーのサポートに役立てたいと考えました。GenICam を標準化したソフトウェアベースとして、先進的な開発インターフェースの利点を利用せずに、新しい SDK にはユーザーがどのカメラを使用するか選択できる自由度があります。最適なユーザーエクスペリエンスのために、プラットフォームに依存しない IDS peak SDK には、ソースコードサンプルから転送レイヤーまで、必要なあらゆるコンポーネントがあります。そのため、ユーザーは独自のアプリケーションの開発をすぐに開始できます。プラス面として、IDS peak ユーザーは IDS の固有の窓口から、すべてのアプリケーションコンポーネントについてフルサポートを受けられます。

IDS peak で標準をシンプル化

IDS peak は、アプリケーション開発者に必要なすべてのライブラリとソフトウェアインターフェースを提供する、完全な SDK (ソフトウェア開発者キット) となっています。さらに、新たに開発された、オブジェクト指向プログラミングインターフェースは、機能を制限したりバイパスしたりすることなく、GenICam よりも使用がはるかに簡単です。

カメラハードウェアとの通信は標準化されたインターフェースおよび Vision 転送レイヤー経由でのみ実行され、IDS peak はハードウェアにまったく依存せず、標準準拠となります。引き続き、すべての USB3 Vision および GigE Vision 準拠の産業用カメラと交換可能で互換性があります。メーカー固有の制約はなく、異なるメーカーのカメラと混在して使用したり、別のインターフェースで使用したりすることも、問題ありません。

「理解しやすいプログラミングインターフェースは、GenTL や GenAPI から直接アクセスしなくても済む、使いやすい手段です。さらに、便利な特殊クラスで、必要なコード量が減少し、プログラミング作業も削減されます」

— と Maike Strecker は語ります —

IDS peak は GenTL 規格が定めるモジュール階層をベースとしています。モジュールは記述子からアクセスできます。記述子とは、モジュールの名刺のようなものです。このため、モジュールが利用可能になって開かれる前に、特定の情報をモジュールから要求できます。下位レイヤーのモジュールの機能は、対応するモジュールが開かれて利用可能になったとき、いわゆる親子関係でのみ認識され、使用できるようになります。このコンセプトにより、クラスを操作するときのミスが減り、アプリケーションの開発時間が短縮されます。

この一例が、カメラ機能へのアクセスです。すでに開かれているカメラからのみ、「nodemap」にアクセスできます。その後、このカメラへの詳細な照会や特殊設定を実行できます。

カメラの nodemap からデバイス名を読み取る

// 開いているカメラデバイスの nodemap を取得する
auto remoteNodeMap = camera->RemoteDevice()->NodeMaps().at(0);
// DeviceModelName をカメラの nodemap から取得する
auto modelName = remoteNodeMap->FindNode<StringNode>("DeviceModelName")->Value();

規格にはない便利なクラスと関数により、デバイスおよびメモリの処理など、反復プロセスの処理がシンプルになります。このようなモジュールクラスを使用すると、必要なアプリケーションコードが減少し、カメラアプリケーションの可読性と安定性が向上します。

DeviceManager モジュールは、接続されたカメラを見つけて一覧して開き、使用できる転送レイヤーとインターフェースを管理する、便利な方法になります。シンプルなアップデートコマンドで、モジュールはシステム全体をスキャンし、完全なデバイスツリーが作成されます。または特定のカメラがわずか数行のコードで開かれます。IDS peak DeviceManager モジュールを使用すると、4 行のコードがあれば接続されたカメラを開けます。

IDS peak DeviceManager モジュールでカメラを開く

// device manager オブジェクトを作成する
auto deviceManager = std::make_shared<peak::DeviceManager>();
deviceManager->Update();
// デバイス記述子のベクターを取得する
auto devices() = deviceManager->Devices();
// 最初のカメラを選択して開く
auto device = deviceManager->Devices().at(0)->OpenDevice();

IDS peak はこのようなモジュールで常に拡張されています。カメラクラスの簡素化や、画像撮影を設定する撮影マネージャーをすでに予定しています。その他にも、未使用のメモリリソースを自動的に解放する共有ポインターや、モジュール依存のスレッドセキュリティの使用など、よく知られた手法により、IDS peak は最新のオブジェクト指向プログラミングインターフェースとなり、プログラマーは作業時に豊富なサポートとフィードバックを受けられます。

しかし、IDS peak は、GenICam ソフトウェアベースなのでカメラにまったく依存せず、カメラモデルやファームウェアバージョンとの関連性がない、唯一のホストソフトウェアです。そのため、アプリケーション開発者は、IDS peak の便利さ、サポート、シンプルさのどれを活用するか、自由に選べます。各ビジョンカメラのカメラ機能も他の GenICam 準拠アプリケーションと使用できます。

ユーザーは独自のアプリケーションで IDS Vision カメラに、IDS peak から、GenICam から直接、または標準準拠なサードパーティアプリケーションから、アクセスできます。

新しいコンセプト、新しいソフトウェア、これまでと同じシンプルさ

IDS では、USB3 Vision および GigE Vision 産業用カメラに対して IDS peak によるソフトウェアのフルサポートも提供しています。既存の IDS Software Suite のお客様は、ビジョンの分野で簡単な処理と制限されないメーカーのサポートというメリットも受けられるようになりました。GenICam 規格の拡張として、IDS peak は容易で直感的なプログラミング API を備えた標準準拠の SDK というだけでなく、すべてのビジョン準拠カメラの操作、構成、プログラミングの独立したソフトウェアでもあります。

IDS peak があれば、カメラメーカーはすべての製品を 1 つのソフトウェアスイートにまとめることができます。これでユーザーの作業は非常に簡単になります。