openpnp - 底部相机高级校正的参数设置
文章目录
- openpnp - 底部相机高级校正的参数设置
- 概述
- 笔记
- 修改 “Radial Lines Per Calibration Z” 的方法
- 不同 “Radial Lines Per Calibration Z”的校验结果
- 不同 “Radial Lines Per Calibration Z”的设备校验动作的比较
- 总结
- 备注
- END
openpnp - 底部相机高级校正的参数设置
概述
将X轴丝杠的平行度调整了(openpnp - 丝杠安装调整的总结).
这次X轴的调整后的平行度(X轴丝杠和轴导轨),用起来丝滑,从左到右,力道一致,洁癖患者表示满意和开心。
因为设备的机械部分被动了,所以设备必须重新标定。
我用的自己修改的版本(主要是修改了西门子飞达的通讯超时问题(openpnp - SlotSchultzFeeder source code bugfix))
走到最后一步,进行底部相机高级校正,过不去。
主要是如下参数设置的不合适,主要影响校验是否能通过的参数为"Radial Lines Per Calibration Z(Z方向校验时的径向线数量)"
“Radial Lines Per Calibration Z” 默认是32.
当相机是官方推荐的100W的摄像头时,这个值为32是没问题的。openpnp的研发估计也是按照默认值来测试的.
当摄像头是更高像素时(e.g. 我现在用的是1600W像素/2320x1744/30FPS/MJPG的摄像头),这个参数为32就无法通过底部相机高级校验。
当“Radial Lines Per Calibration Z” 默认是32,报错提示说,校验结果重合度比预期值差的太多,需要将 “Radial Lines Per Calibration Z” 的值设置的更大些再试试。具体要设置大到哪里,提示中没说。
笔记
修改 “Radial Lines Per Calibration Z” 的方法
找到底部相机参数页
切到高级校正页
先勾选第一行的 "Enable"复选框,这样,下面的“Radial Lines Per Calibration Z”就可以改了。
改好“Radial Lines Per Calibration Z”值后,再去掉第一行的"enable"的勾,这样就可以进行底部相机高级校正了。
底部相机高级叫正时的值,就按照我们填写的值来。
不同 “Radial Lines Per Calibration Z”的校验结果
尝试将 “Radial Lines Per Calibration Z” 改为64,报错,提示为"扭曲度太大,请将扭曲度清0".
我去,这咋清除? 我只是openpnp的用户啊…
尝试将“Radial Lines Per Calibration Z” 改为16,报错,提示为"坐标不可达",一看那个坐标,120xxmm, 早已经不在设备的可用坐标内。
“Radial Lines Per Calibration Z”根据提示,肯定要改大的,改成64就太大了。
观察了一下“Radial Lines Per Calibration Z”的默认值32,这是8的倍数啊。
那尝试将默认值加个8,改为40试试。
试了一下, OK.
不同 “Radial Lines Per Calibration Z”的设备校验动作的比较
底部相机高级校验原理 - 通过在底部相机可视范围内,移动NT1,NT2, 得到Z轴和NT1,NT2的垂直度补偿。
如果底部相机高级校验时的分步动作导致NT1,NT2都不在底部相机可视范围内,这动作就失去了效果。
“Radial Lines Per Calibration Z”的默认值32,NT1,NT2的移动,大部分都在底部相机的可视范围内,有少许操作移动后,不在底部相机视野内。
“Radial Lines Per Calibration Z”的值 = 64,NT1,NT2的移动,全部都在底部相机的可视范围内,明显NT1,NT2的校验移动范围很小。
“Radial Lines Per Calibration Z”的值 = 16,NT1,NT2的移动,大部分都不在底部相机的可视范围内,明显NT1,NT2的校验移动范围超大,大部分操作都无法得到底部相机中的NT1,NT2移动后的图像(这明显是校验操作无效了)。
“Radial Lines Per Calibration Z”的值 = 40,NT1,NT2的移动,全部都在底部相机的可视范围内,且NT1,NT2的校验移动范围比较大。
总结
“Radial Lines Per Calibration Z”是用来控制NT1,NT2在底部相机视野中移动范围大小的值。
要选择一个合适的“Radial Lines Per Calibration Z”值,使NT1,NT2的校验活动范围在底部相机视野内,又能使NT1,NT2有效移动范围最大。
这样才能产生底部相机高级校正需要的有效数据。
“Radial Lines Per Calibration Z”的合适值和底部相机的像素有关,要根据自己采用的摄像头的像素值来选择。
如果“Radial Lines Per Calibration Z”默认的32不能通过底部相机高级校正,那就需要自己改“Radial Lines Per Calibration Z”到一个合适值。
如果底部相机像素低(e.g. 100W, 200W),“Radial Lines Per Calibration Z”的值就加的少一点。
如果底部相机像素高(e.g. 800W, 1600W),“Radial Lines Per Calibration Z”的值就加的多一点。
每次调整的值别太大,不要超过8. 如果校验通不过,再尝试调整一个新值。
但是底部相机高级校正的时间是真的长,只能干等着,真是熬人…
如果自己设备通过了校验,最好将“Radial Lines Per Calibration Z”记录备份下来,谁能保证这台设备不需要下一次标定呢?
大家一般都是openpnp的用户,很少有同学去用代码单步调试吧? 作为程序员的我们都知道,如果自己不是设计者,目标工程中的很多知识点和设计思路缺失,不好弄啊,有点改不动(即使只是想看看问题的原因,大概率也找不出来,如果想找出来,需要投入时间,达到作者在目标工程中表现出的水平才行。主要是看有没有刚需,如果有刚需,那就当自己是openpnp的研发,按部就班的按照计划搞就行)。
so 一般情况下,只能通过实验来猜测一些怪里怪气的问题背后的原因, 只要肯实验和肯思考,一般都能解决这种软件的使用性问题。
备注
"底部相机高级矫正"感觉有bug.
虽然通过了底部相机高级矫正,但是归零后,自动归零和吸嘴校验(NT1, NT2)大概率会失败。
如果重新做底部相机和NT1的偏移设置,就要取消掉“底不相机高级矫正”的使能, 那"底部相机高级矫正"不白忙活了么?
且重新做底部相机和NT1的偏移设置,因为不在对应的设置阶段,好像不咋对啊。
好多同学标定设备时,都不做底部相机高级矫正,直接相信自己设备机械安装精度符合要求,挺无奈的。
设备标定过程中的每个进化阶段,我对.openpnp2目录都做了备份。
琢磨了一会,算了,我贴板子的openpnp配置版本,也不做底部相机高级矫正了,得不偿失。
好像底部相机高级矫正后,很多参数都不对了。
END
相关文章:

