Parallel robot

                                                      rbpll6 [1]

Given the length of the length of arms (between the ground and the platform) of the parallel robot, we want to find all the possible positions of the upper platform.

Several formulation of the problem are possible, according to the representation of the displacement. Using quaternions (see [2]), we obtain the following system for the matrix X of base points and the matrix Y of points of the platform given

X := [ \begin{matrix}0 & 1/2 & 3/2 & 3/2 & 1/3 & 2 \\ 0 & −1/2 & −1/2 & 1/2 & 1/2 & 0 \\ 0 & −1 & −1 & −1 & −1 & 0 \end{matrix} ] , Y := [ \begin{matrix}0 & 1 & 0 & 1 & 0 & −1 \\ 0 & 0 & −1 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 & 1 & 1 \end{matrix} ]

and the length

lg := [1.0, 1, 0.8, 2, 2, 2]

Equations:

u^{2} + v^{2} + w^{2} − 1.0; −12.0b − 4.0a + 4.0c + 4.0ab + 4.0ac + 4.0bc + a^{2} + 5.0b^{2} + 13.0c^{2} + 8.0w +

2.0u+9.0+8.0acu+8.0acw +8.0bav +8.0bcv +2.0ua^{2} −6.0ub^{2} −6.0uc^{2} + 2.0va^{2} + 2.0vb^{2} + 2.0vc^{2} + 8.0wc^{2} + 8.0bu + 8.0cv − 8.0av − 8.0bw + 2.0v;

8.860−6.0b+2.0a+4.0abu+6.0c−6.0ab−6.0ac+6.0bc+2.860a^{2} +4.860b^{2} + 6.860c^{2} +4.0w−3.0u+4.0bcw+4.0aw−4.0cu+4.0acu+4.0bcv −3.0ua^{2} − 3.0ub^{2} − 3.0uc^{2} − 1.0va^{2} + 3.0vb^{2} − 1.0vc^{2} + 4.0wc^{2} + 4.0bu − 4.0av + 3.0v;

−2.0b + 2.0a + 2.0c + 2.0ab − 10.0ac − 2.0bc + 3.5a^{2} − 2.5b^{2} + 1.5c^{2} + 4.0w − 5.0u+7.5+4.0acu−4.0acw −4.0bav +4.0bcv −5.0ua^{2} −1.0ub^{2} −1.0uc^{2} − 1.0va^{2} − 1.0vb^{2} − 1.0vc^{2} + 4.0wc^{2} + 4.0bu − 4.0cv − 4.0av + 4.0bw − 1.0v;

−4.0a − 4.0abu − 1.333333333c + 1.333333333ab − 4.0bc − 1.638888889a^{2} + 0.361111111b^{2}−1.638888889c^{2}+2.0w−0.6666666667u−4.0bcw−4.0aw+ 0.361111111+2.0wb^{2}+2.0wa^{2}+4.0cu−0.6666666667ua^{2}−0.6666666667ub^{2}− 0.6666666667uc^{2} + va^{2} − 3.0vb^{2} + vc^{2} + 2.0wc^{2} − 3.0v;

−8.0b + 4.0abu + 8.0c − 8.0ab − 8.0ac + 8.0b^{2} + 8.0c^{2} + 2.0w − 2.0u + 4.0bcw + 4.0aw − 2.0wb^{2} − 2.0wa^{2} − 4.0cu + 4.0acu + 4.0acw + 4.0bav + 4.0bcv − 2.0ua^{2} − 6.0ub^{2} − 6.0uc^{2} − 2.0va^{2} + 2.0vb^{2} − 2.0vc^{2} + 2.0wc^{2} + 4.0bu + 4.0cv − 4.0av − 4.0bw + 2.0v

Added to the list by B. Mourrain (April 1996).

Characteristics:

• Dimension 0.

• Degree bounded by 40. It depends on the geometry of the upper and lower platform.

Example 1:

X := 'X': Y := 'Y': S:= 'S';
N2 := proc(A) normal(A[1]^2 + A[2]^2 + A[3]^2): end:
X[1]:=[0,0,0];        X[2]:=[1/2,-1/2,-1];
X[3]:=[3/2,-1/2,-1];  X[4]:=[3/2,1/2,-1];
X[5]:=[1/3,1/2,-1];   X[6]:=[2,0,0];
Y[1]:=[0,0,0];        Y[2]:=[1,0,1];
Y[3]:=[0,1,1];        Y[4]:=[-1,0,1];
Y[5]:=[0,-1,0];       Y[6]:=[1,1,1];
dt  := (a^2+b^2+c^2+d^2); r11 := (a^2-b^2-c^2+d^2)/dt:
r12 := 2*(a*b-c*d)/dt:    r13 := 2*(a*c + b*d)/dt:
r21 := 2*(a*b+c*d)/dt:    r22 := (-a^2+b^2-c^2+d^2)/dt:
r23 := 2*(b*c-a*d)/dt:    r31 := 2*(a*c-b*d)/dt:
r32 := 2*(a*d+b*c)/dt:    r33 := (-a^2-b^2+c^2+d^2)/dt:
R := matrix([[r11,r12,r13],[r21,r22,r23],[r31,r32,r33]]):
T := [u,v,w]:
lg :=[1.0,1,0.8,2,2,2]:
S[1] := numer(N2(T)-lg[1]^2);
for i from 2 to 6 do
   S[i] := numer(expand(N2(evalm (R &* Y[i] + T - X[i]))
             - lg[i]^2  -N2(T) +lg[1]^2)):
od;
S : convert(S,list);

References

[1] D. Bini and B. Mourrain. Polynomial test suite. 1996.

[2] B. Mourrain. The 40 generic positions of a parallel robot. In M. Bronstein, editor, ISSAC’93, ACM press, pages 173–182, Kiev (Ukraine), July 1993.