openpnp - camera - subject not found

文章目录

    • openpnp - camera - subject not found
    • 概述
    • 顶部相机安装的垂直度要保证
    • USB相机的帧率要保证30
    • 辅助光照射到PCB后, 不要有大面积的刺眼反光
    • openpnp新版本有bug, 如果是生产, 需要使用经过时间验证的稳定版本
    • 补充
    • 好好想想, 到底哪些细节让主基准点初始化成功了
    • 相机的位置必须安装的高
    • 辅助光不需要那么多灯珠
    • 首先要将相机焦距调整好
    • 进行主基准点初始化前, 要进行相机参数和白平衡的设置
    • 需要确定相机像素和实际距离的比例关系
    • 如果设备完全没电了, 相机参数和白平衡要重新做
    • 主校准点的图像不能是太清晰的, 必须是柔和的一个圆形
    • 果真换了印刷版的基准点就O了
    • 补充 - 相机稳定时间
    • 备注
    • 补充 - 2023_0429_1204
    • 补充 - 2023/8/9
    • END

openpnp - camera - subject not found

概述

设备到手的时候, 主次基准点初始化, 都可以通过. 但是顶部相机高级矫正过不了.

顶部相机高级矫正是补偿Z轴垂直度的, 如果不做这个或者通不过矫正, 精度上不来.
明明设备精度是0.01mm, 如果不矫正, 凑合着用, 精度就变成0.5mm了, 还不如皮带机, 不行的.

因为这个原因, 始终想更换顶部相机. 或者重新调整验证顶部相机相关的事情.

这段时间, 换了顶部相机(因为顶部相机高级矫正无法每次都成功, 甚至主校准点初始化这个考试操作一直失败, 如果矫正操作没有可重复性, openpnp软件升级后, 或者因为设备搬动了, 再重头做矫正, 那出了问题都是时间啊), 再进行顶部相机主基准点矫正时, 一直报错 “subject not found”, 一次都没成功过. 不是相机本身的问题. 相机图像和辅助光也调整的很清晰.
在这里插入图片描述

大概折腾了2个星期, 今天终于成功了, 而且有可重复性, 分各种情况连续进行了5次测试, 每次主基准点初始化都成功.
这种可重复性, 说明问题已经解决了.
因为被折腾的太厉害了, 得好好总结一下. 到底为啥成功了.
总结一下问题的要点和细节, 不一定有普适性, 但是针对我的设备, 下次我再按照这些笔记做, 一定会成功.

顶部相机安装的垂直度要保证

这个要由机械安装和相机镜头座一起来保证, 必须让顶部相机和工作平台垂直, 如果肉眼就能看出不垂直, 肯定不行的. 到了顶部相机高级矫正时肯定过不去.

用镜头对准PCB上的一个元件管脚, 在手工调焦后(大概1~2度一次调整), 相机十字中心始终不动, 还是照准元件管教中心. 或者动一点.
这才说明相机镜头是垂直的.

顶部相机高级矫正是用来补偿顶部相机垂直度误差的, 必须做这步, 否则精度达不到.
在这里插入图片描述

现在是用尼龙螺柱将相机模组和设备GND隔开, 为了保证相机模组的垂直度, 最好将M2X6+6的螺柱拧到底.
如果受限于相机安装座的设计, 也必须要拧入足够的螺纹圈数, 将能保证螺柱垂直之外的长度剪断给其他螺柱用.

因为使用塑料螺柱的拧入的紧固性差一些, 最好使用短一些的螺柱(e.g. M2X5 + 6), 这样即使安装有一些偏差, 影响也相对小一些.

过几天重新画一个这个相机安装座子, 将相机安装孔和辅助光安装孔分开(错开45度就行, 相机和辅助光都有独立的通孔安装螺纹), 这样就可以将螺柱拧到底了.

USB相机的帧率要保证30

openpnp官方推荐的顶部相机为720P, 8mm焦距, 手工对焦, 30FPS的相机. 镜头离PCB距离要达到40mm以上.

试过了, 同样的条件, 换成720P, 3.6mm焦距的相机不行. 我设备刚到手的时候, 厂家带的相机是720P, 3.6mm相机, 主次校准点初步矫正可以通过, 顶部相机高级矫正过不了. 从侧面也验证了, 顶部相机使用8mm焦距是有优势的.