openpnp - 底部相机高级校正的参数设置
文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …...

劳动与科技、艺术结合更好提高劳动教育意义
在中小学教育中,劳动教育是培养学生基本生活技能和劳动习惯的重要环节。但当代的劳动教育不在单纯的劳动,而是劳动技能的提升与学习,通过学习劳动技能与实践活动,强化劳动教育与其他课程的融合,学生深刻理解劳动的意义…...

基于Hive和Hadoop的招聘分析系统
本项目是一个基于大数据技术的招聘分析系统,旨在为用户提供全面的招聘信息和深入的职位市场分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark 为核…...

目标检测评价指标
混淆矩阵(Confusion Matrix) 准确率(accuracy) 准确率:预测正确的样本数 / 样本数总数 (正对角线 / 所有) 精度(precision) 精度:预测正确里面有多少确实是…...

解决VRM格式模型在Unity中运行出现头发乱飞等问题
1、问题 通过VRoidStudio制作导出的vrm格式的模型,放在unity中使用时,一运行就会出现头发乱飞,没有自然下垂的问题 2、解决方法 将模型下的secondary中的所有VRM Spring Bone脚本中的Drag Force改为1,Hit Radius改为0 修改后…...

消息中间件---初识(Kafka、RocketMQ、RabbitMQ、ActiveMQ、Redis)
1. 简介 消息中间件是一种支撑性软件系统,它在网络环境中为应用系统提供同步或异步、可靠的消息传输。消息中间件利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。它支持多种通信协议和数据格式,…...

