Utilisation du simulateur F1TENTH - vaul-ulaval/vaul-wiki GitHub Wiki

Objectif

Ce tutoriel vous accompagnera dans l'utilisation du simulateur F1TENTH. On verra comment lancer des noeuds ROS pour faire bouger le robot, puis comment ajouter nos propres packages et les tester en simulation.

Préalables

Assurez-vous d'avoir installé et démarré le simulateur en suivant le tutoriel suivant -> Installation du simulateur F1TENTH

Faire bouger le robot

Pour faire bouger le robot dans le simulateur, il suffit de publier des messages sur le topic /robot1/drive. Testez-le en envoyant le message suivant :

ros2 topic pub /robot1/drive ackermann_msgs/msg/AckermannDriveStamped "header:
  stamp:
    sec: 0
    nanosec: 0
  frame_id: ''
drive:
  steering_angle: 0.0
  steering_angle_velocity: 0.0
  speed: 1.0
  acceleration: 0.0
  jerk: 0.0" 

Si tout a fonctionné correctement, le robot devrait maintenant avancer dans Foxglove à basse vitesse. Faites Ctrl+C dans le terminal pour arrêter d'envoyer les commandes.

TODO: Ajouter une manette virtuelle ou un contrôle par clavier dans l'interface Foxglove.

Définir la position du robot

Il arrive que le bolide soit pris dans un mur ou qu'il se retrouve à l'extérieur de la carte. Il est possible de remettre le robot à l'endroit désiré en appuyant sur la flèche située en haut à droite du panneau "3D" et en cliquant sur la position et l'orientation désiré dans la carte.

Enregistrement 2024-03-07 171254

Disparity Extender

L'algorithme disparity extender est un algorithme réactif qui envoie des commandes au robot, basées seulement sur le dernier scan lidar reçu sur le topic /scan. Dans ce mode, le robot cherche la direction dans le scan permettant la plus longue ligne droite, modifie son orientation pour aller dans cette direction et ajuste sa vitesse en fonction de la longueur de la ligne droite.

Vous pouvez lancer disparity extender avec la commande suivante :

ros2 launch vaul_f1tenth_system disparity_extender.launch.py

Pour plus de détails, l'algorithme est très bien expliqué dans le blog suivant.

Cartographie de la piste

TODO

Génération de lignes de course

TODO

Pour l'instant, voir le Protocole de déploiement (F1TENTH)

COURSE !

Pour lancer le robot en mode course, exécutez la commande suivante :

ros2 launch vaul_f1tenth_system race.launch.py

Vous devriez voir apparaître la ligne de course planifiée et le bolide devrait tenter de la suivre.