UVW对位平台系列转换

一. UVW平台介绍

1、这是一种可以实现以平面上任意一点为中心,进行旋转运动的装置,并可沿着任意的方向平移。

2、此平台和视觉CCD纠偏系统对接在一起,可以很快完成高精度的纠偏工作,重复定位精度一般可达±1μm;

在这里插入图片描述

在这里插入图片描述

UVW平台和以前的xyθ平台相比,有以下几点不同:

1、控制精度高于xyθ平台;

2、UVW平台可以平面上任意一点为中心做旋转运动(包括无限远);而xyθ平台由于仅仅依靠一个电机的转动控制,所以旋转中心必须是固定在平台上某处(θ电机连接处),且必须随平台一同运动。

3、基于第二点的区别,显然UVW平台是需要一个绝对坐标系作为参考系,其旋转中心才有意义;而xyθ平台则必须是一个随平台动的坐标系作为参考系,这样控制计算方法便完全不一样了。

相对于XYθ平台采用传统的串联式设计,UVW平台则是采用并联设计,即将3个驱动轴放置于同一平面内,降氏平台厚度和重心,提高承载能力,这样做的好处就是,即便使用普通的步进马达驱动也可以达到较高的精度,通常能做到1个丝以内的精度,咱们这里不讲过多的硬件,只记录软件开发相关的逻辑代码,

二.计算方法

下述算法由平台相对移动量可算出各执行器(U、V、W)的移动量。
回转中心(at,bt)指的是相对于底座的绝对坐标。

【算法所需的值】

各执行器pin 的初始坐标(固有值)

U执行器:(Ux,Uy)

V执行器:(Vx,Vy)

W执行器:(Wx,Wy)

回转中心 :(at,bt)

现台面位置 (绝对坐标):(X,Y,θ)

台面移动量 (相对坐标) :(X´,Y´,θ´)

【算式】
U执行器移动量

St(u)=((Ux-at)×(sin(θ´+θ)tan(θ´+θ)+cos(θ´+θ))+(bt+(Y´+Y)-Uy)× tan(θ´+θ)+at+(X´+X)-Ux)-((Ux-at)×(sinθtanθ+cosθ)+(bt+Y-Uy)×tanθ+at+X-Ux)

V执行器移动量

St(v)=((Vy-bt)×(sin(θ´+θ)tan(θ´+θ)+cos(θ´+θ))+(Vx-at-(X´+X))×tan(θ´+θ)+bt+(Y´+Y)-Vy)-((Vy-bt)×(sinθtanθ+cosθ)+(Vx-at-X)×tanθ+bt+Y-Vy)

W执行器移动量

St(w)=((Wy-bt)×(sin(θ´+θ)tan(θ´+θ)+cos(θ´+θ))+(Wx-at-(X´+X))× tan(θ´+θ)+bt+(Y´+Y)-Wy)-((Wy-bt)×(sinθtanθ+cosθ)+(Wx-at-X)×tanθ+bt+Y-Wy)

移动后台面位置的绝对坐标

X=X (移动前 X 绝对坐标) +X´

Y=Y (移动前 Y 绝对坐标) +Y´

θ=θ (移动前θ绝对坐标) +θ´
【参考例】

依照表①~④顺序,求得台面移动时各执行器(U、V、W)的移动量。

设置回转中心(at,bt)为(10mm、20mm)。

① 的台面位置视为原点位置。

UVW2.jpeg

『从①向②移动』

U执行器相对移动量

St(u)=((67.5-10)×(sin(1+0)tan(1+0)+cos(1+0))+(20+(2+0)-(-59))× tan(1+0)+10+(1+0)-67.5)-((67.5-10)×(sin0tan0+cos0)+(20+0-(-59))×tan0+10+0-67.5)=2.4226mm

V执行器相对移动量

St(v)=((67.5-20)×(sin(1+0)tan(1+0)+cos(1+0))+(-59-10-(1+0))× tan(1+0)+20+(2+0)-67.5)-((67.5-20)×(sin0tan0+cos0)+(-59-10-0)×tan0+20+0-67.5)=0.7853mm

W执行器相对移动量

St(w)=((67.5-20)×(sin(1+0)tan(1+0)+cos(1+0))+(59-10-(1+0))× tan(1+0)+20+(2+0)-67.5)-((67.5-20)×(sin0tan0+cos0)+(59-10-0)×tan0+20+0-67.5)=2.8451mm

向②移动时的台面位置 (绝对坐标)

X= 0 + 1 = 1mm

Y= 0 + 2 = 2mm

θ= 0 + 1 = 1°

UVW3.jpeg

『②向③移动』

U执行器相对移动量

St(u)=((67.5-10)×(sin((-2)+1)tan((-2)+1)+cos((-2)+1))+(20+(1+2)-(-59))×tan((-2)+1)+10+(2+1)-67.5)-((67.5-10)×(sin1tan1+cos1)+(20+2-(-59))×tan1+10+1-67.5)=-0.8452mm

V执行器相对移动量

