SIMPLE, INDÉPENDANT, CONFORME AUX NORMES

Développement logiciel tel qu’il devrait être

GenICam en tant qu’interface de caméra normalisée et des protocoles de visions tels que USB3 et GigE Vision sont des composants utiles pour le développement des applications de vision industrielle.

Celui qui croit toutefois que les outils de développement propres aux fabricants deviennent ainsi inutiles ne connaît pas encore IDS peak.

La norme d’interface générique GenICam de l’EMVA (European Machine Vision Association) est devenue incontournable pour tous ceux qui développent aujourd’hui des applications de vision industrielle. L’utilisation harmonisée de caméras de différents fabricants facilite aujourd’hui bon nombre de processus d’intégration et de mises en service d’applications de vision et rend le matériel de la caméra plus facilement interchangeable pour l’utilisateur. Pour les fabricants de caméras industrielles tels que la société IDS Imaging Development Systems GmbH, il est évident que les interfaces de données telles que USB3 Vision et GigE Vision sont indispensables si les caméras doivent subsister sur le marché. C’est la raison pour laquelle elles fonctionnent automatiquement avec la plupart des applications compatibles avec GenICam sans qu’un pilote spécifique au fabricant ne doive être installé pour cela. En effet, les couches de transport de vision compatibles disposent déjà des applications de traitement d’image telles que HALCON de MVTec. Dans ce contexte, des kits de développement propres aux fabricants ont-ils une chance et une utilité ? GenICam n’est-elle déjà pas l’interface optimale pour développer des applications de vision industrielle conformes aux normes ?

Interface de caméra optimale ?

Avec le déplacement de la fonctionnalité dans les caméras, la normalisation a réalisé une transformation fondamentale et nécessaire. Il en est résulté une base logicielle très variable utilisable pour la communication avec toutes les caméras de vision. Tous les modules et fonctions ne dépendent absolument pas de la caméra et sont élaborés de façon universelle. Les moindres détails et paramètres peuvent être gérés et réglés individuellement, ce qui rend des combinaisons pratiquement sans fin possibles. La syntaxe du langage standard utilisé est ainsi rendue très flexible mais beaucoup plus difficile à utiliser et peu pratique. Même pour des séquences simples de programme, de nombreux lignes de code et réglages de paramètres dans la combinaison appropriée sont requis, ce qui aboutit rapidement à des processus sujets aux erreurs et complexes. La séparation stricte et la manipulation variable des fonctionnalités de la caméra via GenAPI et du seul chemin d’accès de la mémoire d’images via les couches de transport sont bien compréhensibles structurellement mais ne rendent pas pour autant le développement de l’application plus simple et plus clair.

L’API de programmation d’un produit est une interface utilisateur et donc ainsi un outil qui est évalué à la facilité de son emploi. Et seules des expériences d’utilisateurs positives contribuent au succès d’un produit. En tant qu’interface, elle représente pour les développeurs la caméra proprement dite et ses possibilités. Les attributs importants qui décrivent l’expérience positive des utilisateurs sont les suivants : simple, intuitif, flexible, clair, durable et soutenant. Malgré les nombreuses et excellentes solutions au niveau technique de la norme GenICam, les fabricants des caméras ne peuvent pas proposer à l’utilisateur avec les seules fonctions de la caméra un soutien suffisant et donc ainsi une meilleure expérience d’utilisateur.

« Pour les fabricants des caméra, il y a de nombreuses bonnes raisons de proposer une assistance complète aussi du point de vue logiciel »

— Maike Strecker, gestionnaire de produit chez IDS —

Le meilleur de plusieurs mondes

À partir des expériences des clients acquises avec GenICam et la propre IDS Software Suite, IDS a su identifier les avantages et les inconvénients de ses produits et souhaite assister à plusieurs égards les utilisateurs en leur proposant IDS peak. Avec GenICam comme base logicielle normalisée, l’utilisateur peut toujours choisir, avec le nouveau kit de développement logiciel, quelles caméras il souhaite utiliser sans pour autant devoir renoncer aux avantages d’une interface de développement moderne. Pour une expérience utilisateur optimale, le kit de développement logiciel IDS peak indépendant de la plateforme apporte, des exemples de code source jusqu’à la couche de transport, tous les composants requis de façon à ce que le client puisse démarrer directement le développement de propres applications. Comme effet secondaire positif, les utilisateurs d’IDS peak peuvent accéder à une assistance complète valable pour tous les composants d’application d’IDS en tant que seul interlocuteur.

IDS peak facilite l’application de la norme

IDS peak met à la disposition des développeurs d’application toutes les bibliothèques et interfaces logicielles requises et forme ainsi un kit de développement logiciel complet (Software Development Kit : SDK). Dans le même temps, la nouvelle interface de programmation orientée objet est beaucoup plus facile à utiliser que GenICam sans restreindre ni contourner ses fonctionnalités.

