wafr_no_limits.world
Go to the documentation of this file.
1 
3 /*
4  To use this file you have to generate the equations, add the
5  coupling equations (see at the end of this file) and then
6  generate the atlas for the .cuik (set the appropiate flag
7  in file chart.h)
8 */
9 
10 [CONSTANTS]
11 
12 % qji_k is a vector expreseing the anchor point of reference
13 % frame i with respect to reference frame k of finger j.
14 % if k is not given, it means it is respect to the palm,
15 % which in our case, it is the absoulute one.
16 
17 q11x := -4.3
18 q11y := -40.165
19 q11z := 145.43
20 %q11 = q12
21 
22 q21x := -4.3
23 q21y := 0
24 q21z := 150.15
25 %q21 = q22
26 
27 q31x := -4.3
28 q31y := 40.165
29 q31z := 145.43
30 %q31 = q32
31 
32 q40x := -3
33 q40y := 27.1
34 q40z := 0
35 
36 q41x_0:= 97
37 q41y_0:= 6
38 q41z_0:=-87
39 %q41_0 = q42_0
40 
41 
42 % These anchor points can be seen as the length of the phalanges,
43 % but that is because the phalanges are aligned with this vectors.
44 q13x_2 := 67.8
45 q13y_2 := 0
46 q13z_2 := 0
47 
48 q14x_3 := 30
49 q14y_3 := 0
50 q14z_3 := 0
51 
52 
53 q23x_2 := 67.8
54 q23y_2 := 0
55 q23z_2 := 0
56 
57 q24x_3 := 30
58 q24y_3 := 0
59 q24z_3 := 0
60 
61 
62 q33x_2 := 67.8
63 q33y_2 := 0
64 q33z_2 := 0
65 
66 q34x_3 := 30
67 q34y_3 := 0
68 q34z_3 := 0
69 
70 
71 q43x_2 := 67.8
72 q43y_2 := 0
73 q43z_2 := 0
74 
75 q44x_3 := 30
76 q44y_3 := 0
77 q44z_3 := 0
78 
79 
80 % Hand-object contact points (plus normals)
81 % The points are numbered as 1,2,3 and
82 % those in the object must contact the corresponding
83 % one in the hand.
84 % The contact points in the hand are at the end of
85 % fingers 2,3 and 4.
86 % All contact points are given in local coordinates of
87 % the corresponding bodies.
88 
89 op1_x:= 15
90 op1_y:=-17
91 op1_z:= 23
92 
93 op2_x:= 12
94 op2_y:= 19
95 op2_z:= 23
96 
97 op3_x:= 21
98 op3_y:= 0
99 op3_z:=-22
100 
101 on1_x:= 0
102 on1_y:= 0
103 on1_z:= 1
104 
105 on2_x:= 0
106 on2_y:= 0
107 on2_z:= 1
108 
109 on3_x:= 0
110 on3_y:= 0
111 on3_z:=-1
112 
113 % aprox (26,0,13)
114 hp1_x:=26.745362130452246
115 hp1_y:=-0.320775916066435
116 hp1_z:=13.600172216189954
117 
118 % aprox (26,0,13)
119 hp2_x:=27.186824561219627
120 hp2_y:= 0.988403453869847
121 hp2_z:=14.015803798995954
122 
123 %aprox (39,2,5)
124 hp3_x:=38.177015391947400
125 hp3_y:= 1.899999999999999
126 hp3_z:= 6.216744353301863
127 
128 hn1_x:=-0.269074918627895
129 hn1_y:= 0.137944652813314
130 hn1_z:=-0.953189362574723
131 
132 hn2_x:=-0.237373330082984
133 hn2_y:= 0.113242205988468
134 hn2_z:=-0.964795369468667
135 
136 hn3_x:=-0.975994458224612
137 hn3_y:= 0
138 hn3_z:=-0.217795356963474
139 
140 % Joint ranges
141 % Two ranges for the universal joint connecting the palm and finger 1
142 phi_1_1_min:= -pi
143 phi_1_1_max:= pi
144 
145 phi_1_2_min:= -pi
146 phi_1_2_max:= pi
147 
148 % Range for the first rotation in finger 1
149 phi_1_3_min:= -pi
150 phi_1_3_max:= pi
151 
152 % Range for the second rotation in finger 1
153 phi_1_4_min:= -pi
154 phi_1_4_max:= pi
155 
156 % Two ranges for the universal joint connecting the palm and finger 2
157 % -pi/16
158 phi_2_1_min:= -pi
159 phi_2_1_max:= pi
160 
161 % 1.35*pi/16
162 phi_2_2_min:= -pi
163 phi_2_2_max:= pi
164 
165 % Range for the first rotation in finger 2
166 % pi/8
167 phi_2_3_min:= -pi
168 phi_2_3_max:= pi
169 
170 % Range for the second rotation in finger 2
171 % pi/8
172 phi_2_4_min:= -pi
173 phi_2_4_max:= pi
174 
175 % Two ranges for the universal joint connecting the palm and finger 3
176 % -pi/16
177 phi_3_1_min:= -pi
178 phi_3_1_max:= pi
179 
180 % 1.2*pi/16
181 phi_3_2_min:= -pi
182 phi_3_2_max:= pi
183 
184 % Range for the first rotation in finger 3
185 % pi/8
186 phi_3_3_min:= -pi
187 phi_3_3_max:= pi
188 
189 % Range for the second rotation in finger 3
190 % pi/8
191 phi_3_4_min:= -pi
192 phi_3_4_max:= pi
193 
194 % Two ranges for the universal joint connecting the palm and finger 4
195 % pi/2
196 phi_4_0_min:= -pi
197 phi_4_0_max:= pi
198 
199 % 0
200 phi_4_1_min:= -pi
201 phi_4_1_max:= pi
202 
203 % 0
204 phi_4_2_min:= -pi
205 phi_4_2_max:= pi
206 
207 % Range for the first rotation in finger 4
208 % 3*pi/16
209 phi_4_3_min:= -pi
210 phi_4_3_max:= pi
211 
212 % Range for the second rotation in finger 4
213 % 3*pi/16
214 phi_4_4_min:= -pi
215 phi_4_4_max:= pi
216 
217 
218 %-------------------------------------------------------------------
219 %--------------------------------------------------------------------
220 
221 [LINKS]
222 
223 % palm
224  palm:body "bodies/palmSAH.off" white
225  body "bodies/acs1palm.off" blue
226  body "bodies/acs2palm.off" blue
227  body "bodies/acs3palm.off"
228 
229  //ringer_fixed
230  body "bodies/p1_fix.off" white
231  body "bodies/p2_fix.off" white
232  body "bodies/b2_fix.off" blue
233  body "bodies/p3_fix.off" white
234  body "bodies/p4_fix.off" white
235  body "bodies/b4_fix.off" blue
236 
237 /* NOT USED
238 %% finger 1
239  p12: body "bodies/p1.off" white
240  body "bodies/p2.off" white
241  body "bodies/b2.off" blue
242 
243  p13: body "bodies/p3.off" white
244 
245  p14: body "bodies/p4.off" white
246  body "bodies/b4.off" blue
247 */
248 
249 % finger 2
250  p22: body "bodies/p1.off" white
251  body "bodies/p2.off" white
252  body "bodies/b2.off" blue
253 
254  p23: body "bodies/p3.off" white
255 
256  p24: body "bodies/p4.off" white
257  body "bodies/b4.off" blue
258 
259 % finger 3
260  p32: body "bodies/p1.off" white
261  body "bodies/p2.off" white
262  body "bodies/b2.off" blue
263 
264  p33: body "bodies/p3.off" white
265 
266  p34: body "bodies/p4.off" white
267  body "bodies/b4.off" blue
268 
269 % finger 4
270  p40: body "bodies/p0thumb.off" white
271 
272  p42: body "bodies/p1.off" white
273  body "bodies/p2.off" white
274  body "bodies/b2.off" blue
275 
276  p43: body "bodies/p3.off" white
277 
278  p44: body "bodies/p4.off" white
279  body "bodies/b4.off" blue
280 
281 %object
282  object: body "bodies/needle.off" green
283  sphere 1 (625,-3,6) red
284 
285 [JOINTS]
286 /*
287 
288 %% finger 1. NOT USED
289  universal: palm (q11x,q11y,q11z)+(1,0,0)
290  p12 (0,0,0)+(0,1,0)
291 
292  revolute: p12 (q13x_2,q13y_2,q13z_2)+(0,-1,0)
293  p13 (0,0,0)+(0,-1,0)
294 
295  revolute: p13 (q14x_3,q14y_3,q14z_3)+(0,-1,0)
296  p14 (0,0,0)+(0,-1,0)
297 */
298 
299 % finger 2
300  universal: palm (q21x,q21y,q21z)+(1,0,0)
301  p22 (0,0,0)+(0,1,0)
302 
303  revolute: p22 (q23x_2,q23y_2,q23z_2)+(0,-1,0)
304  p23 (0,0,0)+(0,-1,0)
305 
306  revolute: p23 (q24x_3,q24y_3,q24z_3)+(0,-1,0)
307  p24 (0,0,0)+(0,-1,0)
308 
309 
310 % finger 3
311  universal: palm (q31x,q31y,q31z)+(1,0,0)
312  p32 (0,0,0)+(0,1,0)
313 
314  revolute: p32 (q33x_2,q33y_2,q33z_2)+(0,-1,0)
315  p33 (0,0,0)+(0,-1,0)
316 
317  revolute: p33 (q34x_3,q34y_3,q34z_3)+(0,-1,0)
318  p34 (0,0,0)+(0,-1,0)
319 
320 
321 % finger 4
322  revolute: palm (q40x,q40y,q40z)+(0,0,-1)
323  p40 (0,0,0)+(-1,0,0)
324 
325  universal: p40 (q41x_0,q41y_0,q41z_0)+(0.573580,0,0.81915)
326  p42 (0,0,0)+(0,1,0)
327 
328  revolute: p42 (q43x_2,q43y_2,q43z_2)+(0,-1,0)
329  p43 (0,0,0)+(0,-1,0)
330 
331  revolute: p43 (q44x_3,q44y_3,q44z_3)+(0,-1,0)
332  p44 (0,0,0)+(0,-1,0)
333 
334 
335 % Now we define the hand-object connection via revolute joints
336  revolute: p24 (hp1_x,hp1_y,hp1_z)+(hn1_x,hn1_y,hn1_z)
337  object (op1_x,op1_y,op1_z)+(on1_x,on1_y,on1_z)
338 
339  revolute: p34 (hp2_x,hp2_y,hp2_z)+(hn2_x,hn2_y,hn2_z)
340  object (op2_x,op2_y,op2_z)+(on2_x,on2_y,on2_z)
341 
342  revolute: p44 (hp3_x,hp3_y,hp3_z)+(hn3_x,hn3_y,hn3_z)
343  object (op3_x,op3_y,op3_z)+(on3_x,on3_y,on3_z)
344 
345 
346 % This the fix transformation to the object used to defined the grasping
347 % fix: palm object Tx(25) * Ry(-pi/4) *Tz(120)* Tx(180) * Ty(35)
348