openpnp - 设备矫正的零碎记录

2023-12-17 10:59

本文主要是介绍openpnp - 设备矫正的零碎记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • openpnp - 设备矫正的零碎记录
    • 概述
    • 笔记
    • 设备内部不能有任何强干扰源
    • 相机就选100W像素的就行, 没有特殊要求
    • openpnp软件的选择
    • 视觉归位必须禁止
    • 轴的赤隙矫正不用做
    • 运行openpnp软件的计算机, 必须是台式机
    • 校验完成后, 数据占用的体积
    • 吸嘴校验时是采用外壁还是内壁?
    • 为了抓取元件时框住外形准确, 还是暂时使用2022/8/1的开发版
    • 框住元件外形时的尺寸精度选择
    • 校验时,最好上503的吸嘴
    • 底部相机高级矫正后相机十字线太密的问题
    • 昨天一天时间, 底部相机高级矫正都过不去. 今天从头做了一次设备标定, 就全部通过了. 总结一下区别, 下次如果要重新标定设备, 就这么做.
    • END

openpnp - 设备矫正的零碎记录

概述

设备矫正终于正常通过了…
从头进行多次设备校验, 都能一次性校验通过, 重复性很好.
补充一些矫正过程中的细节.

同学说我是过度矫正, 太不负责任了, 听的我浑身难受. 同学做的任何事情, 都是抱着凑合的态度来做事, 这对自己和别人都不好啊. 这样做事, 口碑都没了.
这次定制的设备, 主干是好的(丝杠, 伺服, 机械强度, 结构设计), 我确实很感谢.
细节的问题, 一定是有的(非标设备, 又是改型的第一台, 不可能细节都到位), 这是正常的, 大家都能理解. 对于细节问题, 大家一起来当作自己的事情来解决, 出主意, 想办法, 这才是正道啊.

设备自带的顶部相机高级矫正和底部相机高级矫正, 是用来矫正相机安装的垂直度补偿的(谁能保证机械部分安装是完全垂直的?), 如果矫正通不过, 那贴片精度根本就无从谈起.

用了4个月, 终于让设备到达了一个出厂设备应该有的正常状态, 味道有点苦.

笔记

设备内部不能有任何强干扰源

我的设备里面安装的真空泵, 是个强干扰源. 是设备矫正过程中的数据受到了干扰. 设备矫正过程时间很长, 真空泵启动的次数很多, 保不准就干扰到啥, 导致无法走完设备校验流程. 即使侥幸走完设备校验流程, 等正常贴片流程时, 还会有干扰.

后来拆掉了设备自带的真空泵, 用冰箱压缩机改了一个真空泵(openpnp - 用空调压缩机改真空泵), 消除了干扰源.

自己做的这个真空泵是否对贴片操作有干扰, 有待观察. 初步看, 是没有影响的.

相机就选100W像素的就行, 没有特殊要求

官方推荐, 就使用100W像素的彩色相机. 这种相机价格不到100RMB.
只要设备没有强干扰, 对相机的垂直度安装, 也没有特别高的要求. 肉眼可见的垂直就行. 有条件时, 可以拿三角尺大概齐看一下.

相机设置时, 去掉自动选项(e.g. 自动曝光, 自动白平衡)

openpnp软件的选择

官方最新的OpenPnP-windows-x64-develop_2023-03-15_00-30-21.460d8aa.exe, 有bug. 底部相机高级矫正完成后, 底部相机标尺分的太细了(密密麻麻的, 像毛毛虫一样). 导致将N1移动到底部相机上, 无论如何缩放, 都看不到正常图像.

我用的是官方的OpenPnP-windows-x64-develop_2022-08-01_18-07-09.2a36a8d.exe, 这个稳定版好使.
但是操作流程上, 需要注意, 必须将当前步骤需要的前置操作先用UI配置完, 否则会导致软件崩溃. (e.g. 矫正N2和相机的偏移时, 必须先设置N2的换刀区, 然后将N2吸嘴载入, 然后才去执行 N2和相机的偏移的矫正)

视觉归位必须禁止

如果使能了视觉归位, 再移动到主基准点, 次基准点时, 位置就偏差了不少. 再重新设置主/次基准点位置, 视觉归位后, 再移动到主/次基准点, 位置还是偏的.

不使能视觉归位, 一切都是正常的.
同学也跟我说, 不要使能视觉归位, 原因他没说.

轴的赤隙矫正不用做

这个点同学说的对, 对于丝杠设备, 齿隙矫正是不必要的.

我的设备X/Y轴是丝杠, 精度由伺服和丝杠来保证. 不用做齿隙矫正
Z轴是步进电机+皮带传动, 但是行程短(+/-20mm), 不用做齿隙矫正.
C1, C2是旋转轴, 也不用做齿隙矫正.

运行openpnp软件的计算机, 必须是台式机

应该和USB口的供电和通讯速率有关系. 应该独立的USB口更好.
笔记本上的独立的USB口不够用(一般就是2,3个, 还要插入鼠标).
台式机上的独立USB口够用, 至少能用4~8个.

如果使用笔记本+USB扩展坞(冰沙主板, 顶部相机, 底部相机), 不好. 发现顶部相机的图像, 过10秒钟, 就会闪一下, 图像不是一个连续完整的图像. 这个不连续, 不是受干扰引起的, 看起来更像通讯带宽不够引起的.
据我的经验, 如果发现有不正常的情况, 就要停下来, 将问题解决掉. 否则不知道会带来啥新问题.

