Contexte
De nouvelles exigences projet, un nouveau capteur
Nous travaillons sur un projet visant à détecter les défauts lors de la fabrication de pièces en fibre de carbone pour l’aéronautique et le spacial.
Le procédé connu sous le nom d’Automated Fiber Placement consiste à déposer des couches successives de fibre de carbone à l’aide d’un robot, tandis qu’une caméra laser à balayage linéaire (line-scan camera) assure le contrôle qualité en temps réel.
Nous avons rejoint le projet lors de sa phase d’industrialisation, pour reprendre et fiabiliser la partie logicielle du système : acquisition des données, traitement en ligne et présentation des résultats.
Ce cas client se concentre sur le module d’acquisition.
De nouvelles exigences projet, nécessitant le changement de modèle de caméra qui a entraîné une rupture de compatibilité logicielle : nouvelle interface de commande, nouveaux formats de données, et documentation à mettre à jour.
Notre mission : adapter la couche d’acquisition afin de contrôler le nouveau capteur et d’exploiter ses fonctionnalités étendues.
Solutions
Une intégration de A à Z
L’interface initiale, écrite en C++, avait été conçue pour un ancien modèle de caméra du même constructeur. Le nouveau modèle introduisait une API entièrement différente.
Notre feuille de route s’est articulée en trois étapes :
Correction documentation officielle
La documentation fournie par le fabricant était incomplète et non à jour, mentionnant des commandes GenICam non implémentées, et
contenant des morceaux de documentation copiés-collés d’un ancien modèle incompatible.
Nous avons dû reconstituer l’interface du capteur, identifier les correspondances entre anciens et nouveaux paramètres et comprendre leurs dépendances.
Adaptation de l’interface logicielle
Les deux modèles ne partageaient ni la même nomenclature de commandes ni le même format de données.
Nous avons :
- Comparé les anciennes et nouvelles interfaces pour comprendre les différences de configuration,
- Analysé le code du driver pour décrypter la structure des paquets de données,
- Implémenté en C++ la gestion du nouveau format d’acquisition pour exploiter correctement les flux de la caméra,
- Introduit des tests unitaires exécutés en CI pour s’assurer que notre interface soit toujours compatible avec les anciens modèles encore en activité.
Exploration des nouvelles fonctionnalités
Certaines capacités inédites (suivi du laser, ajustement automatique de position, etc.) étaient mal documentées.
Nous avons donc :
- fouillé la documentation technique et les exemples du constructeur,
- mis en place un banc de tests physique pour valider le comportement de la caméra,
- étendu notre interface logicielle pour permettre le contrôle de ces nouvelles fonctions.
Résultats
Un capteur fonctionnel en production
La nouvelle caméra a été intégrée avec succès dans la chaîne d’acquisition et validée sur ligne de production. Le système a ensuite été réutilisé dans des projets dérivés, confirmant la robustesse de l’adaptation logicielle et la fiabilité du pilotage.