St(v)=((67.5-20)×(sin((-2)+1)tan((-2)+1)+cos((-2)+1))+(-59-10-(2+1))×tan((-2)+1)+20+(1+2)-67.5)-((67.5-20)×(sin1tan1+cos1)+(-59-10-1)×tan1+20+2-67.5)=3.4787mm

W执行器相对移动量

St(w)=((67.5-20)×(sin((-2)+1)tan((-2)+1)+cos((-2)+1))+(59-10-(2+1))×tan((-2)+1)+20+(1+2)-67.5)-((67.5-20)×(sin1tan1+cos1)+(59-10-1)×tan1+20+2-67.5)=-0.6408mm

向③移动时台面位置 (绝对坐标)

X = 1 + 2 = 3mm

Y = 2 + 1 = 3mm

θ = 1 + (-2) = -1°

UVW4.jpeg

『③向④的移动』

U执行器相对移动量

St(u)=((67.5-10)×(sin(4+(-1))tan(4+(-1))+cos(4+(-1)))+(20+((-4)+3)-(-59))×tan(4+(-1))+10+((-5)+3)-67.5)-((67.5-10)×(sin-1tan-1+cos-1)+(20+3-(-59))×tan-1+10+3-67.5)=0.5893mm

V执行器相对移动量

St(v)=((67.5-20)×(sin(4+(-1))tan(4+(-1))+cos(4+(-1)))+(-59-10-((-5)+3))×tan(4+(-1))+20+((-4)+3)-67.5)-((67.5-20)×(sin-1tan-1+cos-1)+(-59-10-3)×tan-1+20+3-67.5)=-8.7101mm

W执行器相对移动量

St(w)=((67.5-20)×(sin(4+(-1))tan(4+(-1))+cos(4+(-1)))+(59-10-((-5)+3))×tan(4+(-1))+20+((-4)+3)-67.5)-((67.5-20)×(sin-1tan-1+cos-1)+(59-10-3)×tan-1+20+3-67.5)=-0.4663mm

向④移动时台面位置 (绝对坐标)

X = 3 + (-5) = -2mm

Y = 3 + (-4) = -1mm

θ = -1 + 4 = 3°

UVW5.jpegUVW6.jpeg

在这里插入图片描述

简单说明一下视觉对位和运动控制思路:

1、通过UVW平台供应商提供的说明书,找到机械参数,得到UVW三个轴的初始坐标(基于UVW平台原点坐标系);

2、通过视觉标定方法,确定相机坐标系到UVW平台坐标系的转换矩阵;确定标志物模板基于UVW平台原点坐标系的坐标值(x_m, y_m);

3、通过相机得到标志物模板位置和待纠偏标志物之间的x、y、θ偏移量(基于UVW平台原点坐标系);

4、按照上图公式,输入三个轴初始坐标,设置旋转中心为(0,0),输入θ偏移量,可得到UVW三轴新的坐标值,以及待纠偏物体的新的坐标,以及三个电机对应的给进量A1、A2、A3;

5、输入上一步求得的UVW三轴新的坐标值,另外通过上一步求得的待纠偏物体的新的坐标,计算得此时待纠偏物体到模板点位置的x2、y2偏移量;输入x2、y2偏移量,则可以得到三个电机对应给进量B1、B2、B3;

6、将5和6步获取的三个电机的给进量对应相加,分别得到对应电机给进量C1、C2、C3,并用此给进量驱动对应电机即可。即是,将运动过程拆解,变成平移和旋转部分,分别计算电机给进量

三. 相关uvw的两个重要转换:

1:将uvw的三个量转换成x,y,和角度:

void CUVW::uvwtoxya(double sU, double sV, double sW, double & tX, double & tY, double & da)
{
    
    //计算角度
    double tA = asin((sU - sV) / CRadius / sqrt(2));
    double dx1, dx2, dy;//计算角度引起的UVW变更量
    dy = CRadius * sin(tA + YAngle) - CRadius * sin(YAngle);
    dx2 = CRadius * cos(tA + X2Angle) - CRadius *cos(X2Angle);
    dx1 = CRadius * cos(tA + X1Angle) - CRadius * cos(X1Angle);
    //计算平移引起的y变更量,即y平移量.
    tY = sW - dy;
    //计算平移引起的x变更量,即x平移量.
    tX = (sU + sV - dx1 - dx2) / 2;
    da = tA;// ARG(tA);
}

2:将x,y,角度转换为当前的uvw量:

void CUVW::xyatouvw(double sx, double sy, double sa, double& tU, double& tV, double& tW)
{
    double angle;
    angle = sa; // DARG(sa);
    double dx1, dx2, dy;//UVW变更量计算

    dy = CRadius * sin(angle + YAngle) - CRadius * sin(YAngle);
    dx2 = CRadius *cos(angle + X2Angle) - CRadius * cos(X2Angle);
    dx1 = CRadius * cos(angle + X1Angle) - CRadius* cos(X1Angle);
    //double test = Math.Sin(30); 测试,表明需要弧度单位
    //UVW变化等于角度引起的变化加上平移引起的变化.
    tU = dx1 + sx;
    tV = dx2 + sx;
    tW = dy + sy;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值