00001 /** 00002 * @file BallLocatorSelector.h 00003 * 00004 * Definition of class BallLocatorSelector 00005 * 00006 * @author Max Risler 00007 * @author Martin Lötzsch 00008 * @author Matthias Jüngel 00009 */ 00010 00011 #ifndef __BallLocatorSelector_h_ 00012 #define __BallLocatorSelector_h_ 00013 00014 #include "Tools/Module/ModuleSelector.h" 00015 00016 #include "BallLocator.h" 00017 #include "GT2004BallLocator.h" 00018 00019 /** 00020 * @class BallLocatorSelector 00021 * 00022 * A module selector for ball locators. 00023 * 00024 * @author Martin Lötzsch 00025 */ 00026 class BallLocatorSelector : public ModuleSelector, public BallLocatorInterfaces 00027 { 00028 public: 00029 /** 00030 * Constructor. 00031 * @param handler The module handler of the process. 00032 * @param interfaces The paramters of the BallLocator module. 00033 */ 00034 BallLocatorSelector(ModuleHandler &handler, const BallLocatorInterfaces& interfaces) 00035 : ModuleSelector(SolutionRequest::ballLocator), 00036 BallLocatorInterfaces(interfaces) 00037 { 00038 handler.setModuleSelector(SolutionRequest::ballLocator, this); 00039 } 00040 00041 /** 00042 * Is called on start and when the selected solution changes 00043 * to create a specific solution. 00044 * @param id The id of the solution to create 00045 * @return The created solution or 0 00046 */ 00047 virtual Module* createSolution(SolutionRequest::ModuleSolutionID id) 00048 { 00049 switch(id) 00050 { 00051 case SolutionRequest::gt2004BallLocator: 00052 return new GT2004BallLocator(*this); 00053 default: 00054 return 0; 00055 } 00056 } 00057 00058 }; 00059 00060 #endif //__BallLocatorSelector_h_ 00061 00062 /* 00063 * Change log: 00064 * 00065 * $Log: BallLocatorSelector.h,v $ 00066 * Revision 1.8 2004/07/14 21:11:34 spranger 00067 * removed Kalman and KalmanCombo, introduced GT2004BallLocator 00068 * 00069 * Revision 1.7 2004/07/10 00:13:58 spranger 00070 * renaming for coderelease and preparations for gt2005 00071 * 00072 * Revision 1.6 2004/07/02 09:31:27 jhoffman 00073 * Kalman-Combo now uses the "PerceptBallLocator" for the position; odometry is used for propagation of position when ball is not seen 00074 * 00075 * Revision 1.5 2004/07/01 12:38:28 dassler 00076 * introduced new Balllocator KalmanComboBallLocator 00077 * ball.seen is set by the Validity and the rest by the Kalman Filter 00078 * 00079 * Revision 1.4 2004/05/26 00:08:58 goehring 00080 * ValidityBasedBallLocator added 00081 * 00082 * Revision 1.3 2004/05/22 22:52:01 juengel 00083 * Renamed ballP_osition to ballModel. 00084 * 00085 * Revision 1.2 2004/05/22 22:01:06 loetzsch 00086 * removed some ball locators 00087 * 00088 * Revision 1.1.1.1 2004/05/22 17:15:16 cvsadm 00089 * created new repository GT2004_WM 00090 * 00091 * Revision 1.13 2004/04/21 20:11:40 goehring 00092 * BallLocators added 00093 * 00094 * Revision 1.12 2004/04/09 11:35:51 roefer 00095 * Bremen Byters German Open check-in 00096 * 00097 * Revision 1.11 2004/04/08 15:33:00 wachter 00098 * GT04 checkin of Microsoft-Hellounds 00099 * 00100 * Revision 1.10 2004/04/07 13:25:43 thomas 00101 * ddd checkin after go04 - second part fixed solutions 00102 * 00103 * Revision 1.9 2004/04/07 12:28:56 risler 00104 * ddd checkin after go04 - first part 00105 * 00106 * Revision 1.8 2004/03/11 14:27:31 uhrig 00107 * KalmanBallLocator was added 00108 * 00109 * Revision 1.7 2004/03/08 00:58:36 roefer 00110 * Interfaces should be const 00111 * 00112 * Revision 1.6 2004/01/21 14:31:57 loetzsch 00113 * Module Selectors create only the selected solution. 00114 * When the solution changes, the old solution is erased and the new 00115 * one ist created using createSolution(..) 00116 * 00117 * Revision 1.5 2003/12/03 13:29:27 schumann 00118 * added MSH2004 Ball Locator 00119 * 00120 * Revision 1.4 2003/12/02 13:52:48 goehring 00121 * PerceptBallLocator added 00122 * 00123 * Revision 1.3 2003/10/22 10:20:37 goehring 00124 * VoteBasedBallLocator Added 00125 * 00126 * Revision 1.2 2003/10/15 13:37:44 goehring 00127 * ATH2004BallLocator added 00128 * 00129 * Revision 1.1 2003/10/06 13:33:15 cvsadm 00130 * Created GT2004 (M.J.) 00131 * 00132 * Revision 1.3 2003/09/25 10:10:31 juengel 00133 * Removed VoteBasedBallLocator. 00134 * 00135 * Revision 1.2 2003/07/05 12:00:10 kudlacik 00136 * Added BallChallengeBallLocator 00137 * 00138 * Revision 1.1.1.1 2003/07/02 09:40:23 cvsadm 00139 * created new repository for the competitions in Padova from the 00140 * tamara CVS (Tuesday 2:00 pm) 00141 * 00142 * removed unused solutions 00143 * 00144 * Revision 1.8 2003/06/24 10:11:31 jhoffman 00145 * added new ball locator 00146 * 00147 * Revision 1.7 2003/06/21 11:59:10 roefer 00148 * SampleBallLocator added, does not work! 00149 * 00150 * Revision 1.6 2003/05/01 17:09:06 loetzsch 00151 * Redesign of ball modeling: 00152 * - Modularized class BallP_osition 00153 * - splitted up module "BallLocator" into "BallLocator" for modeling of percepts 00154 * and "TeamBallLocator" for modelling communicated positions 00155 * - Removed solution JumpingBallLocator 00156 * - Splitted Solution DefaultBallLocator into DefaultBallLocator and DefaultTeamBallLocator 00157 * - Renamed SensorFusionBallLocator to GaussBellTeamBallLocator 00158 * 00159 * Revision 1.5 2003/03/05 10:34:05 jhoffman 00160 * no message 00161 * 00162 * Revision 1.4 2003/02/19 16:22:12 engel 00163 * SensorFusionBallLocator added 00164 * 00165 * Revision 1.3 2003/01/30 13:16:48 loetzsch 00166 * Redesign of class BallP_osition 00167 * 00168 * Revision 1.2 2002/09/12 09:45:58 juengel 00169 * continued change of module/solution mechanisms 00170 * 00171 * Revision 1.1 2002/09/10 15:36:12 cvsadm 00172 * Created new project GT2003 (M.L.) 00173 * - Cleaned up the /Src/DataTypes directory 00174 * - Removed challenge related source code 00175 * - Removed processing of incoming audio data 00176 * - Renamed AcousticMessage to SoundRequest 00177 * 00178 * Revision 1.6 2002/06/17 18:36:32 kspiess 00179 * sample based multi ball locator added 00180 * 00181 * Revision 1.5 2002/06/13 22:11:16 roefer 00182 * StickyBallLocator added 00183 * 00184 * Revision 1.4 2002/06/06 10:51:47 kspiess 00185 * distribution for multiple balls; 00186 * 00187 * Revision 1.3 2002/06/03 15:27:30 roefer 00188 * BallLocator gets TeamMessageCollection 00189 * 00190 * Revision 1.2 2002/05/14 12:39:04 dueffert 00191 * corrected some documentation mistakes 00192 * 00193 * Revision 1.1.1.1 2002/05/10 12:40:13 cvsadm 00194 * Moved GT2002 Project from ute to tamara. 00195 * 00196 * Revision 1.4 2002/05/03 11:51:26 juengel 00197 * JumpingBallLocator created. 00198 * 00199 * Revision 1.3 2002/04/02 13:10:18 dueffert 00200 * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete 00201 * 00202 * Revision 1.2 2002/02/11 11:13:05 roefer 00203 * BallPerceptor and BallLocator inserted 00204 * 00205 * Revision 1.1 2002/02/05 03:50:15 loetzsch 00206 * added a few new module selectors 00207 * 00208 */