ROS – Robot Operating System
Robotik offen gestalten
Robot Operating System, kurz: ROS, ist ein Open-Source-Framework, um Software für Robotikanwendungen zu schreiben. Dieses Programmiergerüst besteht aus einer Sammlung von Funktionen, Treibern sowie einer Kommunikationsschicht. Programmierer erstellen eigene ROS-Pakete, welche bestimmte Funktionen und Treiber beinhalten und den Anwendern über eine Community zur Verfügung gestellt werden. Das kann beispielsweise eine Bahnplanung sein, die dann vom Anwender an seine individuelle Applikation, zum Beispiel eine Pick-and-Place-Anwendung, angepasst wird. Die einzelnen Pakete sind modular und mit der Hardware unterschiedlicher Hersteller kompatibel.
Entstanden ist ROS im Jahr 2007 im universitären und forschenden Umfeld. Ein Vorteil des Open-Source-Frameworks ist die Zusammenarbeit in der ROS-Community mit Spezialisten aus verschiedenen Bereichen – von Forschungseinrichtungen bis zum Roboterhersteller. Gemeinsam sind sie in der Lage, auch komplexe Robotikanwendungen zu programmieren. Diese Online-Community arbeitet zusammen an den ROS-Paketen, führt Reviews und Tests durch und unterstützt sich gegenseitig. Dazu gehört beispielsweise die Dokumentation der Pakete, die Bearbeitung von sogenannten Pull-Requests, also Verbesserungsvorschlägen für den Code, und die Erstellung von Tutorials.
Die Vorteile von ROS umfassen neben der offenen Verfügbarkeit des Quelltextes, die Verwendung von Programmiersprachen wie Python oder C++. Damit bietet sich ROS für industrielle Applikationen an, in denen verschiedene Sensoren und Aktoren beliebiger Hersteller unterschiedliche Aufgaben übernehmen und komplex entwickelte Algorithmen steuern. Dafür wird eine standardisierte Kommunikationsschicht benötigt.
Artikel zum Thema

Konfiguration offline simulieren
Ab der Version 10.9 des Pilz-Softwaretools Pnozmulti Configurator lassen sich Projekte der konfigurierbaren Kleinsteuerungen ohne Hardwareeinsatz offline simulieren. Damit lassen sich Fehler frühzeitig zu erkennen.

Die Service-Robotik-Module
Mit den Service-Robotik-Modulen stellt Pilz einen modularen Baukasten vor, aus dem sich Anwender ihre individuelle Roboterapplikation zusammenstellen können. Das funktioniert nur aufgrund von Offenheit und den passenden physischen und virtuellen Schnittstellen. Für die Service-Robotik-Module nutzt Pilz daher ROS. Viele Roboterhersteller lassen ihre ROS-Pakete extern entwickeln. Im Fall von Pilz stammen die Pakete dagegen direkt vom Hersteller, übernehmen die Steuerung und nicht nur das Absetzen von Befehlen an die herstellerspezifische Robotersteuerung. Die Antriebselektronik ist im Manipulator integriert und reagiert direkt auf die Sollwerte der ROS-Pakete. Das bietet dem Anwender Freiheiten bezüglich der Bahn- und Bewegungsplanung. Das Unternehmen unterstützt die ROS-Community nicht nur durch das Programmieren von Paketen, sondern auch mit Pull-Requests und der Dokumentation von zentralem Code im ROS-Wiki. Pilz bietet seinen Anwendern zudem Produktsupport für die eigenen ROS-Pakete.
Offen, aber mit Qualitätsstandards
Aber wie profitiert der Anwender von der Offenheit? Dank Tutorials kann der Nutzer sich schnell in die Pakete einarbeiten. So wird auch ein mechanischer Integrator ohne Expertenkenntnisse in der Programmierung mit ROS dazu befähigt, seine Roboterapplikation individuell einzurichten. Das kann beispielsweise für kleine und mittelständische Unternehmen interessant sein, die Roboter einsetzen möchten, um den Automatisierungsgrad in ihrer Fertigung zu erhöhen. Mit ROS wird zudem die Umsetzung von Roboterapplikationen wie Palettieren, Conveyor Tracking oder auch eine kamerabasierte Objekterkennung möglich.
Für Anwender, die die speziellen Programmiersprachen aus der Industrie nach EN 61131 nicht kennen, ist es zudem von Vorteil, dass ROS-Pakete unter anderem mit der Programmiersprache Python realisierbar sind. Eine Python Programmierschnittstelle ermölgicht zudem die Verwendung der MoveIt!-Schnittstelle – einem Tool zur Bahn- und Bewegungsplanung. MoveIt! plant anhand eines Umgebungsmodells und der Zielposition die Bahn des Manipulators. Pilz stellt dort die Roboterkinematik bereit, damit die konkrete Anwendung des Manipulators im 3D-Visualisierungs-Tool RViz oder in einer Simulationsumgebung wie Gazebo modelliert werden kann. Damit spart der Anwender Zeit und Kosten bei einer virtuellen Inbetriebnahme des realen Roboters.
Open Source birgt auch Herausforderungen: Grundsätzlich kommen ROS-Pakete innerhalb der Community von unterschiedlichen Autoren. Deshalb reicht die Qualität der Pakete von undokumentierten Bausteinen bis zu professionellen und qualitativ hochwertigen Projekten. Ein hoher Qualitätsstandard seiner ROS Module ist Pilz sehr wichtig, deshalb wird die Software nach den industriellen Qualitätskriterien und Anforderungen des ROS Industrial Consortiums entwickelt und getestet. Hochwertige ROS-Pakete erleichtern für den Anwender die Systemintegration, da die Pakete gut dokumentiert sind und unterstützende Tutorials zur Verfügung gestellt werden.
Das ROS Industrial Consortium ist ein Zusammenschluss von Industrieunternehmen, die ROS für Anwendungen in der Industrie einsetzen und fördern wollen. Die Initiative zählt weltweit rund 65 Mitglieder vom Startup bis zum Konzern und von Forschungseinrichtungen bis zum industriellen Endanwender. In Europa werden die Aktivitäten vom Fraunhofer IPA koordiniert. Zu den Aktivitäten zählt beispielsweise das Forschungsprojekt Easy Cohmo (Ergonomics Assistance Systems for Contactless Human-Machine-Operation), in dessen Rahmen Fraunhofer IPA gemeinsam mit Pilz und weiteren Verbundpartnern eine gestengesteuerte Programmierung entwickelt.
Dr. Manuel Schön, Product Management Controller bei Pilz / ag
Hannover Messe, Halle 9, Stand D17