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