00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "ArExport.h"
00027 #include "ariaOSDef.h"
00028 #include "ArRobotTypes.h"
00029 #include "ArLog.h"
00030
00033
00034
00035 AREXPORT ArRobotGeneric::ArRobotGeneric(const char *dir)
00036 {
00037 }
00038
00039
00040
00041 AREXPORT ArRobotAmigo::ArRobotAmigo(const char *dir)
00042 {
00043 sprintf(mySubClass, "amigo");
00044 myRobotRadius = 180;
00045 myRobotDiagonal = 120;
00046 myAbsoluteMaxRVelocity = 300;
00047 myAbsoluteMaxVelocity = 1000;
00048 myDistConvFactor = 0.5083;
00049 myVelConvFactor = 0.6154;
00050 myRangeConvFactor = 1.0;
00051 myDiffConvFactor = 0.011;
00052 myVel2Divisor = 20;
00053 myRobotWidth = 279;
00054 myRobotLength = 330;
00055 myRobotLengthFront = 160;
00056 myRobotLengthRear = 170;
00057
00058 myNumSonar = 8;
00059 internalSetSonar(0, 76, 100, 90);
00060 internalSetSonar(1, 125, 75, 41);
00061 internalSetSonar(2, 150, 30, 15);
00062 internalSetSonar(3, 150, -30, -15);
00063 internalSetSonar(4, 125, -75, -41);
00064 internalSetSonar(5, 76, -100, -90);
00065 internalSetSonar(6, -140, -58, -145);
00066 internalSetSonar(7, -140, 58, 145);
00067
00068 myLaserPort[0] = '\0';
00069 }
00070
00071
00072
00073 AREXPORT ArRobotAmigoSh::ArRobotAmigoSh(const char *dir)
00074 {
00075 sprintf(mySubClass, "amigo-sh");
00076 myRobotRadius = 180;
00077 myRobotDiagonal = 120;
00078 myAbsoluteMaxRVelocity = 300;
00079 myAbsoluteMaxVelocity = 1000;
00080 myDistConvFactor = 1;
00081 myVelConvFactor = 1.0;
00082 myRangeConvFactor = 1.0;
00083 myDiffConvFactor = 0.011;
00084 myVel2Divisor = 20;
00085 myRobotWidth = 279;
00086 myRobotLength = 330;
00087 myRobotLengthFront = 160;
00088 myRobotLengthRear = 170;
00089
00090 myNumSonar = 8;
00091 internalSetSonar(0, 70, 100, 90);
00092 internalSetSonar(1, 125, 75, 41);
00093 internalSetSonar(2, 144, 30, 15);
00094 internalSetSonar(3, 144, -30, -15);
00095 internalSetSonar(4, 120, -75, -41);
00096 internalSetSonar(5, 70, -100, -90);
00097 internalSetSonar(6, -146, -58, -145);
00098 internalSetSonar(7, -146, 58, 145);
00099
00100 myLaserPort[0] = '\0';
00101 }
00102
00103
00104
00105 AREXPORT ArRobotP2AT::ArRobotP2AT(const char *dir)
00106 {
00107 sprintf(mySubClass, "p2at");
00108 myRobotRadius = 500;
00109 myRobotDiagonal = 120;
00110 myAbsoluteMaxRVelocity = 300;
00111 myAbsoluteMaxVelocity = 1200;
00112 myDistConvFactor = 1.32;
00113 myRangeConvFactor = 0.268;
00114 myDiffConvFactor = 0.0034;
00115 myRobotWidth = 505;
00116 myRobotLength = 626;
00117 myRobotLengthFront = 313;
00118 myRobotLengthRear = 313;
00119
00120 myNumSonar = 16;
00121 internalSetSonar(0, 147, 136, 90);
00122 internalSetSonar(1, 193, 119, 50);
00123 internalSetSonar(2, 227, 79, 30);
00124 internalSetSonar(3, 245, 27, 10);
00125 internalSetSonar(4, 245, -27, -10);
00126 internalSetSonar(5, 227, -79, -30);
00127 internalSetSonar(6, 193, -119, -50);
00128 internalSetSonar(7, 147, -136, -90);
00129
00130 internalSetSonar(8, -144, -136, -90);
00131 internalSetSonar(9, -189, -119, -130);
00132 internalSetSonar(10, -223, -79, -150);
00133 internalSetSonar(11, -241, -27, -170);
00134 internalSetSonar(12, -241, 27, 170);
00135 internalSetSonar(13, -223, 79, 150);
00136 internalSetSonar(14, -189, 119, 130);
00137 internalSetSonar(15, -144, 136, 90);
00138
00139 myLaserX = 160;
00140 myLaserY = 7;
00141 }
00142
00143
00144
00145 AREXPORT ArRobotP2AT8::ArRobotP2AT8(const char *dir)
00146 {
00147 sprintf(mySubClass, "p2at8");
00148 myRobotRadius = 500;
00149 myRobotDiagonal = 120;
00150 myAbsoluteMaxRVelocity = 300;
00151 myAbsoluteMaxVelocity = 1200;
00152 myDistConvFactor = 1.32;
00153 myRangeConvFactor = 1.0;
00154 myDiffConvFactor = 0.0034;
00155 myRobotWidth = 505;
00156 myRobotLength = 626;
00157 myRobotLengthFront = 313;
00158 myRobotLengthRear = 313;
00159
00160 myNumSonar = 16;
00161 internalSetSonar(0, 147, 136, 90);
00162 internalSetSonar(1, 193, 119, 50);
00163 internalSetSonar(2, 227, 79, 30);
00164 internalSetSonar(3, 245, 27, 10);
00165 internalSetSonar(4, 245, -27, -10);
00166 internalSetSonar(5, 227, -79, -30);
00167 internalSetSonar(6, 193, -119, -50);
00168 internalSetSonar(7, 147, -136, -90);
00169
00170 internalSetSonar(8, -144, -136, -90);
00171 internalSetSonar(9, -189, -119, -130);
00172 internalSetSonar(10, -223, -79, -150);
00173 internalSetSonar(11, -241, -27, -170);
00174 internalSetSonar(12, -241, 27, 170);
00175 internalSetSonar(13, -223, 79, 150);
00176 internalSetSonar(14, -189, 119, 130);
00177 internalSetSonar(15, -144, 136, 90);
00178
00179 myLaserX = 160;
00180 myLaserY = 7;
00181 }
00182
00183
00184
00185
00186 AREXPORT ArRobotP2IT::ArRobotP2IT(const char *dir)
00187 {
00188 sprintf(mySubClass, "p2it");
00189 myRobotRadius = 500;
00190 myRobotDiagonal = 120;
00191 myAbsoluteMaxRVelocity = 300;
00192 myAbsoluteMaxVelocity = 1200;
00193 myDistConvFactor = 1.136;
00194 myRangeConvFactor = 0.268;
00195 myDiffConvFactor = 0.0032;
00196 myRobotWidth = 505;
00197 myRobotLength = 626;
00198 myRobotLengthFront = 313;
00199 myRobotLengthRear = 313;
00200
00201 myNumSonar = 16;
00202 internalSetSonar(0, 147, 136, 90);
00203 internalSetSonar(1, 193, 119, 50);
00204 internalSetSonar(2, 227, 79, 30);
00205 internalSetSonar(3, 245, 27, 10);
00206 internalSetSonar(4, 245, -27, -10);
00207 internalSetSonar(5, 227, -79, -30);
00208 internalSetSonar(6, 193, -119, -50);
00209 internalSetSonar(7, 147, -136, -90);
00210
00211 internalSetSonar(8, -144, -136, -90);
00212 internalSetSonar(9, -189, -119, -130);
00213 internalSetSonar(10, -223, -79, -150);
00214 internalSetSonar(11, -241, -27, -170);
00215 internalSetSonar(12, -241, 27, 170);
00216 internalSetSonar(13, -223, 79, 150);
00217 internalSetSonar(14, -189, 119, 130);
00218 internalSetSonar(15, -144, 136, 90);
00219 myLaserX = 160;
00220 myLaserY = 7;
00221 }
00222
00223
00224
00225
00226 AREXPORT ArRobotP2DX::ArRobotP2DX(const char *dir)
00227 {
00228 sprintf(mySubClass, "p2dx");
00229 myRobotRadius = 250;
00230 myRobotDiagonal = 120;
00231 myAbsoluteMaxRVelocity = 500;
00232 myAbsoluteMaxVelocity = 2200;
00233 myDistConvFactor = 0.84;
00234 myRangeConvFactor = 0.268;
00235 myDiffConvFactor = 0.0056;
00236 myRobotWidth = 425;
00237 myRobotLength = 511;
00238 myRobotLengthFront = 210;
00239 myRobotLengthRear = 301;
00240
00241 myNumSonar = 16;
00242 internalSetSonar(0, 69, 136, 90);
00243 internalSetSonar(1, 114, 119, 50);
00244 internalSetSonar(2, 148, 78, 30);
00245 internalSetSonar(3, 166, 27, 10);
00246 internalSetSonar(4, 166, -27, -10);
00247 internalSetSonar(5, 148, -78, -30);
00248 internalSetSonar(6, 114, -119, -50);
00249 internalSetSonar(7, 69, -136, -90);
00250
00251 internalSetSonar(8, -157, -136, -90);
00252 internalSetSonar(9, -203, -119, -130);
00253 internalSetSonar(10, -237, -78, -150);
00254 internalSetSonar(11, -255, -27, -170);
00255 internalSetSonar(12, -255, 27, 170);
00256 internalSetSonar(13, -237, 78, 150);
00257 internalSetSonar(14, -203, 119, 130);
00258 internalSetSonar(15, -157, 136, 90);
00259
00260 myLaserX = 17;
00261 myLaserY = 8;
00262 }
00263
00264
00265
00266 AREXPORT ArRobotP2DXe::ArRobotP2DXe(const char *dir)
00267 {
00268 sprintf(mySubClass, "p2de");
00269 myRobotRadius = 250;
00270 myRobotDiagonal = 120;
00271 myAbsoluteMaxRVelocity = 500;
00272 myAbsoluteMaxVelocity = 2200;
00273 myDistConvFactor = 0.969;
00274 myRangeConvFactor = 0.268;
00275 myDiffConvFactor = 0.0056;
00276 myRobotWidth = 425;
00277 myRobotLength = 511;
00278 myRobotLengthFront = 210;
00279 myRobotLengthRear = 301;
00280
00281 myNumSonar = 16;
00282 internalSetSonar(0, 69, 136, 90);
00283 internalSetSonar(1, 114, 119, 50);
00284 internalSetSonar(2, 148, 78, 30);
00285 internalSetSonar(3, 166, 27, 10);
00286 internalSetSonar(4, 166, -27, -10);
00287 internalSetSonar(5, 148, -78, -30);
00288 internalSetSonar(6, 114, -119, -50);
00289 internalSetSonar(7, 69, -136, -90);
00290
00291 internalSetSonar(8, -157, -136, -90);
00292 internalSetSonar(9, -203, -119, -130);
00293 internalSetSonar(10, -237, -78, -150);
00294 internalSetSonar(11, -255, -27, -170);
00295 internalSetSonar(12, -255, 27, 170);
00296 internalSetSonar(13, -237, 78, 150);
00297 internalSetSonar(14, -203, 119, 130);
00298 internalSetSonar(15, -157, 136, 90);
00299
00300 myLaserX = 17;
00301 myLaserY = 8;
00302 }
00303
00304
00305
00306 AREXPORT ArRobotP2DF::ArRobotP2DF(const char *dir)
00307 {
00308 sprintf(mySubClass, "p2df");
00309 myRobotRadius = 250;
00310 myRobotDiagonal = 120;
00311 myAbsoluteMaxRVelocity = 500;
00312 myAbsoluteMaxVelocity = 2200;
00313 myDistConvFactor = 0.485;
00314 myRangeConvFactor = 0.268;
00315 myDiffConvFactor = .0060;
00316 myRobotWidth = 425;
00317 myRobotLength = 511;
00318 myRobotLengthFront = 210;
00319 myRobotLengthRear = 301;
00320
00321 myNumSonar = 16;
00322 internalSetSonar(0, 69, 136, 90);
00323 internalSetSonar(1, 114, 119, 50);
00324 internalSetSonar(2, 148, 78, 30);
00325 internalSetSonar(3, 166, 27, 10);
00326 internalSetSonar(4, 166, -27, -10);
00327 internalSetSonar(5, 148, -78, -30);
00328 internalSetSonar(6, 114, -119, -50);
00329 internalSetSonar(7, 69, -136, -90);
00330
00331 internalSetSonar(8, -157, -136, -90);
00332 internalSetSonar(9, -203, -119, -130);
00333 internalSetSonar(10, -237, -78, -150);
00334 internalSetSonar(11, -255, -27, -170);
00335 internalSetSonar(12, -255, 27, 170);
00336 internalSetSonar(13, -237, 78, 150);
00337 internalSetSonar(14, -203, 119, 130);
00338 internalSetSonar(15, -157, 136, 90);
00339
00340 myLaserX = 17;
00341 myLaserY = 8;
00342 }
00343
00344
00345
00346 AREXPORT ArRobotP2D8::ArRobotP2D8(const char *dir)
00347 {
00348 sprintf(mySubClass, "p2d8");
00349 myRobotRadius = 250;
00350 myRobotDiagonal = 120;
00351 myAbsoluteMaxRVelocity = 500;
00352 myAbsoluteMaxVelocity = 2200;
00353 myDistConvFactor = 0.485;
00354 myRangeConvFactor = 1.0;
00355 myDiffConvFactor = 0.0056;
00356 myRobotWidth = 425;
00357 myRobotLength = 511;
00358 myRobotLengthFront = 210;
00359 myRobotLengthRear = 301;
00360
00361 myNumSonar = 16;
00362 internalSetSonar(0, 69, 136, 90);
00363 internalSetSonar(1, 114, 119, 50);
00364 internalSetSonar(2, 148, 78, 30);
00365 internalSetSonar(3, 166, 27, 10);
00366 internalSetSonar(4, 166, -27, -10);
00367 internalSetSonar(5, 148, -78, -30);
00368 internalSetSonar(6, 114, -119, -50);
00369 internalSetSonar(7, 69, -136, -90);
00370
00371 internalSetSonar(8, -157, -136, -90);
00372 internalSetSonar(9, -203, -119, -130);
00373 internalSetSonar(10, -237, -78, -150);
00374 internalSetSonar(11, -255, -27, -170);
00375 internalSetSonar(12, -255, 27, 170);
00376 internalSetSonar(13, -237, 78, 150);
00377 internalSetSonar(14, -203, 119, 130);
00378 internalSetSonar(15, -157, 136, 90);
00379
00380 myLaserX = 18;
00381 myLaserY = 0;
00382 }
00383
00384
00385
00386
00387
00388 AREXPORT ArRobotP2CE::ArRobotP2CE(const char *dir)
00389 {
00390 sprintf(mySubClass, "p2ce");
00391 myRobotRadius = 250;
00392 myRobotDiagonal = 120;
00393 myAbsoluteMaxRVelocity = 500;
00394 myAbsoluteMaxVelocity = 2200;
00395 myDistConvFactor = 0.826;
00396 myRangeConvFactor = 0.268;
00397 myDiffConvFactor = 0.0057;
00398 myRobotWidth = 425;
00399 myRobotLength = 511;
00400 myRobotLengthFront = 210;
00401 myRobotLengthRear = 301;
00402
00403 myNumSonar = 16;
00404 internalSetSonar(0, 69, 136, 90);
00405 internalSetSonar(1, 114, 119, 50);
00406 internalSetSonar(2, 148, 78, 30);
00407 internalSetSonar(3, 166, 27, 10);
00408 internalSetSonar(4, 166, -27, -10);
00409 internalSetSonar(5, 148, -78, -30);
00410 internalSetSonar(6, 114, -119, -50);
00411 internalSetSonar(7, 69, -136, -90);
00412
00413 internalSetSonar(8, -157, -136, -90);
00414 internalSetSonar(9, -203, -119, -130);
00415 internalSetSonar(10, -237, -78, -150);
00416 internalSetSonar(11, -255, -27, -170);
00417 internalSetSonar(12, -255, 27, 170);
00418 internalSetSonar(13, -237, 78, 150);
00419 internalSetSonar(14, -203, 119, 130);
00420 internalSetSonar(15, -157, 136, 90);
00421
00422 myLaserPort[0] = '\0';
00423 }
00424
00425
00426
00427
00428 AREXPORT ArRobotP2PP::ArRobotP2PP(const char *dir)
00429 {
00430 sprintf(mySubClass, "p2pp");
00431 myRobotRadius = 300;
00432 myRobotDiagonal = 120;
00433 myAbsoluteMaxRVelocity = 500;
00434 myAbsoluteMaxVelocity = 2200;
00435 myDistConvFactor = 0.485;
00436 myRangeConvFactor = 0.268;
00437 myDiffConvFactor = 0.0060;
00438 myRobotWidth = 425;
00439 myRobotLength = 513;
00440
00441 myTableSensingIR = true;
00442 myNewTableSensingIR = false;
00443 myFrontBumpers = true;
00444 myRearBumpers = true;
00445
00446 myNumSonar = 24;
00447 internalSetSonar(0, 69, 136, 90);
00448 internalSetSonar(1, 114, 119, 50);
00449 internalSetSonar(2, 148, 78, 30);
00450 internalSetSonar(3, 166, 27, 10);
00451 internalSetSonar(4, 166, -27, -10);
00452 internalSetSonar(5, 148, -78, -30);
00453 internalSetSonar(6, 114, -119, -50);
00454 internalSetSonar(7, 69, -136, -90);
00455
00456 internalSetSonar(8, -20, 136, 90);
00457 internalSetSonar(9, 24, 119, 50);
00458 internalSetSonar(10, 58, 78, 30);
00459 internalSetSonar(11, 77, 27, 10);
00460 internalSetSonar(12, 77, -27, -10);
00461 internalSetSonar(13, 58, -78, -30);
00462 internalSetSonar(14, 24, -119, -50);
00463 internalSetSonar(15, -20, -136, -90);
00464
00465 internalSetSonar(16, -157, -136, -90);
00466 internalSetSonar(17, -203, -119, -130);
00467 internalSetSonar(18, -237, -78, -150);
00468 internalSetSonar(19, -255, -27, -170);
00469 internalSetSonar(20, -255, 27, 170);
00470 internalSetSonar(21, -237, 78, 150);
00471 internalSetSonar(22, -203, 119, 130);
00472 internalSetSonar(23, -157, 136, 90);
00473
00474 myLaserX = 16;
00475 myLaserY = 1;
00476 }
00477
00478
00479
00480 AREXPORT ArRobotP2PB::ArRobotP2PB(const char *dir)
00481 {
00482 sprintf(mySubClass, "p2pb");
00483 myRobotRadius = 300;
00484 myRobotDiagonal = 120;
00485 myAbsoluteMaxRVelocity = 500;
00486 myAbsoluteMaxVelocity = 2200;
00487 myDistConvFactor = 0.424;
00488 myRangeConvFactor = 0.268;
00489 myDiffConvFactor = 0.0056;
00490 myFrontBumpers = true;
00491 myRearBumpers = true;
00492 myRobotWidth = 425;
00493 myRobotLength = 513;
00494
00495 myNumSonar = 24;
00496 internalSetSonar(0, 69, 136, 90);
00497 internalSetSonar(1, 114, 119, 50);
00498 internalSetSonar(2, 148, 78, 30);
00499 internalSetSonar(3, 166, 27, 10);
00500 internalSetSonar(4, 166, -27, -10);
00501 internalSetSonar(5, 148, -78, -30);
00502 internalSetSonar(6, 114, -119, -50);
00503 internalSetSonar(7, 69, -136, -90);
00504
00505 internalSetSonar(8, -20, 136, 90);
00506 internalSetSonar(9, 24, 119, 50);
00507 internalSetSonar(10, 58, 78, 30);
00508 internalSetSonar(11, 77, 27, 10);
00509 internalSetSonar(12, 77, -27, -10);
00510 internalSetSonar(13, 58, -78, -30);
00511 internalSetSonar(14, 24, -119, -50);
00512 internalSetSonar(15, -20, -136, -90);
00513
00514 internalSetSonar(16, -157, -136, -90);
00515 internalSetSonar(17, -203, -119, -130);
00516 internalSetSonar(18, -237, -78, -150);
00517 internalSetSonar(19, -255, -27, -170);
00518 internalSetSonar(20, -255, 27, 170);
00519 internalSetSonar(21, -237, 78, 150);
00520 internalSetSonar(22, -203, 119, 130);
00521 internalSetSonar(23, -157, 136, 90);
00522
00523 myLaserX = 17;
00524 myLaserY = 8;
00525 }
00526
00527
00528
00529 AREXPORT ArRobotPerfPB::ArRobotPerfPB(const char *dir)
00530 {
00531 sprintf(mySubClass, "perfpb");
00532 myRobotRadius = 340;
00533 myRobotDiagonal = 120;
00534 myAbsoluteMaxRVelocity = 500;
00535 myAbsoluteMaxVelocity = 2200;
00536 myDistConvFactor = 0.485;
00537 myRangeConvFactor = 1.0;
00538 myDiffConvFactor = 0.006;
00539
00540 myRequestIOPackets = true;
00541 myTableSensingIR = true;
00542 myNewTableSensingIR = true;
00543 myFrontBumpers = true;
00544 myRearBumpers = true;
00545 myRobotWidth = 425;
00546 myRobotLength = 513;
00547
00548 myNumIR = 4;
00549 internalSetIR(0, 1, 2, 333, -233);
00550 internalSetIR(1, 1, 2, 333, 233);
00551 internalSetIR(2, 1, 2, -2, -116);
00552 internalSetIR(3, 1, 2, -2, 116);
00553
00554 myNumSonar = 32;
00555
00556 internalSetSonar(0, 69, 136, 90);
00557 internalSetSonar(1, 114, 119, 50);
00558 internalSetSonar(2, 148, 78, 30);
00559 internalSetSonar(3, 166, 27, 10);
00560 internalSetSonar(4, 166, -27, -10);
00561 internalSetSonar(5, 148, -78, -30);
00562 internalSetSonar(6, 114, -119, -50);
00563 internalSetSonar(7, 69, -136, -90);
00564
00565 internalSetSonar(8, -20, 136, 90);
00566 internalSetSonar(9, 24, 119, 50);
00567 internalSetSonar(10, 58, 78, 30);
00568 internalSetSonar(11, 77, 27, 10);
00569 internalSetSonar(12, 77, -27, -10);
00570 internalSetSonar(13, 58, -78, -30);
00571 internalSetSonar(14, 24, -119, -50);
00572 internalSetSonar(15, -20, -136, -90);
00573
00574 internalSetSonar(16, -157, -136, -90);
00575 internalSetSonar(17, -203, -119, -130);
00576 internalSetSonar(18, -237, -78, -150);
00577 internalSetSonar(19, -255, -27, -170);
00578 internalSetSonar(20, -255, 27, 170);
00579 internalSetSonar(21, -237, 78, 150);
00580 internalSetSonar(22, -203, 119, 130);
00581 internalSetSonar(23, -157, 136, 90);
00582
00583 internalSetSonar(24, -191, -136, -90);
00584 internalSetSonar(25, -237, -119, -130);
00585 internalSetSonar(26, -271, -78, -150);
00586 internalSetSonar(27, -290, -27, -170);
00587 internalSetSonar(28, -290, 27, 170);
00588 internalSetSonar(29, -271, 78, 150);
00589 internalSetSonar(30, -237, 119, 130);
00590 internalSetSonar(31, -191, 136, 90);
00591
00592 myLaserX = 21;
00593 myLaserY = 0;
00594 }
00595
00596
00597
00598 AREXPORT ArRobotPion1M::ArRobotPion1M(const char *dir)
00599 {
00600 sprintf(mySubClass, "pion1m");
00601 myRobotRadius = 220;
00602 myRobotDiagonal = 90;
00603 myAbsoluteMaxRVelocity = 100;
00604 myAbsoluteMaxVelocity = 400;
00605 myHaveMoveCommand = 0;
00606 mySwitchToBaudRate = 0;
00607
00608 myAngleConvFactor = 0.0061359;
00609 myDistConvFactor = 0.05066;
00610 myVelConvFactor = 2.5332;
00611 myRangeConvFactor = 0.1734;
00612 myDiffConvFactor = 1.0/300.0;
00613 myVel2Divisor = 4;
00614
00615 myNumFrontBumpers = 0;
00616 myNumRearBumpers = 0;
00617
00618 myNumSonar = 7;
00619 internalSetSonar(0, 100, 100, 90);
00620 internalSetSonar(1, 120, 80, 30);
00621 internalSetSonar(2, 130, 40, 15);
00622 internalSetSonar(3, 130, 0, 0);
00623 internalSetSonar(4, 130, -40, -15);
00624 internalSetSonar(5, 120, -80, -30);
00625 internalSetSonar(6, 100, -100, -90);
00626
00627 myLaserPort[0] = '\0';
00628
00629 myTransVelMax = 400;
00630 myRotVelMax = 100;
00631 mySettableAccsDecs = false;
00632 }
00633
00634 AREXPORT ArRobotPsos1M::ArRobotPsos1M(const char *dir)
00635 {
00636 sprintf(mySubClass, "psos1m");
00637 myRobotRadius = 220;
00638 myRobotDiagonal = 90;
00639 myAbsoluteMaxRVelocity = 100;
00640 myAbsoluteMaxVelocity = 400;
00641 myHaveMoveCommand = 0;
00642 mySwitchToBaudRate = 0;
00643
00644 myAngleConvFactor = 0.0061359;
00645 myDistConvFactor = 0.05066;
00646 myVelConvFactor = 2.5332;
00647 myRangeConvFactor = 0.1734;
00648 myDiffConvFactor = 1.0/300.0;
00649 myVel2Divisor = 4;
00650
00651 myNumFrontBumpers = 0;
00652 myNumRearBumpers = 0;
00653
00654 myNumSonar = 7;
00655 internalSetSonar(0, 100, 100, 90);
00656 internalSetSonar(1, 120, 80, 30);
00657 internalSetSonar(2, 130, 40, 15);
00658 internalSetSonar(3, 130, 0, 0);
00659 internalSetSonar(4, 130, -40, -15);
00660 internalSetSonar(5, 120, -80, -30);
00661 internalSetSonar(6, 100, -100, -90);
00662
00663 myLaserPort[0] = '\0';
00664
00665 myTransVelMax = 400;
00666 myRotVelMax = 100;
00667 mySettableAccsDecs = false;
00668 }
00669
00670 AREXPORT ArRobotPsos43M::ArRobotPsos43M(const char *dir)
00671 {
00672 sprintf(mySubClass, "psos43m");
00673 myRobotRadius = 220;
00674 myRobotDiagonal = 90;
00675 myAbsoluteMaxRVelocity = 100;
00676 myAbsoluteMaxVelocity = 400;
00677 myHaveMoveCommand = 0;
00678 mySwitchToBaudRate = 0;
00679
00680 myAngleConvFactor = 0.0061359;
00681 myDistConvFactor = 0.05066;
00682 myVelConvFactor = 2.5332;
00683 myRangeConvFactor = 0.1734;
00684 myDiffConvFactor = 1.0/300.0;
00685 myVel2Divisor = 4;
00686
00687 myNumFrontBumpers = 0;
00688 myNumRearBumpers = 0;
00689
00690 myNumSonar = 7;
00691 internalSetSonar(0, 100, 100, 90);
00692 internalSetSonar(1, 120, 80, 30);
00693 internalSetSonar(2, 130, 40, 15);
00694 internalSetSonar(3, 130, 0, 0);
00695 internalSetSonar(4, 130, -40, -15);
00696 internalSetSonar(5, 120, -80, -30);
00697 internalSetSonar(6, 100, -100, -90);
00698
00699 myLaserPort[0] = '\0';
00700
00701 myTransVelMax = 400;
00702 myRotVelMax = 100;
00703 mySettableAccsDecs = false;
00704 }
00705
00706
00707
00708
00709 AREXPORT ArRobotPionAT::ArRobotPionAT(const char *dir)
00710 {
00711 sprintf(mySubClass, "pionat");
00712 myRobotRadius = 330;
00713 myRobotDiagonal = 120;
00714 myAbsoluteMaxRVelocity = 100;
00715 myAbsoluteMaxVelocity = 500;
00716 myHaveMoveCommand = 0;
00717 mySwitchToBaudRate = 0;
00718
00719 myAngleConvFactor = 0.0061359;
00720 myDistConvFactor = 0.07;
00721 myVelConvFactor = 2.5332;
00722 myRangeConvFactor = 0.1734;
00723 myDiffConvFactor = 1.0/300.0;
00724 myVel2Divisor = 4;
00725
00726 myNumFrontBumpers = 0;
00727 myNumRearBumpers = 0;
00728
00729 myNumSonar = 7;
00730 internalSetSonar(0, 100, 100, 90);
00731 internalSetSonar(1, 120, 80, 30);
00732 internalSetSonar(2, 130, 40, 15);
00733 internalSetSonar(3, 130, 0, 0);
00734 internalSetSonar(4, 130, -40, -15);
00735 internalSetSonar(5, 120, -80, -30);
00736 internalSetSonar(6, 100, -100, -90);
00737
00738 myLaserPort[0] = '\0';
00739
00740 myTransVelMax = 400;
00741 myRotVelMax = 100;
00742 mySettableAccsDecs = false;
00743 }
00744
00745
00746 AREXPORT ArRobotPion1X::ArRobotPion1X(const char *dir)
00747 {
00748 sprintf(mySubClass, "pion1x");
00749 myRobotRadius = 220;
00750 myRobotDiagonal = 90;
00751 myAbsoluteMaxRVelocity = 100;
00752 myAbsoluteMaxVelocity = 400;
00753 myHaveMoveCommand = 0;
00754 mySwitchToBaudRate = 0;
00755
00756 myAngleConvFactor = 0.0061359;
00757 myDistConvFactor = 0.05066;
00758 myVelConvFactor = 2.5332;
00759 myRangeConvFactor = 0.1734;
00760 myDiffConvFactor = 1.0/300.0;
00761 myVel2Divisor = 4;
00762
00763 myNumFrontBumpers = 0;
00764 myNumRearBumpers = 0;
00765
00766 myNumSonar = 7;
00767 internalSetSonar(0, 100, 100, 90);
00768 internalSetSonar(1, 120, 80, 30);
00769 internalSetSonar(2, 130, 40, 15);
00770 internalSetSonar(3, 130, 0, 0);
00771 internalSetSonar(4, 130, -40, -15);
00772 internalSetSonar(5, 120, -80, -30);
00773 internalSetSonar(6, 100, -100, -90);
00774
00775 myLaserPort[0] = '\0';
00776
00777 myTransVelMax = 400;
00778 myRotVelMax = 100;
00779 mySettableAccsDecs = false;
00780 }
00781
00782 AREXPORT ArRobotPsos1X::ArRobotPsos1X(const char *dir)
00783 {
00784 sprintf(mySubClass, "psos1x");
00785 myRobotRadius = 220;
00786 myRobotDiagonal = 90;
00787 myAbsoluteMaxRVelocity = 100;
00788 myAbsoluteMaxVelocity = 400;
00789 myHaveMoveCommand = 0;
00790 mySwitchToBaudRate = 0;
00791
00792 myAngleConvFactor = 0.0061359;
00793 myDistConvFactor = 0.05066;
00794 myVelConvFactor = 2.5332;
00795 myRangeConvFactor = 0.1734;
00796 myDiffConvFactor = 1.0/300.0;
00797 myVel2Divisor = 4;
00798
00799 myNumFrontBumpers = 0;
00800 myNumRearBumpers = 0;
00801
00802 myNumSonar = 7;
00803 internalSetSonar(0, 100, 100, 90);
00804 internalSetSonar(1, 120, 80, 30);
00805 internalSetSonar(2, 130, 40, 15);
00806 internalSetSonar(3, 130, 0, 0);
00807 internalSetSonar(4, 130, -40, -15);
00808 internalSetSonar(5, 120, -80, -30);
00809 internalSetSonar(6, 100, -100, -90);
00810
00811 myLaserPort[0] = '\0';
00812
00813 myTransVelMax = 400;
00814 myRotVelMax = 100;
00815 mySettableAccsDecs = false;
00816 }
00817
00818
00819 AREXPORT ArRobotMapper::ArRobotMapper(const char *dir)
00820 {
00821 sprintf(mySubClass, "mappr");
00822 myRobotRadius = 180;
00823 myRobotDiagonal = 120;
00824 myAbsoluteMaxRVelocity = 0;
00825 myAbsoluteMaxVelocity = 0;
00826 myHaveMoveCommand = false;
00827 myDistConvFactor = 1.00;
00828
00829
00830 myRangeConvFactor = 1.0;
00831 myDiffConvFactor = .011;
00832 myGyroScaler = 1.626;
00833 myVelConvFactor = 0.615400;
00834 mySwitchToBaudRate = 0;
00835 mySettableAccsDecs = false;
00836 mySettableVelMaxes = false;
00837
00838 myLaserPossessed = true;
00839 myLaserFlipped = false;
00840
00841 myLaserPowerControlled = false;
00842 myNumFrontBumpers = 0;
00843 myNumRearBumpers = 0;
00844 myLaserX = 312;
00845
00846 myLaserY = 0;
00847 myLaserTh = 0;
00848 }
00849
00850
00851
00852 AREXPORT ArRobotPowerBot::ArRobotPowerBot(const char *dir)
00853 {
00854
00855 sprintf(mySubClass, "powerbot");
00856 myRobotRadius = 550;
00857 myRobotDiagonal = 240;
00858 myAbsoluteMaxRVelocity = 360;
00859 myAbsoluteMaxVelocity = 2000;
00860 myDistConvFactor = 0.5813;
00861 myRangeConvFactor = 1.0;
00862 myDiffConvFactor = .00373;
00863 myRobotWidth = 680;
00864 myRobotLength = 911;
00865 myRobotLengthFront = 369;
00866 myRobotLengthRear = 542;
00867
00868 myFrontBumpers = true;
00869 myNumFrontBumpers = 7;
00870 myRearBumpers = true;
00871 myNumRearBumpers = 5;
00872 myNumSonar = 32;
00873 internalSetSonar(0, 152, 278, 90);
00874 internalSetSonar(1, 200, 267, 65);
00875 internalSetSonar(2, 241, 238, 45);
00876 internalSetSonar(3, 274, 200, 35);
00877 internalSetSonar(4, 300, 153, 25);
00878 internalSetSonar(5, 320, 96, 15);
00879 internalSetSonar(6, 332, 33, 5);
00880 internalSetSonar(7, 0, 0, -180);
00881
00882 internalSetSonar(8, 332, -33, -5);
00883 internalSetSonar(9, 320, -96, -15);
00884 internalSetSonar(10, 300, -153, -25);
00885 internalSetSonar(11, 274, -200, -35);
00886 internalSetSonar(12, 241, -238, -45);
00887 internalSetSonar(13, 200, -267, -65);
00888 internalSetSonar(14, 152, -278, -90);
00889 internalSetSonar(15, 0, 0, -180);
00890
00891 internalSetSonar(16, -298, -278, -90);
00892 internalSetSonar(17, -347, -267, -115);
00893 internalSetSonar(18, -388, -238, -135);
00894 internalSetSonar(19, -420, -200, -145);
00895 internalSetSonar(20, -447, -153, -155);
00896 internalSetSonar(21, -467, -96, -165);
00897 internalSetSonar(22, -478, -33, -175);
00898 internalSetSonar(23, 0, 0, -180);
00899
00900 internalSetSonar(24, -478, 33, 175);
00901 internalSetSonar(25, -467, 96, 165);
00902 internalSetSonar(26, -447, 153, 155);
00903 internalSetSonar(27, -420, 200, 145);
00904 internalSetSonar(28, -388, 238, 135);
00905 internalSetSonar(29, -347, 267, 115);
00906 internalSetSonar(30, -298, 278, 90);
00907
00908 sprintf(myLaserPort, "COM2");
00909 myLaserFlipped = true;
00910 myLaserX = 251;
00911 myLaserY = 0;
00912 }
00913
00914 AREXPORT ArRobotP2D8Plus::ArRobotP2D8Plus(const char *dir)
00915 {
00916 sprintf(mySubClass, "p2d8+");
00917 myRobotRadius = 250;
00918 myRobotDiagonal = 120;
00919 myAbsoluteMaxRVelocity = 500;
00920 myAbsoluteMaxVelocity = 2200;
00921 myDistConvFactor = 0.485;
00922 myRangeConvFactor = 1.0;
00923 myDiffConvFactor = .0056;
00924 myRobotWidth = 425;
00925 myRobotLength = 511;
00926 myRobotLengthFront = 210;
00927 myRobotLengthRear = 301;
00928
00929 myNumSonar = 16;
00930 internalSetSonar(0, 69, 136, 90);
00931 internalSetSonar(1, 114, 119, 50);
00932 internalSetSonar(2, 148, 78, 30);
00933 internalSetSonar(3, 166, 27, 10);
00934 internalSetSonar(4, 166, -27, -10);
00935 internalSetSonar(5, 148, -78, -30);
00936 internalSetSonar(6, 114, -119, -50);
00937 internalSetSonar(7, 69, -136, -90);
00938
00939 internalSetSonar(8, -157, -136, -90);
00940 internalSetSonar(9, -203, -119, -130);
00941 internalSetSonar(10, -237, -78, -150);
00942 internalSetSonar(11, -255, -27, -170);
00943 internalSetSonar(12, -255, 27, 170);
00944 internalSetSonar(13, -237, 78, 150);
00945 internalSetSonar(14, -203, 119, 130);
00946 internalSetSonar(15, -157, 136, 90);
00947
00948 myLaserX = 18;
00949 myLaserY = 0;
00950 }
00951
00952
00953 AREXPORT ArRobotP2AT8Plus::ArRobotP2AT8Plus(const char *dir)
00954 {
00955 sprintf(mySubClass, "p2at8+");
00956 myRobotRadius = 500;
00957 myRobotDiagonal = 120;
00958 myAbsoluteMaxRVelocity = 300;
00959 myAbsoluteMaxVelocity = 1200;
00960 myDistConvFactor = 0.465;
00961 myRangeConvFactor = 1.0;
00962 myDiffConvFactor = .0034;
00963 myRobotWidth = 505;
00964 myRobotLength = 626;
00965 myRobotLengthFront = 313;
00966 myRobotLengthRear = 313;
00967
00968 myNumSonar = 16;
00969 internalSetSonar(0, 147, 136, 90);
00970 internalSetSonar(1, 193, 119, 50);
00971 internalSetSonar(2, 227, 79, 30);
00972 internalSetSonar(3, 245, 27, 10);
00973 internalSetSonar(4, 245, -27, -10);
00974 internalSetSonar(5, 227, -79, -30);
00975 internalSetSonar(6, 193, -119, -50);
00976 internalSetSonar(7, 147, -136, -90);
00977
00978 internalSetSonar(8, -144, -136, -90);
00979 internalSetSonar(9, -189, -119, -130);
00980 internalSetSonar(10, -223, -79, -150);
00981 internalSetSonar(11, -241, -27, -170);
00982 internalSetSonar(12, -241, 27, 170);
00983 internalSetSonar(13, -223, 79, 150);
00984 internalSetSonar(14, -189, 119, 130);
00985 internalSetSonar(15, -144, 136, 90);
00986
00987 myLaserX = 160;
00988 myLaserY = 7;
00989 }
00990
00991 AREXPORT ArRobotP3AT::ArRobotP3AT(const char *dir)
00992 {
00993 sprintf(mySubClass, "p3at");
00994 myRobotRadius = 500;
00995 myRobotDiagonal = 120;
00996 myAbsoluteMaxRVelocity = 300;
00997 myAbsoluteMaxVelocity = 1200;
00998 myDistConvFactor = 0.465;
00999 myRangeConvFactor = 1.0;
01000 myDiffConvFactor = .0034;
01001 myRobotWidth = 505;
01002 myRobotLength = 626;
01003 myRobotLengthFront = 313;
01004 myRobotLengthRear = 313;
01005
01006 myNumSonar = 16;
01007 internalSetSonar(0, 147, 136, 90);
01008 internalSetSonar(1, 193, 119, 50);
01009 internalSetSonar(2, 227, 79, 30);
01010 internalSetSonar(3, 245, 27, 10);
01011 internalSetSonar(4, 245, -27, -10);
01012 internalSetSonar(5, 227, -79, -30);
01013 internalSetSonar(6, 193, -119, -50);
01014 internalSetSonar(7, 147, -136, -90);
01015
01016 internalSetSonar(8, -144, -136, -90);
01017 internalSetSonar(9, -189, -119, -130);
01018 internalSetSonar(10, -223, -79, -150);
01019 internalSetSonar(11, -241, -27, -170);
01020 internalSetSonar(12, -241, 27, 170);
01021 internalSetSonar(13, -223, 79, 150);
01022 internalSetSonar(14, -189, 119, 130);
01023 internalSetSonar(15, -144, 136, 90);
01024
01025 myLaserX = 160;
01026 myLaserY = 0;
01027 }
01028
01029
01030 AREXPORT ArRobotP3DX::ArRobotP3DX(const char *dir)
01031 {
01032 sprintf(mySubClass, "p3dx");
01033 myRobotRadius = 250;
01034 myRobotDiagonal = 120;
01035 myAbsoluteMaxRVelocity = 500;
01036 myAbsoluteMaxVelocity = 2200;
01037 myDistConvFactor = 0.485;
01038 myRangeConvFactor = 1.0;
01039 myDiffConvFactor = 0.0056;
01040 myRobotWidth = 425;
01041 myRobotLength = 511;
01042 myRobotLengthFront = 210;
01043 myRobotLengthRear = 301;
01044
01045 myNumSonar = 16;
01046 internalSetSonar(0, 69, 136, 90);
01047 internalSetSonar(1, 114, 119, 50);
01048 internalSetSonar(2, 148, 78, 30);
01049 internalSetSonar(3, 166, 27, 10);
01050 internalSetSonar(4, 166, -27, -10);
01051 internalSetSonar(5, 148, -78, -30);
01052 internalSetSonar(6, 114, -119, -50);
01053 internalSetSonar(7, 69, -136, -90);
01054
01055 internalSetSonar(8, -157, -136, -90);
01056 internalSetSonar(9, -203, -119, -130);
01057 internalSetSonar(10, -237, -78, -150);
01058 internalSetSonar(11, -255, -27, -170);
01059 internalSetSonar(12, -255, 27, 170);
01060 internalSetSonar(13, -237, 78, 150);
01061 internalSetSonar(14, -203, 119, 130);
01062 internalSetSonar(15, -157, 136, 90);
01063
01064
01065 myLaserX = 18;
01066 myLaserY = 0;
01067 }
01068
01069
01070 AREXPORT ArRobotPerfPBPlus::ArRobotPerfPBPlus(const char *dir)
01071 {
01072 sprintf(mySubClass, "perfpb+");
01073 myRobotRadius = 340;
01074 myRobotDiagonal = 120;
01075 myAbsoluteMaxRVelocity = 500;
01076 myAbsoluteMaxVelocity = 2200;
01077 myRequestIOPackets = true;
01078 myDistConvFactor = 0.485;
01079 myRangeConvFactor = 1.0;
01080 myDiffConvFactor = .006;
01081 myRobotWidth = 425;
01082 myRobotLength = 511;
01083 myRobotLengthFront = 210;
01084 myRobotLengthRear = 301;
01085
01086 myRequestIOPackets = true;
01087 myTableSensingIR = true;
01088 myNewTableSensingIR = true;
01089 myFrontBumpers = true;
01090 myRearBumpers = true;
01091
01092 myNumIR = 4;
01093 internalSetIR(0, 1, 2, 333, -233);
01094 internalSetIR(1, 1, 2, 333, 233);
01095 internalSetIR(2, 1, 2, -2, -116);
01096 internalSetIR(3, 1, 2, -2, 116);
01097
01098 myNumSonar = 32;
01099 internalSetSonar(0, 69, 136, 90);
01100 internalSetSonar(1, 114, 119, 50);
01101 internalSetSonar(2, 148, 78, 30);
01102 internalSetSonar(3, 166, 27, 10);
01103 internalSetSonar(4, 166, -27, -10);
01104 internalSetSonar(5, 148, -78, -30);
01105 internalSetSonar(6, 114, -119, -50);
01106 internalSetSonar(7, 69, -136, -90);
01107
01108 internalSetSonar(8, -20, 136, 90);
01109 internalSetSonar(9, 24, 119, 50);
01110 internalSetSonar(10, 58, 78, 30);
01111 internalSetSonar(11, 77, 27, 10);
01112 internalSetSonar(12, 77, -27, -10);
01113 internalSetSonar(13, 58, -78, -30);
01114 internalSetSonar(14, 24, -119, -50);
01115 internalSetSonar(15, -20, -136, -90);
01116
01117 internalSetSonar(16, -157, -136, -90);
01118 internalSetSonar(17, -203, -119, -130);
01119 internalSetSonar(18, -237, -78, -150);
01120 internalSetSonar(19, -255, -27, -170);
01121 internalSetSonar(20, -255, 27, 170);
01122 internalSetSonar(21, -237, 78, 150);
01123 internalSetSonar(22, -203, 119, 130);
01124 internalSetSonar(23, -157, 136, 90);
01125
01126 internalSetSonar(24, -191, -136, -90);
01127 internalSetSonar(25, -237, -119, -130);
01128 internalSetSonar(26, -271, -78, -150);
01129 internalSetSonar(27, -290, -27, -170);
01130 internalSetSonar(28, -290, 27, 170);
01131 internalSetSonar(29, -271, 78, 150);
01132 internalSetSonar(30, -237, 119, 130);
01133 internalSetSonar(31, -191, 136, 90);
01134
01135
01136 myLaserX = 21;
01137 myLaserY = 0;
01138 }
01139
01140
01141 AREXPORT ArRobotP3DXSH::ArRobotP3DXSH(const char *dir)
01142 {
01143 sprintf(mySubClass, "p3dx-sh");
01144 myRobotRadius = 250;
01145 myRobotDiagonal = 120;
01146 myAbsoluteMaxRVelocity = 500;
01147 myAbsoluteMaxVelocity = 2200;
01148 myDistConvFactor = 1.0;
01149 myRangeConvFactor = 1.0;
01150 myDiffConvFactor = 0.0056;
01151 myRobotWidth = 425;
01152 myRobotLength = 511;
01153 myRobotLengthFront = 210;
01154 myRobotLengthRear = 301;
01155
01156 myNumSonar = 16;
01157 internalSetSonar(0, 69, 136, 90);
01158 internalSetSonar(1, 114, 119, 50);
01159 internalSetSonar(2, 148, 78, 30);
01160 internalSetSonar(3, 166, 27, 10);
01161 internalSetSonar(4, 166, -27, -10);
01162 internalSetSonar(5, 148, -78, -30);
01163 internalSetSonar(6, 114, -119, -50);
01164 internalSetSonar(7, 69, -136, -90);
01165
01166 internalSetSonar(8, -157, -136, -90);
01167 internalSetSonar(9, -203, -119, -130);
01168 internalSetSonar(10, -237, -78, -150);
01169 internalSetSonar(11, -255, -27, -170);
01170 internalSetSonar(12, -255, 27, 170);
01171 internalSetSonar(13, -237, 78, 150);
01172 internalSetSonar(14, -203, 119, 130);
01173 internalSetSonar(15, -157, 136, 90);
01174
01175 myLaserX = 18;
01176 myLaserY = 0;
01177 }
01178
01179
01180 AREXPORT ArRobotP3ATSH::ArRobotP3ATSH(const char *dir)
01181 {
01182 sprintf(mySubClass, "p3at-sh");
01183 myRobotRadius = 500;
01184 myRobotDiagonal = 120;
01185 myAbsoluteMaxRVelocity = 300;
01186 myAbsoluteMaxVelocity = 1200;
01187 myDistConvFactor = 1.0;
01188 myRangeConvFactor = 1.0;
01189 myDiffConvFactor = .0034;
01190 myRobotWidth = 505;
01191 myRobotLength = 626;
01192 myRobotLengthFront = 313;
01193 myRobotLengthRear = 313;
01194
01195 myNumSonar = 16;
01196 internalSetSonar(0, 147, 136, 90);
01197 internalSetSonar(1, 193, 119, 50);
01198 internalSetSonar(2, 227, 79, 30);
01199 internalSetSonar(3, 245, 27, 10);
01200 internalSetSonar(4, 245, -27, -10);
01201 internalSetSonar(5, 227, -79, -30);
01202 internalSetSonar(6, 193, -119, -50);
01203 internalSetSonar(7, 147, -136, -90);
01204
01205 internalSetSonar(8, -144, -136, -90);
01206 internalSetSonar(9, -189, -119, -130);
01207 internalSetSonar(10, -223, -79, -150);
01208 internalSetSonar(11, -241, -27, -170);
01209 internalSetSonar(12, -241, 27, 170);
01210 internalSetSonar(13, -223, 79, 150);
01211 internalSetSonar(14, -189, 119, 130);
01212 internalSetSonar(15, -144, 136, 90);
01213
01214 myLaserX = 125;
01215 myLaserY = 0;
01216 }
01217
01218
01219 AREXPORT ArRobotP3ATIWSH::ArRobotP3ATIWSH(const char *dir)
01220 {
01221 sprintf(mySubClass, "p3atiw-sh");
01222 myRobotRadius = 500;
01223 myRobotDiagonal = 120;
01224 myAbsoluteMaxRVelocity = 300;
01225 myAbsoluteMaxVelocity = 1200;
01226 myDistConvFactor = 1.0;
01227 myRangeConvFactor = 1.0;
01228 myDiffConvFactor = .0034;
01229 myRobotWidth = 490;
01230 myRobotLength = 626;
01231 myRobotLengthFront = 313;
01232 myRobotLengthRear = 313;
01233
01234 myNumSonar = 16;
01235 internalSetSonar(0, 147, 136, 90);
01236 internalSetSonar(1, 193, 119, 50);
01237 internalSetSonar(2, 227, 79, 30);
01238 internalSetSonar(3, 245, 27, 10);
01239 internalSetSonar(4, 245, -27, -10);
01240 internalSetSonar(5, 227, -79, -30);
01241 internalSetSonar(6, 193, -119, -50);
01242 internalSetSonar(7, 147, -136, -90);
01243
01244 internalSetSonar(8, -144, -136, -90);
01245 internalSetSonar(9, -189, -119, -130);
01246 internalSetSonar(10, -223, -79, -150);
01247 internalSetSonar(11, -241, -27, -170);
01248 internalSetSonar(12, -241, 27, 170);
01249 internalSetSonar(13, -223, 79, 150);
01250 internalSetSonar(14, -189, 119, 130);
01251 internalSetSonar(15, -144, 136, 90);
01252
01253 myLaserX = 125;
01254 myLaserY = 0;
01255 }
01256
01257
01258 AREXPORT ArRobotPatrolBotSH::ArRobotPatrolBotSH(const char *dir)
01259 {
01260 sprintf(mySubClass, "patrolbot-sh");
01261 myRobotRadius = 250;
01262 myRobotDiagonal = 120;
01263 myAbsoluteMaxRVelocity = 500;
01264 myAbsoluteMaxVelocity = 2200;
01265 myDistConvFactor = 1.0;
01266 myRangeConvFactor = 1.0;
01267 myDiffConvFactor = 0.0056;
01268 myRobotWidth = 425;
01269 myRobotLength = 510;
01270 myRobotLengthFront = 255;
01271 myRobotLengthRear = 255;
01272
01273 myFrontBumpers = true;
01274 myNumFrontBumpers = 6;
01275 myRearBumpers = true;
01276 myNumRearBumpers = 6;
01277
01278 myNumSonar = 16;
01279 internalSetSonar(0, 83, 229, 90);
01280 internalSetSonar(1, 169, 202, 55);
01281 internalSetSonar(2, 232, 134, 30);
01282 internalSetSonar(3, 263, 46, 10);
01283 internalSetSonar(4, 263, -46, -10);
01284 internalSetSonar(5, 232, -134, -30);
01285 internalSetSonar(6, 169, -202, -55);
01286 internalSetSonar(7, 83, -229, -90);
01287
01288 internalSetSonar(8, -83, -229, -90);
01289 internalSetSonar(9, -169, -202, -125);
01290 internalSetSonar(10, -232, -134, -150);
01291 internalSetSonar(11, -263, -46, -170);
01292 internalSetSonar(12, -263, 46, 170);
01293 internalSetSonar(13, -232, 134, 150);
01294 internalSetSonar(14, -169, 202, 125);
01295 internalSetSonar(15, -83, 229, 90);
01296
01297 myLaserFlipped = true;
01298 myLaserPowerControlled = true;
01299 myLaserX = 37;
01300 myLaserY = 0;
01301 myLaserTh = 0.0;
01302 strcpy(myLaserIgnore, "73 74 75 -73 -74 -75");
01303
01304 myRequestIOPackets = true;
01305 }
01306
01307
01308 AREXPORT ArRobotPeopleBotSH::ArRobotPeopleBotSH(const char *dir)
01309 {
01310 sprintf(mySubClass, "peoplebot-sh");
01311 myRobotRadius = 340;
01312 myRobotDiagonal = 120;
01313 myAbsoluteMaxRVelocity = 500;
01314 myAbsoluteMaxVelocity = 2200;
01315 myRequestIOPackets = true;
01316 myDistConvFactor = 1.0;
01317 myRangeConvFactor = 1.0;
01318 myDiffConvFactor = .006;
01319 myRobotWidth = 425;
01320 myRobotLength = 513;
01321
01322 myRequestIOPackets = true;
01323 myTableSensingIR = true;
01324 myNewTableSensingIR = true;
01325 myFrontBumpers = true;
01326 myRearBumpers = true;
01327
01328 myNumIR = 4;
01329 internalSetIR(0, 1, 2, 333, -233);
01330 internalSetIR(1, 1, 2, 333, 233);
01331 internalSetIR(2, 1, 2, -2, -116);
01332 internalSetIR(3, 1, 2, -2, 116);
01333
01334 myNumSonar = 32;
01335 internalSetSonar(0, 69, 136, 90);
01336 internalSetSonar(1, 114, 119, 50);
01337 internalSetSonar(2, 148, 78, 30);
01338 internalSetSonar(3, 166, 27, 10);
01339 internalSetSonar(4, 166, -27, -10);
01340 internalSetSonar(5, 148, -78, -30);
01341 internalSetSonar(6, 114, -119, -50);
01342 internalSetSonar(7, 69, -136, -90);
01343
01344 internalSetSonar(8, -157, -136, -90);
01345 internalSetSonar(9, -203, -119, -130);
01346 internalSetSonar(10, -237, -78, -150);
01347 internalSetSonar(11, -255, -27, -170);
01348 internalSetSonar(12, -255, 27, 170);
01349 internalSetSonar(13, -237, 78, 150);
01350 internalSetSonar(14, -203, 119, 130);
01351 internalSetSonar(15, -157, 136, 90);
01352
01353 internalSetSonar(16, -20, 136, 90);
01354 internalSetSonar(17, 24, 119, 50);
01355 internalSetSonar(18, 58, 78, 30);
01356 internalSetSonar(19, 77, 27, 10);
01357 internalSetSonar(20, 77, -27, -10);
01358 internalSetSonar(21, 58, -78, -30);
01359 internalSetSonar(22, 24, -119, -50);
01360 internalSetSonar(23, -20, -136, -90);
01361
01362 internalSetSonar(24, -191, -136, -90);
01363 internalSetSonar(25, -237, -119, -130);
01364 internalSetSonar(26, -271, -78, -150);
01365 internalSetSonar(27, -290, -27, -170);
01366 internalSetSonar(28, -290, 27, 170);
01367 internalSetSonar(29, -271, 78, 150);
01368 internalSetSonar(30, -237, 119, 130);
01369 internalSetSonar(31, -191, 136, 90);
01370
01371 myLaserX = 21;
01372 myLaserY = 0;
01373 }
01374
01375
01376 AREXPORT ArRobotPowerBotSH::ArRobotPowerBotSH(const char *dir)
01377 {
01378
01379 sprintf(mySubClass, "powerbot-sh");
01380 myRobotRadius = 550;
01381 myRobotDiagonal = 240;
01382 myAbsoluteMaxRVelocity = 360;
01383 myAbsoluteMaxVelocity = 2000;
01384 myDistConvFactor = 1.0;
01385 myRangeConvFactor = 1.0;
01386 myDiffConvFactor = .00373;
01387 myRobotWidth = 680;
01388 myRobotLength = 911;
01389 myRobotLengthFront = 369;
01390 myRobotLengthRear = 542;
01391
01392 myFrontBumpers = true;
01393 myNumFrontBumpers = 7;
01394 myRearBumpers = true;
01395 myNumRearBumpers = 5;
01396 myNumSonar = 32;
01397 internalSetSonar(0, 152, 278, 90);
01398 internalSetSonar(1, 200, 267, 65);
01399 internalSetSonar(2, 241, 238, 45);
01400 internalSetSonar(3, 274, 200, 35);
01401 internalSetSonar(4, 300, 153, 25);
01402 internalSetSonar(5, 320, 96, 15);
01403 internalSetSonar(6, 332, 33, 5);
01404 internalSetSonar(7, 0, 0, -180);
01405
01406 internalSetSonar(8, 332, -33, -5);
01407 internalSetSonar(9, 320, -96, -15);
01408 internalSetSonar(10, 300, -153, -25);
01409 internalSetSonar(11, 274, -200, -35);
01410 internalSetSonar(12, 241, -238, -45);
01411 internalSetSonar(13, 200, -267, -65);
01412 internalSetSonar(14, 152, -278, -90);
01413 internalSetSonar(15, 0, 0, -180);
01414
01415 internalSetSonar(16, -298, -278, -90);
01416 internalSetSonar(17, -347, -267, -115);
01417 internalSetSonar(18, -388, -238, -135);
01418 internalSetSonar(19, -420, -200, -145);
01419 internalSetSonar(20, -447, -153, -155);
01420 internalSetSonar(21, -467, -96, -165);
01421 internalSetSonar(22, -478, -33, -175);
01422 internalSetSonar(23, 0, 0, -180);
01423
01424 internalSetSonar(24, -478, 33, 175);
01425 internalSetSonar(25, -467, 96, 165);
01426 internalSetSonar(26, -447, 153, 155);
01427 internalSetSonar(27, -420, 200, 145);
01428 internalSetSonar(28, -388, 238, 135);
01429 internalSetSonar(29, -347, 267, 115);
01430 internalSetSonar(30, -298, 278, 90);
01431 internalSetSonar(31, 0, 0, -180);
01432
01433 sprintf(myLaserPort, "COM2");
01434 myLaserFlipped = true;
01435 myLaserX = 251;
01436 myLaserY = 0;
01437 }
01438
01439
01440 AREXPORT ArRobotWheelchairSH::ArRobotWheelchairSH(const char *dir)
01441 {
01442 sprintf(mySubClass, "wheelchair-sh");
01443 myRobotRadius = 550;
01444 myRobotDiagonal = 300;
01445 myAbsoluteMaxRVelocity = 360;
01446 myAbsoluteMaxVelocity = 2000;
01447 myDistConvFactor = 1.0;
01448 myRangeConvFactor = 1.0;
01449 myDiffConvFactor = .00373;
01450 myRobotWidth = 680;
01451 myRobotLength = 1340;
01452
01453 myFrontBumpers = true;
01454 myNumFrontBumpers = 4;
01455 myRearBumpers = true;
01456 myNumRearBumpers = 3;
01457 myNumSonar = 0;
01458
01459 sprintf(myLaserPort, "COM2");
01460 myLaserPossessed = true;
01461 myLaserFlipped = true;
01462 myLaserPowerControlled = true;
01463 myLaserX = -418;
01464 myLaserY = 0;
01465
01466 mySettableAccsDecs = true;
01467 mySettableVelMaxes = false;
01468 myTransVelMax = 0;
01469 myRotVelMax = 0;
01470 myTransAccel = 0;
01471 myTransDecel = 0;
01472 myRotAccel = 0;
01473 myRotDecel = 0;
01474 }
01475