但是自己用的时候, 千万不能剪断USB线, 自己去接线. 这样会在硬件层面使帧率掉到1FPS, 导致openpnp使用USB相机图像时出现问题(opencv比对图像时, 不同位置要拍对应图片, 如果帧率上不来, 就会出问题).
在这里插入图片描述
必须使用厂家带的原装端子线(1般是1.5米) + 市面上通用的USB延长线(3米)才行.
顶部相机只是安装到设备上, 但是和设备没有任何电气联系, 通过通讯线连接到上位机.

可以将市面上3米的USB延长线, 通过箱体, 坦克链, 穿到顶部相机附近, 用相机模组自带的1.5米端子线和USB延长线连接, 这样维护性好很多.
以后换相机后者换厂家验证过的1.5米端子线就会很方便.
在这里插入图片描述

在设备不通电的情况下, 只测试相机连接到电脑, 测速的情况, 要达到30FPS才行.
相机模组出厂时配了线, 厂家已经测试过. 用这种原装端子线 + USB验证线, 测试时, 如果发现FPS低于30FPS太多, 尝试换条线再测试.

注意插入相机模组XH2.54x5的端子线和USB端, 不要受力(用扎带按照自然形状绑扎), 否则用一端时间后, 就说不定了. 我这就发现一条以前好用的原装端子线FPS掉到1的情况, 观察了一下, 好像是受力太久后 2根黑色的地线被拔出一些, 导致电流没有过那么好.

相机模组的自动选项(自动对焦, 自动曝光, 自动白平衡)都要关闭, 图像选择为1280x720(特别是曝光不要调太高, 高于默认值-6越多, 越影响FPS), 否则影响FPS.
具体FPS掉帧数的实验已经做了, 总结的比较到位, 有可重复性. 参见 openpnp - camera - FPS掉帧的解决思路

辅助光照射到PCB后, 不要有大面积的刺眼反光

openpnp官方文档说, 开了辅助光后, 配合相机参数调整(e.g. 曝光, 焦距, 白平衡), 应使PCB上元件图像充分曝光(对于人眼来说, 可能稍微偏暗), 且不出现刺眼的反光.

最好使用工业视觉专用的环形无影灯, 效果好些.

如果使用自己做的简易辅助光, 正面照射PCB时, 很容易出现LED的身影在PCB上照出一圈亮点. 曝光也不太好调整.
如果不想调整太多参数(e.g. 曝光) , 可以手工将所有参数的自动选项都勾掉, 这样图像基本就能显示出来, 再一个一个勾的去掉.
没去掉一个, 停个几秒, 看看对于openpnp的参数影响差别在哪里, 然后自己再手工单独调整这个去掉勾的选项参数, 知道和自动时效果相差不多时, 再继续去自动, 再手工调整下一个参数. 调整完参数后, 最好尝试一下测速, 如果帧率为30FPS就是没问题的. 如果调整了哪个参数后(大概率是曝光++), 使FPS掉帧, 再手工调整为不影响FPS的参数值.

因为辅助灯没有或者辅助光暗淡, 必须增加曝光才能使图像更亮. 但是曝光增加后, 离开默认值(-6)越远, FPS就越低, 所以, 必须要开辅助光. 而且必须是要将辅助光直接照射到PCB, 靠辅助灯的反光是不行的.

辅助光越亮, 图像的识别就越稳定(环境光的影响就越小).

openpnp新版本有bug, 如果是生产, 需要使用经过时间验证的稳定版本

如果是生产用, 建议用开发版, 不要用测试版.
我现在用的是 OpenPnP-windows-x64-develop_2023-03-15_00-30-21.460d8aa.exe, 不使用汉化补丁(没有刚需), 就这一个安装包就够了.

如果是生产用, 真不能乱升级.
openpnp还有测试版, 更乱, 前几天的版本, 居然配置文件格式都变了, 需要重新配置…
昨天在群里听大神说, 官方在3月28日又出了一个测试版, 将不能读取以前版本配置文件的问题修正了…
太儿戏了, 测试不充分, 几乎就是没有测试, 就出了测试版, 这敢用么?

