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

news/2024/10/8 19:25:58

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

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)

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

 

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

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

相关文章

海外模组联网非常难?不往忘了APN配置…

​除了中国之外,国外的4G信号都比较差劲。 做海外的设备,如果忽视了射频的信号质量,肯定是要吃大亏的! 所以,海外模组的联网问题,会比国内要多不少。 客户在实际应用中或多或少都会遇到:网络相关问题:例如:连不上网,APN不会配置,APN没有配置,当地信号差… 软件升级…

轻松上云怎么操作?IoT_CLOUD之中移OneNET

​最近来了很多新朋友,也经常被问:可以多讲些云平台的操作吗?当然可以!文末留言你想要了解的云平台,优先安排~ 接下来,本文将以Air780E+LuatOS作为示例,教你使用合宙IoT_CLOUD连接中移OneNET物联网云平台。一、IoT_CLOUD简1.1 IoT_CLOUD特色简介 IoT_CLOUD——是合宙专门…

实验2 C语言分支与循环基础应用编程-1

任务一#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 #define N1 397 #define N2 476 #define N3 21int main() {int cnt;int random_major, random_no;srand(time(NULL)); // 以当前系统时间作为随机种子cnt = 0;while(cnt &…

面试-前端基础速刷-Vue

1. Vue中computed和watch的区别 两者用途不同啊!computed用于计算产生新的数据,watch用于监听现有数据。 computed有缓存,methods没有缓存。 computed有点儿像工厂模式(产生新的东西),watch像发布订阅模式。(是我目前的知识盲区) 2. Vue组件通讯有几种方式,尽量全面❗…

宝塔平替:1Panel-新一代的 Linux 服务器运维管理面板(附优惠码/推荐码)

什么是1Panel 1Panel是一款开源,现代化的新一代的 Linux 服务器运维管理面板!1Panel可以帮你实现的功能: 高效管理:用户可以通过 Web 图形界面轻松管理 Linux 服务器,实现主机监控、文件管理、数据库管理、容器管理等功能; 快速建站:深度集成开源建站软件 WordPress 和 …

大模型应用开发初探 : 基于Coze创建Agent

Coze(扣子)是字节跳动公司开发的新一代AI应用开发平台,使用这个AI应用开发平台,无论你是否有编码基础,都可以快速搭建基于大语言模型的各类AI Bot,还可以将Bot发布到其他渠道。对于一个AI Agent而言,最重要的能力就是任务规划、调用工具、知识库 和 记忆能力,而这些能力…

了解final关键字在Java并发编程领域的作用吗?

在Java并发编程领域,final关键字扮演着一个至关重要的角色。虽然很多同学熟悉final用于修饰变量、方法和类的基本用法,但其在并发环境中的应用和原理却常常被忽视。final关键字不仅仅是一个简单的修饰符,它在多线程编程中确保对象状态的可见性和不变性,这对于构建线程安全的…

20222325 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容缓冲区溢出基本知识:堆栈、函数调用。 shellcode技术以及其在各平台的运用与防御。 BOF攻击防御技术。2.实验目标 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含…