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:
9:d3cdcdef9719
Parent:
8:696c2f9dfc62
Child:
10:09ddb819fdcb
--- a/main.cpp	Sat Mar 30 06:55:08 2013 +0000
+++ b/main.cpp	Sat Mar 30 16:35:22 2013 +0000
@@ -98,9 +98,9 @@
     wait(0.1);
     robotControl.setEnable(true);
     wait(0.1);
-    robotControl.setAllToZero(0, 0, PI/2 );
+    //robotControl.setAllToZero(0, 0, PI/2 );
+          robotControl.setAllToZero(START_X_OFFSET, START_Y_OFFSET, PI/2 );
     robotControl.start();
-    //  robotControl.setAllToZero(START_X_OFFSET, START_Y_OFFSET, PI/2 );
 
 
     // robotControl.setDesiredPositionAndAngle(START_X_OFFSET, START_Y_OFFSET, PI/2);
@@ -108,37 +108,32 @@
     // wait(0.1);
 
     //////////////////////////////////////////
-
-    robotControl.setDesiredPositionAndAngle(0.0f, 1.0f,  PI);
-    while(!(robotControl.getDistanceError() <= 0.1)) {
-        state.savePlotFile(s);
-    };
+    /*
+        robotControl.setDesiredPositionAndAngle(0.0f, 1.0f,  PI);
+        while(!(robotControl.getDistanceError() <= 0.1)) {
+            state.savePlotFile(s);
+        };
 
-    robotControl.setDesiredPositionAndAngle(-1.00f, 1.0f,  -PI/2);
-    while(!(robotControl.getDistanceError() <= 0.1)) {
-        state.savePlotFile(s);
-    };
-
-    robotControl.setDesiredPositionAndAngle(-1.0f, 0.0f,  0);
-    while(!(robotControl.getDistanceError() <= 0.1)) {
-        state.savePlotFile(s);
-    };
+        robotControl.setDesiredPositionAndAngle(-1.00f, 1.0f,  -PI/2);
+        while(!(robotControl.getDistanceError() <= 0.1)) {
+            state.savePlotFile(s);
+        };
 
-    robotControl.setDesiredPositionAndAngle(0.0f, -0.8f,  PI/2);
-    while(!(robotControl.getDistanceError() <= 0.05)) {
-        state.savePlotFile(s);
-    };
+        robotControl.setDesiredPositionAndAngle(0.0f, -0.8f,  PI/2);
+        while(!(robotControl.getDistanceError() <= 0.05)) {
+            state.savePlotFile(s);
+        };
 
-    robotControl.setDesiredPositionAndAngle(0.0f, -0.2f,  PI/2);
-    while(!(robotControl.getDistanceError() <= 0.05)) {
-        state.savePlotFile(s);
-    };
+        robotControl.setDesiredPositionAndAngle(0.0f, -0.2f,  PI/2);
+        while(!(robotControl.getDistanceError() <= 0.05)) {
+            state.savePlotFile(s);
+        };
 
-    robotControl.setDesiredPositionAndAngle(0.0, 0.0f,  PI/2);
-    while(!(s.millis >= 65000)) {
-        state.savePlotFile(s);
-    };
-
+        robotControl.setDesiredPositionAndAngle(0.0, 0.0f,  PI/2);
+        while(!(s.millis >= 32000)) {
+            state.savePlotFile(s);
+        };
+    */
 
 
 
@@ -160,16 +155,30 @@
 
     ////////////////////////////////////////////////////////////////////////
 
+    /*
+
+        //Zum Umfang einstellen 2m fahren
+        robotControl.setDesiredPositionAndAngle(0.0f, 0.5f,  PI/2);
+        while(!(robotControl.getDistanceError() <= 0.2)) {
+            state.savePlotFile(s);
+        };
+
+            robotControl.setDesiredPositionAndAngle(0.0f, 1.0f,  PI/2);
+        while(!(robotControl.getDistanceError() <= 0.2)) {
+            state.savePlotFile(s);
+        };
+                robotControl.setDesiredPositionAndAngle(0.0f, 1.5f,  PI/2);
+        while(!(robotControl.getDistanceError() <= 0.2)) {
+            state.savePlotFile(s);
+        };
 
 
-    //Zum Umfang einstellen 2m fahren
-    /*
-         robotControl.setDesiredPositionAndAngle(0.0f, 4.0f,  PI/2);
-         while(!(s.millis >= 30000)) {
-             state.savePlotFile(s);
-         };
-     */
+        robotControl.setDesiredPositionAndAngle(0.0f, 2.0f,  PI/2);
+        while(!(s.millis >= 30000)) {
+            state.savePlotFile(s);
+        };
 
+    */
 
 
     ///////////////oder//////////////////e
@@ -193,78 +202,81 @@
         while(!(s.millis >= 30000)) {
             state.savePlotFile(s);
         }
+
     */
 
 
