This program is for an autonomous robot for the competition at the Hochschule Luzern. We are one of the 32 teams. <a href="http://cruisingcrepe.wordpress.com/">http://cruisingcrepe.wordpress.com/</a> 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: <a href="http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf">http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf</a>

Dependencies:   mbed

Fork of autonomousRobotAndroid by Christian Burri

Revision:
8:696c2f9dfc62
Parent:
7:34be8b3a979c
Child:
9:d3cdcdef9719
--- a/main.cpp	Tue Mar 26 08:29:43 2013 +0000
+++ b/main.cpp	Sat Mar 30 06:55:08 2013 +0000
@@ -1,6 +1,6 @@
 /**
  * \mainpage Index Page
- * 
+ *
  * @file main.cpp
  * @author Christian Burri
  *
@@ -91,140 +91,110 @@
     //  compass.start();
 
     state.initPlotFile();
+    state.startTimerFromZero();
+    state.start();
 
-    robotControl.start();
     robotControl.setEnable(false);
     wait(0.1);
     robotControl.setEnable(true);
     wait(0.1);
     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);
+    //  robotControl.setDesiredPositionAndAngle(0, 0, PI/2);
+    // wait(0.1);
+
+    //////////////////////////////////////////
 
-    leftMotor.setPulses(0);
-    rightMotor.setPulses(0);
+    robotControl.setDesiredPositionAndAngle(0.0f, 1.0f,  PI);
+    while(!(robotControl.getDistanceError() <= 0.1)) {
+        state.savePlotFile(s);
+    };
 
-    state.startTimerFromZero();
-    state.start();
+    robotControl.setDesiredPositionAndAngle(-1.00f, 1.0f,  -PI/2);
+    while(!(robotControl.getDistanceError() <= 0.1)) {
+        state.savePlotFile(s);
+    };
 
-   // robotControl.setDesiredPositionAndAngle(START_X_OFFSET, START_Y_OFFSET, PI/2);
-  //  robotControl.setDesiredPositionAndAngle(0, 0, PI/2);
-   // wait(0.1);
-    
-    //////////////////////////////////////////
+    robotControl.setDesiredPositionAndAngle(-1.0f, 0.0f,  0);
+    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.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);
+    };
+
+
+
+
+
+    ///////////////////////stay
     /*
-            robotControl.setDesiredPositionAndAngle(0.0f, 1.0f,  PI);
-        while(!(robotControl.getDistanceError() <= 0.1)) {
+            robotControl.setDesiredPositionAndAngle(0.0, 0.0f,  PI/2);
+        while(!(s.millis >= 25000)) {
             state.savePlotFile(s);
         };
+        */
+    //////////////////////////stay
 
