Skip to content

Latest commit

 

History

History
106 lines (73 loc) · 7.37 KB

quick_start_new_student.md

File metadata and controls

106 lines (73 loc) · 7.37 KB

Quick-Start-Manual for new Students

ROS

Die wichtigste Anlaufstelle für Fragen, welche irgendwie mit ROS zutun haben, ist das ROS-Wiki. Bitte darauf achten, dass sich die Tutorials / Anleitungen auf unsere Version bezieht. Eingesetzt wird aktuell das Betriebssystem Ubuntu 16.04 LTS (Xenial) mit ROS Kinetic Kame und dem Build-System catkin.

Übersicht der Links zum schnellen Zugriff:

Installation

Eine ROS Installation für Ubuntu existiert auf dem Roboter bereits. Für arbeiten am eigenen Laptop kann allerdings eine eigene Umgebung aufgesetzt werden. Anstelle einer nativen Installation kann dies auch in einer virtuellen Umgebung geschehen. Hierfür kann man die Virtualisierungsumgebung VirtualBox verwenden, wodurch sich Ubuntu wie ein art "Programm" starten lässt. Für die Installation von ROS ist die Variante "Desktop-Full Install" zu empfehlen.

Soll die eigene Umgebung mit dem Roboter kommunizieren sind im Wesentlichen zwei Dinge notwendig:

  1. Der Rechner, welcher als Master fungiert muss bekannt sein. Dies lässt sich mit dem Setzen einer Umgebungsvariable bewerkstelligen. Anstelle einer IP-Adresse, wird allerdings der "Name des Rechners" angegeben.
  2. Der logische Name muss sich zu einer IP-Adresse auflösen lassen. Dies geschieht nicht automatisch. Hierfür muss der Name explizit gesetzt werden. Hierfür wird am besten ein Eintrag (Punkt 2.3) in der "hosts" datei (z.B. /etc/hosts) hinzugefügt. Wichtig: Da sich beide Rechner finden müssen, muss man den Eintrag auf beiden Rechner hinzufügen.

Informeller Einstieg in ROS

Was ROS ist und welche Ziele verfolgt werden, ist in der Einführung festgehalten. Weiterführend werden auch die entsprechenden Konzepte von ROS beschrieben. Da dies doch recht technisch formuliert ist und sehr viele neue Informationen enthält, hier ein kurzer Einstieg.

Ein Roboter(-System) besteht aus mehren Funktionalitäten. Diese Funktionalitäten werden in eigenständigen Programmen abgebildet. In ROS werden solche Programme als "Nodes" bezeichnet und besitzen einen eigenen Namen. Nodes werden in Packages zusammengefasst, welche eine Organisationseinheit darstellen. Sollen mehrere Nodes miteinander kommunizieren, geschieht dies über einen Austausch von Nachrichten. Die Nachrichten haben dabei einen speziellen Nachrichtentyp, wie z.B. Boolean, Integer, String, etc. bei einfachen Nachrichtentypen. ROS unterstützt bereits standardmäßig Datentypen welche für Roboter-Systeme häufig benötigt werden. Der Austausch von Nachrichten findet über Nachrichtenkanäle statt, welche ebenfalls einen eigenen Namen besitzen. Solche Kanäle werden in ROS als "Topic" bezeichnet. Dieses Kommunikationsmodell wird auch "publish / subscribe pattern" bezeichnet. Alleine hierdurch ist es schon möglich, Informationen zwischen zwei Nodes auszutauschen, auch wenn diese sich auf unterschiedlichen Rechnern befinden. Das tatsächliche Übertragen und Empfangen der Daten wird dabei von ROS abgenommen und im Betrieb durch den ROS-Master gesteuert.

Mit den eben beschriebenen Mechanismen sollten sich die meisten Probleme lösen bzw. Funktionalitäten umsetzen lassen. Darüber hinaus sind in ROS mehrere Werkzeuge verfügbar, welche die Arbeit unterstützen. So können online mit dem Programm rosbag Daten der Topics als Bag-File aufgezeichnet und später wieder offline abgespielt werden. Mit RQT stehen viele Plugins (anzeigen der Topics sowie Nachrichten, plotten von Werten, etc.) als GUI zur Verfügung. Und Visualisierungen (Karten, Punktewolken, Robotermodelle, ...) erhält man mit RViz.

Hands-On aka Anfang mit Tutorials

Wer zum ersten mal mit ROS in Berührung kommt und noch immer verwirrt ist macht nichts falsch, das ist normal! Genau hierfür gibt es eine vielzahl von Tutorials welche einen Schritt für Schritt an die arbeit mit ROS heranführen. Die nachstehende Auswahl gilt als Empfehlung für den Einsteig.