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 de pâte
Nom du projet:
Série de tutoriels vidéo pour Webots (intégration à ROS2)
Durée du projet:
Durée standard (3 mois)

Project description

Leçons:

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 seront en mesure de créer des nœuds ROS2 de base, d'interagir avec les Webots et de travailler en toute confiance sur des projets avancés liés aux robots mobiles. Cette série de vidéos fournit également de bonnes explications théoriques de plusieurs concepts vitaux dans le domaine de la robotique.

Informations sur 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 la configuration de l'espace de travail ROS sur 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 inciter les spectatrices et 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 les Webots Principes de base de l'enseignement des services ROS expliquant la différence entre les services ROS et ROS2 Deuxièmement, 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 sur Webots à l'aide d'éditeurs ROS2 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. Obtenir des commentaires du robot avec un abonné ROS2. Dans cette vidéo, nous allons nous abonner aux relevés des capteurs de distance et arrêter le robot en cas de collision. Il s'agira donc d'un nœud permettant d'éviter les obstacles avec la publication de messages interactifs.

  6. Robots maîtres(éditeur) esclaves(abonnés) avec ROS2. Dans cette vidéo, nous allons contrôler un robot à l'aide d'un clavier et faire fuir un autre robot. Semblable au scénario suivant : Le voleur et les flics. [Ceci sera une continuation de 3, 4 et 5 vidéos]. Les spectateurs pourront ainsi tester la communication, et la simulation présentera des défauts en cas de problème avec la ROS.

  7. Configuration de Rviz (affichage d'une sortie de capteur différente). Dans cette vidéo, nous allons ajouter d'autres capteurs et publier leurs données sur Rviz. À la fin de cette vidéo, l'utilisateur pourra configurer Rviz (par exemple, en ajoutant 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, MRT_graph). Cette vidéo présente des fonctionnalités délibérées incorrectes sur quelques sujets, afin de vous aider à comprendre la technique de débogage. Nous suivrons un processus visant à afficher le graphe RCT et à identifier les sujets responsables du problème. Utiliser la commande "rostopic echo" pour vérifier si le sujet est bien publié, puis vérifier les informations sur rostopic pour identifier notre problème. Résolvez le problème et assurez-vous que le fonctionnement est normal.

  9. Vidéo de débogage(rqt_console, rqt_gui) Dans cette vidéo, les messages Ros(info, debug, erreur, etc.) seront utilisés 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 sur un sujet avancé: 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 cœur 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 suite de la 10e vidéo, dans cette vidéo, je vais apprendre à créer un fichier de lancement pour lancer tous les nœuds ensemble et examiner rqt_graph pour comprendre correctement les concepts du framework ROS. En fin de compte, nous enregistrerons la carte générée par le package à l'aide d'un serveur de cartes.

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

  13. Vidéos sur des sujets avancés: sur l'intégration d'OpenCV (détection de balises AR, package Ar_track_alvar) [Partie 2] Cette vidéo est une continuation de la 12e vidéo dans laquelle le flux d'images ci-dessus sera utilisé par le package et un thème de transformation entre le robot et le tag AR sera publié. Il pourra être visionné sur Rviz. Enfin, au fur et à mesure que nous déplaçons le robot, nous voyons différents tags placés et leur position changer dans Rviz et dans les messages rostopic.

Conclusion :

Ce projet GSOD est un package autonome qui permet 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 sujets, les services, les nœuds, les fichiers de lancement, l'éditeur, les abonnés, 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 complet utilisant ROS2 et Webots.