00001 /** 00002 * @file GT2004HeadControlSymbols.h 00003 * 00004 * Declaration of class GT2004HeadControlSymbols. 00005 * 00006 * @author Martin Lötzsch 00007 */ 00008 00009 #ifndef __GT2004HeadControlSymbols_h_ 00010 #define __GT2004HeadControlSymbols_h_ 00011 00012 #include "../HeadControl.h" 00013 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h" 00014 00015 // prototype to avoid inclusion of GT2004HeadControl.h 00016 class GT2004HeadControl; 00017 00018 // prototype to avoid inclusion of GT2004HeadControlBasicBehavior.h 00019 class GT2004BasicBehaviorDirectedScanForLandmarks; 00020 00021 /** 00022 * The Xabsl2 symbols that are defined in "symbols.xml" 00023 * 00024 * @author Martin Lötzsch 00025 */ 00026 class GT2004HeadControlSymbols : public Xabsl2FunctionProvider, public HeadControlInterfaces 00027 { 00028 public: 00029 /* 00030 * Constructor. 00031 * @param interfaces The paramters of the HeadControl module. 00032 * @param headControl A reference to the HeadControl module 00033 */ 00034 GT2004HeadControlSymbols(const HeadControlInterfaces& interfaces, 00035 GT2004HeadControl& headControl, 00036 GT2004BasicBehaviorDirectedScanForLandmarks& gt2004BasicBehaviorDirectedScanForLandmarks); 00037 00038 /** registers the symbols at an engine */ 00039 void registerSymbols(Xabsl2Engine& engine); 00040 00041 /** updates the symbols */ 00042 void update(); 00043 00044 //!@name Input symbols 00045 //!@{ 00046 double getPositionInWalkCycle(); /*!< A function for the symbol "position-in-walk-cycle" */ 00047 double getBallTimeSinceLastSeen(); /*!< A function for the symbol "ball.time-since-last-seen" */ 00048 double getTimeSinceLastSeenConsecutively(); /*!< A function for the symbol "ball.time-since-last-seen-consecutively" */ 00049 double getBallConsecutivelySeenTime(); /*!< A function for the symbol "ball.consecutive-seen-time" */ 00050 double getCommunicatedBallDistance(); /*!< A function for the symbol "ball.communicated-ball-distance" */ 00051 double getRelativeBallSpeedX(); /*!< A function for the symbol "ball.relative-speed-x" */ 00052 double getRelativeBallSpeedY(); /*!< A function for the symbol "ball.relative-speed-y" */ 00053 double getBallSpeedAbs(); /*!< A function for the symbol "ball.speed-abs" */ 00054 double getSeenDistance(); /*!< A function for the symbol "ball.seen.distance" */ 00055 double getTimeSinceLastSeenABeacon(); /*!< A function for the symbol "time-since-last-seen-beacon" */ 00056 double getTimeBetweenSeen2LastBeacons(); /*!< A function for the symbol "time-between-last-beacons" */ 00057 bool getBodyPSDDetectBall(); /*!< A function for the symbol "body-PSD-detect-ball" */ 00058 bool getLastHeadPathIsFinished(); /*!< A function for the symbol "last-head-path-is-finished" */ 00059 bool getSetJointsIsCloseToDestination(); /*!< A function for the symbol "set-joints-is-close-to-destination" */ 00060 bool getSetJointsMaxPanReached(); /*!< A function for the symbol "set-joints-max-pan-reached" */ 00061 bool getNextLandmarkIsWithinReach(); /*!< A function for the symbol "next-landmark-is-within-reach" */ 00062 bool getReleasingBallLeftIsPossible(); /*!< A function for the symbol "releasing-ball-left-is-possible" */ 00063 bool getReleasingBallRightIsPossible(); /*!< A function for the symbol "releasing-ball-right-is-possible" */ 00064 //!@} 00065 00066 private: 00067 /** A reference to the HeadControl module */ 00068 GT2004HeadControl& headControl; 00069 GT2004BasicBehaviorDirectedScanForLandmarks& gt2004BasicBehaviorDirectedScanForLandmarks; 00070 00071 int lastSeenBeaconIndex; 00072 }; 00073 00074 00075 #endif // __GT2004HeadControlSymbols_h_ 00076 00077 /* 00078 * Change Log 00079 * 00080 * $Log: GT2004HeadControlSymbols.h,v $ 00081 * Revision 1.14 2004/06/28 09:46:57 dassler 00082 * introduced some more headcontrol symbols 00083 * time-since-last-seen-beacon 00084 * time-between-last-beacons 00085 * 00086 * Revision 1.13 2004/06/27 15:37:45 dassler 00087 * introduced ball speed to headcontrol 00088 * 00089 * Revision 1.12 2004/06/23 17:31:46 loetzsch 00090 * improved 00091 * 00092 * Revision 1.11 2004/06/23 12:46:40 loetzsch 00093 * added "ball.time-since-last-seen-consecutively" 00094 * 00095 * Revision 1.10 2004/06/18 18:28:39 dassler 00096 * introduced basic-behavior: 00097 * BeginBallSearchAtBallPositionSeen 00098 * BeginBallSearchAtBallPositionCommunicated 00099 * BeginBallSearchAtBallPositionPropagated 00100 * 00101 * track-ball modified and build in ball-just-lost 00102 * 00103 * Revision 1.9 2004/06/16 18:14:00 jhoffman 00104 * - search-for-landmarks-bug removed (setjointsdirect now sets "headPathPlanner.last...") 00105 * 00106 * Revision 1.8 2004/06/15 16:29:56 jhoffman 00107 * check in for practice match 00108 * 00109 * Revision 1.7 2004/06/14 20:12:10 jhoffman 00110 * - numerous changes and additions to headcontrol 00111 * - cameraInfo default constructor now creates ERS7 info 00112 * - debug drawing "headcontrolfield" added 00113 * 00114 * Revision 1.6 2004/06/11 16:31:59 juengel 00115 * Added symbol positionInWalkCycle. 00116 * 00117 * Revision 1.5 2004/05/26 12:25:24 juengel 00118 * Added release-ball modes. 00119 * 00120 * Revision 1.4 2004/05/25 13:12:06 tim 00121 * changed body PSD stuff 00122 * 00123 * Revision 1.3 2004/05/25 10:29:49 tim 00124 * added body PSD symbols 00125 * 00126 * Revision 1.2 2004/05/23 20:27:57 loetzsch 00127 * some improvements with the head control 00128 * 00129 * Revision 1.1.1.1 2004/05/22 17:19:24 cvsadm 00130 * created new repository GT2004_WM 00131 * 00132 * Revision 1.1 2004/05/18 13:40:00 loetzsch 00133 * registered symbols and basic behaviors for GT2004HeadControl, 00134 * renamed some states and basic behaviors 00135 * 00136 */ 00137