补充

  • 要使用720P相机,不能使用1080P相机. 官方推荐就是720P相机.
    在这里插入图片描述
    具体顶部相机和底部相机采用多大的焦距镜头, 是实验出来的, 不行就换.

  • 指定相机信号和FPS测试时, 要在视觉里程碑处指定, 过早指定(e.g. 运动里程碑)会导致掉帧, 且不重新上电, 无法回到正常FPS.
    进入视觉里程碑后, 因为要进行主基准点初始化, 此时, 就需要顶部相机, 此时, 去指定相机(顶部/底部)并测试帧率.

好好想想, 到底哪些细节让主基准点初始化成功了

相机的位置必须安装的高

相机相关的校准, openpnp让相机在目标点附近来回移动, 查看目标点当前位置是否在预想的位置.
如果相机安装的低, 能拍到的视野就小, 保不准移动后, 就看不到目标点了.
受限于设备的机械结构, 现在相机已经尽量安装到最高的地方了, 再高的话, 连螺丝都拧不了.

辅助光不需要那么多灯珠

原来设备自带的辅助灯板, 是厂家自己画的. 采用24V并联了10路灯珠 + 限流电阻, 发热量极大.
留了4路, 将其他拆掉了. 现在的曝光是 -13.
其实保留1~2个灯珠就够了. 让曝光保持在默认值-6附近就好.
下一步, 改相机安装底座, 安装成品的机械视觉的环形无影灯(相机过孔尺寸更大, 相机视野更好).

首先要将相机焦距调整好

先将辅助光摘掉, 避免烫伤手.
旁边点一盏台灯, 作为临时的辅助光.
将相机参数调整到默认值.
将相机的十字对准元件上的一个焊盘中心.
这时, 只要手工调整焦距光圈, 调整到最清晰.
比较重要的一点, 此时要注意相机垂直度的验证. 方法:转动一度, 就去看看openpnp图像, 要保持焦距转动时, 相机十字始终在元件焊盘中心, 位置不能有太大变化. 否则就说明, 相机的垂直度有问题. 需要重新检查相机的机械安装和镜头座是否垂直.

清晰的标准: 放到最远看, 能看到焊盘边上有明显的外形线条(很锋利的那种). 拉到近处看, 也是最清晰的那种.
现在可以将辅助光装在相机下面了.

进行主基准点初始化前, 要进行相机参数和白平衡的设置

试过了, 如果不进行相机参数和白平衡的合理设置 主基准点初始化会失败的.
因为相机对主基准点初始化时, 需要用到图像比对. 图像质量越好, 曝光越充分, 对图像的分析好处越多.

先将参数都填写为默认值, 白平衡参数也的参数都在中间.
因为这时由于辅助光打开, openpnp画面一片惨白, 啥图像也没有.
这时, 如果是手工调整, 很难. 手工调整只能是微调.
这时, 可以将相机参数所有的勾都打上(最下面的Freeze Properties除外, 这个要将参数设置到相机中, 有副作用, 会掉帧率)
在这里插入图片描述
此时, 图像会自动被调整的能看, 很清晰, 就是颜色有些偏.
然后从下往上, 一个勾一个勾的去掉, 然后等几秒, 如果图像没有明显变化, 就去将下一个勾去掉.

如果发现图像质量有明显变化, 此时, 就可以点击该选项的滑动按钮, 用键盘从左到右试试, 动一下参数, 等几秒, 看看图像有啥变化.
直到调整到和自动图像差不多效果为止.

调整到曝光时, 需要向降低曝光的方向调整, 这样不影响FPS.
直到看不到图像了, 再向右调整1到2格就好.
官方文档说, 充分的曝光, 在人眼中看起来, 偏暗一些, 对于机器视觉来说, 已经足够了.

