Projet Webots

Cette page contient les détails d'un projet de rédaction technique accepté pour la Google Season of Docs.

Résumé du projet

Organisation Open Source:
Webots
Rédacteur technique:
Canal d'illusion douce
Nom du projet:
Série de tutoriels vidéo pour Webots (intégration avec ROS2)
Durée du projet:
Durée standard (3 mois)

Project description

Enseignements:

Cette série de tutoriels vidéo permettra aux nouveaux utilisateurs de se lancer dans Webots de la meilleure façon possible. Elle leur fournira également des solutions claires et détaillées pour réaliser des simulations spécifiques.

Objectif :

À la fin de cette série, les spectateurs seront en mesure de créer des nœuds ROS2 de base et d'interagir avec Webots, et ils auront acquis la confiance nécessaire pour travailler sur des projets avancés dans le domaine des robots mobiles. Cette série de vidéos vous donnera également de bonnes explications théoriques sur plusieurs concepts essentiels dans le domaine de la robotique.

Détails de la série de vidéos:

  1. Installation de ROS 2 et configuration d'un dépôt dans Visual Studio Code. Cela inclut l'installation de ROS2 par commande et les principes de base de son fonctionnement. Deuxièmement, il comprendra également la configuration de l'espace de travail ROS dans VS Code et les fonctionnalités des onglets de base dans VS Code.

  2. Exemple de base de ROS2 et Webots. Des exemples de ROS2 Webots seront utilisés pour inciter les spectateurs à comprendre les merveilles qu'ils peuvent accomplir s'ils utilisent ROS2 avec Webots pour la simulation. Vous découvrirez également les théories de base de la communication entre ROS2 et Webots.

  3. Utiliser les services ROS2 pour interagir avec Webots Enseigner les bases du service ROS expliquant la différence entre les services dans ROS et ROS2 Deuxièmement, en montrant des tutoriels par étapes pour appeler des services et activer le sujet du capteur pour les lectures et les actionneurs pour le mouvement.

  4. Contrôlez un robot personnalisé avec ROS2 Publisher. Découvrez comment publier des messages à l'aide de diffuseurs ROS2 dans Webots. Nous pouvons implémenter un exemple de contrôle du mouvement du robot en publiant la sortie du clavier sur un sujet qui peut ensuite être utilisé par les services ROS pour le mouvement dans Webots.

  5. Obtenez des commentaires du robot avec le abonné ROS2. Dans cette vidéo, nous allons nous abonner aux lectures des capteurs de distance et arrêter le robot s'il est sur le point de se heurter. Il s'agira donc d'un nœud d'évitement d'obstacles avec la publication de messages interactifs.

  6. Robots esclaves (abonnés) maîtres avec ROS2. Dans cette vidéo, nous allons contrôler un robot avec un clavier et faire fuir un autre robot. Semblable à un scénario de voleur et de flics :) [Il s'agit d'une suite des vidéos 3, 4 et 5]. Cela permettra aux spectateurs de tester la communication et de détecter les erreurs de simulation en cas de problème dans ROS.

  7. Configuration de Rviz (Affichage de différentes sorties de capteurs). Dans cette vidéo, nous allons ajouter quelques autres capteurs et publier leurs données sur Rviz. À la fin de cette vidéo, le spectateur pourra configurer Rviz (c'est-à-dire ajouter des capteurs tels que Lidar, une caméra, etc.pour la visualisation), enregistrer la configuration et générer la configuration enregistrée la prochaine fois.

  8. Vidéo de débogage (Rostopic echo, Rostopic info, RQT_graph). Cette vidéo inclut une fonctionnalité incorrecte délibérée de quelques sujets pour vous aider à comprendre la technique de débogage. Nous suivrons un processus d'affichage du graphique RQT et nous identifions les sujets à l'origine du problème. Utilisation de rostopic echo pour vérifier si le sujet est publié et, à la fin, vérification des informations rostopic pour obtenir notre problème. Résolvez le problème et retrouvez une fonctionnalité normale.

  9. Vidéo de débogage(rqt_console, rqt_gui) Dans cette vidéo, les messages Ros(informations, débogage, erreur, etc.) seront utilisés dans le nœud, et l'utilisation de rqt_console sera étudiée. Cette vidéo sera également étendue pour utiliser rqt_gui afin de publier des messages fictifs afin d'obtenir la fonctionnalité requise. Il peut s'agir d'une autre approche pour corriger certains bugs.

  10. Vidéos sur des sujets avancés: Intégration de la bibliothèque SLAM dans un environnement inconnu (toolbox SLAM ou LaMa) [Partie 1] Cette vidéo commence par la théorie de base des problèmes SLAM. Nous utiliserons ensuite l'infrastructure des concepts enseignés ci-dessus pour comprendre l'essentiel du projet. Enfin, nous allons générer les nœuds nécessaires via le terminal et afficher la sortie de la cartographie dans Rviz.

  11. Vidéos sur des sujets avancés: sur l'intégration de la bibliothèque SLAM dans un environnement inconnu (toolbox SLAM ou LaMa) [Partie 2] Dans cette vidéo, qui fait suite à la 10e, je vais vous expliquer comment créer un fichier de lancement pour lancer tous les nœuds ensemble et examiner rqt_graph pour une bonne compréhension des concepts dans le framework ROS. Enfin, nous allons enregistrer la carte générée par le package à l'aide d'un serveur de carte.

  12. Vidéos sur des sujets avancés: Intégration d'OpenCV (détection de tags AR, package Ar_track_alvar) [Partie 1] La vidéo commence par présenter les tags AR et leur importance dans la localisation à l'aide de la vision artificielle. Nous verrons ensuite comment fonctionne le package de piste AR Alvar. Cela aidera à fournir une perspective globale du projet. Enfin, un service sera mis en place pour permettre un flux de trames vidéo de Webots vers un sujet ROS.

  13. Vidéos sur des sujets avancés: Intégration d'OpenCV (détection de tags AR, package Ar_track_alvar) [Partie 2] Cette vidéo est la suite de la 12e vidéo, dans laquelle le flux d'images ci-dessus sera utilisé par le package et un sujet de transformation entre le robot et le tag AR sera publié, et pourra être consulté sur Rviz. Enfin, lorsque nous déplacerons le robot, nous verrons différentes balises être localisées et leur position changer dans Rviz et dans les messages rostopic.

Conclusion :

Ce projet GSOD est un package autonome qui permet de comprendre les bases de l'intégration de ROS2 avec Webots. Ce package inclura également l'implémentation pratique des concepts de ROS2 tels que les sujets, les services, les nœuds, les fichiers de lancement, l'éditeur, l'abonné, les différents outils de débogage et l'utilisation de VS code. Vous allez également travailler sur des projets sur des sujets avancés, comme SLAM et OpenCV. Cela donnera aux spectateurs un paradigme d'un travail de bout en bout à l'aide de ROS2 et de Webots.