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:
6:48eeb41188dd
Parent:
3:92ba0254af87
Child:
11:775ebb69d5e1
--- a/RobotControl/MotionState.h	Thu Mar 21 08:56:53 2013 +0000
+++ b/RobotControl/MotionState.h	Sat Mar 23 13:52:48 2013 +0000
@@ -36,7 +36,7 @@
     float yposition;
     /** The θ of this motion state. */
     float theta;
-    /** The θ of this motion state from the compass. */      
+    /** The θ of this motion state from the compass. */
     float thetaCompass;
     /** The speed value of this motion state. */
     float speed;
@@ -50,127 +50,141 @@
     MotionState();
 
     /**
-    * 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]
-    * @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);
+     * 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]
+     * @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);
 
     /**
-    * Destructor of the Object to destroy the Object.
-    **/
+     * Destructor of the Object to destroy the Object.
+     **/
     virtual     ~MotionState();
 
     /**
-    * 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 &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 X-Position, Y-Postion and &theta;.
-    * @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]
-    */
+     * 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.
-    * @return the xposition value of this motion state, given in [m]
-    */
+     * Gets the X-position value.
+     * @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]
-    */
+     * 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.
-    * @return the xposition value of this motion state, given in [m]
-    */
+     * Gets the Y-position value.
+     * @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 [rad]
-    */
+     * 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.
-    * @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]
-    */
+     * 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.
-    * @return the speed value of this motion state, given in [m/s]
-    */
+     * Gets the speed value.
+     * @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]
-    */
+     * 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.
-    * @return the &omega; value of this motion state, given in [rad/s]
-    */
+     * 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>]
-    */
+     * 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>]
-    */
+     * 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>]
-    */
+     * 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>]
-    */
+     * 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);
+     * 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