00001
00003 [CONSTANTS]
00004
00005 % Values for the rotations (must be inside the limits below)
00006 % Abduction rotation for finger 1
00007 phi_1_1:=pi/8
00008 phi_1_2:=pi/2
00009 % First rotation in finger 1
00010 phi_1_3:=pi/8
00011 % Second rotation in finger 1
00012 phi_1_4:=pi/4
00013
00014 % Abduction rotation for finger 2
00015 phi_2_1:=0
00016 phi_2_2:=pi/4
00017 % first rotation in finger 2
00018 phi_2_3:=pi/8
00019 % second rotation in finger 2
00020 phi_2_4:=pi/4
00021
00022 % Two ranges for the universal joint connecting the palm and finger 3
00023 phi_3_1:=0
00024 phi_3_2:=pi/4
00025 % Range for the first rotation in finger 2
00026 phi_3_3:=pi/8
00027 % Range for the second rotation in finger 2
00028 phi_3_4:=pi/4
00029
00030 % Two ranges for the universal joint connecting the palm and finger 4
00031 phi_4_1:=0
00032 phi_4_2:=pi/2
00033 % Range for the first rotation in finger 2
00034 phi_4_3:=pi/8
00035 % Range for the second rotation in finger 2
00036 phi_4_4:=pi/4
00037
00038 % Anchor points of the fingers at the palm
00039 % (we assume that the universal joint connecting the hand and the finger has
00040 % the rotation axis aligned with the palm axis)
00041 q_1_1_x:= 9.5
00042 q_1_1_y:=-67
00043 q_1_1_z:=197.55
00044
00045 q_2_1_x:=9.5
00046 q_2_1_y:=0
00047 q_2_1_z:=197.55
00048
00049 q_3_1_x:=9.5
00050 q_3_1_y:=67
00051 q_3_1_z:=197.55
00052
00053 q_4_1_x:=40.1650
00054 q_4_1_y:=30.012
00055 q_4_1_z:=66.8142
00056
00057 % Length of the phalanges. first index is the leg, second
00058 % index is the phalanx.
00059 % Phalanges are numbered from 2 since the attachment point
00060 % of the finger on the palm is seen as the first phalanx
00061 p_1_2:=76.66
00062 p_1_3:=56
00063 p_1_4:=33.805151243
00064
00065 p_2_2:=76.66
00066 p_2_3:=56
00067 p_2_4:=33.805151243
00068
00069 p_3_2:=76.66
00070 p_3_3:=56
00071 p_3_4:=33.805151243
00072
00073 p_4_2:=76.66
00074 p_4_3:=66
00075 p_4_4:=39.862238567
00076
00077 % Contact point on the fingertip
00078 q_1_4_x:=27.856821097374684
00079 q_1_4_y:=0
00080 q_1_4_z:=19.151400000000000
00081
00082 q_2_4_x:=27.856821097374684
00083 q_2_4_y:=0
00084 q_2_4_z:=19.151651859208762
00085
00086 q_3_4_x:=27.856821097374684
00087 q_3_4_y:=0
00088 q_3_4_z:=19.151651859208762
00089
00090 q_4_4_x:=34.762406989603285
00091 q_4_4_y:=0
00092 q_4_4_z:=19.508283467663215
00093
00094 % Normals of the fingertip at the contact point
00095 % Pointing outside the finger
00096 % NOTE: The interpretation of the results of this
00097 % file given below is strongly based on these
00098 % vectors to be (0,0,1)
00099 mhat_1_x:=0
00100 mhat_1_y:=0
00101 mhat_1_z:=1
00102
00103 mhat_2_x:=0
00104 mhat_2_y:=0
00105 mhat_2_z:=1
00106
00107 mhat_3_x:=0
00108 mhat_3_y:=0
00109 mhat_3_z:=1
00110
00111 mhat_4_x:=0
00112 mhat_4_y:=0
00113 mhat_4_z:=1
00114
00115 % Joint ranges
00116
00117 % Two ranges for the universal joint connecting the palm and finger 1
00118 phi_1_1_min:=-15*pi/180
00119 phi_1_1_max:= 15*pi/180
00120
00121 phi_1_2_min:=0
00122 phi_1_2_max:=pi/2
00123
00124 % Range for the first rotation in finger 1
00125 phi_1_3_min:=0
00126 phi_1_3_max:=pi/2
00127
00128 % Range for the second rotation in finger 1
00129 phi_1_4_min:=0
00130 phi_1_4_max:=pi/2
00131
00132 % Two ranges for the universal joint connecting the palm and finger 2
00133 phi_2_1_min:=-15*pi/180
00134 phi_2_1_max:= 15*pi/180
00135
00136 phi_2_2_min:=0
00137 phi_2_2_max:=pi/2
00138
00139 % Range for the first rotation in finger 2
00140 phi_2_3_min:=0
00141 phi_2_3_max:=pi/2
00142
00143 % Range for the second rotation in finger 2
00144 phi_2_4_min:=0
00145 phi_2_4_max:=pi/2
00146
00147 % Two ranges for the universal joint connecting the palm and finger 3
00148 phi_3_1_min:=-15*pi/180
00149 phi_3_1_max:= 15*pi/180
00150
00151 phi_3_2_min:=0
00152 phi_3_2_max:=pi/2
00153
00154 % Range for the first rotation in finger 2
00155 phi_3_3_min:=0
00156 phi_3_3_max:=pi/2
00157
00158 % Range for the second rotation in finger 2
00159 phi_3_4_min:=0
00160 phi_3_4_max:=pi/2
00161
00162 % Two ranges for the universal joint connecting the palm and finger 4
00163 phi_4_1_min:=-15*pi/180
00164 phi_4_1_max:= 15*pi/180
00165
00166 phi_4_2_min:= pi/4
00167 phi_4_2_max:= 3*pi/4
00168
00169 % Range for the first rotation in finger 2
00170 phi_4_3_min:=0
00171 phi_4_3_max:=pi/2
00172
00173 % Range for the second rotation in finger 2
00174 phi_4_4_min:=0
00175 phi_4_4_max:=pi/2
00176
00177 % Radius of the cylinders representing the fingers
00178 rf:=20
00179
00180 % Radius of the spheres representing rotulas
00181 rr:=25
00182
00183 % Radius of the spheres representing contact points on the object
00184 rc:=5
00185
00186 [LINKS]
00187
00188 % palm
00189 palm: body "bodies/palm.off" color (0.5,0.5,0.5)
00190
00191 % finger 1
00192 p12: sphere rr (0,0,0) color (0.30,0.9,0.1)
00193 cylinder rf (0,0,0)
00194 (p_1_2,0,0) color (0.25,0.6,0.6)
00195
00196 p13: sphere rr (0,0,0) color (0.30,0.9,0.1)
00197 cylinder rf (0,0,0)
00198 (p_1_3,0,0) color (0.25,0.6,0.6)
00199
00200 p14: sphere rr (0,0,0) color (0.3,0.9,0.10)
00201 cylinder rf (0,0,0)
00202 (p_1_4,0,0) color (0.3,0.5,0.98)
00203 sphere rf (p_1_4,0,0) color (0.3,0.5,0.98)
00204
00205 % finger 2
00206 p22: sphere rr (0,0,0) color (0.30,0.9,0.1)
00207 cylinder rf (0,0,0)
00208 (p_2_2,0,0) color (0.25,0.6,0.6)
00209
00210 p23: sphere rr (0,0,0) color (0.30,0.9,0.1)
00211 cylinder rf (0,0,0)
00212 (p_2_3,0,0) color (0.25,0.6,0.6)
00213
00214 p24: sphere rr (0,0,0) color (0.3,0.9,0.10)
00215 cylinder rf (0,0,0)
00216 (p_2_4,0,0) color (0.3,0.5,0.98)
00217 sphere rf (p_2_4,0,0) color (0.3,0.5,0.98)
00218
00219 % finger 3
00220 p32: sphere rr (0,0,0) color (0.30,0.9,0.1)
00221 cylinder rf (0,0,0)
00222 (p_3_2,0,0) color (0.25,0.6,0.6)
00223
00224 p33: sphere rr (0,0,0) color (0.30,0.9,0.1)
00225 cylinder rf (0,0,0)
00226 (p_3_3,0,0) color (0.25,0.6,0.6)
00227
00228 p34: sphere rr (0,0,0) color (0.3,0.9,0.10)
00229 cylinder rf (0,0,0)
00230 (p_3_4,0,0) color (0.3,0.5,0.98)
00231 sphere rf (p_3_4,0,0) color (0.3,0.5,0.98)
00232
00233 % finger 4
00234 p42: sphere rr (0,0,0) color (0.3,0.9,0.10)
00235 cylinder rf (0,0,0)
00236 (p_4_2,0,0) color (0.25,0.6,0.6)
00237
00238 p43: sphere rr (0,0,0) color (0.3,0.9,0.10)
00239 cylinder rf (0,0,0)
00240 (p_4_3,0,0) color (0.25,0.6,0.6)
00241
00242 p44: sphere rr (0,0,0) color (0.3,0.9,0.10)
00243 cylinder rf (0,0,0)
00244 (p_4_4,0,0) color (0.3,0.5,0.98)
00245 sphere rf (p_4_4,0,0) color (0.3,0.5,0.98)
00246
00247 % Contact points are represented by cylinders (aligned with
00248 X_1 : red
00249 sphere rc*2 (0,0,0)
00250 cylinder rc (0,0,0)
00251 (5*rc*mhat_1_x,5*rc*mhat_1_y,5*rc*mhat_1_z)
00252 sphere rc (5*rc*mhat_1_x,5*rc*mhat_1_y,5*rc*mhat_1_z)
00253
00254 X_2: red
00255 sphere rc*2 (0,0,0)
00256 cylinder rc (0,0,0)
00257 (5*rc*mhat_2_x,5*rc*mhat_2_y,5*rc*mhat_2_z)
00258 sphere rc (5*rc*mhat_2_x,5*rc*mhat_2_y,5*rc*mhat_2_z)
00259
00260 X_3: red
00261 sphere rc*2 (0,0,0)
00262 cylinder rc (0,0,0)
00263 (5*rc*mhat_3_x,5*rc*mhat_3_y,5*rc*mhat_3_z)
00264 sphere rc (5*rc*mhat_3_x,5*rc*mhat_3_y,5*rc*mhat_3_z)
00265
00266 X_4: red
00267 sphere rc*2 (0,0,0)
00268 cylinder rc (0,0,0)
00269 (5*rc*mhat_4_x,5*rc*mhat_4_y,5*rc*mhat_4_z)
00270 sphere rc (5*rc*mhat_4_x,5*rc*mhat_4_y,5*rc*mhat_4_z)
00271
00272 [JOINTS]
00273
00274 % finger 1
00275 universal: palm (q_1_1_x,q_1_1_y,q_1_1_z)+(1,0,0)
00276 p12 (0,0,0)+(0,1,0)
00277 range [phi_1_1,phi_1_1] +(0,-1,0)
00278 [phi_1_2,phi_1_2] +(0,0,1)
00279
00280 revolute: p12 (p_1_2,0,0)+(0,-1,0)
00281 p13 (0,0,0)+(0,-1,0)
00282 range [phi_1_3,phi_1_3] +(1,0,0) +(1,0,0)
00283
00284 revolute: p13 (p_1_3,0,0)+(0,-1,0)
00285 p14 (0,0,0)+(0,-1,0)
00286 range [phi_1_4,phi_1_4] +(1,0,0) +(1,0,0)
00287
00288 % finger 2
00289 universal: palm (q_2_1_x,q_2_1_y,q_2_1_z)+(1,0,0)
00290 p22 (0,0,0)+(0,1,0)
00291 range [phi_2_1,phi_2_1] +(0,-1,0)
00292 [phi_2_2,phi_2_2] +(0,0,1)
00293
00294 revolute: p22 (p_2_2,0,0)+(0,-1,0)
00295 p23 (0,0,0)+(0,-1,0)
00296 range [phi_2_3,phi_2_3] +(1,0,0) +(1,0,0)
00297
00298 revolute: p23 (p_2_3,0,0)+(0,-1,0)
00299 p24 (0,0,0)+(0,-1,0)
00300 range [phi_2_4,phi_2_4] +(1,0,0) +(1,0,0)
00301
00302 % finger 3
00303 universal: palm (q_3_1_x,q_3_1_y,q_3_1_z)+(1,0,0)
00304 p32 (0,0,0)+(0,1,0)
00305 range [phi_3_1,phi_3_1] +(0,-1,0)
00306 [phi_3_2,phi_3_2] +(0,0,1)
00307
00308 revolute: p32 (p_3_2,0,0)+(0,-1,0)
00309 p33 (0,0,0)+(0,-1,0)
00310 range [phi_3_3,phi_3_3] +(1,0,0) +(1,0,0)
00311
00312 revolute: p33 (p_3_3,0,0)+(0,-1,0)
00313 p34 (0,0,0)+(0,-1,0)
00314 range [phi_3_4,phi_3_4] +(1,0,0) +(1,0,0)
00315
00316 % finger 4
00317 universal: palm (q_4_1_x,q_4_1_y,q_4_1_z)+(-1,0,0)
00318 p42 (0,0,0)+(0,-1,0)
00319 range [phi_4_1,phi_4_1] +(0,-1,0)
00320 [phi_4_2,phi_4_2] +(0, 0,1)
00321
00322 revolute: p42 (p_4_2,0,0)+(0,-1,0)
00323 p43 (0,0,0)+(0,-1,0)
00324 range [phi_4_3,phi_4_3] +(1,0,0) +(1,0,0)
00325
00326 revolute: p43 (p_4_3,0,0)+(0,-1,0)
00327 p44 (0,0,0)+(0,-1,0)
00328 range [phi_4_4,phi_4_4] +(1,0,0) +(1,0,0)
00329
00330 fix: p14 X_1 Txyz(q_1_4_x,q_1_4_y,q_1_4_z)
00331 fix: p24 X_2 Txyz(q_2_4_x,q_2_4_y,q_2_4_z)
00332 fix: p34 X_3 Txyz(q_3_4_x,q_3_4_y,q_3_4_z)
00333 fix: p44 X_4 Txyz(q_4_4_x,q_4_4_y,q_4_4_z)
00334