调试错误和偏移量
此页面是调试 OpenPnP 错误的中心仓库。
贴装错误
您可能在贴装元件时发现了不准确或错误。本页面将介绍这些错误以及如何修复它们。您可能同时遇到其中几个错误,请先选择一个处理,然后再继续。
| 错误类型 | 描述 | 图示 |
|---|---|---|
| 随机偏移 | 元件贴装位置看似随机。 | ![]() |
| 全局偏移 | 每个元件在 X 和 Y 方向上都偏移了相同的量。 | ![]() |
| 吸嘴偏移 | 使用特定吸嘴贴装的所有元件都有偏移。 | ![]() |
| 元件偏移 | 元件的偏移与其方向相关。 | ![]() |
| 旋转偏移 | 元件贴装时存在一致的旋转偏移。 | ![]() |
| 90度偏移 | 元件以 90 度的增量旋转。 | ![]() |
无法拾取元件

如果吸嘴无法一致地拾取元件,可能存在几个根本原因:
- 真空传感器阈值过于敏感。 如果您注意到吸嘴尝试拾取元件,但似乎抬升得太快,那么真空传感器阈值值错误地告知 OpenPnP 已成功拾取元件。这可以通过 调整您的真空传感器阈值 来解决。
- 供料器 Z 轴位置设置过高。 如果机器被指示在略高的位置拾取元件,吸嘴头无法与元件形成良好的密封,导致拾取失败。这可以通过调整 供料器的高度 来解决。
- 吸嘴头吸力不足。 特别是对于最小的 N045 吸嘴头,一些焊膏可能会卡在尖端,降低吸力。如果您在将吸嘴头对着光时看不到微小的光圈,则可能需要用细金属丝和异丙醇清洁尖端。
元件粘连
如果吸嘴难以释放元件,可能存在几个根本原因:
- 电路板的 Z 轴位置设置过高。 如果吸嘴没有将元件完全压入焊膏中,将无助于将元件固定在位置上。将电路板的 Z 轴高度设置得稍低一些,以确保元件被正确压入焊膏中。
- 吸嘴需要清洁。 如果焊膏沾到吸嘴头上,可能会粘住元件。使用异丙醇和细漆包线清洁吸嘴头,清理开口。
- 停留时间不足。 如果 OpenPnP 在贴装后向上移动之前,没有给气动管路足够的时间来平衡压力,管路中可能仍有一些残余真空导致元件粘连。禁用真空感应 并在相关吸嘴头的“配置”选项卡上增加“贴装停留时间(ms)”。(真空感应会覆盖任何手动输入的停留时间。)
“未找到结果”错误

元件识别流水线
元件识别是最难调整的流水线,因为它需要适应任务中的所有元件。
如果在拾取元件后收到关于 未找到结果 的错误,您需要调整视觉流水线。

设置吸嘴
- 在第一个工具头上安装吸嘴头。在本示例中,我们将使用 N045 吸嘴头。
- 导航到右上方面板中的
机器设置选项卡。 - 点击“展开”复选框。
- 导航到
机头 > ReferenceHead H1 > 吸嘴 > ReferenceNozzle N1 - 点击
吸嘴头选项卡。 - 为您正在调整的吸嘴勾选
已加载?复选框。 - 导航到
吸嘴头 > ReferenceNozzleTip N045(或您正在使用的吸嘴)。 - 确认在
机器控制选项卡中选择了正确的工具头。
拾取元件
为了微调元件识别流水线,首先拾取您要调整的元件。您可以设置供料器并使用 拾取 按钮。

打开流水线
- 拾取元件后,导航到
封装选项卡。 - 选择与您正在调整的元件对应的封装。
- 确保您的吸嘴头与所选封装兼容。
- 点击
底部视觉设置选项卡。 - 点击流水线中的
编辑按钮。影响所有其他元件直接点击“编辑”按钮将修改分配给此流水线的每个封装的视觉流水线。要仅为此封装调整流水线,请在更改之前点击“为
PACKAGE_NAME特化”按钮。 - 允许 OpenPnP 将吸嘴移动到底部相机位置。
编辑流水线
将流水线重置为默认值
如果您想将元件识别流水线重置为干净的默认配置,您可以按如下方式轻松更新视觉流水线。

-
点击下面代码块中的“复制”按钮,将视觉流水线保存到剪贴板。
<cv-pipeline> <stages> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageCapture" name="CaptureImage" enabled="true" default-light="true" settle-option="Settle" count="1"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="SaveDebugImage" enabled="false" prefix="bv_source_" suffix=".png"/> <cv-stage class="org.openpnp.vision.pipeline.stages.MaskCircle" name="MaskCircle" enabled="true" diameter="250" property-name=""/> <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="ConvertToGray" enabled="true" conversion="Bgr2Gray"/> <cv-stage class="org.openpnp.vision.pipeline.stages.BlurGaussian" name="InitialBlur" enabled="true" kernel-size="9" property-name="BlurGaussian"/> <cv-stage class="org.openpnp.vision.pipeline.stages.Threshold" name="Threshold" enabled="true" threshold="230" auto="false" invert="false"/> <cv-stage class="org.openpnp.vision.pipeline.stages.BlurGaussian" name="SecondBlur" enabled="true" kernel-size="3" property-name="BlurGaussian"/> <cv-stage class="org.openpnp.vision.pipeline.stages.MinAreaRect" name="results" enabled="true" threshold-min="149" threshold-max="256" expected-angle="0.0" search-angle="45.0" left-edge="true" right-edge="true" top-edge="true" bottom-edge="true" diagnostics="false" property-name="MinAreaRect"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageRecall" name="RecallOriginal" enabled="true" image-stage-name="CaptureImage"/> <cv-stage class="org.openpnp.vision.pipeline.stages.DrawRotatedRects" name="DrawRectangle" enabled="true" rotated-rects-stage-name="results" thickness="2" draw-rect-center="false" rect-center-radius="20" show-orientation="false"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="SaveDebugWithCV" enabled="false" prefix="bv_result_" suffix=".png"/> </stages> </cv-pipeline> - 点击视觉流水线窗口中的“剪贴板”图标,将新流水线插入到 OpenPnP 中。

- 点击
DrawRotatedRects阶段。 - 检查元件轮廓周围的矩形:
- 如果矩形没有精确包围元件,那么我们需要更清晰地区分真实元件和工具头。
- 如果没有矩形,我们需要放宽阈值,使元件更容易识别。
- 如果图像看起来像上面的良好示例,则您的流水线已正确调整。如果您在归零时仍然遇到失败,您可能需要稍微调整过滤参数。
阈值调整
阈值 阶段是最常调整的阶段。它将相机图像转换为黑白图像,确保吸嘴头和元件之间形成清晰的对比。此步骤至关重要,因为相机向上的 LED 应完全照亮元件,使其在图像中呈现亮白色。我们需要检测拾取元件的位置和旋转,因此一个紧贴其主体的精确矩形非常重要。根据需要提高或降低 阈值 参数,直到拾取的元件被精确勾勒出来。
- 如果图像太暗,请降低
阈值值。 - 如果图像太亮,请提高
阈值值。
曝光设置
如果您难以达到下面的“良好阈值”结果,则可能是底部相机的曝光过高。这会使 OpenPnP 难以区分元件和吸嘴头。 调整底部相机的曝光,然后重新尝试调整阈值。

测试元件识别
注意
如果您收到 元件高度未知且底部相机不支持元件高度感应。 错误,您需要设置元件的高度。这可以让 OpenPnP 将其正确定位在底部相机上方。
- 转到
元件选项卡 - 选择您的元件
- 双击“高度”列进行修改。


正文完





















