Vai al contenuto principale

Rilevamento Fiducial in OpenPnP Fallito: 5 Soluzioni Che Funzionano Davvero

· 5 minuti di lettura
PikkoBot Team
Precision Robotics

Se OpenPnP non riesce a trovare i fiducial del PCB, l'intero lavoro si blocca. Dopo aver eseguito centinaia di schede con le macchine PikkoBot, queste sono le cinque soluzioni che risolvono quasi ogni errore "fiducial non trovato".

1. La superficie della scheda è troppo riflettente

La maschera di saldatura lucida riflette l'anello luminoso nella telecamera, cancellando il cerchio del fiducial. La soluzione è meccanica, non software:

  • Pulisci il PCB con alcol isopropilico per rimuovere i residui di manipolazione.
  • Se la scheda ha una maschera di saldatura verde o rossa lucida, inclina leggermente la sorgente luminosa ad anello utilizzando un sottile anello diffusore (stampabile in PETG, angolo ~30°).
  • Riduci l'esposizione della telecamera superiore del 20-30% in Machine Setup → Cameras → Top Camera → Device Settings. Il picco dell'istogramma dovrebbe attestarsi approssimativamente al 60% di luminosità, non al 95%.

Un segno rivelatore di questo problema: il rilevamento funziona agli angoli della scheda ma fallisce vicino al centro, dove il riflesso è più intenso.

2. Le soglie del rilevatore di blob della pipeline di visione sono errate

La pipeline predefinita di rilevamento dei fiducial in OpenPnP utilizza uno stadio BlobDetector con impostazioni conservative. Per fiducial in rame da 1,0 mm su maschera di saldatura standard, queste impostazioni funzionano. Per qualsiasi cosa non standard, non funzionano.

Apri l'editor della pipeline: Job → PCB Fiducials → clic destro su un fiducial → Edit Pipeline.

Regola questi stadi in ordine:

StadioCosa controllareValore tipico
ImageCaptureTelecamera selezionata = Top Camera
ThresholdthresholdValue corrisponde alla luminosità della maschera di saldatura100–140 (verde), 60–80 (rosso)
BlobDetectorminArea e maxArea devono comprendere la dimensione del fiducial in pixel²Per fiducial da 1,0 mm a 0,05 mm/px: ~400–2000
BlobDetectorminCircularity0,85 (rilassato per schede opache)
MaskCircleRaggio di ricerca attorno alla posizione prevista20–40 px

Dopo ogni modifica, clicca su Process Pipeline con un'immagine fissa della scheda per vedere cosa sopravvive a ogni stadio.

3. La telecamera è fuori fuoco

L'obiettivo della telecamera superiore ha una distanza focale fissa impostata durante la produzione. Se l'hai regolata per la visione dei componenti (messa a fuoco più ravvicinata), il rilevamento dei fiducial all'altezza del PCB apparirà sfocato e BlobDetector rifiuterà i bordi morbidi.

Test rapido:

  1. Sposta la telecamera superiore sopra un fiducial.
  2. Osserva il feed live: bordi netti o sfocati?
  3. Se sono sfocati, hai due opzioni:
    • Regola l'anello di messa a fuoco della telecamera per l'altezza del fiducial (perde nitidezza per la verifica del prelievo dei componenti — di solito non ne vale la pena).
    • Meglio: riduci minCircularity di BlobDetector a 0,7 per accettare bordi più morbidi e restringi MaskCircle per compensare i falsi positivi.

4. La calibrazione mm/pixel è variata

OpenPnP deve sapere quanti millimetri rappresenta un pixel della telecamera. Se questo valore è errato anche solo del 5%, la finestra di ricerca in MaskCircle non sarà centrata sulla posizione effettiva del fiducial.

Ricalibra utilizzando un riferimento noto — un fiducial che hai misurato con un calibro:

  1. Posiziona la scheda di riferimento all'altezza del piano di caricamento.
  2. Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
  3. Segui la procedura guidata con il diametro noto del fiducial.
  4. Salva. Esegui nuovamente il rilevamento dei fiducial.

Sintomo che indica questo problema: il rilevamento trova qualcosa, ma è costantemente spostato di 1–3 mm rispetto al fiducial effettivo.

5. Il fiducial non si trova dove OpenPnP pensa che sia

Se hai importato un PCB ma le coordinate del fiducial nel file PCB non corrispondono alla scheda fisica (ad esempio, origine errata, design speculare o scheda capovolta), OpenPnP cerca nello spazio vuoto.

Verifica:

  • Apri il file PCB in OpenPnP e annota le coordinate X/Y del fiducial.
  • Sposta manualmente la testina in quella coordinata.
  • Osserva il feed live della telecamera. Il fiducial dovrebbe essere approssimativamente centrato.

Se è spostato esattamente della larghezza o dell'altezza della scheda, hai una discrepanza di origine. Riesporta il PCB con l'origine impostata sul fiducial in basso a sinistra.

Lista di controllo rapida

Quando il rilevamento dei fiducial fallisce, esegui questa verifica:

  • PCB pulito con IPA
  • Anello luminoso non puntato direttamente nella telecamera
  • Esposizione della telecamera superiore non al massimo
  • Threshold e BlobDetector della pipeline di visione verificati nell'editor della pipeline
  • Telecamera a fuoco all'altezza del PCB
  • Calibrazione mm/pixel eseguita nell'ultimo mese
  • Coordinate del file PCB verificate rispetto alla scheda fisica

Se hai spuntato ogni casella e il problema persiste, di solito la causa è la maschera di saldatura stessa. Prova con una scheda di test diversa o con una forma di fiducial differente (cerchio da 1,5 mm invece di 1,0 mm).


Per una configurazione della macchina precalibrata per il rilevamento dei fiducial pronta all'uso, consulta la configurazione PikkoBot JUKI — include una pipeline ottimizzata per maschere di saldatura verdi e nere standard. Per test pratici di telecamera e illuminazione al di fuori di OpenPnP, utilizza il PikkoBot Debug Tool.

Benvenuti nel Blog di PikkoBot

· 1 minuto di lettura
PikkoBot Team
Precision Robotics

Qui condivideremo note operative raccolte durante l'utilizzo delle macchine PikkoBot: build reali, trucchi per la calibrazione, aggiornamenti del firmware dei feeder e casi studio degli utenti.