-        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(0.0f, -0.8f,  PI/2);
-        while(!(robotControl.getDistanceError() <= 0.05)) {
-            state.savePlotFile(s);
-        };
-        
-                        robotControl.setDesiredPositionAndAngle(0.0f, -0.2f,  PI/2);
+    //Zum Umfang einstellen 2m fahren
+    /*
+         robotControl.setDesiredPositionAndAngle(0.0f, 4.0f,  PI/2);
+         while(!(s.millis >= 30000)) {
+             state.savePlotFile(s);
+         };
+     */
+
+
+
+    ///////////////oder//////////////////e
+
+
+    // Zum radabstand einstellen
+
+    /*
+        robotControl.setDesiredPositionAndAngle(-0.7f, 1.0f,  PI);
         while(!(robotControl.getDistanceError() <= 0.05)) {
             state.savePlotFile(s);
         };
 
-        robotControl.setDesiredPositionAndAngle(0.0, 0.0f,  PI/2);
-        while(!(s.millis >= 65000)) {
-            state.savePlotFile(s);
-        };
-  */  
-    
-    ///////////////////////stay
-    
-            robotControl.setDesiredPositionAndAngle(0.0, 0.0f,  PI/2);
-        while(!(s.millis >= 65000)) {
+        robotControl.setDesiredPositionAndAngle(-0.8f, 1.0f,  PI);
+        while(!(robotControl.getDistanceError() <= 0.05)) {
             state.savePlotFile(s);
         };
-        
-   //////////////////////////stay
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-    
-
-    //Zum Umfang einstellen 2m fahren
-    
-    robotControl.setDesiredPositionAndAngle(0.0f, 2.0f,  PI/2);
-    while(!(s.millis >= 30000)) {
-        state.savePlotFile(s);
-    };
-    
-
-
-
-    ///////////////oder//////////////////
 
 
-    // Zum radabstand einstellen
-    
-    /*
-        robotControl.setDesiredPositionAndAngle(-0.94f, 0.68f,  PI);
-    while(!(s.millis >= 30000)) {
-        state.savePlotFile(s);
-    }
-   /* 
-      
-  /*  
-    int sek = 0;
-    int step = 5000;
-    int i = 0;
-    int totalTurns = 2;
-
-   sek += step;
-
-    while(i <= totalTurns) {
-        robotControl.setDesiredPositionAndAngle(0.0f, 0.0f,  PI);
-        while(!(s.millis >= sek)) {
+        robotControl.setDesiredPositionAndAngle(-1.0f, 1.0f,  PI);
+        while(!(s.millis >= 30000)) {
             state.savePlotFile(s);
-        };
-        sek += step;
+        }
+    */
 
-        robotControl.setDesiredPositionAndAngle(0.0f, 0.0f,  -PI/2);
-        while(!(s.millis >= sek)) {
-            state.savePlotFile(s);
-        };
-        sek += step;
-
-        robotControl.setDesiredPositionAndAngle(0.0f, 0.0f,  0);
-        while(!(s.millis >= sek)) {
-            state.savePlotFile(s);
-        };
-        sek += step;
-
-        robotControl.setDesiredPositionAndAngle(0.0f, 0.0f,  PI/2);
-        while(!(s.millis >= sek)) {
-            state.savePlotFile(s);
-        };
-        sek += step;
-
-        i++;
-    }
-    
-    
-*/
 
 
 ////////////////////////////////////////////////////////
@@ -232,51 +202,51 @@
 
 
     //  Epä Parkour fahrä
-/*
-        robotControl.setDesiredPositionAndAngle(START_X_OFFSET, START_Y_OFFSET, PI/2);
-        wait(0.1);
+    /*
+            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(-1.20f, 1.50f,  3*PI/4);
+            while(!(robotControl.getDistanceError() <= 0.4)) {
+                state.savePlotFile(s);
+            };
 
-        robotControl.setDesiredPositionAndAngle(-1.20f, 2.5f,  PI/4);
-        while(!(robotControl.getDistanceError() <= 0.4)) {
-            state.savePlotFile(s);
-        };
+            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(-0.45f, 3.2f,  3*PI/4);
+            while(!(robotControl.getDistanceError() <= 0.4)) {
+                state.savePlotFile(s);
+            };
 
-        robotControl.setDesiredPositionAndAngle(-1.0f, 3.6f,  PI);
-        while(!(robotControl.getDistanceError() <= 0.2)) {
-            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.5f, 3.6f,  PI);
+            while(!(robotControl.getDistanceError() <= 0.1)) {
+                state.savePlotFile(s);
+            };
 
-        robotControl.setDesiredPositionAndAngle(-2.5f, 3.0f,  -PI/2);
-        while(!(robotControl.getDistanceError() <= 0.4)) {
-            state.savePlotFile(s);
-        };
+            robotControl.setDesiredPositionAndAngle(-2.5f, 3.0f,  -PI/2);
+            while(!(robotControl.getDistanceError() <= 0.4)) {
+                state.savePlotFile(s);
+            };
 
-        robotControl.setDesiredPositionAndAngle(-1.75f, 1.30f,  -PI/2);
-        while(!(robotControl.getDistanceError() <= 0.06)) {
-            state.savePlotFile(s);
-        };
-        
+            robotControl.setDesiredPositionAndAngle(-1.75f, 1.30f,  -PI/2);
+            while(!(robotControl.getDistanceError() <= 0.06)) {
+                state.savePlotFile(s);
+            };
+
 
-    */
-    
-    
-    
-    
+        */
+
+
+
+
     /*
         printf("here we go... \n");
         AdkTerm.setupDevice();