La communication avec le matériel de la caméra est réalisée exclusivement via l’interface standardisée et la couche de transport Vision, ce qui permet à IDS peak de rester entièrement indépendant du matériel et conforme aux normes. L’interchangeabilité et la compatibilité avec toutes les caméras industrielles conformes aux USB3 Vision et GigE Vision restent en outre conservées. Il n’y a aucune restriction spécifique au fabricant et même l’exploitation mixte des caméras de différents fabricants ou avec différentes interfaces ne pose pas de problème.

« L’interface de programmation développée par nos soins et facilement compréhensible représente une alternative pratique à l’accès direct via GenTL et GenAPI. En outre, des classes de commodité spéciales garantissent que le volume des codes requis et ainsi le travail de programmation diminuent »

— Maike Strecker —

IDS peak s’oriente à cet effet sur la hiérarchie de modules qui est prédéfinie par la norme GenTL. Les modules sont accessibles via des descripteurs qui sont similaires à des cartes de visite des modules. Des informations déjà sélectionnées des modules peuvent être de cette façon interrogées avant d’être disponibles et ouvertes. Par contre, les fonctionnalités des modules dans les couches inférieures sont seulement visibles et utilisables grâce à des relations dites parents-enfants lorsque les modules sont ouverts et disponibles. Ce principe permet de réduire les erreurs en rapport avec les classes et ainsi le temps de développement d’une application.

Une illustration de ce principe est l’accès aux fonctions d’une caméra. L’accès au « Nodemap » n’est possible qu’avec une caméra déjà ouverte. Des demandes détaillées et des réglages spéciaux de cette caméra ne sont possibles que de cette façon.

lecture du nom de l’appareil via le Nodemap d’une caméra

// get nodemap of an open camera device
auto remoteNodeMap = camera->RemoteDevice()->NodeMaps().at(0);
// get DeviceModelName from cameras nodemap
auto modelName = remoteNodeMap->FindNode<StringNode>("DeviceModelName")->Value();

Les classes et fonctions de commodité, qui ne sont pas dans la version standard, facilitent le traitement des processus récurrents tels que la gestion de l’appareil et de la mémoire. L’utilisation de ces classes de module réduit le code d’application requis et améliore ainsi la lisibilité et la stabilité de l’application de la caméra.
Grâce au module gestionnaire du périphérique, la localisation, le listage et l’ouverture des caméras raccordées et la gestion de la couche de transport disponible et des interfaces deviennent un jeu d’enfant. Avec une simple commande de mise à jour, le module scanne le système complet et, avec seulement quelques lignes de code, un « Device Tree » complet est implanté ou une caméra déterminée ouverte. De façon simplifiée, quatre lignes de code suffisent pour ouvrir une caméra raccordée grâce au module gestionnaire de périphérique IDS peak.

Ouverture de la caméra avec le module gestionnaire de périphérique IDS peak

// create a device manager object
auto deviceManager = std::make_shared<peak::DeviceManager>();
deviceManager->Update();
// get vector of device descriptors
auto devices() = deviceManager->Devices();
// select and open the first camera
auto device = deviceManager->Devices().at(0)->OpenDevice();

IDS peak est sans cesse étendu avec de tels modules. Une catégorie de caméra simplificatrice et un gestionnaire d’acquisition sont prévus pour la configuration de l’acquisition d’images. Quelques autres méthodes connues telles que l’utilisation de « Shared Pointers », qui libèrent automatiquement des ressources de stockage non utilisées ou une sécurité de thread, font d’IDS peak une interface de programmation orientée objet moderne qui offre aux programmeurs un grand soutien et un feedback important pendant le travail.

Toutefois, IDS peak est seulement un logiciel hôte qui reste complètement indépendant de la caméra grâce à la base logicielle GenICam et n’est pas subordonné non plus aux modèles de caméra ou versions de firmware. Les développeurs d'application restent ainsi parfaitement libres de choisir ou non le confort, la prise en charge, la simplification offerts par l'utilisation d'IDS peak. Toute autre application conforme à GenICam permet ainsi d’utiliser les fonctions de chaque caméra Vision.

Les utilisateurs peuvent accéder aux caméras IDS Vision avec leurs propres applications via IDS peak, directement via GenICam ou via une application tiers conforme aux normes.

Nouveau concept, nouveau logiciel, connu pour être facile

Avec IDS peak, IDS apporte également à ses caméras industrielles USB3 Vision et GigE Vision une assistance logicielle complète. Les clients fidèles de l’IDS Software Suite, développée il y a déjà de nombreuses années, peuvent à présent également profiter dans le monde de Vision d’un maniement aisé et d’une assistance illimitée du fabricant. En tant qu’extension de la norme GenICam, IDS peak n’est pas seulement un SDK conforme aux normes avec une API de programmation simple et intuitive mais aussi un logiciel indépendant pour le service, la configuration et la programmation de toutes les caméras conformes à Vision.

Avec IDS peak, le fabricant de la caméra réunit tous les produits sous une même suite logicielle. Cela facilite l’emploi des caméras pour les utilisateurs.