大家好,欢迎来到IT知识分享网。
前言
本文不讲原理,旨在会用,不踩坑。
一、UVW平台介绍
疑问: 如何理解可以以平台任意一点为中心进行旋转? 我们目前是以平台的旋转中心最为相机的原点坐标。
关于原理
目前,我们使用的是旋转标定,这个方式找到的中心应该不是很准。
三、关于uvw的公式
那三个轴是如何进行旋转了的呢?可以看下图:
1 每个轴按顺时针或逆时针走一个距离,就是旋转。
2 图中W动,U轴V轴不动,就是X方向的平移
3 图中U轴V轴同时动,X不动,就是Y方向的平移。
每个制造uvw平台的公式都会提供自己的公式,用来计算角度到uvw分量的计算。
1 平台的半径
2 平台轴初始的三个角度
这次用的平台提供的参数如下:
公式如下:
上面的是用于计算角度的。下面是计算极限的,我们先关注角度这个部分。
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; }
踩坑记录
3 要根据电机实际的运动方向适当的添加正负号。
特别是角度和平移叠加的时候,方向要一致!
额外的记录
为啥正转一度和反转一度,通过计算的得到的平移的距离的绝对值不相同?
暂不明白,大概意思是,旋转的中心不是平台的正中心导致的。所以正转一度和反转一度平移的距离的绝对值不相同。
参考文章:
https://blog.csdn.net/weixin_/article/details/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150799.html