00001 /** 00002 * @file ChallengeSymbols.h 00003 * 00004 * Declaration of class ChallengeSymbols. 00005 * 00006 * @author Thomas Röfer 00007 */ 00008 00009 #ifndef __ChallengeSymbols_h_ 00010 #define __ChallengeSymbols_h_ 00011 00012 #include "../BehaviorControl.h" 00013 #include "Tools/Xabsl2/Xabsl2Engine/Xabsl2Engine.h" 00014 00015 /** 00016 * The Xabsl2 symbols that are defined in "challenge-symbols.xml" 00017 * 00018 * @author Thomas Röfer 00019 */ 00020 class ChallengeSymbols : public Xabsl2FunctionProvider, public BehaviorControlInterfaces 00021 { 00022 public: 00023 /* 00024 * Constructor. 00025 * @param interfaces The parameters of the BehaviorControl module. 00026 */ 00027 ChallengeSymbols(const BehaviorControlInterfaces& interfaces); 00028 00029 /** registers the symbols at an engine */ 00030 void registerSymbols(Xabsl2Engine& engine); 00031 00032 /** updates the symbols */ 00033 void update(); 00034 void challenge2Swap(Pose2D* p, int i, int j); 00035 void challenge2ShortestPermutation(Pose2D* p, int n, double& minLength); 00036 void challenge2ShortestPath(); 00037 void challenge2OptimalRotation(Pose2D& pose); 00038 double challenge2TargetPositionX(); /**< Returns x coordinate of target position with current index. */ 00039 double challenge2TargetPositionY(); /**< Returns y coordinate of target position with current index. */ 00040 double challenge2TargetPositionRotation(); /**< Returns rotation of target position with current index. */ 00041 private: 00042 Pose2D targetPositions[5]; /**< The 5 target positions for the localization challenge */ 00043 double index, /**< the index for targetPosition? functions */ 00044 lastIndex; /**< The index of the previous call */ 00045 00046 }; 00047 00048 00049 #endif // __ChallengeSymbols_h_ 00050 00051 /* 00052 * Change Log 00053 * 00054 * $Log: ChallengeSymbols.h,v $ 00055 * Revision 1.2 2004/06/28 12:27:59 schumann 00056 * part 1 of the almost slam challenge behavior 00057 * 00058 * Revision 1.1.1.1 2004/05/22 17:16:57 cvsadm 00059 * created new repository GT2004_WM 00060 * 00061 * Revision 1.2 2004/03/08 00:58:55 roefer 00062 * Interfaces should be const 00063 * 00064 * Revision 1.1 2003/10/22 22:18:44 loetzsch 00065 * prepared the cloning of the GT2003BehaviorControl 00066 * 00067 */ 00068