Aller au contenu principal

Échec de la détection de fiducial OpenPnP : 5 correctifs qui fonctionnent réellement

· 5 minutes de lecture
PikkoBot Team
Precision Robotics

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érifierValeur typique
ImageCaptureCaméra sélectionnée = Top Camera
ThresholdthresholdValue correspond à la luminosité de votre masque de soudure100–140 (vert), 60–80 (rouge)
BlobDetectorminArea et maxArea encadrent la taille de votre fiducial en pixels²Pour un fiducial de 1,0 mm à 0,05 mm/px : ~400–2000
BlobDetectorminCircularity0,85 (assoupli pour les cartes mates)
MaskCircleRayon de recherche autour de la position attendue20–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 :

  1. Déplacez la caméra supérieure au-dessus d'un fiducial.
  2. Observez le flux en direct — bords nets ou flous ?
  3. 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 minCircularity du BlobDetector à 0,7 pour accepter des bords plus flous, et resserrez MaskCircle pour 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 :

  1. Placez la carte de référence à la hauteur du plateau de positionnement.
  2. Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
  3. Suivez l'assistant avec le diamètre connu du fiducial.
  4. 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
  • Threshold et BlobDetector du 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.