PFE Explication
[Link] : Créer un serveur WebSocket qui écoute les connexions entrantes à l'adresse
[Link] sur le port 8765. Lorsqu’un client se connecte et envoie un message, le
serveur l'affiche dans la console.
install/ : contenir les fichiers d'installation des paquets ROS 2 compilés
build/ : contient les fichiers intermédiaires de compilation pour chaque paquet de
ton workspace ROS 2
Remarque : les dossiers install et build sont créer automatiquement et ne doivent
pas être modifié
turtlebot3_ws/src/my_package/my_package/[Link] : Crée un nœud ROS 2
appelé voice_recognition, Ouvre un serveur WebSocket sur l'adresse IP de l’interface
réseau enp0s3 (par exemple 192.168.1.x) sur le port 8000, À chaque message
WebSocket reçu, il le convertit en minuscules,le publie sur le topic ROS 2 /speech
Ce script permet d'envoyer des commandes vocales depuis un micro distant,faire
parler ou réagir un robot ROS 2 avec les messages reçus.
Package turtlebot3 :
turtlebot3_bringup/ : Démarrage complet du robot, que ce soit réel ou en simulation
launch/[Link] : script de lancement (ROS 2 launch file) qui sert à
démarrer l’ensemble des composants nécessaires pour faire fonctionner le
TurtleBot3 en utilisant un LIDAR (comme LDS-01 ou LDS-02), avec un port USB pour la
communication avec la carte OpenCR, et en publiant les états du robot
launch/[Link] : sert à lancer RViz2 avec un fichier de configuration
spécifique fourni par le package turtlebot3_description
launch/turtlebot3_state_publisher.[Link] : sert à publier l'état du robot
TurtleBot3 à partir de son modèle URDF. C’est une étape essentielle pour que les outils
comme RViz puissent afficher correctement la structure et la cinématique du robot.
param/ : Définir les paramètres du robot (vitesse, PID, simulateur, capteurs,
etc.).
script/[Link] : Déclare une règle UDEV pour identifier le port
USB du robot
script/create_udev_rules : Installe la règle UDEV dans le système Linux
turtlebot3_cartographer : Lance un nœud SLAM pour créer une carte en temps réel
avec /scan et /odom.
launch/[Link] : Ce fichier lance Le nœud principal de
Cartographer, La génération de la carte (occupancy grid), Une instance de RViz2 pour
visualiser la carte en direct
launch/ occupancy_grid.[Link] : Il lance le nœud responsable de convertir
la carte SLAM interne de Cartographer (représentée en 2D comme un Submap) en une
grille d’occupation (nav_msgs/OccupancyGrid), qui peut ensuite être utilisée pour la
navigation, la visualisation dans RViz
turtlebot3_ci.repos : Fichier de configuration pour la compilation continue (CI =
Continuous Integration), il sert à pécifier les dépendances du projet
turtlebot3_description : Contient la description URDF/Xacro du robot , il sert à définir
la structure mécanique et géométrique du TurtleBot3 (Burger, Waffle…).
urdf/common_properties.urdf : contient les couleus réutilisable dans le robot
urdf/ turtlebot3_waffle_pi.urdf : ce fichier décrit le robot TurtleBot3 Waffle Pi,
un robot mobile couramment utilisé pour l'apprentissage de la robotique avec ROS
urdf/ turtlebot3_burger.urdf : fichier de description URDF pour le robot TurtleBot3
Burger, qui est une version plus compacte que le modèle Waffle ou Waffle Pi. Il définit
les composants mécaniques, géométriques, inertiels, et visuels du robot pour être
utilisé dans ROS (Robot Operating System).
turtlebot3_example : contient des scripts d'exemples pour apprendre à interagir avec
le robot.
turtlebot3_navigation2 : Fournit la configuration pour utiliser Nav2, la pile de
navigation de ROS 2 , il permet suivi de trajet,évitement d'obstacles et la localisation
dans une carte
param/ : pour configurer les modules comme planner, controller, bt_navigator
launch/ : Lance tout le système de navigation autonome pour le robot
TurtleBot3 en utilisant ROS 2 et le framework Navigation2 (Nav2).
turtlebot3_node : Nœud principal de contrôle du robot, Lit les commandes sur
/cmd_vel et publie /odom et /tf , Fournit les fonctionnalités de Lecture du capteur,
contrôle moteur,odométrie
turtlebot3_repos : Dépendances à inclure avec vcs [Link] souvent un fichier
.repos pour cloner tous les autres dépôts nécessaires.
turtlebot3_teleop : Téléopération (commande) du robot via clavier ou manette.
Package turtlebot3_simulations :
[Link] : Un fichier Markdown qui explique comment contribuer au projet.
Il contient généralement des directives pour les contributions, comme les conventions
de code, les étapes pour soumettre des modifications, etc.
turtlebot3_fake_node : Un package ROS qui simule un nœud (node) "fake" pour
TurtleBot3. Il permet de tester des fonctionnalités sans avoir besoin d'un robot
physique, en émulant les capteurs et les commandes.
launch/[Link] : Un fichier de lancement pour démarrer RViz2 (outil de
visualisation ROS 2) avec une configuration prédéfinie pour TurtleBot3.
launch/turtlebot3_fake_node.[Link] : Un fichier de lancement principal
qui initialise le nœud turtlebot3_fake_node (simulation des
capteurs/commandes),Le robot_state_publisher (publication de l'état du robot
via URDF),Inclut aussi le lancement de RViz2 via [Link].
param/[Link]: Fichier de configuration YAML contenant les paramètres
pour le modèle TurtleBot3 Burger (version compacte avec 2 roues). Contenu
typique : paramètres des capteurs simulés (ex: LiDAR, IMU),vitesses maximales
des moteurs,topics ROS pour les commandes et les données des capteurs.
param/waffle_pi.yaml : Fichier de configuration pour le modèle TurtleBot3
Waffle Pi (variante du Waffle avec un Raspberry Pi et une caméra intégrée).
param/[Link] : Fichier de configuration pour le modèle TurtleBot3 Waffle
(version avec 3 roues et un panneau ouvert).
src/: Simuler le comportement d'un TurtleBot3 réel en publiant des données
fictives (odométrie, états des joints, TF) basées sur les commandes de vitesse
(cmd_vel).
turtlebot3_simulations_ct.repos : Un fichier utilisé par des outils comme vcs (Version
Control System) pour gérer les dépendances du projet. Il liste les dépôts externes
nécessaires et leurs versions.
turtlebot3_gazebo : Un package ROS qui fournit des fichiers de configuration pour
simuler TurtleBot3 dans Gazebo, un simulateur de robots. Il inclut des modèles, des
mondes et des lanceurs (launch files).
worlds/empty_worlds : Mondes Gazebo vides (sans obstacles).
worlds/turtlebot3_autoraces : Circuits pour courses autonomes simulées.
worlds/turtlebot3_dqn_stage[1-4] : Mondes pour l'entraînement par Deep Q-
Network (DQN) (apprentissage par renforcement), stage 1 : Environnement
simple (ex : une salle vide), stage 4 : Environnement complexe (ex : labyrinthes,
obstacles dynamiques).
worlds/turtlebot3_houses: Modèles de maisons/pièces réalistes.
worlds/turtlebot3_worlds : Mondes génériques pour TurtleBot3.
src/turtlebot3_drive.cpp: Ce nœud implémente un algorithme d'évitement
d'obstacles simple en utilisant les données du LiDAR et de l'odométrie. Il fonctionne
comme une machine à états finis avec 4 comportements, Détection de la direction
(GET_TB3_DIRECTION), Avancer tout droit (TB3_DRIVE_FORWARD) Tourner à droite
(TB3_RIGHT_TURN), Tourner à gauche (TB3_LEFT_TURN)
turtlebot3_simulations : Le dossier principal du projet, qui contient probablement des
métadonnées et des fichiers de configuration pour l'ensemble des simulations de
TurtleBot3.