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: main.cpp
- Revision:
- 8:696c2f9dfc62
- Parent:
- 7:34be8b3a979c
- Child:
- 9:d3cdcdef9719
diff -r 34be8b3a979c -r 696c2f9dfc62 main.cpp --- 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();