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
Fork of autonomous Robot Android by
Diff: RobotControl/MotionState.h
- Revision:
- 3:92ba0254af87
- Parent:
- 1:6cd533a712c6
- Child:
- 6:48eeb41188dd
--- 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 θ of this motion state. */ float theta; - /** The angle 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; @@ -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 ω 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 θ 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 ω 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 ω speed value of this motion state, given in [rad/s]. + * Sets the values for xPosition, yPostion and θ. + * @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 θ 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 ω 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 θ. + * @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 θ value. + * @param theta the desired θ 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 θ value. + * @return the θ 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 ω value. - * @param omega the desired ω value of this motion state, given in [rad/s]. + * @param omega the desired ω value of this motion state, given in [rad/s] */ void setOmega(float omega); /** * Gets the ω value. - * @return the ω value of this motion state, given in [rad/s]. + * @return the ω 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 ω 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); };