Ga naar hoofdinhoud

OpenPnP Fiducial Detection Failing: 5 Fixes That Actually Work

· 4 minuten leestijd
PikkoBot Team
Precision Robotics

Als OpenPnP de PCB-fiducials niet kan vinden, stopt de gehele productie. Na het testen van PikkoBot-machines met honderden PCB's, zijn dit de vijf oplossingen die bijna elke "fiducial not found"-fout verhelpen.

1. Het PCB-oppervlak is te reflecterend

Glanzende soldeermasker reflecteert de ringlicht terug in de camera, waardoor de fiducial-cirkel overbelicht raakt. De oplossing is mechanisch, niet softwarematig:

  • Veeg de PCB af met isopropylalcohol om vingerafdrukken en residu te verwijderen.
  • Als de PCB een glanzend groene of rode soldeermasker heeft, kantel de ringlichtbron dan lichtjes met behulp van een dunne diffuserring (printbaar in PETG, ~30° hoek).
  • Verlaag de belichting van de bovenste camera met 20-30% in Machine Setup → Cameras → Top Camera → Device Settings. De histogrampiek moet op ongeveer 60% helderheid liggen, niet op 95%.

Een typisch teken van dit probleem: detectie werkt aan de randen van de PCB, maar faalt nabij het midden waar de reflectie het sterkst is.

2. De drempelwaarden van de blobdetector in de vision-pipeline zijn onjuist

De standaard fiducial-detectiepipeline van OpenPnP gebruikt een BlobDetector-fase met conservatieve standaardwaarden. Voor 1,0 mm koperen fiducials op standaard soldeermasker werken deze standaardwaarden. Voor alles wat niet-standaard is, werken ze niet.

Open de pipeline-editor: Job → PCB Fiducials → rechtsklik op een fiducial → Edit Pipeline.

Pas deze fasen in volgorde aan:

FaseWat te controlerenTypische waarde
ImageCaptureCamera geselecteerd = Top Camera
ThresholdthresholdValue komt overeen met de helderheid van uw soldeermasker100–140 (groen), 60–80 (rood)
BlobDetectorminArea en maxArea omsluiten uw fiducial-grootte in pixels²Voor 1,0 mm fiducial bij 0,05 mm/px: ~400–2000
BlobDetectorminCircularity0,85 (versoepeld voor matte PCB's)
MaskCircleZoekradius rond de verwachte positie20–40 px

Klik na elke wijziging op Process Pipeline met een stilstaand PCB-beeld om te zien wat elke fase overleeft.

3. De camera is niet scherpgesteld

De lens van de bovenste camera heeft een vaste brandpuntsafstand die tijdens de productie is ingesteld. Als u deze hebt aangepast voor componentvisie (kortere scherpstelafstand), zal fiducial-detectie op PCB-hoogte wazig lijken, en zal BlobDetector de zachte randen afwijzen.

Snelle test:

  1. Verplaats de bovenste camera naar een fiducial.
  2. Bekijk de live-feed — scherpe randen of wazig?
  3. Indien wazig, heeft u twee opties:
    • Stel de scherpstelring van de camera af op fiducial-hoogte (verliest scherpte voor componentpick-up-verificatie — meestal niet de moeite waard).
    • Beter: verlaag de BlobDetector minCircularity naar 0,7 om zachtere randen te accepteren, en verklein MaskCircle om valse positieven te compenseren.

4. mm/pixel-kalibratie is afgedreven

OpenPnP moet weten hoeveel millimeters één camerapixel vertegenwoordigt. Als deze waarde zelfs maar 5% afwijkt, zal het zoekvenster in MaskCircle niet gecentreerd zijn op de werkelijke fiducial-positie.

Herijk met behulp van een bekende referentie — een fiducial die u met een schuifmaat hebt gemeten:

  1. Plaats de referentie-PCB op de hoogte van de staging plate.
  2. Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
  3. Volg de wizard met de bekende fiducial-diameter.
  4. Opslaan. Voer fiducial-detectie opnieuw uit.

Symptoom dat hierop wijst: detectie vindt iets, maar het is consistent 1–3 mm verschoven ten opzichte van de werkelijke fiducial.

5. De fiducial bevindt zich niet waar OpenPnP denkt dat deze is

Als u een PCB hebt geïmporteerd, maar de fiducial-coördinaten in het PCB-bestand komen niet overeen met de fysieke PCB (bijv. verkeerde oorsprong, gespiegeld ontwerp, of u hebt de PCB omgedraaid), zoekt OpenPnP in de lege ruimte.

Controleer door:

  • Het PCB-bestand in OpenPnP te openen en de fiducial X/Y te noteren.
  • De kop handmatig naar die coördinaat te verplaatsen.
  • Naar de live-camerafeed te kijken. De fiducial moet ongeveer gecentreerd zijn.

Als de afwijking exact de breedte of hoogte van de PCB is, is er sprake van een oorsprongsverschil. Exporteer de PCB opnieuw met de oorsprong ingesteld op de fiducial linksonder.

Snelle checklist

Wanneer fiducial-detectie faalt, doorloop dan deze lijst:

  • PCB gereinigd met IPA
  • Ringlicht niet direct in de camera gericht
  • Belichting bovenste camera niet maximaal
  • Vision-pipeline Threshold en BlobDetector gecontroleerd in de pipeline-editor
  • Camera scherpgesteld op PCB-hoogte
  • mm/pixel-kalibratie uitgevoerd in de afgelopen maand
  • PCB-bestandcoördinaten geverifieerd ten opzichte van de fysieke PCB

Als u elk vakje hebt aangevinkt en het faalt nog steeds, ligt het probleem meestal aan de soldeermasker zelf. Probeer een andere test-PCB of een andere fiducial-vorm (1,5 mm cirkel in plaats van 1,0 mm).


Voor een machineconfiguratie die vooraf is gekalibreerd voor fiducial-detectie uit de doos, zie de PikkoBot JUKI-configuratie — deze bevat een afgestemde pipeline voor standaard groene en zwarte soldeermaskers. Voor praktijkgericht testen van camera en belichting buiten OpenPnP, gebruik de PikkoBot Debug Tool.