Parallel robot
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 := |
é ê ê ê ê ë |
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 |
|
ù ú ú ú ú û |
,
Y := |
é ê ê ê ê ë |
0 |
1 |
0 |
1 |
0 |
-1 |
0 |
0 |
-1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
ù ú ú ú ú û |
and the length
lg := [ 1.0,1, 0.8,2,2,2]
ì ï ï í ï ï î |
u2+v2+w2- 1.0 |
- 12.0b- 4.0a+ 4.0c+ 4.0ab+ 4.0ac+ 4.0bc+a2+ 5.0b
2+ 13.0c2+ 8.0w+ 2.0u+ 9.0+ 8.0acu+ 8.0acw+
8.0bav+ 8.0bcv+ 2.0ua2- 6.0ub2- 6.0uc2+
2.0va2+ 2.0vb2+ 2.0vc2+ 8.0wc2+
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.860a2+ 4.860b2+
6.860c2+ 4.0w- 3.0u+ 4.0bcw+ 4.0aw- 4.0cu+
4.0acu+ 4.0bcv- 3.0ua2- 3.0ub2- 3.0uc2-
1.0va2+ 3.0vb2- 1.0vc2+ 4.0wc2+
4.0bu- 4.0av+ 3.0v
|
- 2.0b+ 2.0a+ 2.0c+ 2.0ab- 10.0ac- 2.0bc+ 3.5a
2- 2.5b2+ 1.5c2+ 4.0w-
5.0u+ 7.5+ 4.0acu- 4.0acw- 4.0bav+ 4.0bcv- 5.0u
a2- 1.0ub2- 1.0uc2- 1.0va2- 1.0vb
2- 1.0vc2+ 4.0wc2+ 4.0bu- 4.0cv- 4.0av+
4.0bw- 1.0v
|
- 4.0a- 4.0abu- 1.333333333c+ 1.333333333ab- 4.0bc-
1.638888889a2+ 0.361111111b2- 1.638888889c
2+ 2.0w- 0.6666666667u- 4.0bcw- 4.0aw+ 0.361111111+
2.0wb2+ 2.0wa2+ 4.0cu- 0.6666666667ua2-
0.6666666667ub2- 0.6666666667uc2+va2-
3.0vb2+vc2+ 2.0wc2- 3.0v
|
- 8.0b+ 4.0abu+ 8.0c- 8.0ab- 8.0ac+ 8.0b2+ 8.0c2+ 2.0w- 2.0u+ 4.0bcw+ 4.0aw- 2.0wb2- 2.0wa2
- 4.0cu+ 4.0acu+ 4.0acw+ 4.0bav+ 4.0bcv- 2.0ua2-
6.0ub2- 6.0uc2- 2.0va2+ 2.0vb2-
2.0vc2+ 2.0wc2+ 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.