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