【工控基础】UVW平台踩坑

【工控基础】UVW平台踩坑本文介绍了 UVW 平台的旋转原理 如何以平台任意点为中心旋转 以及 C 代码实现平移和旋转的转换过程

大家好,欢迎来到IT知识分享网。

前言

本文不讲原理,旨在会用,不踩坑。

一、UVW平台介绍

invalid image(图片无法加载)

疑问: 如何理解可以以平台任意一点为中心进行旋转? 我们目前是以平台的旋转中心最为相机的原点坐标。

关于原理

invalid image(图片无法加载)

目前,我们使用的是旋转标定,这个方式找到的中心应该不是很准。

三、关于uvw的公式

那三个轴是如何进行旋转了的呢?可以看下图:

invalid image(图片无法加载)

1 每个轴按顺时针或逆时针走一个距离,就是旋转。
2 图中W动,U轴V轴不动,就是X方向的平移
3 图中U轴V轴同时动,X不动,就是Y方向的平移。

每个制造uvw平台的公式都会提供自己的公式,用来计算角度到uvw分量的计算。
1 平台的半径
invalid image(图片无法加载)

2 平台轴初始的三个角度

invalid image(图片无法加载)

这次用的平台提供的参数如下:
invalid image(图片无法加载)

公式如下:
在这里插入图片描述

上面的是用于计算角度的。下面是计算极限的,我们先关注角度这个部分。

1 角度的计算
这个无非是通过三角函数计算出角度到uvw的分量。但是我们对位的时候,一般都是平移+加上角度。
不过对应我们的uvw平台旋转也是通过平移实现的。
所以要实现平移+旋转。其实就是两个步骤。
1 通过三角函数计算出角度到uvw的分量
2 叠加平移分量和角度分量,其实就是相加。
这里,我直接给出C#代码实现:

/// <summary> /// XYR移动量转UVW移动量 /// </summary> /// <param name="MoveY">Y方向移动量</param> /// <param name="MoveX">X方向移动量</param> /// <param name="Rotatetion">旋转角度移动量</param> public void DataUVW(float MoveX, float MoveY, float Rotatetion) { 
    float R = GlobalData.Instance.saveInfo.R; float θx = GlobalData.Instance.saveInfo.X; float θy1 = GlobalData.Instance.saveInfo.Y1; float θy2 = GlobalData.Instance.saveInfo.Y2; Rotatetion *= -1; //double rad = Rotatetion * Math.PI / 180; //偏移补偿 MoveY += GlobalData.Instance.saveInfo.OffsetY; MoveX += GlobalData.Instance.saveInfo.OffsetX; GlobalData.Instance.U = -(float)(R * Math.Sin(Rotatetion + θx) - R * Math.Sin(θx)); GlobalData.Instance.V = (float)(R * Math.Cos(Rotatetion + θy1) - R * Math.Cos(θy1)); GlobalData.Instance.W = -(float)(R * Math.Cos(Rotatetion + θy2) - R * Math.Cos(θy2)); float tempX = -MoveX; float tempY1 = MoveY; float tempY2 = -MoveY; //角度补偿 GlobalData.Instance.U += GlobalData.Instance.saveInfo.OffsetA; GlobalData.Instance.V += GlobalData.Instance.saveInfo.OffsetA; GlobalData.Instance.W += GlobalData.Instance.saveInfo.OffsetA; //角度和平移的叠加 GlobalData.Instance.U += tempX; GlobalData.Instance.V += tempY1; GlobalData.Instance.W += tempY2; } 

踩坑记录

invalid image(图片无法加载)

3 要根据电机实际的运动方向适当的添加正负号。

invalid image(图片无法加载)

特别是角度和平移叠加的时候,方向要一致!

额外的记录

为啥正转一度和反转一度,通过计算的得到的平移的距离的绝对值不相同?

invalid image(图片无法加载)

invalid image(图片无法加载)

暂不明白,大概意思是,旋转的中心不是平台的正中心导致的。所以正转一度和反转一度平移的距离的绝对值不相同。

参考文章:

https://blog.csdn.net/weixin_/article/details/

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150799.html

(0)
上一篇 2025-03-16 22:15
下一篇 2025-03-16 22:25

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信