Das Robot Operating System

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.

Die ROS-Gleichung, die das Robot Operating System kompakt beschreibt: ROS = Plumbing + Tools + Capabilities + Ecosystem

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/

  1. http://download.ros.org/downloads/metrics/metrics-report-2020-07.pdf
  2. http://wiki.ros.org/noetic/Installation/Ubuntu
  3. http://wiki.ros.org/catkin

Leave a comment



Copyright 2017 maximilian von unwerth © All Rights Reserved