Présentations du deuxième Meetup ROS sur les thèmes: Gazebo et outils pour robots


Le 18 avril, le prochain Meetup ROS en ligne aura lieu , et nous continuons à publier des enregistrements des rapports du dernier Meetup ROS, qui a eu lieu le 30 novembre 2019 à Moscou et a réuni plus de 200 amateurs ROS qui ont partagé leur expérience et leurs connaissances.

Dans cette publication, vous pouvez vous familiariser avec une sélection de discours sur le simulateur de robotique
Gazebo , le comportement du robot et les jeux de données.

Alors allons-y!

Utilisation du Gazebo Simulator en robotique


Auteur du rapport: Alexander Bogoslovsky


Diapositives de présentation Parfois, il n'est pas possible d'interagir avec le robot «en direct», auquel cas vous devez vous tourner vers des simulateurs. Et s'il s'agit de ROS, alors tout d'abord du simulateur Gazebo, car il a été initialement créé pour être utilisé avec ROS. Gazebo organise de nombreuses compétitions de robotique, y compris dans des organisations éminentes telles que la DARPA et la NASA. Ce simulateur aidera à mettre en œuvre presque tous les robots à semi-conducteurs, tels qu'un humanoïde, un robot à roues, un hélicoptère, un robot sous-marin, etc.

Les robots pour Gazebo sont créés au format URDF (Unified Robotic Description Format) - balisage XML qui décrit les liens du robot et les nœuds de communication entre eux. Comme il s'agit d'un format universel, qui est également nécessaire pour positionner de vrais robots sur ROS (par exemple, les packages robot_state_publisher et joint_state_publisher), il n'était pas prévu à l'origine de décrire le robot entier. Par conséquent, lors de l'importation d'un modèle dans Gazebo, le format URDF est converti en SDF (Simulation Description Format), qui peut déjà contenir toutes les informations nécessaires à la modélisation, y compris les matériaux de surface, la couleur, les capteurs, etc. Le monde de la simulation, dans lequel nous plaçons davantage le robot, a essentiellement le même format SDF. Et les extensions des noms de ces fichiers pour décrire le monde ont la forme ".world".

Gazebo doit sa polyvalence à une large gamme de plugins créés par la communauté, ainsi qu'à une source entièrement ouverte. Lorsque les tâches deviennent trop spécifiques, vous pouvez écrire votre propre plugin basé sur l'API fournie pour les terminer. Une grande communauté d'utilisateurs aidera par écrit, ainsi qu'un grand nombre d'articles éducatifs sur Gazebo sur le site officiel du simulateur. Mais il est loin d'être toujours nécessaire d'écrire votre propre plugin - les fonctionnalités de base du simulateur sont très étendues.

Ce rapport passe en revue les fonctionnalités et les caractéristiques de Gazebo, ainsi que ses forces et ses faiblesses, ce qui peut aider à décider de l'utilisation de ce simulateur dans votre projet.

Arbre de comportement comme moyen de définir un script d'action de robot


Auteur du rapport: Evgeny Safronov

Diapositives de présentation
Dans de nombreux cas, le comportement du robot doit être non seulement complexe et diversifié, mais aussi aussi prévisible que possible (de préférence 100%). Les modèles de comportement statistique basés sur les méthodes ML permettent de simuler des actions très complexes, mais il est encore difficile de garantir la sécurité et la transparence du comportement du robot. Dans de tels cas, les ingénieurs ont recours à diverses machines d'état. Une alternative à eux est les arbres de comportement / arbres BT, qui sont venus à la robotique de l'industrie du jeu.

Dans cette vidéo, nous commencerons par les bases de l'arbre de comportement - considérons les types de nœuds et de feuilles, les règles de traversée (d'exécution) de l'arbre, analysons les deux principaux styles de création de BT - impératifs et réactifs, et assurez-vous qu'ils sont rarement utilisés dans leur forme pure. Nous discuterons de ce que BT peut être du point de vue de l'apprentissage automatique et de la façon dont les méthodes ML peuvent être intégrées dans une arborescence créée à la main, nous verrons que les modèles de nœuds, comme les classes dans la POO, aident à encapsuler le comportement, à augmenter la lisibilité de la logique d'arbre et à créer des bibliothèques distinctes. Enfin - un bref aperçu des cadres prêts à l'emploi pour travailler avec ROS. Il n'y a pas de leader clair, tout le monde a des approches différentes sur de nombreux aspects clés, de la sémantique de base à l'interaction avec ROS. Cependant, vous pouvez maintenant télécharger et essayer de connecter BT à votre robot / simulateur!

