Der Umgang mit ROS2

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Workspace erstellen

Um mit ROS2 ein Projekt zu bearbeiten, muss als Erstes ein workspace erstellt werden. Dazu liefert ROS2 einige praktische Befehle, um die Erstellung zu vereinfachen. Ein workspace ist ein Verzeichnis mit Unterordnern. In dem Verzeichnis werden die Pakete (package) erstellt.

1. Zunächst muss wieder das Environment gesourcet werden.

Im Fall von Ubuntu 22.04 (Humble): source /opt/ros/humble/setup.bash

Im Fall von Ubuntu 20.04 (Galactic): source /opt/ros/galactic/setup.bash

2. Erstellen Sie nun das Verzeichnis vom workspace. mkdir -p ~/ros2_ws/src In diesem Fall heißt das Verzeichnis "ros2_ws". Außerdem wurde in dem Verzeichnis der Unterordner "src" erstellt. Dieser dient später der Übersichtlichkeit, da die Pakete in "src" abgelegt werden und mehrere Pakete im workspace vorliegen können.

3. Navigieren Sie ins src-Verzeichnis. cd ~/ros2_ws/src

4. Erstellen Sie das erste Paket im workspace. ros2 pkg create --build-type ament_python (Paketname) Wählen Sie einen (Paketnamen) für sich aus.

Beispiel: ros2 pkg create --build-type ament_python mein_paket

Das Terminal sollte nun folgendes ausgeben: [Bild] Sollten Sie bei der Bearbeitung ihrer Pakete C++ bevorzugen, können Sie den Befehl ros2 pkg create --build-type ament_cmake (Paketname) verwenden. Das Paket enthält alle zunächst benötigten Verzeichnisse und Dateien.

Die erste Anwendung ausführen

1. Wenn Sie den Befehl mit dem Zusatz "--node-name (Knoten-Name)" verwenden, erstellen Sie außerdem noch eine einfache Anwendung, welche "Hello Word" ins Terminal ausgibt. ros2 pkg create --build-type ament_python --node-name mein_node mein_paket

2. Verwenden Sie "colcon build" im Verzeichnis "ros2_ws" um die Anwendung zu komprimieren.
cd
cd ros2_ws
colcon build

(Falls der workspace viele Pakete enthällt ist es sinvoll nur die benötigten Pakte mit "colcon build" zu generieren: colcon build --packages-select mein_paket Andernfalls kann es zu längeren Wartezeiten führen.)

3. Anwendung und ROS2-Installation im Verzeichnis "ros2_ws" verknüpfen. source install/local_setup.bash

4. Anwendung ausführen. ros2 run mein_paket mein_node

Workspace bearbeiten

Abb.1: Visual Studio Code

Visual Studio Code

Zum Bearbeiten der unterschiedlichen Dateien und Dateiformate empfiehlt sich Visual Studio Code. Zudem erleichtert der integrierte Datei-Explorer das Navigieren in den Verzeichnissen des workspace's.
Installation: sudo apt snap install code, oder durch eine manuelle Installation in den Anwendungen.

Visual Studio Code starten: code

Jetzt können Sie den Workspace in Visual Studio Code öffnen.

Abb.2: package.xml

package.xml

Das Dokument ist eine XML-Datei, die zur Beschreibung eines ROS-Pakets verwendet wird. Sie gibt den Namen, die Version und die Abhängigkeiten des Pakets sowie die Dateien an, die in dem Paket enthalten sind. Kann mit Visual Studio Code bearbeitet werden.

Abb.3: setup.py

setup.py

Die Datei setup.py ist ein Skript, das zur Installation von Python-Paketen verwendet wird. Es wird in der Regel mit dem Paketmanager pip verwendet, um Pakete aus dem Python Package Index (PyPI) oder aus einem lokalen Quellcodeverzeichnis zu installieren.

Abb.4: launch.py

launch.py

Die Datei launch.py ist ein Python-Skript, das zum Starten eines ROS2-Knoten oder einer Gruppe von Knoten verwendet wird. Es ist Teil des Launch-Frameworks, einem Werkzeug zur Organisation und Verwaltung des Starts mehrerer ROS2-Knoten und wird nicht beim Erstellen eines workspaces generiert. Die Funktion "generate_launch_description()" ist der Haupteinstiegspunkt in der Datei launch.py. Sie gibt eine LaunchDescription-Funktion zurück, welche eine Liste von Funktionen ist, die die Knoten und andere Ressourcen definieren, die gestartet werden sollen.

Die LaunchDescription kann auch andere Arten von Funktionen enthalten, wie "IncludeLaunchDescription" und "ExecuteProcess", die es ermöglichen, den Inhalt anderer launch.py-Dateien einzuschließen oder externe Prozesse zu starten.

Für eine genaue Aufschlüsselung der Funktionen empfehle ich den Artikel "ROS2 launch files" von roboticscasual.com. Dort wird erklärt, wie man von Grund auf eine Launch-Datei erstellt.

Abb.5: world.wbt

world.wbt

Die world-Datei definiert das Layout der Simulationsumgebung in Webots. Sie enthält Informationen über die Objekte, Materialien und Eigenschaften in der Umgebung sowie die Startposition und Ausrichtung des Roboters.

Geometrie: Die Form, Größe und Position von Objekten in der Umgebung. Materialien: Die physikalischen Eigenschaften von Objekten, wie z. B. ihre Dichte, Reibung und Rückprallverhalten. Beleuchtung: Die Position und Intensität von Lichtquellen in der Umgebung. Roboter: Die Form, Größe und Ausgangsposition des Roboters. Sensoren: Art, Position und Ausrichtung der Sensoren am Roboter, z. B. Kameras und Laser. Aktuatoren: Typ, Position und Ausrichtung der Aktoren am Roboter, z. B. Räder oder Gelenke.

Das spezifische Format und die Syntax einer Weltdatei hängen von der verwendeten Physik-Engine ab. Webots verwendet ".wbt", ein proprietäres XML-basiertes Format für seine Welt-Dateien.


<- Zurück zum Hauptartikel