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

Modules/SelfLocator/OdometrySelfLocator.cpp

Go to the documentation of this file.
00001 /**
00002  * @file Modules/SelfLocator/OdometrySelfLocator.cpp
00003  * 
00004  * This file contains a class for self-localization based on odometry only.
00005  * @author <a href="mailto:juengel@informatik.hu-berlin.de">Matthias Juengel</a>
00006  */
00007 
00008 #include "OdometrySelfLocator.h"
00009 #include "Tools/FieldDimensions.h"
00010 #include "Platform/SystemCall.h"
00011 
00012 
00013 OdometrySelfLocator::OdometrySelfLocator(const SelfLocatorInterfaces& interfaces)
00014 : SelfLocator(interfaces)
00015 {
00016   referencePose.translation.x = 0;
00017   referencePose.translation.y = 0;
00018   referencePose.rotation = 0;
00019   
00020   timeOfLastExecute = 0;
00021 }
00022 
00023 void OdometrySelfLocator::execute()
00024 {
00025    robotPose.setFrameNumber(psdPercept.percepts[psdPercept.numOfPercepts-1].frameNumber);
00026 
00027   unsigned long currentTime = SystemCall::getCurrentSystemTime();
00028   if( (currentTime - timeOfLastExecute) > 2000 )
00029   {
00030     referencePose = robotPose;
00031     referenceOdometry = odometryData;
00032   }
00033   else
00034   {
00035     Pose2D odometry = odometryData - referenceOdometry;
00036     robotPose = referencePose + odometry;
00037   }
00038   timeOfLastExecute = currentTime;
00039 
00040   selfLocatorSamples.link(NULL, 0,0);
00041 }
00042 
00043 /*
00044  * Change log :
00045  * 
00046  * $Log: OdometrySelfLocator.cpp,v $
00047  * Revision 1.2  2004/05/24 16:27:11  goehring
00048  * frameNumber bug removed
00049  *
00050  * Revision 1.1.1.1  2004/05/22 17:20:48  cvsadm
00051  * created new repository GT2004_WM
00052  *
00053  * Revision 1.4  2004/03/08 02:11:48  roefer
00054  * Interfaces should be const
00055  *
00056  * Revision 1.3  2003/11/14 19:02:26  goehring
00057  * frameNumber added
00058  *
00059  * Revision 1.2  2003/11/13 16:47:38  goehring
00060  * frameNumber added
00061  *
00062  * Revision 1.1  2003/10/06 14:10:15  cvsadm
00063  * Created GT2004 (M.J.)
00064  *
00065  * Revision 1.1.1.1  2003/07/02 09:40:24  cvsadm
00066  * created new repository for the competitions in Padova from the 
00067  * tamara CVS (Tuesday 2:00 pm)
00068  *
00069  * removed unused solutions
00070  *
00071  * Revision 1.4  2003/05/21 13:36:20  brunn
00072  * set selfLocatorSamples to NULL as these locators do not have any samples
00073  *
00074  * Revision 1.3  2003/01/22 14:59:29  dueffert
00075  * doxygen docu corrected
00076  *
00077  * Revision 1.2  2003/01/12 15:46:57  juengel
00078  * Comments corrected.
00079  *
00080  * Revision 1.1  2003/01/12 15:24:47  juengel
00081  * Added OdometrySelfLocator
00082  *
00083  */

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