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

The CuikSuite Project

MarylandManipulator.world

Go to the documentation of this file.
00001 
00002 [CONSTANTS]
00003 
00004 % INPUT PARAMETERS
00005 
00006 theta1_min:= pi/3+0.2
00007 theta1_max:= theta1_min
00008 
00009 theta2_min:= pi/3
00010 theta2_max:= theta2_min
00011 
00012 theta3_min:= pi/3-0.2
00013 theta3_max:= theta3_min
00014 
00015 % PARAMETERS OF THE PLATFORM
00016 
00017 % radius of the circunference inscribing the base triangle
00018 r_b:=1
00019 
00020 % angles from the center of the base to the legs anchor points
00021 beta1_b:=0
00022 beta2_b:=beta1_b+(2*pi/3)
00023 beta3_b:=beta2_b+(2*pi/3)
00024 
00025 % radius of the circunference inscribing the platform triangle
00026 r_p:=1
00027 
00028 % angles from the center of the platform to the legs anchor points
00029 beta1_p:=0
00030 beta2_p:=beta1_p+(2*pi/3)
00031 beta3_p:=beta2_p+(2*pi/3)
00032 
00033 % Length of the bottom part of each leg
00034 lenght_A:=1
00035 
00036 % Length of the upper part of each leg (i.e., the long bar of the 4 bar)
00037 length_B:=1
00038 
00039 % Length of the short bar forming the 4 bars in the upper part of each leg
00040 length_B1:=0.1
00041 
00042 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00043 % nothing to be modified behond this point
00044 
00045 % Anchor points of the legs in the base
00046 x1_b:=r_b*cos(beta1_b)
00047 y1_b:=r_b*sin(beta1_b)
00048 
00049 x2_b:=r_b*cos(beta2_b)
00050 y2_b:=r_b*sin(beta2_b)
00051 
00052 x3_b:=r_b*cos(beta3_b)
00053 y3_b:=r_b*sin(beta3_b)
00054 
00055 % Tangent vectors to the sphere inscribing the base triangle at the
00056 % leg anchor points
00057 alpha1_b:=beta1_b+pi/2
00058 alpha2_b:=beta2_b+pi/2
00059 alpha3_b:=beta3_b+pi/2
00060 
00061 % Anchor points of the legs in the platform
00062 x1_p:=r_p*cos(beta1_p)
00063 y1_p:=r_p*sin(beta1_p)
00064 
00065 x2_p:=r_p*cos(beta2_p)
00066 y2_p:=r_p*sin(beta2_p)
00067 
00068 x3_p:=r_p*cos(beta3_p)
00069 y3_p:=r_p*sin(beta3_p)
00070 
00071 % Tangent vectors to the sphere inscribing the plotform triangle at the
00072 % leg anchor points
00073 alpha1_p:=beta1_p+pi/2
00074 alpha2_p:=beta2_p+pi/2
00075 alpha3_p:=beta3_p+pi/2
00076 
00077 % radius of the bars used in the representation. The bars for the
00078 % base/platform are 1.5 times this radius
00079 rb:=0.025
00080 
00081 
00082 [LINKS]
00083 
00084 base : 0.5*red
00085        % One sphere at each vertex of the triangle
00086        sphere rb*1.5 (x1_b,y1_b,0) 
00087        sphere rb*1.5 (x2_b,y2_b,0)
00088        sphere rb*1.5 (x3_b,y3_b,0)
00089 
00090        % Three bars forming the triangle
00091        cylinder rb*1.5 (x1_b,y1_b,0)(x2_b,y2_b,0)
00092        cylinder rb*1.5 (x1_b,y1_b,0)(x3_b,y3_b,0) 
00093        cylinder rb*1.5 (x2_b,y2_b,0)(x3_b,y3_b,0) 
00094 
00095        % Part of the revolute joint with the first leg fixed at the base
00096        cylinder rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0) 
00097                    (x1_b-0.5*length_B1*cos(alpha1_b),y1_b-0.5*length_B1*sin(alpha1_b),0)
00098        sphere rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0)
00099        cylinder rb (x1_b+0.5*length_B1*cos(alpha1_b),y1_b+0.5*length_B1*sin(alpha1_b),0) 
00100                    (x1_b+    length_B1*cos(alpha1_b),y1_b+    length_B1*sin(alpha1_b),0)
00101        sphere rb (x1_b+ length_B1*cos(alpha1_b),y1_b+ length_B1*sin(alpha1_b),0)
00102 
00103        % Part of the revolute joint with the second leg fixed at the base
00104        cylinder rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0) 
00105                    (x2_b-0.5*length_B1*cos(alpha2_b),y2_b-0.5*length_B1*sin(alpha2_b),0)
00106        sphere rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0)
00107        cylinder rb (x2_b+0.5*length_B1*cos(alpha2_b),y2_b+0.5*length_B1*sin(alpha2_b),0) 
00108                    (x2_b+    length_B1*cos(alpha2_b),y2_b+    length_B1*sin(alpha2_b),0)
00109        sphere rb (x2_b+ length_B1*cos(alpha2_b),y2_b+ length_B1*sin(alpha2_b),0)
00110 
00111        % Part of the revolute joint with the third leg fixed at the base
00112        cylinder rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0) 
00113                    (x3_b-0.5*length_B1*cos(alpha3_b),y3_b-0.5*length_B1*sin(alpha3_b),0)
00114        sphere rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0)
00115        cylinder rb (x3_b+0.5*length_B1*cos(alpha3_b),y3_b+0.5*length_B1*sin(alpha3_b),0) 
00116                    (x3_b+    length_B1*cos(alpha3_b),y3_b+    length_B1*sin(alpha3_b),0)
00117        sphere rb (x3_b+ length_B1*cos(alpha3_b),y3_b+ length_B1*sin(alpha3_b),0)
00118 
00119 
00120 platform: 0.5*green
00121           sphere rb*1.5 (x1_p,y1_p,0) 
00122           sphere rb*1.5 (x2_p,y2_p,0)
00123           sphere rb*1.5 (x3_p,y3_p,0)
00124           cylinder rb*1.5 (x1_p,y1_p,0)(x2_p,y2_p,0)
00125           cylinder rb*1.5 (x1_p,y1_p,0)(x3_p,y3_p,0) 
00126           cylinder rb*1.5 (x2_p,y2_p,0)(x3_p,y3_p,0)
00127 
00128           cylinder rb (x1_p-0.5*length_B1*cos(alpha1_p),y1_p-0.5*length_B1*sin(alpha1_p),0) 
00129                       (x1_p+0.5*length_B1*cos(alpha1_p),y1_p+0.5*length_B1*sin(alpha1_p),0)
00130 
00131           cylinder rb (x2_p-0.5*length_B1*cos(alpha2_p),y2_p-0.5*length_B1*sin(alpha2_p),0) 
00132                       (x2_p+0.5*length_B1*cos(alpha2_p),y2_p+0.5*length_B1*sin(alpha2_p),0)
00133 
00134           cylinder rb (x3_p-0.5*length_B1*cos(alpha3_p),y3_p-0.5*length_B1*sin(alpha3_p),0) 
00135                       (x3_p+0.5*length_B1*cos(alpha3_p),y3_p+0.5*length_B1*sin(alpha3_p),0)
00136 
00137 
00138 leg1_a: cylinder rb (0,0,0) (0,0,lenght_A)
00139 
00140         cylinder rb (-0.5*length_B1,0,0) 
00141                     (+0.5*length_B1,0,0)
00142         cylinder rb (-0.5*length_B1,0,lenght_A) 
00143                     (+0.5*length_B1,0,lenght_A)
00144         
00145 
00146 leg1_b1: 0.75*white
00147          cylinder rb (0,0,0) (0.5*length_B1,0,0)
00148          cylinder rb (1.5*length_B1,0,0) (2*length_B1,0,0)
00149 
00150          cylinder rb (0,0,-length_B1) (0,0,-0.5*length_B1)
00151          sphere rb (0,0,-length_B1)  
00152 
00153          cylinder rb (0,0,0.5*length_B1) (0,0,length_B1) 
00154          sphere rb (0,0, length_B1) 
00155          
00156          cylinder rb (2*length_B1,0,-length_B1) (2*length_B1,0,-0.5*length_B1)
00157          sphere rb (2*length_B1,0,-length_B1)  
00158 
00159          cylinder rb (2*length_B1,0,0.5*length_B1) (2*length_B1,0,length_B1) 
00160          sphere rb (2*length_B1,0, length_B1) 
00161 
00162 leg1_b2: 0.25*white
00163          cylinder rb (0,0,0)
00164                      (length_B,0,0)
00165          cylinder rb (0,0,-0.5*length_B1)
00166                      (0,0, 0.5*length_B1)
00167 
00168          cylinder rb (length_B,0, 0.5*length_B1)
00169                      (length_B,0,     length_B1)
00170          sphere rb   (length_B,0,     length_B1)
00171          cylinder rb (length_B,0,-0.5*length_B1)
00172                      (length_B,0,    -length_B1)
00173          sphere rb   (length_B,0,    -length_B1)
00174 
00175 leg1_b3: 0.25*white
00176          cylinder rb (0,0,0)
00177                      (length_B,0,0)
00178          cylinder rb (0,0,-0.5*length_B1)
00179                      (0,0, 0.5*length_B1)
00180          cylinder rb (length_B,0, 0.5*length_B1)
00181                      (length_B,0,     length_B1)
00182          sphere rb   (length_B,0,     length_B1)
00183          cylinder rb (length_B,0,-0.5*length_B1)
00184                      (length_B,0,    -length_B1)
00185          sphere rb   (length_B,0,    -length_B1)
00186 
00187 leg1_b4: 0.75*white
00188          cylinder rb (0,0,0)
00189                      (0.5*length_B1,0,0)
00190          cylinder rb (1.5*length_B1,0,0)
00191                      (  2*length_B1,0,0)
00192          cylinder rb (0,0,-0.5*length_B1)
00193                      (0,0, 0.5*length_B1)
00194          cylinder rb (2*length_B1,0,-0.5*length_B1)
00195                      (2*length_B1,0, 0.5*length_B1)
00196          
00197 leg2_a: cylinder rb (0,0,0) (0,0,lenght_A)
00198         cylinder rb (-0.5*length_B1,0,0) 
00199                     (+0.5*length_B1,0,0)
00200         cylinder rb (-0.5*length_B1,0,lenght_A) 
00201                     (+ 0.5*length_B1,0,lenght_A)
00202         
00203 
00204 leg2_b1: 0.75*white
00205          cylinder rb (0,0,0) (0.5*length_B1,0,0)
00206          cylinder rb (1.5*length_B1,0,0) (2*length_B1,0,0)
00207 
00208          cylinder rb (0,0,-length_B1) (0,0,-0.5*length_B1)
00209          sphere rb (0,0,-length_B1)  
00210          cylinder rb (0,0,0.5*length_B1) (0,0,length_B1) 
00211          sphere rb (0,0, length_B1) 
00212          cylinder rb (2*length_B1,0,-length_B1) (2*length_B1,0,-0.5*length_B1)
00213          sphere rb (2*length_B1,0,-length_B1)  
00214          cylinder rb (2*length_B1,0,0.5*length_B1) (2*length_B1,0,length_B1) 
00215          sphere rb (2*length_B1,0, length_B1) 
00216 
00217 leg2_b2: 0.25*white
00218          cylinder rb (0,0,0)
00219                      (length_B,0,0)
00220          cylinder rb (0,0,-0.5*length_B1)
00221                      (0,0, 0.5*length_B1)
00222 
00223          cylinder rb (length_B,0, 0.5*length_B1)
00224                      (length_B,0,     length_B1)
00225          sphere rb   (length_B,0,     length_B1)
00226          cylinder rb (length_B,0,-0.5*length_B1)
00227                      (length_B,0,    -length_B1)
00228          sphere rb   (length_B,0,    -length_B1)
00229 
00230 leg2_b3: 0.25*white
00231          cylinder rb (0,0,0)
00232                      (length_B,0,0)
00233          cylinder rb (0,0,-0.5*length_B1)
00234                      (0,0, 0.5*length_B1)
00235 
00236          cylinder rb (length_B,0, 0.5*length_B1)
00237                      (length_B,0,     length_B1)
00238          sphere rb   (length_B,0,     length_B1)
00239          cylinder rb (length_B,0,-0.5*length_B1)
00240                      (length_B,0,    -length_B1)
00241          sphere rb   (length_B,0,    -length_B1)
00242 
00243 leg2_b4: 0.75*white
00244          cylinder rb (0,0,0)
00245                      (0.5*length_B1,0,0)
00246          cylinder rb (1.5*length_B1,0,0)
00247                      (  2*length_B1,0,0)
00248 
00249          cylinder rb (0,0,-0.5*length_B1)
00250                      (0,0, 0.5*length_B1)
00251          cylinder rb (2*length_B1,0,-0.5*length_B1)
00252                      (2*length_B1,0, 0.5*length_B1)
00253 
00254 
00255 leg3_a: cylinder rb (0,0,0) (0,0,lenght_A)
00256 
00257         cylinder rb (-0.5*length_B1,0,0) 
00258                     (+0.5*length_B1,0,0)
00259         cylinder rb (-0.5*length_B1,0,lenght_A) 
00260                     (+0.5*length_B1,0,lenght_A)
00261         
00262 
00263 leg3_b1: 0.75*white
00264          cylinder rb (0,0,0) (0.5*length_B1,0,0)
00265          cylinder rb (1.5*length_B1,0,0) (2*length_B1,0,0)
00266 
00267          cylinder rb (0,0,-length_B1) (0,0,-0.5*length_B1)
00268          sphere rb (0,0,-length_B1)  
00269          cylinder rb (0,0,0.5*length_B1) (0,0,length_B1) 
00270          sphere rb (0,0, length_B1) 
00271          cylinder rb (2*length_B1,0,-length_B1) (2*length_B1,0,-0.5*length_B1)
00272          sphere rb (2*length_B1,0,-length_B1)  
00273          cylinder rb (2*length_B1,0,0.5*length_B1) (2*length_B1,0,length_B1) 
00274          sphere rb (2*length_B1,0, length_B1) 
00275 
00276 leg3_b2: 0.25*white
00277          cylinder rb (0,0,0)
00278                      (length_B,0,0)
00279          cylinder rb (0,0,-0.5*length_B1)
00280                      (0,0, 0.5*length_B1)
00281 
00282          cylinder rb (length_B,0, 0.5*length_B1)
00283                      (length_B,0,     length_B1)
00284          sphere rb   (length_B,0,     length_B1)
00285          cylinder rb (length_B,0,-0.5*length_B1)
00286                      (length_B,0,    -length_B1)
00287          sphere rb   (length_B,0,    -length_B1)
00288 
00289 leg3_b3: 0.25*white
00290          cylinder rb (0,0,-0.5*length_B1)
00291                      (0,0, 0.5*length_B1)
00292          cylinder rb (length_B,0, 0.5*length_B1)
00293                      (length_B,0,     length_B1)
00294 
00295          cylinder rb (0,0,0)
00296                      (length_B,0,0)
00297          sphere rb   (length_B,0,     length_B1)
00298          cylinder rb (length_B,0,-0.5*length_B1)
00299                      (length_B,0,    -length_B1)
00300          sphere rb   (length_B,0,    -length_B1)
00301 
00302 leg3_b4: 0.75*white
00303          cylinder rb (0,0,-0.5*length_B1)
00304                      (0,0, 0.5*length_B1)
00305          cylinder rb (0,0,0)
00306                      (0.5*length_B1,0,0)
00307          cylinder rb (1.5*length_B1,0,0)
00308                      (  2*length_B1,0,0)
00309          cylinder rb (2*length_B1,0,-0.5*length_B1)
00310                      (2*length_B1,0, 0.5*length_B1)
00311 
00312 [JOINTS]
00313 %---------------------------------------------------------
00314 
00315 revolute: base   (x1_b,y1_b,0)+(cos(alpha1_b),sin(alpha1_b),0)
00316           leg1_a (0,0,0)+(1,0,0)
00317           range [theta1_min,theta1_max] +(cos(beta1_b),sin(beta1_b),0) +(0,-1,0)
00318 
00319 revolute: leg1_a  (0,0,lenght_A)+(1,0,0)
00320           leg1_b1 (length_B1,0,0)+(1,0,0)
00321 
00322 revolute: leg1_b1 (0,0,0)+(0,0,1)
00323           leg1_b2 (0,0,0)+(0,0,1)
00324           range [-pi/2,pi/2] +(0,1,0) +(1,0,0)
00325 
00326 revolute: leg1_b1 (2*length_B1,0,0)+(0,0,1) 
00327           leg1_b3 (0,0,0)+(0,0,1)
00328 
00329 revolute: leg1_b2 (length_B,0,0)+(0,0,1)
00330           leg1_b4 (0,0,0)+(0,0,1)
00331 
00332 revolute: leg1_b3 (length_B,0,0)+(0,0,1)
00333           leg1_b4 (2*length_B1,0,0)+(0,0,1)
00334 
00335 revolute: leg1_b4  (length_B1,0,0)+(1,0,0)
00336           platform (x1_p,y1_p,0)+(cos(alpha1_p),sin(alpha1_p),0)
00337 
00338 %---------------------------------------------------------
00339 
00340 revolute: base   (x2_b,y2_b,0)+(cos(alpha2_b),sin(alpha2_b),0)
00341           leg2_a (0,0,0)+(1,0,0)
00342           range [theta2_min,theta2_max] +(cos(beta2_b),sin(beta2_b),0) +(0,-1,0)
00343 
00344 revolute: leg2_a  (0,0,lenght_A)+(1,0,0)
00345           leg2_b1 (length_B1,0,0)+(1,0,0)
00346 
00347 revolute: leg2_b1 (0,0,0)+(0,0,1)
00348           leg2_b2 (0,0,0)+(0,0,1)
00349           range [-pi/2,pi/2] +(0,1,0) +(1,0,0)
00350 
00351 revolute: leg2_b1 (2*length_B1,0,0)+(0,0,1) 
00352           leg2_b3 (0,0,0)+(0,0,1)
00353 
00354 revolute: leg2_b2 (length_B,0,0)+(0,0,1)
00355           leg2_b4 (0,0,0)+(0,0,1)
00356 
00357 revolute: leg2_b3 (length_B,0,0)+(0,0,1)
00358           leg2_b4 (2*length_B1,0,0)+(0,0,1)
00359 
00360 revolute: leg2_b4  (length_B1,0,0)+(1,0,0)
00361           platform (x2_p,y2_p,0)+(cos(alpha2_p),sin(alpha2_p),0)
00362 
00363 %---------------------------------------------------------
00364 
00365 revolute: base   (x3_b,y3_b,0)+(cos(alpha3_b),sin(alpha3_b),0)
00366           leg3_a (0,0,0)+(1,0,0)
00367           range [theta3_min,theta3_max] +(cos(beta3_b),sin(beta3_b),0) +(0,-1,0)
00368 
00369 revolute: leg3_a  (0,0,lenght_A)+(1,0,0)
00370           leg3_b1 (length_B1,0,0)+(1,0,0)
00371 
00372 revolute: leg3_b1 (0,0,0)+(0,0,1)
00373           leg3_b2 (0,0,0)+(0,0,1)
00374           range [-pi/2,pi/2] +(0,1,0) +(1,0,0)
00375 
00376 revolute: leg3_b1 (2*length_B1,0,0)+(0,0,1) 
00377           leg3_b3 (0,0,0)+(0,0,1)
00378 
00379 revolute: leg3_b2 (length_B,0,0)+(0,0,1)
00380           leg3_b4 (0,0,0)+(0,0,1)
00381 
00382 revolute: leg3_b3 (length_B,0,0)+(0,0,1)
00383           leg3_b4 (2*length_B1,0,0)+(0,0,1)
00384 
00385 revolute: leg3_b4  (length_B1,0,0)+(1,0,0)
00386           platform (x3_p,y3_p,0)+(cos(alpha3_p),sin(alpha3_p),0)
00387 
00388 %---------------------------------------------------------
00389 %fix: base platform Tz(1)
00390