Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: RoboClaw mbed StepperMotor
Fork of RoboClaw by
Diff: Map/map.cpp
- Revision:
- 64:24e1057a97f7
- Parent:
- 63:176d04975f06
- Child:
- 65:7bf11abfefc3
--- a/Map/map.cpp Wed May 04 21:51:00 2016 +0000
+++ b/Map/map.cpp Thu May 05 01:30:14 2016 +0200
@@ -2,7 +2,27 @@
/* Dernier Changement : Romain 20h30 */
-map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince) : Codo(nodo) {
+void map::Build_Objectives() {
+ if (couleur == VERT) {
+ addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince));
+ addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince, 10));
+ }
+ else {
+ addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince));
+ addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince));
+ }
+}
+
+map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince, int ncouleur, int nformation) : Codo(nodo), Parasol(np), ControlleurPince(npince) {
+ couleur = ncouleur;
+ formation = nformation;
+
+ if (couleur == VERT) {
+ Codo->setPos(X_START_VERT, Y_START, 0);
+ }
+ else {
+ Codo->setPos(Y_START, Y_START, -PI);
+ }
}
void map::addObs (obsCarr nobs) {
@@ -195,39 +215,54 @@
endedParc = false;
}
+void map::Execute() {
+ for (int i = 0; i < objectifs.size();++i) {
+ Execute(i);
+ }
+}
+
void map::Build (int couleur, int formation) {
if (couleur == VERT) {
max_x_table = 1400;
- max_y_table = 1800;
- min_x_table = 0;
- min_y_table = 0;
+ max_y_table = 1900;
+ min_x_table = 100;
+ min_y_table = 100;
}
else {
max_x_table = 2900;
- max_y_table = 1800;
+ max_y_table = 1900;
min_x_table = 1600;
- min_y_table = 0;
+ min_y_table = 100;
}
if (couleur == VERT) {
+ // Attention les commentaires sont inversées par rapport aux valeur en x et y des obstacles.
+ // Il faut lire les commentaires de la façon dont la carte est présentée dans le règlement
+ // Un / signifie un point de départ. Milieu/Haut/Haut signifie que l'on part du milieu, que l'on va en haut puis encore en haut
+
addObs(obsCarr (0, 2000, 250, 150)); // Coté haut droite
addObs(obsCarr (200, 2000, 200, 50));
- addObs(obsCarr (800, 100, 100, 15));
+
+ addObs(obsCarr (800, 100, 100, 15)); // Petit obstacle en haut à gauche
}
else {
addObs(obsCarr (3000, 2000, 250, 150)); // Coté bas droite
addObs(obsCarr (2800, 2000, 200, 50));
- addObs(obsCarr (2200, 100, 100, 15));
+
+ addObs(obsCarr (2200, 100, 100, 15)); // Petit Obstacle en haut à gauche
}
- addObs(obsCarr (1500, 750, 1100, 15));
- addObs(obsCarr (1500, 1050, 20, 300));
+ addObs(obsCarr (1500, 750, 1100, 15)); // Obstacle du milieu à la verticale
+ addObs(obsCarr (1500, 1050, 20, 300)); // Vitre du milieu (horizontale)
if (formation == 1) {
Build_formation_1 (couleur);
}
+ if (formation == 2) {
+ Build_formation_2 (couleur);
+ }
else {
- addObs(obsCarr (1250, 1000, 220, 220));
+ addObs(obsCarr (1250, 1000, 220, 220)); // Obstacles du test standard hors-coupe. A ignorer
addObs(obsCarr (1500, 750, 220, 220));
addObs(obsCarr (1500, 1250, 220, 220));
}
@@ -235,17 +270,17 @@
void map::Build_formation_1 (int couleur) {
if (couleur == VERT) {
- addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit
- addObs(obsCarr (200, 2000-750, 40, 40));
+ addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut - droite
+ addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal
- addObs(obsCarr (900, 2000-550, 40, 40));
- addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
+ addObs(obsCarr (900, 2000-550, 40, 40)); // Coqullage du milieu/haut/haut
+ addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut
- addObs(obsCarr (1500, 2000-550, 40, 40));
- addObs(obsCarr (1500, 2000-350, 40, 40));
+ addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche
+ addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droit
//addObs(obsCarr (3000-900, 2000-550, 40, 40));
- addObs(obsCarr (3000-1200, 2000-350, 40, 40));
+ addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu bas
//addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite
//addObs(obsCarr (3000-200, 2000-750, 40, 40));
@@ -257,51 +292,49 @@
//addObs(obsCarr (900, 2000-550, 40, 40));
addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
- addObs(obsCarr (1500, 2000-550, 40, 40));
- addObs(obsCarr (1500, 2000-350, 40, 40));
+ addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche
+ addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droite
- addObs(obsCarr (3000-900, 2000-550, 40, 40));
- addObs(obsCarr (3000-1200, 2000-350, 40, 40));
+ addObs(obsCarr (3000-900, 2000-550, 40, 40)); // Coquillage du milieu/bas
+ addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu/bas/bas
addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite
- addObs(obsCarr (3000-200, 2000-750, 40, 40));
+ addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal
}
}
void map::Build_formation_2 (int couleur) {
if (couleur == VERT) {
- addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit
- addObs(obsCarr (200, 2000-750, 40, 40));
-
- addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillages du milieu haut
- addObs(obsCarr (600, 2000-750, 40, 40));
+ addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut gauche
+ addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du haut droite
- addObs(obsCarr (900, 2000-550, 40, 40));
- addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
-
- addObs(obsCarr (1500, 2000-550, 40, 40));
- addObs(obsCarr (1500, 2000-350, 40, 40));
-
- //addObs(obsCarr (3000-900, 2000-550, 40, 40));
- addObs(obsCarr (3000-1200, 2000-350, 40, 40));
-
- //addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite
- //addObs(obsCarr (3000-200, 2000-750, 40, 40));
+ addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillage du milieu/haut/haut droite
+ addObs(obsCarr (600, 2000-750, 40, 40)); // Coquillage du milieu/haut/haut sur le même axe horizontal
+
+ addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut droite
}
else {
//addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit
//addObs(obsCarr (200, 2000-750, 40, 40));
//addObs(obsCarr (900, 2000-550, 40, 40));
- addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
-
- addObs(obsCarr (1500, 2000-550, 40, 40));
- addObs(obsCarr (1500, 2000-350, 40, 40));
-
- addObs(obsCarr (3000-900, 2000-550, 40, 40));
- addObs(obsCarr (3000-1200, 2000-350, 40, 40));
-
- addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite
- addObs(obsCarr (3000-200, 2000-750, 40, 40));
+ addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillage du bas gauche
+ addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage du bas droite
+
+ addObs(obsCarr (3000-600, 2000-450, 40, 40)); // Coquillage du milieu bas/bas droite
+ addObs(obsCarr (3000-600, 2000-750, 40, 40)); // Coquillage du milieu bas/bas sur le même axe horizontal
+
+ addObs(obsCarr (1800, 2000-350, 40, 40)); // Coquillage du milieu/bas droite
+ }
+}
+
+void map::Build_Objectives() {
+ if (couleur == VERT) {
+ addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince));
+ addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince));
+ }
+ else {
+ addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince));
+ addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince));
}
}
\ No newline at end of file