然后用openpnp提供的功能来进行白平衡.
在这里插入图片描述
将默认的6个参数都拉到中间.
然后下面的4种方法从上往下点, 如果都成功最好. 最后一种方法的图像质量是最好的.
如果不是都成功, 就点击到最后能成功的那个方法就结束.
这4个方法是否成功, 和前面的相机参数设置关系很大.
我这里, 第一种方法(大概调整)完全失败, 效果是图像一片黑. 不管他.
然后点击第2种(捕获最亮的图像), 图像是发红的那种, 但是能看到焊盘图形.
然后点击第3种(映像颜色), 基本是绿PCB图像了. 基本每次都能成功
第4种(对图像的颜色映射最好, 最接近真实PCB的外观), 不是每次都能成功. 实在不行, 就采用第三种方法的结果作为白平衡的结果.

需要确定相机像素和实际距离的比例关系

在这里插入图片描述
在夹具工作平面(PCB平面高度)摆一个钢尺, 因为目标填成了1mm x 1mm的方形, 用相机十字对准1个mm刻线中心, 点击测量, 然后向X方向走1mm, 然后再点击测量, 就可以得出一个像素和mm之间的实际对应关系. 这块不是很懂, 大概测量一下. 估计在视觉操作中(e.g. 主基准点初始化中算距离是要用到的).

如果设备完全没电了, 相机参数和白平衡要重新做

前面, 为了验证主基准点初始化成功的可重复性, 我做了一次设备完全没电后, 重新上电, 插入USB线的测试.
发现相机的效果和没矫正前一样不好.
此时, 如果进行主校准点初始化或视觉归位, 会失败的.

主校准点的图像不能是太清晰的, 必须是柔和的一个圆形

官方文档上给出的建议是, 要采用黑色底板, 然后将印刷打印出来的1mm白色不干胶贴上面. 最好不要使用PCB上的Mark点来做基准点, 也不建议采用反光剧烈的材料. 最好使用黑色亚光和能产生漫反射的材料.

我这设备, 主基准点, 是一块拧在设备上的一块黑色PCB, 上面Mark点周围还留了大概直径6mm的阻焊区域.
这样的基准点没有官方推荐的好.

开始用720P3.6mm顶部相机时, 也是对着夹具上的PCB进行对焦.
主基准点比加剧位置高1.6mm的PCB板厚, 看的也很清晰, 主基准点的Mark点焊盘看的边沿很清晰, 甚至都可以看出Mark点不是一个正规的圆形. 此时矫正主基准点是失败的.

用了720P8mm顶部相机时, 也是对着夹具上的PCB进行对焦.
此时再看主基准点, 已经不清晰了, 看到的是一个柔和的, 被充分曝光的圆形. 此时再矫正, 就是成功的.

由此可以侧面验证, 官方推荐使用印刷1mmMark点 + 亚黑色漫反射材料做底色, 是有道理的.
官方文档上还特意说, 使用3.6mm相机的同学要特别主意使用推荐的基准点. 没白说啊.

果真换了印刷版的基准点就O了

定制了亚光黑色底板, 边长30mm的正方形, 中间是1mm直径的白点.
剪裁(10mm x 16mm的矩形)后, 贴到主基准点处, 覆盖了原来的PCBMark点.
在这里插入图片描述
次校准点, 当前用的是从夹具PCB上堆叠起来的几块PCB, 原来也是用的PCB上的Mark点.
因为PCB够大, 直接将30x30mm的亚光校准点, 贴在PCB上, 覆盖了原来的PCB上的Mark点.
在这里插入图片描述
换上了720P 3.6mm的摄像头模组, 调焦时, 对着夹具平面上的正常PCB进行调焦. 调到最清晰为止.
在调焦过程中, 特别注意过, 将相机十字对准一个焊盘中心, 在调焦时, 十字基本在焊盘中心不动(说明相机安装的机械垂直度很高).
设置相机参数, 进行充分曝光(人眼看来偏暗, 但是能看的清楚为准). 进行白平衡, 这次, 方法4也可以通过.
然后进行主基准点的初始化, 很顺利就通过.
然后进行次基准点的初始化, 很顺利通过.

看来, 我的设备开始校准时(主,次基准点初始化)始终失败的原因有以下几个:

  • 相机模块没有垫塑料螺丝, 导致相机地和设备地相连, 导致PC端的相机设备连接上下线频繁.
  • 相机参数设置不合适, 导致FPS掉帧
  • 相机模组没有安装好, 导致Z轴垂直度差太多.
  • 基准点不能用PCB上的Mark点代替, 而是要使用官方推荐的印刷版基准点(底板为黑色亚光材料, 中间是一个1mm的白色原点, 也是亚光的).

