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

Modules/MotionControl/MotionStabilizer.h

Go to the documentation of this file.
00001 /**
00002 * @file MotionStabilizer.h
00003 * 
00004 * Definition of class MotionStabilizer
00005 *
00006 * @author Jan Hoffmann
00007 */
00008 
00009 #ifndef __MotionStabilizer_h_
00010 #define __MotionStabilizer_h_
00011 
00012 #include "Modules/WalkingEngine/WalkingEngine.h"
00013 #include "Tools/Math/PIDsmoothedValue.h"
00014 #include "Representations/Perception/SensorDataBuffer.h"
00015 
00016 
00017 
00018 /**
00019 * @class MotionStabilizer
00020 *
00021 * class/function that tries to stabilize the robot in such a way that
00022 * no forces other then gravity act on the center of mass (or wherever
00023 * the acceleration sensor is placed). idea is to stabilize walking 
00024 * movement of the robot. 
00025 *
00026 * @author Jan Hoffmann
00027 */
00028 
00029 class MotionStabilizer
00030 {
00031 public:
00032 
00033   MotionStabilizer();
00034 
00035   /**
00036   * takes all parameters used to generate a motion and alters the joint
00037   * datas in order to stabilize the motion
00038   * 
00039   * @todo this is no parameter documentation!
00040   * @param lastMotionType
00041   * @param motionRequest
00042   * @param jointData
00043   * @param odometryData
00044   * @param sensorDataBuffer
00045   * 
00046   * @return true if successfull
00047   */ 
00048   bool stabilize(
00049     MotionRequest::MotionID lastMotionType,
00050     const MotionRequest& motionRequest, 
00051     JointData& jointData, 
00052     OdometryData& odometryData,
00053     const SensorDataBuffer& sensorDataBuffer);
00054   
00055   PIDsmoothedValue accelX, accelY, accelZ,
00056     xFore, xHind, yLeft, yRight;
00057 
00058   double stabilizerScale;
00059 
00060 private: 
00061 };
00062 
00063 #endif// __MotionStabilizer_h_
00064 
00065 /*
00066  * Change log :
00067  * 
00068  * $Log: MotionStabilizer.h,v $
00069  * Revision 1.1.1.1  2004/05/22 17:20:37  cvsadm
00070  * created new repository GT2004_WM
00071  *
00072  * Revision 1.1  2003/10/06 14:10:13  cvsadm
00073  * Created GT2004 (M.J.)
00074  *
00075  * Revision 1.2  2003/09/26 15:27:49  juengel
00076  * Renamed DataTypes to representations.
00077  *
00078  * Revision 1.1.1.1  2003/07/02 09:40:24  cvsadm
00079  * created new repository for the competitions in Padova from the 
00080  * tamara CVS (Tuesday 2:00 pm)
00081  *
00082  * removed unused solutions
00083  *
00084  * Revision 1.6  2003/06/13 17:05:43  jhoffman
00085  * largely simplified code
00086  *
00087  * Revision 1.5  2003/06/05 15:10:08  dueffert
00088  * doxygen bugs fixed
00089  *
00090  * Revision 1.4  2003/05/23 11:30:12  goehring
00091  * MotionStabilizer signature changed
00092  *
00093  * Revision 1.3  2003/05/23 09:36:51  goehring
00094  * MotionStabilizer gets all 4 Sensor Values
00095  *
00096  * Revision 1.2  2002/09/22 18:40:53  risler
00097  * added new math functions, removed GTMath library
00098  *
00099  * Revision 1.1  2002/09/10 15:36:15  cvsadm
00100  * Created new project GT2003 (M.L.)
00101  * - Cleaned up the /Src/DataTypes directory
00102  * - Removed challenge related source code
00103  * - Removed processing of incoming audio data
00104  * - Renamed AcousticMessage to SoundRequest
00105  *
00106  * Revision 1.2  2002/08/30 13:38:00  dueffert
00107  * removed unused includes
00108  *
00109  * Revision 1.1.1.1  2002/05/10 12:40:15  cvsadm
00110  * Moved GT2002 Project from ute to tamara.
00111  *
00112  * Revision 1.2  2002/04/25 14:50:36  kallnik
00113  * changed double/float to double
00114  * added several #include GTMath
00115  *
00116  * PLEASE use double
00117  *
00118  * Revision 1.1  2002/04/04 15:24:09  jhoffman
00119  * added motion stabilizer to motion control
00120  *
00121  *
00122  *
00123  */

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