openpnp - 底部相机高级校正的参数设置

news2024/10/2 0:14:01

文章目录

    • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2183429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G NR物理信道简介

文章目录 NR 上行物理信道PRACHPUCCHPUSCH NR 下行物理信道PBCHPDCCHPDSCH NR 上行物理信道 PRACH PRACH(Physical Random Access Channel)物理随机接入信道,用于传导preamble 序列。PRACH 由循环前缀CP、前导序列和保护间隔三部分组成。 PUCCH PUCCH…

相互作用的检索增强 3D 分子生成扩散模型 - IRDiff 评测

IRDiff 是一个全新的基于蛋白质-配体相互作用的检索增强 3D 分子扩散模型,可以生成目标感知的分子。IRDiff 利用一组设计好的参考配体分子来引导扩散模型生成满足目标特性的分子。 一、背景介绍 IRDiff 来源于清华大学深圳国际研究生院的杨文明教授和鹏城实验室的王…

通信工程学习:什么是POP3邮局协议版本3

POP3:邮局协议版本3 POP3(Post Office Protocol - Version 3),即邮局协议版本3,是TCP/IP协议族中的一员,由RFC1939定义。它是一种用于电子邮件接收的协议,主要规定了个人计算机如何连接到互联网…

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》 一、结果演示二、图像预处理三、基于轮廓比对的缺陷检测3.1 计算平移分量3.2 计算旋转角度3.3 缺陷检测3.4 缺陷绘制四、源码测试图像下载总结一、结果演示 二、图像预处理 本文主要是基于轮廓匹配进行缺陷识别,最主…

STM32F103C8T6的平衡小车设计(基于FreeRTOS框架)

github主页:https://github.com/snqx-lqh gitee主页:https://gitee.com/snqx-lqh 本项目github地址:https://github.com/snqx-lqh/Stm32BalanceCar 本项目gitee地址:https://gitee.com/snqx-lqh/stm32-balance-car 欢迎交流 项目介…

leetcode:380. O(1) 时间插入、删除和获取随机元素

实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时&#xff0…

开发者在AIGC浪潮中的定位与策略

人工智能时代,程序员如何保持核心竞争力? 随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工…

Python FFmpeg 安装使用教程

文章目录 什么是 FFmpeg?主要功能包括: Windows 下载安装下载解压安装配置环境变量 使用案例使用 ffmpeg-python 库转换视频格式视频剪辑添加字幕 使用 subprocess.run 执行视频格式转换 其它问题ffmpeg 不是内部或外部命令,也不是可运行的程序 个人简介…

【深度学习】反向传播-过程举例

深度学习中,一般的参数更新方式都是梯度下降法,在使用梯度下降法时,涉及到梯度反向传播的过程,那么在反向传播过程中梯度到底是怎么传递的?结合自己最近的一点理解,下面举个例子简单说明! 一、…

47.哀家要长脑子了!

1.738. 单调递增的数字 - 力扣(LeetCode) 贪心不知道怎么贪。。。每个为选择最大的,如果前一位比后一位大,就要把前一位减去1,因为要最大的嘛,一点点减,然后剩下的都变为9,因为要最大…

CSS轮廓

轮廓(outline)是绘制于元素周围的一条线,位于边框的外围(紧贴着边框),主要用来突出显示某个元素,如下图所示: 图:轮廓(outline) 轮廓和边框看起来…

【网络篇】计算机网络基础知识详述(1)(笔记)

目录 一、因特网基础认识 1. 初识因特网 2. 网络服务 3. 网络协议 4. 网络边缘 5. 物理链路 (1)双绞铜线 (2)同轴电缆 (3)光纤 6. 网络的网络(因特网) 二、网络核心 1. …

Linux Shell编程快速入门以及案例(Linux一键批量启动、停止、重启Jar包Shell脚本)

文章目录 1,shell核心概念1. 1,变量1. 2. 引号1. 3. 循环1. 4. 条件判断1. 5. 函数1. 6. 重定向1. 7. 管道1. 8. 通配符 2,案例 本文通过介绍Linux Shell编程中最重要的十个核心概念,帮助初学者快速入门。 1,shell核心…

事业单位2024最新资料大全(均已更新)

为了帮助广大考生更加高效、精准地备考,我们特别推出了2024事业单位考试最新资料大全,这份资料已全面更新,确保与最新考试大纲和趋势同步,是你备考路上的得力助手! 文章目录 一、资料亮点二、为何选择我们?…

Sqlserver 连接 chche 数据库详细步骤

zihao 第一步,安装ODBC驱动 在windows资源管理器里粘贴以下地址,会进入到驱动文件夹 ftp://ftp.intersystems.com/pub/cache/odbc/2018/ 第二步,添加ODBC 安装后,可能需要重启。然后打开控制面板,搜素ODBC&#xf…

波动方程(将麦克斯韦方程组求出只有E或H的表达式)

都在无源线性介质下求解波动方程,且复数形式的波动方程有两种解法,我们用4方法求解复数形式波动方程 电场强度E满足的波动方程: 先写出线性介质的麦克斯韦方程组 2、根据麦克斯韦方程组,获得只有E的表达式 3、再根据场的复数表示…

国外电商系统开发-需求记录

一、客户需求 1、商城后台需要添加产品、添加一级代理商; 2、一级代理商可以添加二级代理商,二级代理商需要添加店铺; 3、店铺需要购买产品(进货)、店铺也可以推广给用户(用户在用户APP里最近店铺下单、购买产品); 4、需要对接当地…

简单的微信小程序个人 个人详情页

一、示例 1.个人页面 2.个人详情页面 二、示例代码 1.wxml页面 <!--pages/user/user.wxml--> <view class"mine-wrapper"><view class"avatar-wrapper"><view><view class"avatar"><image style"borde…

沂机管理系统/data/Ajax.aspx接口存在SQL注入漏洞

漏洞描述 沂机管理系统/data/Ajax.aspx接口存在SQL注入漏洞&#xff0c;攻击者可以获取服务器权限 漏洞复现 body"后台管理系统演示版" POC GET /data/Ajax.aspx?methodlog_list&page1&limit20&fkey1&fdate12024-10-0100%3A00%3A00&fdate2…

算法课习题汇总(3)

循环日程表 设有N个选手进行循环比赛&#xff0c;其中N2M&#xff0c;要求每名选手要与其他N−1名选手都赛一次&#xff0c;每名选手每天比赛一次&#xff0c;循环赛共进行N−1天&#xff0c;要求每天没有选手轮空。 例如4个人进行比赛&#xff1a; 思路&#xff1a; 把表格…