Qu'y a-t-il dans ton sac? Comment travailler avec des fichiers bag et ne pas se noyer dans les données


Auteur du rapport: Oleg Shipitko

Diapositives de présentation
Ce n'est pas un secret que les fichiers bag sont le principal format d'enregistrement des données dans ROS. La plupart des développeurs qui ont rencontré au moins une fois ROS savent ce que sont les fichiers bag et comment travailler avec eux. Cependant, tout le monde n'a pas pensé à des questions telles que:
  • Comment est le dossier du sac à l'intérieur?
  • comment réduire son volume?
  • Que puis-je faire d'autre avec les fichiers bag en plus de l'enregistrement et de la lecture?
  • Que dois-je faire si le type de l'un des messages a changé, mais je ne veux pas éjecter tous les fichiers enregistrés précédemment?

Les réponses à ces questions et à d'autres sont dédiées à notre présentation.

Dans notre discours, nous avons essayé de répondre à chacun d'eux.
Le rapport est divisé en plusieurs parties. Au début, le format de stockage des fichiers de sacs et leur structure interne est considéré.

La deuxième partie du rapport traite des caractéristiques de l'enregistrement des fichiers. Les arguments non évidents et rarement utilisés de la commande rosbag record sont mis en évidence. Les fonctionnalités d'écriture dans un fichier image de sac sont prises en compte. Les algorithmes utilisés pour compresser les fichiers bag sont décrits.

Dans la partie consacrée à la simplicité et à l'inspection des fichiers enregistrés, des commandes sont envisagées qui vous permettent de visualiser le contenu d'un fichier bag, ainsi que de découvrir les rubriques qu'il contient. Une attention particulière est portée à l'outil d'inspection de fichiers rqt_bag et à ses principales fonctionnalités.

Les données enregistrées dans les fichiers bag peuvent être utilisées pour tester différents algorithmes de classification. Dans ce cas, la tâche de balisage des données se pose - faire correspondre l'ensemble de données avec une certaine balise qui définit la classe qui est correcte pour l'ensemble de données. Comme exemple d'outil pour résoudre un tel problème, le rapport prend en compte le package rosbag-coulissant-fenêtres-annotateur, qui vous permet d'utiliser des données de sujets visuels comme base pour annoter des données numériques. Dans le même temps, les classes nécessaires au balisage sont chargées à partir du fichier json de l'utilisateur, ce qui rend le package configurable pour de nombreuses tâches de balisage.

Lors du stockage d'un grand nombre de fichiers bag, la tâche de trouver rapidement un fichier répondant à certains critères se pose. Pour un robot mobile, de tels critères peuvent être, par exemple, une météo spécifique, une route de mouvement, la présence / absence d'un événement spécifique dans un fichier (par exemple, une personne bloquant le chemin d'un robot), etc. Pour rechercher rapidement un fichier qui répond à l'ensemble de critères requis, les fichiers peuvent être annotés - mappez à chaque fichier une certaine quantité compressée d'informations contenant les données nécessaires à une recherche rapide. Le rapport traite de l'approche de l'annotation des fichiers de sacs, utilisée dans la société «Visilelect Service», - mappant chaque image de fichier de sacs, vous permettant de visualiser et de comparer rapidement les informations sur de nombreux fichiers.

La dernière partie du rapport est consacrée à une vue d'ensemble des outils standard de migration des fichiers bag vers ROS. La migration est nécessaire si un ou plusieurs messages du fichier ont changé, mais que vous souhaitez enregistrer et utiliser des fichiers bag enregistrés précédemment. Dans ce cas, vous pouvez remplacer les anciens fichiers en ajoutant de nouveaux champs à l'ancien message (ou en supprimant ceux existants). Pour simplifier ce processus, ROS fournit des outils standard qui sont brièvement traités dans le rapport.

Conclusion


Bientôt, le 18 avril, le prochain ROS MeetUp aura lieu, seulement maintenant nous le dirigerons sous la forme d'un webinaire en ligne. Nous invitons tous nos collègues à y assister en tant qu'auditeurs et conférenciers. La participation est gratuite, le nombre de places est limité, inscrivez-vous ici .
Et nous organiserons également un concours de packages open-source sur ROS!
Et nous vous rappelons que vous pouvez trouver des développeurs ROS aux vues similaires en Russie, découvrez les dernières nouvelles ROS dans notre communauté de télégrammes ROS Russie .

Si vous souhaitez développer des robots, des modules robotiques ou des composants logiciels, si vous souhaitez montrer vos développements ou simplement discuter avec des personnes partageant les mêmes idées, bienvenue à notre prochain Meetup ROS, qui se tiendra le 18 avril en format en ligne !

All Articles