Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Modules/SelfLocator/SelfLocator.h

Go to the documentation of this file.
00001 /**
00002 * @file SelfLocator.h
00003 * 
00004 * This file contains a generic class for Self-Localization.
00005 */
00006 
00007 #ifndef __SelfLocator_h_
00008 #define __SelfLocator_h_
00009 
00010 #include "Tools/Module/Module.h"
00011 
00012 #include "Representations/Perception/LandmarksPercept.h"
00013 #include "Representations/Perception/LinesPercept.h"
00014 #include "Representations/Perception/EdgesPercept.h"
00015 #include "Representations/Perception/SpecialPercept.h"
00016 #include "Representations/Perception/PSDPercept.h"
00017 #include "Representations/Cognition/RobotPose.h"
00018 #include "Representations/Cognition/SampleSet.h"
00019 #include "Representations/Motion/OdometryData.h"
00020 #include "Representations/Perception/CameraMatrix.h"
00021 #include "Representations/Cognition/LandmarksState.h"
00022 
00023 /**
00024 * @class SelfLocatorInterfaces
00025 * 
00026 * The interfaces of the SelfLocator module.
00027 */
00028 class SelfLocatorInterfaces
00029 {
00030 public:
00031   /** Constructor.*/
00032   SelfLocatorInterfaces(
00033     const LandmarksPercept& landmarksPercept,
00034     const LinesPercept& linesPercept,
00035     const EdgesPercept& edgesPercept,
00036     const SpecialPercept& specialPercept,
00037     const PSDPercept& psdPercept,
00038     const OdometryData& odometryData,
00039     const CameraMatrix& cameraMatrix,
00040     RobotPose& robotPose,
00041     SampleSetProxy<PoseSample>& selfLocatorSamples,
00042     LandmarksState& landmarksState)
00043     : landmarksPercept(landmarksPercept),
00044     linesPercept(linesPercept),
00045     edgesPercept(edgesPercept),
00046     specialPercept(specialPercept),
00047     psdPercept(psdPercept),
00048     odometryData(odometryData),
00049     cameraMatrix(cameraMatrix),
00050     robotPose(robotPose),
00051     selfLocatorSamples(selfLocatorSamples),
00052     landmarksState(landmarksState)
00053   {}
00054 
00055 protected:
00056   /** The landmarks detected in the last image */
00057   const LandmarksPercept& landmarksPercept;
00058   
00059   /** The lines detected in the last image */
00060   const LinesPercept& linesPercept;
00061   
00062   /** The edges detected in the last image */
00063   const EdgesPercept& edgesPercept;
00064   
00065   /** The special percepts detected in the last image */
00066   const SpecialPercept& specialPercept;
00067   
00068   /** The psd percepts detected with the PSD sensor */
00069   const PSDPercept& psdPercept;
00070   
00071   /** The odometry that was estimated by the motion modules */
00072   const OdometryData& odometryData;
00073 
00074   /** The camera matrix describing the camera's position */
00075   const CameraMatrix& cameraMatrix;
00076 
00077   /** The robots position to be generated */
00078   RobotPose& robotPose;
00079 
00080   /** The sample set proxy linked to the sample set of the active locator */
00081   SampleSetProxy<PoseSample>& selfLocatorSamples;
00082 
00083   /** the currently seen landmarks */
00084   LandmarksState& landmarksState;
00085 };
00086 
00087 /**
00088 * @class SelfLocator 
00089 *
00090 * The Base class for self locators
00091 */
00092 class SelfLocator : public Module, public SelfLocatorInterfaces
00093 {
00094 public:
00095 /*
00096 * Constructor.
00097 * @param interfaces The paramters of the SelfLocator module.
00098   */
00099   SelfLocator(const SelfLocatorInterfaces& interfaces)
00100     : SelfLocatorInterfaces(interfaces)
00101   {}
00102   
00103   /** Destructor */
00104   virtual ~SelfLocator() {}
00105 };
00106 
00107 #endif //__SelfLocator_h_
00108 
00109 /*
00110  * Change log :
00111  * 
00112  * $Log: SelfLocator.h,v $
00113  * Revision 1.2  2004/06/15 10:58:27  thomas
00114  * added edge-specialist, edges-percept, debug-drawings etc. (not yet called from image-processor)
00115  *
00116  * Revision 1.1.1.1  2004/05/22 17:20:48  cvsadm
00117  * created new repository GT2004_WM
00118  *
00119  * Revision 1.4  2004/04/07 14:42:56  risler
00120  * moved LandsmarksState to Cognition directory, generated by SelfLocator
00121  *
00122  * Revision 1.3  2004/03/08 02:11:48  roefer
00123  * Interfaces should be const
00124  *
00125  * Revision 1.2  2003/11/10 13:34:07  dueffert
00126  * checkerboard localization improved
00127  *
00128  * Revision 1.3  2003/09/26 15:27:49  juengel
00129  * Renamed DataTypes to representations.
00130  *
00131  * Revision 1.2  2003/07/30 14:47:46  dueffert
00132  * SpecialPerceptSelfLocator for Checkboard added
00133  *
00134  * Revision 1.1.1.1  2003/07/02 09:40:24  cvsadm
00135  * created new repository for the competitions in Padova from the 
00136  * tamara CVS (Tuesday 2:00 pm)
00137  *
00138  * removed unused solutions
00139  *
00140  * Revision 1.7  2003/05/12 14:08:40  brunn
00141  * renamed selfLocationSampleSetProxy to selfLocatorSamples
00142  * "Ha, glad am I that no one knew that Rumpelstiltskin I am styled"
00143  *
00144  * Revision 1.6  2003/05/12 12:28:11  brunn
00145  * renamed sampleSetProxy to selfLocationSampleSetProxy
00146  * added selfLocationSampleSetProxy to BehaviourControl-Interfaces
00147  *
00148  * Revision 1.5  2003/05/08 23:52:24  roefer
00149  * SampleSet and SampleSetProxy added
00150  *
00151  * Revision 1.4  2003/01/15 13:46:34  roefer
00152  * SelfLocator has access to CameraMatrix now
00153  *
00154  * Revision 1.3  2002/09/17 23:55:22  loetzsch
00155  * - unraveled several datatypes
00156  * - changed the WATCH macro
00157  * - completed the process restructuring
00158  *
00159  * Revision 1.2  2002/09/12 12:24:09  juengel
00160  * continued change of module/solution mechanisms
00161  *
00162  * Revision 1.1  2002/09/10 15:36:16  cvsadm
00163  * Created new project GT2003 (M.L.)
00164  * - Cleaned up the /Src/DataTypes directory
00165  * - Removed challenge related source code
00166  * - Removed processing of incoming audio data
00167  * - Renamed AcousticMessage to SoundRequest
00168  *
00169  * Revision 1.3  2002/08/30 14:34:06  dueffert
00170  * removed unused includes
00171  *
00172  * Revision 1.2  2002/08/22 14:41:03  risler
00173  * added some doxygen comments
00174  *
00175  * Revision 1.1.1.1  2002/05/10 12:40:15  cvsadm
00176  * Moved GT2002 Project from ute to tamara.
00177  *
00178  * Revision 1.6  2002/04/02 13:10:20  dueffert
00179  * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete
00180  *
00181  * Revision 1.5  2002/02/06 10:30:11  AndySHB
00182  * MonteCarloLocalization First Draft
00183  *
00184  * Revision 1.4  2002/02/05 04:08:28  loetzsch
00185  * changed the execution of the SelfLocator. Parameter
00186  * const PerceptCollection& perceptCollection became
00187  * const LandmarksPercept& landmarksPercept, const LinesPercept& linesPercept.
00188  *
00189  * Revision 1.3  2001/12/21 14:09:39  roefer
00190  * Added several destructors
00191  *
00192  * Revision 1.2  2001/12/10 17:47:07  risler
00193  * change log added
00194  *
00195  */

Generated on Thu Sep 23 19:57:32 2004 for GT2004 by doxygen 1.3.6