Menu  

Génération de trajectoires


Voir répertoire src/hli/ shortestWay.cpp, trajectoryGenerator.cpp
La plupart des trajectoires sont générées de manière à aller vers un point donner: pour aller vider on va vers la zone d'en-but, pour droper on va dans la zone de "drop valide", pour explorer le terrain, on va d'un bout à l'autre du terrain.
Pour générer les trajectoires on cherche donc le chemin le plus court pour aller d'un point à un autre en évitant des zones dangereuses (où on a detecté des obstacles).
terrain
On commence par découper le terrain en une grille avec des tranches de 5cm.
Puis on définit les points ou le robot ne peut pas aller (en tenant compte de son rayon plus une marge de sécurité).
grille
Ensuite on met un score de 0 à tous les points qui peuvent être un point final de la trajectoire
De proche en proche on calcul la plus petite distance d'un points de la grille au point d'arrivée.
Si on ne peut plus explorer de voisin et que l'on n'a pas atteind le point de départ il n'y a pas de solution pour générer une trajectoire vers ces points cibles. On enlève le plus vieille obstacle et on recommence.
score
Si on arrive au point de départ, on repart dans le sens inverse en allant vers les cases de plus faible score, jusqu'à un score de zéro et on a ainsi une succession de points correspondant au plus court chemin.
trajectory