Original Equations in the Text Format
A3*CTH3*CTH1*CTH2-A3*CTH3*STH1*CAL1*STH2-A3*STH3*CTH1*STH2*CAL2
-A3*STH3*STH1*CAL1*CTH2*CAL2+A3*STH3*STH1*SAL1*SAL2+D3*CTH1*STH2*SAL2
+D3*STH1*CAL1*CTH2*SAL2+D3*STH1*SAL1*CAL2+CTH1*A2*CTH2-STH1*CAL1*A2*STH2
+STH1*SAL1*D2+A1*CTH1 = X
A3*CTH3*STH1*CTH2+A3*CTH3*CTH1*CAL1*STH2-A3*STH3*STH1*STH2*CAL2
+A3*STH3*CTH1*CAL1*CTH2*CAL2-A3*STH3*CTH1*SAL1*SAL2+D3*STH1*STH2*SAL2
-D3*CTH1*CAL1*CTH2*SAL2-D3*CTH1*SAL1*CAL2+STH1*A2*CTH2+CTH1*CAL1*A2*STH2
-CTH1*SAL1*D2+A1*STH1 = Y
SAL1*STH2*A3*CTH3+A3*STH3*SAL1*CTH2*CAL2+A3*STH3*CAL1*SAL2
-D3*SAL1*CTH2*SAL2+D3*CAL1*CAL2+SAL1*A2*STH2+CAL1*D2+D1
= Z
Where S and C stand for Sine and Cosine while TH
and AL stand for theta and alpha.
RRR Configuration
Unknowns: {A1, A2, A3, D1, D2, D3}
Simplified:
A3*(CTH3*CTH1*CTH2-CTH3*STH1*CAL1*STH2-STH3*CTH1*STH2*CAL2
-STH3*STH1*CAL1*CTH2*CAL2+STH3*STH1*SAL1*SAL2)
+D3*(CTH1*STH2*SAL2+STH1*CAL1*CTH2*SAL2+STH1*SAL1*CAL2)
+A2*(CTH1*CTH2-STH1*CAL1*STH2)+D2*(STH1*SAL1)+A1*CTH1
= X
A3*(CTH3*STH1*CTH2+CTH3*CTH1*CAL1*STH2-STH3*STH1*STH2*CAL2
+STH3*CTH1*CAL1*CTH2*CAL2-STH3*CTH1*SAL1*SAL2)
+D3*(STH1*STH2*SAL2-CTH1*CAL1*CTH2*SAL2-CTH1*SAL1*CAL2)
+A2*(STH1*CTH2+CTH1*CAL1*STH2)+D2*(-CTH1*SAL1)+A1*STH1
= Y
A3*(SAL1*STH2*CTH3+STH3*SAL1*CTH2*CAL2+STH3*CAL1*SAL2)
+D3*(-SAL1*CTH2*SAL2+CAL1*CAL2)+A2*(SAL1*STH2)+D2*CAL1+D1
= Z
Introducing the temporary variables:
B1 = C1 =
CTH3*CTH1*CTH2-CTH3*STH1*CAL1*STH2-STH3*CTH1*STH2*CAL2
-STH3*STH1*CAL1*CTH2*CAL2+STH3*STH1*SAL1*SAL2
B2 = C2 =
CTH1*STH2*SAL2+STH1*CAL1*CTH2*SAL2+STH1*SAL1*CAL2
B3 = C3 = CTH1*CTH2-STH1*CAL1*STH2
B4 = C4 = STH1*SAL1
B5 = C5 = CTH1
B6 = C6 =
CTH3*STH1*CTH2+CTH3*CTH1*CAL1*STH2-STH3*STH1*STH2*CAL2
+STH3*CTH1*CAL1*CTH2*CAL2-STH3*CTH1*SAL1*SAL2
B7 = C7 =
STH1*STH2*SAL2-CTH1*CAL1*CTH2*SAL2-CTH1*SAL1*CAL2
B8 = C8 = STH1*CTH2+CTH1*CAL1*STH2
B9 = C9 = -CTH1*SAL1
B10 = C10 = STH1
B11 = C11 =
SAL1*STH2*CTH3+STH3*SAL1*CTH2*CAL2+STH3*CAL1*SAL2
B12 = C12 = -SAL1*CTH2*SAL2+CAL1*CAL2
B13 = C13 = SAL1*STH2
B14 = C14 = CAL1
B15 = C15 = 1
Where B variables are assosiated with the first position
and joint readings and C variables with the second.
New equation is obtained:
A3*B1+D3*B2+A2*B3+D2*B4+A1*B5 = XB
A3*B6+D3*B7+A2*B8+D2*B9+A1*B10 = YB
A3*B11+D3*B12+A2*B13+D2*B14+D1 = ZB
A3*C1+D3*C2+A2*C3+D2*C4+A1*C5 = XC
A3*C6+D3*C7+A2*C8+D2*C9+A1*C10 = YC
A3*C11+D3*C12+A2*C13+D2*C14+D1 = ZC
Maple Format:
solve({A3*B1+D3*B2+A2*B3+D2*B4+A1*B5 = XB,
A3*B6+D3*B7+A2*B8+D2*B9+A1*B10 = YB,
A3*B11+D3*B12+A2*B13+D2*B14+D1 = ZB,
A3*C1+D3*C2+A2*C3+D2*C4+A1*C5 = XC,
A3*C6+D3*C7+A2*C8+D2*C9+A1*C10 = YC,
A3*C11+D3*C12+A2*C13+D2*C14+D1 = ZC},{A1,A2,A3,D1,D2,D3});
RRP Configuration
Unknowns: {A1, A2, A3, D1, D2}
Adding the last two rows together to yield a five
by five matrix:
A3*B1+DB3*B2+A2*B3+D2*B4+A1*B5 = XB
A3*B6+DB3*B7+A2*B8+D2*B9+A1*B10 = YB
A3*B11+DB3*B12+A2*B13+D2*B14+D1 = ZB
A3*C1+DC3*C2+A2*C3+D2*C4+A1*C5 = XC
A3*C6+DC3*C7+A2*C8+D2*C9+A1*C10+A3*C11+DC3*C12+A2*C13+D2*C14+D1
= ZC+YC
Which is then equal to:
A3*B1+DB3*B2+A2*B3+D2*B4+A1*B5 = XB
A3*B6+DB3*B7+A2*B8+D2*B9+A1*B10 = YB
A3*B11+DB3*B12+A2*B13+D2*B14+D1 = ZB
A3*C1+DC3*C2+A2*C3+D2*C4+A1*C5 = XC
A3*K1+DC3*K2+A2*K3+D2*K4+A1*C10+D1 = K5
Where:
K1 = C6+C11; K2 = C7+C12; K3 = C8+C13; K4 = C9+C14;
K5 = ZC+YC;
DB3 and DC3 are equal to the first and second reading
of the third joint value.
Maple Format:
solve({A3*B1+DB3*B2+A2*B3+D2*B4+A1*B5 = XB,
A3*B6+DB3*B7+A2*B8+D2*B9+A1*B10 = YB,
A3*B11+DB3*B12+A2*B13+D2*B14+D1 = ZB,
A3*C1+DC3*C2+A2*C3+D2*C4+A1*C5 = XC,
A3*K1+DC3*K2+A2*K3+D2*K4+A1*C10+D1 = K5},{A1,A2,A3,D1,D2});
RPR Configuration
Unknowns: {A1, A2, A3, D1, D3}
Maple Format:
solve({A3*B1+D3*B2+A2*B3+DB2*B4+A1*B5 = XB,
A3*B6+D3*B7+A2*B8+DB2*B9+A1*B10 = YB,
A3*B11+D3*B12+A2*B13+DB2*B14+D1 = ZB,
A3*C1+D3*C2+A2*C3+DC2*C4+A1*C5 = XC,
A3*K1+D3*K2+A2*K3+DC2*K4+A1*C10+D1 = K5},{A1,A2,A3,D1,D3});
PRR Configuration
Unknowns: {A1, A2, A3, D2, D3}
Maple Format:
solve({A3*B1+D3*B2+A2*B3+D2*B4+A1*B5 = XB,
A3*B6+D3*B7+A2*B8+D2*B9+A1*B10 = YB,
A3*B11+D3*B12+A2*B13+D2*B14+DB1 = ZB,
A3*C1+D3*C2+A2*C3+D2*C4+A1*C5 = XC,
A3*K1+D3*K2+A2*K3+D2*K4+A1*C10+DC1 = K5},{A1,A2,A3,D2,D3});
PPR Configuration
Unknowns: {A1, A2, A3, D3}
Adding the second and third row together to yield
a four by four matrix:
A3*B1+D3*B2+A2*B3+DB2*B4+A1*B5 = XB
A3*B6+D3*B7+A2*B8+DB2*B9+A1*B10+A3*B11+D3*B12+A2*B13+DB2*B14+DB1
= YB+ZB
A3*C1+D3*C2+A2*C3+DC2*C4+A1*C5 = XC
A3*K1+D3*K2+A2*K3+DC2*K4+A1*C10+DC1 = K5
Which is then equal to:
A3*B1+D3*B2+A2*B3+DB2*B4+A1*B5 = XB
A3*K6+D3*K7+A2*K8+DB2*K9+A1*B10+DB1 = K10
A3*C1+D3*C2+A2*C3+DC2*C4+A1*C5 = XC
A3*K1+D3*K2+A2*K3+DC2*K4+A1*C10+DB1 = K5
Where:
K6 = B6+B11; K7 = B7+B12; K8 = B8+B13; K9 = B9+B14;
K10 = YB+ZB;
DB1, DB2, DC1 and DC2 are equal to the first and
second reading of the first and second joint value.
Maple Format:
solve({A3*B1+D3*B2+A2*B3+DB2*B4+A1*B5 = XB,
A3*K6+D3*K7+A2*K8+DB2*K9+A1*B10+DB1 = K10,
A3*C1+D3*C2+A2*C3+DC2*C4+A1*C5 = XC,
A3*K1+D3*K2+A2*K3+DC2*K4+A1*C10+DC1 = K5},{A1,A2,A3,D3});
PRP Configuration
Unknowns: {A1, A2, A3, D2}
Maple Format:
solve({A3*B1+DB3*B2+A2*B3+D2*B4+A1*B5 = XB,
A3*K6+DB3*K7+A2*K8+D2*K9+A1*B10+DB1 = K10,
A3*C1+DC3*C2+A2*C3+D2*C4+A1*C5 = XC,
A3*K1+DC3*K2+A2*K3+D2*K4+A1*C10+DC1 = K5},{A1,A2,A3,D2});
RPP Configuration
Unknowns: {A1, A2, A3, D1}
Maple Format:
solve({A3*B1+DB3*B2+A2*B3+DB2*B4+A1*B5 = XB,
A3*K6+DB3*K7+A2*K8+DB2*K9+A1*B10+D1 = K10,
A3*C1+DC3*C2+A2*C3+DC2*C4+A1*C5 = XC,
A3*K1+DC3*K2+A2*K3+DC2*K4+A1*C10+D1 = K5},{A1,A2,A3,D1});
PPP Configuration
Unknowns: {A1, A2, A3}
New Equation:
A3*B1+D3*B2+A2*B3+D2*B4+A1*B5 = XB
A3*B6+D3*B7+A2*B8+D2*B9+A1*B10 = YB
A3*B11+D3*B12+A2*B13+D2*B14+D1 = ZB
Maple Format:
solve({A3*B1+D3*B2+A2*B3+D2*B4+A1*B5 = XB,
A3*B6+D3*B7+A2*B8+D2*B9+A1*B10 = YB,
A3*B11+D3*B12+A2*B13+D2*B14+D1 = ZB},{A1,A2,A3});
Back to the Page of Contents
Back to the Robotics Lab Homepage
Back to My Homepage