0% ont trouvé ce document utile (0 vote)
9 vues5 pages

Serveur WebSocket pour TurtleBot3

Le document décrit la structure et les fonctionnalités de divers packages ROS 2 pour le robot TurtleBot3, y compris la création d'un serveur WebSocket et des nœuds pour la reconnaissance vocale. Il détaille également les configurations nécessaires pour la simulation, le démarrage, et la navigation autonome du robot. Enfin, il mentionne les fichiers de configuration et les scripts d'exemple pour faciliter l'interaction avec le robot.

Transféré par

ywnsalzaym9
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues5 pages

Serveur WebSocket pour TurtleBot3

Le document décrit la structure et les fonctionnalités de divers packages ROS 2 pour le robot TurtleBot3, y compris la création d'un serveur WebSocket et des nœuds pour la reconnaissance vocale. Il détaille également les configurations nécessaires pour la simulation, le démarrage, et la navigation autonome du robot. Enfin, il mentionne les fichiers de configuration et les scripts d'exemple pour faciliter l'interaction avec le robot.

Transféré par

ywnsalzaym9
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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.

Vous aimerez peut-être aussi