Time is good

Dependencies:   RoboClaw mbed

Fork of Robot2016_2-0 by ARES

Files at this revision

API Documentation at this revision

Comitter:
IceTeam
Date:
Wed May 04 19:43:53 2016 +0200
Parent:
55:dfeee9e5c0af
Child:
57:86f491f5b25d
Commit message:
Changement dans la gestion des objectifs

Changed in this revision

Functions/defines.h Show annotated file Show diff for this revision Revisions of this file
Map/Objectif/objectif.h Show annotated file Show diff for this revision Revisions of this file
Map/Objectif/objectif_type.h Show annotated file Show diff for this revision Revisions of this file
Map/map.cpp Show annotated file Show diff for this revision Revisions of this file
Map/map.h Show annotated file Show diff for this revision Revisions of this file
--- a/Functions/defines.h	Wed May 04 16:27:51 2016 +0000
+++ b/Functions/defines.h	Wed May 04 19:43:53 2016 +0200
@@ -1,6 +1,9 @@
 #ifndef DEFINES_H
 #define DEFINES_H
 
+/* Dernier Changement : Romain 19h23
+Inclu dans main.cpp Map/map.h func.h */
+
 #include "mbed.h"
 #include "../RoboClaw/RoboClaw.h"
 #include "../Odometry/Odometry.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Map/Objectif/objectif.h	Wed May 04 19:43:53 2016 +0200
@@ -0,0 +1,13 @@
+#ifndef OBJECTIF_H
+#define OBJECTIF_H
+
+class Objectif {
+public:
+	Objectif (int type, float x_obj, float y_obj, float y_objectif);
+
+private:
+	int type;
+	float x_objectif, y_objectif, thet_object;
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Map/Objectif/objectif_type.h	Wed May 04 19:43:53 2016 +0200
@@ -0,0 +1,6 @@
+#ifndef OBJECTIF_TYPE_H
+#define OBJECTIF_TYPE_H
+
+#define OBJ_BLOC 1
+
+#endif
\ No newline at end of file
--- a/Map/map.cpp	Wed May 04 16:27:51 2016 +0000
+++ b/Map/map.cpp	Wed May 04 19:43:53 2016 +0200
@@ -4,6 +4,11 @@
 }
 
 void map::Build (int couleur, int formation) {
+    max_x_table = 2800;
+    max_y_table = 1800;
+    min_x_table = 0;
+    min_y_table = 0;
+
     addObs(obsCarr (800, 100, 100, 15));
     addObs(obsCarr (2200, 100, 100, 15));
     
@@ -83,17 +88,20 @@
                 ended = false;
                 tmp = obs[i].getPoints ();
 
+                // On vérifie si le point est sur la table
+                if (tmp.p0.getX() < min_x_table || tmp.p0.getY() < min_y_table || tmp.p0.getX() > max_x_table || tmp.p0.getY() > max_y_table)
+                    val[0] = false;
                 // On vérifie si le point croise un obstacle
-                for (j = 0; j < os; ++j)
+                for (j = 0; j < os && val[0]; ++j)
                     if (obs[j].getCroisement (tmp.p0, close[indTMP1]))
                         val[0] = false;
                 // On vérifie si le point existe déjà dans la liste ouverte
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[0]; ++j) {
                     if (open[j] == tmp.p0)
                         val[0] = false;
                 }
                 // On vérifie si le point existe déjà dans la liste fermée
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[0]; ++j) {
                     if (close[j] == tmp.p0)
                         val[0] = false;
                 }
@@ -102,14 +110,16 @@
                 }
 
                 // On repete l'operation pour le second point
-                for (j = 0; j < os; ++j)
+                if (tmp.p1.getX() < min_x_table || tmp.p1.getY() < min_y_table || tmp.p1.getX() > max_x_table || tmp.p1.getY() > max_y_table)
+                    val[1] = false;
+                for (j = 0; j < os && val[1]; ++j)
                     if (obs[j].getCroisement (tmp.p1, close[indTMP1]))
                         val[1] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[1]; ++j) {
                     if (open[j] == tmp.p1)
                         val[1] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[1]; ++j) {
                     if (close[j] == tmp.p1)
                         val[1] = false;
                 }
@@ -118,14 +128,16 @@
                 }
 
                 // On répète l'opération pour le troisième point
-                for (j = 0; j < os; ++j)
+                if (tmp.p2.getX() < min_x_table || tmp.p2.getY() < min_y_table || tmp.p2.getX() > max_x_table || tmp.p2.getY() > max_y_table)
+                    val[2] = false;
+                for (j = 0; j < os && val[2]; ++j)
                     if (obs[j].getCroisement (tmp.p2, close[indTMP1]))
                         val[2] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[2]; ++j) {
                     if (open[j] == tmp.p2)
                         val[2] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[2]; ++j) {
                     if (close[j] == tmp.p2)
                         val[2] = false;
                 }
@@ -134,14 +146,16 @@
                 }
 
                 // On répète l'opération pour le quatrieme point
-                for (j = 0; j < os; ++j)
+                if (tmp.p3.getX() < min_x_table || tmp.p3.getY() < min_y_table || tmp.p3.getX() > max_x_table || tmp.p3.getY() > max_y_table)
+                    val[3] = false;
+                for (j = 0; j < os && val[3]; ++j)
                     if (obs[j].getCroisement (tmp.p3, close[indTMP1]))
                         val[3] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[3]; ++j) {
                     if (open[j] == tmp.p3)
                         val[3] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[3]; ++j) {
                     if (close[j] == tmp.p3)
                         val[3] = false;
                 }
--- a/Map/map.h	Wed May 04 16:27:51 2016 +0000
+++ b/Map/map.h	Wed May 04 19:43:53 2016 +0200
@@ -6,6 +6,7 @@
 #include "nVector.h"
 #include "controle.h"
 #include "Odometry.h"
+#include "../AX12/AX12.h"
 
 #define MAP_RIGHTSIDE 1
 #define MAP_LEFTSIDE 2
@@ -26,6 +27,8 @@
     nVector<pointParcours> path;
     bool endedParc; // Definit s'il existe un chemin parcourable dans le dernier FindWay
     Odometry* Codo;
+
+    float min_x_table, min_y_table, max_x_table, max_y_table;
 };
 
 #endif
\ No newline at end of file