00001 /** 00002 * @file Modules/SelfLocator/SpecialPerceptSelfLocator.h 00003 * 00004 * This file contains a class for self-localization based on 00005 * special percepts, e.g. checkerboard percepts. 00006 * 00007 * @author <a href="mailto:dueffert@informatik.hu-berlin.de">Uwe Düffert</a> 00008 * 00009 */ 00010 00011 #ifndef __SpecialPerceptSelfLocator_h_ 00012 #define __SpecialPerceptSelfLocator_h_ 00013 00014 #include "SelfLocator.h" 00015 #include "Tools/RingBuffer.h" 00016 //#include "Tools/Math/Matrix2x2.h" 00017 //#include "Tools/Math/Vector2.h" 00018 #include "Tools/Math/PIDsmoothedValue.h" 00019 00020 00021 /** 00022 * Class for self-localization based on special percepts, e.g. checkerboard percepts 00023 * (see ImageProcessor/checkerboardDetector.* for details) 00024 */ 00025 class SpecialPerceptSelfLocator : public SelfLocator 00026 { 00027 public: 00028 /** 00029 * Constructor. 00030 * @param interfaces The paramters of the SelfLocator module. 00031 */ 00032 SpecialPerceptSelfLocator(const SelfLocatorInterfaces& interfaces); 00033 00034 /** 00035 * Destructor. 00036 */ 00037 ~SpecialPerceptSelfLocator() {} 00038 00039 /** Executes the module */ 00040 virtual void execute(); 00041 00042 private: 00043 Pose2D lastRobotPose; 00044 int psdCrashCount; 00045 Pose2D lastOdometry; 00046 00047 /* 00048 //6x6-Kalman: 00049 Matrix_3x6 H; 00050 Matrix_6x6 A; 00051 Matrix_6x1 xpre; 00052 Matrix_6x6 P; 00053 Matrix_6x6 Ppre; 00054 Matrix_3x3 R; 00055 Matrix_6x3 K; 00056 */ 00057 00058 /* 00059 //2x2-Kalman: 00060 Vector2<double> H; 00061 Matrix2x2<double> A; 00062 Vector2<double> xpre; 00063 Matrix2x2<double> P; 00064 Matrix2x2<double> Ppre; 00065 double R; 00066 Vector2<double> K; 00067 */ 00068 00069 /* 00070 //quadratische Kurve: 00071 RingBuffer<Pose2D,12> perceptPoseBuffer; 00072 RingBuffer<unsigned long,12> perceptTimeBuffer; 00073 */ 00074 //PIDsmoothed: 00075 PIDsmoothedValue robotPosX, robotPosY, robotPosR; 00076 unsigned long lastFrame; 00077 bool lastWasOutlier; 00078 }; 00079 00080 #endif// __SpecialPerceptSelfLocator_h_ 00081 00082 /* 00083 * Change log : 00084 * 00085 * $Log: SpecialPerceptSelfLocator.h,v $ 00086 * Revision 1.1.1.1 2004/05/22 17:20:49 cvsadm 00087 * created new repository GT2004_WM 00088 * 00089 * Revision 1.5 2004/03/15 12:34:05 dueffert 00090 * cool filter for single outliers implemented 00091 * 00092 * Revision 1.4 2004/03/08 02:11:49 roefer 00093 * Interfaces should be const 00094 * 00095 * Revision 1.3 2004/01/16 15:47:51 dueffert 00096 * some improvements 00097 * 00098 * Revision 1.2 2003/11/10 13:34:07 dueffert 00099 * checkerboard localization improved 00100 * 00101 * Revision 1.1 2003/10/06 14:10:15 cvsadm 00102 * Created GT2004 (M.J.) 00103 * 00104 * Revision 1.3 2003/08/09 14:53:10 dueffert 00105 * files and docu beautified 00106 * 00107 * Revision 1.2 2003/07/30 14:47:46 dueffert 00108 * SpecialPerceptSelfLocator for Checkboard added 00109 * 00110 * Revision 1.1.1.1 2003/07/02 09:40:24 cvsadm 00111 * created new repository for the competitions in Padova from the 00112 * tamara CVS (Tuesday 2:00 pm) 00113 * 00114 * removed unused solutions 00115 * 00116 * Revision 1.2 2003/03/31 21:01:44 roefer 00117 * Moved class Field to Tools 00118 * 00119 * Revision 1.1 2003/01/22 14:59:49 dueffert 00120 * checkerboard stuff added 00121 * 00122 * 00123 */