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

Modules/SensorDataProcessor/SensorDataProcessor.h

Go to the documentation of this file.
00001 /**
00002 * @file SensorDataProcessor.h
00003 *
00004 * Declaration of abstract class SensorDataProcessor.
00005 *
00006 * @author Matthias Juengel
00007 * @author Martin Lötzsch
00008 */
00009 
00010 #ifndef __SensorDataProcessor_h_
00011 #define __SensorDataProcessor_h_
00012 
00013 #include "Tools/RobotConfiguration.h"
00014 #include "Tools/Module/Module.h"
00015 
00016 #include "Representations/Perception/CameraMatrix.h"
00017 #include "Representations/Perception/SensorDataBuffer.h"
00018 #include "Representations/Perception/BodyPercept.h"
00019 #include "Representations/Perception/BodyPosture.h"
00020 #include "Representations/Perception/PSDPercept.h"
00021 #include "Representations/Motion/MotionInfo.h"
00022 
00023 /** 
00024 * @class SensorDataProcessorInterfaces
00025 * 
00026 * Interfaces of the SensorDataProcessor module.
00027 */
00028 class SensorDataProcessorInterfaces
00029 {
00030 public:
00031   /** Constructor */
00032   SensorDataProcessorInterfaces(
00033     const SensorDataBuffer& sensorDataBuffer,
00034     const unsigned long& imageFrameNumber,
00035     const MotionInfo& motionInfo,
00036     BodyPercept& bodyPercept,
00037     BodyPosture& bodyPosture,
00038     CameraMatrix& cameraMatrix,
00039     PSDPercept& psdPercept) 
00040     : sensorDataBuffer(sensorDataBuffer),
00041     imageFrameNumber(imageFrameNumber),
00042     motionInfo(motionInfo),
00043     bodyPercept(bodyPercept),
00044     bodyPosture(bodyPosture),
00045     cameraMatrix(cameraMatrix),
00046     psdPercept(psdPercept)
00047   {}
00048 
00049 protected:
00050   /** The SensorDataBuffer to be processed. */
00051   const SensorDataBuffer& sensorDataBuffer;
00052 
00053   /** The frame number of the current image */
00054   const unsigned long& imageFrameNumber;
00055 
00056   /** The motion info last received from Motion */
00057   const MotionInfo& motionInfo;
00058 
00059   /** The BodyPercept to be calculated */
00060   BodyPercept& bodyPercept;
00061 
00062   /** The BodyPosture to be calculated */
00063   BodyPosture& bodyPosture;
00064 
00065   /** The offset and the rotation of the camera to be calculated */
00066   CameraMatrix& cameraMatrix;
00067 
00068   /** A spot relative to the robot that was detected by the PSD sensor to be calculated */
00069   PSDPercept& psdPercept;
00070 };
00071 
00072 /**
00073 * @class SensorDataProcessor
00074 *
00075 * An abstract class that defines a processor for raw sensor data.
00076 */
00077 class SensorDataProcessor : public Module, public SensorDataProcessorInterfaces, public RobotDimensions
00078 {
00079 public:
00080 /*
00081 * Constructor.
00082 * @param interfaces The paramters of the ImageProcessor module.
00083   */
00084   SensorDataProcessor(const SensorDataProcessorInterfaces& interfaces)
00085     : SensorDataProcessorInterfaces(interfaces),
00086       RobotDimensions(getRobotConfiguration().getRobotDimensions())
00087   {}
00088   
00089   /** Destructor */
00090   virtual ~SensorDataProcessor() {}
00091 };
00092 
00093 #endif // __SensorDataProcessor_h_
00094 
00095 /*
00096 * Change log :
00097 * 
00098 * $Log: SensorDataProcessor.h,v $
00099 * Revision 1.6  2004/05/27 09:33:18  loetzsch
00100 * clean up
00101 *
00102 * Revision 1.5  2004/05/26 17:31:34  dueffert
00103 * better data types used
00104 *
00105 * Revision 1.4  2004/05/26 17:21:47  dueffert
00106 * better data types used
00107 *
00108 * Revision 1.3  2004/05/26 17:13:18  juengel
00109 * Added bodyPosture.
00110 *
00111 * Revision 1.2  2004/05/26 15:18:44  juengel
00112 * Added BodyPosture.
00113 *
00114 * Revision 1.1.1.1  2004/05/22 17:21:30  cvsadm
00115 * created new repository GT2004_WM
00116 *
00117 * Revision 1.3  2004/03/08 02:11:52  roefer
00118 * Interfaces should be const
00119 *
00120 * Revision 1.2  2004/01/12 12:23:51  juengel
00121 * SensorDataProcessor derives from RobotConfiguration now.
00122 *
00123 * Revision 1.1  2003/10/06 14:10:14  cvsadm
00124 * Created GT2004 (M.J.)
00125 *
00126 * Revision 1.2  2003/09/26 15:27:49  juengel
00127 * Renamed DataTypes to representations.
00128 *
00129 * Revision 1.1.1.1  2003/07/02 09:40:24  cvsadm
00130 * created new repository for the competitions in Padova from the 
00131 * tamara CVS (Tuesday 2:00 pm)
00132 *
00133 * removed unused solutions
00134 *
00135 * Revision 1.7  2003/05/02 18:26:18  risler
00136 * SensorDataBuffer added
00137 * replaced SensorData with SensorDataBuffer
00138 * full SensorData resolution now accessible
00139 *
00140 * Revision 1.6  2002/10/10 13:09:49  loetzsch
00141 * First experiments with the PSD Sensor
00142 * - SensorDataProcessor now calculates PSDPercept
00143 * - Added the PerceptBehaviorControl solution PSDTest
00144 * - Added the RadarViewer3D to RobotControl, which can display the Points3D structure
00145 *
00146 * Revision 1.5  2002/09/17 23:55:22  loetzsch
00147 * - unraveled several datatypes
00148 * - changed the WATCH macro
00149 * - completed the process restructuring
00150 *
00151 * Revision 1.4  2002/09/12 12:24:09  juengel
00152 * continued change of module/solution mechanisms
00153 *
00154 * Revision 1.3  2002/09/10 21:07:30  loetzsch
00155 * continued change of module/solution mechanisms
00156 *
00157 * Revision 1.2  2002/09/10 17:53:40  loetzsch
00158 * First draft of new Module/Solution Mechanisms
00159 *
00160 * Revision 1.1  2002/09/10 15:36:16  cvsadm
00161 * Created new project GT2003 (M.L.)
00162 * - Cleaned up the /Src/DataTypes directory
00163 * - Removed challenge related source code
00164 * - Removed processing of incoming audio data
00165 * - Renamed AcousticMessage to SoundRequest
00166 *
00167 * Revision 1.2  2002/08/30 14:34:37  dueffert
00168 * removed unused includes
00169 *
00170 * Revision 1.1.1.1  2002/05/10 12:40:15  cvsadm
00171 * Moved GT2002 Project from ute to tamara.
00172 *
00173 * Revision 1.9  2002/04/02 13:10:20  dueffert
00174 * big change: odometryData and cameraMatrix in image now, old logfiles may be obsolete
00175 *
00176 * Revision 1.8  2002/03/24 20:17:49  roefer
00177 * Warning on noFrameNumber removed
00178 *
00179 * Revision 1.7  2002/03/24 18:15:00  loetzsch
00180 * continued change to blocking sensor data receivers
00181 *
00182 * Revision 1.6  2002/03/24 14:19:46  roefer
00183 * Input now waits for SensorData
00184 *
00185 * Revision 1.5  2002/01/20 23:35:06  loetzsch
00186 * Added parameter imageFrameNumber to execute(...)
00187 *
00188 * Revision 1.4  2001/12/21 14:09:39  roefer
00189 * Added several destructors
00190 *
00191 * Revision 1.3  2001/12/10 17:47:07  risler
00192 * change log added
00193 *
00194 */

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