Lab 1 : ROS 2 Introduction - vaul-ulaval/vaul-wiki GitHub Wiki

Introduction :

Ce laboratoire est basé sur les travaux du projet f1tenth_labs_openrepo.

L'objectif principal est de s'immerger dans l'utilisation de ROS 2, mais directement sur une plateforme Ubuntu, sans avoir recours à Docker.

I. Objectifs d'apprentissage :

  • Comprendre le workflow ROS 2
  • Savoir créer des nœuds avec des publishers et des subscribers
  • Comprendre la structure des packages ROS 2, les fichiers, les dépendances
  • Créer des fichiers de lancement

II. Présentation

L'objectif de ce laboratoire est de vous familiariser avec le workflow de ROS 2. Vous pouvez choisir de compléter la partie codage en Python ou en C++. Nous vous recommandons d'essayer les deux, car cela vous permettra de mieux comprendre les spécificités de chaque langage dans ROS 2.

Si vous avez des difficultés, consultez ces tutoriels :

III. Préparation

Commencez par installer ROS 2 Foxy sur votre système Ubuntu en suivant les instructions appropriées. Assurez-vous d'avoir également toutes les dépendances nécessaires.

IV. Démarrage avec ROS 2

Testez quelques commandes de base de ROS 2. Ouvrez un terminal et exécutez :

ros2 topic list

Vous devriez voir deux topic listés :

  • /parameter_events
  • /rosout

V. Création d'un package

Livrable 1 : créez un package nommé lab1_pkg. Ce package doit répondre aux critères suivants :

  • Il doit supporter Python et C++.
  • Il doit avoir la dépendance ackermann_msgs.
  • Ces dépendances peuvent être déclarées dans le fichier package.xml et installées avec rosdep.

Votre dossier de package doit être propre. Évitez d'avoir plusieurs dossiers 'src' ou des dossiers 'install' ou 'build' inutiles.

VI. Création de nœuds avec publishers et subscribers

Livrable 2 : créez deux nœuds dans le package que vous venez de créer.

Le premier nœud, talker.cpp ou talker.py, doit :

  • Écouter deux paramètres ROS v et d.
  • Publier un message AckermannDriveStamped sur le topic drive.

Le second nœud, relay.cpp ou relay.py, doit :

  • S'abonner au topic drive.
  • Dans le callback, prendre la vitesse et l'angle de direction du message entrant, les multiplier par 3, puis publier les nouvelles valeurs.

VII. Création d'un fichier de lancement

Livrable 3 : créez un fichier de lancement lab1_launch.py qui lance les deux nœuds que vous avez créés.

VIII. Commandes ROS 2

Après avoir terminé tous les livrables, lancez les deux nœuds et testez les commandes ROS 2 suivantes :

ros2 topic list
ros2 topic info drive
ros2 topic echo drive
ros2 node list
ros2 node info talker
ros2 node info relay

IX. Tester

Demander à un membre plus expérimenté du VAUL pour tester votre solution sur le robot.