Webots-Projekt

Diese Seite enthält die Details eines Projekts für technisches Schreiben, das für die Google-Staffel von Google Docs akzeptiert wurde.

Projektzusammenfassung

Open-Source-Organisation:
Webots
Technischer Redakteur:
Kanal mit sanfter Illusion
Projektname:
Videotutorials für Webots (Integration in ROS2)
Projektdauer:
Standarddauer (3 Monate)

Projektbeschreibung

Erkenntnisse:

In dieser Video-Tutorial-Reihe erhalten neue Nutzer die besten Voraussetzungen für einen optimalen Start mit Webots und sie bietet Zuschauern anhand klarer Schritt-für-Schritt-Lösungen, mit denen sich bestimmte Simulationen erstellen lassen.

Ziel:

Am Ende dieser Reihe sind die Zuschauer in der Lage, grundlegende ROS2-Knoten zu erstellen, mit Webots zu interagieren und sich zutrauen, an komplexen Projekten in mobilen Robotern zu arbeiten. In dieser Videoreihe werden außerdem einige wichtige Konzepte der Robotik theoretisch erklärt.

Details zur Videoreihe:

  1. ROS 2-Installation und Einrichten eines Repositorys in Visual Studio Code Dies umfasst die befehlsspezifische Installation von ROS2 und die Grundlagen der Funktionsweise. Zweitens umfasst sie auch die Einrichtung des ROS-Arbeitsbereichs für VS-Code und die Funktionalität der grundlegenden Tabs in VS-Code.

  2. Grundlegendes ROS2- und Webots-Beispiel. Anhand einiger Beispiele von Webots ROS2 können die Zuschauer verstehen, was Wunder bewirken können, wenn wir ROS2 mit Webots für die Simulation verwenden. Dazu gehören auch grundlegende Kommunikationstheorien zwischen ROS2 und Webots.

  3. Verwendung von ROS2-Diensten zur Interaktion mit Webots Unterrichtsgrundlagen zum ROS-Dienst, in denen der Unterschied zwischen den Diensten in ROS und ROS2 erläutert wird Zweitens werden Schritt-für-Schritt-Anleitungen zum Aufrufen von Diensten und Aktivieren des Sensorthemas für Messungen und Bedienelemente für Bewegungen gezeigt.

  4. Steuern Sie einen benutzerdefinierten Roboter mit ROS2 Publisher. Sie lernen, wie Nachrichten mit ROS2-Publishern bei Webots veröffentlicht werden. Wir können ein Beispiel für die Steuerung der Bewegung von Robotern implementieren, indem wir die Tastaturausgabe zu einem Thema veröffentlichen, das dann von ROS-Diensten für Bewegungen in Webots verwendet werden kann.

  5. Feedback von Robot mit ROS2-Abonnenten erhalten In diesem Video werden die Sensordaten der Abstandssensoren aufgezeichnet und der Roboter angehalten, wenn er kurz davor steht, zu kollidieren. Im Grunde ist dies ein Knoten zur Hindernisvermeidung mit interaktiven Meldungen, die veröffentlicht werden.

  6. Master(Publisher) Slave(Abonnenten)-Robots mit ROS2. In diesem Video steuern wir einen Roboter mit einer Tastatur und bringen einen anderen Roboter dazu, vor dem manuellen Roboter wegzulaufen. Ähnlich wie im Szenario „Dieb und Cops“ :) [Dies ist eine Fortsetzung von 3,4,5 Videos]. Auf diese Weise können die Zuschauer die Kommunikation testen. Wenn ein Problem in ROS auftritt, können in der Simulation Fehler auftreten.

  7. Einrichten von Rviz (Anzeige unterschiedlicher Sensorausgabe). In diesem Video fügen wir einige weitere Sensoren hinzu und veröffentlichen deren Daten auf 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 beim nächsten Mal eine gespeicherte Konfiguration erzeugen.

  8. Video zur Fehlerbehebung (Rostopic-Echo, Rostopic-Informationen, RQT_graph). In diesem Video wird die absichtliche fehlerhafte Funktionalität einiger Themen gezeigt, um die Technik der Fehlerbehebung besser zu verstehen. Wir werden einen Prozess verfolgen, bei dem Sie die RQT-Grafik ansehen und wissen, welche Themen für das Problem verantwortlich sind. Prüfen Sie mithilfe von Rostopic-Echo, ob das Thema veröffentlicht wird, und prüfen Sie am Ende die Rostopic-Informationen, um unser Problem zu ermitteln. Beheben Sie das Problem und funktionieren wieder normal.

  9. Video zur Fehlerbehebung(rqt_console, rqt_gui) In diesem Video werden Ros-Nachrichten(info, debug, error, etc) im Knoten verwendet und die Verwendung von „rqt_console“ erläutert. Dieses Video wird auch so erweitert, dass rqt_gui zur Veröffentlichung von Dummy-Nachrichten verwendet wird, um die erforderliche Funktionalität zu erhalten. Dies kann eine alternative Methode sein, um einige Fehler zu beheben.

  10. Videos für Fortgeschrittene: Über die Integration der SLAM-Bibliothek in einer unbekannten Umgebung (SLAM Toolbox oder LaMa) [Teil 1] Dieses Video beginnt mit der grundlegenden Theorie der SLAM-Probleme. Anschließend verwenden wir die oben erläuterten Konzepte zur Infrastruktur, um den Kern des Projekts zu verstehen. Schließlich rufen wir die erforderlichen Knoten über das Terminal auf und sehen die Kartenausgabe in Rviz.

  11. Videos für Fortgeschrittene: Über die Integration der SLAM-Bibliothek in einer unbekannten Umgebung (SLAM Toolbox oder LaMa) [Teil 2] In Fortsetzung des 10. Videos zeige ich Ihnen, wie Sie eine Startdatei erstellen, um alle Knoten zusammen zu starten, und „rqt_graph“ prüfen, um die Konzepte im ROS-Framework richtig zu verstehen. Zum Schluss speichern wir die vom Paket generierte Karte mithilfe eines Kartenservers.

  12. Videos für Fortgeschrittene: Zur Integration von OpenCV (AR-Tag-Erkennung, Ar_track_alvar-Paket) [Teil 1] Zuerst wird erläutert, was AR-Tags sind und welche Bedeutung die Lokalisierung mithilfe von maschinellem Sehen für sie hat. Anschließend werden wir darauf aufbauen, wie das Alvar-Paket für die AR-Track-Funktion funktioniert. Dies wird dazu beitragen, eine Gesamtperspektive des Projekts zu vermitteln. Schließlich wird ein Service eingerichtet, um einen Stream von Videoframes von Webots zu einem ROS-Thema zu ermöglichen.

  13. Videos für Fortgeschrittene: Zur Integration von OpenCV (AR-Tag-Erkennung, Ar_track_alvar-Paket) [Teil 2] Dieses Video ist eine Fortsetzung des 12. Videos, in dem der obige Bildstream vom Paket verwendet wird und ein Thema der Transformation zwischen dem Robot und dem AR-Tag veröffentlicht wird, das auf Rviz angesehen werden kann. Wenn wir schließlich den Roboter bewegen, sehen wir verschiedene Tags und ihre Position in Rviz und in Rostopic-Nachrichten.

Fazit:

Dieses GSOD-Projekt ist ein eigenständiges Paket, das grundlegende Kenntnisse über die Integration von ROS2 in Webots vermittelt. Dieses Paket wird auch die praktische Implementierung der Konzepte in ROS2 wie Themen, Dienste, Knoten, Startdateien, Publisher, Abonnent, verschiedene Debugging-Tools und die Verwendung von VS-Code enthalten. Dazu gehören auch fortgeschrittene Themenprojekte wie SLAM und OpenCV. So erhalten die Zuschauer eine beispielhafte End-to-End-Arbeit mit ROS2 und Webots.