当使用台式机时, 插入设备的3条USB线, 使用OpenPnP-windows-x64-develop_2022-08-01_18-07-09.2a36a8d.exe, 可以正常将校验流程走完. 最后一步是底部相机高级矫正, 当底部相机高级矫正完成后, 看底部相机标尺的分隔, 是正常的分隔(而不是密密麻麻的标尺分隔), 将N1移动到底部相机下, 可以看到正常图像. 缩放底部相机图像, 图像的缩放层级比矫正前多很多.

校验完成后, 数据占用的体积

一次性校验通过, .openpnp2目录体积约为400MB. 备份好.
以后可以观察正常贴片后, 多出哪些可以删除的文件.

吸嘴校验时是采用外壁还是内壁?

听同学说, 如果采用吸嘴外壁虽然也能校验过去. 但是对精度有影响.
还是用吸嘴内壁面积作为吸嘴校验的基准圆.
如果吸嘴内壁粘了东西, 导致内壁不是一个完整的圆形, 用3D打印机专用的吸嘴清理针将内壁清理干净.

为了抓取元件时框住外形准确, 还是暂时使用2022/8/1的开发版

在这里插入图片描述
2023/8/11的测试版, 框住元件外形时, 滑动条(阈值, 细节尺寸)拉大最右边才能正确框住元件, 如果出现元件抓偏的情况, 就没法再调节滑动条了, 导致无法准确框住元件.

但是2022/8/1的开发版要好很多, 正常情况下, 滑动条调节到中部偏右, 就能准确框住元件. 如果抓偏了, 还有调节的余地.

框住元件外形时的尺寸精度选择

默认是20%, 但是不能太大. 如果太大了, 就会使吸嘴上无元件时, 导致误判.
我这设备, size精度改为33%, 可以正确应对有吸嘴有元件和无元件的情况.

校验时,最好上503的吸嘴

校验用的陶瓷圆片如果尺寸比较大(e.g. 6mm直径),有可能502有时吸取不起来。这时, 因为标定还没完,也不敢换吸嘴。
所以, 校验时, 如果是双头的设备, 最好N1/N2都先上503的吸嘴。
或者,如果能买到直径3mm, 直径4mm的陶瓷圆片,可以用502吸嘴来标定设备。

底部相机高级矫正后相机十字线太密的问题

现在oenpnp不管哪个版本, 在底部相机高级矫正后, 都有可能出现底部相机十字倍率太高的问题.
这时, 将N1移动到底部相机中心内, 无论如何缩放, 都看不清N1的吸嘴.
这说明校验的不合适(也不是失败, openpnp显示校验成功了).

此时, 需要重新进行底部相机高级矫正.
先去设备配置树中, 底部相机最右边的配置. 将应用底部相机高级矫正的勾先去掉.
然后在openpnp中, 用按钮关闭设备.
关掉openpnp
打开openpnp, 归零.
然后再进行底部相机高级矫正, 从点了开始矫正的按钮后, 就千万别在操作了, 将鼠标和键盘就拿的远远的, 让openpnp自动校验.

最后校验成功的效果是, 底部相机十字缩放, 可以正常看到N1的吸嘴.

如果校验失败, 看看是不是N1的吸嘴被东西堵住了一部分, 不是圆形引起的.
用3D打印机通孔针将吸嘴清一下. 502吸嘴用0.35mm的针能正好通开.

昨天一天时间, 底部相机高级矫正都过不去. 今天从头做了一次设备标定, 就全部通过了. 总结一下区别, 下次如果要重新标定设备, 就这么做.

openpnp版本为2022/8/1

我是在上午至中午来做设备标定的, 光线比较好.

吸嘴N1装503, 吸嘴N2装502

设置N1/N2安全高度时, 直接Z轴归零, 然后设置归零高度为N1/N2的安全高度.

按照向导提示去做, 不多做超前的设置. 只有这步需要设置的参数才去设置.

相机窗口为H自动布局, 上面是顶部相机, 下面是底部相机. 图像都缩放到最大, 就不再动相机缩放比例. 就按照这个相机缩放来做所有的标定操作.

在需要目标识别的步骤时, 优先采用openpnp自己识别出来的对象绿圈, 不自己调整. 除非自动识别的不对, 才自己用绿圈手工圈目标.

在标定吸嘴和主/次校准点的偏移时, 要用到测试目标(陶瓷圆片, 官方对圆片没有特殊要求, 我这里采用4mm圆片, 厚度1mm, 要单独实验一下, 是否N1/N2上装的吸嘴都能将这个陶瓷圆片吸取到吸嘴尖端. 我实验的结果, 如果是6mm直径的圆片, 502就吸取不上来)

底部相机初次矫正时, 要选取503吸嘴尖端的内壁! (关键点 : 503吸嘴, 吸嘴尖端内壁)

底部相机高级矫正时, 时间比较长, 点击接受后, 任务开始, 然后将鼠标和键盘都拿的远远的.
底部相机高级矫正成功的判断: * openpnp不报错 * 操作完成后, 可以用肉眼看清吸嘴尖端(标定前后, 肉眼观察N1吸嘴, 视觉效果是差不多才对), 如果标定完成后, 底部相机十字太密了, 怎么缩放都看不清吸嘴, 这时就是底部相机高级矫正失败了(虽然openpnp没有报错提示)

因为openpnp软件有bug, 所以不是每次设备标定都能成功. 设备标定完成后, 做个备份. 以后都可以在干净的配置备份上干活.

END

这篇关于openpnp - 设备矫正的零碎记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504132

相关文章

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python