Przejdź do głównej treści

OpenPnP – Awaria detekcji fiducjałów: 5 sprawdzonych poprawek

· 4 min czytania
PikkoBot Team
Precision Robotics

Jeśli OpenPnP nie może znaleźć fiducjałów na płytce PCB, cały proces zatrzymuje się. Po przepuszczeniu setek płytek przez maszyny PikkoBot, oto pięć poprawek, które rozwiązują niemal każdy błąd „fiducjał nie znaleziony”.

1. Powierzchnia płytki jest zbyt odblaskowa

Błyszcząca maska lutownicza odbija światło pierścieniowe z powrotem do kamery, rozmywając okrąg fiducjału. Poprawka jest mechaniczna, nie programowa:

  • Przetrzyj PCB alkoholem izopropylowym, aby usunąć pozostałości po manipulacji.
  • Jeśli płytka ma błyszczącą zieloną lub czerwoną maskę lutowniczą, lekko odchyl źródło światła pierścieniowego za pomocą cienkiego dyfuzora (do wydruku w PETG, kąt ~30°).
  • Zmniejsz ekspozycję górnej kamery o 20–30% w Machine Setup → Cameras → Top Camera → Device Settings. Szczyt histogramu powinien znajdować się na około 60% jasności, a nie 95%.

Charakterystyczny objaw tego problemu: detekcja działa w rogach płytki, ale zawodzi w pobliżu środka, gdzie odbicie jest najsilniejsze.

2. Progi detektora plam w potoku wizyjnym są nieprawidłowe

Domyślny potok detekcji fiducjałów w OpenPnP wykorzystuje etap BlobDetector z konserwatywnymi ustawieniami domyślnymi. Dla miedzianych fiducjałów 1,0 mm na standardowej masce lutowniczej te ustawienia działają. Dla wszystkiego, co niestandardowe – już nie.

Otwórz edytor potoku: Job → PCB Fiducials → kliknij prawym przyciskiem fiducjał → Edit Pipeline.

Dostosuj kolejno następujące etapy:

EtapCo sprawdzićTypowa wartość
ImageCaptureWybrana kamera = Top Camera
ThresholdthresholdValue dopasowany do jasności maski lutowniczej100–140 (zielona), 60–80 (czerwona)
BlobDetectorminArea i maxArea obejmujące rozmiar fiducjału w pikselach²Dla fiducjału 1,0 mm przy 0,05 mm/px: ~400–2000
BlobDetectorminCircularity0,85 (złagodzone dla matowych płytek)
MaskCirclePromień wyszukiwania wokół oczekiwanej pozycji20–40 px

Po każdej zmianie kliknij Process Pipeline z nieruchomym obrazem płytki, aby zobaczyć, co przechodzi przez każdy etap.

3. Kamera jest nieostra

Obiektyw górnej kamery ma stałą odległość ogniskowania ustawioną podczas produkcji. Jeśli został wyregulowany do wizji komponentów (bliższe ogniskowanie), detekcja fiducjałów na wysokości PCB będzie rozmyta, a BlobDetector odrzuci miękkie krawędzie.

Szybki test:

  1. Przesuń górną kamerę nad fiducjał.
  2. Obserwuj obraz na żywo – ostre krawędzie czy rozmyte?
  3. Jeśli rozmyte, masz dwie opcje:
    • Wyreguluj pierścień ostrości kamery na wysokość fiducjału (utrata ostrości przy weryfikacji pobierania komponentów – zwykle nie warto).
    • Lepiej: obniż minCircularity w BlobDetector do 0,7, aby akceptować bardziej miękkie krawędzie, i zacieśnij MaskCircle, aby skompensować fałszywe pozytywy.

4. Kalibracja mm/piksel uległa przesunięciu

OpenPnP musi wiedzieć, ile milimetrów reprezentuje jeden piksel kamery. Jeśli ta wartość jest błędna nawet o 5%, okno wyszukiwania w MaskCircle nie będzie wyśrodkowane na rzeczywistej pozycji fiducjału.

Przekalibruj, używając znanego punktu odniesienia – fiducjału zmierzonego suwmiarką:

  1. Umieść płytkę referencyjną na wysokości stołu montażowego.
  2. Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
  3. Postępuj zgodnie z kreatorem, podając znaną średnicę fiducjału.
  4. Zapisz. Uruchom ponownie detekcję fiducjałów.

Objaw wskazujący na ten problem: detekcja znajduje coś, ale jest to konsekwentnie przesunięte o 1–3 mm od rzeczywistego fiducjału.

5. Fiducjał nie znajduje się tam, gdzie myśli OpenPnP

Jeśli zaimportowałeś płytkę PCB, ale współrzędne fiducjałów w pliku PCB nie zgadzają się z fizyczną płytką (np. błędny punkt początkowy, odbicie lustrzane projektu lub odwrócona płytka), OpenPnP szuka w pustej przestrzeni.

Zweryfikuj poprzez:

  • Otwarcie pliku PCB w OpenPnP i odnotowanie współrzędnych X/Y fiducjału.
  • Ręczne przesunięcie głowicy do tych współrzędnych.
  • Spojrzenie na obraz z kamery na żywo. Fiducjał powinien być mniej więcej wyśrodkowany.

Jeśli jest przesunięty dokładnie o szerokość lub wysokość płytki, masz niezgodność punktu początkowego. Wyeksportuj ponownie plik PCB z punktem początkowym ustawionym na dolnym lewym fiducjale.

Szybka lista kontrolna

Gdy detekcja fiducjałów zawodzi, przejdź przez poniższe punkty:

  • PCB oczyszczone alkoholem izopropylowym (IPA)
  • Światło pierścieniowe nie skierowane bezpośrednio w kamerę
  • Ekspozycja górnej kamery nie ustawiona na maksimum
  • Threshold i BlobDetector w potoku wizyjnym sprawdzone w edytorze potoku
  • Kamera ostra na wysokości PCB
  • Kalibracja mm/piksel wykonana w ciągu ostatniego miesiąca
  • Współrzędne fiducjałów z pliku PCB zweryfikowane z fizyczną płytką

Jeśli zaznaczyłeś wszystkie punkty, a problem nadal występuje, przyczyną jest zazwyczaj sama maska lutownicza. Wypróbuj inną płytkę testową lub inny kształt fiducjału (okrąg 1,5 mm zamiast 1,0 mm).


Aby uzyskać konfigurację maszyny wstępnie skalibrowaną do detekcji fiducjałów, zobacz konfigurację PikkoBot JUKI – zawiera ona dostrojony potok dla standardowych zielonych i czarnych masek lutowniczych. Do praktycznego testowania kamery i oświetlenia poza OpenPnP użyj narzędzia debugowania PikkoBot.