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:
3:92ba0254af87
Parent:
1:6cd533a712c6
Child:
6:48eeb41188dd
diff -r d8e1613dc38b -r 92ba0254af87 RobotControl/MotionState.h
--- a/RobotControl/MotionState.h	Sun Mar 03 16:26:47 2013 +0000
+++ b/RobotControl/MotionState.h	Thu Mar 07 09:47:07 2013 +0000
@@ -1,7 +1,6 @@
 #ifndef _MOTION_STATE_H_
 #define _MOTION_STATE_H_
 
-#include <cmath>
 #include "defines.h"
 
 /**
@@ -14,7 +13,11 @@
  *
  * @section DESCRIPTION
  *
- * ?????
+ * 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
@@ -31,9 +34,9 @@
     float xposition;
     /** The yposition value of this motion state. */
     float yposition;
-    /** The angle of this motion state. */
+    /** The &theta; of this motion state. */
     float theta;
-    /** The angle of this motion state from the compass. */      
+    /** The &theta; of this motion state from the compass. */      
     float thetaCompass;
     /** The speed value of this motion state. */
     float speed;
@@ -48,11 +51,11 @@
 
     /**
     * 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 angle value of this motion state, given in [rad].
-    * @param speed the initial speed value of this motion state, given in [m/s].
-    * @param omega the initial &omega; speed value of this motion state, given in [rad/s].
+    * @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]
+    * @param speed the initial speed value of this motion state, given in [m/s]
+    * @param omega the initial &omega; speed value of this motion state, given in [rad/s]
     */
     MotionState(float xposition, float yposition, float theta, float speed, float omega);
 
@@ -62,102 +65,102 @@
     virtual     ~MotionState();
 
     /**
-    * Sets the values for xPosition, yPostion and angle.
-    * @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 angle value of this motion state, given in [rad].
-    * @param speed the initial speed value of this motion state, given in [m/s].
-    * @param omega the initial &omega; speed value of this motion state, given in [rad/s].
+    * 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]
+    * @param speed the initial speed value of this motion state, given in [m/s]
+    * @param omega the initial &omega; speed value of this motion state, given in [rad/s]
     */
     void        setState(float xposition, float yposition, float theta, float speed, float omega);
 
     /**
-    * Sets the values for xPosition, yPostion and angle.
-    * @param motionState another <code>MotionState</code> object to copy the state values from.
+    * 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.
-    * @param xposition the desired xposition value of this motion state, given in [m].
+    * @param xposition the desired xposition value of this motion state, given in [m]
     */
     void        setxPosition(float xposition);
 
     /**
     * Gets the X-position value.
-    * @return the xposition value of this motion state, given in [m].
+    * @return the xposition value of this motion state, given in [m]
     */
     float       getxPosition();
 
     /**
     * Sets the Y-position value.
-    * @param yposition the desired yposition value of this motion state, given in [m].
+    * @param yposition the desired yposition value of this motion state, given in [m]
     */
     void        setyPosition(float yposition);
 
     /**
     * Gets the Y-position value.
-    * @return the xposition value of this motion state, given in [m].
+    * @return the xposition value of this motion state, given in [m]
     */
     float       getyPosition();
 
     /**
-    * Sets the theta value.
-    * @param theta the desired theta value of this motion state, given in [m].
+    * Sets the &theta; value.
+    * @param theta the desired &theta; value of this motion state, given in [rad]
     */
     void        setTheta(float theta);
 
     /**
-    * Gets the angle value.
-    * @return the theta value of this motion state, given in [rad].
+    * Gets the &theta; value.
+    * @return the &theta; value of this motion state, given in [rad]
     */
     float       getTheta();
 
     /**
     * Sets the speed value.
-    * @param speed the desired speed value of this motion state, given in [m/s].
+    * @param speed the desired speed value of this motion state, given in [m/s]
     */
     void        setSpeed(float speed);
 
     /**
     * Gets the speed value.
-    * @return the speed value of this motion state, given in [m/s].
+    * @return the speed value of this motion state, given in [m/s]
     */
     float       getSpeed();
 
     /**
     * Sets the &omega; value.
-    * @param omega the desired &omega; value of this motion state, given in [rad/s].
+    * @param omega the desired &omega; value of this motion state, given in [rad/s]
     */
     void        setOmega(float omega);
 
     /**
     * Gets the &omega; value.
-    * @return the &omega; value of this motion state, given in [rad/s].
+    * @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>].
+    * @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>].
+    * @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>].
+    * @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>].
+    * @return the maximum acceleration value used for the calculation of the motion trajectory, given in [rad/<SUP>2</SUP>]
     */
     float       getThetaAcceleration();
 
@@ -165,7 +168,7 @@
     * 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].
+    * @param period the time period to increment the motion state for, given in [s]
     */
     void        increment(float desiredSpeed, float desiredOmega, float period);
 };