openpnp - configure - 矫正里程碑
文章目录
- openpnp - configure - 矫正里程碑
- 概述
- 备注
- END
openpnp - configure - 矫正里程碑
概述
进入矫正里程碑了
查找问题
现在第一个问题是X轴的齿隙矫正
根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正.
正好开机后, 使能了视觉原点归零. 现在正好主基准点在顶部相机中心.
点击接受, 开始矫正.
矫正失败, 说subject not found
看了一下, 好像基准点位置变了.
将主基准点和次基准点的位置重新学习了一次. 保存配置, 重新上电, openpnp重新运行, 重新归零.
再矫正, 还是失败.
最后发现, 是openpnp有bug, 不能开启视觉原点归位. openpnp - configure - FIDUCIAL-HOME no matches found
重新矫正 X轴的齿隙矫正, 这次成功了.
查找问题
现在进行Y齿隙矫正.
先将顶部相机十字线罩住主基准点(进行X齿隙矫正完成后, 顶部相机和主基准点已经不在一个位置了), 然后开始矫正.
矫正成功
查找问题
现在矫正相机到N1的偏移.
按照说明, 将一个测试圆片(3~6mm直径, 1mm厚度), 放到主校准点上. 然后用相机罩住放在主校准点上的原片, 并用绿圈框住, 然后开始矫正.
测试圆片的样子
将圆片放到住基准点上.
用顶部相机罩住圆片, 并用绿圈框住
点击接受, 开始矫正.
N1吸嘴会不断的将圆片吸起来再方向, 移动到其他位置, 再回来吸住圆片. 等待10秒钟左右, 矫正完成.
查找问题
现在矫正顶部相机到N2的偏移
先将测试圆片重新摆到主基准点中心.
将顶部相机罩住测试圆片, 且用绿圈框住, 开始矫正
出现报错, 说N2没装吸嘴.
现在建立一个吸嘴, 装到N2上. 请参阅 openpnp - configure - 安装新吸嘴
重新查找问题, 矫正顶部相机到N2的偏移
N2不断的吸住圆片, 然后移动到其他地方, 再回来重复操作, 等待10秒左右, 矫正完成.
将圆片收起来, 用不到了.
查找问题
现在矫正N1吸嘴座上的NT1吸嘴.
点击Center Nozzle, 将吸嘴放到底部相机中心
用绿圈框住吸嘴外径.
接受, 开始矫正.
矫正不是每次都成功, 有时会弹出报错框如下:
出现这种情况, 可以用如下的方法处理:
- 将吸嘴用镜头纸擦干净点, 使视觉识别效果更清晰.
- 绿框调整一下, 多框住一些吸嘴外径图像
- 多矫正几次, 直到不弹出报错框, 直到矫正成功.
- 调整底部相机视觉设置(这个我还没去实验)
如果不报错的话, 10秒左右矫正成功.
查找问题
居然NT1吸嘴的参数被动了, 去改成非0(e.g. 3)
查找问题, 此问题消失.
矫正NT1背景优化方法, 采用Brighness and Key-Color, 这种适用于绿吸嘴.
手工移动, 将NT1吸嘴放到底部相机十字中心.
点击接受, 开始矫正
报错了, 试了几次也过不了.
改为Brightness方法, 点击接受, 开始矫正.
这种也过不去, 只能去调整底部视觉了.
好像底部视觉只能是吸取了原件之后, 才能调整. 那只能将这个问题拒绝了.
再查找问题,居然这个问题消失了, 晕倒…
现在矫正NT2吸嘴
先用吸嘴对中功能, 将吸嘴NT2和底部相机大致对齐, 然后再手工调整, 精确的用底部相机十字罩住NT2吸嘴.
再看一眼设备, 是否NT2吸嘴在底部相机中间.
用绿框罩住NT2吸嘴外径, 点击接受, 开始校准.
吸嘴矫正失败, 有报错提示. 只能将这个问题先拒绝, 以后再解决.
查找问题
现在除了里程碑之外, 还有顶部相机和底部相机的高级矫正.
这2个问题要拒绝, 是毒药, 不能吃.
我试过顶部相机高级矫正 能矫正成功, 但是矫正完之后, 用顶部相机看电路板都看不清了, 那要这个高级相机矫正还有啥用?
估计不是每个相机都支持高级矫正.
查找问题
进入生产里程碑了.
备注
openpnp - configure - 索引贴
END
相关文章:

openpnp - configure - 矫正里程碑
文章目录openpnp - configure - 矫正里程碑概述备注ENDopenpnp - configure - 矫正里程碑 概述 进入矫正里程碑了 查找问题 现在第一个问题是X轴的齿隙矫正 根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正. 正好开机后, 使能了视觉原点归零. …...

