DeltaManipulator.world
Go to the documentation of this file.
1 
2 [CONSTANTS]
3 
4 % INPUT PARAMETERS. Fix this for direct kinematics
5 
6 theta1_min:= pi/3-0.2
7 theta1_max:= theta1_min
8 
9 theta2_min:= pi/3
10 theta2_max:= theta2_min
11 
12 theta3_min:= pi/3+0.2
13 theta3_max:= theta3_min
14 
15 % PARAMETERS OF THE PLATFORM
16 
17 % radius of the circunference inscribing the base triangle
18 r_b:=1
19 
20 % angles from the center of the base to the legs anchor points
21 beta1_b:=0
22 beta2_b:=beta1_b+(2*pi/3)
23 beta3_b:=beta2_b+(2*pi/3)
24 
25 % radius of the circunference inscribing the platform triangle
26 r_p:=1
27 
28 % angles from the center of the platform to the legs anchor points
29 beta1_p:=0
30 beta2_p:=beta1_p+(2*pi/3)
31 beta3_p:=beta2_p+(2*pi/3)
32 
33 % Length of the bottom part of each leg
34 lenght_A:=1
35 
36 % Length of the upper part of each leg (i.e., the long bar of the 4 bar)
37 length_B:=1
38 
39 % Length of the short bar forming the 4 bars in the upper part of each leg
40 length_B1:=0.1
41 
42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 % nothing to be modified behond this point
44 
45 % Anchor points of the legs in the base
46 x1_b:=r_b*cos(beta1_b)
47 y1_b:=r_b*sin(beta1_b)
48 
49 x2_b:=r_b*cos(beta2_b)
50 y2_b:=r_b*sin(beta2_b)
51 
52 x3_b:=r_b*cos(beta3_b)
53 y3_b:=r_b*sin(beta3_b)
54 
55 % Tangent vectors to the sphere inscribing the base triangle at the
56 % leg anchor points
57 alpha1_b:=beta1_b+pi/2
58 alpha2_b:=beta2_b+pi/2
59 alpha3_b:=beta3_b+pi/2
60 
61 % Anchor points of the legs in the platform
62 x1_p:=r_p*cos(beta1_p)
63 y1_p:=r_p*sin(beta1_p)
64 
65 x2_p:=r_p*cos(beta2_p)
66 y2_p:=r_p*sin(beta2_p)
67 
68 x3_p:=r_p*cos(beta3_p)
69 y3_p:=r_p*sin(beta3_p)
70 
71 % Tangent vectors to the sphere inscribing the plotform triangle at the
72 % leg anchor points
73 alpha1_p:=beta1_p+pi/2
74 alpha2_p:=beta2_p+pi/2
75 alpha3_p:=beta3_p+pi/2
76 
77 % radius of the bars used in the representation. The bars for the
78 % base/platform are 1.5 times this radius
79 rb:=0.025
80 
81 
82 [LINKS]
83 
84 base : 0.5*red
85  % One sphere at each vertex of the triangle
86  sphere rb*1.5 (x1_b,y1_b,0)
87  sphere rb*1.5 (x2_b,y2_b,0)
88  sphere rb*1.5 (x3_b,y3_b,0)
89 
90  % Three bars forming the triangle
91  cylinder rb*1.5 (x1_b,y1_b,0)(x2_b,y2_b,0)
92  cylinder rb*1.5 (x1_b,y1_b,0)(x3_b,y3_b,0)
93  cylinder rb*1.5 (x2_b,y2_b,0)(x3_b,y3_b,0)
94 
95  % Part of the revolute joint with the first leg fixed at the base
96  cylinder rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0)
97  (x1_b-0.5*length_B1*cos(alpha1_b),y1_b-0.5*length_B1*sin(alpha1_b),0)
98  sphere rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0)
99  cylinder rb (x1_b+0.5*length_B1*cos(alpha1_b),y1_b+0.5*length_B1*sin(alpha1_b),0)
100  (x1_b+ length_B1*cos(alpha1_b),y1_b+ length_B1*sin(alpha1_b),0)
101  sphere rb (x1_b+ length_B1*cos(alpha1_b),y1_b+ length_B1*sin(alpha1_b),0)
102 
103  % Part of the revolute joint with the second leg fixed at the base
104  cylinder rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0)
105  (x2_b-0.5*length_B1*cos(alpha2_b),y2_b-0.5*length_B1*sin(alpha2_b),0)
106  sphere rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0)
107  cylinder rb (x2_b+0.5*length_B1*cos(alpha2_b),y2_b+0.5*length_B1*sin(alpha2_b),0)
108  (x2_b+ length_B1*cos(alpha2_b),y2_b+ length_B1*sin(alpha2_b),0)
109  sphere rb (x2_b+ length_B1*cos(alpha2_b),y2_b+ length_B1*sin(alpha2_b),0)
110 
111  % Part of the revolute joint with the third leg fixed at the base
112  cylinder rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0)
113  (x3_b-0.5*length_B1*cos(alpha3_b),y3_b-0.5*length_B1*sin(alpha3_b),0)
114  sphere rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0)
115  cylinder rb (x3_b+0.5*length_B1*cos(alpha3_b),y3_b+0.5*length_B1*sin(alpha3_b),0)
116  (x3_b+ length_B1*cos(alpha3_b),y3_b+ length_B1*sin(alpha3_b),0)
117  sphere rb (x3_b+ length_B1*cos(alpha3_b),y3_b+ length_B1*sin(alpha3_b),0)
118 
119 
120 platform: 0.5*green
121  sphere rb*1.5 (x1_p,y1_p,0)
122  sphere rb*1.5 (x2_p,y2_p,0)
123  sphere rb*1.5 (x3_p,y3_p,0)
124  cylinder rb*1.5 (x1_p,y1_p,0)(x2_p,y2_p,0)
125  cylinder rb*1.5 (x1_p,y1_p,0)(x3_p,y3_p,0)
126  cylinder rb*1.5 (x2_p,y2_p,0)(x3_p,y3_p,0)
127 
128  cylinder rb (x1_p-length_B1*cos(alpha1_p),y1_p-length_B1*sin(alpha1_p),0)
129  (x1_p+length_B1*cos(alpha1_p),y1_p+length_B1*sin(alpha1_p),0)
130 
131  cylinder rb (x2_p-length_B1*cos(alpha2_p),y2_p-length_B1*sin(alpha2_p),0)
132  (x2_p+length_B1*cos(alpha2_p),y2_p+length_B1*sin(alpha2_p),0)
133 
134  cylinder rb (x3_p-length_B1*cos(alpha3_p),y3_p-length_B1*sin(alpha3_p),0)
135  (x3_p+length_B1*cos(alpha3_p),y3_p+length_B1*sin(alpha3_p),0)
136 
137 leg1_a: cylinder rb (0,0,0) (0,0,lenght_A)
138  cylinder rb (-0.5*length_B1,0,0)
139  (+0.5*length_B1,0,0)
140  cylinder rb (-length_B1,0,lenght_A)
141  (+length_B1,0,lenght_A)
142 
143 leg2_a: cylinder rb (0,0,0) (0,0,lenght_A)
144  cylinder rb (-0.5*length_B1,0,0)
145  (+0.5*length_B1,0,0)
146  cylinder rb (-length_B1,0,lenght_A)
147  (+length_B1,0,lenght_A)
148 
149 leg3_a: cylinder rb (0,0,0) (0,0,lenght_A)
150  cylinder rb (-0.5*length_B1,0,0)
151  (+0.5*length_B1,0,0)
152  cylinder rb (-length_B1,0,lenght_A)
153  (+length_B1,0,lenght_A)
154 
155 
156 [JOINTS]
157 %---------------------------------------------------------
158 
159 revolute: base (x1_b,y1_b,0)+(cos(alpha1_b),sin(alpha1_b),0)
160  leg1_a (0,0,0)+(1,0,0)
161  range [theta1_min,theta1_max] +(cos(beta1_b),sin(beta1_b),0) +(0,-1,0)
162 
163 sph_sph: leg1_a (-length_B1,0,lenght_A)
164  platform (x1_p-length_B1*cos(alpha1_p),y1_p-length_B1*sin(alpha1_p),0)
165  length length_B
166  radius rb
167  0.25*white
168 
169 sph_sph: leg1_a (+length_B1,0,lenght_A)
170  platform (x1_p+length_B1*cos(alpha1_p),y1_p+length_B1*sin(alpha1_p),0)
171  length length_B
172  radius rb
173  0.25*white
174 
175 %---------------------------------------------------------
176 
177 revolute: base (x2_b,y2_b,0)+(cos(alpha2_b),sin(alpha2_b),0)
178  leg2_a (0,0,0)+(1,0,0)
179  range [theta2_min,theta2_max] +(cos(beta2_b),sin(beta2_b),0) +(0,-1,0)
180 
181 sph_sph: leg2_a (-length_B1,0,lenght_A)
182  platform (x2_p-length_B1*cos(alpha2_p),y2_p-length_B1*sin(alpha2_p),0)
183  length length_B
184  radius rb
185  0.25*white
186 
187 sph_sph: leg2_a (+length_B1,0,lenght_A)
188  platform (x2_p+length_B1*cos(alpha2_p),y2_p+length_B1*sin(alpha2_p),0)
189  length length_B
190  radius rb
191  0.25*white
192 
193 %---------------------------------------------------------
194 
195 revolute: base (x3_b,y3_b,0)+(cos(alpha3_b),sin(alpha3_b),0)
196  leg3_a (0,0,0)+(1,0,0)
197  range [theta3_min,theta3_max] +(cos(beta3_b),sin(beta3_b),0) +(0,-1,0)
198 
199 sph_sph: leg3_a (-length_B1,0,lenght_A)
200  platform (x3_p-length_B1*cos(alpha3_p),y3_p-length_B1*sin(alpha3_p),0)
201  length length_B
202  radius rb
203  0.25*white
204 
205 sph_sph: leg3_a (+length_B1,0,lenght_A)
206  platform (x3_p+length_B1*cos(alpha3_p),y3_p+length_B1*sin(alpha3_p),0)
207  length length_B
208  radius rb
209  0.25*white
210 
211 %---------------------------------------------------------
212 % fix: base platform Tz(1)
213