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
1.3.6