Robot-Operating-System (ROS)

ROS ist eine open Source Robotik-Middleware für die Softwareentwicklung von Robotern, die betriebssystemähnliche Funktionen auf übergeordneten Computerclustern und Plattformen bietet. ROS stellt Bibliotheken und Tools zur Verfügung, mit denen Softwareentwickler unterschiedlichste Roboteranwendungen erstellen können. Es bietet Hardware-Abstraktion (Erkl.: Softwareroutinen, die plattformspezifische Details nachahmen und den Programmen direkten Zugriff auf die Hardwareressourcen geben), Gerätetreiber, Bibliotheken, Visualizer, Nachrichtenübermittlung, Paketverwaltung und vieles mehr.

ROS besitzt eine modulare Architektur und wird bereits heute in hunderten von Robotik Anwendungen eingesetzt, von autonomen Fahrzeugen über Drohnen bis hin zu humanoiden Robotern, zudem findet es auch Verwendung in einer Vielzahl von ROS-unterstützten Geräten mit unterschiedlichsten Sensoren.

Die Technologie kann jedoch auch auf andere Anwendungsbereiche angewendet werden, einschließlich für Anwendungen bei der Service- und der Industrierobotik. Die spezifischen ROS-Anwendungen, wie erweiterte Wahrnehmung, Pfad- / Griff-Planung und Bewegungsverfolgung ermöglichen die Herstellung von Roboteranwendungen, die zuvor technisch nicht durchführbar oder zu teuer waren.

ROS läuft derzeit nur auf Unix-basierten Plattformen, es ist superschlank und kann daher auch auf Geräten mit niedrigem Stromverbrauch wie einem Raspberry Pi oder einem Rock64 verwendet werden. Die Software für ROS wird hauptsächlich auf Ubuntu- und Mac OS X-Systemen getestet. Die ROS-Codierung kann in jeder Programmiersprache geschrieben werden, vorausgesetzt, es verfügt über eine Clientbibliothek. Derzeit liegt der Fokus jedoch auf der Bereitstellung einer starken C ++ - und Python-Unterstützung.

In der Vergangenheit musste jedes Robotersystem für sich selbst programmiert werden. Je komplexer die Roboter wurden, desto komplizierter wurden auch die benötigten Programme, bzw. deren Abläufe. Ein großer Nachteil war, dass die Programme nicht einfach für ähnliche Anwendungen wiederverwendet werden konnten, da die Programme sehr spezifisch für die jeweilige Hardware programmiert wurden. 

ROS bietet für dieses Problem eine Lösung, mit ROS können hardwareunabhängige "Programme", sogenannte Pakete, erstellt werden, dass macht ROS sehr modular und einfach zu bedienen. 

Ausführliche Informationen: http://wiki.ros.org/de

Begriffs Erklärungen: http://wiki.ros.org/de/ROS/Concepts

 

IOTA ist perfekt geeignet für eine Integration im ROS

In seinem Blog auf Medium, beschreibt der Elektronikentwickler Michael Kuhlmann anhand von Beispielen, die Implementierung eines Quadcopter-Autopiloten in das ROS-Framework und wie er dafür IOTA, in ein von ihm geschriebenes ROS-Paket integriert hat.

Mit diesem Paket können „ROS-Nodes" erstellt werden. Diese Nodes können für verschiedene Verarbeitungsaufgaben verwendet werden, beispielsweise für die Berechnung einer aktuellen Position aus Beschleunigungsmessungen oder in diesem Fall zur Durchführung einer IOTA-Transaktion. Darüber hinaus ist ein ROS-Node in der Lage, mit anderen Nodes über die sogenannten Topics zu kommunizieren.

Ein Topic (dt. Thema) ist eine Informationsbewegung, basierend auf dem System des Abonnierens und des Veröffentlichens. Ein oder mehrere Nodes können somit Informationen auf ein Topic posten, und ein oder mehrere Nodes können diese Information dann ablesen. Ein Topic ist ein asynchroner Information-Bus, ähnlich wie ein RSS-Feed.

Andere Nodes im Netzwerk können die Verarbeitungsaufgaben des ursprünglichen Nodes replizieren, indem sie dessen veröffentlichtes Topic abonnieren. Das Ganze funktioniert wie eine Art Pinnwand, jeder Node kann prüfen, welche Informationen in einem Topic enthalten sind und diese ggf. abrufen. Zudem können Nachrichten für andere Nodes hinterlassen werden, so dass jeder interessierte Node diese hinterlassenen Informationen erhalten kann.

Der ROS-Node von Herrn Kuhlmann hat verschiedene Topics abonniert und auch veröffentlicht, die für eine IOTA-Transaktion benötigt werden. Mit diesen Topics kann eine Adresse auf eingehende Transaktionen überwacht werden und es können auch Transaktionen gesendet werden, indem in einem bestimmten Topic veröffentlicht wird. Dadurch wird jeder ROS-Programmierer in der Lage sein, Transaktionen automatisch an den Tangle zu senden, unabhängig von seinen IOTA-Kenntnissen und seiner bevorzugten Programmiersprache. 

Dieses von Herrn Kuhlmann beschriebene Paket ist nur ein erstes kleines Programm, aber es bietet eine gute Lösung für ROS-Programmierer bei der Integration von IOTA. Das Konzept von Herrn Kuhlmann ermöglicht die Integration der IOTA Tangle-Technologie für nahezu alle Arten von Robotern, egal ob Quadcopter, Mobile Service oder einige hochspezialisierte Roboter. Durch die IOTA Nullwerttransaktionen sind in Zukunft auch Lösungen für eine Lokalisierung über GPS-Daten oder die Schaffung digitaler Zwillinge möglich. 

 

Fazit

Die Integration der IOTA-Technologie in das Robot-Operating-System, hebt die Robotik meiner Meinung nach auf eine neue nie dagewesene Sicherheitsstufe und ermöglicht gleichzeitig automatisierte Abläufe inkl. der Mikrobezahlungen unter Robotern. Es entsteht ein weiteres großes Anwendungsgebiet für IOTA und dieses wird in Zukunft zahlreiche neue Geschäftsideen hervorbringen.

Ich bin mir sicher, dass wir in Zukunft noch viel mehr zum Thema Robotik hören werden.

Wer Interesse an einer detaillierten Funktionsbeschreibung von ROS hat, muss sich selber einlesen, über dieses Thema gibt es mehrere Bücher. Die IOTA spezifischen Blog Artikel von Herrn Kuhlmann sollte sich aber jeder direkt anschauen: https://medium.com/@MichiKuhl