-
 ////////////////////////////////////////////////////////
 
 
 
     //  Epä Parkour fahrä
-    /*
-            robotControl.setDesiredPositionAndAngle(START_X_OFFSET, START_Y_OFFSET, PI/2);
-            wait(0.1);
 
-            robotControl.setDesiredPositionAndAngle(-1.20f, 1.50f,  3*PI/4);
-            while(!(robotControl.getDistanceError() <= 0.4)) {
-                state.savePlotFile(s);
-            };
+    robotControl.setDesiredPositionAndAngle(START_X_OFFSET, START_Y_OFFSET, PI/2);
+    wait(0.1);
 
-            robotControl.setDesiredPositionAndAngle(-1.20f, 2.5f,  PI/4);
-            while(!(robotControl.getDistanceError() <= 0.4)) {
-                state.savePlotFile(s);
-            };
-
-            robotControl.setDesiredPositionAndAngle(-0.45f, 3.2f,  3*PI/4);
-            while(!(robotControl.getDistanceError() <= 0.4)) {
-                state.savePlotFile(s);
-            };
+    robotControl.setDesiredPositionAndAngle(-1.50f, 1.50f,  3*PI/4);
+    while(!(robotControl.getDistanceError() <= 0.9)) {
+        state.savePlotFile(s);
+    };
 
-            robotControl.setDesiredPositionAndAngle(-1.0f, 3.6f,  PI);
-            while(!(robotControl.getDistanceError() <= 0.2)) {
-                state.savePlotFile(s);
-            };
-
-            robotControl.setDesiredPositionAndAngle(-1.5f, 3.6f,  PI);
-            while(!(robotControl.getDistanceError() <= 0.1)) {
-                state.savePlotFile(s);
-            };
+    robotControl.setDesiredPositionAndAngle(-1.20f, 2.1f,  PI/4);
+    while(!(robotControl.getDistanceError() <= 0.7)) {
+        state.savePlotFile(s);
+    };
 
-            robotControl.setDesiredPositionAndAngle(-2.5f, 3.0f,  -PI/2);
-            while(!(robotControl.getDistanceError() <= 0.4)) {
-                state.savePlotFile(s);
-            };
+    robotControl.setDesiredPositionAndAngle(-0.75f, 3.0f,  PI/2);
+    while(!(robotControl.getDistanceError() <= 0.7)) {
+        state.savePlotFile(s);
+    };
 
-            robotControl.setDesiredPositionAndAngle(-1.75f, 1.30f,  -PI/2);
-            while(!(robotControl.getDistanceError() <= 0.06)) {
-                state.savePlotFile(s);
-            };
+    robotControl.setDesiredPositionAndAngle(-1.0f, 3.75f,  3*PI/4);
+    while(!(robotControl.getDistanceError() <= 0.55)) {
+        state.savePlotFile(s);
+    };
 
 
-        */
+    robotControl.setDesiredPositionAndAngle(-1.5f, 3.6f,  PI);
+    while(!(robotControl.getDistanceError() <= 0.1)) {
+        state.savePlotFile(s);
+    };
+
+    robotControl.setDesiredPositionAndAngle(-2.4f, 3.0f,  -PI/2);
+    while(!(robotControl.getDistanceError() <= 1.0)) {
+        state.savePlotFile(s);
+    };
+
+    robotControl.setDesiredPositionAndAngle(-1.74f, 1.30f,  -PI/2);
+    while(!(robotControl.getDistanceError() <= 0.1)) {
+        state.savePlotFile(s);
+    };
+    robotControl.setDesiredPositionAndAngle(-1.75f, 0.80f,  -PI/2);
+    while(!(s.millis >= 32000)) {
+        state.savePlotFile(s);
+}
 
 
 
 
-    /*
-        printf("here we go... \n");
-        AdkTerm.setupDevice();
-        printf("Android Development Kit: start\r\n");
-        USBInit();
-        while (!(s.millis >= 60000)) {
-            USBLoop();
 
-            printf("x: %f y: %f theta: %f", AdkTerm.getx(), AdkTerm.getx(), AdkTerm.getx() )
+        /*
+            printf("here we go... \n");
+            AdkTerm.setupDevice();
+            printf("Android Development Kit: start\r\n");
+            USBInit();
+            while (!(s.millis >= 60000)) {
+                USBLoop();
+
+                printf("x: %f y: %f theta: %f", AdkTerm.getx(), AdkTerm.getx(), AdkTerm.getx() )
 
-            if( AdkTerm.getx() == 99) {
-                break;
+                if( AdkTerm.getx() == 99) {
+                    break;
+                }
             }
-        }
-    */
+        */
 
-    state.savePlotFile(s);
-    state.closePlotFile();
-    state.stop();
-    robotControl.setEnable(false);
-}
+        state.savePlotFile(s);
+        state.closePlotFile();
+        state.stop();
+        robotControl.setEnable(false);
+    }