Robotik

So planen Sie einen einfachen Roboter mit Linux

So planen Sie einen einfachen Roboter mit Linux
Sobald Sie ROS installiert haben, möchten Sie vielleicht einen Roboter bauen. Ein guter Weg, um in diesem Projekt erfolgreich zu sein, besteht darin, zu planen, was Sie tun möchten. In diesem Fall kommt ROS zur Rettung. Mit ROS können Sie das Gebaute einrichten und das Ganze visualisieren. Bei der Arbeit mit Robotern gibt es viele Szenarien, die Sie möglicherweise berücksichtigen müssen. Der Roboter muss mit der Umgebung interagieren, z. B. dem Sofa ausweichen und den Weg aus der Küche zurückfinden. Der Roboter sollte auch Arme und Beine haben, wenn Ihre Bedürfnisse es erfordern. All dies können Sie mit ROS simulieren, und für den Coding-Teil können Sie auch die Interna Ihres Systems simulieren.

Wie baut man einen ROS-Roboter??

Damit das System gut funktioniert und Sie verfolgen können, was das Gerät in bestimmten Situationen tut, benötigen Sie Standarddefinitionen für jedes Teil. In ROS sind diese Komponenten Knoten, Dienste und Themen. Kurz gesagt, Sie erstellen einen Knoten für jeden Hauptbedarf. Bewegung ist zum Beispiel ein Knoten, Vision ist ein anderer Knoten und Planung ist ein dritter Knoten. Die Knoten enthalten Dienste, die Informationen an andere Knoten senden können, und Dienste können auch Anfragen und Antworten verarbeiten. Ein Thema kann Werte an viele andere Knoten senden. Sich mit diesen Begriffen auseinanderzusetzen und wie Sie sie verwenden sollten, ist der erste Schlüssel zur Beherrschung der ROS2-Entwicklung.

Emulation der Navigation mit Turtlesim

Wenn Sie mit ROS beginnen, werden Sie wahrscheinlich einen Roboter kaufen, der in Ihrem Haus herumläuft oder rollt. Dazu muss der Roboter den Bereich im Blick 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 namens Turtlesim entwickelt, die dies für Sie erledigen kann. Wie bei allen anderen Teilen von ROS2 können Sie diese Tools mit einem Unterbefehl von der Befehlszeile aus 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

Es erscheint ein Fenster 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 geöffnet bleibt und bestimmte Tasten gedrückt halten. Dies ist ein zweiter Knoten, der mit dem ersten kommuniziert.

$ ros2 run Turtlesim Turtleteleopkey

Jetzt können Sie die Schildkröte bewegen und sehen, wie sie sich bewegt. Es können auch Fehler auftreten, z. B. das Aufprallen gegen die Wand. Diese Fehler werden im Terminal angezeigt, in dem der Turtlesimnode ausgeführt wird. Dies ist die einfachste Verwendung des Simulationsmoduls. Sie können auch bestimmte Formen ausführen, ein Quadrat wird bereitgestellt und weitere Schildkröten hinzufügen add. 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 für den Umgang mit der Schnittstelle steht. In diesem Beispiel laichst du eine neue Schildkröte.

$ 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", geben Sie der Schildkröte einen neuen Namen und klicken Sie auf "Anrufen".'Du wirst sofort eine neue Schildkröte neben der ersten sehen. Wenn Sie auf das Dropdown-Menü "Spawn" klicken, sehen Sie auch eine Reihe neuer Einträge, die sich auf die neu gespawnte Schildkröte beziehen.

Sie können auch Befehle neu zuordnen, um die neue Schildkröte auszuführen. Der Befehl dazu lautet wie folgt:

$ ros2 run turtlesim turtleteleopkey -ros-args -remap turtle1/cmdvel:=turtle2/cmdvel

Legen Sie den Namen 'turtle2' entsprechend Ihrer früheren Wahl fest.

Erweiterte Anzeige mit Rviz

Für eine erweiterte und 3D-Anzeige verwenden Sie rviz. Dieses Paket simuliert alle Knoten in Ihrem Design.

$ ros2 ausführen rviz2 rviz2

In der grafischen Benutzeroberfläche haben Sie drei Panels, mit der Ansicht in der Mitte. Sie können Umgebungen über das Bedienfeld „Displays“ erstellen build. Sie können Wände, Windstärken und andere physikalische Eigenschaften hinzufügen. Hier fügen Sie auch Ihre Roboter hinzu.

Beachten Sie, dass Sie, bevor Sie an diesen Punkt gelangen, verstehen müssen, wie das URDF-Format verwendet wird. Das URDF-Format definiert einen Roboter, mit dem Sie Körper, Arme, Beine und vor allem Kollisionszonen einstellen können. Die Kollisionszonen sind da, damit die Simulation entscheiden kann, ob der Roboter kollidiert ist.

Das Erlernen des Erstellens eines Roboters im URDF-Format ist ein großes Projekt. Verwenden Sie also einen vorhandenen Open-Source-Code, um mit den Emulatoren zu experimentieren.

Physik simulieren mit Gazebo

In Gazebo können Sie die Physik der Umgebung Ihres Roboters simulieren. Gazebo ist ein Ergänzungsprogramm, das gut mit rviz . zusammenarbeitet. Mit Gazebo können Sie sehen, was tatsächlich passiert; Mit rviz behalten Sie den Überblick darüber, was der Roboter erkennt. Wenn Ihre Software eine Wand erkennt, die nicht vorhanden ist, zeigt Gazebo leer an und rviz zeigt an, wo in Ihrem Code die Wand erstellt wurde.

Fazit

Die Simulation Ihres Roboters und seiner Umgebung ist notwendig, um Fehler zu finden und die erforderlichen Verbesserungen beim Betrieb Ihres Roboters bereitzustellen, bevor Sie ihn in die Wildnis bringen. Dies ist ein langwieriger Prozess, der lange nach dem Testen des Bots andauert, sowohl in kontrollierten Umgebungen als auch im wirklichen Leben. Mit ausreichender Kenntnis der Infrastruktur der internen Systeme Ihres Roboters können Sie nachvollziehen, was Sie richtig und falsch gemacht haben. Lernen Sie schnell, alle gefundenen Fehler zu schätzen, da sie Ihr System auf lange Sicht robuster machen können.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...