00001 /** 00002 * @file BallLocator.h 00003 * 00004 * This file contains a generic class for Ball-Localization. 00005 */ 00006 00007 #ifndef __BallLocator_h_ 00008 #define __BallLocator_h_ 00009 00010 #include "Tools/Module/Module.h" 00011 00012 #include "Representations/Perception/BallPercept.h" 00013 #include "Representations/Perception/LandmarksPercept.h" 00014 #include "Representations/Perception/CameraMatrix.h" 00015 #include "Representations/Cognition/RobotPose.h" 00016 #include "Representations/Perception/SensorDataBuffer.h" 00017 #include "Representations/Perception/CalibrationRequest.h" 00018 #include "Representations/Cognition/BallModel.h" 00019 #include "Representations/Motion/OdometryData.h" 00020 00021 /** 00022 * @class BallLocatorInterfaces 00023 * 00024 * The interfaces of the BallLocator module. 00025 */ 00026 class BallLocatorInterfaces 00027 { 00028 public: 00029 /** Constructor.*/ 00030 BallLocatorInterfaces( 00031 const OdometryData& odometryData, 00032 const CameraMatrix& cameraMatrix, 00033 const BallPercept& ballPercept, 00034 const LandmarksPercept& landmarksPercept, 00035 const RobotPose& robotPose, 00036 const CalibrationRequest& calibrationRequest, 00037 const SensorDataBuffer& sensorDataBuffer, 00038 BallModel& ballModel) 00039 : 00040 odometryData(odometryData), 00041 cameraMatrix(cameraMatrix), 00042 ballPercept(ballPercept), 00043 landmarksPercept(landmarksPercept), 00044 robotPose(robotPose), 00045 calibrationRequest(calibrationRequest), 00046 sensorDataBuffer(sensorDataBuffer), 00047 ballModel(ballModel) 00048 {} 00049 00050 /** The odometry data provided by the motion modules */ 00051 const OdometryData& odometryData; 00052 00053 /** The offset and the rotation of the camera */ 00054 const CameraMatrix& cameraMatrix; 00055 00056 /** The ball percept that was generated last */ 00057 const BallPercept& ballPercept; 00058 00059 /** The landmarkspercept that was generated last */ 00060 const LandmarksPercept& landmarksPercept; 00061 00062 /** The robots position that was calculated last */ 00063 const RobotPose& robotPose; 00064 00065 /** The calibration request */ 00066 const CalibrationRequest& calibrationRequest; 00067 00068 /** The sensor data buffer*/ 00069 const SensorDataBuffer& sensorDataBuffer; 00070 00071 /** The ball position to be changed */ 00072 BallModel& ballModel; 00073 }; 00074 00075 /** 00076 * @class BallLocator 00077 * 00078 * The Base class for ball locators 00079 * 00080 * It is the task of ball modeling to keep track of the location of 00081 * the ball even if the ball is currently not seen. 00082 */ 00083 class BallLocator : public Module, public BallLocatorInterfaces 00084 { 00085 public: 00086 /* 00087 * Constructor. 00088 * @param interfaces The paramters of the BallLocator module. 00089 */ 00090 BallLocator(const BallLocatorInterfaces& interfaces) 00091 : BallLocatorInterfaces(interfaces) 00092 {} 00093 00094 /** Destructor */ 00095 virtual ~BallLocator() {} 00096 }; 00097 00098 #endif //__BallLocator_h_ 00099 00100 /* 00101 * Change log : 00102 * 00103 * $Log: BallLocator.h,v $ 00104 * Revision 1.3 2004/05/27 09:53:33 loetzsch 00105 * removed "timeOfImageProcessing" 00106 * 00107 * Revision 1.2 2004/05/22 22:52:01 juengel 00108 * Renamed ballP_osition to ballModel. 00109 * 00110 * Revision 1.1.1.1 2004/05/22 17:15:16 cvsadm 00111 * created new repository GT2004_WM 00112 * 00113 * Revision 1.8 2004/04/09 11:35:51 roefer 00114 * Bremen Byters German Open check-in 00115 * 00116 * Revision 1.7 2004/04/05 17:56:45 loetzsch 00117 * merged the local German Open CVS of the aibo team humboldt with the tamara CVS 00118 * 00119 * Revision 1.2 2004/04/02 10:03:15 jumped 00120 * added landmarkspercept to balllocator interface 00121 * 00122 * Revision 1.1.1.1 2004/03/31 11:16:37 loetzsch 00123 * created ATH repository for german open 2004 00124 * 00125 * Revision 1.6 2004/03/21 12:39:32 juengel 00126 * Added CalibrationRequest to BallLocatorInterfaces. 00127 * 00128 * Revision 1.5 2004/03/08 00:58:35 roefer 00129 * Interfaces should be const 00130 * 00131 * Revision 1.4 2004/02/03 13:19:48 spranger 00132 * renamed all references to class BallP_osition to BallModel 00133 * 00134 * Revision 1.3 2004/01/20 23:09:49 loetzsch 00135 * bug fix 00136 * 00137 * Revision 1.2 2004/01/20 16:45:52 loetzsch 00138 * The BallLocator has access to the complete BallP_osition again 00139 * 00140 * Revision 1.1 2003/10/06 13:33:15 cvsadm 00141 * Created GT2004 (M.J.) 00142 * 00143 * Revision 1.2 2003/09/26 15:27:48 juengel 00144 * Renamed DataTypes to representations. 00145 * 00146 * Revision 1.1.1.1 2003/07/02 09:40:23 cvsadm 00147 * created new repository for the competitions in Padova from the 00148 * tamara CVS (Tuesday 2:00 pm) 00149 * 00150 * removed unused solutions 00151 * 00152 * Revision 1.5 2003/05/01 17:09:06 loetzsch 00153 * Redesign of ball modeling: 00154 * - Modularized class BallP_osition 00155 * - splitted up module "BallLocator" into "BallLocator" for modeling of percepts 00156 * and "TeamBallLocator" for modelling communicated positions 00157 * - Removed solution JumpingBallLocator 00158 * - Splitted Solution DefaultBallLocator into DefaultBallLocator and DefaultTeamBallLocator 00159 * - Renamed SensorFusionBallLocator to GaussBellTeamBallLocator 00160 * 00161 * Revision 1.4 2003/03/19 15:41:06 jhoffman 00162 * added proper ball speed 00163 * 00164 * Revision 1.3 2002/09/17 23:55:20 loetzsch 00165 * - unraveled several datatypes 00166 * - changed the WATCH macro 00167 * - completed the process restructuring 00168 * 00169 * Revision 1.2 2002/09/12 09:45:58 juengel 00170 * continued change of module/solution mechanisms 00171 * 00172 * Revision 1.1 2002/09/10 15:36:12 cvsadm 00173 * Created new project GT2003 (M.L.) 00174 * - Cleaned up the /Src/DataTypes directory 00175 * - Removed challenge related source code 00176 * - Removed processing of incoming audio data 00177 * - Renamed AcousticMessage to SoundRequest 00178 * 00179 * Revision 1.3 2002/08/22 14:41:04 risler 00180 * added some doxygen comments 00181 * 00182 * Revision 1.2 2002/06/03 15:27:30 roefer 00183 * BallLocator gets TeamMessageCollection 00184 * 00185 * Revision 1.1.1.1 2002/05/10 12:40:13 cvsadm 00186 * Moved GT2002 Project from ute to tamara. 00187 * 00188 * Revision 1.4 2002/04/02 13:10:18 dueffert 00189 * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete 00190 * 00191 * Revision 1.3 2001/12/21 14:09:39 roefer 00192 * Added several destructors 00193 * 00194 * Revision 1.2 2001/12/10 17:47:06 risler 00195 * change log added 00196 * 00197 */