JavaScript高级程序设计读书分享之8章——8.2创建对象
JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 创建Object的实例 let person new Object(); person.name "Nicholas"; person.age 29; person.job "Software Engineer"; person.sayName function() { console.log(this…...

关于Could not build wheels for opencv-python-headless, which is...报错的解决方案
在通过最新版pip在线安装package:opencv-python-headless的时候,会产生报错信息,主要为 ERROR: Failed building wheel for opencv-python-headless ERROR: Could not build wheels for opencv-python-headless, which is required to insta…...

【K3s】第1篇 K3s入门级介绍及架构详解
1、什么是 K3s? K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s 有以下增强功能: 打包为单个二进制文件。使用基于 sqlite3 的轻量级存储后端作为默认存储机制。同时支持使用 etcd3、MySQL 和 PostgreSQL 作…...
Java学习--反射
1. 反射 1.1 反射的概述: **专业的解释(了解一下):**是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法ÿ…...
应用和迭代(名词解释)
应用和迭代是什么意思 应用: ● 一个完整的前端应用,一般用应用脚手架创建,包含路由,页面,状态等 ● 一个应用对应一个代码仓库 ● 应用的分组(业务中心,数据中台等)只用于逻辑分类&…...

HTMLCollection 和 NodeList 区别
Node 和 Element DOM 是一棵树,所有节点都是 NodeNode 是 Element 的基类Element 是其他 HTML 元素的基类,如 HTMLDivElement HTMLCollection 和 NodeList HTMLCollection 是 Element 的集合NodeList 是 Node 的集合 <body><p id"p1&qu…...

fork()出来一个进程,这个进程的父进程是从哪来的?
基本概念fork() creates a new process by duplicating the calling process. The new process is referred to as the child process. The calling process is referred to as the parent process.fork()是一个系统调用,不是一个函数。详细信息可以,man…...

结构体内存对齐
结构体相信大家已经了解过了,现在我们深入讨论一个问题,计算结构体的大小 也是很热门的一个考点:结构体内存对齐 先看看下面结构体的大小 typedef struct Test {char a;char b;char c; }Test; 很容易看出答案为3,结构体的大小位…...

【C语言进阶】指针进阶
今日所做之事勿候明天,自我所做之事勿候他人。 --歌德 目录 指针进阶(更深层次的理解): 一.字符指针 二.指针数组 三.数组指针 1.数组指针的定义: 2.&数组名和数组名: 3.数组指针的使用: 四.数组参数,指针参数 1.一维数组传参:…...
java:Class的isPrimitive方法使用
java:Class的isPrimitive方法使用 1 前言 java中Class类的isPrimitive方法,用于检查类型是否为基本类型。java虚拟机创建了int、byte、short、long、float、double、boolean、char这8种基础信息,以及void,一共9种。为这9种类型时…...

TCP 握手过程 三次 四次
蛋老师视频 SYN 同步 ACK 确认 FIN 结束 核心机制是确定哪些请求或响应需要丢弃 SYN、ACK、FIN 通过 1/0 设置开启/关闭 开启SYN后,报文中会随机生成 Sequence序号 用于校验 (应用可能发起多个会话,可以区分) 服务器的同步序…...

windows 下 安裝mysql 5.7.41 (64位) 超简单方式
文章目录1. 安装包下载2.安装步骤3. 服务卸载方式4. 配上 my.ini 常用配置1. 安装包下载 注意,截至2023年2月23日,MySQL所有版本不提供ARM芯片架构的Windows版本(8.0.12开始支持Red Hat系统的ARM版本),所以ARM架构的Windows无法安装MySQL&am…...

二叉树——二叉树的最近公共祖先
二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一…...

数据结构与算法基础-学习-14-线性表之串
一、串的定义由0-n个字符组成的有限序列。(n>0)二、串的相关术语1、子串串中任意个连续字符组成的子序列成为该串的子串。2、主串包含子串的串成为主串。3、字符位置字符在序列中的序号为该字符在串中的位置。4、子串位置子串第一个字符在主串中的位置…...
Mac 快捷键
目录 命令行快捷键 命令行快捷键 control d 命令行中代表发送EOF终止输入 control u 删除光标之前到行首的字符 control k 删除光标之前到行尾的字符(比较常用) control a 移动光标到行首(常用) control e 移动光标到行尾 control l 清屏,相当于clear命令 con…...

【微服务】-微服务环境搭建
目录 2.1 技术选型 2.2 模块设计 2.3 微服务调用 2.4 创建⽗⼯程 2.5 创建商品微服务 2.6 创建订单微服务 2.1 技术选型 持久层: SpingData Jpa 数据库: MySQL5.7 其他: SpringCloud Alibaba 技术栈 2.2 模块设计 --- shop-parent ⽗⼯程 --- shop-product-api 商品微服…...

IGKBoard(imx6ull)-ADC编程MQ-2烟雾传感器采样
文章目录1- ADC介绍2- MQ-2烟雾传感器介绍(1)工作原理(2)MQ-2应用电路3- MQ-2烟雾传感器硬件连接4- ADC驱动配置5- 编程查看当前浓度1- ADC介绍 ADC是Analog-to-Digital Converter的缩写,指模数转换器。真实世界的模拟…...

前端二面vue面试题总结
什么是 mixin ? Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。然后将 mixin 的内容合并到组件中…...

时间API在更新,传奇已经谢幕,但技术永远不死
(Bill Joy(左一),Vinod Khosla(左二),Andy Bechtolsheim(右二),Scott McNealy(右一) ) CSDN 博文征集活动(和日期相关的代码和bug):点击这里 各位 “big guys”,这篇博文…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...

aurora与pcie的数据高速传输
设备:zynq7100; 开发环境:window; vivado版本:2021.1; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程,pc通过pcie传输给fpga,fpga再通过aur…...