00001 /** 00002 * @file SensorBehaviorControl.h 00003 * This file contains a generic class for Modules which generate 00004 * motionRequests by sensorData. 00005 * 00006 * @author <a href="mailto:juengel@informatik.hu-berlin.de">Matthias Jüngel</a> 00007 */ 00008 00009 #ifndef __SensorBehaviorControl_h_ 00010 #define __SensorBehaviorControl_h_ 00011 00012 #include "Tools/Module/Module.h" 00013 00014 #include "Representations/Perception/Image.h" 00015 #include "Representations/Perception/SensorDataBuffer.h" 00016 #include "Representations/Perception/CameraMatrix.h" 00017 #include "Representations/Perception/ColorTable.h" 00018 #include "Representations/Perception/ColorTable64.h" 00019 #include "Representations/Sound/SoundRequest.h" 00020 #include "Representations/Motion/MotionRequest.h" 00021 #include "Representations/Motion/LEDRequest.h" 00022 #include "Representations/Motion/HeadControlMode.h" 00023 #include "Representations/Motion/OdometryData.h" 00024 #include "Representations/Cognition/RobotState.h" 00025 00026 /** 00027 * @class SensorBehaviorControlInterfaces 00028 * 00029 * The interfaces of the SensorBehaviorControl module. 00030 */ 00031 class SensorBehaviorControlInterfaces 00032 { 00033 public: 00034 /** Constructor.*/ 00035 SensorBehaviorControlInterfaces( 00036 const Image& image, 00037 const SensorDataBuffer& sensorDataBuffer, 00038 const CameraMatrix& cameraMatrix, 00039 const ColorTable& colorTable, 00040 const OdometryData& odometryData, 00041 const RobotState& robotState, 00042 SoundRequest& soundRequest, 00043 MotionRequest& motionRequest, 00044 LEDRequest& ledRequest, 00045 HeadControlMode& headControlMode 00046 ) 00047 : 00048 image(image), 00049 sensorDataBuffer(sensorDataBuffer), 00050 cameraMatrix(cameraMatrix), 00051 colorTable(colorTable), 00052 odometryData(odometryData), 00053 robotState(robotState), 00054 soundRequest(soundRequest), 00055 motionRequest(motionRequest), 00056 ledRequest(ledRequest), 00057 headControlMode(headControlMode) 00058 {} 00059 00060 /** */ 00061 const Image& image; 00062 00063 /** */ 00064 const SensorDataBuffer& sensorDataBuffer; 00065 00066 /** */ 00067 const CameraMatrix& cameraMatrix; 00068 00069 /** The color table ptr */ 00070 const ColorTable& colorTable; 00071 00072 /** The odometry that was estimated by the motion modules */ 00073 const OdometryData& odometryData; 00074 00075 /** */ 00076 const RobotState& robotState; 00077 00078 /** */ 00079 SoundRequest& soundRequest; 00080 00081 /** */ 00082 MotionRequest& motionRequest; 00083 00084 /** */ 00085 LEDRequest& ledRequest; 00086 00087 /** */ 00088 HeadControlMode& headControlMode; 00089 }; 00090 00091 /** 00092 * A generic class for Modules which generate 00093 * motionRequests by sensorData. 00094 * 00095 * @author <a href="mailto:juengel@informatik.hu-berlin.de">Matthias Jüngel</a> 00096 */ 00097 class SensorBehaviorControl : public Module, public SensorBehaviorControlInterfaces 00098 { 00099 public: 00100 /* 00101 * Constructor. 00102 * @param interfaces The paramters of the SensorBehaviorControl module. 00103 */ 00104 SensorBehaviorControl(const SensorBehaviorControlInterfaces& interfaces) 00105 : SensorBehaviorControlInterfaces(interfaces) 00106 {} 00107 00108 /** Destructor */ 00109 virtual ~SensorBehaviorControl() {} 00110 }; 00111 00112 #endif //__SensorBehaviorControl_h_ 00113 00114 /* 00115 * Change log : 00116 * 00117 * $Log: SensorBehaviorControl.h,v $ 00118 * Revision 1.1.1.1 2004/05/22 17:20:53 cvsadm 00119 * created new repository GT2004_WM 00120 * 00121 * Revision 1.3 2004/03/08 02:11:50 roefer 00122 * Interfaces should be const 00123 * 00124 * Revision 1.2 2003/12/09 16:28:15 jhoffman 00125 * - added sounds to obstacle avoider on green field 00126 * - added calibration mode for obstacle avoider on green field 00127 * 00128 * Revision 1.1 2003/10/06 14:10:15 cvsadm 00129 * Created GT2004 (M.J.) 00130 * 00131 * Revision 1.2 2003/09/26 15:27:49 juengel 00132 * Renamed DataTypes to representations. 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.9 2003/05/02 18:15:18 risler 00141 * SensorDataBuffer added 00142 * replaced SensorData with SensorDataBuffer 00143 * full SensorData resolution now accessible 00144 * 00145 * Revision 1.8 2003/03/06 11:51:39 dueffert 00146 * re-order warning removed 00147 * 00148 * Revision 1.7 2003/02/21 18:32:04 roefer 00149 * pColorTable -> colorTable finished 00150 * 00151 * Revision 1.6 2003/02/18 21:29:17 osterhues 00152 * Changed all instances of ColorTable64 to new base class ColorTable 00153 * 00154 * Revision 1.5 2003/01/13 18:25:30 juengel 00155 * Added odometry to SensorBehaviorControlInterfaces. 00156 * 00157 * Revision 1.4 2002/12/06 16:41:01 goehring 00158 * no message 00159 * 00160 * Revision 1.3 2002/11/28 18:53:13 juengel 00161 * SoundRequest zu den interfaces hinzugefügt 00162 * 00163 * Revision 1.2 2002/11/20 15:44:49 juengel 00164 * Added cameraMatrix to SensorBehaviorControlInterfaces. 00165 * 00166 * Revision 1.1 2002/11/07 17:27:58 loetzsch 00167 * renamed Module SensorDataToMotionRequest to SensorBehaviorControl 00168 * 00169 * Revision 1.2 2002/09/12 12:24:09 juengel 00170 * continued change of module/solution mechanisms 00171 * 00172 * Revision 1.1 2002/09/10 15:36:16 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:03 risler 00180 * added some doxygen comments 00181 * 00182 * Revision 1.2 2002/07/29 17:44:48 jhoffman 00183 * added braitenberg vehicle-style behavior (or actually: a "sensor data to motion request") 00184 * 00185 * Revision 1.1.1.1 2002/05/10 12:40:15 cvsadm 00186 * Moved GT2002 Project from ute to tamara. 00187 * 00188 * Revision 1.1 2002/01/06 13:48:33 juengel 00189 * WalkDemo hinzuefügt. 00190 * 00191 * 00192 */