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 */