Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Representations/Motion/MotionRequest.h

Go to the documentation of this file.
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 */

Generated on Thu Sep 23 19:57:35 2004 for GT2004 by doxygen 1.3.6