Institut de Robòtica i Informàtica Industrial
KRD Group

The CuikSuite Project

RobotHand.world

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