Robot Operating System


ROS ist ein Open-Source Framework, das viele verschiedene Funktionalitäten bereitstellt. Es ist in mehreren Sprachen (z.B. C/C++ und Python) programmierbar und bietet derzeit eine große Community mit vielen veröffentlichten Programmen. Dadurch bietet es sich an, dieses System zu benutzen und weiterzuführen. Die Funktionen in ROS werden durch die sogenannten Packages/Pakete verwaltet. Packages können als eine Art Bibliothek gesehen werden. Der Inhalt dieser Pakete sind meist allgemeine Nodes (Prozesse bzw. Programme), abhängige Bibliotheken und Messages (Nachrichten mit deren Struktur). Durch ROS wird eine Art virtuelles Bussystem, also eine Kommunikationsstruktur, aufgebaut. Diese besteht aus Nodes und Topics. Der Verwalter dieser Kommunikationsstruktur ist der Master-PC, bzw. der PC auf welchem der roscore, also der Kern von ROS ausgeführt wurde. Über ihn werden die Nodes zu anderen Nodes und Topics geleitet. Der PC, welcher auf den roscore des Master-PC´s zugreift wird als Slave-PC bezeichnet. Wird nun in dieses System ein Node gestartet, z.B. um Datenverarbeiten zu können, werden die daraus entstanden Daten über einen Topic zu einem anderen Node gesendet. Dies wird als publishen von Daten bezeichnet. Im Gegensatz dazu werden in einem anderen Node die Daten ausgelesen, was wiederum als subscriben bezeichnet wird.