Département : génie électrique
Master : génie électrique et systèmes industrielles intelligents
Compte rendu TP2
Réalisé par :
EL MANSOURI Salma
ABDESSADEK Sanae
Année universitaire : 2025-2026
Table des matières
INTRODUCTION : ...............................................................................................................................2
L’OBJECTIF DU TP : ..........................................................................................................................2
I. PREPARATION DU WORKSPACE ROS 2 ET CREATION D’UN PACKAGE ROS 2 PYTHON : ..3
II. CREATION D’UN PREMIER NŒUD : .........................................................................................4
III. CREATION D’UN PUBLISHER (DRAW_CIRCLE.PY) : ..........................................................5
IV. CREATION D’UN SUBSCRIBER (POSE_SUBSCRIBER.PY) : ..................................................8
CONCLUSION ..................................................................................................................................10
Compte rendu TP2
1
Introduction :
ROS 2 (Robot Operating System) est un framework largement utilisé pour le développement
d’applications robotiques modulaires et distribuées. Ce travail pratique a pour objectif de
découvrir les bases de ROS 2 en environnement WSL (Ubuntu), à travers la création d’un
workspace, d’un package Python et de plusieurs nœuds communicants. L’utilisation des
mécanismes publisher/subscriber permet de comprendre le principe de communication entre
les différents composants d’un système robotique, illustré par l’exemple du simulateur
turtlesim.
L’objectif du TP :
L’objectif principal de ce travail pratique est de se familiariser avec l’environnement ROS 2 et
son utilisation sous WSL (Ubuntu) pour le développement d’applications robotiques en
Python. Plus précisément, ce TP vise à :
Comprendre l’architecture de base de ROS 2, notamment les notions de workspace,
package et nœud.
Apprendre à créer et configurer un workspace ROS 2 en utilisant l’outil de compilation
colcon.
Maîtriser la création d’un package ROS 2 de type Python (ament_python) et la gestion de
ses dépendances.
Développer un premier nœud ROS 2 et comprendre son rôle dans un système distribué.
Implémenter un publisher pour envoyer des messages sur un topic ROS 2.
Implémenter un subscriber pour recevoir et traiter des messages publiés sur un topic.
Tester la communication entre nœuds à travers l’exemple de turtlesim, afin de valider le
bon fonctionnement du mécanisme publisher/subscriber.
Acquérir une méthodologie pratique pour le développement et l’exécution d’applications
ROS 2 sous WSL et VS Code. Compte rendu TP2
2
I. Préparation du workspace ROS 2 et Création d’un package ROS 2 Python :
Apres qu’on a suivi les étapes de cette partie voici les résultats que nous avons obtenu :
Cette partie montre les premières étapes du travail avec ROS 2. La création du workspace
permet d’organiser correctement le projet, tandis que l’utilisation de l’outil colcon assure une
compilation correcte. La création d’un package Python permet ensuite de structurer le code et
de préparer le développement des nœuds ROS 2.
Compte rendu TP2
3
II. Création d’un premier nœud :
La deuxième étape est de créer le premier nœud, on a obtenu :
Dans cette étape, un premier nœud ROS 2 est créé afin de vérifier que l’environnement
fonctionne correctement. Ce nœud représente un programme simple capable de s’exécuter dans
le système ROS 2. Son bon fonctionnement confirme que le workspace et le package sont bien
configurés.
Compte rendu TP2
4
III. Création d’un Publisher (draw_circle.py) :
Cette figure montre la création du fichier draw_circle.py dans le package ROS 2. Ce fichier
contient le code du nœud publisher. Cette étape est importante car elle permet de définir le
programme chargé d’envoyer les commandes de mouvement vers le simulateur. Elle marque
le début de l’implémentation du mécanisme de publication.
Cette figure présente le contenu du script draw_circle.py. Le code initialise un nœud ROS 2,
crée un publisher et définit les paramètres de vitesse linéaire et angulaire. Ces paramètres sont
choisis de manière à produire un mouvement circulaire. Le code montre aussi l’utilisation d’une
boucle avec une fréquence fixe pour publier les messages de façon régulière.
Compte rendu TP2
5
Cette figure illustre le lancement du nœud publisher à l’aide de la commande ros2 run. Le
terminal n’affiche aucune erreur, ce qui indique que le nœud a été correctement reconnu et
exécuté par ROS 2. Cette étape confirme que le package est bien installé et que le script est
exécutable.
Cette figure montre que le nœud publisher envoie en continu des commandes de vitesse sur le
topic /turtle1/cmd_vel. Les messages publiés contiennent les informations nécessaires pour
contrôler le mouvement de la tortue. Cela illustre clairement le rôle du publisher dans la
communication entre les nœuds ROS 2.
Compte rendu TP2
6
Cette figure montre l’effet direct des messages publiés sur le simulateur turtlesim. La trajectoire
circulaire obtenue valide la cohérence entre les commandes envoyées et la réponse du système
simulé. Cela démontre l’efficacité de la communication inter-nœuds et l’abstraction matérielle
offerte par ROS 2.
Cette partie consiste à créer un nœud publisher qui envoie des commandes de mouvement. Les
messages publiés permettent de contrôler le déplacement de la tortue dans le simulateur. Cette
étape aide à comprendre comment un nœud peut envoyer des informations vers d’autres
composants du système.
Compte rendu TP2
7
IV. Création d’un Subscriber (pose_subscriber.py) :
Et dans la dernière étape on a obtenu les résultats suivants :
Cette figure montre la validation du modèle Publisher–Subscriber sous ROS 2 à l’aide de
TurtleSim. Le nœud draw_circle publie des commandes de vitesse sur le topic
/turtle1/cmd_vel, entraînant un mouvement circulaire de la tortue. Le nœud
cmd_vel_subscriber reçoit et affiche ces messages, confirmant la bonne transmission des
données et le fonctionnement correct de la communication inter-nœuds.
Compte rendu TP2
8
Cette figure montre les messages affichés dans le terminal après le lancement du subscriber.
Les valeurs de position (x, y) et d’orientation sont affichées en temps réel. Cela confirme que
le nœud subscriber reçoit correctement les informations envoyées par le simulateur turtlesim
Compte rendu TP2
9
Cette section introduit la réception et le traitement des données via un nœud subscriber.
L’abonnement au topic de pose permet de récupérer les informations de position et d’orientation
en temps réel. Cette étape est essentielle pour comprendre la perception et le retour d’état dans
un système robotique, base de nombreuses applications de commande et de supervision.
Conclusion
Ce TP nous a permis de comprendre les bases de ROS 2 à travers des exemples simples et pratiques.
Les résultats obtenus montrent que ROS 2 est un outil efficace pour développer des applications
robotiques. Ce travail constitue une bonne base pour aborder des projets plus avancés en robotique et en
systèmes intelligents.
Compte rendu TP2
10