Pular para o conteúdo principal

Falha na Detecção de Fiduciais no OpenPnP: 5 Correções Que Realmente Funcionam

· 5 min para ler
PikkoBot Team
Precision Robotics

Se o OpenPnP não consegue encontrar os fiduciais da sua PCB, todo o trabalho é interrompido. Após operar máquinas PikkoBot em centenas de placas, estas são as cinco correções que resolvem quase todos os erros de "fiducial não encontrado".

1. A superfície da placa é muito reflexiva

O máscara de solda brilhante reflete a luz do anel de volta para a câmera, saturando o círculo do fiducial. A correção é mecânica, não de software:

  • Limpe a PCB com álcool isopropílico para remover resíduos de manuseio.
  • Se a placa tiver máscara de solda verde ou vermelha brilhante, incline levemente a fonte de luz do anel usando um anel difusor fino (imprimível em PETG, ângulo de ~30°).
  • Reduza a exposição da câmera superior em 20-30% em Machine Setup → Cameras → Top Camera → Device Settings. O pico do histograma deve ficar em aproximadamente 60% de brilho, não 95%.

Um sinal claro desse problema: a detecção funciona nos cantos da placa, mas falha perto do centro, onde a reflexão é mais intensa.

2. Os limites do detector de blob na pipeline de visão estão incorretos

A pipeline de detecção de fiduciais padrão do OpenPnP usa um estágio BlobDetector com valores padrão conservadores. Para fiduciais de cobre de 1,0 mm em máscara de solda padrão, esses valores funcionam. Para qualquer coisa fora do padrão, não funcionam.

Abra o editor de pipeline: Job → PCB Fiducials → clique com o botão direito em um fiducial → Edit Pipeline.

Ajuste estes estágios na ordem:

EstágioO que verificarValor típico
ImageCaptureCâmera selecionada = Top Camera
ThresholdthresholdValue corresponde ao brilho da sua máscara de solda100–140 (verde), 60–80 (vermelho)
BlobDetectorminArea e maxArea devem abranger o tamanho do seu fiducial em pixels²Para fiducial de 1,0 mm a 0,05 mm/px: ~400–2000
BlobDetectorminCircularity0,85 (relaxado para placas foscas)
MaskCircleRaio de busca em torno da posição esperada20–40 px

Após cada alteração, clique em Process Pipeline com uma imagem estática da placa para ver o que sobrevive em cada estágio.

3. A câmera está desfocada

A lente da câmera superior tem uma distância focal fixa definida durante a fabricação. Se você a ajustou para visão de componentes (foco mais próximo), a detecção de fiduciais na altura da PCB ficará borrada, e o BlobDetector rejeitará as bordas suaves.

Teste rápido:

  1. Posicione a câmera superior sobre um fiducial.
  2. Observe a imagem ao vivo — bordas nítidas ou borradas?
  3. Se estiver borrada, você tem duas opções:
    • Ajuste o anel de foco da câmera para a altura do fiducial (perde nitidez para verificação de captura de componentes — geralmente não vale a pena).
    • Melhor: reajuste o minCircularity do BlobDetector para 0,7 para aceitar bordas mais suaves e restrinja o MaskCircle para compensar falsos positivos.

4. A calibração mm/pixel se desviou

O OpenPnP precisa saber quantos milímetros um pixel da câmera representa. Se esse valor estiver errado em apenas 5%, a janela de busca no MaskCircle não estará centralizada na posição real do fiducial.

Recalibre usando uma referência conhecida — um fiducial que você mediu com paquímetro:

  1. Coloque a placa de referência na altura da mesa de posicionamento.
  2. Machine Setup → Cameras → Top Camera → Calibration → mm/Pixel Calibration.
  3. Siga o assistente com o diâmetro conhecido do fiducial.
  4. Salve. Execute novamente a detecção de fiduciais.

Sintoma que aponta para isso: a detecção encontra algo, mas está consistentemente deslocada do fiducial real por 1–3 mm.

5. O fiducial não está onde o OpenPnP pensa que está

Se você importou uma PCB, mas as coordenadas do fiducial no arquivo da PCB não correspondem à placa física (por exemplo, origem errada, design espelhado ou você virou a placa), o OpenPnP procura em espaço vazio.

Verifique:

  • Abrindo o arquivo da PCB no OpenPnP e anotando as coordenadas X/Y do fiducial.
  • Posicione manualmente o cabeçote nessa coordenada.
  • Observe a imagem ao vivo da câmera. O fiducial deve estar aproximadamente centralizado.

Se estiver deslocado exatamente pela largura ou altura da placa, você tem uma incompatibilidade de origem. Reexporte a PCB com a origem definida no fiducial inferior esquerdo.

Lista de verificação rápida

Quando a detecção de fiduciais falhar, percorra esta lista:

  • PCB limpa com IPA
  • Luz do anel não apontando diretamente para a câmera
  • Exposição da câmera superior não no máximo
  • Threshold e BlobDetector da pipeline de visão revisados no editor de pipeline
  • Câmera focada na altura da PCB
  • Calibração mm/pixel feita no último mês
  • Coordenadas do arquivo da PCB verificadas em relação à placa física

Se você marcou todas as caixas e ainda falha, o problema geralmente é a própria máscara de solda. Tente uma placa de teste diferente ou um formato de fiducial diferente (círculo de 1,5 mm em vez de 1,0 mm).


Para configuração de máquina que vem pré-calibrada para detecção de fiduciais pronta para uso, consulte a configuração PikkoBot JUKI — ela inclui uma pipeline ajustada para máscaras de solda verde e preta padrão. Para testes práticos de câmera e iluminação fora do OpenPnP, use a Ferramenta de Depuração PikkoBot.