ROS Crashkurs 001
In diesem Tutorial befassen wir uns mit Fragen wie: "Was ist überhaupt ROS", "Wie installiere ich ROS auf meinem PC" und "Wie richte ich den sogenannten Catkin-Workspace ein".
Schau dir das Video zu dem Tutorial hier oder ganz unten auf der Seite an!Abonnier meinen Kanal, um kein Tutorial mehr zu verpassen
Du hast ROS bereits installiert, willst aber verstehen, was Topic, Node, Package, ... sind? Dann schau dir doch einfach das nächste Tutorial an: Grundbegriffe / Tools und Schildkröten
Was ist das Robot Operating System?
Das Robot Operating System, kurz ROS ist ein open-source-Framework zur Entwicklung von Roboter- Software. Ursprünglich 2007 ins Leben gerufen am Stanford Artifical Intelligence Laboratory sorgt heute die Open Source Robotics Foundation mit Hilfe der Robotik-Community für dessen kontinuierliche Entwicklung und Wartung. Dabei steigt die Zahl der wissenschaftlichen Arbeiten, in denen ROS verwendet wird und auch die Zahl der Roboter für welche entsprechende Treiber entwickelt werden kontinuierlich an1.
Die sogenannte ROS-Gleichung verdichtet die verschiedenen Fähigkeiten des Frameworks in einem kompakten Schaubild.

