现在让我们将列与X,Y平面联系起来。首要的事情是要描述A,B和C列在X,Y平面的基础位置。我们将称这些物理位置为Ax,Ay;Bx,By;Cx,Cy。通过观察我们可以发现,实际轴心点均在支架上每条终止了的作用线之下。我们可以通过减去一个来自每个表示支架弥补的列向量来计算出这些位置。我们将称这些轴心的位置为Apx,Apy;Bpx,Bpy;Cpx,Cpy。我们现在将使用这些值,但在之后,我们可以通过移动这些位置到虚拟列位置来减少位置数字。对于这种分析,我们保持Z不变,这样我们就可以在一个给定的XY平面上限制住效应器平台。每一列轴心的作用线围绕着支架上的点。当支架在效应器平台以上的一个给定高度时,这个在XY平面上可能的位置即效应器平台的边缘,满足在给定作用线上是一个围绕着轴心点的弧形。如果向量Ae,Be和Ce为零,并且作用线在效应器平台的中心,我们的XY坐标将成为这些弧形的交点。但当Ae,Be和Ce不为零,这些问题会更加复杂。
让我们做一些等式将Ae,Be和Ce与我们的XY坐标联系起来。让我们称这些作用线满足效应器平台的坐标为Acx,Acy;Bcx,Bcy;Ccx,Ccy。我们知道向量可以通过delta X和delta Y来表示,所以我们将这些向量分解为Aex,Aey;Bex,Bey;Cex,Cey。我们将定义这些向量从效应器平台的边缘指向其中心。因此我们有一下公式:
X = Acx - Aex = Bcx - Bex = Ccx - Cex Y = Acy - Aey = Bcy - Bey = Ccy - Cey
基于我们上面讨论的在弧形上移动的作用线。一个圆的公式是(X - CX)^2 + (Y - CY)^2 = CR^2。在这里,CX、CY是圆心而CR是半径。我们应该能够解决这一列的等式,并且通过相似点确定另外两个。所以看列A。
(Acx - Apx)^2 + (Acy - Apy)^2 = Ad^2
解出上面的Acx和Acy并替代,我们得出:
Acx = X + Aex Acy = Y + Aey
(X + Aex - Apx)^2 + (Y + Aey - Apy)^2 = Ad^2
我们看见一个简式,我们可以将这个圆的轴心点视为Apx - Aex, Apy - Aey。我们将称这个点为Avx,Avy。我们将作出如下定义:
Avx = Apx - Aex Avy = Apy - Aey Bvx = Bpx - Bex Bvy = Bpy - Bey Cvx = Cpx - Cex Cvy = Cpy - Cey
6
这些都是我们“虚拟”列的位置。这些位置可以在初始化时在软件里被计算出来,然后用到之后所有的计算中。我们在图5和6展示了这些虚拟列。我们也展示了在作用线上的单一机械臂。所有图六是我们的数学模型的一个物理表示。这些机械臂在X,Y坐标上并在虚拟列上一个支架弥补加效应器弥补远离物理列位置的位置。这就是我们将运用在硬件中的模型。
图5
7
图6
现在用我们简化的模型,我们有一下的公式:
(X - Avx)^2 + (Y - Avy)^2 = Ad^2 = L^2 - Acz^2 解出Acz
Acz^2 = L^2 - (X - Avx)^2 - (Y - Avy)^2 Acz = sqrt(L^2 - (X - Avx)^2 - (Y - Avy)^2)
通过求效应器平台以上的支架高度的相似度公式,得出Bcz和Ccz为:
Bcz = sqrt(L^2 - (X - Bvx)^2 - (Y - Bvy)^2) Ccz = sqrt(L^2 - (X - Cvx)^2 - (Y – Cvy)^2)
我们想要的真实值是基底上每个支架的距离。这些公式在上面已经给出。这里将它们再次写出:
Az = Z + Acz + Hcz Bz = Z + Bcz + Hcz Cz = Z + Ccz + Hcz
这些都是运用在软件中逆向运动学的公式。
现在让我们来检测这些公式的有效性。如果我们有一些列安置在一个圆上,
8
那么这些虚拟列则位于圆心0开始的半径R上,0和一根脚(A)在Y轴上,我们就得出以下公式:
Avx, Avy => 0, R
Bvx, Bvy => R*sin(30), -R*cos(30) = R/2, -R*sqrt(3)/2 Cvx, Cvy => -R*sin(30), -R*cos(30) = -R/2, -R*sqrt(3)/2
所以
Acz = sqrt(L^2 - (X - Avx)^2 - (Y - Avy)^2) = sqrt(L^2 - (X - 0)^2 - (Y - R))^2)
Bcz = sqrt(L^2 - (X - Bvx)^2 - (Y - Bvy)^2) = sqrt(L^2 - (X - R/2)^2 - (Y + R*sqrt(3)/2)^2) Ccz = sqrt(L^2 - (X - Cvx)^2 - (Y - Cvy)^2) = sqrt(L^2 - (X + R/2)^2 - (Y + R*sqrt(3)/2)^2)
L和R为已知的常数,你将它们和所需的X,Y插入到这些公式中,然后得出Acz,Bcz和Ccz。
因此对于X,Y => 0,0我们可以确定Acz,Bcz和Ccz,它们应该是相等的。
在这三个等式中唯一不同的是:
-(X - Avx)^2 - (Y - Avy)^2 -(X - Bvx)^2 - (Y - Bvy)^2 -(X - Cvx)^2 - (Y - Cvy)^2
如果我们设置X和Y为0,然后乘以-1,这些等式就会被重写为:
Avx^2 + Avy^2 Bvx^2 + Bvy^2 Cvx^2 + Cvy^2
如果这些条件是相等的,这些方程就等于:
Avx^2 + Avy^2 = 0 + R^2 = R^2
Bvx^2 + Bvy^2 = (R/2)^2 + (-R*sqrt(3)/2)^2 = (R^2)/4 + (R^2 * 3)/4
分解因子然后结合得: (4*R^2)/4 = R^2
Cvx^2 + Cvy^2 = (-R/2)^2 + (-R*sqrt(3)/2)^2 = (R^2)/4 + (R^2 * 3)/4
分解因子然后结合得: (4*R^2)/4 = R^2
9
这些等式都是相等的,在这种情况下我们的公式是有效的。
正向运动学
正向运动学是当给定支架位置时,用来确定效应器平台X-Y-Z坐标的公式。它们比逆向运动学要更难一些。我们的数学模型所使用的虚拟列位置仍然有用。如果我们使用虚拟列将效应器平台的中心定位为距离虚拟列上每个支架位置为L的点。这里给出以下等式:
(X - Avx)^2 + (Y - Avy)^2 + Acz^2 = L^2 (X - Bvx)^2 + (Y - Bvy)^2 + Bcz^2 = L^2 (X - Cvx)^2 + (Y - Cvy)^2 + Ccz^2 = L^2
其中Acz,Bcz和Ccz是效应器平台平面上每个支架的高度,它们与Z的关系如下:
Acz = Az - Z - Hcz Bcz = Bz - Z - Hcz Ccz = Cz - Z - Hcz
Az,Bz和Cz是给定支架位置的Z分量。
图7
10