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

# Modules/SelfLocator/GT2005SelfLocator/GT2005SelfLocatorParameters.h

Go to the documentation of this file.

    00001 /**
    00002 * @file Modules/SelfLocator/GT2005SelfLocator.h
    00003 *
    00004 * This file contains parameters for the GT2005Parameter.
    00005 *
    00006 * @author Max Risler
    00007 */
    00008
    00009 #ifndef __GT2005SelfLocatorParameters_h__
    00010 #define __GT2005SelfLocatorParameters_h__
    00011
    00012 #include "Tools/Streams/Streamable.h"
    00013 #include "Representations/Perception/LinesPercept.h"
    00014
    00015 class GT2005SelfLocatorParameters : public Streamable
    00016 {
    00017   public:
    00018
    00019     /** Constructor */
    00020     GT2005SelfLocatorParameters();
    00021
    00022     /*------------------------------ public variables ---------------------------------*/
    00023
    00024     // parameter prepared for evolution
    00025
    00026     // motion update parameters not yet adapted
    00027
    00028     // observation update parameters
    00029     // trust = weight / (variance)
    00030
    00031     double
    00032             translationNoise,
    00033             rotationNoise;
    00034     bool noiseWithoutObservationUpdate;  // apply noise on samples without new observations
    00035
    00036     double  movedDistWeight,
    00037             movedAngleWeight,
    00038             majorDirTransWeight,
    00039             minorDirTransWeight,
    00040
    00041             headHeightEstimation,
    00042
    00043             linePointZAngleVariance,
    00044             linePointYAngleVariance,
    00045             crossingZAngleVariance,
    00046             crossingYAngleVariance,
    00047             centerCircleZAngleVariance,
    00048             centerCircleYAngleVariance,
    00049             centerCircleOrientationAngleVariance,
    00050 //            flagZAngleVariance,
    00051             flagYAngleVariance,
    00052             goalZAngleVariance,
    00053             goalYAngleVariance,
    00054
    00055             linePointZAngleMotionDependency,
    00056             /*linePointYAngleMotionDependency,
    00057             crossingZAngleMotionDependency,
    00058             crossingYAngleMotionDependency,
    00059             centerCircleZAngleMotionDependency,
    00060             centerCircleYAngleMotionDependency,
    00061             centerCircleOrientationAngleMotionDependency,
    00062             flagZAngleMotionDependency,
    00063             flagYAngleMotionDependency,
    00064             goalZAngleMotionDependency,
    00065             goalYAngleMotionDependency,*/
    00066
    00067             linePointWeight,
    00068             crossingWeight,
    00069             centerCircleWeight,
    00070             flagWeight,
    00071             goalWeight;
    00072
    00073   double probFlagUpLimit,       // step size for increasing probabilities
    00074          probFlagDownLimit,     // step size for decreasing probabilities
    00075          probLineUpLimit,       // step size for increasing probabilities
    00076          probLineDownLimit,     // step size for decreasing probabilities
    00077          probNoQualityOffset;   // particles with no valid quality are set to average probability minus this value
    00078
    00079   int maxLinepoints,
    00080       maxGoalpoints,
    00081       maxBorderpoints,
    00082       maxCrossings;
    00083
    00084   double updateProbCenterCircle,  // probability for updating each sample with a center circle percept
    00085          updateProbCrossing,      // probability for updating each sample with a line crossings percept
    00086          updateProbFlag,          // probability for updating each sample with a flag percept
    00087          updateProbGoalPost;      // probability for updating each sample with a goalpost percept
    00088
    00089   double odometryProbNoCollision; // probability for a new sample created while no collision was detected of receiving odometry updates
    00090   double odometryProbCollision;   // probability for a new sample created while a collision was detected of receiving odometry updates
    00091
    00092   bool applyConstantResampling;   // when true a constant rate of samples is replaced in each frame
    00093                                   // instead of replacing according to average probability
    00094   double constantResamplingRate;  // percentage of samples replaced each frame when applying constant resampling
    00095
    00096   bool clipRobotPose;             // clip robot pose on the field
    00097
    00098   bool resetSamplesWhenPenalized; // special sample position resetting when robot is penalized
    00099
    00100   double agingFactor;             // sample probability is multiplied with this aging factor each frame
    00101
    00102
    00103
    00104   virtual void serialize(In* in, Out* out)
    00105   {
    00106     STREAM_REGISTER_BEGIN();
    00107     STREAM( translationNoise );
    00108     STREAM( rotationNoise );
    00109     STREAM( noiseWithoutObservationUpdate );
    00110     STREAM( movedDistWeight );
    00111     STREAM( movedAngleWeight );
    00112     STREAM( majorDirTransWeight );
    00113     STREAM( minorDirTransWeight );
    00114     STREAM( headHeightEstimation );
    00115     STREAM( linePointZAngleVariance );
    00116     STREAM( linePointYAngleVariance );
    00117     STREAM( crossingZAngleVariance );
    00118     STREAM( crossingYAngleVariance );
    00119     STREAM( centerCircleZAngleVariance );
    00120     STREAM( centerCircleYAngleVariance );
    00121     STREAM( centerCircleOrientationAngleVariance );
    00122     //STREAM( flagZAngleVariance );
    00123     STREAM( flagYAngleVariance );
    00124     STREAM( goalZAngleVariance );
    00125     STREAM( goalYAngleVariance );
    00126     STREAM( linePointZAngleMotionDependency );
    00127     STREAM( linePointWeight );
    00128     STREAM( crossingWeight );
    00129     STREAM( centerCircleWeight );
    00130     STREAM( flagWeight );
    00131     STREAM( goalWeight );
    00132     STREAM( probFlagUpLimit );
    00133     STREAM( probFlagDownLimit );
    00134     STREAM( probLineUpLimit );
    00135     STREAM( probLineDownLimit );
    00136     STREAM( probNoQualityOffset );
    00137     STREAM( maxLinepoints );
    00138     STREAM( maxGoalpoints );
    00139     STREAM( maxBorderpoints );
    00140     STREAM( maxCrossings );
    00141     STREAM( updateProbCenterCircle );
    00142     STREAM( updateProbCrossing );
    00143     STREAM( updateProbFlag );
    00144     STREAM( updateProbGoalPost );
    00145     STREAM( odometryProbNoCollision );
    00146     STREAM( odometryProbCollision );
    00147     STREAM( applyConstantResampling );
    00148     STREAM( constantResamplingRate );
    00149     STREAM( clipRobotPose );
    00150     STREAM( resetSamplesWhenPenalized );
    00151     STREAM( agingFactor );
    00152     STREAM_REGISTER_FINISH();
    00153   }
    00154 };
    00155 #endif