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

Tools/Debugging/GenericDebugData.h

Go to the documentation of this file.
00001 /**
00002 * @file GenericDebugData.h
00003 * 
00004 * Declaration of class GenericDebugData used for adjusting parameters on the robot.
00005 *
00006 * @author <a href="mailto:jhoffman@informatik.hu-berlin.de">Jan Hoffmann</a>
00007 */ 
00008 
00009 #ifndef __GenericDebugData_h_
00010 #define __GenericDebugData_h_
00011 
00012 #include "Tools/Streams/InOut.h"
00013 #include "Tools/MessageQueue/MessageIDs.h"
00014 
00015 
00016 /**
00017 * 
00018 */
00019 class GenericDebugData
00020 {
00021 public:
00022   /** Constructor */ 
00023   GenericDebugData();
00024 
00025   /** Destructor */ 
00026   ~GenericDebugData();
00027 
00028   enum GenericDebugDataID 
00029   {
00030     numberOfFourierCoefficients = 0, 
00031     braitenbergPIDs = 1, 
00032     danielTest = 2,
00033     defaultObstaclesLocator = 3, 
00034     linesImageProcessor = 4,
00035     MotionDetector = 5,
00036     gridImageProcessor2DebugParameters = 6,
00037     linesSelfLocator = 7,
00038     ballLocatorPIDs = 8,
00039     bodyOffsets = 9,
00040     odometryScale = 10,
00041     motionStabilizer = 11,
00042     yetAnotherInvKinParams = 12,
00043     yetAnotherInvKinPaws = 13,
00044     noOdometrySelfLocator = 14,
00045   teamMessageSendDelay = 15,
00046     // insert above this line
00047     numOfGenericDebugDataIDs,
00048     unknown
00049   };
00050 
00051   static const char* getGenericDebugDateName(GenericDebugDataID genericDebugDataID)
00052   {
00053     switch(genericDebugDataID)
00054     {
00055       case braitenbergPIDs: return "braitenbergPIDs";
00056       case defaultObstaclesLocator: return "DefaultObstaclesLocator";
00057       case MotionDetector: return "MotionDetector";
00058       case numberOfFourierCoefficients: return "numberOfFourierCoefficients";
00059       case danielTest: return "danielTest";
00060       case linesImageProcessor: return "linesImageProcessor";
00061       case gridImageProcessor2DebugParameters: return "gridImageProcessor2DebugParameters";
00062       case linesSelfLocator: return "linesSelfLocator";
00063       case ballLocatorPIDs: return "ballLocatorPIDs";
00064       case bodyOffsets: return "bodyOffsets";
00065       case odometryScale: return "odometryScale";
00066       case motionStabilizer: return "motionStabilizer";
00067       case yetAnotherInvKinParams: return "yetAnotherInvKinParams";
00068       case yetAnotherInvKinPaws: return "yetAnotherInvKinPaws";
00069       case noOdometrySelfLocator: return "noOdometrySelfLocator";
00070     case teamMessageSendDelay: return "teamMessageSendDeay";
00071       default: return "unnamed";
00072     }
00073   }
00074 
00075   static const char* getParameterName(GenericDebugDataID genericDebugDataID, int index)
00076   {
00077     char noNames[10][100] = {"","","","","","","","","",""};
00078     char linesImageProcessorNames[10][100] = {"gridSpacing","yThreshold","vThreshold","","","","","","",""};
00079     char gridImageProcessor2DebugParametersNames[10][100] = {"scanLineSpacing","numOfLines","useFixedHorizon","returnCondition","-", "-", "-", "-", "-", "-"};
00080     char linesSelfLocatorNames[10][100] = {"up","down","delay","height","z","y","trans","rot","",""};
00081     char ballLocatorPIDNames[10][100] = {"ballX P","ballX I","ballX D","speedX P","speedX I","speedX D","","","",""};
00082     char bodyOffsetNames[10][100] = {"bodyTiltOffset","bodyRollOffset","headTiltOffset","headRollOffset","tiltFactor","panFactor","tile2Factor","","",""};
00083     char odometryScaleNames[10][100] = {"scaleX","scaleY","scaleRotation","counterRotation","","","","","",""};
00084     char yetAnotherInvKinParamNames[10][100] = {"x","y","z","tilt","pan","roll","kick lateral","kick speed","body extra","kick length"};
00085     char yetAnotherInvKinPawsNames[10][100] = {"fore x","fore y","hind x","hind y","kick height","use paw","smoothing","","",""};
00086 
00087     switch(genericDebugDataID)
00088     {
00089       case linesImageProcessor: return linesImageProcessorNames[index];
00090       case gridImageProcessor2DebugParameters: return gridImageProcessor2DebugParametersNames[index];
00091       case linesSelfLocator: return linesSelfLocatorNames[index];
00092       case ballLocatorPIDs: return ballLocatorPIDNames[index];
00093       case bodyOffsets: return bodyOffsetNames[index];
00094       case odometryScale: return odometryScaleNames[index];
00095       case yetAnotherInvKinParams: return yetAnotherInvKinParamNames[index];
00096       case yetAnotherInvKinPaws: return yetAnotherInvKinPawsNames[index];
00097       default: return noNames[index];
00098     }
00099   }
00100 
00101   static MessageID getMessageID(GenericDebugDataID genericDebugDataID)
00102   {
00103     switch(genericDebugDataID)
00104     {
00105       case linesSelfLocator: return idLinesSelfLocatorParameters;
00106       case bodyOffsets: return idBodyOffsets;
00107       case odometryScale: return idOdometryScale;
00108       case yetAnotherInvKinParams: return idYetAnotherInvKinParams;
00109       case yetAnotherInvKinPaws: return idYetAnotherInvKinPaws;
00110       default: return idGenericDebugData;
00111     }
00112   }
00113 
00114   static double getDefaultValue(GenericDebugDataID genericDebugDataID, int index)
00115   {
00116     double linesImageProcessorValues[10] = {5,15,8,0,0,0,0,0,0,0};
00117     double gridImageProcessor2DebugParametersValues[10] = {5,40,0,0,0,0,0,0,0,0};
00118     double linesSelfLocatorValues[10] = {0.01,0.005,2,150,10,2,200,0.5,0,0};
00119     double yetAnotherInvKinParamsValues[10] = {23.0,0.0,106.0,10.2,10,10,0,0,0,0};
00120     double yetAnotherInvKinPawsValues[10] = {36.0,7.0,111.0,32.2,0,0,0,0,0,0};
00121 
00122     switch(genericDebugDataID)
00123     {
00124       case linesImageProcessor: return linesImageProcessorValues[index];
00125       case gridImageProcessor2DebugParameters: return gridImageProcessor2DebugParametersValues[index];
00126       case linesSelfLocator: return linesSelfLocatorValues[index];
00127       case yetAnotherInvKinParams: return yetAnotherInvKinParamsValues[index];
00128       case yetAnotherInvKinPaws: return yetAnotherInvKinPawsValues[index];
00129       default: return 0;
00130     }
00131   }
00132 
00133   static double getMinValue(GenericDebugDataID genericDebugDataID, int index)
00134   {
00135     double gridImageProcessor2DebugParametersValues[10] = {1,1,0,0,0,0,0,0,0,0};
00136     double yetAnotherInvKinParamsValues[10] = {0,0,60,9.5,8.5,8.5,0,0,0,0};
00137     double yetAnotherInvKinPawsValues[10] = {0,0,60,9.5,8.5,8.5,0,0,0,0};
00138 
00139     switch(genericDebugDataID)
00140     {
00141       case gridImageProcessor2DebugParameters: return gridImageProcessor2DebugParametersValues[index];
00142       case yetAnotherInvKinParams: return yetAnotherInvKinParamsValues[index];
00143       case yetAnotherInvKinPaws: return yetAnotherInvKinPawsValues[index];
00144       default: return 0;
00145     }
00146   }
00147 
00148   static double getMaxValue(GenericDebugDataID genericDebugDataID, int index)
00149   {
00150     double gridImageProcessor2DebugParametersValues[10] = {100,200,1,100,0,0,0,0,0,0};
00151     double yetAnotherInvKinParamsValues[10] = {100,100,200,10.5,12,12,80,150,100,100};
00152     double yetAnotherInvKinPawsValues[10] = {100,100,200,100,100,100,0,0,0,0};
00153 
00154     switch(genericDebugDataID)
00155     {
00156       case gridImageProcessor2DebugParameters: return gridImageProcessor2DebugParametersValues[index];
00157       case yetAnotherInvKinParams: return yetAnotherInvKinParamsValues[index];
00158       case yetAnotherInvKinPaws: return yetAnotherInvKinPawsValues[index];
00159       default: return 0;
00160     }
00161   }
00162 
00163   int id;
00164   double data[10];
00165 };
00166 
00167 /**
00168  * Streaming operator that reads GenericDebugData from a stream.
00169  * @param stream The stream from which is read.
00170  * @param d The GenericDebugData object.
00171  * @return The stream.
00172  */ 
00173 In& operator>>(In& stream, GenericDebugData& d);
00174  
00175 /**
00176  * Streaming operator that writes GenericDebugData to a stream.
00177  * @param stream The stream to write on.
00178  * @param d The GenericDebugData object.
00179  * @return The stream.
00180  */ 
00181 Out& operator<<(Out& stream, GenericDebugData& d);
00182 
00183 #endif //__GenericDebugData_h_
00184 
00185 /*
00186 * Change log :
00187 * 
00188 * $Log: GenericDebugData.h,v $
00189 * Revision 1.3  2004/05/24 17:03:45  wachter
00190 * Added GenerigDebugData for setting team-communication delay.
00191 *
00192 * Revision 1.2  2004/05/22 20:46:34  juengel
00193 * Removed idLinesImageProcessorParameters.
00194 *
00195 * Revision 1.1.1.1  2004/05/22 17:36:06  cvsadm
00196 * created new repository GT2004_WM
00197 *
00198 * Revision 1.9  2004/03/22 21:58:15  roefer
00199 * True odometry
00200 *
00201 * Revision 1.8  2004/02/26 10:28:18  jhoffman
00202 * configuration toolbar removed
00203 *
00204 * Revision 1.7  2004/02/24 19:01:06  roefer
00205 * Additional calibration parameters added
00206 *
00207 * Revision 1.6  2004/02/16 19:22:47  jhoffman
00208 * added debug parameters for yet another inv kin
00209 *
00210 * Revision 1.5  2003/12/03 21:03:07  spranger
00211 * added noOdometry to GenericDebugDataId-enum and getGenericDebugDataName
00212 *
00213 * Revision 1.4  2003/11/24 09:31:39  jhoffman
00214 * worked on walking engine (paw placement,  trajectories, ...)
00215 *
00216 * Revision 1.3  2003/11/22 15:59:03  jhoffman
00217 * parameter sending using generic debug data to
00218 * walking engine now works if it is explicitely given
00219 * a messageID
00220 *
00221 * Revision 1.2  2003/11/22 09:33:01  jhoffman
00222 * added "Yet Another Inv Kin Walking Engine"
00223 * experimental stage, doesn't do much yet
00224 * no Fourier inside!
00225 *
00226 * Revision 1.1  2003/10/07 10:13:22  cvsadm
00227 * Created GT2004 (M.J.)
00228 *
00229 * Revision 1.1  2003/09/26 11:40:40  juengel
00230 * - sorted tools
00231 * - clean-up in DataTypes
00232 *
00233 * Revision 1.2  2003/08/18 12:10:08  juengel
00234 * Changed GridImageProcessor2Parameters.
00235 *
00236 * Revision 1.1.1.1  2003/07/02 09:40:22  cvsadm
00237 * created new repository for the competitions in Padova from the 
00238 * tamara CVS (Tuesday 2:00 pm)
00239 *
00240 * removed unused solutions
00241 *
00242 * Revision 1.29  2003/06/13 17:29:44  jhoffman
00243 * added debug message for stabilizer
00244 *
00245 * Revision 1.28  2003/05/14 13:08:38  risler
00246 * removed DefaultObstaclesLocator
00247 * renamed MicroSectorsObstaclesLocator to DefaultObstaclesLocator
00248 * ObstaclesModel contains increased number of sectors
00249 * DefaultObstaclesLocator clean up
00250 *
00251 * Revision 1.27  2003/05/05 12:16:17  juengel
00252 * Removed GridImageProcessor2Thresholds
00253 *
00254 * Revision 1.26  2003/05/03 16:20:42  roefer
00255 * bodyOffsets generic debug data
00256 *
00257 * Revision 1.25  2003/04/06 17:14:37  jhoffman
00258 * added headTilt to PSDpercept and added debugging capabilities to microsectors
00259 *
00260 * Revision 1.24  2003/03/28 14:31:17  juengel
00261 * Added "circleCalculation" to gridImageProcessor2Parameters.
00262 *
00263 * Revision 1.23  2003/03/19 15:38:22  jhoffman
00264 * no message
00265 *
00266 * Revision 1.22  2003/03/06 14:27:58  juengel
00267 * Added value in GridImageProcessor2DebugParameters
00268 *
00269 * Revision 1.21  2003/03/05 14:07:09  roefer
00270 * LinesPerceptor2 is now LinesImageProcessor
00271 *
00272 * Revision 1.20  2003/03/05 10:35:57  jhoffman
00273 * added debugging capabilities for ball locator
00274 *
00275 * Revision 1.19  2003/03/04 14:54:09  juengel
00276 * Renamed gridImageProcessor2 in gridImageProcessor2DebugParameters.
00277 *
00278 * Revision 1.18  2003/02/27 12:56:25  juengel
00279 * Changed GridImageProcessor2 parameters.
00280 *
00281 * Revision 1.17  2003/02/25 14:00:00  juengel
00282 * added gridImageProcessor2Values
00283 *
00284 * Revision 1.16  2003/02/21 22:20:12  roefer
00285 * LinesSelfLocator is working
00286 *
00287 * Revision 1.15  2003/02/17 11:06:02  dueffert
00288 * warnings removed
00289 *
00290 * Revision 1.14  2003/02/09 20:51:15  roefer
00291 * sg console command added to SimGT2003
00292 *
00293 * Revision 1.13  2003/02/09 15:11:11  juengel
00294 * Added parameter "detect"
00295 *
00296 * Revision 1.12  2003/02/09 13:01:16  juengel
00297 * Parameters green auto and green manual added.
00298 *
00299 * Revision 1.11  2003/02/09 10:07:37  juengel
00300 * Added min max and default value.
00301 *
00302 * Revision 1.10  2003/02/08 18:36:44  juengel
00303 * added idGridImageProcessor2Thresholds
00304 *
00305 * Revision 1.9  2003/01/30 22:29:30  juengel
00306 * Added methods getParameterName and getParameterValue to GenericDebugData.
00307 *
00308 * Revision 1.8  2003/01/30 11:30:03  juengel
00309 * Added method getMessageID()
00310 *
00311 * Revision 1.7  2003/01/28 18:07:17  juengel
00312 * added string for danielTest
00313 *
00314 * Revision 1.6  2003/01/27 14:47:12  juengel
00315 * TestDataGenerator generates GenericDebugData now.
00316 *
00317 * Revision 1.5  2003/01/23 19:07:52  juengel
00318 * Improved TestDataGeneratorDlg.
00319 * Removed ParameterStruct.
00320 * Moved implementation and declaration of TestDataGenerator to
00321 * TestDataGeneratorDlg.h and TestDataGeneratorDlg.cpp.
00322 *
00323 * Revision 1.4  2003/01/23 15:51:44  jhoffman
00324 * no message
00325 *
00326 * Revision 1.3  2003/01/17 14:43:23  dueffert
00327 * doxygen docu corrected
00328 *
00329 * Revision 1.2  2003/01/17 12:48:19  jhoffman
00330 * added GenericDebugData
00331 * changes to the TestDataGenerator towards using sliders, min/max, and other cool stuff
00332 *
00333 * Revision 1.1  2003/01/16 09:54:49  jhoffman
00334 * Added "Generic Debug Data" data type. This can be used
00335 * for quick and dirty optimization and debugging, e.g. to send
00336 * parameters to a module through WLAN to adjust it's settings.
00337 * The DebugMessageGenerator is used to for parsing and
00338 * sendig the data
00339 *
00340 *
00341 */

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