Projet Webots

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

Résumé du projet

Organisation Open Source:
Webots
Rédacteur technique:
Chaîne 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 prendre le meilleur départ possible avec Webots et leur fournira des solutions claires et détaillées pour réaliser des simulations spécifiques.

But :

À la fin de cette série, les utilisateurs pourront créer des nœuds ROS2 de base, interagir avec Webots et travailler en toute confiance sur des projets avancés liés aux robots mobiles. Cette série de vidéos fournira également de bonnes explications théoriques sur plusieurs concepts vitaux 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 bases de son fonctionnement. Deuxièmement, il inclura également la configuration de l'espace de travail ROS dans VS Code et la fonctionnalité des onglets de base dans VS Code.

  2. Exemple de base de ROS2 et Webots. Quelques exemples de ROS2 de Webots seront utilisés pour aider les spectateurs à comprendre ce qu'il est possible de faire si nous utilisons ROS2 avec Webots pour la simulation. Cela comprendra également les théories de base de la communication entre ROS2 et Webots.

  3. Utiliser les services ROS2 pour interagir avec Webots Enseignement des bases des services ROS expliquant la différence entre les services dans ROS et ROS2 Deuxièmement, nous proposons des tutoriels par étapes pour appeler des services et activer le sujet des capteurs pour les mesures et les actionneurs pour les mouvements.

  4. Contrôler le robot personnalisé avec l'éditeur ROS2. Apprendre à publier des messages à l'aide d'éditeurs ROS2 sur Webots. Nous pouvons mettre en œuvre un exemple de contrôle du mouvement des robots en publiant une sortie clavier dans un sujet qui peut ensuite être utilisé par les services ROS pour le mouvement dans Webots.

  5. Recueillez les commentaires d'un robot avec un abonné ROS2. Dans cette vidéo, nous allons nous abonner aux mesures relevées par les capteurs de distance et arrêter le robot s'il est sur le point d'entrer en collision. En gros, ce sera un nœud qui évite les obstacles avec la publication de messages interactifs.

  6. Robots Master(Publisher) Slave(Abonné) avec ROS2 Dans cette vidéo, nous allons contrôler un robot à l'aide d'un clavier et faire en sorte qu'un autre s'éloigne du robot manuel. Semblable à un scénario de Voleur et Flic :) [Ceci est une continuation de 3, 4 et 5 vidéos]. Cela permettra aux spectateurs de tester la communication et générera des défauts dans la simulation en cas de problème dans la ROS.

  7. Configurer Rviz (Afficher différentes sorties de capteurs). Dans cette vidéo, nous allons ajouter d'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, Camera, etc.pour la visualisation), ce qui enregistrera la configuration et générera la configuration enregistrée la prochaine fois.

  8. Vidéo de débogage (écho Rostopic, Informations Rostopic, RNT_graph). Cette vidéo présente les fonctionnalités incorrectes de certains sujets pour vous aider à comprendre la technique de débogage. Nous suivrons un processus d'affichage du graphique de la RQT et nous identifions les sujets responsables du problème. Utilisation de la commande "rostopic echo" pour vérifier si le sujet est en ligne et, à la fin, en vérifiant les informations sur le sujet pour identifier notre problème. Résolvez le problème et assurez-vous de disposer d'un fonctionnement normal.

  9. Vidéo de débogage(rqt_console, rqt_gui) Dans cette vidéo, nous utiliserons les messages Ros(info, debug, error, etc.) dans le nœud, ainsi que l'utilisation de rqt_console. Cette vidéo sera également étendue pour utiliser rqt_gui afin de publier des messages factices afin d'obtenir la fonctionnalité requise. Il peut s'agir d'une autre approche pour corriger certains bugs.

  10. Vidéos complémentaires sur l'intégration de la bibliothèque SLAM dans un environnement inconnu (boîte à outils SLAM ou LaMa) [Partie 1] Cette vidéo commencera par la théorie de base des problèmes SLAM. Nous utiliserons ensuite l'infrastructure des concepts enseignés ci-dessus pour comprendre le nœud du projet. Enfin, nous allons générer les nœuds nécessaires via le terminal et voir la sortie du mappage dans Rviz.

  11. Vidéos thématiques avancées: sur l'intégration de la bibliothèque SLAM dans un environnement inconnu (boîte à outils SLAM ou LaMa) [Partie 2] Dans la continuité de la 10e vidéo, je vais vous expliquer comment créer un fichier de lancement pour lancer tous les nœuds ensemble et examiner rqt_graph pour bien comprendre les concepts du framework ROS. À la fin, nous enregistrerons la carte générée par le package à l'aide d'un serveur de cartes.

  12. Vidéos thématiques avancées: sur l'intégration d'OpenCV (détection de balises RA, paquet Ar_track_alvar) [Partie 1] La vidéo commencera par expliquer ce que sont les balises RA et leur signification dans la localisation par ordinateur. Ensuite, nous nous appuierons sur le fonctionnement du paquet Alvar pour le suivi RA. Cela aidera à fournir une perspective globale du projet. Enfin, le service permettra d'activer un flux d'images vidéo de Webots vers un sujet ROS.

  13. Vidéos thématiques avancées: sur l'intégration d'OpenCV (détection de balises RA, package Ar_track_alvar) [Partie 2] Cette vidéo fait suite à la 12e vidéo dans laquelle le flux d'images ci-dessus sera utilisé par le package. Un thème de transformation entre le robot et le tag RA sera publié, et sera visible sur Rviz. Enfin, au fur et à mesure que nous déplacerons le robot, nous voyons différents tags se trouvant et leur position changer dans Rviz et dans les messages rostopic.

Conclusion :

Ce projet GSOD est un package autonome permettant d'obtenir une compréhension de base de l'intégration de ROS2 avec Webots. Ce package comprend également une implémentation pratique des concepts de ROS2 tels que les thèmes, les services, les nœuds, les fichiers de lancement, l'éditeur, les abonnés, les différents outils de débogage et l'utilisation de VS Code. Cela impliquera également des projets thématiques avancés tels que SLAM et OpenCV. Les spectateurs bénéficieront ainsi d'un paradigme de travail de bout en bout utilisant ROS2 et Webots.