MySQL高阶2010-职员招聘人数2
目录 题目 准备数据 分析数据 总结 题目 一家公司想雇佣新员工。公司的工资预算是 $70000 。公司的招聘标准是: 继续雇佣薪水最低的高级职员,直到你不能再雇佣更多的高级职员。用剩下的预算雇佣薪水最低的初级职员。继续以最低的工资雇佣初级职员&…...

【Java】—— 集合框架:Collection接口中的方法与迭代器(Iterator)
目录 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 1.3 Java集合框架体系 1.4 集合的使用场景 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 1. 集…...

华证ESG工具变量(2009-2022年)
华证ESG工具变量包括以下十个关键指标: 同年份同行业的ESG均值(mean1):在同一年份和相同行业中,所有企业的ESG表现平均值。 同年份同省份的ESG均值(mean2):在同一年份和相同省份中&…...

Linux date命令(用于显示和设置系统的日期和时间,不仅可以显示时间,还能进行复杂的时间计算和格式化)
文章目录 深入探讨 Linux Date 命令1. Date 命令详细功能解析1.1 命令概述1.2 命令语法 2. 时间显示与格式化2.1 标准时间输出2.2 自定义格式输出 3. 设置系统日期和时间3.1 基本用法3.2 注意事项 4. 实用示例与脚本应用4.1 生成时间戳秒级时间戳毫秒时间戳 4.2 时间戳转换4.3 …...

高中教辅汇总【35GB】
文章目录 一、资源概览二、资源亮点三、获取方式 一、资源概览 这份教辅资源汇总,精心搜集了高中各学科的海量教辅资料,总容量高达35GB,覆盖了语文、数学、英语、物理、化学、生物、历史、地理、政治等所有必修及选修科目。从基础知识点到难…...

树莓派 AI 摄像头(Raspberry Pi AI Camera)教程
系列文章目录 前言 人们使用 Raspberry Pi 产品构建人工智能项目的时间几乎与我们生产 Raspberry Pi 的时间一样长。随着我们发布功能越来越强大的设备,我们能够支持的原生应用范围也在不断扩大;但无论哪一代产品,总会有一些工作负载需要外部…...
SpringBoot实现的师生健康信息管理平台
第1章 绪论 1.1背景及意义 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对医院管理方面的要求也在不断提高,由于老龄化人数更是不断增加,使得师生健康信息管理系统的开发成为必需而且紧…...

启用vnc访问Dell 服务器IDRAC 7虚拟控制台
Dell IDRAC 7 版本太老,SSL证书过期,IDRAC的Java和本地远程虚拟机控制台访问不了,怎么办? 可以启用vnc访问IDRAC 虚拟控制台...

分布式数据库知识详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

无人化焦炉四大车系统 武汉正向科技 工业机车无人远程控制系统
焦炉四大车无人化系统介绍 采用格雷母线光编码尺双冗余定位技术,炉门视觉定位自学习技术,wifi5G无线通讯技术,激光雷达安全识别技术,焦化智慧调度,手机APP监控功能。 焦炉四大车无人化系统功能 该系统能自动生成生产…...

【Linux】几种常见配置文件介绍
配置文件目录 linux 系统中有很多配置文件目录 /etc/systemd/system /lib/systemd/system /usr/lib/systemd/system 【结果就是这个目录配置文件是源头】 这三者有什么样的关系呢? 以下是网络上找的资料汇总,并加了一些操作验证。方便后期使用 介…...

【2024最新】华为HCIE认证考试流程
HCIE是华为认证体系中最高级别的ICT技术认证,表示通过认证的人具有ICT领域专业知识和丰富实践经验。 HCIE认证方向:最高认证级别HCIE的技术方向有13个 下面以HCIE-Datacom为例给大家介绍一下: HCIE-Datacom认证考试流程: 1.笔试…...

Golang | Leetcode Golang题解之第453题最小操作次数使数组元素相等
题目: 题解: func minMoves(nums []int) (ans int) {min : nums[0]for _, num : range nums[1:] {if num < min {min num}}for _, num : range nums {ans num - min}return }...
想知道为什么有DICOM格式,YAML格式,XML格式,JSON格式吗?
1 因为是为了代码和数据的可移植性 我们都知道,现在的操作系统有很大概两种,Win派,UNIX派(Mac,Linux和Arm),如果您在不同的机器之间交换二进制文件,二进制数据会被当作垃圾读取&…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...