Suche
Suche Menü

hapticIO: Vergleich von Middlewareprogrammen

hapticIO BMBF Verbundprojekt

For the full paper by Ece Dincer in English please download the PDF.

Kontext

Konstruktiv nimmt mit den Zuständigkeitsbereichen Elektronik- und Software-Entwicklung am Verbundforschungsprojekt hapticIO teil. Weitere Verbundpartner sind

Einführung

Die Entwicklung von Robotern ist mit den heutigen technologischen Entwicklungen und dem Aufkommen neuer Anforderungen komplexer geworden. Ziel ist, Menschen zu helfen, effizienter zu arbeiten und teilweise direkt mit Menschen in ihren Tätigkeiten zu interagieren. Für die skalierbare Entwicklung eines komplexen und zuverlässigen Robotersystems ist es notwendig, verschiedene Spezialisierungen aus Fachrichtungen wie Maschinenbau, Informatik und Elektrotechnik zu verbinden. Eine Middleware-Schicht zwischen einem Betriebssystem und Softwareanwendungen wird verwendet, um Komponenten aus verschiedenen Fachgebieten zu kombinieren und in ein System zu integrieren. Man kann sagen, dass Middleware eine Übersetzungssoftware ist, die es Softwareanwendungen ermöglicht, die vom Betriebssystem gesendeten Informationen zu verstehen oder umgekehrt.

Grundlegender Aufbau der Middleware-Nutzung bei der Roboter-Entwicklung
Grundlegender Aufbau der Middleware-Nutzung

Diese Schicht trägt zur Vereinfachung des Softwaredesigns bei, indem sie eine standardisierte Infrastruktur für die Kommunikation zwischen den Modulen bereitstellt, und verbessert die Qualität der Softwareanwendung, indem sie den Entwicklern mehr Raum gibt, ihre Komponenten jederzeit individuell zu ändern und zu verbessern. Robotersoftwaresysteme, die derzeit verwendet werden, sind zum Beispiel ROS, YARP, Orocos oder CARMEN.

Recherche

Robotic Operating System (ROS)

ROS ist eine der meistgenutzten Middlewares in der Robotikgemeinschaft. Es wurde im Rahmen des STAIR-Projekts an der Stanford University und des Personal Robots Program an der Willow Garage entwickelt, um die Herausforderungen zu lösen, die bei der Entwicklung großer Serviceroboter auftreten, und zwar mit folgenden philosophischen Zielen Peer-to-Peer (P2P), werkzeugbasiert, mehrsprachig, schlank sowie frei und quelloffen. Darüber hinaus bietet das ROS 2-Projekt mit neuen Verbesserungen des Systems Echtzeitkommunikation, was bedeutet, dass es einen direkten Weg zwischen Quelle und Ziel gibt. ROS unterstützt offiziell C++ und Phyton mit von der Community bereitgestellter Unterstützung für zahlreiche andere Sprachen (wie Java, Android, C# oder Swift) und kann unter Ubuntu Linux, RHEL, Windows und macOS laufen.

Open Robot Control Software (OROCOS)

Das OROCOS-Projekt ist ein weiteres freies Middleware-Framework, das im Wesentlichen als eine Sammlung von portablen C++-Standardbibliothek definiert werden kann. Diese Bibliotheken können in 3 grundlegende Werkzeuge unterteilt werden: Kinematik- und Dynamikbibliothek (zur Unterstützung der Modellierung und Berechnung kinematischer Ketten, z. B. von Robotern oder computeranimierten Figuren), Bayes’sche Filterbibliothek (zur Bereitstellung von Interpretationen dynamischer Bayes’scher Netze) und The Orocos Toolchain (zur Erstellung von Echtzeit-Robotikanwendungen).

Yet Another Robot Platform (YARP)

YARP ist eine weitere Open-Source-Bibliothek, die vor allem die Softwareentwicklung für humanoide Roboter unterstützt. In Bezug auf die humanoide Robotik wird sie für die visuelle Wahrnehmung, die Interaktion mit menschlichen Robotern, die geschickte Manipulation und die Fortbewegung mit Beinen verwendet. Es unterstützt Windows, Linux, MacOS und Solaris und ist in der Sprache C++ geschrieben.

Carnegie Mellon Robot Navigation Toolkit (Carmen)

Carmen, das an der Carnegie Mellon University als Roboter-Navigations-Toolkit entwickelt wurde, ist eine Open-Source-Sammlung von Software für die Steuerung mobiler Roboter. Es umfasst grundlegende Navigationseinheiten wie Sensorsteuerung, Hindernisvermeidung, Lokalisierung und Kartierung. Carmen läuft unter dem Linux-Betriebssystem und ist in der Programmiersprache C mit Java-Unterstützung geschrieben.

Neben den erwähnten Middleware-Frameworks gibt es noch weitere verfügbare Middlewares wie z.B. Miro, OPRos ect. die noch erwähnenswert sind.

Vergleich und Fazit

Name des FrameworksSprache(n)SimulationOSEchtzeitfähig
ROS 2Python, C++,
Lisp, Java
jaWindows, Linux,
MacOS
ja
OROCOSC++ja*Windows,
MacOS
ja
YARPC++jaWindows, Linux,
MacOS
nein
CarmenCja**Linuxnein
*Nur mit Orocos Simulink Toolbox
**Nur 2D-Simulation
Grundlegende Vergleiche zwischen den genannten Middleware-Frameworks

Die Auswahl des Middleware-Frameworks fiel auf ROS 2, da es ein Open-Source-Tool ist und in den Programmiersprachen Python, C++, Lisp oder Java implementiert werden kann, dadurch sprachunabhängig ist und verschiedene Betriebssysteme unterstützt. Dies ist aufgrund der verschiedenen Unternehmen und Universitäten notwendig, die an dem Projekt zusammenarbeiten, sodass keine neue Sprache gelernt werden muss oder Betriebssysteme, die genutzt werden, beibehalten werden können. Darüber hinaus ist ein Vorteil von ROS 2 für die Erstellung von Prototypen, dass eine reibungslose Integration von mehr als einem Sensor möglich ist. Dies könnte einen kürzeren Zeitaufwand durch Trial-and-Error beim Entwerfen, Testen und Optimieren von Prototypen bieten. Außerdem bietet es Echtzeitberechnung sowie die Möglichkeit zur Simulation.

Dieses Projekt wird gefördert vom Bundesministerium für Bildung und Forschung (BMBF) im Rahmen des Projektes HapticIO(16SV8758).
© für das Beitragsbild: Wolf of CC-BY 4.0 ©torange.biz and of Takashi Goto