This program is for an autonomous robot for the competition at the Hochschule Luzern. http://cruisingcrepe.wordpress.com/ We are one of the 32 teams. http://cruisingcrepe.wordpress.com/ The postition control is based on this Documentation: Control of Wheeled Mobile Robots: An Experimental Overview from Alessandro De Luca, Giuseppe Oriolo, Marilena Vendittelli. For more information see here: http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf

Dependencies:   mbed

Fork of autonomous Robot Android by Christian Burri

Revision:
11:775ebb69d5e1
Parent:
6:48eeb41188dd
Child:
12:235e318a414f
--- a/RobotControl/MotionState.h	Thu Apr 04 06:43:43 2013 +0000
+++ b/RobotControl/MotionState.h	Fri Apr 05 10:58:42 2013 +0000
@@ -6,51 +6,39 @@
 /**
  * @author Christian Burri
  *
- * @section LICENSE
- *
- * Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe
+ * @copyright Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe
  * All rights reserved.
  *
- * @section DESCRIPTION
+ * @brief
  *
  * This help class is for calculate and save the actual or desired value.
  * There have the setter and the getter methode to change the value
- * Is also possible to limit the translational and rotational speed
- * by the value acceleration and thetaAcceleration. Therefore
- * can adjust the ramp.
  *
  */
 class MotionState
 {
 
-private:
-
-    float               acceleration;
-    float               thetaAcceleration;
-
 public:
 
-    /** The xposition value of this motion state. */
+    /** @brief The xposition value of this motion state. */
     float xposition;
-    /** The yposition value of this motion state. */
+    /** @brief The yposition value of this motion state. */
     float yposition;
-    /** The θ of this motion state. */
+    /** @brief The θ of this motion state. */
     float theta;
-    /** The θ of this motion state from the compass. */
-    float thetaCompass;
-    /** The speed value of this motion state. */
+    /** @brief The speed value of this motion state. */
     float speed;
-    /** The speed rotational value of this motion state. */
+    /** @brief The speed rotational value of this motion state. */
     float omega;
 
     /**
-     * Creates a <code>MotionState</code> object.
+     * @brief Creates a <code>MotionState</code> object.
      * The values for position and speed are set to 0.
      */
     MotionState();
 
     /**
-     * Creates a <code>MotionState</code> object with given values for position and speed.
+     * @brief Creates a <code>MotionState</code> object with given values for position and speed.
      * @param xposition the initial position value of this motion state, given in [m]
      * @param yposition the initial position value of this motion state, given in [m]
      * @param theta the initial &theta; value of this motion state, given in [rad]
@@ -64,12 +52,12 @@
                 float omega);
 
     /**
-     * Destructor of the Object to destroy the Object.
+     * @brief Destructor of the Object to destroy the Object.
      **/
     virtual     ~MotionState();
 
     /**
-     * Sets the values for xPosition, yPostion and &theta;.
+     * @brief Sets the values for xPosition, yPostion and &theta;.
      * @param xposition the initial position value of this motion state, given in [m]
      * @param yposition the initial position value of this motion state, given in [m]
      * @param theta the initial &theta; value of this motion state, given in [rad]
@@ -83,108 +71,71 @@
                          float omega);
 
     /**
-     * Sets the values for X-Position, Y-Postion and &theta;.
+     * @brief Sets the values for X-Position, Y-Postion and &theta;.
      * @param motionState another <code>MotionState</code> object to copy the state values from
      */
     void        setState(MotionState* motionState);
 
     /**
-     * Sets the X-position value.
+     * @brief Sets the X-position value.
      * @param xposition the desired xposition value of this motion state, given in [m]
      */
     void        setxPosition(float xposition);
 
     /**
-     * Gets the X-position value.
+     * @brief Gets the X-position value.
      * @return the xposition value of this motion state, given in [m]
      */
     float       getxPosition();
 
     /**
-     * Sets the Y-position value.
+     * @brief Sets the Y-position value.
      * @param yposition the desired yposition value of this motion state, given in [m]
      */
     void        setyPosition(float yposition);
 
     /**
-     * Gets the Y-position value.
+     * @brief Gets the Y-position value.
      * @return the xposition value of this motion state, given in [m]
      */
     float       getyPosition();
 
     /**
-     * Sets the &theta; value.
+     * @brief Sets the &theta; value.
      * @param theta the desired &theta; value of this motion state, given in [rad]
      */
     void        setTheta(float theta);
 
     /**
-     * Gets the &theta; value.
+     * @brief Gets the &theta; value.
      * @return the &theta; value of this motion state, given in [rad]
      */
     float       getTheta();
 
     /**
-     * Sets the speed value.
+     * @brief Sets the speed value.
      * @param speed the desired speed value of this motion state, given in [m/s]
      */
     void        setSpeed(float speed);
 
     /**
-     * Gets the speed value.
+     * @brief Gets the speed value.
      * @return the speed value of this motion state, given in [m/s]
      */
     float       getSpeed();
 
     /**
-     * Sets the &omega; value.
+     * @brief Sets the &omega; value.
      * @param omega the desired &omega; value of this motion state, given in [rad/s]
      */
     void        setOmega(float omega);
 
     /**
-     * Gets the &omega; value.
+     * @brief Gets the &omega; value.
      * @return the &omega; value of this motion state, given in [rad/s]
      */
     float       getOmega();
 
-    /**
-     * Sets the maximum acceleration value.
-     * @param acceleration the maximum acceleration value to use for
-     * the calculation of the motion trajectory, given in [m/s<SUP>2</SUP>]
-     */
-    void        setAcceleration(float acceleration);
-
-    /**
-     * Gets the maximum acceleration value.
-     * @return the maximum acceleration value used for the calculation
-     * of the motion trajectory, given in [m/s<SUP>2</SUP>]
-     */
-    float       getAcceleration();
-
-    /**
-     * Sets the maximum acceleration value of rotation.
-     * @param thetaAcceleration the maximum acceleration value to use for
-     * the calculation of the motion trajectory, given in [rad/<SUP>2</SUP>]
-     */
-    void        setThetaAcceleration(float thetaAcceleration);
-
-    /**
-     * Gets the maximum acceleration value of rotation.
-     * @return the maximum acceleration value used for the calculation of
-     *  the motion trajectory, given in [rad/<SUP>2</SUP>]
-     */
-    float       getThetaAcceleration();
-
-    /**
-     * Increments the current motion state towards a given desired speed.
-     * @param desiredSpeed the desired speed given in [m/s].
-     * @param desiredOmega the desired &omega; given in [rad/s].
-     * @param period the time period to increment the motion state for, given in [s]
-     */
-    void        increment(float desiredSpeed,
-                          float desiredOmega,
-                          float period);
 };
 
 #endif