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

Modules/BehaviorControl/GT2005BehaviorControl/GT2005Symbols/GT2005ConfigurationSymbols.h

Go to the documentation of this file.
00001 /** 
00002 * @file GT2005ConfigurationSymbols.h
00003 *
00004 * Declaration of class GT2005ConfigurationSymbols.
00005 *
00006 * @author Max Risler
00007 */
00008 
00009 #ifndef __GT2005ConfigurationSymbols_h_
00010 #define __GT2005ConfigurationSymbols_h_
00011 
00012 #include "../../BehaviorControl.h"
00013 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h"
00014 #include "Tools/RingBufferWithSum.h"
00015 /**
00016 * The Xabsl2 symbols that are defined in "configuration-symbols.xml"
00017 *
00018 * @author Max Risler
00019 */ 
00020 class GT2005ConfigurationSymbols : public Xabsl2FunctionProvider, public BehaviorControlInterfaces
00021 {
00022 public:
00023 /*
00024 * Constructor.
00025 * @param interfaces The parameters of the BehaviorControl module.
00026   */
00027   GT2005ConfigurationSymbols(BehaviorControlInterfaces& interfaces);
00028   
00029   /** registers the symbols at an engine */
00030   void registerSymbols(Xabsl2Engine& engine);
00031 
00032   /** updates the symbols */
00033   void update();
00034 
00035   //!@name Input symbols
00036   //!@{
00037   double getCurrentKickoff(); /*!< A function for the symbol "current-kickoff-variant" */
00038   double getOwnKickoffX(); /*!< A function for the symbol "own-kickoff.x" */
00039   double getOwnKickoffY(); /*!< A function for the symbol "own-kickoff.y" */
00040   double getOwnKickoffAngle(); /*!< A function for the symbol "own-kickoff.angle" */
00041   double getOwnKickoffXByObstacles(); /*!< A function for the symbol "own-kickoff.x" by obstacle model */
00042   double getOwnKickoffYByObstacles(); /*!< A function for the symbol "own-kickoff.y" by obstacle model */
00043   double getOwnKickoffAngleByObstacles(); /*!< A function for the symbol "own-kickoff.angle" by obstacle model */
00044   double getOpponentKickoffX(); /*!< A function for the symbol "opponent-kickoff.x" */
00045   double getOpponentKickoffY(); /*!< A function for the symbol "opponent-kickoff.y" */
00046   double getOpponentKickoffAngle(); /*!< A function for the symbol "opponent-kickoff.angle" */
00047   double getKickoffX(); /*!< A function for the symbol "kickoff.x" */
00048   double getKickoffY(); /*!< A function for the symbol "kickoff.y" */
00049   double getKickoffAngle(); /*!< A function for the symbol "kickoff.angle" */
00050   //!@}
00051 
00052   /** kickoff role */
00053   BehaviorTeamMessage::DynamicRole kickoff_role;
00054   /** computes the kickoff role */
00055   void computeKickoffRole();
00056   double getKickOffRoleNumber(); //hack
00057   double getTimeToReachKickoffPose(BehaviorTeamMessage::DynamicRole, Vector2<double> );
00058 
00059 private:
00060 
00061     /** number of different kickoff variants */
00062   enum { numOfKickoff = 2 };
00063 
00064   /** the max speed with which the robot walks to its kickoff position */
00065   double goToKickoffMaxSpeed;
00066 
00067   /** the goalie start position */
00068   Vector2<double> goalie;
00069 
00070   /** the defensive supporter start position */
00071   Vector2<double> defensiveSupporter;
00072 
00073   /** the offensive supporter start position at opponent kickoff */
00074   Vector2<double> offensiveSupporterOpponentKickoff;
00075   /** the striker start position at opponent kickoff */
00076   Vector2<double> strikerOpponentKickoff;
00077 
00078   /** the offensive supporter start position at own kickoff */
00079   Vector2<double> offensiveSupporterOwnKickoff[numOfKickoff];
00080   /** the orientation of the offensive supporter at own kickoff in degrees */
00081   double offensiveSupporterOwnKickoffAngle[numOfKickoff];
00082   /** the striker start position at own kickoff */
00083   Vector2<double> strikerOwnKickoff[numOfKickoff];
00084   /** the orientation of the striker at own kickoff in degrees */
00085   double strikerOwnKickoffAngle[numOfKickoff];
00086 
00087   /**
00088   * current own kickoff variant 
00089   */
00090   int currentKickoff;
00091 
00092   /**
00093   * current kickoff role
00094   */
00095   double role;
00096   double ownKickOff;
00097   RingBufferWithSum<10> kickoffTimes[3];
00098 
00099   /** kickoff-position of striker based on obstacle-model */
00100   Pose2D obstacleKickoff;
00101 };
00102 
00103 
00104 #endif // __GT2005ConfigurationSymbols_h_
00105 

Generated on Mon Mar 20 21:59:43 2006 for GT2005 by doxygen 1.3.6