Wie baut man einen ROS -Roboter??
Damit das System gut funktioniert und in der Lage ist, das zu befolgen, was das Gerät in bestimmten Situationen tun wird, benötigen Sie Standarddefinitionen für jeden Teil. In ROS sind diese Komponenten Knoten, Dienste und Themen. Kurz gesagt, Sie erstellen einen Knoten für jeden Hauptbedarf. Zum Beispiel ist Bewegung ein Knoten, Vision ist ein weiterer Knoten und die Planung ist ein dritter Knoten. Die Knoten enthalten Dienste, mit denen Informationen an andere Knoten gesendet werden können, und Dienste können auch Anfragen und Antworten behandeln. Ein Thema kann Werte an viele andere Knoten übertragen. Das Erreichen dieser Begriffe in den Griff bekommen und wie Sie sie verwenden sollten, ist der erste Schlüssel zur Beherrschung der ROS2 -Entwicklung.
Navigation mit Turtlessim nachahmen
Wenn Sie in ROS anfangen, werden Sie wahrscheinlich einen Roboter kaufen, der in Ihrem Haus herumläuft oder rollt. Dazu muss der Roboter einen Blick auf den Bereich haben, in dem er navigiert. Dazu können Sie eine kartenähnliche Anwendung verwenden, um das Verhalten Ihres Roboters zu testen. Die Designer hinter dem Turtlebot haben eine Anwendung mit dem Namen Turtlessim ausgedacht, die dies für Sie tun kann. Wie bei allen anderen Teilen von ROS2 können Sie diese Tools mit einem Unterkommando aus der Befehlszeile starten. Sie haben dann Aktivitäten für verschiedene Funktionen. Der erste Teil besteht darin, das Fenster zu starten, in dem Sie die Simulation sehen können, und dies wird als Knoten bezeichnet.
$ ROS2 Run Turtlesim Turtlesimnode
Ein Fenster erscheint mit einer Schildkröte in der Mitte. Um die Schildkröte mit Ihrer Tastatur zu steuern, müssen Sie einen zweiten Befehl ausführen, der offen bleibt und bestimmte Tasten weiter drückt. Dies ist ein zweiter Knoten, der mit dem ersten kommuniziert.
$ ROS2 Run Turtlessim TurtleLeopkey
Jetzt können Sie die Schildkröte bewegen und sehen, wie sie sich bewegt. Sie können auch Fehler bekommen, z. B. das Schlagen der Wand. Diese Fehler werden im Terminal angezeigt, an dem der Turtlesimnode ausgeführt wird. Dies ist die einfachste Verwendung des Simulationsmoduls. Sie können auch angegebene Formen laufen, ein Quadrat wird bereitgestellt und mehr Schildkröten hinzufügen. Um weitere Schildkröten hinzuzufügen, können Sie den Befehl rqt verwenden.
Dienste mit RQT definieren
Das RQT -Programm bietet Dienste für die Simulation. Das Q steht für QT, was zum Umgang mit der Schnittstelle dient. In diesem Beispiel führen Sie eine neue Schildkröte hervor.
$ rqt
Die RQT -Schnittstelle ist eine lange Liste von Diensten für die Simulation, die Sie ausführen. Um eine neue Schildkröte zu erstellen, wählen Sie das Dropdown-Menü "Spawn" aus, geben Sie der Schildkröte einen neuen Namen und klicken Sie auf "Anruf".'Sie werden sofort eine neue Schildkröte neben dem ersten sehen. Wenn Sie auf das Dropdown-Menü "Spawn" klicken, sehen Sie auch eine neue Reihe von Einträgen in Bezug.
Sie können auch Befehle neu gestalten, um die neue Schildkröte auszuführen. Der Befehl dazu ist wie folgt:
$ ROS2 Run Turtlesim TurtleLeteleopkey -ROS -Args -remap Turtle1/Cmdvel: = Turtle2/Cmdvel
Legen Sie den Namen "Turtle2" nach Ihrer früheren Wahl ein.
Fortgeschrittene Besichtigung mit RVIZ
Verwenden Sie RVIZ für fortgeschrittenere und 3D -Anzeigen. Dieses Paket simuliert alle Knoten in Ihrem Design.
$ ROS2 RUN RVIZ2 RVIZ2
In der grafischen Schnittstelle haben Sie drei Panels mit der Aussicht in der Mitte. Sie können Umgebungen über das Panel "Anzeigen" erstellen. Sie können Wände, Windkräfte und andere physikalische Eigenschaften hinzufügen. Hier fügen Sie auch Ihre Roboter hinzu.
Seien Sie sich bewusst, dass Sie vor diesem Punkt verstehen müssen, wie das URDF -Format verwendet wird. Das URDF -Format definiert einen Roboter, sodass Sie Körper, Arme, Beine und vor allem Kollisionszonen einstellen können. Die Kollisionszonen sind vorhanden, damit die Simulation entscheiden kann, ob der Roboter kollidiert ist.
Das Erlernen eines Roboters im URDF-Format ist ein großes Projekt. Verwenden Sie daher einen vorhandenen Open-Source-Code, um mit den Emulatoren zu experimentieren.
Simulieren Sie die Physik mit Pavillon
Im Pavillon können Sie die Physik der Umgebung, die Ihren Roboter umgibt, simulieren. Gavebo ist ein Komplementprogramm, das zusammen mit RVIZ gut funktioniert. Mit Pavillon können Sie sehen, was tatsächlich passiert. Mit RVIZ verfolgen Sie, was der Roboter erkennt. Wenn Ihre Software eine nicht vorhandene Wand erkennt, zeigt Gavebo leer und Rviz zeigt, wo in Ihrem Code die Wand erstellt wurde.
Abschluss
Simulation Ihres Roboters und seiner Umgebungen ist erforderlich, um Fehler zu finden und die erforderlichen Verbesserungen des Betriebs Ihres Roboters zu erhalten, bevor Sie ihn in freier Wildbahn herausbringen. Dies ist ein langwieriger Prozess, der lange nach dem Testen des Bots in kontrollierten Umgebungen und im wirklichen Leben fortgesetzt wird. Mit angemessenem Wissen über die Infrastruktur der internen Systeme Ihres Roboters können Sie verstehen, was Sie richtig und falsch gemacht haben. Lernen Sie schnell, alle Fehler zu schätzen, die Sie finden, da Sie Ihr System auf lange Sicht robuster machen können.