00001 /** 00002 * @file MotionRequest.h 00003 * 00004 * This file contains the MotionRequest class as well as SpecialActionRequest and WalkingRequest classes. 00005 * 00006 * @author <A href=mailto:brunn@sim.informatik.tu-darmstadt.de>Ronnie Brunn</A> 00007 * @author <A href=mailto:kuntze@sim.informatik.tu-darmstadt.de>Nicolai Kuntze</A> 00008 * @author <A href=mailto:kunz@sim.informatik.tu-darmstadt.de>Michael Kunz</A> 00009 * @author Max Risler 00010 * @author Michael Spranger 00011 */ 00012 00013 #ifndef __MOTIONREQUEST_H__ 00014 #define __MOTIONREQUEST_H__ 00015 00016 #include "Tools/Streams/InOut.h" 00017 #include "Tools/Math/Pose2D.h" 00018 00019 00020 /**@name walking max speeds 00021 *@{ 00022 * @attention These values are implementation independent maximum speeds. 00023 * They dont reflect speeds reached with current walking engine implementations. 00024 * 00025 * They should be used e.g. for the Motion Tester and for the behavior to walk with 00026 * maximum speed. 00027 */ 00028 /** the maximum forward speed for walk in mm/s */ 00029 static const double walkMaxForwardSpeed = 450.0; 00030 /** the maximum backward speed for walk in mm/s */ 00031 static const double walkMaxBackwardSpeed = 350.0; 00032 /** the maximum sideward left/right speed for walk in mm/s */ 00033 static const double walkMaxLeftRightSpeed = 400.0; 00034 /** the maximum rotation speed for walk in rad/s */ 00035 static const double walkMaxRotationSpeed = fromDegrees(250); 00036 /** 00037 *@} */ 00038 00039 /* 00040 * @class 00041 */ 00042 class SpecialActionRequest{ 00043 public: 00044 /** ids for all special actions */ 00045 enum SpecialActionID { 00046 //please sort alphabetically, but only these IDs here: 00047 anyLeft, 00048 armLeft, 00049 armRight, 00050 anyRight, 00051 bash, 00052 block, 00053 blockLeft, 00054 blockRight, 00055 cheerAssShake, 00056 cheerHappy1, 00057 cheerHappy2, 00058 cheerHappy3, 00059 cheerHappy4, 00060 cheerHappy5, 00061 cheerHappy6, 00062 cheerHeadStand, 00063 cheerHowl, 00064 cheerLegTrick, 00065 cheerNodHead, 00066 cheerSad1, 00067 cheerSad2, 00068 cheerSad3, 00069 cheerSad5, 00070 cheerSad4, 00071 cheerWaveLeft, 00072 cheerWaveRight, 00073 chestHard, 00074 chestSoft, 00075 demoBallOnBack1, 00076 demoBallOnBack2, 00077 demoPackHeadStand, 00078 demoRemoveEars, 00079 demoRollLeft, 00080 demoRollRight, 00081 demoScratchHead, 00082 demoSit, 00083 demoStandUpsideDown, 00084 ers210rollLeft, 00085 ers210rollRight, 00086 ers210armLeft, 00087 ers210armRight, 00088 ers210bash, 00089 ers210blockLeft, 00090 ers210blockRight, 00091 ers210bow, 00092 ers210chest, 00093 ers210headLeft, 00094 ers210headRight, 00095 ers210howl, 00096 forwardKickFast, 00097 forwardKickHard, 00098 headLeft, 00099 headLeftSoft, 00100 headRight, 00101 headRightSoft, 00102 hookLeft, 00103 hookRight, 00104 leftPaw, 00105 pushSoft, 00106 pushStrong, 00107 putLeft, 00108 putRight, 00109 rightPaw, 00110 slapLeft, 00111 slapRight, 00112 snowPlow, 00113 swing, 00114 tunnelKick, 00115 numOfSpecialAction 00116 }; 00117 00118 SpecialActionRequest():specialActionType(swing){} 00119 00120 SpecialActionID specialActionType; 00121 00122 00123 /** returns names for special action ids */ 00124 static const char* getSpecialActionIDName(SpecialActionID id) 00125 { 00126 switch (id) 00127 { 00128 case anyLeft: return "anyLeft"; 00129 case armLeft: return "armLeft"; 00130 case armRight: return "armRight"; 00131 case anyRight: return "anyRight"; 00132 case bash: return "bash"; 00133 case block: return "block"; 00134 case blockLeft: return "blockLeft"; 00135 case blockRight: return "blockRight"; 00136 case cheerAssShake: return "cheerAssShake"; 00137 case cheerHappy1: return "cheerHappy1"; 00138 case cheerHappy2: return "cheerHappy2"; 00139 case cheerHappy3: return "cheerHappy3"; 00140 case cheerHappy4: return "cheerHappy4"; 00141 case cheerHappy5: return "cheerHappy5"; 00142 case cheerHappy6: return "cheerHappy6"; 00143 case cheerHeadStand: return "cheerHeadStand"; 00144 case cheerHowl: return "cheerHowl"; 00145 case cheerLegTrick: return "cheerLegTrick"; 00146 case cheerNodHead: return "cheerNodHead"; 00147 case cheerSad1: return "cheerSad1"; 00148 case cheerSad2: return "cheerSad2"; 00149 case cheerSad3: return "cheerSad3"; 00150 case cheerSad5: return "cheerSad5"; 00151 case cheerSad4: return "cheerSad4"; 00152 case cheerWaveLeft: return "cheerWaveLeft"; 00153 case cheerWaveRight: return "cheerWaveRight"; 00154 case chestHard: return "chestHard"; 00155 case chestSoft: return "chestSoft"; 00156 case demoBallOnBack1: return "demoBallOnBack1"; 00157 case demoBallOnBack2: return "demoBallOnBack2"; 00158 case demoPackHeadStand: return "demoPackHeadStand"; 00159 case demoRemoveEars: return "demoRemoveEars"; 00160 case demoRollLeft: return "demoRollLeft"; 00161 case demoRollRight: return "demoRollRight"; 00162 case demoScratchHead: return "demoScratchHead"; 00163 case demoSit: return "demoSit"; 00164 case demoStandUpsideDown: return "demoStandUpsideDown"; 00165 case ers210rollLeft: return "ers210rollLeft"; 00166 case ers210rollRight: return "ers210rollRight"; 00167 case ers210armLeft: return "ers210armLeft"; 00168 case ers210armRight: return "ers210armRight"; 00169 case ers210bash: return "ers210bash"; 00170 case ers210blockLeft: return "ers210blockLeft"; 00171 case ers210blockRight: return "ers210blockRight"; 00172 case ers210bow: return "ers210bow"; 00173 case ers210chest: return "ers210chest"; 00174 case ers210headLeft: return "ers210headLeft"; 00175 case ers210headRight: return "ers210headRight"; 00176 case ers210howl: return "ers210howl"; 00177 case forwardKickFast: return "forwardKickFast"; 00178 case forwardKickHard: return "forwardKickHard"; 00179 case headLeft: return "headLeft"; 00180 case headLeftSoft: return "headLeftSoft"; 00181 case headRight: return "headRight"; 00182 case headRightSoft: return "headRightSoft"; 00183 case hookLeft: return "hookLeft"; 00184 case hookRight: return "hookRight"; 00185 case leftPaw: return "leftPaw"; 00186 case pushSoft: return "pushSoft"; 00187 case pushStrong: return "pushStrong"; 00188 case putLeft: return "putLeft"; 00189 case putRight: return "putRight"; 00190 case rightPaw: return "rightPaw"; 00191 case slapLeft: return "slapLeft"; 00192 case slapRight: return "slapRight"; 00193 case snowPlow: return "snowPlow"; 00194 case swing: return "swing"; 00195 case tunnelKick: return "tunnelKick"; 00196 00197 default: return "please edit MotionRequest::getSpecialActionName"; 00198 } 00199 } 00200 00201 /** 00202 * Returns the special action id for a name 00203 */ 00204 static SpecialActionRequest::SpecialActionID getSpecialActionIDFromName(const char* name); 00205 }; 00206 00207 class WalkRequest{ 00208 public: 00209 /** ids for all walking types */ 00210 enum WalkType { 00211 normal, 00212 upsideDown, 00213 turnWithBall, 00214 turnKick, 00215 dash, 00216 debug, 00217 numOfWalkType 00218 }; 00219 00220 WalkRequest():walkType(normal) {} 00221 00222 /** walking type */ 00223 WalkType walkType; 00224 00225 /** walk parameters, in mm/s / rad/s */ 00226 Pose2D walkParams; 00227 00228 /** returns names for walking types */ 00229 static const char* getWalkTypeName(WalkType id) 00230 { 00231 switch (id) 00232 { 00233 case normal: return "normal"; 00234 case upsideDown: return "upsideDown"; 00235 case turnWithBall: return "turnWithBall"; 00236 case turnKick: return "turnKick"; 00237 case dash: return "dash"; 00238 case debug: return "debug"; 00239 default: return "Unknown motion name, please edit MotionRequest::getWalkTypeName"; 00240 } 00241 } 00242 }; 00243 00244 class TailRequest{ 00245 public: 00246 enum TailRequestID 00247 { 00248 wagHorizontal, 00249 wagVertical, 00250 wagLeftRightHorizontal, 00251 wagLeftRightVertical, 00252 wagUpDownLeft, 00253 wagUpDownRight, 00254 stayAsForced, 00255 stayAsForcedPan, 00256 stayAsForcedTilt, 00257 tailFollowsHead, 00258 tailParallelToGround, 00259 noTailWag, 00260 wagHorizontalFast, 00261 wagVerticalFast, 00262 twoPositionSwitchVertical, 00263 twoPositionSwitchHorizontal, 00264 threePositionSwitchVertical, 00265 threePositionSwitchHorizontal, 00266 fourPositionSwitchUpDownLeftRight, 00267 fourPositionSwitchCorners, 00268 fivePositionSwitch, 00269 eightPositionSwitch, 00270 tailLeftTop, tailCenterTop, tailRightTop, 00271 tailLeftCenter, tailCenterCenter, tailRightCenter, 00272 tailLeftBottom, tailCenterBottom, tailRightBottom, 00273 numOfTailRequests 00274 }; 00275 00276 TailRequest():tailRequestID(wagHorizontal){} 00277 00278 /** tail request */ 00279 TailRequestID tailRequestID; 00280 00281 00282 00283 /** ids for tail request */ 00284 /** returns names for tail requests */ 00285 static const char* getTailRequestIDName(TailRequestID id) 00286 { 00287 switch (id) 00288 { 00289 case wagHorizontal: return "wagHorizontal"; 00290 case wagVertical: return "wagVertical"; 00291 case wagLeftRightHorizontal: return "wagLeftRightHorizontal"; 00292 case wagLeftRightVertical: return "wagLeftRightVertical"; 00293 case wagUpDownLeft: return "wagUpDownLeft"; 00294 case wagUpDownRight: return "wagUpDownRight"; 00295 case stayAsForced: return "stayAsForced"; 00296 case stayAsForcedPan: return "stayAsForcedPan"; 00297 case stayAsForcedTilt: return "stayAsForcedTilt"; 00298 case tailFollowsHead: return "tailFollowsHead"; 00299 case tailParallelToGround: return "tailParallelToGround"; 00300 case noTailWag: return "noTailWag"; 00301 case wagHorizontalFast: return "wagHorizontalFast"; 00302 case wagVerticalFast: return "wagVerticalFast"; 00303 case twoPositionSwitchVertical: return "twoPositionSwitchVertical"; 00304 case twoPositionSwitchHorizontal: return "twoPositionSwitchHorizontal"; 00305 case threePositionSwitchVertical: return "threePositionSwitchVertical"; 00306 case threePositionSwitchHorizontal: return "threePositionSwitchHorizontal"; 00307 case fourPositionSwitchUpDownLeftRight: return "fourPositionSwitchUpDownLeftRight"; 00308 case fourPositionSwitchCorners: return "fourPositionSwitchCorners"; 00309 case fivePositionSwitch: return "fivePositionSwitch"; 00310 case eightPositionSwitch: return "eightPositionSwitch"; 00311 case tailLeftTop: return "tailLeftTop"; 00312 case tailCenterTop: return "tailCenterTop"; 00313 case tailRightTop: return "tailRightTop"; 00314 case tailLeftCenter: return "tailLeftCenter"; 00315 case tailCenterCenter: return "tailCenterCenter"; 00316 case tailRightCenter: return "tailRightCenter"; 00317 case tailLeftBottom: return "tailLeftBottom"; 00318 case tailCenterBottom: return "tailCenterBottom"; 00319 case tailRightBottom: return "tailRightBottom"; 00320 00321 default: return "Unknown tail request, please edit MotionRequest::getTailRequestName"; 00322 } 00323 } 00324 00325 }; 00326 /** 00327 * This describes the MotionRequest 00328 */ 00329 class MotionRequest 00330 { 00331 public: 00332 00333 unsigned long frameNumber; 00334 00335 void setFrameNumber(unsigned long frameNumber) {this->frameNumber = frameNumber;} 00336 00337 00338 /** ids for all motion types */ 00339 enum MotionID { 00340 stand, 00341 walk, 00342 specialAction, 00343 getup, 00344 playDead, 00345 numOfMotion 00346 }; 00347 00348 /** returns names for motion ids */ 00349 static const char* getMotionName(MotionID id) 00350 { 00351 switch (id) 00352 { 00353 case playDead: return "playDead"; 00354 case stand: return "stand"; 00355 case walk: return "walk"; 00356 case specialAction: return "specialAction"; 00357 case getup: return "getup"; 00358 00359 default: return "Unknown motion name, please edit MotionRequest::getMotionName"; 00360 } 00361 } 00362 00363 /** motion type */ 00364 MotionID motionType; 00365 00366 /** SpecialActionRequest */ 00367 SpecialActionRequest specialActionRequest; 00368 00369 TailRequest tailRequest; 00370 00371 WalkRequest walkRequest; 00372 00373 00374 00375 00376 00377 /** constructor, startup motion defined here */ 00378 #ifdef _WIN32 00379 MotionRequest():motionType(playDead),stabilize(false),updateRP(true),frameNumber(0) {} 00380 #else 00381 MotionRequest():motionType(playDead),stabilize(false),updateRP(true),frameNumber(0) {} 00382 #endif 00383 /** == operator */ 00384 bool operator==(const MotionRequest& other) const 00385 { 00386 switch (motionType) 00387 { 00388 case stand: 00389 case getup: 00390 default: 00391 return ( 00392 motionType == other.motionType && 00393 stabilize == other.stabilize); 00394 case walk: 00395 return (walkRequest.walkParams == other.walkRequest.walkParams && 00396 stabilize == other.stabilize && 00397 motionType == other.motionType && 00398 walkRequest.walkType == other.walkRequest.walkType); 00399 case specialAction: 00400 return ( 00401 stabilize == other.stabilize && 00402 motionType == other.motionType && 00403 specialActionRequest.specialActionType == other.specialActionRequest.specialActionType); 00404 } 00405 } 00406 00407 /** = operator */ 00408 void operator=(const MotionRequest& other); 00409 00410 /** determines if the motion is being stabilized */ 00411 bool stabilize; 00412 00413 /** turns on or off the propagation (by odometry) of the "robot pose" 00414 in the "motion" process */ 00415 bool updateRP; 00416 00417 /** returns name of current motion */ 00418 const char* getMotionName() const {return getMotionName(motionType);}; 00419 00420 /** returns name of current special action if any */ 00421 const char* getSpecialActionName() const 00422 { 00423 if (motionType == specialAction) 00424 return specialActionRequest.getSpecialActionIDName(specialActionRequest.specialActionType); 00425 else 00426 return ""; 00427 }; 00428 00429 /** return name of current walking type if any */ 00430 const char* getWalkTypeName() const 00431 { 00432 if (motionType == walk) 00433 return walkRequest.getWalkTypeName(walkRequest.walkType); 00434 else 00435 return ""; 00436 } 00437 00438 /** 00439 * Prints the motion request to a readable string. (E.g. "NormalWalk 100,0,0") 00440 * @param destination The string to fill 00441 */ 00442 void printOut(char* destination) const; 00443 00444 int padding; /**< Without this padding, the gcc-version crashes. */ 00445 }; 00446 00447 /** 00448 * Streaming operator that reads a MotionRequest from a stream. 00449 * @param stream The stream from which is read. 00450 * @param motionRequest The MotionRequest object. 00451 * @return The stream. 00452 */ 00453 In& operator>>(In& stream,MotionRequest& motionRequest); 00454 00455 /** 00456 * Streaming operator that writes a MotionRequest to a stream. 00457 * @param stream The stream to write on. 00458 * @param motionRequest The MotionRequest object. 00459 * @return The stream. 00460 */ 00461 Out& operator<<(Out& stream, const MotionRequest& motionRequest); 00462 00463 #endif // __MOTIONREQUEST_H__ 00464 00465 /* 00466 * Change log : 00467 * 00468 * $Log: MotionRequest.h,v $ 00469 * Revision 1.13 2004/07/21 15:39:56 spranger 00470 * removed breathe, beautified motiontesterlgbar 00471 * 00472 * Revision 1.12 2004/07/02 12:05:37 lohmann 00473 * Added headLeftSoft and headRightSoft 00474 * 00475 * Revision 1.11 2004/07/01 10:04:13 lohmann 00476 * added slapLeft and slapRight 00477 * 00478 * Revision 1.10 2004/06/30 08:37:53 lohmann 00479 * Added forwardKickHard and forwardKickFast 00480 * 00481 * Revision 1.9 2004/06/14 15:02:24 spranger 00482 * removed playDead 00483 * 00484 * Revision 1.8 2004/06/04 16:36:44 juengel 00485 * Added walkType turn-kick 00486 * 00487 * Revision 1.7 2004/06/04 13:50:46 dueffert 00488 * unused turnwithball walk types removed 00489 * 00490 * Revision 1.6 2004/06/02 17:19:19 spranger 00491 * split up motionrequest in tail-,specialaction-,walk-request 00492 * removed walkcycle double (its in motioninfo) 00493 * 00494 * Revision 1.5 2004/05/27 16:22:52 goehring 00495 * renamed some special actions 00496 * 00497 * Revision 1.4 2004/05/27 13:36:49 goehring 00498 * bugfix 00499 * 00500 * Revision 1.3 2004/05/27 13:10:11 goehring 00501 * some specialActions removed 00502 * 00503 * Revision 1.2 2004/05/26 20:47:13 goehring 00504 * removed some special actions 00505 * 00506 * Revision 1.1.1.1 2004/05/22 17:25:30 cvsadm 00507 * created new repository GT2004_WM 00508 * 00509 * Revision 1.48 2004/05/17 13:56:51 rossdeutscher 00510 * Added mofs for open challenge 00511 * 00512 * Revision 1.47 2004/05/10 10:29:17 juengel 00513 * Added positionInWalkCycle. 00514 * 00515 * Revision 1.46 2004/05/06 12:24:35 hamerla 00516 * add some mofs 00517 * 00518 * Revision 1.45 2004/04/22 14:38:48 dueffert 00519 * speeds adapted to new abilities 00520 * 00521 * Revision 1.44 2004/04/09 12:49:59 tim 00522 * added kicks fom BB2004 00523 * 00524 * Revision 1.43 2004/04/08 15:33:07 wachter 00525 * GT04 checkin of Microsoft-Hellounds 00526 * 00527 * Revision 1.42 2004/04/07 13:00:47 risler 00528 * ddd checkin after go04 - second part 00529 * 00530 * Revision 1.10 2004/04/04 01:18:48 risler 00531 * grab mof added 00532 * 00533 * Revision 1.9 2004/04/03 21:35:58 risler 00534 * added dddErs7hold mof 00535 * head kick from grab improved 00536 * 00537 * Revision 1.8 2004/04/03 21:21:05 dthomas 00538 * added new mof dddErs7bande 00539 * 00540 * Revision 1.7 2004/04/02 17:01:25 Schmitt 00541 * Added DDD SoccerKickLeft 00542 * 00543 * Revision 1.6 2004/04/01 14:32:09 Schmitt 00544 * Changes removed 00545 * 00546 * Revision 1.5 2004/04/01 13:59:09 Schmitt 00547 * Unified SpecialAction Names 00548 * 00549 * Revision 1.4 2004/03/31 18:28:26 dthomas 00550 * updated kick-engine with tester, catch and catch-and-turn 00551 * 00552 * Revision 1.3 2004/03/31 10:50:58 risler 00553 * walk type dash added 00554 * adjusted max speed 00555 * 00556 * Revision 1.2 2004/03/30 16:26:23 risler 00557 * ddd ers7 special actions renamed 00558 * 00559 * Revision 1.1.1.1 2004/03/29 08:28:45 Administrator 00560 * initial transfer from tamara 00561 * 00562 * Revision 1.41 2004/04/05 17:56:50 loetzsch 00563 * merged the local German Open CVS of the aibo team humboldt with the tamara CVS 00564 * 00565 * Revision 1.40 2004/04/01 12:15:37 dueffert 00566 * missing string added 00567 * added athErs7GOShortDance 00568 * 00569 * Revision 1.4 2004/04/03 02:32:36 aldi 00570 * added new athErs7 Cheers 00571 * 00572 * Revision 1.3 2004/04/01 21:59:10 aldi 00573 * new athErs7 cheering added 00574 * 00575 * Revision 1.2 2004/04/01 20:49:44 loetzsch 00576 * renamed athErs7UnswBash to athErs7ExactForwardKick 00577 * 00578 * Revision 1.1.1.1 2004/03/31 11:16:53 loetzsch 00579 * created ATH repository for german open 2004 00580 * 00581 * Revision 1.39 2004/03/29 17:50:29 loetzsch 00582 * added athers7unswbashfromhold 00583 * 00584 * Revision 1.38 2004/03/29 15:30:22 dueffert 00585 * new turn parameterset 00586 * 00587 * Revision 1.37 2004/03/29 15:14:42 loetzsch 00588 * added athers7GrabBall 00589 * 00590 * Revision 1.36 2004/03/28 14:09:51 jhoffman 00591 * - added error member variables to ball model 00592 * - minor improvement in handling of updateRP in motiontesterdialog 00593 * 00594 * Revision 1.35 2004/03/28 11:07:35 thomas 00595 * added more ddd-special-actions 00596 * 00597 * Revision 1.34 2004/03/19 21:18:00 altmeyer 00598 * SideHeadKick and SideHeadKick2 changed and renamed to SideHeadKick L and SideHeadKickR 00599 * a few ATH ERS7-kicks removed 00600 * 00601 * Revision 1.33 2004/03/19 18:58:23 jhoffman 00602 * "update robot pose in motion" is now turned on by default 00603 * 00604 * Revision 1.32 2004/03/19 14:58:12 jess4279 00605 * BB2004 Kicks hinzugefügt 00606 * 00607 * Revision 1.31 2004/03/19 13:47:00 jess4279 00608 * BB2004HeadKick hinzugefügt 00609 * 00610 * Revision 1.30 2004/03/18 11:59:59 thomas 00611 * added: first ers7 special actions from ddd 00612 * 00613 * Revision 1.29 2004/03/17 21:08:39 cesarz 00614 * Added turnWithBall3, which points to MSH2004TurnWithBallWalkingParameters. 00615 * 00616 * Revision 1.28 2004/03/17 19:52:09 juengel 00617 * Added walkType turnWithBall2 00618 * 00619 * Revision 1.27 2004/03/17 15:38:51 thomas 00620 * added walkType debug for debugging WalkingEngineParameterSets 00621 * paramSets-messages send by debug-message are stored in the new debug-walkType only 00622 * 00623 * Revision 1.26 2004/03/16 14:00:21 juengel 00624 * Integrated Improvments from "Günne" 00625 * -ATH2004ERS7Behavior 00626 * -ATHHeadControl 00627 * -KickSelectionTable 00628 * -KickEditor 00629 * 00630 * Revision 1.2 2004/03/15 17:11:40 hoffmann 00631 * - added ATH2004HeadControl 00632 * - added ATH2004LEDControl 00633 * - headmotiontester shows "tilt2" 00634 * - motion process updates odometry while no new robotPose is received, added to motion request 00635 * - some ui adjustments 00636 * - added member function to "field" to find out if robot is in own penalty area for use in the obstacles locator 00637 * 00638 * Revision 1.25 2004/03/16 13:49:25 altmeyer 00639 * added new ATHErs7 Special Actions 00640 * 00641 * Revision 1.24 2004/03/16 13:46:07 altmeyer 00642 * added 00643 * 00644 * Revision 1.23 2004/03/15 17:47:11 rossbacher 00645 * Fixed naming problem with MSH7 and added another .mof 00646 * 00647 * Revision 1.22 2004/03/12 15:34:37 rossbacher 00648 * Added new MSH7 Special Actions 00649 * 00650 * Revision 1.21 2004/03/11 11:23:04 schmitt 00651 * Added ERS-7 headKick 00652 * 00653 * Revision 1.20 2004/03/10 15:10:10 rossdeutscher 00654 * Adden some new MSH7 .mofs 00655 * 00656 * Revision 1.19 2004/03/10 11:16:17 rossbacher 00657 * Added MSH7 mofs 00658 * 00659 * Revision 1.18 2004/03/04 18:32:38 rempe 00660 * new goalie defend motions added 00661 * 00662 * Revision 1.17 2004/02/27 18:20:17 brueckne 00663 * mofs added 00664 * 00665 * Revision 1.16 2004/02/27 17:26:06 heinze 00666 * added 3 mofs 00667 * 00668 * Revision 1.15 2004/02/27 15:24:14 juengel 00669 * Added some wake-up motions. 00670 * 00671 * Revision 1.14 2004/02/26 10:54:02 jhoffman 00672 * - hopefully fixed ath-mof name problems 00673 * 00674 * Revision 1.13 2004/02/26 09:35:08 schumann 00675 * removed compiler errors caused by misspelling of ath kick 00676 * 00677 * Revision 1.12 2004/02/25 15:28:01 jhoffman 00678 * kick renamed 00679 * 00680 * Revision 1.11 2004/02/25 13:43:28 jhoffman 00681 * ATH kick renamed 00682 * 00683 * Revision 1.10 2004/02/06 20:24:39 roefer 00684 * Maximum rotation speed increased 00685 * 00686 * Revision 1.9 2004/01/19 14:53:46 dueffert 00687 * all frameNumbers (and not only some of them) are unsigned long now 00688 * 00689 * Revision 1.8 2004/01/08 13:52:35 loetzsch 00690 * added new special action ATH_kickForwardWithRightPaw 00691 * 00692 * Revision 1.7 2004/01/05 17:56:27 juengel 00693 * Added HeadControlModes stayAsForcedPan and stayAsForcedTilt. 00694 * 00695 * Revision 1.6 2004/01/05 11:37:35 juengel 00696 * Added new TailModes: wagUpDown* and wagLeftRight*. 00697 * 00698 * Revision 1.5 2003/12/21 15:43:12 kerdels 00699 * einrückung.. 00700 * 00701 * Revision 1.4 2003/12/16 18:52:55 loetzsch 00702 * added a function for retrieving the id for as string. 00703 * 00704 * Revision 1.3 2003/11/14 19:02:26 goehring 00705 * frameNumber added 00706 * 00707 * Revision 1.2 2003/10/29 19:38:41 lohmann 00708 * New Headstand and new behavior for game-state-final (test-final.xml) added. 00709 * 00710 * Revision 1.1 2003/10/07 10:07:01 cvsadm 00711 * Created GT2004 (M.J.) 00712 * 00713 * Revision 1.13 2003/09/25 11:23:52 juengel 00714 * Removed BlobCollection. 00715 * 00716 * Revision 1.12 2003/09/25 10:16:18 juengel 00717 * Removed some walk-types. 00718 * 00719 * Revision 1.11 2003/09/24 16:39:03 juengel 00720 * comments removed 00721 * 00722 * Revision 1.10 2003/07/07 14:11:02 thomas 00723 * remove old diveKick 00724 * 00725 * Revision 1.9 2003/07/07 08:56:02 brunn 00726 * lanceKicks 00727 * 00728 * Revision 1.8 2003/07/05 22:14:56 dueffert 00729 * kicks renamed and properly linked 00730 * 00731 * Revision 1.7 2003/07/05 15:25:20 dueffert 00732 * escapePadua added 00733 * 00734 * Revision 1.6 2003/07/05 12:09:25 dueffert 00735 * most important mof ever added 00736 * 00737 * Revision 1.5 2003/07/05 11:53:11 schumann 00738 * challenge kicks added and grabbing behavior prepared 00739 * 00740 * Revision 1.4 2003/07/03 15:09:46 thomas 00741 * fix: missing entries for new kicks 00742 * 00743 * Revision 1.3 2003/07/03 14:54:23 risler 00744 * new kicks 00745 * 00746 * Revision 1.2 2003/07/02 10:21:11 dueffert 00747 * missing kick added 00748 * 00749 * Revision 1.1.1.1 2003/07/02 09:40:22 cvsadm 00750 * created new repository for the competitions in Padova from the 00751 * tamara CVS (Tuesday 2:00 pm) 00752 * 00753 * removed unused solutions 00754 * 00755 * Revision 1.42 2003/06/27 13:39:08 reiss 00756 * New Kicks added (von Andreas Reiß, Carsten Schuhmann, Michael Wachter, Wenchuan Ding) 00757 * 00758 * Revision 1.41 2003/06/23 12:56:07 schumann 00759 * added special bicycle kick for challenge 00760 * 00761 * Revision 1.40 2003/06/19 20:19:28 risler 00762 * diveKickFromHold added 00763 * 00764 * Revision 1.39 2003/06/19 18:26:24 thomas 00765 * added: diveKick 00766 * 00767 * Revision 1.38 2003/06/18 18:08:50 jhoffman 00768 * forward leaping kick reordered 00769 * 00770 * Revision 1.37 2003/06/13 17:06:17 jhoffman 00771 * added new kick motion 00772 * 00773 * Revision 1.36 2003/05/06 16:50:51 juengel 00774 * Added tail-mode eightPositionSwitch. 00775 * 00776 * Revision 1.35 2003/05/06 07:57:30 dueffert 00777 * alphabetically reordered 00778 * 00779 * Revision 1.34 2003/04/15 15:52:12 risler 00780 * DDD GO 2003 code integrated 00781 * 00782 * Revision 1.25 2003/04/11 23:12:33 max 00783 * added howl mof 00784 * 00785 * Revision 1.33 2003/04/14 16:37:47 dueffert 00786 * several cheer motions added 00787 * 00788 * Revision 1.4 2003/04/10 19:12:34 dueffert 00789 * context sensitive reset in MotionTester 00790 * 00791 * Revision 1.3 2003/04/10 17:35:44 Daniel 00792 * cheer motions implemented 00793 * 00794 * Revision 1.2 2003/04/10 08:25:05 dueffert 00795 * fun stuff added 00796 * 00797 * Revision 1.32 2003/04/08 19:27:50 hebbel 00798 * added bicycleKickFromHold 00799 * 00800 * Revision 1.31 2003/04/08 16:07:39 dueffert 00801 * mofs added 00802 * 00803 * Revision 1.30 2003/04/05 15:08:46 loetzsch 00804 * removed chestKick3 again 00805 * 00806 * Revision 1.29 2003/04/04 17:20:05 juengel 00807 * Added chestKick3 00808 * 00809 * Revision 1.28 2003/04/04 16:06:08 cesarz 00810 * kicks added 00811 * 00812 * Revision 1.27 2003/04/03 14:38:46 hebbel 00813 * kickFromHold added 00814 * 00815 * Revision 1.26 2003/04/02 14:55:21 timrie 00816 * Added BBwinner 00817 * 00818 * Revision 1.25 2003/04/02 14:10:39 dueffert 00819 * walkType turnWithBall added, sorted alphabetically 00820 * 00821 * Revision 1.24 2003/04/02 13:54:36 loetzsch 00822 * added lookForLandmarksWithBallCaught 00823 * 00824 * Revision 1.23 2003/04/01 22:45:34 cesarz 00825 * added catchBallAndCheck special action 00826 * 00827 * Revision 1.22 2003/03/25 14:19:30 timrie 00828 * Added Specialaction BBloser 00829 * 00830 * Revision 1.21 2003/03/24 14:45:49 juengel 00831 * Added several tail modes 00832 * 00833 * Revision 1.20 2003/03/07 17:08:41 juengel 00834 * initialized breathe with false 00835 * 00836 * Revision 1.19 2003/03/06 11:55:50 dueffert 00837 * re-order warning removed 00838 * 00839 * Revision 1.18 2003/02/25 09:02:11 roefer 00840 * breathe initialized under _WIN32 00841 * 00842 * Revision 1.17 2003/02/05 17:03:38 dueffert 00843 * packs added, getUpsideDown renamed 00844 * 00845 * Revision 1.16 2003/02/03 16:40:41 risler 00846 * increased maximum walking speeds 00847 * 00848 * Revision 1.15 2003/02/01 17:06:42 risler 00849 * added rollRight, RollLeft 00850 * 00851 * Revision 1.14 2003/02/01 17:04:18 risler 00852 * added rollRight, RollLeft 00853 * 00854 * Revision 1.13 2003/01/27 19:27:08 juengel 00855 * added walkType upsideDown 00856 * 00857 * Revision 1.12 2003/01/21 23:33:32 juengel 00858 * Added getUpsideDown.mof 00859 * 00860 * Revision 1.11 2003/01/15 16:20:25 loetzsch 00861 * reanamed boundary kick to bicycle kick 00862 * 00863 * Revision 1.10 2002/12/01 18:52:28 roefer 00864 * No playDead in simulation 00865 * 00866 * Revision 1.9 2002/11/26 19:09:19 loetzsch 00867 * MotionRequest is initialized with play-dead 00868 * 00869 * Revision 1.8 2002/11/26 17:19:22 risler 00870 * added wakeUp specialAction for smooth startup 00871 * 00872 * Revision 1.7 2002/11/25 14:49:08 jhoffman 00873 * added "breathing" motion 00874 * 00875 * Revision 1.6 2002/11/20 18:02:29 risler 00876 * added PID values to GT2001MotionNetSpecialActions 00877 * added playDead motion 00878 * 00879 * Revision 1.5 2002/11/19 17:12:24 juengel 00880 * "switch" tail modes added 00881 * 00882 * Revision 1.4 2002/10/11 16:59:15 roefer 00883 * Fast tail wags added 00884 * 00885 * Revision 1.3 2002/09/22 18:40:54 risler 00886 * added new math functions, removed GTMath library 00887 * 00888 * Revision 1.2 2002/09/17 23:55:19 loetzsch 00889 * - unraveled several datatypes 00890 * - changed the WATCH macro 00891 * - completed the process restructuring 00892 * 00893 * Revision 1.1 2002/09/10 15:26:40 cvsadm 00894 * Created new project GT2003 (M.L.) 00895 * - Cleaned up the /Src/DataTypes directory 00896 * - Removed Challenge Code 00897 * - Removed processing of incoming audio data 00898 * - Renamed AcousticMessage to SoundRequest 00899 * 00900 * Revision 1.26 2002/09/03 16:00:50 juengel 00901 * HeadControlMode follwTail, TailMode stayAsForced. 00902 * 00903 * Revision 1.25 2002/08/22 14:41:03 risler 00904 * added some doxygen comments 00905 * 00906 * Revision 1.24 2002/08/04 17:53:18 roefer 00907 * SimGT2002 connection to physical robots added 00908 * 00909 * Revision 1.23 2002/07/23 13:32:57 loetzsch 00910 * new streaming classes 00911 * 00912 * removed many #include statements 00913 * 00914 * Revision 1.22 2002/07/14 14:03:07 roefer 00915 * First working gcc-version 00916 * 00917 * Revision 1.21 2002/06/27 11:18:59 risler 00918 * added additional walk type for bar challenge 00919 * 00920 * Revision 1.20 2002/06/21 04:52:04 risler 00921 * added walktype walkWithBar 00922 * 00923 * Revision 1.19 2002/06/22 07:57:27 RoboCup 00924 * boundaryKickRight and -Left added. 00925 * 00926 * Revision 1.18 2002/06/19 11:30:25 jhoffman 00927 * added heel kicks 00928 * 00929 * Revision 1.17 2002/06/13 21:51:21 loetzsch 00930 * removed the comparisons for tail modes in the == operator 00931 * 00932 * Revision 1.16 2002/06/13 13:08:06 jhoffman 00933 * added some kicks 00934 * 00935 * Revision 1.15 2002/06/10 11:05:17 risler 00936 * added timestamp to motion request 00937 * motioncontrol executes swing when no request was received 00938 * 00939 * Revision 1.14 2002/06/08 14:33:24 kosen 00940 * openArm added 00941 * 00942 * Revision 1.13 2002/06/08 11:24:12 Cesarz 00943 * Added GoalieJumps 00944 * 00945 * Revision 1.12 2002/06/06 16:15:14 jhoffman 00946 * added unsw-bash-optimized (kick mof) 00947 * 00948 * Revision 1.11 2002/06/06 13:20:44 risler 00949 * removed bug with MotionRequest == operator 00950 * 00951 * Revision 1.10 2002/06/06 12:51:44 risler 00952 * removed bug with MotionRequest == operator / executed motion request 00953 * 00954 * Revision 1.9 2002/06/06 10:24:53 AndySHB 00955 * Neue mof hinzugefuegt: grabBall. 00956 * 00957 * Revision 1.8 2002/06/04 16:44:55 risler 00958 * tailRequest added 00959 * 00960 * Revision 1.7 2002/06/03 14:38:24 dueffert 00961 * Jan's new paw kick 00962 * 00963 * Revision 1.6 2002/06/01 10:17:14 juengel 00964 * Added catchBall2. 00965 * 00966 * Revision 1.5 2002/05/27 14:40:01 cesarz 00967 * boundaryKick added 00968 * 00969 * Revision 1.4 2002/05/24 15:36:53 kosen 00970 * Ball Challenge mofs added 00971 * 00972 * Revision 1.3 2002/05/16 15:05:49 risler 00973 * added walk type walkWithBall 00974 * 00975 * Revision 1.2 2002/05/13 07:22:34 cesarz 00976 * mantisKick, armKickleft and armKickRight added 00977 * 00978 * Revision 1.1.1.1 2002/05/10 12:40:13 cvsadm 00979 * Moved GT2002 Project from ute to tamara. 00980 * 00981 * Revision 1.41 2002/05/06 17:15:20 risler 00982 * increased max walk speeds 00983 * 00984 * Revision 1.40 2002/05/05 15:13:36 risler 00985 * changed stand implementation, removed not working special actions 00986 * 00987 * Revision 1.39 2002/05/04 18:18:06 risler 00988 * made printOut const 00989 * 00990 * Revision 1.38 2002/05/04 12:43:38 loetzsch 00991 * The currently executed MotionRequest is now sent from the MotionControl 00992 * to the BehaviorControl via the OdometryData structure 00993 * 00994 * Revision 1.37 2002/05/03 16:34:36 loetzsch 00995 * added == operator 00996 * 00997 * Revision 1.36 2002/05/03 11:49:56 juengel 00998 * Removed secretSpecialActionID. 00999 * 01000 * Revision 1.35 2002/04/29 13:46:42 risler 01001 * no message 01002 * 01003 * Revision 1.34 2002/04/24 07:49:14 risler 01004 * changed normalWalkMaxSpeed to walkMaxSpeed 01005 * 01006 * Revision 1.33 2002/04/23 15:08:45 risler 01007 * changed MotionRequest: walk instead of normalWalk,... and walkType added 01008 * 01009 * Revision 1.32 2002/04/18 10:25:31 roefer 01010 * Bremen GO 01011 * 01012 * Revision 1.31 2002/04/17 17:04:40 risler 01013 * Darmstadt GO 01014 * 01015 * Revision 1.30 2002/04/16 16:23:04 dueffert 01016 * no message 01017 * 01018 * Revision 1.8 2002/04/08 18:30:23 dueffert 01019 * no message 01020 * 01021 * Revision 1.29 2002/04/15 13:39:24 rentmeister 01022 * DoWalkingEngine (Dortmunder WalkingEngine) 01023 * 01024 * Revision 1.28 2002/04/08 16:27:26 mierswa 01025 * New input for FuzzyBeahviourControl. 01026 * 01027 * Revision 1.27 2002/04/04 15:07:59 rentmeister 01028 * Walk with Ball hinzugefügt 01029 * 01030 * Revision 1.26 2002/04/04 10:21:33 risler 01031 * changed normalWalkMaxRotationSpeed to angle 01032 * 01033 * Revision 1.25 2002/04/03 16:48:53 jhoffman 01034 * added "stabilizeRobot" to motionControl (which is turned off as a default) 01035 * 01036 * Revision 1.24 2002/04/03 15:20:24 risler 01037 * changed normalWalkMaxRotationSpeed to angle 01038 * 01039 * Revision 1.23 2002/04/02 16:06:27 loetzsch 01040 * added printOut function 01041 */