Anleitung zum einfachen Einstieg in ROS2: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 234: Zeile 234:
Mit '''Strg + C''' kann die Simulation im Terminal beendet werden.
Mit '''Strg + C''' kann die Simulation im Terminal beendet werden.


== Der Umgang mit ROS2 ==
=== 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):
<code>source /opt/ros/humble/setup.bash</code>
Im Fall von Ubuntu 20.04 (Galactic):
<code>source /opt/ros/galactic/setup.bash</code>
'''2.'''
Erstellen Sie nun das Verzeichnis vom workspace.
<code>mkdir -p ~/ros2_ws/src</code> 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.
<code>cd ~/ros2_ws/src</code>
'''4.'''
Erstellen Sie das erste Paket im workspace.
<code>ros2 pkg create --build-type ament_python (Paketname)</code>
Wählen Sie einen (Paketnamen) für sich aus.
Beispiel: <code>ros2 pkg create --build-type ament_python mein_paket</code>
Das Terminal sollte nun folgendes ausgeben:
[Bild]
Sollten Sie bei der Bearbeitung ihrer Pakete C++ bevorzugen, können Sie den Befehl <code>ros2 pkg create --build-type ament_cmake (Paketname)</code> verwenden.
Das Paket enthält alle zunächst benötigten Verzeichnisse und Dateien.
'''4.1''' (Die erste Anwendung ausführen)
<code>ros2 pkg create --build-type ament_python --node-name mein_node mein_paket</code>
Wenn Sie den Befehl mit dem Zusatz "--node-name (Node-Name)" verwenden, erstellen Sie außerdem noch eine einfache Anwendung, welche "Hello Word" ins Terminal ausgibt.
'''4.1.2'''
Verwenden Sie "colcon build" im Verzeichnis "ros2_ws".
<code>cd</code>
<code>cd ros2_ws</code>
<code>colcon build</code>
(Falls der workspace viele Pakete enthällt ist es sinvoll nur die benötigten Pakte mit "colcon build" zu generieren: <code>colcon build --packages-select mein_paket</code> Andernfalls kann es zu längeren Wartezeiten führen.)
'''4.1.3'''
Anwendung und ROS2-Installation im Verzeichnis "ros2_ws" verknüpfen.
<code>source install/local_setup.bash</code>
'''4.1.4'''
Anwendung ausführen.
<code>ros2 run mein_paket mein_node</code>
== Funktionaler Systementwurf / Technischer Systementwurf ==
== Funktionaler Systementwurf / Technischer Systementwurf ==


Zeile 240: Zeile 291:


== Programmierung ==
== Programmierung ==
 
<code></code>
== Komponententest ==
== Komponententest ==



Version vom 22. September 2022, 17:06 Uhr

Autor: Marius Küpper
Art: Projektarbeit
Dauer: April - September 2022
Betreuer: Prof. Schneider


Thema

Aufgabenstellung

  • Einarbeitung in ROS 2 mit Tutorials
  • Dokumentation der wesentlichen Anleitungen bezogen auf das FTF im HSHL Wiki
  • Evaluation durch andere(n) Studierende
  • Optimierung des Artikels
  • optional: Bereitstellung von Demoprogrammen zum einfachen Einstieg




Anforderungen an die Projektarbeit

Projektplan

Nützlicher Artikel: Gantt Diagramm erstellen





Anforderungen

Hardwareanforderungen

Softwareanforderungen

Installation der virtuellen Maschine VirtualBox

  • 1. Download der Software
 Direkter Download: VirtualBox-6.1.36.exe
  • 2. Nach dem Download das Setup ausführen und abschließen.
  • 3. Wenn möglich, Virtualization oder SVM im BIOS aktivieren. (Befindet sich im BIOS unter den CPU-Einstellungen. Dies sorgt dafür, dass man Virtualbox später mehr Ressourcen zuweisen kann.)
  • 4. Download des Betriebssystems.
 Direkter Download : Ubuntu 20.04.5 LTS
 Direkter Download : Ubuntu 22.04.1 LTS (Empfohlen!)

ROS2 in Ubuntu einbinden

Die aktuelle Version von ROS2 (Humble Hawksbill), sowie der Vorgänger (Galactic Geochelone) wird über das Terminal von Ubuntu installiert.

> Alle Eingaben für das Terminal befinden sich als Copy&Paste in diesen grauen Feldern <


Zunächst muss die ROS2 apt Repository zum System hinzugefügt werden. Dazu autorisieren wir unseren GPG Schlüssel mit apt:

sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg


Danach fügen Sie die Repository zur Liste Ihrer sources:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null


Updaten Sie den Cache Ihrer apt Repository:

sudo apt update


Zur Sicherheit überprüfen wir noch, ob Ubuntu auf dem neusten Stand ist:

sudo apt upgrade


Im Fall von Ubuntu 22.04:

Installation der Vollversion von ROS2 Humble für Desktop-PCs: sudo apt install ros-humble-desktop ODER: Installation der Basis-Version von ROS2 Humble für Raspberrys etc.: sudo apt install ros-humble-ros-base


Im Fall von Ubuntu 20.04:

Installation der Vollversion von ROS2 Galactic für Desktop-PCs: sudo apt install ros-galactic-desktop ODER: Installation der Basis-Version von ROS2 Galactic für Raspberrys etc.: sudo apt install ros-galactic-ros-base


Nach der abgeschlossenen Installation muss nun das Environment eingerichtet werden, damit die ROS2-Befehle im Terminal auch verwendet werden können. Wir erweitern dazu die Befehlsliste des Terminals, um somit nicht jedes mal den selben Befehl eingeben zu müssen, wenn wir das Terminal öffnen. Geben Sie den folgenden Befehl ins Terminal ein um die .bashrc zu öffnen:

gedit ~/.bashrc


Nun fügen Sie unter die letzte Zeile des Dokuments zwei neue Zeilen ein und geben in die letzte Zeile (Z.119) folgenden Befehl ein:


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
bashrc











SVN-Repository in Linux erstellen

Um die Befehle für die Erstellung einer SVN-Repository zu nutzen muss zunächst das entsprechende Paket installiert werden:

sudo apt install subversion

Mit der Einagbe svn help checkout kann man sich nun eine Hilfestellung anzeigen lassen, wie man sich eine Kopie der Repository auf Ubuntu lädt.

Zunächst sollten Sie sich einen Ordner anlegen, in den die Repository abgelegt wird. In diesem Fall wird der Ordner im persönlichen Benutzerordner erstellt.

cd
mkdir svn

Nach anlegen des Ordners "svn" kann nach folgendem Schema die Repository in den zuvor erstellten Ordner abgelegt werden: svn checkout [SVN Checkout URL] [Dateipfad]


Beispiel:

svn checkout https://svn-test.hshl.de/svn/Robotik_und_Autonome-Systeme/ /home/hshl/svn

Inbetriebnahme der WeBots-Simulation von Hanning

Installation der benötigten Pakete, Environments und Repositorys:

sudo apt install python3-serial
sudo apt install python3-colcon-common-extensions
sudo apt install ros-${ROS_DISTRO}-navigation2 ros-${ROS_DISTRO}-nav2-bringup '~ros-${ROS_DISTRO}-turtlebot3-.*' ros-${ROS_DISTRO}-laser-geometry ros-${ROS_DISTRO}-webots-ros2
wget -qO- https://cyberbotics.com/Cyberbotics.asc | sudo apt-key add -
sudo apt-add-repository 'deb https://cyberbotics.com/debian/ binary-amd64/'
sudo apt-get update
sudo apt-get install webots


Navigieren Sie jetzt ins "FTS" Verzeichnis.

Beispiel: cd svn/trunk/Projekte/FTF_Hanning/FTS


Durch colcon build werden die benötigten Daten komprimiert und der Workspace "vernetzt".

colcon build --packages-select hewagv_simulation openslam_gmapping slam_gmapping

Eventuell muss die Eingabe wiederholt werden, wenn es zu einer Fehlermedlung kommt. Beim zweiten colcon build sollte der Prozess dann erfolgreich verlaufen.


Als letzten Schritt vor dem Start der Simulation muss nur noch das Environment gesourcet werden.

source install/local_setup.bash

Simulation starten:

ros2 launch hewagv_simulation full_system_launch.py


Mit Strg + C kann die Simulation im Terminal beendet werden.

Der Umgang mit ROS2

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.

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

4.1.2 Verwenden Sie "colcon build" im Verzeichnis "ros2_ws". 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.)

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

4.1.4 Anwendung ausführen. ros2 run mein_paket mein_node

Funktionaler Systementwurf / Technischer Systementwurf

Komponentenspezifikation

Programmierung

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Link zu dem SVN_Ordner des Projekts. VM Appliance

YouTube Video

Das Video von diesem Projekt finden Sie auf Youtube unter dem Link:

Weblinks


Literatur


→ zurück zum Hauptartikel: Studentische Arbeiten