这些都是坑, 没有资料在讲. 都要自己细细品, 然后结合官方资料和自己的实验体会一步一步来改进实验, 艰难啊. 都是时间成本.

和硬件沾边的事情, 无法做到快速实验验证. 验证一个想法, 如果手头没有实验条件, 最少一个星期才能进行一步, 痛苦.
每进行一步, 如果缺了一样东西(e.g. 官方推荐的亚光基准点, 螺丝啥的手里没有)去订货回来都1个星期以后了.
如果是机加的零件, 一般都得3周(2周做完, 一周路上快递)后才能到手.

补充 - 相机稳定时间

如果是重新矫正设备, 还没有自动设置相机稳定时间, 此时默认的250ms也会引起"subject not found"
此时, 需要将相机(顶部相机/底部相机)稳定时间改成保守的600ms. 才能保证视觉的操作成功(e.g. 主校准点初始化)
默认的250ms, 操作起来感觉贴头动的比较快, 揪心.
600ms, 操作起来慢悠悠的, 很快就操作完成并成功.
在这里插入图片描述

备注

感觉这事没完, 以后和 “openpnp - camera - subject not found” 相关的实验和体会再补充.
"subject not found"报错这事, 在网上, 包括openpnp官方说法都很少. 每个人遇到的情况也不相同. 真难为人啊.

补充 - 2023_0429_1204

subject not found 和安装的垂直度很有关系, 不只是相机本身.
e.g. 底部相机矫正, 底部相机本身要装垂直, N1, N2电机轴也要是垂直的, 只要有一点不垂直, 就校验通不过.
验证方法, 在Z轴归零位置, 将吸嘴内管中心和底部相机十字中心重合. 然后将Z轴上升20mm/下降20mm, 分别观察是否吸嘴和底部相机十字有偏移距离, 如果有偏移, 就说明电机轴和Z轴不平行. 到底是哪里引起电机轴不垂直, 要找. 用直角尺和塞规配合, 就能看出个大概. 说到底, 如果机械安装部分出了问题, 再从软件层面上解决, 是不现实的.

我设备这发现一个案例, 安装N1,N2电机轴的Z底板变形了, 导致电机轴不垂直. 原因, 强度不够, 只有9mm, 而且厂家设计失误, Z底板安装孔沉头孔不够深, 他自己手工钻的孔, 将台阶加深, 台阶底部不平, 导致螺丝拧上后, 应力(3个方向都有应力, 如果标准加工, 只有螺丝拧紧的方向受力)加大, 9mm的板子上部变形了(用直角尺就能看出来, 大概板子想设备背面倾斜了0.1mm). 另外Z底板上部还挂着电机和电路板, 导致有扭矩(向设备背面)存在. 采取的措施, 自己重新画Z底板, 将零件厚度由9mm增加到13mm, 安装的沉头孔设计为5.6mm, 采用7075铝合金. 具体行不行, 要等新零件回来再验证.

如果买的设备不是一个成熟的型号, 就会出现各种问题, 需要自己来将问题定位, 将问题解决.
厂家远程判断不清楚问题的, 特别是, 机械部分已经出了问题. 这谁能想得到啊…

但是成熟型号不满足自己要求时, 能有一台定制型号满足自己需求, 已经很满意了. 细节问题自己搞.
如果是定制的设备, 细节问题挺多的, 因为自己就是小白鼠啊. 自己要求当小白鼠, 没招.

补充 - 2023/8/9

设备不能有强干扰源, 不能使设备主板信号控制和相机信号传送受到干扰.
我这设备以前出现的"camera - subject not found", 最后发现, 主要是设备中自带的真空泵有强强干扰.
用自己做的真空泵替换后(openpnp - 用空调压缩机改真空泵), 就没有"camera - subject not found"的问题了. 可以确定, 设备中有强干扰是"camera - subject not found"的主要原因.
但是我不确定是否本笔记说的是否也有次要影响.

END


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部