Échec de la détection de fiducial OpenPnP : 5 correctifs qui fonctionnent réellement
Si OpenPnP ne parvient pas à trouver les fiduciaux de votre PCB, l'ensemble du travail s'arrête. Après avoir fait fonctionner les machines PikkoBot sur des centaines de cartes, voici les cinq correctifs qui résolvent presque toutes les erreurs « fiducial non trouvé ».
1. La surface de la carte est trop réfléchissante
Le masque de soudure brillant réfléchit la lumière annulaire dans la caméra, ce qui efface le cercle du fiducial. Le correctif est mécanique, pas logiciel :
- Essuyez le PCB avec de l'alcool isopropylique pour éliminer les résidus de manipulation.
- Si la carte a un masque de soudure vert ou rouge brillant, inclinez légèrement la source de lumière annulaire à l'aide d'un anneau diffuseur fin (imprimable en PETG, angle d'environ 30°).
- Réduisez l'exposition de la caméra supérieure de 20 à 30 % dans
Machine Setup → Cameras → Top Camera → Device Settings. Le pic de l'histogramme doit se situer à environ 60 % de luminosité, pas à 95 %.
Un signe révélateur de ce problème : la détection fonctionne dans les coins de la carte mais échoue près du centre où la réflexion est la plus forte.
2. Les seuils du détecteur de blob du pipeline de vision sont incorrects
Le pipeline de détection de fiducial par défaut d'OpenPnP utilise une étape BlobDetector avec des valeurs par défaut prudentes. Pour des fiduciaux en cuivre de 1,0 mm sur un masque de soudure standard, ces valeurs par défaut fonctionnent. Pour tout ce qui n'est pas standard, elles ne fonctionnent pas.
Ouvrez l'éditeur de pipeline : Job → PCB Fiducials → clic droit sur un fiducial → Edit Pipeline.
Ajustez ces étapes dans l'ordre :
| Étape | Élément à vérifier | Valeur typique |
|---|---|---|
ImageCapture | Caméra sélectionnée = Top Camera | — |
Threshold | thresholdValue correspond à la luminosité de votre masque de soudure | 100–140 (vert), 60–80 (rouge) |
BlobDetector | minArea et maxArea encadrent la taille de votre fiducial en pixels² | Pour un fiducial de 1,0 mm à 0,05 mm/px : ~400–2000 |
BlobDetector | minCircularity | 0,85 (assoupli pour les cartes mates) |
MaskCircle | Rayon de recherche autour de la position attendue | 20–40 px |
Après chaque modification, cliquez sur Process Pipeline avec une image fixe de la carte pour voir ce qui survit à chaque étape.
3. La caméra n'est pas au point
L'objectif de la caméra supérieure a une distance focale fixe définie lors de la fabrication. Si vous l'avez ajustée pour la vision des composants (mise au point plus proche), la détection des fiduciaux à la hauteur du PCB sera floue et BlobDetector rejettera les bords flous.
Test rapide :
- Déplacez la caméra supérieure au-dessus d'un fiducial.
- Observez le flux en direct — bords nets ou flous ?
- Si c'est flou, vous avez deux options :
- Ajustez la bague de mise au point de la caméra pour la hauteur du fiducial (perd en netteté pour la vérification de la prise de composant — généralement pas rentable).
- Meilleure option : réglez
minCircularityduBlobDetectorà 0,7 pour accepter des bords plus flous, et resserrezMaskCirclepour compenser les faux positifs.
4. L'étalonnage mm/pixel a dérivé
OpenPnP doit connaître le nombre de millimètres représentés par un pixel de la caméra. Si cette valeur est erronée de seulement 5 %, la fenêtre de recherche dans MaskCircle ne sera pas centrée sur la position réelle du fiducial.
Re-étalonnez à l'aide d'une référence connue — un fiducial que vous avez mesuré avec un pied à coulisse :
- Placez la carte de référence à la hauteur du plateau de positionnement.
- Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
- Suivez l'assistant avec le diamètre connu du fiducial.
- Enregistrez. Relancez la détection de fiducial.
Symptôme qui indique ce problème : la détection trouve quelque chose mais est systématiquement décalée de 1 à 3 mm par rapport au fiducial réel.
5. Le fiducial n'est pas là où OpenPnP pense qu'il est
Si vous avez importé un PCB mais que les coordonnées du fiducial dans le fichier PCB ne correspondent pas à la carte physique (par exemple, origine erronée, conception inversée, ou carte retournée), OpenPnP cherche dans le vide.
Vérifiez en :
- Ouvrant le fichier PCB dans OpenPnP et notant les coordonnées X/Y du fiducial.
- Déplaçant manuellement la tête à ces coordonnées.
- Regardant le flux en direct de la caméra. Le fiducial doit être à peu près centré.
S'il est décalé exactement de la largeur ou de la hauteur de la carte, vous avez une discordance d'origine. Réexportez le PCB avec l'origine définie sur le fiducial en bas à gauche.
Liste de vérification rapide
En cas d'échec de la détection de fiducial, parcourez cette liste :
- PCB nettoyé avec de l'alcool isopropylique
- Lumière annulaire ne pointant pas directement dans la caméra
- Exposition de la caméra supérieure non au maximum
-
ThresholdetBlobDetectordu pipeline de vision vérifiés dans l'éditeur de pipeline - Caméra au point à la hauteur du PCB
- Étalonnage mm/pixel effectué au cours du dernier mois
- Coordonnées du fichier PCB vérifiées par rapport à la carte physique
Si vous avez coché toutes les cases et que cela échoue toujours, le problème vient généralement du masque de soudure lui-même. Essayez une autre carte de test ou une forme de fiducial différente (cercle de 1,5 mm au lieu de 1,0 mm).
Pour une configuration machine pré-étalonnée pour la détection de fiducial prête à l'emploi, consultez la configuration PikkoBot JUKI — elle inclut un pipeline optimisé pour les masques de soudure verts et noirs standard. Pour des tests pratiques de la caméra et de l'éclairage en dehors d'OpenPnP, utilisez l'outil de débogage PikkoBot.
