Description des packages
race_path_follower
race_node.py
Node permettant à la voiture de suivre une trajectoire définie par des points dans un fichier tracks.yaml.
Le robot démarre à partir de p0, puis navigue vers les points p1, p2, p3, etc.
Fonctionnement général
Le node charge les points depuis un fichier
tracks.yaml.Il récupère la trajectoire active avec
active_track.Il initialise la pose du robot avec
p0.Il attend que Nav2 soit prêt.
Il attend que l’utilisateur tape
dpuisEntrerdans le terminal.Il envoie successivement chaque point objectif à Nav2 avec
goToPose.En cas d’échec, il tente une récupération avec une marche arrière.
Il recommence jusqu’à atteindre le nombre de tours demandé.
Paramètres ROS
Paramètre |
Description |
Valeur par défaut |
|---|---|---|
|
Nombre de tours à effectuer |
|
|
Nombre maximum d’essais de recovery par objectif |
|
|
Chemin vers le fichier des trajectoires |
|
|
Nom de la trajectoire à utiliser |
|
Si active_track est vide, le node utilise la valeur définie dans tracks.yaml.
Remarques importantes
p0est uniquement la pose initiale.La voiture ne navigue que vers
p1,p2,p3, etc.Si un objectif échoue, le node tente une récupération puis réessaie.
Si le nombre maximum d’essais est atteint, le point est ignoré et le node passe au suivant.
Le node utilise
BasicNavigatordenav2_simple_commander.
Bug present
Lors des transitions entre les points, la voiture fait une ligne droite le temps de calculer la nouvelle trajectoire.
Parfois la voiture tourne trop vite ou rentre dans un mur trop rapidement ce qui met sa position dans un mur ce qui empèche nav2 de plannifier une nouvelle trajectoire. Pour contrer le probleme on a une fonction run_recovery() qui lance l’action backup() de nav2 qui recule de 30cm (pour activer AMCL) sauf qu’elle aussi est bloquer par le même probleme (« start occupied » dans les logs).