Plumbing steht hierbei als Begriff dafür, dass ROS in einem System als Kommunikations-Middleware eingesetzt wird. Es stellt ein Application Programing Interface (API) zur Verfügung, womit die Kommunikation zwischen verschiedenen Teilsystemen ermöglicht wird.
Oft wird ROS fälschlicherweise als Roboterbetriebssystem bezeichnet. Zwar stellt es Dienste wie Gerätetreiber und Hardwareabstraktion zur Verfügung, doch bietet es zudem weitere Ressourcen an. Werkzeuge zur Visualisierung von Sensordaten wie die Programme RViz und Rqt , die in den folgenden Abschnitten genutzt werden, sowie die Simulationsumgebung Gazebo zählen zu den Tools, die ROS dem Nutzer zu Verfügung stellt. Beispielsweise bereits entwickelte Algorithmen zur Navigation, der Bewegung von Roboterarmen oder der Verarbeitung von Sensordaten zählen zu den Capabilities von ROS. Diese Programme, die oft als Grundlage für roboterspezifische Software dienen, werden stets durch eine aktive Community (das Ecosystem) ergänzt und weiterentwickelt. ROS bietet uns also all das, was wir für die Entwicklung und Programmierung unserer Roboter benötigen.
Das Robot Operating System installieren (Noetic)
In diesem Abschnitt zeige ich euch, wie ihr ROS Noetic auf eurem Ubuntu-System installiert. Wollt ihr doch eine ältere Version wie ROS Melodic installieren oder euer ROS in Windows oder einem anderen Betriebssystem installieren, folgt der Anleitung auf http://wiki.ros.org/ROS/Installation. Bestimmt gibt es bald auch hier ein Tutorial dazu. In den folgenden Abschnitten lernt ihr, wie ihr ROS installiert und einrichtet. Außerdem zeige ich euch erste Kniffe auf dem Weg zum ROS-Meister (Vorsicht: Ein wahnsinnig toller ROS-Insider-Witz...)
1. Installation vorbereiten
Damit dein Computer zu ROS zugehörige Software installieren kannst, musst du deinem Computer zuerst mitteilen, dass er Software von http://packages.ros.org akzeptieren soll. Öffne dafür ein neues Terminal und tippe folgenden Befehl ein. Befehle wie dieser müssen stets in einem Terminal eingegeben werden. Wenn ihr etwas irgendwo anders eintippen sollt, merke ich das explizit an.
Tipp: In die meisten Terminals kannst du mit Hilfe der Tastenkombination STRG + Shift + V Befehle aus der Zwischenablage einfügen.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Sorge dafür, dass das Programm curl installiert ist. Das braucht ihr, um Dinge herunterzuladen. Ja, ich denke das reicht an dieser Stelle als Erklärung.
sudo apt install curl
Mit Hilfe von curl
können nun die Fremdquellenschlüssel für die ROS-Pakete installiert werden.
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
Wenn du mehr Zeit mit Paketquellen und zugehörigen Quellen verbringen willst: https://wiki.ubuntuusers.de/Paketquellen_freischalten/
Aktualisiere deinen Paketindex, in dem gespeichert wird, wo welche Pakete gefunden werden können.
sudo apt update
2. ROS installieren
Wenn du die grundlegenden ROS Pakete und zusätzlich Tools wie rqt, RViz, sowie die Simulationsumgebung Gazebo in nur einem Schritt installieren willst, führe folgenden Befehl aus. Es schadet nicht ROS auf diesem Weg mit all seinen Zusatztools zu installieren. Will man diese jedoch nicht mit installieren, kann man anstelle von -desktop-full
auch die Pakete -desktop
oder -base
installieren.2
sudo apt install ros-noetic-desktop-full
Weitere Pakete werden auf ähnliche Weise installiert. Die Paketnamen für die jeweilige ROS-Version <version>
folgen stets dem Muster: ros-<version>-<paketname>
. Dazu aber in einem späteren Tutorial mehr.
Damit dein Terminal alle von ROS installierten Programme finden kann, solltest du jedes neue Terminal mit deiner ROS-Installation "bekanntmachen". Dafür sourced du die setup.bash
Datei aus dem Ordner an dem ROS installiert wurde, für gewöhnlich /opt/ros/<version>
. Das manuelle sourcen der setup.bash
empfiehlt sich vor allem dann, wenn man mehrere ROS-Versionen gleichzeitig verwenden will. Andernfalls sollte man das sourcen automatisch bei dem Start eines neuen Terminals durchführen lassen. Dafür passen wir die Datei .bashrc
an, die wir in unserem /home
Verzeichnis finden. Mit Hilfe des folgenden Befehls fügenden wir das Sourcen in die Datei ein. Die .bashrc
enthält Befehle die automatische beim Start eines Terminals ausgeführt werden sollen.
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
Jetzt sollten wir das Terminal beenden und ein neues Terminal starten. Hierdurch erreichen wir, dass bei jedem Start des Terminals das Sourcen der setup.bash
automatisch durchgeführt wird.
Außerdem installieren wir noch einige weitere Pakete, die uns die Arbeit mit ROS erleichtern werden und auf die wir später genauer eingehen.
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential python3-catkin-tools
Nun initialisieren wir noch rosdep ein Programm, mit dem wir später auf einfache Weise fehlende Abhängigkeiten identifizieren und nachinstallieren können. Auch darauf gehen wir in einem späteren Tutorial genauer ein. Es hilft jedoch, wenn wir das bereits jetzt vorbereiten.
sudo rosdep init
rosdep update
Testen wir unsere Installation. Tippe dafür den Befehl roscore
in ein neues Terminal. Wenn du jetzt keine Fehlermeldung siehst, hast du den ersten Schritt geschafft.
3. Die Arbeitsumgebung einrichten
Alle ROS-Programme, die du selbst erstellst, sind in einem sogenannten Workspace organisiert, der von dem Build-System catkin verwaltet wird3. Diesen müssen wir einmalig anlegen, um unsere Pakete erstellen zu können. Zuerst erstellen wir in unserem home-Verzeichnis einen neuen Ordner catkin_ws
und darin den Ordner src
und navigieren innerhalb des Terminals in den neu erstellten Ordner.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
Um deinen Workspace jetzt einmal zu bauen, kannst du den Befehl catkin_make
ausführen. Ein wenig moderner kannst du deinen Workspace mit catkin build
bauen. Wenn du einen Workspace komplett neu bauen willst, lösche alle Ordner aus dem catkin_ws
Verzeichnis außer dem src
Ordner.
Ab ROS Melodic musst du den Workspace beim ersten Mal wie folgt bauen, danach kannst du die einfachen Befehle aus dem letzten Absatz nutzen.
catkin build -DPYTHON_EXECUTABLE=/usr/bin/python3
Neben den bisher gesourcden installierten ROS-Paketen, müssen auch alle im Workspace zu findenden Pakete in jedem neuen Terminal gesourced werden, damit sie gefunden werden können. Hierfür führen wir folgenden Befehl aus.
source devel/setup.bash
Auch diesen Befehl fügen wir ähnlich zum obigen Befehl in die .bashrc
-Datei ein.
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
In einem neuen Terminal können wir uns jetzt die Umgebungsvariable ROS_PACKAGE_PATH
ausgeben lassen, die uns alle Orte anzeigt an denen ROS Pakete gespeichert sind. Hast du alles richtig gemacht sollte folgender Befehl eine Ausgabe erzeugen, die den Pfad zu den durch ROS installierten Paketen in /opt/ros/noetic/share
und dem source
-Ordner deines Workspaces enthält.
echo $ROS_PACKAGE_PATH
Zusammenfassung
Du solltest jetzt einen kleinen ersten Einblick in das gewonnen haben, was ROS eigentlich ist. Das Robot Operating System ist jetzt auch deinem Rechner installiert und ein Workspace eingerichtet. Zeit, dass wir unsere ersten Pakete anlegen und unsere ersten Roboter programmieren.
Hier noch ein kleiner Buchtipp. Zwar schon etwas in die Jahre gekommen, aber gut, um die Grundlagen von ROS zu überblicken (englisch): Das Buch, das mir bei ROS geholfen hat: https://amzn.to/3JphaBC
Schau dir gerne auch das Video an, in dem ich den gesamten hier vorgestellten Installationsprozess noch einmal erkläre und noch auf ein paar weitere Details eingehe.
Hier gehts zum nächsten Tutorial: Grundbegriffe / Tools und Schildkröten
Für Fragen und Diskussionen über das Robot Operating System hier ein Link zu einem Discord-Server, auf dem wir gemeinsam über eure Ideen und Herausforderungen sprechen können: https://discord.gg/Qs4MZT2n63
Unterstützt mich und gönnt mir einen Kaffee, sodass ich auch schneller eine neue Folge aufnehme 😉 : https://paypal.me/maxivu ROS Introduction: http://wiki.ros.org/de/ROS/Introduction
Über ROS: https://www.ros.org/about-ros/
ROS Installation: http://wiki.ros.org/melodic/Installation/Ubuntu Für Fragen und Antworten zu ROS: https://answers.ros.org/questions/
- http://download.ros.org/downloads/metrics/metrics-report-2020-07.pdf
- http://wiki.ros.org/noetic/Installation/Ubuntu
- http://wiki.ros.org/catkin