Auf dieser Seite finden Sie die Details zu einem Projekt für technisches Schreiben, das für Google Season of Docs angenommen wurde.
Projektzusammenfassung
- Open-Source-Organisation:
- Webots
- Technischer Redakteur:
- Weicher Illusionskanal
- Projektname:
- Videoanleitungsreihe für Webots (Integration mit ROS2)
- Projektdauer:
- Standardlänge (3 Monate)
Projektbeschreibung
Erkenntnisse:
Diese Videoanleitungsreihe bietet Neulingen den bestmöglichen Einstieg in Webots und zeigt ihnen Schritt für Schritt, wie sie bestimmte Simulationen erstellen.
Ziel:
Am Ende dieser Reihe werden die Betrachter in der Lage sein, grundlegende ROS2-Knoten zu erstellen und mit Webots zu interagieren. Außerdem werden sie das Vertrauen gewinnen, an fortgeschrittenen Projekten in mobilen Robotern zu arbeiten. In dieser Videoreihe werden auch gute theoretische Erklärungen einiger wichtiger Konzepte im Bereich der Robotik erläutert.
Details zur Videoreihe:
Installation von ROS 2 und Einrichtung eines Repositories in Visual Studio Code Dazu gehört die Befehlsbasierte Installation von ROS2 und die Grundlagen seiner Funktionsweise. Außerdem wird die Einrichtung des ROS-Arbeitsbereichs in VS Code und die Funktionalität der grundlegenden Tabs in VS Code behandelt.
Einfaches ROS2- und Webots-Beispiel Anhand einiger Webots ROS2-Beispiele wird den Zuschauern veranschaulicht, was mit ROS2 und Webots für Simulationen möglich ist. Dazu gehören auch grundlegende Theorien zur Kommunikation zwischen ROS2 und Webots.
ROS2-Dienste für die Interaktion mit Webots verwenden Grundlagen des ROS-Dienstes vermitteln, in dem der Unterschied zwischen Diensten in ROS und ROS2 erläutert wird. Zweitens: Schritt-für-Schritt-Anleitungen zum Aufrufen von Diensten und zum Aktivieren des Sensorthemas für Messwerte und Aktoren für Bewegungen.
Benutzerdefinierten Roboter mit ROS2 Publisher steuern Informationen zum Veröffentlichen von Nachrichten mit ROS2-Publishern in Webots Wir können ein Beispiel für die Steuerung von Roboterbewegungen implementieren, indem wir die Tastaturausgabe in einem Thema veröffentlichen, das dann von ROS-Diensten für die Bewegung in Webots verwendet werden kann.
Mit ROS2 Subscriber Feedback vom Roboter erhalten In diesem Video abonnieren wir die Sensormessungen der Entfernungssensoren und stoppen den Roboter, wenn er kurz vor einer Kollision steht. Im Grunde ist dies ein Knoten zur Vermeidung von Hindernissen, bei dem interaktive Nachrichten veröffentlicht werden.
Master-(Publisher)- und Slave-(Subscriber)-Roboter mit ROS2 In diesem Video steuern wir einen Roboter mit einem Keyboard und lassen einen anderen vor dem manuellen Roboter davonlaufen. Ähnlich wie bei einem Szenario mit Dieben und Polizisten :) [Dies ist eine Fortsetzung der Videos 3, 4 und 5.] So können Betrachter die Kommunikation testen und erhalten Fehler in der Simulation, wenn ein Problem in ROS auftritt.
Rviz einrichten (Unterschiedliche Sensorausgabe anzeigen) In diesem Video fügen wir einige weitere Sensoren hinzu und veröffentlichen ihre Daten in Rviz. Am Ende dieses Videos kann der Zuschauer Rviz einrichten (d. h. Sensoren wie Lidar, Kamera usw. zur Visualisierung hinzufügen), die Konfiguration speichern und die gespeicherte Konfiguration beim nächsten Mal erstellen.
Video zur Fehlerbehebung (Rostopic echo, Rostopic info, RQT_graph). In diesem Video werden einige Themen absichtlich falsch dargestellt, um die Technik der Fehlerbehebung zu veranschaulichen. Wir sehen uns das RQT-Diagramm an und ermitteln, welche Themen für das Problem verantwortlich sind. Mit rostopic echo prüfen, ob das Thema veröffentlicht wird, und am Ende mit rostopic info nach dem Problem suchen Das Problem beheben und die normale Funktion wiederherstellen.
Video zum Debuggen(rqt_console, rqt_gui) In diesem Video werden Ros-Nachrichten(z. B. „info“, „debug“, „error“) im Knoten verwendet und die Verwendung von rqt_console wird erläutert. Dieses Video wird auch erweitert, um mit rqt_gui Dummy-Nachrichten zu veröffentlichen, um die erforderliche Funktionalität zu erhalten. Dies kann eine alternative Methode zur Behebung einiger Fehler sein.
Erweiterte Themenvideos: Integration der SLAM-Bibliothek in einer unbekannten Umgebung (SLAM-Toolbox oder LaMa) [Teil 1] Dieses Video beginnt mit der grundlegenden Theorie von SLAM-Problemen. Anschließend verwenden wir die oben beschriebenen Konzepte zur Infrastruktur, um den Kern des Projekts zu verstehen. Zum Schluss erzeugen wir die erforderlichen Knoten über das Terminal und sehen uns die Zuordnungsausgabe in Rviz an.
Videos zu fortgeschrittenen Themen: Integration der SLAM-Bibliothek in einer unbekannten Umgebung (SLAM-Toolbox oder LaMa) [Teil 2] In diesem Video zeige ich Ihnen als Fortsetzung des 10. Videos, wie Sie eine Startdatei erstellen, um alle Knoten gleichzeitig zu starten, und rqt_graph untersuchen, um die Konzepte im ROS-Framework besser zu verstehen. Am Ende speichern wir die vom Paket generierte Karte mit einem Kartenserver.
Videos zu fortgeschrittenen Themen: Integration von OpenCV (AR-Tag-Erkennung, Ar_track_alvar-Paket) [Teil 1] Im Video erfahren Sie, was AR-Tags sind und welche Bedeutung sie bei der Lokalisierung mithilfe von Computer Vision haben. Anschließend gehen wir darauf ein, wie das AR-Track-Paket Alvar funktioniert. So erhalten Sie einen Überblick über das Projekt. Schließlich wird ein Dienst eingerichtet, um einen Stream von Videoframes von Webots an ein ROS-Thema zu ermöglichen.
Videos zu fortgeschrittenen Themen: Integration von OpenCV (AR-Tag-Erkennung, Ar_track_alvar-Paket) [Teil 2] In diesem Video wird das 12. Video fortgesetzt. Dabei wird der oben genannte Bildstream vom Paket verwendet und ein Transformationsthema zwischen dem Roboter und dem AR-Tag veröffentlicht, das sich in Rviz ansehen lässt. Wenn wir den Roboter bewegen, sehen wir, dass verschiedene Tags gefunden werden und ihre Position sich in Rviz und in rostopic-Nachrichten ändert.
Fazit:
Dieses GSOD-Projekt ist ein eigenständiges Paket, das ein grundlegendes Verständnis der Integration von ROS2 mit Webots ermöglicht. Dieses Paket enthält auch eine praktische Implementierung der Konzepte in ROS2 wie Themen, Dienste, Knoten, Startdateien, Publisher, Abonnenten, verschiedene Debugging-Tools und die Verwendung von VS Code. Dazu gehören auch Projekte zu fortgeschrittenen Themen wie SLAM und OpenCV. So erhalten die Zuschauer einen Eindruck von der End-to-End-Arbeit mit ROS2 und Webots.