首页 > 编程语言 >C#联合Visionpro编程学习记录,视觉中需要考虑旋转中心工况的计算方法探讨

C#联合Visionpro编程学习记录,视觉中需要考虑旋转中心工况的计算方法探讨

时间:2024-10-08 19:22:59浏览次数:9  
标签:拍照 C# Px Py Visionpro Ay 工况 Ax Bx

一、考虑旋转中心的工况解法,

1,视觉中引导定位或者对位贴合时,机械手或者xyzr轴上手爪中心和末端轴中心不同轴时,就要考虑旋转中心问题;

2,如果设备的CT要求没有很苛刻,可以采用2次拍照的方案解决,1次拍照后纠偏角度,然后在纠正角度后的位置2次拍照纠正x、y偏差;

 看下图:

第一次拍照得到红色当前拍照位和绿色模板位之间的角度偏差后,执行旋转,旋转到蓝色位置;

 

第二次再拍照计算蓝色位置和绿色模板位置之间的平移偏差量,再执行平移;

3,如果设备的CT要求很高,必须1次拍照完成整个纠偏,此时就要考虑采取先计算旋转后的点再计算平移量,还是先平移后旋转(这个方法复杂化了不建议使用,我看到有人用,但是可能把他理解错了,因为我个人觉得要先平移后旋转这个方法,需要再平移一次才行,会重点探讨);

看下图分析:

 

 

1,计算变得复杂起来,由上图可知从当前拍照位置回到模板位置的其差值x`、y`、θ`为:
x`=(Ax-Bx)+(Cx-Bx)
y`=(Ay-By)+(Cy-By)
θ`=Aθ-Bθ

2,假设角度差值(即上图的特定角度):θ`=Aθ-Bθ

3,由上图可得:
a=Ax-Bx;
b=Ay-By;

c=Cx-Bx;
d=Cy-By;


4,点P`的坐标可以求出:
P`x=Px+a;
P`y=Py+b;


5,点C的坐标可以由点A`绕新旋转中心点P`转θ`角度计算得出:

Cx=(A`x-P`x)*Cos(θ`)-(A`y-P`y)*Sin(θ`)+P`x;
Cy=(A`x-P`x)*Sin(θ`)+(A`y-P`y)*Cos(θ`)+P`y;
已知:
A`x=Ax+a=2Ax-Bx;
A`y=Ay+b=2Ay-By;
P`x=Px+a=Px+(Ax-Bx);
P`y=Py+b=Py+(Ay-By);
所以:
Cx=((2Ax-Bx)-(Px+(AX-Bx)))*Cos(θ`)-((2Ay-By)-(Py+(Ay-By))*Sin(θ`)+Px+(Ax-Bx);
Cy=((2Ax-Bx)-(Px+(AX-Bx)))*Sin(θ`)+((2Ay-By)-(Py+(Ay-By))*Cos(θ`)+Py+(Ay-By);


6,由以上可知把所有已知量带入1:
x`=(Ax-Bx)+(((2Ax-Bx)-(Px+(AX-Bx)))*Cos(Aθ-Bθ)-((2Ay-By)-(Py+(Ay-By))*Sin(Aθ-Bθ)+Px+(Ax-Bx)-Bx);
y`=(Ay-By)+(((2Ax-Bx)-(Px+(AX-Bx)))*Sin(Aθ-Bθ)+((2Ay-By)-(Py+(Ay-By))*Cos(Aθ-Bθ)+Py+(Ay-By)-By)

注意:以上仅仅作为一种解题思路呈现其步骤,结果是否正确仍需要实际验证。

 

标签:拍照,C#,Px,Py,Visionpro,Ay,工况,Ax,Bx
From: https://www.cnblogs.com/wwdwwd/p/18451237

相关文章

  • XYD1005CSPS
    T1传送门[最短路,二分答案]Description无向连通图,求出一个最小的\(x\),使得每两点之间存在一条路径可以划分成不超过\(k\)段路径,且每段路径长度不超过\(x\),只能从节点处切割,不能从边中间划分。\(n\le100\),无重边自环。Solution\(n\)非常小,又要考虑每两个点,自然想到全......
  • 【Azure Cloud Service】创建Azure云服务时遇见分配VM资源错误: VM(s) with the follo
    问题描述创建AzureCloudService资源,遇见资源操作完成时的终端预配状态为Failed的信息。创建失败,创建的错误日志截图如下: 详细的错误信息为:{"code":"DeploymentFailed","message":"Atleastoneresourcedeploymentoperationfailed.Pleaselistdeploymentoperati......
  • MT1301-MT1310 码题集 (c 语言详解)
    MT1301·1的补码c语言代码实现#include<stdio.h>intmain(){longn=0;longb=0;scanf("%ld",&n);inti=0;//while(b<n){b=b*16+0xf;}printf("%ld",b-n);return......
  • Deformable DETR改进|爆改模型|涨点|在骨干网络和可变形编码器间加入YOLOv10的PSA和SC
    一、文本介绍本文修改的模型是Deformable-DETR,在骨干网络和可变形编码器之间加入YOLOv10的PSA和SCDown模块。其中PSA是YOLOv10提出的一种高效的自注意力模块,为了避免注意力带来的巨额开销,本文将PSA应用于可变形编码器输入的最高层级特征图。SCConv是一种空间和通道解耦的卷积......
  • NSSCTF(PWN)10
    [HUBUCTF2022新生赛]singout这题是道签到题,直接nc但是catflag得不到flag我们可以用:1catflag2nl${IFS}f*3tacfla*>&24tacf\lag>&25tail./*6tac${IFS}f*7tac$IFS$9f*8tac./*用这些得到flag[LitCTF2023]狠狠的溢出涅~查看发现是64位文件这道......
  • NSSCTF(PWN)9
    [HDCTF2023]pwnner发现这是一个64位文件发现vuln双击进入我们发现第14行涉及栈溢出,且第7行告诉我们这里伪随机数种子是39,第11行这里涉及随机值判断我们运行写好的c语言,得到这个伪随机数发现这题有system和binsh找到他们exp:frompwnimport*context(os='linux',a......
  • 如何在VSCode上运行C/C++代码
    诸神缄默不语-个人CSDN博文目录我是Win10,其他系统仅供参考。文章目录1.下载所需插件2.安装编译器3.不借助编辑器的cpp代码执行3.建立VSCodecpp项目3.1c_cpp_properties.json3.2settings.json3.3tasks.json4.运行C++代码参考资料1.下载所需插件2.安装......
  • 综合靶场DC-3
    一、环境搭建:1、靶场描述DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于......
  • Codeforces Round 970 (Div. 3) D. Sakurako‘s Hobby
     链接cf_Sakurako‘sHobby大意:给一堆点和边,并给出点的颜色,输出每个点能遍历到几个黑点思路:1、这些点边里面有拓扑结构,也有环2、先处理拓扑排序的一些点,依次遍历无父节点的即可,之后就会剩下环3、有环的说明每个点都能去到环内任意一点,那么直接就记录一个sum,然后递归......
  • 选型4G-Cat.1模组Air780E,必须要说的注意事项!
    ​Air780E是合宙低功耗4G-Cat.1模组经典型号之一,累计出货数量2000万+,广泛应用于物联网各行业。在此,特别感谢各位大佬的信任与支持。写这篇文档的目的是什么呢?从用户的角度,解答大家对Air780E这款模组最关心的问题;不深入探究技术细节,更多从选型、应用等非技术维度展开。阅读本......