Eirbot1A-2020
navigation.hpp
Aller à la documentation de ce fichier.
1 #ifndef __NAVIGATION_H_
2 #define __NAVIGATION_H_
3 
4 #include "asserv.hpp"
5 #include "../interactions/detection.hpp"
6 
12 struct position;
13 
18 {
19  public:
20  Navigation();
24  Navigation(Node node);
31  std::vector<Node> Astar(Navigation src, Navigation dest, std::vector<obstacle> list_obstacles); //Coeur de l'algorithme A*
44  std::vector<Node> MakePath(std::array<std::array<Node,Y_MAX>,X_MAX> map, Navigation dest); //Permet de recréer le chemin
49  void Print_path(std::vector<Node> usablePath, vector<obstacle> list_obstacles); //Juste du débeugage permet d'afficher coordonnées par coordonnées un chemin
63  int Navigate_to_asserv(std::vector<Node>usablePath, Navigation dest, std::vector<obstacle> list_obstacles); //Permet de convertir un chemin en instruction asserv
72  void back_effect(int back, Navigation dest, std::vector<obstacle> list_obstacles); //Permet de faire un branchement de stratégie pour renvoyer un effet
73 
79  vector<Node> one_step(Node src, Node dest, vector<obstacle> list_obstacles);
80 
81  ~Navigation();
82  Node node;
83 
84 //Attributs
85  private:
92  static bool isDestination(int x, int y, Navigation dest); //Permet de savoir si le noeud est la destination ou non
101  static double calculateE(int x, int y, Navigation dest,double E);//Permet de calculer la distance euclidienne entre deux noeuds
106  static bool onTable(Navigation pos); //Permet de savoir si on est sur la table
107 
108 
109 };
110 
111 #endif
fillVector
std::vector< obstacle > fillVector()
Permet de remplir un vecteur avec la liste des obstacles, c'est ici que l'on ajoute ou enlève des obs...
Definition: world.cpp:8
Navigation::Print_path
void Print_path(std::vector< Node > usablePath, vector< obstacle > list_obstacles)
Permet d'afficher un chemin calculé par l'Astar.
Definition: navigation.cpp:205
X_MAX
#define X_MAX
La longueur de la table.
Definition: world.hpp:15
Navigation::Astar
std::vector< Node > Astar(Navigation src, Navigation dest, std::vector< obstacle > list_obstacles)
Fonction principale de la classe, permet d'effecteur une recherche de chemin entre deux points.
Definition: navigation.cpp:53
fillVector_no_ecocup
std::vector< obstacle > fillVector_no_ecocup()
Cette fonction permet de gérer un cas particulier où l'on détecte un robot et que l'Astar n'arrive pl...
Definition: world.cpp:42
print_fail
void print_fail()
Permet d'afficher FAILED en rouge.
Definition: affichage.cpp:25
go_to
int go_to(struct position dest)
Permet de transmettre au protocole l'ordre de se déplacer.
Definition: asserv.cpp:8
Navigation::one_step
vector< Node > one_step(Node src, Node dest, vector< obstacle > list_obstacles)
Permet de réaliser une étape c'est à dire un déplacement d'un point principal à un autre point princi...
Definition: navigation.cpp:405
Navigation::back_effect
void back_effect(int back, Navigation dest, std::vector< obstacle > list_obstacles)
Permet de prendre un branchement dans la stratégie en fonction du retour du protocole,...
Node
Structure permettant de définir un Node, essentiel pour réaliser l'Astar.
Definition: world.hpp:34
Navigation
Contient les méthodes permettant de faire fonctionner correctement l'astar.
Definition: navigation.hpp:18
Navigation::Navigate_to_asserv
int Navigate_to_asserv(std::vector< Node >usablePath, Navigation dest, std::vector< obstacle > list_obstacles)
Permet de convertir un chemin en informations transmettables à l'asservissement. L'idée générale est ...
Definition: navigation.cpp:239
isValid
bool isValid(short x, short y, std::vector< obstacle > list_obstacles)
Permet de savoir, si le robot est dans une position si il entre en collision avec un obstacle.
Definition: world.cpp:71
Y_MAX
#define Y_MAX
La largeur de la table.
Definition: world.hpp:18
asserv.hpp
Fichier d'interface avec l'asservissement, permet d'utiliser le protocole de communication pour deman...
position
Simple structure permettant de définir une position.
Definition: asserv.hpp:31
Navigation::MakePath
std::vector< Node > MakePath(std::array< std::array< Node, Y_MAX >, X_MAX > map, Navigation dest)
Permet de transformer une grille représentant la table en un chemin Cette fonction est utilisée dans ...
Definition: navigation.cpp:163
navigation.hpp
Ce fichier contient toutes les méthodes permettant de réaliser une recherche de chemin sur la table d...