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:
8:696c2f9dfc62
Parent:
6:48eeb41188dd
Child:
11:775ebb69d5e1
--- a/StateDefines/State.cpp	Tue Mar 26 08:29:43 2013 +0000
+++ b/StateDefines/State.cpp	Sat Mar 30 06:55:08 2013 +0000
@@ -46,8 +46,8 @@
                 "SetpointX-Axis[m]\t" //15
                 "SetpointY-Axis[m]\t"
                 "SetpointAngel[grad]\t" //17
-                "RightDistanceSensor[m]\t"
-                "CompassAngle[grad]\t"
+                "SetpointVelocitiy[m/s]\t"
+                "SetpointVelocitiyRotations[rad/s]\t"
                 "CompassX-Axis\t" //20
                 "CompassY-Axis\t"
                 "State\t"
@@ -81,8 +81,8 @@
             s.setxAxis,
             s.setyAxis,
             s.setAngle,
-            s.rightDist,
-            s.compassAngle,
+            s.setVelocity,
+            s.setOmega,
             s.compassxAxis,
             s.compassyAxis,
             s.state,
@@ -151,9 +151,9 @@
     s->leftPulses = - motorControllerLeft->getPulses();
     s->rightPulses = motorControllerRight->getPulses();
     s->leftVelocity = motorControllerLeft->getActualSpeed() *
-                      2.0f * WHEEL_RADIUS_LEFT * PI;
+                      2.0f * WHEEL_RADIUS_LEFT * PI * GEAR;
     s->rightVelocity = - motorControllerRight->getActualSpeed()*
-                       2.0f * WHEEL_RADIUS_RIGHT * PI;
+                       2.0f * WHEEL_RADIUS_RIGHT * PI * GEAR;
     s->velocity = robotControl->getActualSpeed();
     s->omega =  robotControl->getActualOmega();
     s->xAxis = robotControl->getxActualPosition();
@@ -166,6 +166,8 @@
     s->setyAxis = robotControl->getDesiredyPosition();
     s->setAngle = robotControl->getDesiredTheta() * 180 / PI;
     // s->compassAngle = compass->getFilteredAngle() * 180 / PI;
+    s->setVelocity = robotControl->getDesiredSpeed();
+    s->setOmega = robotControl->getDesiredOmega();
 
     s->rho = robotControl->getDistanceError();
     s->lamda = robotControl->getThetaErrorToGoal() * 180 / PI;