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_