Сбой обнаружения фидуциалов в OpenPnP: 5 рабочих исправлений
Если OpenPnP не может найти фидуциалы на вашей печатной плате, весь процесс останавливается. После эксплуатации машин PikkoBot на сотнях плат мы выделили пять исправлений, которые устраняют практически каждую ошибку «фидуциал не найден».
1. Поверхность платы слишком отражающая
Глянцевая паяльная маска отражает кольцевой свет обратно в камеру, «засвечивая» круг фидуциала. Исправление механическое, а не программное:
- Протрите печатную плату изопропиловым спиртом для удаления остатков после обработки.
- Если плата имеет глянцевую зеленую или красную паяльную маску, слегка наклоните источник кольцевого света с помощью тонкого рассеивающего кольца (печатается из PETG, угол ~30°).
- Уменьшите экспозицию верхней камеры на 20–30% в
Machine Setup → Cameras → Top Camera → Device Settings. Пик гистограммы должен находиться примерно на 60% яркости, а не на 95%.
Характерный признак этой проблемы: обнаружение работает по углам платы, но дает сбой в центре, где отражение наиболее сильное.
2. Неверные пороги детектора бликов в пайплайне машинного зрения
Пайплайн обнаружения фидуциалов по умолчанию в OpenPnP использует этап BlobDetector с консервативными настройками. Для медных фидуциалов диаметром 1,0 мм на стандартной паяльной маске эти настройки работают. Для всего нестандартного — нет.
Откройте редактор пайплайна: Job → PCB Fiducials → правый клик по фидуциалу → Edit Pipeline.
Настройте следующие этапы по порядку:
| Этап | Что проверять | Типичное значение |
|---|---|---|
ImageCapture | Выбрана камера = Top Camera | — |
Threshold | thresholdValue соответствует яркости вашей паяльной маски | 100–140 (зеленая), 60–80 (красная) |
BlobDetector | minArea и maxArea должны охватывать размер вашего фидуциала в пикселях² | Для фидуциала 1,0 мм при 0,05 мм/пиксель: ~400–2000 |
BlobDetector | minCircularity | 0,85 (ослаблено для матовых плат) |
MaskCircle | Радиус поиска вокруг ожидаемой позиции | 20–40 пикселей |
После каждого изменения нажимайте Process Pipeline с неподвижным изображением платы, чтобы увидеть, что проходит каждый этап.
3. Камера не сфокусирована
Объектив верхней камеры имеет фиксированное фокусное расстояние, установленное при производстве. Если вы регулировали его для распознавания компонентов (более близкий фокус), обнаружение фидуциалов на высоте печатной платы будет размытым, и BlobDetector отклонит нечеткие края.
Быстрая проверка:
- Переместите верхнюю камеру над фидуциалом.
- Посмотрите на изображение в реальном времени — края четкие или размытые?
- Если размытые, у вас есть два варианта:
- Отрегулируйте кольцо фокусировки камеры для высоты фидуциала (теряется резкость для проверки захвата компонентов — обычно не стоит того).
- Лучше: уменьшите
minCircularityвBlobDetectorдо 0,7 для принятия более мягких краев и ужесточитеMaskCircleдля компенсации ложных срабатываний.
4. Сбилась калибровка мм/пиксель
OpenPnP необходимо знать, сколько миллиметров соответствует одному пикселю камеры. Если это значение неверно даже на 5%, окно поиска в MaskCircle не будет центрировано на фактическом положении фидуциала.
Повторно откалибруйте, используя известный эталон — фидуциал, измеренный штангенциркулем:
- Поместите эталонную плату на высоту монтажного стола.
- Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
- Следуйте инструкциям мастера, указав известный диаметр фидуциала.
- Сохраните. Повторно запустите обнаружение фидуциалов.
Симптом, указывающий на это: обнаружение находит что-то, но это смещено относительно фактического фидуциала на 1–3 мм.
5. Фидуциал находится не там, где думает OpenPnP
Если вы импортировали печатную плату, но координаты фидуциала в файле платы не соответствуют физической плате (например, неверное начало координат, зеркальное отображение конструкции или вы перевернули плату), OpenPnP ищет в пустом пространстве.
Проверьте следующим образом:
- Откройте файл платы в OpenPnP и запишите координаты X/Y фидуциала.
- Вручную переместите головку в эти координаты.
- Посмотрите на изображение с камеры в реальном времени. Фидуциал должен быть примерно по центру.
Если смещение равно ширине или высоте платы, у вас несоответствие начала координат. Повторно экспортируйте плату, установив начало координат на нижний левый фидуциал.
Краткий контрольный список
При сбое обнаружения фидуциалов пройдитесь по этому списку:
- Плата очищена изопропиловым спиртом (IPA)
- Кольцевой свет не направлен прямо в камеру
- Экспозиция верхней камеры не на максимуме
-
ThresholdиBlobDetectorв пайплайне машинного зрения проверены в редакторе пайплайна - Камера сфокусирована на высоте платы
- Калибровка мм/пиксель выполнена в течение последнего месяца
- Координаты фидуциала в файле платы проверены по физической плате
Если все пункты отмечены, а проблема сохраняется, причина обычно в самой паяльной маске. Попробуйте другую тестовую плату или другую форму фидуциала (круг 1,5 мм вместо 1,0 мм).
Для настройки машины, предварительно откалиброванной для обнаружения фидуциалов «из коробки», см. конфигурацию PikkoBot JUKI — она включает настроенный пайплайн для стандартных зеленых и черных паяльных масок. Для практического тестирования камеры и освещения вне OpenPnP используйте инструмент отладки PikkoBot.
