Articles techniques

SIMPLE, INDÉPENDANT, CONFORME AUX NORMES

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 », indique 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 », explique 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
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

Mise à l’échelle des applications et extension des fonctionnalités

IDS a de grandes ambitions pour le nouveau SDK. Même les nouvelles caméras industrielles basées sur l’application des gammes IDS NXT rio et rome offrent un firmware conforme Vision et peuvent ainsi être programmées avec IDS peak. Et plus encore... Les processus d’application, qui ont été développés et testés avec l’API de programmation IDS peak sur un PC hôte peuvent être exportés très facilement avec le nouveau SDK en tant qu’application de vision IDS. Même des processus de traitement d’images programmés peuvent être ainsi chargés et exécutés directement dans une caméra IDS NXT de la même façon qu’une application sur un smartphone.

Grâce aux interfaces IO et de déclenchement de la caméra, les commandes machine peuvent notamment être informées des résultats et des décisions du processus. Un ordinateur de bureau supplémentaire n’est plus nécessaire selon l’application.

Développement de l'application de vision avec IDS peak
Développement de l'application de vision avec IDS peak

Grâce à « Smart GenICam », les paramètres d’entrée et de sortie des applications de vision sont en outre disponibles via le fichier de description XML standardisé de la caméra pour l’application client et pour chaque application tiers conforme Vision. De cette manière, les clients IDS sont à même d’étendre et de modifier eux-mêmes le volume des fonctions de leurs caméras IDS NXT avec IDS peak pendant la durée de leur utilisation. Il n’est alors plus nécessaire d’attendre les mises à jour du firmware du côté du fabricant.

Les développeurs de logiciels ne doivent pas apprendre de nouveau langage de programmation pour la création de l’application de vision. Avec IDS peak, ils programment non seulement des applications de bureau mais aussi des applications de vision des caméras intelligentes de la gamme IDS NXT. Un développement intégré et une mise à l’échelle des applications n’ont jamais été aussi simples. Et le tout provient d’une source unique.

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.

Utilisé comme base de firmware pour les nouvelles caméras industrielles IDS NXT, il est simultanément la base du développement de l'application Vision et donc ainsi l’outil universel avec lequel des applications de vision embarquée peuvent être réalisées sans grand effort. 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.

PDF